VisionPro - Calibration 校准

Calibration 校准

许多视觉应用程序要求您以有意义的真实世界值报告测量值和位置。校准包括计算将图像坐标映射到真实世界坐标的二维变换,然后将此预先计算的坐标空间附加到每个运行时图像的坐标空间树。
运行时图像中的视觉工具可以以校准单位报告其结果。
VisionPro包括两个校准工具,CogCalibCheckerboardTool和CogCalib NPointToNPointTool,用于执行这两个步骤。这两种工具对校准的第一步采取了两种不同的方法。CogCalibCheckerboardTool使用校准板,可以计算线性和非线性校准。CogCalibNPointToNPointTool要求您提供图像和真实世界坐标中一组点的位置信息,并且它只能计算线性校准。

棋盘校准步骤 Checkerboard Calibration Phase

要使用CogCalibCheckerboardTool,只需获取校准板的图像并将其提供给工具,以及校准板上网格点的间距(以真实世界的物理单位表示)。然后调用该工具的Calibrate方法。该工具定位板中的网格点,并计算真实世界坐标和图像坐标之间的最佳拟合二维变换,存储数据以备日后使用。如果需要重新校准,则必须再次显式调用Calibrate方法以获得新的转换。

注意:棋盘校准工具支持棋盘和点网格校准板。Cognex建议将棋盘校准板与CogCalibCheckerboardTool一起使用。为了兼容性的目的,提供了点网格的支持。

下图概述了CogCalibCheckerboardTool的校准阶段:

image-20240517104459043

网格点提取 Grid Point Extraction

校准阶段的一个关键方面是从校准板的图像中提取网格点位置。CogCalibCheckerboardTool支持两种不同类型的校准板,棋盘和点阵板。

image-20240517104529781

若要使用棋盘格,其中校准顶点是格子的角,网格点间距指定为格子大小。对于点阵格,其中校准顶点是点的中心,将顶点间距指定为点间距。
如果使用棋盘格,该工具还可以指定是使用标准模式还是详尽模式来提取顶点位置。
注:Cognex建议使用具有详尽特征提取的棋盘格校准板,因为它可以产生最准确的校准。本章中的所有插图和描述都显示了棋盘的使用。

N点校准步骤 N-Point Calibration Phase

CogCalibNPointToNPointTool 工具计算将图像坐标映射到“真实情况”坐标的二维转换.

  • 未校正坐标 : 图像坐标系;
  • 原始的已校正坐标 : 真实物理坐标系.

1.通过相关工具提供特征点的物理坐标(注意:物理特征点应非常明确,便于在图像中搜索特征点的图像坐标)

2.对特征点进行图像定位获取特征点图像坐标或者在某一坐标空间的坐标,如下图所示,未标定数据由其他工具提供.

3.通过工具的Calibrate方法进行标定,获取标定数据,标定完后注意查看"转换结果"页面的RMS误差.

image-20240517104549666

注意事项:

  1. 特征点的物理坐标要与图像坐标一一对应;
  2. 特征点的物理坐标要尽可能的保证高精度
  3. 至少提供4组以上对应点的物理坐标与图像坐标,通常提供9组数据进行标定

运行时步骤(两种工具) Run-Time Phase (Both Tools)

校准过程中的第二步对于两种校准工具都是相同的(当CogCalibCheckerboardTool工具在线性模式下使用时):在运行时,该工具将预先计算的变换附加到运行时图像的坐标空间树。一旦将此校准空间附加到图像的坐标空间树,就可以直接在校准的真实世界坐标中获得其他视觉工具(如位置和距离)的结果。
下图概述了两种校准工具的运行时阶段:

image-20240517104717660

注意:无论采用哪种方式进行标定,在完成后,相机图像采集的位置,镜头的焦距以及光圈不能有任何变换,否则重新进行标定.

Uncalibrated, Raw Calibrated, and Calibrated Coordinate Spaces

Uncalibrated 未标定空间
未校准空间是在运行校准工具之前输入图像的选定空间。它几乎总是所获取图像的基于像素的根(“@”)空间。

Raw calibrated 原始标定空间

原始校准空间是通过将原始校准点的物理位置拟合到未校准点来定义的校准、未校准空间。该空间确定了计算的校准变换的单位。它与最终校准空间的不同之处仅在于原点的位置,原点可以刚性调整。

Calibrated 标定空间

校准的空间是所需的物理坐标空间。它通常以真实世界的单位表示,如英寸或微米,并与物理世界中的一些众所周知的特征对齐。校准的空间表示校准计算的结果。校准后的空间会考虑您提供的任何刚性调整(平移和旋转)。

:根据定义,校准图像的选定空间始终是未校准的空间。这通常是根(“@”)空间。运行时图像的选定空间必须是相同的选定空间,或者与物理世界具有相同的关系。在实践中,这意味着您必须通过相同的相机和镜头获取所有校准和运行时图像。相机和镜头还必须保留其原始设置或校准时设置。例如,更改采集格式(分辨率)、移动相机或调整镜头焦点将使计算出的将像素映射到真实世界坐标的2D变换无效。

