车载双目ADAS(一):双目相机为什么要进行标定

目录

标定的缘由

1、拍摄光线

2、角点检测的函数 

3、标定板的打印精细程度


     关于相机标定的博客和论文现在已经多到鱼龙混杂的层面,多数初学者在众多资料中翻来翻去,然而对很多的标定细节和原理性知识知之甚少,以致于停留在跑demo的级别。本人在翻看大量的博客论文基础上,深感有必要将相机标定的知识进行一些归纳总结。由于才疏学浅,可能会在下面的文章中出现这样或者那样的错误,恳请大家直接指出错误,我一定深刻反思,立即整改。

标定的缘由

   谈到相机标定,我们首先便会从世界坐标系,相机坐标系,图像坐标系和像素坐标系谈起。然而,这其实会让很多人有一种困惑:为什么要进行相机标定?

     因为相机的中存在畸变,主要为径向畸变切向畸变;针对双目相机,还要通过标定获取两个相机之间的参数(旋转和平移)。首先,我们这里顺水推舟,主要介绍一下相机的畸变究竟为什么无法从硬件层面消除,而一定要通过标定算法。

       相机的主要部件包括镜头(Lens)和感光传感器(CMOS/CCD)相机的成像主要是基于理想的小孔成像模型,但是针孔模型难以收集足够的光线,保证图像的清晰性。为了保证相机的收集光线的能力,透镜应运而生,带着各类畸变而生。很显然,畸变是相机的与生俱来的东西。

                                                             

     其中,径向畸变主要是由于镜头的球形形状造成,图像像素点以畸变中心为中心点沿着径向产生的位置偏差,从而导致图像中所成的像发生形变。切向畸变主要是由于相机的装配造成。理想的相机装配结果是sensor的法线和Lens的主光轴完全重合,Lens的光轴恰好垂直于CMOS的圆心处,但是事与愿违,即使最精密的加工精度和装配精度也无法保证此类状态。这也就意味着拍摄得到的图像中心不是光轴的中心,光心和图像中心之间存在xshift,yshift,最终导致,实际物体在图像的形状发生歪曲。另外,双目相机的要求的两个相机的光轴完全是平行,相机的各参数越一致越好,从而保证左右拍摄图像的一致性,同样,现在的相机装配精度难以在低成本的条件下达到很高的精度,左右相机的光轴的位移和各个方向的转角误差,直接影响左右图像校正以后的有效画面篇幅的大小。现阶段国内的部分镜头厂商通过AA设备能过达到左右相机的光轴在10pixel左右的装配精度,和日韩企业还差一个档次。

                                               

径向畸变和切向畸变图(matlab 老版本工具箱绘制)

                                                   

      在此,我们不得不郑重提醒很多双目视觉研究者,应该更加关注那些成本低,测距精度高,适应性强的“双目产品”。双目视觉理论发展已经数十年,应用领域仍然局限于很多固定场景,最近几年也开始应用在无人机和自动驾驶领域,但是依然面临着测距精度和相机结构相矛盾的现状。测距精度越高,左右双目相机的位置的越要求绝对不变,但是,由于外力或环境温度变化往往会导致相机结果发生微小变化(微米级别),最终导致测距精度急剧下降,或是随着时间的累积,精度变差。当然,现阶段的自标定算法的鲁棒性有待进一步提高。

        现阶段影响标定的精度的主要因素:

1、拍摄光线

     拍摄光线不佳,图像噪点较多,影响角点检测的准确性。

2、角点检测的函数 

      opencv和matlab提供的角点检测函数检测出的角点坐标,存在差异。下图为拍摄同一标定板获取的平行等位误差和视差,左图为matlab,右图为opencv。做了大量实验发现,opencv提供的角点检测函数得到数据的方差比matlab的结果均要偏大。

3、标定板的打印精细程度

    一般而言,如果自己的项目对测距精度要求不是很好,自己随便打印一张黑白棋盘格的标定板即可。但是对于车载双目ADAS必须要求整个系统的高可靠性能。因此,需要特别定制高精度的标定板。下图为使用两张价格相差接近10倍的标定板求出的板上角点处的视差。

你可能感兴趣的:(车载ADAS,-CAMERA)