0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文解析交互式相机标定的高效位姿选择方法

新机器视觉 来源:3D视觉工坊 作者:天涯居士 2022-09-06 16:56 次阅读

摘要

平面图案标定姿势的选择很少被考虑——但标定精度很大程度上取决于它。本文提出了一种姿态选择方法,可以找到一个紧凑和鲁棒的标定姿态集,并适合于交互式标定。奇异的姿态会导致解决方案不可靠,而减少姿态的不确定度对标定有利的。为此,我们使用不确定性传播原理。

我们的方法利用了一个自识别的标定图案来实时跟踪相机的姿态。这允许迭代地引导用户到目标姿态,直到达到所需的质量水平。因此,只需要一组稀疏的关键帧来进行标定。

该方法在单独的训练集和测试集以及合成数据上进行了评估。我们的方法比可比较的解决方案性能更好,同时需要更少的30%的标定帧。

01 引言

aad21180-2dc0-11ed-ba43-dac502259ad0.png
图1 使用9个选定的姿势和用户指导覆盖,投影到到右下角的相机。

在三维计算机视觉的背景下,相机标定是确定相机内部的几何和光学特征(内参)以及相机在世界坐标系中的位置和方向(外参)的过程。许多三维计算机视觉算法的性能直接取决于该标定的质量。此外,标定是一个重复任务,每次设置必须更改时执行。即使是同款相机,这些参数也可能会由于制造的不准确性而变化。相机标定的流行方法是基于获取一个已知尺寸的平面图案的多幅图像。然而,存在退化姿态配置会导致不可靠的解。

因此,标定的任务不能由没有经验的用户来完成——即使是在该领域工作的研究人员也经常难以量化什么是良好的标定图像。 有一些研究对CCD成像平面与图案之间的夹角对估计误差的影响进行了研究:

Triggs将角扩散与焦距误差联系起来。他发现超过5°后误差会扩散。

Sturm和Maybank进一步区分了估计主点和焦距。更重要的是,他们讨论了在使用一个平面和两个平面进行标定时可能存在的奇点,并将它们与单个针孔参数联系起来;例如,如果图案在每一帧中平行于图像平面,则不能确定焦距。

这些发现在中得到了重复。然而,姿态对失真参数估计或一般相机相对标定板的姿态影响迄今尚未被考虑。

另一个方面是标定数据的质量和数量。

Sun和库珀斯托克评估了摄像机模型对噪声的灵敏度、训练数据量和在模型复杂性方面的标定精度。然而,他们只测量了各自训练集上的残差,这受过拟合的影响。

为了克服这个问题,理查森等人引入了最大期望重投影误差(最大ERE)度量,而不是与测试误差相关,从而允许一个有意义的收敛测试。此外,他们会自动计算一个“最佳的下一个姿势”,并将其作为图案的叠加投影作为用户指导。通过在大约60个候选姿态的固定集合中进行穷举搜索来选择姿态。对于每个姿态,执行一个包括该姿态的假设标定,并选择最大ERE最小的姿态。然而,候选姿态在视场中均匀分布,没有明确考虑角扩散和退化情况。

在辅助用户标定任务的一般情况下,尚未特别考虑相机标定的准确性。 我们提出在解析生成最优模式姿态的同时,明确地避免退化的姿态配置。为此,我们将姿态与单个参数的约束联系起来,这样所产生的姿态序列就可以约束所有的校准参数,并确保准确的校准。与的穷举搜索相比,这将计算时间从秒减少到毫秒。

利用估计解的协方差来评估校准参数的不确定度。然后对姿态序列进行调整,以便为最不确定的参数捕获更多的约束。参数的协方差与检验误差相关,因此也可以作为一个收敛准则。

基于以上几点,我们的主要贡献是:

两种不同的姿态选择策略

一种有效的姿态选择方案

本文的结构如下:

第2节:介绍了所使用的相机模型和不确定度估计方法,并讨论了一个合适的标定图案的选择。

第3节:描述了我们的新的姿态选择方法

第4节:描述了完整的标定流程。

第5节:

对该方法在真实数据和合成数据进行了评估,并与OpenCV和AprilCal[10]的标定方法进行了比较[3]。

分析了结果标定的紧致性,并进行了一个非正式的用户调查,以显示该方法的可用性。