可以通过更改以下内容对最终校准空间的原点执行刚性调整:

  • 标定空间原点的x和y平移

  • 平移的坐标空间

  • 标定空间的x轴旋转

  • 旋转的坐标空间

  • 标定空间的利手性

例如,您可能会发现在应用程序中,将校准空间的原点放置在对象的中心而不是图像的角落更方便。为了实现这一结果,您需要更改校准空间的x坐标和y坐标。最终校准空间的计算将考虑您所做的任何刚性调整。

:CogCalibCheckerboardTool使用的校准板支持使用定义此刚性调整的基准标记。基准标记表示原点、旋转、利手,以及(在点板网格的情况下)刚性变换的比例。该工具可以从板中自动设置这些值。

CogCalibCheckerBoard Tool

  • CogCalibCheckerBoard Tool Summary
  • CogCalibCheckerBoard Tool Programming Model
  • Nonlinear Mode Differences

棋盘格校准使用一个棋盘格板来计算像素和真实单位之间的转换,可以计算线性或者非线性转换.非线性转换用于说明光学和/或透视扭曲的情况

CogCalibCheckerBoard工具概括

下图概述了棋盘式校准工具的校准阶段和运行时阶段:

image-20240517104931708

在校准阶段,用户提供校准板的采集图像、以真实世界为单位的校准板网格点的间距以及可选的刚性原点调整。如果在线性模式下使用该工具,该工具会自动从板的图像中提取网格点位置,并计算原始校准空间中的点与其在校准图像的选定空间中的位置之间的最佳拟合二维线性变换。在运行时,该工具会将线性变换添加到坐标空间树中。校准图像必须是单色的,但运行时图像可以是单色或彩色的。

