文/陈光
微信公众号/自动驾驶干货铺
前言
上一次的分享里,我介绍了GPS+IMU这组黄金搭档,这两个传感器的组合能够实现城区道路自动驾驶的稳定定位功能,解决了第一个大问题“我”在哪的问题。
为了能让无人车能像人一样,遇到障碍物或红灯就减速,直到停止;遇到绿灯或前方无障碍物的情况,进行加速等操作。这就需要车载传感器去周围的环境进行感知。
应用于无人车上的传感器目前有四大类,分别是摄像机,激光雷达、毫米波雷达和超声波雷达。不同的传感器根据其传感特性,布置在车身的不同位置。
今天我以百度Apollo 2.0开放的摄像头及其模块作为引子,对无人车上的摄像机进行详细介绍。
下图就是百度Apollo 2.0推荐使用的摄像机LI-USB30-AR023ZWDR。Apollo 2.0中使用了两个同样的摄像机,通过USB3.0的转接线接入控制器,传递彩色图像信息。两个摄像机的镜头的焦距分别是6mm和25mm,分别用于检测近处和远处的红绿灯。
正文
摄像机的分类
摄像机根据镜头和布置方式的不同主要有以下四种:单目摄像机、双目摄像机、三目摄像机和环视摄像机。
单目摄像机
单目摄像机模组只包含一个摄像机和一个镜头。
由于很多图像算法的研究都是基于单目摄像机开发的,因此相对于其他类别的摄像机,单目摄像机的算法成熟度更高。
但是单目有着两个先天的缺陷。
一是它的视野完全取决于镜头。
焦距短的镜头,视野广,但缺失远处的信息。反之亦然。因此单目摄像机一般选用适中焦距的镜头。
二是单目测距的精度较低。
摄像机的成像图是透视图,即越远的物体成像越小。近处的物体,需要用几百甚至上千个像素点描述;而处于远处的同一物体,可能只需要几个像素点即可描述出来。这种特性会导致,越远的地方,一个像素点代表的距离越大,因此对单目来说物体越远,测距的精度越低。
双目摄像机
由于单目测距存在缺陷,双目摄像机应运而生。
相近的两个摄像机拍摄物体时,会得到同一物体在摄像机的成像平面的像素偏移量。有了像素偏移量、相机焦距和两个摄像机的实际距离这些信息,根据数学换算即可得到物体的距离。原理图下图。
图片出处:https://www.slideshare.net/DngNguyn43/stereo-vision-42147593
根据双目测距原理应用在图像上每一个像素点时,即可得到图像的深度信息,如下图。
图片出处:《2D-3D-based on-board pedestrian detection system》
深度信息的加入,不仅能便于障碍物的分类,更能提高高精度地图定位匹配的精度。
虽然双目能得到较高精度的测距结果和提供图像分割的能力,但是它与单目一样,镜头的视野完全依赖于镜头。而且双目测距原理对两个镜头的安装位置和距离要求较多,这就会给相机的标定带来麻烦。
三目摄像机
由于单目和双目都存在某些缺陷,因此广泛应用于无人驾驶的摄像机方案为三目摄像机。三目摄像机其实就是三个不同焦距单目摄像机的组合。
下图为特斯拉 AutoPilot 2.0安装在挡风玻璃下方的三目摄像机。
根据焦距不同,每个摄像机所感知的范围也不尽相同。
如下图,可以看出三个摄像头的感知范围由远及近,分别为前视窄视野摄像头(最远感知250米)、前视主视野摄像头(最远感知150米)及前视宽视野摄像头(最远感知60米)。
对摄像机来说,感知的范围要么损失视野,要么损失距离。三目摄像机能较好地弥补感知范围的问题。因此在业界被广泛应用。
那么测距精度的问题怎么办?
正是由于三目摄像机每个相机的视野不同,因此近处的测距交给宽视野摄像头,中距离的测距交给主视野摄像头,更远的测距交给窄视野摄像头。这样一来每个摄像机都能发挥其最大优势。
三目的缺点是需要同时标定三个摄像机,因而工作量更大一些。其次软件部分需要关联三个摄像机的数据,对算法要求也很高。
环视摄像机
之前提到的三款摄像机它们所用的镜头都是非鱼眼的,环视摄像机的镜头是鱼眼镜头,而且安装位置是朝向地面的。某些高配车型上会有“360°全景显示”功能,所用到的就是环视摄像机。
安装于车辆前方、车辆左右后视镜下和车辆后方的四个鱼眼镜头采集图像,采集到的图像与下图类似。鱼眼摄像机为了获取足够大的视野,代价是图像的畸变严重。
通过标定值,进行图像的投影变换,可将图像还原成俯视图的样子。之后对四个方向的图像进行拼接,再在四幅图像的中间放上一张车的俯视图,即可实现从车顶往下看的效果。如下图。
环视摄像机的感知范围并不大,主要用于车身5~10米内的障碍物检测、自主泊车时的库位线识别等。
摄像机的功能
摄像机在无人车上的应用,主要有两大类功能。分别是感知能力,其次是定位能力。
感知能力
在无人驾驶领域,摄像机的主要功能是实现各种环境信息的感知。接下来我会以Mobileye(一家国际上功能做视觉最牛的公司)为例介绍摄像机能够实现的功能。先看两张图,视频可以拖拽到最后点击“阅读全文”。
可以看出摄像机可以提供的感知能力有:
①车道线(lane)
图中的深绿色线。车道线是摄像机能够感知的最基本的信息,拥有车道线检测功能即可实现高速公路的车道保持功能。
②障碍物(Obstacle)
图中使用矩形框框中的物体。图中仅有汽车、行人和自行车等物体。其实障碍物的种类可以更丰富,比如摩托车、卡车,甚至动物都是可以检测到的。有了障碍物信息,无人车即可完成车道内的跟车行驶。
③交通标志牌和地面标志(Traffic Sign and Road Sign)
图中使用绿色或红色矩形框框出的物体。这些感知信息更多的是作为道路特征与高精度地图做匹配后,辅助定位。当然也可以基于这些感知结果进行地图的更新。
④可通行空间(FreeSpace)
图中使用透明绿的覆盖的区域。该区域表示无人车可以正常行使的区域。可通行空间可以让车辆不再局限于车道内行驶,实现更多跨车道的超车功能等,把车开的更像老司机。
⑤交通信号灯(Traffic Light)
图中使用绿框框出来的物体。交通信号灯状态的感知能力对于城区行驶的无人驾驶汽车十分重要,这也是为什么百度Apollo 2.0实现“简单路况自动驾驶”所必须开放的功能。
定位能力
相信大家都对视觉SLAM技术都有所耳闻,根据提前建好的地图和实时的感知结果做匹配,获取当前无人车的位置。视觉SLAM需要解决的最大问题在于地图的容量过大,稍微大一点的区域,就对硬盘的容量要求很高。如何制作出足够轻量化的地图,成为SLAM技术商业化的关键。
Mobileye在已实现的道路经验管理(Road Experience Management,REM)功能,能够实现复杂路况的全局定位能力。如下图。
看个视频感受一下。
小结
目前百度Apollo 2.0仅开放了摄像机的交通信号灯检测能力,障碍物的感知还是强烈依赖于激光雷达和毫米波雷达。相信在未来,文章中介绍的这些功能都会慢慢开放的。
摄像机是所有车载传感器中,感知能力最强的,没有之一。这也是为什么特斯拉采用了纯视觉的感知方案,而坚持不使用激光雷达的原因(当然激光雷达贵也是一个因素)。
好了\(^o^)/~,这篇分享基本上让大家了解了无人车所使用到的视觉感知技术。
如果您觉得有收获,希望您能把文章分享给更多的人。这是我持续更新文章的最大动力。
感谢(・ω・)ノ!