最后,我们以第6节总结了我们的结果,并讨论了其局限性和未来的工作。

02 准备工作

pYYBAGMXC6aAN0nXAAFPnHu5vWE537.jpg

2.1 估计和误差分析

pYYBAGMXC82AGn7AAAH18T-17rg683.jpg

其中:

pYYBAGMXC9aAAnzGAACYlaUM-7U861.jpg


2.2 标定图案

我们的方法适用于任何平面标定目标,例如常见的棋盘和圆网格图案。然而,对于交互式用户指导,快速的板检测是至关重要的。因此,我们使用在OpenCV中实现的自识别ChArUco[5]图案。与经典棋盘相比,这节省了检测到的矩形对规范拓扑的耗时顺序。然而,我们也可以在这里使用任何最近开发的自我识别目标[1,2,4]。 图案大小被设置为个方块,从而在每个捕获帧的棋盘关节上进行多达40次测量。这允许成功地完成初始化,即使没有检测到所有的标记,如第4.3节中所讨论的那样。

03 姿势选择

我们的方法的核心思想是明确地指定使用Zhang[16]的方法进行标定的单个关键帧。 在本节中,首先讨论了内参和标定板姿态的关系,我们将参数向量分为针孔和失真参数。对于每个参数组,我们然后给出我们的规则集,以生成一个最优姿态,同时显式地避免退化配置。

3.1 分离针孔和畸变参数

看公式1,我们可以看到,和都应用于后投影,描述了二维到二维的映射。因此,我们可以考虑仅从一个均匀采样图像的板姿态来估计。然而,由于内参和外参同时由[16]估计,不确定性增加。

引用:
aade62c8-2dc0-11ed-ba43-dac502259ad0.png

poYBAGMXDCGAZ27sAACHFH-oCgI853.jpg

aaefc6bc-2dc0-11ed-ba43-dac502259ad0.png
图2 失真图,显示了每个像素的∆(p)的大小。
为了找到目标姿态,我们应用阈值化和拟合一个轴对齐的边界框。

poYBAGMXDDiAWUXMAADimfhteKM670.jpg

3.2 避免针孔相机的奇异性

pYYBAGMXDEmACFoTAADj-EZ8_kE455.jpg

3.3 姿势生成

aad21180-2dc0-11ed-ba43-dac502259ad0.png
图3 示例性姿态选择状态。顶部:色散指数。
左:经过一个(洋红色)和两个(黄色)细分步骤后的固有标定候选位置。
右:已经访问过的区域的扭曲地图。

poYBAGMXDGmAE9hFAAItyqkiKsA766.jpg
pYYBAGMXDHCAexhRAAEU6ZN94lo977.jpg

3.4 初始化

pYYBAGMXDIOASxVlAAGYXc8foqU814.jpg

04 标定过程

在下面,我们将介绍参数细化和用户指导部分以及任何使用的启发式方法。这就完成了用于真实数据实验的标定流程。

4.1 参数优化

poYBAGMXDJqAVhdcAAGZ6wjmVkk546.jpg

4.2 用户指导

为了指导用户,目标相机姿态投影使用当前估计的内在参数。然后,这个投影被显示为一个覆盖在直播视频流的顶部(参见图1和补充材料中的视频)。 验证用户是否足够接近目标姿态我们使用Jaccard指数J(A,B)(交集联合)计算的投影模式的目标姿态T和面积的投影从当前姿态估计e我们假设用户已经达到所需的姿态如果J(T,E)>0.8。 比较投影重叠而不是直接使用估计的姿态是更稳健的,因为姿态估计通常是不可靠的——特别是在初始化期间。

4.3 启发法

在整个过程中,我们强制执行通用启发式约束[6,7.2],即约束的数量应该超过未知数的5倍。所使用的校准方法[16]不仅估计了固有参数C,而且还估计了模型平面和图像平面的相对姿态,即参数R、三维旋转和t、三维平移。当使用M校准图像时,我们有d=9+6M未知数,每个点对应提供了两个约束。对于初始化(M=2),我们有21个未知数,这意味着总共需要52.5个点对应或每帧需要27个对应。对于任何后续的帧,只需要15个点。 为了防止由于运动模糊和滚动快门伪影而导致的不准确的测量,图案应该是静止的。为了确保这一点,我们要求在连续的帧中重新检测到所有的点,并且这些点的平均运动要小于1.5px(根据经验确定)。

