标题:Efficient Pose Selection for Interactive Camera Calibration 作者:P. Rojtberg and A. Kuijper 会议:2018 IEEE International Symposium on Mixed and Augmented Reality (ISMAR) 论文:https://arxiv.org/abs/1907.04096 代码:https://github.com/paroj/pose_calib
平面图案标定姿势的选择很少被考虑——但标定精度很大程度上取决于它。本文提出了一种姿态选择方法,可以找到一个紧凑和鲁棒的标定姿态集,并适合于交互式标定。奇异的姿态会导致解决方案不可靠,而减少姿态的不确定度对标定有利的。为此,我们使用不确定性传播原理。
我们的方法利用了一个自识别的标定图案来实时跟踪相机的姿态。这允许迭代地引导用户到目标姿态,直到达到所需的质量水平。因此,只需要一组稀疏的关键帧来进行标定。
该方法在单独的训练集和测试集以及合成数据上进行了评估。我们的方法比可比较的解决方案性能更好,同时需要更少的30%的标定帧。
关键词:

图1 使用9个选定的姿势和用户指导覆盖,投影到到右下角的相机。
因此,标定的任务不能由没有经验的用户来完成——即使是在该领域工作的研究人员也经常难以量化什么是良好的标定图像。
有一些研究对CCD成像平面与图案之间的夹角对估计误差的影响进行了研究:
这些发现在[16]中得到了重复。然而,姿态对失真参数估计或一般相机相对标定板的姿态影响迄今尚未被考虑。
另一个方面是标定数据的质量和数量。
在辅助用户标定任务[9]的一般情况下,尚未特别考虑相机标定的准确性。
我们提出在解析生成最优模式姿态的同时,明确地避免退化的姿态配置。为此,我们将姿态与单个参数的约束联系起来,这样所产生的姿态序列就可以约束所有的校准参数,并确保准确的校准。与[10]的穷举搜索相比,这将计算时间从秒减少到毫秒。
利用估计解的协方差来评估校准参数的不确定度。然后对姿态序列进行调整,以便为最不确定的参数捕获更多的约束。参数的协方差与检验误差相关,因此也可以作为一个收敛准则。
基于以上几点,我们的主要贡献是:
本文的结构如下:
我们将使用针孔相机模型来描述相机,给定相机的旋转为 ,位置 ,参数向量 ,映射一个3D坐标点 到2D坐标像素点 :
其中:
其中:。
给定 幅图像,每个图像包含 个点对应,基础标定方法[16]使几何误差最小化:
其中:
公式(3)也被称为重投影误差,经常被用来评估标定的质量。然而,它==只测量残差,并且容易发生过拟合==。特别是,如果恰好使用 点对应,则 [文献6,章节7.1]。
然而,标定的实际目标是估计误差,即解与真实标签(未知的)之间的距离。理查森等人[10]提出最大ERE作为与估计误差相关的替代度量,也有相似的值范围(像素)。然而,它需要采样和重新投影当前的解决方案。然而,对于用户的指导和监测收敛性,只需要参数的相对误差。因此,==我们直接使用估计参数的方差 。特别是,我们使用离散指数来确保参数之间的可比性==。
给定图像点 的协方差,利用协方差的反向传输[文献6,章节5.2.3]得到:
其中:
我们的方法适用于任何平面标定目标,例如常见的棋盘和圆网格图案。然而,对于交互式用户指导,快速的板检测是至关重要的。因此,我们使用在OpenCV中实现的自识别ChArUco[5]图案。与经典棋盘相比,这节省了检测到的矩形对规范拓扑的耗时顺序。然而,我们也可以在这里使用任何最近开发的自我识别目标[1,2,4]。
图案大小被设置为 个方块,从而在每个捕获帧的棋盘关节上进行多达40次测量。这允许成功地完成初始化,即使没有检测到所有的标记,如第4.3节中所讨论的那样。
我们的方法的核心思想是明确地指定使用Zhang[16]的方法进行标定的单个关键帧。
在本节中,首先讨论了内参和标定板姿态的关系,我们将参数向量分为针孔和失真参数。对于每个参数组,我们然后给出我们的规则集,以生成一个最优姿态,同时显式地避免退化配置。
看公式1,我们可以看到, 和都应用于后投影,描述了二维到二维的映射。因此,我们可以考虑仅从一个均匀采样图像的板姿态来估计 。然而,由于内参和外参同时由[16]估计,不确定性增加。
引用:

