汽车AVM (360度全景影像)的实现原理

汽车AVM (360度全景影像)的实现原理

上周在4S店试驾,然后注意到试驾车上标配的影像系统,就是显示屏显示当前车辆的俯瞰图,从顶部的视角实时显示当前车的周围情况。在各大汽车网站的配置上都写的“360度全景影像”。探索到正经一点的名字叫“AVM(Around View Monitor)”,中文:全景监控系统。

image

乍一看,俯瞰高空监控,你又不会真的在车顶架个支架,去装摄像头,那它的原理是什么呢,本着好奇宝宝的属性,盘它。

image

这是nissan-global的一张图,基本上就体现了全景监控系统的原来。

  1. 前、后、左、右四路鱼眼摄像头收集图像数据
  2. 然后经过软件系统进行图像处理(畸变矫正、透视变换、图像拼接)
  3. 3D模型映射,如果不需要更真实的效果的话,则不需要,直接图像输出就行了
  4. 显示到车内中控屏上

我们这里总结一下需要用到的成本:4个摄像头、行车电脑、显示屏。

  • 想要数据图像高清,那摄像头的成本就要增加。
  • 想要图像处理的响应速度好,那ECU(行车电脑)成本就要增加。
  • 想要显示的效果好,那屏幕的成本就要增加。

所以市面上从几百到几千的价格,就看你的定位选择了。遇到互相排斥的那就不要买了,比如:好摄像头配低分辨屏,或渣摄像头配高清屏,总有一个在浪费。行车电脑关系到响应速度(后面说)

AVM优点

image

  • 最直观的优点,让你的盲区全部变得可视。
  • 让你倒车入库的时候再便利,过限宽门等。
  • 其它软件附带更高级的功能:行人检测、倒车入库路线规划等

AVM缺点

  • 根据上面提到的,收集数据、图像处理、显示输出任何一步出错,都有可能让最终的显示结果不正确,所以千万不要依赖它,它只是更好的辅助工具,不是标准。
  • 每个车的精度判断不一样,不要太依赖
  • 要花钱

详细的整个实现过程

(安装摄像头就是工程师的部分了,略)

基于上面安装在车前、后、左、右的四路鱼眼摄像头,这时候我们就拍摄到了四个画面,但都是这种椭圆形的画面。

image

image

畸变较正

把刚刚椭圆形的画面较正

畸变校正是指通过对摄像机拍摄的图像进行处理,消除因摄像机等原因引起的畸变现象,使图像更为准确和真实。 畸变校正一般包括相机标定和图像处理两个步骤。 相机标定是指通过拍摄不同的标定板,计算相机内部和外部参数,从而建立相机模型。

这是具体怎么的相机标定和图像处理的算法,这里就不说了,需要的自行去搜索详细的理论,这里目的是理解这一步的作用,就是让图像正常。

image

投影变换

就是将一个 平面(图片)通过一个 投影矩阵 投影到一个新的视平面。

photoshop有个功能叫透视变形,其实就是这个功能。将图片从侧面变成俯瞰的平面。当然实现又是一套详细的理论。

image

图像拼接融合

将前、后、左、右四张经过畸变较正和投影变换的图片,进行拼接融合。变成一张完整的图,

image

类似这样,然后我们发现一个后遗症,就是图像最边上的元素被拉得好长。

这里引出2D的AVM和3D的AVM的区别

2D的AVM算法是基于投影变换,将鱼眼图像投影到鸟瞰图上。而单应变换有一个前提:就是平面假设。是把一个平面投影到另外一个平面。存在的问题是:图像中所有的三维物体,例如汽车、柱子、墙,全部被当成平面来处理。这些内容在鸟瞰图上会被拉的很长

安装在车身周围的鱼眼相机是单目相机,单目相机不能获取三维物体的深度。在图形学中有一种真实感增强的方法:制作一个三维模型,把二维的纹理贴图以某种方式映射到三维模型上,3D AVM正是使用了这个纹理映射技术,为驾驶员呈现出一个伪3D的效果

image

image

到这一步,整个全景监控系统的功能就实现了。

如果需要更好的视觉效果,可以创建一个简化的3D车辆模型,将刚刚的融合后的图像作为纹理映射到模型表面,达到更好的视觉体验。

实时处理

当然这个功能更多的时候,是使用在车辆运动过程中的(行驶或倒车),所以需要实时处理图像,需要追求更少的等待时间,你也不想倒车了2秒之后,显示屏才给你显示反馈吧。所以那种太便宜的,哪怕说得再天花乱坠,也不要买它。四路摄像头走线就知道,这个的装折成本不低。

最后

image

根据档位、方向盘等等各方面的信号,实时计算结合到系统一起输出,规划倒车入库线路,预览当前方向盘角度倒入路线等等。行人或异物检测与刹车联动,其它关于软件产品,你可以想到的各种功能联动。

同样还是摄像头和屏幕,增加了一层软件上的处理,就变成了一个完全不一样的体验,科技让生活更美好!