1.基本原理
相机外参标定,通过拍摄多角度棋盘格标定相机外参。
2.外参标定板设计
标定板分为垂直标定板和水平标定板,由于地面的水平标定板不容易被检测到,本文采用垂直标定板进行相机标定。
在标定过程中标定板需要和车身坐标成正交状态,也就是标定板垂直边需要和地平面垂直、水平边需要和水平面垂直,且与车身中轴线保持水平状态,这里推荐设计标定板支架,利用支架调整标定板位置,具体的标定板设计如下图所示,标定板通过底部支架保证上下边缘与地平面水平。
标定板与支架示意图
3.垂直标定板摆放
垂直标定板的摆放如下图所示,这里需要注意,标定板在标定相机时需要和自身朝向的车身中轴线保持垂直。标定板可以在保证垂直的条件下前后左右进行移动以便于相机拍摄到较为清晰完整的标定板图像。
标定板摆放示意图
为了便于固定标定板和车身的位置,我们首先需要确认车身处于水平面上,车辆所在地的地面不能有不平或者较明显的斜坡,在水平场景上我们采取以下步骤在地面上画出车身坐标系,具体操作如下:
A为了画出前后水平线,这里分别找到车辆前后对称点,如下图A红色点。
B通过铅锤在地面画下标记,分别连接前后两个点得到平行于车前后保险杠的两条线,如下图B红色线
C由于前后的点是对称的,此时可以通过两个点得到车身的中轴线和前后水平线的交点(就是前后对称点的中点),如下图C蓝色点,蓝色点相连接就是车身中轴线。
D分别从前后水平线的中点向左右延长相等的距离(比如延长1.5m),获取两侧的对称点,如下图D黄色点,黄色点和车身垂直轴距离相等。
E之后用水平激光仪画在延长对称点出垂直于前后水平线上的点,如图E左侧图中浅蓝色线。
F这里可以看作从车上前方向车身后方通过激光直角尺画垂直线,查看垂直线和后方水平线的交点,如图F所示,下方线上黄色的点是通过下方水平线延长得到的点,下方紫色的点是依据前方线和点通过直角尺画垂直线与后水平线的交点,我们需要保证这两个点之间的差值小于4cm,才能保证车身外侧的边框符合车身坐标系。
通过以上操作我们就得到了车身相关的外接长方形,只需要保证标定板和地面上的线平行就可以保证标定板和车身坐标系水平,又由于标定板通过支架保证了其与地面的水平关系,因此标定板可以正交与车身坐标系。
4.标定板外参图像拍摄
将标定板按照车身坐标系摆放后即可拍摄相对的外参图像,外参图像拍摄要求相如下:
-
标定板光照要均匀,防止标定板上存在阴影或者光斑反射对算法识别标定板造成影响;
-
由于相机存在畸变且安装存在一定的角度,当标定板存在一定角度朝向相机时标定板棋盘格会有较大的形变,在识别算法中无法识别,所以要保证拍摄的标定板图像畸变不能太大,即拍摄过程中相机光轴和标定板法线夹角不能太大;
-
每张拍摄的标定板图片要拍摄到完整的标定板;
-
标定板的多张图片加起来的范围需要尽可能覆盖相机的视野;
-
标定板需要尽可能平展,不能有明显褶皱;
-
黑白方格为方形,大小一致,方格尺寸不限,可在图像中清晰分辨即可,建议30mm左右;
-
棋盘格标定需要拍摄多张棋盘格图片,通常为20-30张;
具体拍摄效果如下图,下图中上面两幅图符合要求,下面两幅图左边的有一定反光,右边的有阴影,会影响标定效果。
5.标定图像后处理
上述过程采集的图像作为输入给到感知组进行内外参算法,最后经过域控对摄像头图片进行拼接&对齐标定文件,流程如下图所示:
6.总结
以上介绍的就是相机标定的一种基本方法,那么什么样的场景需要做相机的标定呢?总结来说,一切涉及到图像坐标转换的应用都需要做相机标定,例如汽车360度环视系统、3D目标检测等。
最后:
可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试持续集成、测试架构开发测试框架、性能测试等。
这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!