假设 单位矩阵 和失真参数为零,通过乘出(1),我们得到:
对于所有的图案点 。在这种情况下,两者之间有两个不确定的参数:

图2 失真图,显示了每个像素的∆(p)的大小。
为了找到目标姿态,我们应用阈值化和拟合一个轴对齐的边界框。
于是,我们将参数向量 划分为,,,和、、、、,并分别考虑每一组。
在优化中的参数时,必须避免奇异的姿态。除了上面讨论的案例外,我们还纳入了在[11]中确定的方法。特别是,我们限制了标定图案的三维配置如下:
这些限制确保每个姿态都添加了进一步约束针孔相机的参数信息。

图3 示例性姿态选择状态。顶部:色散指数。
左:经过一个(洋红色)和两个(黄色)细分步骤后的固有标定候选位置。
右:已经访问过的区域的扭曲地图。
对于内参,我们遵循[13,16],其目标是最大化成像平面和标定板之间的角扩散。因此,生成的姿势如下:
对于失真参数 ,目标是提高显示出强畸变的图像区域的采样精度。为此,我们根据当前的标定估计生成一个失真图,以编码每个像素的位移。使用这张地图,我们搜索扭曲的区域如下:
我们设置了上述的角范围和宽度限制,以便使用罗技C525相机可以可靠地检测到标定板。
底层标定方法[16]需要至少两个初始解决方案的模式视图,我们选择如下:
为了在不了解使用相机的情况下渲染第一个姿态的精确叠加,我们采用了类似于[10]的引导策略;如果我们可以检测到标定板,我们只进行单帧标定估计焦距—主点固定在中心,设置为零。
在下面,我们将介绍参数细化和用户指导部分以及任何使用的启发式方法。这就完成了用于真实数据实验的标定流程。
在使用两个关键帧获得一个初始解后,其目标是使估计的参数:累积的方差 最小化,我们通过一次针对单个参数的方差来解决这个问题。这里我们选择离散指数最高(MaxIOD)的参数:当且仅当。根据参数组,然后生成如第3节中所述的姿态。
为了确定收敛性,我们使用参数方差 的比率检验。如果减少的 低于给出的阈值,我们假设该参数是收敛的,并排除了它的进一步细化。在这里,我们只考虑来自同一组的参数,因为在互补组中通常只有很少的减少。一旦所有参数C都收敛了,标定就会终止。
根据初始化方法选择前两个姿态。姿势2-10和11-20是通过互补的策略来选择的。对罗技C525相机周围的20个相机模型的合成图像进行评估。
为了指导用户,目标相机姿态投影使用当前估计的内在参数。然后,这个投影被显示为一个覆盖在直播视频流的顶部(参见图1和补充材料中的视频)。
验证用户是否足够接近目标姿态我们使用Jaccard指数J(A,B)(交集联合)计算的投影模式的目标姿态T和面积的投影从当前姿态估计e我们假设用户已经达到所需的姿态如果J(T,E)>0.8。
比较投影重叠而不是直接使用估计的姿态是更稳健的,因为姿态估计通常是不可靠的——特别是在初始化期间。
在整个过程中,我们强制执行通用启发式约束[6,7.2],即约束的数量应该超过未知数的5倍。所使用的校准方法[16]不仅估计了固有参数C,而且还估计了模型平面和图像平面的相对姿态,即参数R、三维旋转和t、三维平移。当使用M校准图像时,我们有d=9+6M未知数,每个点对应提供了两个约束。对于初始化(M=2),我们有21个未知数,这意味着总共需要52.5个点对应或每帧需要27个对应。对于任何后续的帧,只需要15个点。
为了防止由于运动模糊和滚动快门伪影而导致的不准确的测量,图案应该是静止的。为了确保这一点,我们要求在连续的帧中重新检测到所有的点,并且这些点的平均运动要小于1.5px(根据经验确定)。
在合成数据和真实数据上对该方法进行了评价。合成实验旨在验证第3节中提出的参数分割和姿态生成规则,并使用真实数据与其他方法进行比较。此外,通过对测试集进行直接优化,估计了结果与真实数据的紧致性。

