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