《科技创新与品牌》杂志社学术 Academic

自动驾驶中的计算机视觉技术研究

摘  要:计算机视觉在自动驾驶系统中占据了非常重要的位置。本文将对计算机视觉技术是如何应用到自动驾驶中的进行简要介绍,并讨论在面对行人运动轨迹预测这类自动驾驶难题时计算机视觉技术应扮演怎样的角色。

关键词:自动驾驶;计算机视觉;行人运动轨迹预测


1 背景概述


自动驾驶不仅可以避免因司机酗酒或疲劳引起的交通事故,而且基于自动驾驶的快速反应能力及时刻在线的监控系统,还能缓解交通压力,使得公共道路交通资源得到更有效地分配。

目前自动驾驶被分为五个等级:1级,辅助驾驶,通过驾驶环境对方向盘和加减速中的一项操作提供驾驶支持,其他的驾驶动作都由人类驾驶员进行操作;2级,半自动驾驶,通过驾驶环境对方向盘和加减速中的多项操作提供驾驶支持,其他的驾驶动作都由人类驾驶员进行操作;3级,高度自动驾驶,或者称有条件自动驾驶,由自动驾驶系统完成所有的驾驶操作,根据系统要求,人类驾驶者需要在适当的时候提供应答;4级,超高度自动驾驶,由自动驾驶系统完成所有的驾驶操作,根据系统要求,人类驾驶者不需要对所有的系统请求做出应答,包括限定道路和环境条件等;5级,全自动驾驶,在所有人类驾驶者可以应付的道路和环境条件下,均可以由自动驾驶系统自主完成所有的驾驶操作。

目前,国内已有多家厂商投入自动驾驶的研究。京东已开始使用自动驾驶送货机器人进行快递的配送。百度在7月4日的开发者大会上宣布其量产自动驾驶巴士阿波罗龙已达到L4级,且其对外开放了自动驾驶平台apollo用于帮助汽车行业及自动驾驶领域研究者搭建自动驾驶系统。Google旗下的自动驾驶公司Waymo预计在今年实现自动驾驶商用。


2 用于自动驾驶的计算机视觉技术


自动驾驶系统是一个集合多种学科技术的复杂系统。通常来说自动驾驶大体上可以分为三个模块:(1)运动控制模块,此模块用于控制汽车的速度、转向、刹车灯行为;(2)行为决策模块,该模块用于根据汽车所处的环境决策出汽车下一步需要采取的运动方式,该模块需要依赖GPS系统及计算机视觉系统,GPS系统用于对汽车运动的路径做全局规划,而计算机视觉系统则主要根据路况实时调整汽车行驶策略;(3)环境感知模块,该模块用于感知周围的环境尤其是车辆、行人、路障等对汽车行驶有影响的环境信息,该模块主要通过激光雷达、毫米波测距雷达、超声波传感器等精密仪器对车辆周围物体进行感知,同时,计算机视觉系统也会在该模块中起到辅助定位的作用。

可以看到,计算机视觉技术在自动驾驶系统中承担着十分重要的任务。本章将对自动驾驶中的计算机视觉技术做简要介绍。

2.1 用于行为决策的计算机视觉技术

在自动驾驶中,车辆需要根据交通标志、道路地标、前后车转向灯等信息制定下一步的行驶策略。而识别这些交通信息需要首先使用目标检测对目标进行定位。


由于车辆在行驶时通常速度较快,因此自动驾驶对于系统反应速度要求极高。目前已有多种达到实时速度的目标检测算法,而这些目标检测算法多采用了回归方法,下面以YOLO(图1)为例,介绍采用回归方法的目标检测算法。图1为YOLO的网络结构图。

该方法与基于候选框推荐方法的最大区别为该方法在输出层直接将候选框位置和候选框内目标类别进行回归。而候选框推荐方法,如faster rcnn(图2),采用先使用一个区域推荐网络确定目标位置再对候选框内目标进行识别并微调候选框位置的方法。

YOLO将一张图像分解为S*S个网格,每个网络负责预测中心落在该网格的目标的位置和类别,如图2所示。

图2中,每个网格均需要对目标候选框位置、候选框含有目标物体的置信度、候选框内目标的类别及该候选框预测的准确度进行预测。其中目标候选框位置会给出B个预测值,每个预测值为一个包含四个元素的向量(x,y,w,h)。其中,(x,y)分别为目标候选框左上角点的横纵坐标,(w,h)分别为目标候选框的宽度和高度。候选框还有目标物体的置信度为一个0到1之间的值。此外,模型会对候选框内的目标进行类别预测,若存在C个类别,则给出C个对应类别的置信度。候选框预测的准确度计算公式为:

其中,Pr(Object)为目标中心落在该网格内的情况,若目标落中心在该网格内则其值为1,否则为0。第二项则为预测候选框和真实物体框的IOU值,图3为IOU示例。

IOU计算方式为:

