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