相机标定①——标定计算
在【标定拍摄】完成,点击软件上的【标定参数计算】按钮,进入标定选择界面;建议选择【我是新手,需逐步标定】。以下所示图例及流程依据的是Capture NHP V2.0.0版本软件,其他Capture版本标定原理及流程基本相同,可参考查看。
【逐步标定】
步骤一、选择
选择标定工程路径,即标定拍摄时创建好的标定工程。选择完工程后,会刷新步骤3需要执行的操作;如果本工程已经执行过部分标定流程,已完成的步骤前的灰色图标会变成绿色。
在开始步骤2检测前,需输入正确的棋盘格小方块边长(单位毫米),如不清楚具体长度,可以用尺子量一下棋盘格一个标准正方形黑色或白色的边长。棋盘格角点是指两个黑色矩形和两个白色矩形共同的角点,将棋盘格长边和短边的角点数输入界面即可(前面填长边,后面填短边)。也可点击棋盘格信息设置旁边的提示按钮,会显示棋盘格说明,此棋盘格角点数为:11*8。
步骤二、检测
点击检测按钮,会弹窗进度条,检测所有图片②(标定拍摄的工程文件夹下original_images文件夹)的棋盘格角点,并将检测结果保存在corners_images文件夹。进度条结束后,在界面显示成功找到正确数量棋盘角点的图片数量以及主相机与其他副相机匹配的对数③。检测完成后,步骤2前的灰色图标会变成绿色。
步骤三、双目标定
主相机与其他副相机分别单相机标定,获取相机内参矩阵、畸变系数、外参( 相机对每张棋盘格图的旋转和平移向量)等,然后再进行双目标定,获取副相机相对于主相机的旋转矩阵及平移向量。根据棋盘格角点的世界坐标、相机内参、外参、畸变系数等参数,将 3D 角点投影回 2D 图像坐标后,计算与实际检测到的 2D 角点之间的误差,绘制重投影误差图;根据副相机相对于主相机的旋转矩阵及平移向量,绘制两相机的相机相对姿态图。
通过拉动界面的误差平均线,会高亮一些图片背景,鼠标右键这些图片,会显示移除并重建按钮,点击按钮会删除这些误差比较大的图片,重新进行以上计算,从而优化的得到的相机参数,也可手动删除;当可用的图片对数较多时,可通过多次删除将最大误差控制在0.5以下;当可用图片较少时,可一次删除一张误差较大的图,多次进行优化,尽量将最大误差控制在0.8以下,并保留10张及以上的可用图片。当剩余可用棋盘格图片存在多个倾斜角度及位置、最大误差满足要求、相机姿态图也比较符合实际的相机相对位置时,可点击确定按钮,进行下一个相机标定,当步骤3主相机与所有副相机完成双目标定时,步骤3前的灰色图标会变成绿色。
步骤四、主相机标定
对主相机进行单相机标定,同时选择一张棋盘格保持水平无倾斜④的图片,图片的水平状态决定了三维重建后坐标的水平面。主相机定标完成后,步骤4前的灰色图标会变成绿色。
步骤五、拍摄视场图
点击拍摄按钮,会弹出一个弹窗,提示用户关闭箱门、移走旷场、清理箱内杂物等,目的是减少拍摄视场图时画面里的干扰,更方便进行后期的视场检查。在点击确定按钮后,软件会从相机读取当前帧画面,并保存在软件所在路径的pictures文件夹(更新旧视场图)和当前标定工程的fov_images文件夹,完成后,会弹窗提醒拍摄成功。
为什么会在在此处进行标定拍摄?当标定保存完成后,会自动刷新主界面选择的标定文件路径,此时视场图与标定文件是互相对应的,当后期用户进行相机视场检查时,发现相机当前位置与视场图有偏移,则说明当前标定文件不可用,需重新进行相机标定。拍摄完成后,步骤5前的灰色图标会变成绿色。
步骤六、保存
点击保存按钮,会统合之前双目标定、主相机标定计算出来的相机各种参数,并保存在工程里的calibrationParas.pkl文件内,同时刷新主界面选择的标定文件路径为此文件路径
。当这些步骤都完成时,可退出逐步标定,开始实验录制。
所有步骤完成后的界面样式:
所有步骤完成后的工程样式:
【一键标定】
一键标定原理及基本流程与逐步标定基本相同,在双目标定时,会自动将error值大于0.8(配置文件可调)的图片删除,当所有图片的error值均小于0.8时自动进入下一步,在主相机标定时默认选择第一张图片。在所有步骤完成时,会显示多相机的相机相对姿态图,如下所示。
部分版本,且存在顶部视角时,由于显示bug,会出现这种情况,此时不建议通过一键标定进行相机标定。
当第一张图片不是水平时,不建议用一键标定。当标定拍摄的图片质量不是很好时,一键标定有可能能会出现有效图片张数太少而结束标定的情况出现,此时可以尝试用逐步标定,手动删除error图片,如果效果还是不行,建议重新标定拍摄。
注:
①软件进行相机标定的原理可参考——张有正标定法;
②在进行定标拍摄时,所有相机都会拍摄不同位置不同倾斜角度的棋盘格照片(如果标定拍摄设定拍摄张数是185张,相机数为4个,则会拍摄4*185张照片,存储在original_images文件夹下的 0 1 2 3文件夹,文件命名为image1.jpeg~image185.jpeg。
③相机本身是不分正副的,但是在进行标定计算时,我们人为规定第一视角的相机(original_images文件夹下的 0文件夹内图片对应的相机)为主相机,其他相机为副相机。当在主相机和某一副相机拍摄的相同位置及倾斜角度的照片(例如0文件夹的120.jpeg与1文件夹的120.jpeg)上均找到正确数量的角点时,记为匹配一对;
④在进行定标拍摄时,一般建议用户在前十张保持棋盘格水平静止拍摄,从而保证在主相机标定时可以选择一张水平图片。
参考文献:
- Z. Zhang, “A flexible new technique for camera calibration,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, no. 11, pp. 1330-1334, Nov. 2000, doi: 10.1109/34.888718.
- Zhengyou Zhang, “Flexible camera calibration by viewing a plane from unknown orientations,” Proceedings of the Seventh IEEE International Conference on Computer Vision, Kerkyra, Greece, 1999, pp. 666-673 vol.1, doi: 10.1109/ICCV.1999.791289.