如果在非线性模式下使用该工具,则需要提供与图像扭曲相关的其他参数。在非线性模式下,该工具自动从板的图像中提取网格点位置,并计算2D线性变换和非线性变换,该非线性变换解释了校准图像中存在的任何光学或透视失真。在运行时,该工具使用非线性变换扭曲像素以生成校正图像,并将线性变换添加到坐标空间树中。
有关非线性校准和图像扭曲的更多信息,请参阅“使用棋盘校准工具进行非线性校准”一节`

CogCalibCheckerBoard Tool Programming Model

CogCalibCheckerboard 操作员持有所有设置或校准时间参数;CogCalibCheckerboardRunParams 对象提供运行时参数;CogCalibCheckerboardTool 组织输入图像、运行时参数、运算和输出图像。

CogCalibCheckerboard 操作员包括一个辅助接口CogCalib Checkerboard,用于定义用于图像扭曲的参数。为了简单起见,您可以使用OwnedWarpParams属性直接从CogCalibCheckerboard对象操作此辅助界面

该工具计算一个UncalibratedFromRawCalibrated变换,该变换将原始校准点映射到未校准点上。此转换由GetComputedUncalibratedFromRawCalibratedTransform方法返回。该计算使相应的未校准点和原始校准点之间的平方误差最小化。它提供了每个点的均方误差的度量。此计算在设置或校准时执行一次,运行工具时不会重新计算。计算的2D变换结果与布尔值Calibrated一起存储在工具的操作员中,指示设置或校准时间结果是根据当前参数计算的。如果任何参数发生变化,操作员将丢弃结果并适当设置“校准布尔值”。

校正空间刚性调整:

  • CalibratedOriginX和CalibratedOriginY调整校准空间原点的x和y平移。

  • CalibratedOriginSpace调整相对于未校准(像素)或原始校准(物理)空间的(x,y)位置。

  • CalibratedXAxisRotation 调整校准空间的x轴旋转。

  • CalibratedXAxisRotationSpace调整相对于未校准(像素)或原始校准(物理)空间的x轴旋转

  • SwapCalibratedHandedness调整已校准空间的惯用手

您可以通过调用GetComputedUncalibratedFromCalibratedTransform来获得调整转换。在运行时,该工具将这个预先计算的变换附加到输入图像的坐标空间树上。它返回更新图像的浅拷贝作为输出,供其他视觉工具使用。

Nonlinear Mode Differences 非线性模式差异

  • 不能指定要计算的自由度。

  • GetComputedUncalibratedFromCalibratedTransform 和 GetComputedUncalibratedFromRawCalibratedTransform 都是非线性转换。

  • CogCalibCheckerboard 接口提供了一些属性和方法,您可以使用这些属性和方法来控制工具在运行时如何创建扭曲的输出图像

  • 输入图像在运行时未变形。生成的新构造图像作为输出图像提供

  • CogCalibCheckerboardRunParams界面包含一些函数,可用于控制工具如何表示扭曲输出图像中未定义的像素值。Unfilled PelValueEnabled允许设置值用于未定义的像素。禁用时,未定义的像素不会初始化。对于单色图像,请使用Unfilled PelValue设置所有未定义像素的值。对于彩色图像,可以为每个颜色平面单独设置未定义的像素值;RGB或HSI取决于您的图像类型。 UnfilledPelPlane0Value for Plane 0, R or H;UnfilledPelPlane1Value for Plane 1, G or S; UnfilledPelPlane2Value for Plane 2, B or I.

  • 保留在输出图像的扭曲像素和校准空间之间的线性变换可从CogCalibCheckerboard获得。GetOutputImageRootFromCalibratedTransform函数。

  • 此线性变换附加到输出图像,而不是UncalibratedFromCalibrated转换

CogCalibNPointToNPoint工具

与棋盘格校准工具不同,N点校准工具需要使用视觉工具从校准图像中提取特征,然后在原始校准空间(特征的真实世界位置)和校准图像的图像空间中提供特征位置。

CogCalibNPointToNPoint工具摘要

下图概述了N点校准工具的校准阶段和运行时间阶段:

image-20240517105022236

在“校准”阶段,您将获取一幅图像,该图像包含原始校准空间(真实世界坐标)中已知位置的特征。使用视觉工具(如CogBlobTool或CogPMAlignTool),可以在校准工具的像素空间中定位图像特征。然后将这两组坐标以及可选的刚性原点调整传递给工具。该工具计算原始校准空间中的点与校准图像的选定空间中的点将之间的最佳拟合2D线性变换。在运行时,该工具会将线性变换添加到坐标空间树中。

CogCalibNPointToNPoint 编程模型

CogCalibNPointToNPoint 操作符保存所有设置或校准时间参数;CogCalibNPointToNPointRunParams 对象提供运行时参数;CogCalibNPointToNPointTool 组织输入图像、运行时参数、运算符和输出图像。

该工具计算一个UncalibratedFromRawCalibrated变换,该变换将原始校准点映射到未校准点上。此变换由N点校准方法GetComputedUncalibratedFromRawCalibratedTransform返回。该计算使相应的未校准点和原始校准点之间的平方误差最小化。它提供了每个点的均方误差的度量。此计算在设置或校准时执行一次,运行工具时不会重新计算。计算的2D变换结果与布尔值Calibrated一起存储在工具的操作员中,指示设置或校准时间结果是根据当前参数计算的。如果任何参数发生变化,操作员将丢弃结果并适当设置“校准布尔值”。

校正空间刚性调整:

  • CalibratedOriginX和CalibratedOriginY调整校准空间原点的x和y平移。

  • CalibratedOriginSpace调整相对于未校准(像素)或原始校准(物理)空间的(x,y)位置。

  • CalibratedXAxisRotation 调整校准空间的x轴旋转。

  • CalibratedXAxisRotationSpace调整相对于未校准(像素)或原始校准(物理)空间的x轴旋转

  • SwapCalibratedHandedness调整已校准空间的惯用手

您可以通过调用GetComputedUncalibratedFromCalibratedTransform来获得调整转换。在运行时,该工具将这个预先计算的变换附加到输入图像的坐标空间树上。它返回更新图像的浅拷贝作为输出,供其他视觉工具使用。

使用N点校准工具时,请记住校准工具或操作员不会以任何方式处理校准图像。只需要在编辑控制GUI中以及通过用于确定特征位置的其他工具来视觉定位校准空间的原点。关于图像的信息,例如特征点的位置,总是来自另一视觉工具执行的分析。

棋盘格校正板指南

校准板本身:

  • 黑白方块必须以交叉图案方式排列
  • 黑白方块必须具有同样的尺寸
  • 黑白方块必须为矩形,其纵横比范围是0.90 到1.10.

所采集的图像:

  • 所采集的图像必须包括至少9个完整黑白方块
  • 所采集的图像中的方块必须至少为15×15像素
  • 总而言之,增加校准图像中可见的瓷块数量(通过减小校准板上方块的尺寸) 提高校准的精确度

校准板原点

  • 可选项,您的校准板可以有一个原点,以两个交叉矩形表示
  • 如果找到,该点将成为原始校准空间的原点
  • 如果没有找到,原始校准空间的原点是最接近校准图像中心的顶点

康耐视建议使用详尽(CheckerboardExhaustive) 棋盘特征查找。

提供点网格 (DotGrid) 校准板的支持,以允许使用现有的点网格校准板;棋盘板提供更准确的校准。不建议使用标准(棋盘)寻点算法,并保留该算法以实现向后兼容性。

如果指定基准符号,则标记类型必须与特征查找器匹配。DotGridAxes 仅支持 DotGrid,而 StandardRectangles 仅支持 Checkerboard 和 CheckerboardExhaustive。

默认值:CheckerboardExhaustive 详尽棋盘格

posted @ 2024-05-17 11:22  默默依然  阅读(220)  评论(0编辑  收藏  举报