05 评估

在合成数据和真实数据上对该方法进行了评价。合成实验旨在验证第3节中提出的参数分割和姿态生成规则,并使用真实数据与其他方法进行比较。此外,通过对测试集进行直接优化,估计了结果与真实数据的紧致性。

5.1 合成数据

ab1eeb22-2dc0-11ed-ba43-dac502259ad0.png
图4 姿态选择策略和校准参数不确定性的相关性(因此误差条意味着“σ的方差”)。

poYBAGMXDLmAIz7tAAHX9zQ2Cws798.jpg

5.2 真实数据

ab30353a-2dc0-11ed-ba43-dac502259ad0.png
表1:我们的方法与AprilCal和OpenCV的真实数据进行了比较。显示五次以上的平均值。对测试集的训练结果在中。

poYBAGMXDNKAMsWbAAHVQpb9SKk736.jpg

5.3 标定紧致度的分析

poYBAGMXDOaAXFqTAAIsWXHgW6A773.jpg

5.4 用户调查

poYBAGMXDPiAAQ3gAACVYQCr1r4965.jpg

06 结论和未来的工作

我们提出了一种校准方法来生成一组紧凑的校准框架,适合于交互式用户指导。避免了奇异的姿态配置,从而捕获约9个关键帧就足以进行精确的校准。这比可比的解决方案少了30%。所提供的用户指导允许没有经验的用户在2分钟内完成校准。校准精度可以根据收敛阈值与所需的校准时间进行加权。摄像机参数的不确定性在整个过程中都被监测,以确保可以反复达到给定的置信水平。 我们的评估表明,所需的帧的数量仍然可以减少,以进一步加快这个过程。我们只使用一个广泛而简单的失真模型,在未来的工作中需要考虑薄棱镜[15]、径向[8]和倾斜传感器。最终,我们可以加入对未使用的参数的检测。这将允许从最复杂的失真模型开始,它可以在校准过程中逐渐减少。 此外,该方法需要适应特殊情况,如显微镜,其中视野深度限制可能的校准角度或在大距离的校准,因此缩放标定板是不需要的。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    6652

    浏览量

    84573
  • 人工智能
    +关注

    关注

    1776

    文章

    43899

    浏览量

    230646
  • 视觉算法
    +关注

    关注

    0

    文章

    29

    浏览量

    5462

