计算机视觉与无人自动驾驶
摘要
- 计算机视觉与无人自动驾驶概述
- 计算机视觉在无人自动驾驶领域的应用及其有效算法
一、 计算机视觉与无人自动驾驶概述
首先我们知道计算机视觉是一个跨学科的科学领域,涉及计算机如何从数字图像或视频中获得高级理解,而从工程的角度来看,它主要是在寻求理解和自动化人类视觉系统可以完成的任务。主要包括研究获取、处理、分析和理解数字图像的方法,以及从现实世界中获取高维数据以产生数字或符号信息的方法,并且这里所说的理解意味着将视觉图像(视网膜的输入)转换为对思维过程有意义并可以引发适当行动的世界描述,或者可以看作是使用借助几何、物理学、统计学和学习理论构建的模型从图像数据中解开符号信息。
而无人自动驾驶汽车则是一种结合了车辆自动化的汽车,即是一种能够感知其环境并在很少或没有人为输入的情况下安全移动的地面车辆,自动驾驶汽车结合了各种传感器来感知周围环境,例如热像仪、雷达、激光雷达、声纳、GPS、里程计和惯性测量单元,用先进的控制系统解释感官信息以识别适当的导航路径,以及障碍物和相关标志。
其实早期无人驾驶车辆主要应用激光雷达传感器,而近些年来计算机视觉发展迅速,低成本的视觉传感系统在无人驾驶领域也得到广泛的应用,视觉SLAM技术更是将研究推向了一个新的高度,成为无人驾驶领域重要的研究方向。这里说一下,SLAM(Simultaneous localization and Mapping)是目前无人驾驶技术中的一个关键技术,无人车在没有任何先验信息的情况下,在未知场景中,通过车载传感器记录的数据进行实时定位和环境建图,进而实时感知周围的环境状况,从而能够正确安全地在道路上完成路径规划、车辆控制以及自主行驶等任务。
二、 计算机视觉在无人驾驶领域的应用及有效算法
根据美国汽车工程师协会(Society of Automotive Engineers,SAE)定义,智能汽车驾驶自动化分为:一级为辅助驾驶,二级为部分自动驾驶,三级为有条件自动驾驶,四级为高度自动驾驶,五级为安全自动驾驶。而在无人驾驶技术中,感知毫无疑问是最基础的部分,如果没有对车辆周围三维环境的定量感知,就如同人没有了眼睛,无人驾驶的决策系统就无法正常工作。为了安全与准确的感知,无人驾驶系统使用了多种传感器,其中可视为广义“视觉”的有超声波雷达、毫米波雷达、激光雷达(LiDAR)和摄像头等。超声波雷达由于反应速度和分辨率的问题主要用于倒车雷达,毫米波雷达和激光雷达承担了主要的中长距测距和环境感知,而摄像头主要用于交通信号灯和其他物体的识别。LiDAR由于出色的精度和速度,一直是无人驾驶感知系统中的主角,是厘米级的高精度定位中不可或缺的部分。但是LiDAR存在成本昂贵、空气中的悬浮物影响精度等问题,毫米波雷达虽然相比LiDAR可以适应较恶劣的天气和灰尘,但也需要防止其他通讯设备和雷达间的电磁波干扰。然而近些年来随着计算机系统的不断优化,对计算机视觉算法的不断研究以及传感器设备性能的不断完善,大大稳固了无人驾驶领域对于视觉传感系统以及计算机视觉的应用,比如说特斯拉作为纯机器视觉路线的代表,如今其几乎所有的特斯拉汽车都配备了摄像头来实现Autopilot自动辅助驾驶,特斯拉CEO马斯克也曾在“Autonomy Day”产品发布会上表示“用激光雷达的都是傻子”,他认为从依靠摄像头的纯视觉算法已经可以完成自动驾驶,不必使用价格高昂的激光雷达,并且依靠着目前所有在路上跑的特斯拉汽车进行数据搜集,特斯拉在技术落地和数据搜集量上已经做到了领先同行的水准。
目前计算机视觉在无人车场景中解决的最主要的问题可以分为两大方面**,一是物体的识别与跟踪,二是车辆本身的定位**。首先物体的识别与跟踪是指通过深度学习的方法,我们可以识别在行驶途中遇到的物体,比如行人、空旷的行驶空间、地上的标志、红绿灯以及旁边的车辆等,而由于行人以及旁边的车辆等物体都是在运动的,我们需要跟踪这些物体以达到防止碰撞的目的,这就涉及到Optical Flow等运动预测算法。
这里的Optical Flow是图片序列或者视频中像素级的密集对应关系,例如在每个像素上估算一个2维的偏移矢量,得到的Optical Flow以2维矢量场表示,而由于最近几年深度学习的革命性发展,计算机视觉领域开始大量使用CNN,物体识别的准确率和速度得到了很大提升,但总的来说物体识别算法的输出一般是有噪音的,也即物体的识别有可能不稳定,物体可能被遮挡,可能有短暂误识别等,而在MOT(Multi-Object Tracking)问题中流行的Tracking-by-detection方法就要解决如何基于有噪音的识别结果获得鲁棒的物体运动轨迹的难点。在ICCV 2015会议上,斯坦福大学的研究者发表了基于马尔可夫决策过程(MDP)的MOT算法来解决这个问题。其次车辆本身的定位主要通过基于拓扑与地标算法,或者是基于几何的视觉里程计算法,无人车可以实时确定自身位置,满足自主导航的需求。首先是基于拓扑与地标的算法,其把所有的地标组成一个拓扑图,然后当无人车监测到某个地标时,便可以大致推断出自己所在的位置,而基于几何的视觉里程计算法计算比较复杂,但是不需要预先建立精准的拓扑图,而且这种算法可以在定位的同时扩展地图。
从计算机视觉的角度,无人驾驶是一次难得的机遇,无人车产业爆发带来的资源、无人车收集的大量真实世界数据和LiDAR提供的高精度三维信息可能意味着计算机视觉将要迎来大数据带来的红利,数据的极大丰富和算法的迭代提高相辅相成,会推动计算机视觉研究前进,并使之在无人驾驶中起到更加不可或缺的作用。
参考文献
[1] 黄卫平. 数据智能科学技术导论
[2] https://en.wikipedia.org/wiki/Computer_vision
[3] https://en.wikipedia.org/wiki/Optical_flow
[4] https://baike.baidu.com/