摄像头的感知结果与人眼最为接近,且兼具成本低廉的特点,因此在无人驾驶、机器人自主感知等方面具有广泛的应用。激进如马斯克,于2021年4月对外宣布特斯拉产品将舍弃雷达,完全依赖摄像头,即“纯视觉”方案。
另一方面,随着工艺技术的进步,激光雷达的可靠性及性价比正稳步提升。与毫米波雷达相比,激光雷达在测角方面具有更高的精度,可形成更为稠密的点云探测结果,因此具有更强的目标感知能力。随着激光雷达成本的持续下降,未来有望进一步扩大在无人驾驶、自主感知方面的应用。
图像结果可较好的反应物体的形状、颜色、纹理等信息,非常有利于对目标的判别,且在深度学习技术的加持下,相应的自动识别算法大量涌现,识别精度和识别速度也在稳步提升。在特定场景下已具备了实时识别的能力。但其结果为二维平面投影,在成像过程中,会丢失目标的距离、方位等位置信息。同时不同空间位置的目标,在成像结果中也会形成遮挡干扰,带来检测和定位的信息损失。
与摄像头相比,激光雷达可形成包含目标距离和方位信息的三维点云,在空间位置感知上具有天然的优势。但目前受限于生产工艺和成本等因素,其点云密度有限,仅可粗略反应目标的大小、形状等信息。在远距离场景下,由于检测信噪比的下降,其探测结果也较为稀疏。
将激光雷达与摄像头结合的融合感知技术,便是为了充分利用各自的优点,实现对目标的可靠感知。一个符合直觉的思路便是,使用视觉进行目标检测,给出障碍物类别信息。然后投影到3D点云里面,获取障碍物位置。
成像原理、处理算法、成像范围的不同,导致了不同传感器探测结果的差异。这种差异的直观体现便是成像结果的坐标、分辨率不同,也即目标描述坐标系的不同。另外,在实际应用中,不同传感器的安装位置间存在差异,带来了描述坐标系间的整体差异。联合标定便是通过测量、估计的方式,对这种差异进行量化,达到一定统计意义上的最优。从而将目标在不同传感器下的描述转换到统一的坐标系下,为融合感知奠定基础。
标定分为内参标定和外参标定。
内参标定为对传感器本身成像处理过程中误差因素的标定。
实际中,摄像头成像误差的主要来源有两部分,第一是sensor制造产生的误差,比如sensor成像单元不是正方形,sensor歪斜;第二是镜头制造和安装产生的误差,镜头一般存在非线性的径向畸变;镜头与相机sensor安装不平行,还会产生切向畸变
我们所处的世界是三维的,而照片是二维的,这样我们可以把摄像头认为是一个函数,输入量是一个场景,输出量是一幅灰度图。这个从三维到二维的过程的函数是不可逆的。
摄像头标定的目标是我们找一个合适的数学模型,求出这个模型的参数,这样我们能够近似这个三维到二维的过程,使这个三维到二维的过程的函数找到反函数。
这个逼近的过程就是摄像头内参(Intrinsic parameters)标定,我们用简单的数学模型来表达复杂的成像过程,并且求出成像的反过程。标定之后的摄像头,便可以进行三维场景的反演,即深度的感知。
外参标定则是为了解决传感器安装位置、安装角度带来的影响,将其统一到固定的坐标系中。
在实际情况中,摄像头往往装在机械臂末端,移动小车前方,车辆四周,当我们需要知道成像平面内的物体在机器人或者车辆坐标系下的位置时,需要进行一个坐标转换,称为外参(Extrinsic parameters),它与摄像头制造、镜头畸变没有任何关系,只与摄像头在世界坐标系内的安装位置和角度有关。从纯数学的角度来说,刚体运动和坐标变换总是可以分解为一个旋转运动和一个平移运动。
标定板的第一大作用,确定物点和像点的对应性。这里用到的原理主要是「透视不变性」,打个比方,你近看一个人和远看一个人,虽然他的鼻子大小变了,你看鼻子的视角也变了,但是拓扑结构肯定是不变的,你也不可能把鼻子看成是嘴巴。
所以在标定板中,印刷了拓扑结构,广泛应用的是棋盘格和圆点格,这两种之所以成为主流,不仅是因为它们的拓扑结构明确且均匀,更重要的是检测其拓扑结构的算法简单且有效。棋盘格检测的是角点,只要对拍摄到的棋盘格图像横纵两个方向计算梯度就可获得;而圆点格的检测只需要对拍摄到的圆点格图样计算质心即可。
圆点格的效果应该是好于棋盘格,因为圆点质心的「透视不变性」要比棋盘格的角点稳定的多。但是圆点格的检测似乎是Halcon的专利(存疑),因此OpenCV和Matlab标定工具箱用的是棋盘格,要用圆点格得要自己写算法。
标定板的第二大作用是把标定板中的角点变换到摄像头坐标系下的坐标 (X,Y,Z) 。对于标定的初学者来说,很容易忽略的一点是标定板是具有标定板坐标系的。换句话说,标定板中的每个角点,在标定板坐标系下的位置是确定并且是已知的。
而标定板坐标系变换到摄像头坐标系的变换矩阵,即为外参,所以摄像头标定的外参是标定内参的副产品,它会随着标定板的摆放不同而不同。由标定板坐标系到摄像头坐标系通常使用变换矩阵表示。注意这个坐标系的变换是一个线性变换,反应到物理上讲,这意味者标定板必须尽可能的平,如果标定板不平,这个变换就不是线性的了。
标定的目的:获取摄像头的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后拍摄的图像进行矫正,得到畸变相对很小的图像。
标定的输入:标定图像上所有内角点的图像坐标,标定板图像上所有内角点的空间三维坐标(一般情况下假定图像位于Z=0平面上)。
标定的输出:摄像头的内参、外参系数。
这三个基础的问题就决定了使用Opencv实现张正友法标定相机的标定流程、标定结果评价以及使用标定结果矫正原始图像的完整流程:
如果用OpenCV或Matlab标定工具箱进行标定,需要给出棋盘格的物理尺寸,这其实就是在建立标定板坐标系,从测量的角度讲,标定板的精度是摄像头标定精度的基准,是误差传递链上的第一个环节。所以为了使模型更逼近真实情况,对标定板的质量有以下要求(按重要性顺序):
相机标定究竟在标定什么? - 知乎 (zhihu.com)
计算机视觉基础——相机标定 - 知乎 (zhihu.com)
最详细、最完整的相机标定讲解_卍卐没想到的博客-CSDN博客_相机标定
相机标定的原理及实现_邓程维的博客-CSDN博客_相机内参标定原理