首页 > 其他分享 >VisionPro - Calibration 校准

VisionPro - Calibration 校准

时间:2024-05-17 11:30:58浏览次数:21  
标签:校准 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 详尽棋盘格

标签:校准,VisionPro,Calibration,像素,坐标,图像,空间,工具
From: https://www.cnblogs.com/momj/p/18197522

相关文章

  • 振弦采集仪在岩土工程监测中的精度验证与校准方法研究
    振弦采集仪在岩土工程监测中的精度验证与校准方法研究河北稳控科技振弦采集仪是一种常用的岩土工程监测仪器,用于测量地下水位、土壤压力和地表位移等参数。在使用振弦采集仪进行监测前,需要对其精度进行验证与校准,以确保测量结果准确可靠。 首先,对于振弦采集仪的精度验证,可以......
  • 实测STM32的RTC,什么校准都不做,不断电,半年后快了13分钟
    【测试结果】TOOL的RTC时钟一直都是通过上位机这里手动校准的,这次做了了实验,测试期间不做任何校准,看看半年后效果。测试是从去年的9月29号开始截至到今年的4月5号,快了13分钟【误差原因】因为晶振对温度敏感,下面是典型的温度对晶振影响:STM32支持LSI内部低速时钟或者LSE外......
  • python相机校准
    文章目录张正友标定法角点检测标定去畸变张正友标定法相片是三维世界在二维平面上的投射,故而其深度信息是损失掉了的。但是,如果把拍照看作理想的小孔成像过程,那么相片中的每个像素,都将通过一个锥体与世界中真实的点一一对应,这时如果再来一条参考光线,那么理论上就可......
  • 仪器为什么要做计量校准检测?
    仪器校准是指通过对仪器进行调整、校准,使其能够准确地测量、检测或分析所需的物理量或化学量。它是保证仪器准确性和可靠性的重要环节,也是保证实验结果正确和可信的关键步骤。下面带大家了解仪器校准的重要性。首先,仪器校准能够确保仪器的准确性。不同的仪器在生产和使用过程......
  • VisionPro 图像采集的两种方式
    1.通过调用事先保存的CogAcqFifoTool工具(.vpp)获取图像a.配置相机及网络(GigEConfigurationTool)b.在VisionProQuickBuild中添加vs项目中通过代码运行相机采集2.通过实现IcogAcqFifo接口获取图像......
  • FLUKE 5730A 高精度多功能校准器
    计量专家必备之校准器 5730A提供了性能良好的直流/低频信号,专为校准专业人士所需。包括:国家级校准实验室,军队,国防,第三方校准实验室,企业内部校准实验室等等。5730A高精度校准器可溯源至国家标准,遵循ISO17025的认证要求。技术指标中分别给出了99%置信度及95%置信度水平的指标,......
  • 论文精读:When Noisy Labels Meet Long Tail Dilemmas A Representation Calibration M
    Introduction作者考虑了数据集常见的两个问题:1、部分数据被错误得标注;2、数据呈长尾分布。之前涌现了很多工作分别针对这两个问题,但当两者同时存在,它们不能很好的工作。专门针对噪声标签的方法,总是依赖于一些假设,但这些假设在long-tailed上不一定成立。例如利用memorizationeff......
  • 论文精读:关于不确定性校准的mixup陷阱(On the Pitfall of Mixup for Uncertainty Cali
    背景Mixup(混合)定义对于一个样本\((x_i,y_i)\),将其与另一个样本\((x_j,y_j)\)混合:\[\begin{aligned}\tilde{x}_i&=\lambdax_i+(1-\lambda)x_j,\\\tilde{y}_i&=\lambday_i+(1-\lambda)y_j,\end{aligned}\tag{1}\]其中\(\lambda\)采样于Beta(α,α),α>0......
  • VisionPro相机掉线问题
    最近有一个项目用到visionpro,遇到一个问题记录一下。就是相机频繁掉线。报错信息:在网上查找原因,关闭防火墙、设置巨帧模式、调大接收缓存区都试过,没有改善。因为其他原因,我们中途换了海康相机。但是两款相机都有掉线的问题。所以排除相机的因素。 并且这个项目我们有两台......
  • 视觉软件 VisionPro 与 C# 对接简单说明(包括常用控件)
    视觉软件VisionPro与C#对接简单说明(包括常用控件)C#和VisionPro对接:VisionPro的部分控件是可以直接在C#WinForm里调用的;算法文件在VisionPro平台里编辑好后保存下来也可以通过C#加载调用;下面我们主要说一下C#调用Vpp文件首先我们要先引用VisionPro平台的dll文件,在项目文件......