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