图4 姿态选择策略和校准参数不确定性的相关性(因此误差条意味着“σ的方差”)
相机参数是基于罗技C525相机 的校准参数。然而,实际参数在周围使用协方差矩阵进行抽样,允许每个参数有10%的偏差:
因此,每个合成校准对应于使用一个不同的相机与已知的真实标签参数。为了推广到不同的相机模型,我们保留了上述姿态生成序列,但使用了20个不同的相机C。
图4显示了各参数的平均标准差σC。值得注意的是,如果使用与参数组匹配的姿态,σ值会显著下降。
我们还评估了MaxIOD作为误差度量的使用,通过比较其与MaxERE[10]和已知估计误差的。与MaxERE一样,MaxIOD与集合相关(见图5a)。此外,如图5b所示,IOD的减少适用于平衡校准质量和所需的校准帧的数量。


我们使用了第2.2节中描述的模式,该模式为OpenCV和我们的方法提供了每帧40个测量值。在AprilCal中,我们使用了5x7的AprilTag目标,它产生了大致相同的测量量。
我们的方法的收敛阈值设置为10%,AprilCal的停止精度参数设置为2.0。由于OpenCV方法不提供收敛性监测,我们在这里的10帧后停止了校准。
表1显示了每种方法5次校准运行的平均结果,测量所需的帧数和。在这里,我们的方法只需要AprilCal所需要的70%的帧,而达到比值低36% (比OpenCV低64%)。
前一节的结果表明,我们的方法能够提供最低的校准误差,同时使用更少的校准帧比可比方法的校准误差。然而,目前还不清楚该解决方案是使用最小的帧量,还是有可能在达到相同的校准错误的同时使用帧的子集。
因此,我们进一步测试了我们的校准结果的紧致性。我们使用了一个贪婪算法,给定由我们的方法捕获的一组帧,试图找到一个更小的子集。它优化了测试集,直接最小化了估计误差。
算法计算如下:给定一组训练图像(校准序列):
在保持相同估计误差的情况下,贪婪最优解需要75%的帧,同时(见表1)。这表明,虽然比[10]有了显著的改进,但我们的方法在紧性意义上还不是最优的。贪心算法需要一个先验记录的测试集,并且只找到现有校准序列的最小子集,但不能生成任何校准姿态。
我们在5名同事中进行了一项非正式的调查,以测量在使用我们的方法时所需的校准时间。该工具是第一次使用,唯一给定的指令是覆盖应该与校准模式匹配。照相机是固定的,标定板必须被移动。用户平均需要1:33分钟才能以最高的捕获8.7帧。
我们提出了一种校准方法来生成一组紧凑的校准框架,适合于交互式用户指导。避免了奇异的姿态配置,从而捕获约9个关键帧就足以进行精确的校准。这比可比的解决方案少了30%。所提供的用户指导允许没有经验的用户在2分钟内完成校准。校准精度可以根据收敛阈值与所需的校准时间进行加权。摄像机参数的不确定性在整个过程中都被监测,以确保可以反复达到给定的置信水平。
我们的评估表明,所需的帧的数量仍然可以减少,以进一步加快这个过程。我们只使用一个广泛而简单的失真模型,在未来的工作中需要考虑薄棱镜[15]、径向[8]和倾斜传感器。最终,我们可以加入对未使用的参数的检测。这将允许从最复杂的失真模型开始,它可以在校准过程中逐渐减少。
此外,该方法需要适应特殊情况,如显微镜,其中视野深度限制可能的校准角度或在大距离的校准,因此缩放标定板是不需要的。
该算法的基于OpenCV的实现是开源的:https://github.com/paroj/pose_calib.


本文仅做学术分享,如有侵权,请联系删文。