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