Sandeep Hiremath, MathWorks
相机校准是估计照相机的内在,外在和镜头失真参数的过程。这是正确的基本过程的任何光学畸变伪像,估计物体的距离从照相机,测量在图像中的对象的大小,并构建用于增强现实系统的三维视图。计算机视觉工具箱™提供的应用程序和功能在执行所有基本任务相机标定工作流程, 包含:
相机校准应用和立体声摄像机校准应用程序都允许交互式选择的校准图像,建立失真系数,然后估计可以导出到MATLAB摄像机参数。
相机校准是用于通过校正透镜失真,以改善与照相机拍摄的图像的质量,或者测量在世界单位对象尺寸的技术。经校准的相机是在像机器视觉应用,用于测量实际的对象的大小,和机器人导航和3D场景重构的必要成分。
照相机校准包括确定照相机的特点:内部和外部参数。固有参数定义了相机的内部特性,如透镜的焦距,光学中心和透镜畸变系数。了解这些参数使我们能够提高图像质量纠正镜头畸变和现实世界的距离映射到像素。外部参数定义了摄像机的位置在空间参考固定对象,而这些参数是从运动立体校准和结构是必不可少的。在这段视频中,你将看到它是多么容易使用MATLAB的相机,包括鱼眼镜头和立体视觉来进行相机校准。
“计算机视觉工具箱”提供了MATLAB功能和一个交互式应用程序来执行摄像机校准。相机校准app是一个简单的交互界面,可以完成校准工作流程。
首先,添加棋盘格校准模式的校准图像。使用棋盘格是因为它的规则模式使它很容易被自动检测到。建议使用10至20幅图像来获得准确的校准结果。
接下来,进入世界单位棋盘广场的大小,所以毫米,厘米或英寸。这是寻找世界单位和图像像素之间的映射关系的一个必要步骤。该应用程序然后可自动检测在所提供的图像中的棋盘校准图案。
然后,您可以通过放大检查,结果检查棋盘检测的准确性。这有助于找出不正确的检测和消除不良图像。在选项下,你还可以指定计算的径向扭曲系数的数量。当光线弯曲的透镜的边缘附近更大的量比它们在光学中心做发生径向扭曲。典型地,两个系数是足够的,但对于严重失真,如在广角镜头的情况下,三个系数可能是必要的。您也可以使切向变形的估计。当透镜和照相机传感器不平行,则会出现此扭曲。
现在,按校准按钮求解相机参数。一旦校准完成,你可以通过可视化重投影误差评估校准结果。重投影误差
是校准误差的一个全球性的措施,是使用相机参数,你刚刚计算出的图像中检测点与点之间的差重新投影放回图像。这有利于识别形象不好,你可以删除并重新校准争取更好的成绩。
您还可以可视化的外部参数,看看哪些角度校准图像来自。这有助于发现当校准图像没有从足够的角度捕获,可能需要更多的图像来改善校准结果。
现在我们已经看到了标准相机的校准工作流程,让我们来看一下鱼眼镜头或广角镜头的校准工作流程。
与标准的相机镜头不同,这些相机使用一系列复杂的镜头来扩大相机的视野,使它能够捕捉广泛的全景或半球图像。然而,镜头通过扭曲图像中的透视线来实现这种非常广角的视角。计算机视觉工具箱校准算法使用了Scaramuzza提出的鱼眼相机模型,该模型的固有参数考虑了极端扭曲和拉伸。
在app中,选择相机型号选项为“鱼眼”。“在选项中,您现在可以选择启用传感器与图像平面之间对齐的估计。运行校准后,您可以查看已补偿镜头失真的无失真图像。透镜变形是一个常见的问题,它会使直线看起来弯曲。了解了相机的固有参数后,我们就可以应用一种不失真的方法来消除镜头的失真,现在你就可以看到,那些看起来弯曲的边缘已经被拉直了。校正镜头失真在计算机视觉中非常有用,比如将图像拼接在一起形成全景图,而全景图需要图像不失真才能正常工作。
下面是计算机视觉工具箱中的一个示例,演示了如何测量几枚硬币的直径,如右图所示。
最后,让我们看看使用MATLAB的立体相机校准工作流程。立体视觉是通过比较同一场景的两个或多个视图,从相机图像中恢复深度的过程。该计算的输出对于设计3D点云是有用的,其中每个3D点对应于其中一个图像中的一个像素。MATLAB中的立体相机校准器应用程序允许您估计立体相机对中每个相机的几何参数。您还可以估计相机对之间的平移和旋转。在app中,分别加载两个摄像头的校准棋盘图,然后按照之前的步骤进行校准,并分析结果。
这里的重投影误差条形图显示了每幅图像的平均重投影误差,以及总体平均误差。单击“视图”部分中的“显示矫正”选项,将显示立体矫正的效果。如果校准是准确的,图像将变得不失真和行对齐。
感谢您观看这段视频,请访问mathworks.com关于相机校准的更多信息。