计算机视觉在无人车场景中解决的最主要问题可以分为两大类:物体的识别与跟踪,以及车辆本身的定位。物体的识别与跟踪:通过深度学习的方法,无人车可以识别在行驶途中遇到的物体,比如行人、空旷的行驶空间、地上的标志、红绿灯,以及旁边的车辆等。由于行人及旁边的车辆等物体都是在运动的,我们]儒要跟踪这些物体以达到防止碰撞的目的,这就会涉及Optical Flow等运动预测的算法。车辆本身的定位:通过基于拓扑与地标的算法,或者是基于几何的视觉里程计算法,无人车可以实时确定本身的位置,以满足自主导航的需求。
基于视觉的定位算法有两大分类: 一种是基于拓扑与地标的算法,另一种是基于几何的视觉里程计算法。基于拓扑与地标的算法把所有的地标组成-一个拓扑图, 然后当无人车监测到某个地标时,便可以大致推断出自己所在的位置。基于拓扑与地标的算法相对于基于几何的方法容易些,但是要求预先建立精准的拓扑图,比如将每个路口的标志物做成地标。基于几何的视觉里程计算法计算比较复杂,但是并不需要预先建立精准的拓扑图,这种算法可以在定位的同时扩展地图。本节我们将着重介绍视觉里程计算法。
视觉里程计算法主要分为单目及双目两种。纯单目视觉里程算法存在的主要问题是无法推算出观察到的物体大小,所以使用者必须假设或者推算出一个初步的大小,或者通过与其他的传感器结合(比如陀螺仪)进行准确的定位。双目的视觉里程计算法通过左右图triangulation计算出特征点的深度,然后从深度信息中推算出物体的大小。