每个网格输出一个S*S*(5*B+C)的向量作为该网格的预测值。

训练YOLO时,损失层使用的损失函数为:

其中,

为候选框位置的预测值,为第i个网格中的第j个候选框是否是该目标的候选框。为包含目标的候选框的候选框准确度预测值,为不包含目标的候选框的准确度预测值, 用于预测目标的类别,其中用于判断第i个网格是否有目标物体的中心落入其中。

该损失函数每项都含有I,使得只有当存在目标中心落在网格内时才会产生误差损失,并且每个格子仅对中心落在其内的目标产生损失。

而由于在目标检测时,大部分网格内不含目标的中心点,如果对每个网格预测值取相同权重则容易过拟合,因此对于没有目标的网格其权重设置为一个小于1的值,而有目标的网格其权重设置为1。同时,由于候选框位置预测结果的向量维度通常小于类别数目,若两者权重一致也不合理,因此在位置预测损失项前加入权重一个大于1的值,而类别预测损失项权重为1。当类别预测数量小于位置预测结果维度时,的值应调整为小于1。

在检测到目标后仍可使用计算机视觉技术对交通信息进行识别,例如对于红绿灯信号信息可直接通过RGB值进行判断,对于道路交通标志牌或道路地标可使用模板匹配或目标识别算法(图4)对其内容进行识别,而对于道路车道线可使用Candy边缘检测等方法进行检测。

计算机视觉技术用于自动驾驶决策流程示例图如图4所示。

2.2用于环境感知的计算机视觉技术

目前环境感知工作主要由激光雷达、毫米波测距雷达等精密仪器完成,但是仍需要计算机视觉技术在环境感知中发挥辅助作用。

在自动驾驶系统中,通常使用激光雷达测量远距离物体距离,使用毫米波雷达测量近距离物体距离。但是使用雷达进行测距受天气影响极大,在大雨、浓雾、浓烟等环境中激光传播距离急剧衰减,例如,在晴天时CO2激光雷达作用距离可达10至20千米,而在坏天气时,其作用距离会降至1千米以内。以高清视频图像为基础的目标检测虽然也会受到恶劣天气的影响,但相较激光雷达而言其所受影响较小,仍可对远距离物体进行一定程度的识别。

另一方面,对于行人这样的小目标,Stixel(sticks abovethe ground in the image,棒状像素)是目前效率最高的行人检测方法,它是2008年由奔驰和法兰克福大学Hern’an Badino教授推出的一种快速实时检测障碍物的方法,其每秒检测帧数可达到100帧以上。此外Stixel还可用于生成可行驶区域。


3 计算机视觉技术在自动驾驶中的发展


目前自动驾驶中面临着小目标、强遮挡、高动态三大难题。而自动驾驶环境中的行人同时具备了这三种特征。因此,行人检测是自动驾驶需要重点解决的问题。

行人相较车辆最大的特点就是其运动方向难以预测,如果自动驾驶车辆检测到行人就刹车等待行人通过,在人流量较大的路口将难以前进;而若自动驾驶车辆在判定安全可通行时,行人突然加速或变向则很可能发生交通事故。因此仅仅根据行人是否静止及行人当前的运动速度判断行人接下来的运动轨迹是无法保证行车安全的。

由于行人的运动模式具有复杂性,因此在对行人进行运动轨迹预测时需要考虑多特征多模态。预测行人运动轨迹时,首先要解决的问题就是行人的行为分析,即分析行人接下来准备采取的行动。例如,一个行人站在路旁,有可能是在等待合适的通行时机穿过街道,也可能是单纯的在等待某人。此时如果能根据一些特征,如行人是否在留意往来车辆,识别出该行人的行为,就能辅助自动驾驶汽车做出正确的行为决策。又如,一个行人正在横穿马路,如果其注意到了来往的车辆,其突然加速或变向的可能性就会很小,而若其未注意来往车辆,则此时自动驾驶汽车应注意对此人进行避让,防止其突然加速或变向。使用计算机视觉技术,对行人进行行为分析,有助于自动驾驶系统做出更正确的决策。

同时,多种传感器会传回多种模态的数据,利用这些数据可以提取到行人的多种特征包括行人朝向、位置、行为、前进速度、前进途径是否有障碍等。在预测行人运动轨迹时,需要将这些来自不同传感器的多种特征结合起来,进行综合分析。图5为使用多特征进行行人轨迹预测的流程示意图。


4 总结


随着人工智能技术及精密仪器的发展,自动驾驶技术已取得了一定的成果,但是由于真实驾驶环境的复杂性,自动驾驶仍面临着如小目标难检测、被遮挡目标难识别、高动态目标难预测等问题。计算机视觉技术在自动驾驶中发挥了极其重要的作用,但是这些难题不是单一学科的发展能够解决的。要解决这些问题必须综合各学科的长处,从多种角度出发,利用多个模态的信息进行综合分析。 

                                             

责编/马铭阳