原文标题:交互式相机标定的高效位姿选择方法集

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    工业相机单目和双目的区别

    工业相机标定方法根据工业相机的数目可分为单目标定、双目标定Q以及多目
    的头像 发表于 03-26 16:26 473次阅读
    工业<b class='flag-5'>相机</b>单目和双目的区别

    采集激光雷达和相机的初始标定数据

    ROS功能包:livox_camera_lidar_calibration提供了一个手动校准Livox雷达和相机之间外参的方法,已经在Mid-40,Horizon和Tele-15上进行了验证。 其中
    的头像 发表于 11-28 11:09 256次阅读
    采集激光雷达和<b class='flag-5'>相机</b>的初始<b class='flag-5'>标定</b>数据

    相机标定中各种标定板介绍以及优缺点分析

    选择标定板时,一个重要的考虑因素是它的物理尺寸。这最终关系到最终应用的测量视场(FOV)。这是因为相机需要聚焦在特定的距离上标定。改变焦距长度会轻微地影响对焦距离,这会影响之前的
    的头像 发表于 11-25 14:36 498次阅读
    <b class='flag-5'>相机</b><b class='flag-5'>标定</b>中各种<b class='flag-5'>标定</b>板介绍以及优缺点分析

    如何实现Pandas的DataFrame转换交互式表格

    Pivottablejs是一个通过IPython widgets集成到Python中的JavaScript库,允许用户直接从DataFrame数据创建交互式和灵活的汇总报表。可以进行高效、清晰的数据分析和表示,帮助将数据从Pandas DataFrame转换为易于观察的
    的头像 发表于 11-21 16:15 381次阅读
    如何实现Pandas的DataFrame转换<b class='flag-5'>交互式</b>表格

    相机标定究竟在标定什么?

    这个逼近的过程就是「相机标定」,我们用简单的数学模型来表达复杂的成像过程,并且求出成像的反过程。标定之后的相机,可以进行三维场景的重建,即深度的感知,这是计算机视觉的一大分支。
    的头像 发表于 10-18 17:00 568次阅读
    <b class='flag-5'>相机</b><b class='flag-5'>标定</b>究竟在<b class='flag-5'>标定</b>什么?

    基于激光雷达相机的在线外部标定算法

    本文提出了一种自动在线激光雷达相机标定方法CFNet。CFNet是全自动的,不需要特定的校准场景、校准目标和初始校准参数。我们定义一个校准流来表示初始投影点的位置与地面真值之间的偏差。
    发表于 10-10 11:44 413次阅读
    基于激光雷达<b class='flag-5'>相机</b>的在线外部<b class='flag-5'>标定</b>算法

    常用视觉的三种相机标定总结

    选中Export Camera Parameters按钮,将计算得到的相关参数导入到Matlab中;若要进行更精确的标定,可在标定时考虑畸变误差或采用双目相机标定
    发表于 10-09 10:51 724次阅读
    常用视觉的三种<b class='flag-5'>相机</b><b class='flag-5'>标定</b>总结

    如何在交互式人脸检测演示中将Web浏览器流用作目标输入?

    无法将 Web 浏览器流用作交互式人脸检测演示的目标输入。
    发表于 08-15 06:02

    什么是相机标定 常用相机标定方法

    对于摄像机标定问题已提出了很多方法,摄像机标定的理论问题已得到较好的解决,对摄像机标定的研究来说,当前的研究工作应该集中在如何针对具体的实际应用问题,采用特定的简便、实用、快速、准确的
    发表于 08-04 12:54 1727次阅读
    什么是<b class='flag-5'>相机</b><b class='flag-5'>标定</b> 常用<b class='flag-5'>相机</b><b class='flag-5'>标定</b>的<b class='flag-5'>方法</b>

    张正友标定方法是手眼标定吗 如何分析相机标定参数的好坏

    张正友标定方法是一种经典的相机标定方法,目前是最受欢迎的方法之一。该
    发表于 08-03 10:59 771次阅读
    张正友<b class='flag-5'>标定</b><b class='flag-5'>方法</b>是手眼<b class='flag-5'>标定</b>吗 如何分析<b class='flag-5'>相机</b><b class='flag-5'>标定</b>参数的好坏

    为什么要进行相机标定?相机标定有何意义?

    在大多数条件下,这些参数必须通过实验与计算才能得到。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性
    发表于 08-03 09:38 1030次阅读
    为什么要进行<b class='flag-5'>相机</b><b class='flag-5'>标定</b>?<b class='flag-5'>相机</b><b class='flag-5'>标定</b>有何意义?

    为什么要进行相机标定?相机标定有何意义?

    单目相机标定技术适用于被测表面曲率较小且需要获取实际数据的应用场合,比如食品、机械制造以及半导体等。
    发表于 07-21 11:32 2788次阅读
    为什么要进行<b class='flag-5'>相机</b><b class='flag-5'>标定</b>?<b class='flag-5'>相机</b><b class='flag-5'>标定</b>有何意义?

    双目相机标定的原理和方法

    首先,课程介绍了双目相机标定的基础知识。我了解到双目相机是由两个相机组成的系统,通过同时拍摄目标物体的两个视角来获取三维信息。
    的头像 发表于 07-03 14:25 2222次阅读
    双目<b class='flag-5'>相机</b><b class='flag-5'>标定</b>的原理和<b class='flag-5'>方法</b>

    计算机视觉的相机标定问题解析

    相机标定是计算机视觉最基础也是至关重要的一个问题,标定的精度够不够决定了以后的校正、去畸变、配准、计算三维坐标、恢复三维模型能否进一步做下去。
    的头像 发表于 06-26 09:51 341次阅读

    如何学习相机模型与标定

    相机标定是通过输入带有标定patter的标定板来获得相机参数的一个过程。实际的光学成像是一套非常复杂的过程,从三维世界投影到
    的头像 发表于 06-01 14:36 466次阅读
    如何学习<b class='flag-5'>相机</b>模型与<b class='flag-5'>标定</b>?