数据显示,在中国,10个人里就有3个人拥有驾照,也就意味着全中国有4亿多驾驶员。以车代步成为人们的普遍选择,汽车生活时代的到来既体现了社会的发展进步,又增加了交通出行的压力,拥堵毫无疑问是最突出的问题之一。
用智能解决出行难题的需求应运而生,自动驾驶能有效缓解驾驶者的紧张、疲劳状态,还能按章行驶减少主动违规违法。在行驶过程中,驾驶员会根据行人的移动轨迹预判其下一步的位置,然后依据车速进行安全路径的规划,无人驾驶车辆同样要能做到这些。这是多个移动物体的轨迹追踪与预测,难度比单一物体要高得多。这就是环境感知,也是无人驾驶汽车最具难度的技术。
自动驾驶四大核心技术分别是环境感知、精确定位、路径规划、线控执行,而环境感知主要包括三个方面:路面、静态物体和动态物体,是自动驾驶和机器人领域的核心技术。深兰科技的熊猫智能公交车、AI智能扫路机、吸尘机器人、洗地机器人等多款产品,都深度应用了该核心技术。
环境感知系统
环境感知要素
1. 静态环境
在自动车行驶过程中,无论是在结构化道路还是在非结构化道路区域,车身传感器系统首先需要获取周边环境的非语义原始数据,然后再从中提取关键环境信息,比如地面检测、车道线检测、路沿检测以及坡道检测等。这些信息在空间上相对稳定,是感知系统进行后续数据加工、分析和推理的基础,也因为这些数据极其重要,可以存储至高精度地图。实时感知的结果可以作为高精度地图的来源,并通过实时对比增加环境感知结论的置信度。
2. 一般障碍物
障碍物检测是感知系统的基本能力,检测的障碍物不包括语义信息,在车体坐标系下标识障碍物位置、大小和高度。障碍物可能是任何高于路面,车身安全距离内的物体,例如道路水马、锥桶、车辆、行人、消防栓、绿化植被、地灯等,检测的结果表达为3D目标框,用于车辆避障和紧急停车,满足无人驾驶基础安全需要。
3. 动态目标及VRU
自动驾驶车辆的通行能力是规划决策模块决定的,具体落实在局部路径规划和速度优化,行驶的策略需要根据目标的类型智能调整,才能使得车辆在行驶流畅、灵巧的同时确保安全第一。因此,需要对动态目标进行识别和跟踪,掌握车体周围一切运动的车辆的速度、方向以及类型,所处的车道。识别哪些障碍物是VRU目标,提升规划决策方案的安全系数。
4. 交通标识
自动车在结构化道路上运行时,需要严格遵守交通规则,识别道路上的红绿灯、车速限制等交通标识,交通标识是影响决策规划的重要感知元素。
5. V2X信息
依靠V2X通讯,车辆能够获取传感器感知范围的周边其他动态信息,是车辆实现无人驾驶和预测的重要信息来源。
传感器部署策略
1. 感知通用架构
2. 无盲区设计
车身周边安全范围内,传感器要实现无盲区的部署,安全距离包括两个层面,紧急停车范围和障碍物避让范围。根据传感器精度可以设定不同的阈值。不同的传感器有不同的感知距离、范围和精度,也都有各自的盲区,并且和气象条件和光照条件都有关系。无盲区设计就是要在地面和车体的高度范围内,利用传感器进行互补,考虑成本因素的前提下,发挥各自特点,实现安全范围全覆盖感知。例如微版熊猫扫路机的传感器部署如下图所示:
3. 感知精度设计
传感器精度应当是越高越好,但是成本和效果是现实的考量。最经济的方案是纯视觉的方案,利用视觉来检测目标类型、大小、位置。可以满足L2和结构化道路场景L3的要求,但是在非结构化道路上,不能达到工程化可靠部署的要求。
目前感知精度的保障主要是依托激光雷达,激光雷达可以达到厘米级精度。在正常气象条件下,激光雷达可以提供稳定的环境点云数据,依托点云聚类分割或3D卷积网络算法,实时提取高精度三维目标,提交决策规划模块。就低速自动驾驶(<20公里/小时)而言,激光雷达精度最能够满足车辆无人驾驶安全感知需求,这也是目前大部分感知系统以激光雷达为核心的原因。
在车身周边的短距测量传感器:毫米波和超声波,是进行安全紧急停车检测的主要手段,测量精度要求25CM以下。但是在某些应用场景例如扫地车贴边清扫,需要达到5CM以下的精度,才能让自动车保持稳定的作业轨迹。这就要求感知模块根据场景特点对障碍物进行过滤和剔除,同时利用传感器数据组合确保安全。
4. 适当冗余设计
传感器冗余的目的有两个,其一是增加和丰富有效信息,例如视觉和激光雷达的冗余设计,多个雷达点云叠加,使得点云更加稠密,障碍物轮廓更加明显,不同焦距、视野的视觉可以对抗光照干扰;其二是作为安全备份,在主传感器故障的短时间内,仍可以安全行驶一段时间。
感知系统能力
1. 设备时空同步
感知系统作为一个整体,各传感器需要在一个统一时间和空间框架下工作。在每一个轮询周期,都需要匹配时间戳,确保当前的位置、图像数据、点云、雷达目标都是在可接受时间分辨率下获得的。所有的数据也都要通过标定矩阵实时换算到统一的车体坐标系或者ENU坐标系,感知数据在一个空间体系下被整合。
2. 感知融合
感知融合是对不同传感器检测到的目标,剔除冗余,进行完整性整合,形成一个环境感知的数据试图提交规划决策。
感知融合有两种策略,前融合和后融合。前融合的思路是进行端到端的训练,将各个传感器收集到的原始数据,用一个多任务神经网络进行推理,得到所有障碍物的数据,甚至直接做出规划决策指令。前融合方法在传感器的标定、训练样本的获取、推理结果的可解释性方面有很大的难度,工程可靠性保证的难度比后融合方法要大。后融合方法是分别获取不同传感器的目标感知结果,在后端进行目标级的融合。后融合方法工程化开发工作量较大,但是可解释性强,可以针对应用场景灵活配置调整。
3. 分类识别
分类识别主要是利用摄像机和雷达进行标定,通过卷积神经网络例如Tiny-yolo等,识别视野范围的目标类别,确定目标的3D BOX范围,最后输出3D目标框到后融合模块。优化的算法是将视觉彩色图像和激光雷达点云进行标定后,利用点云图像生成的前向视图和BEV鸟瞰图输入RPN网络生成3D VOXEL GRID后,对VOXEL运行任意内置卷积网络,例如faster-rcnn、resnet、vgg16等,并提取voxel特征,获取这些特征和目标类别及位置关系的网络参数。
4. 目标跟踪
目标跟踪是感知融合模块的核心,目标只有成功被追踪,才能生成更高层面的语义信息,目标预测才有可能。基础目标跟踪算法是计算前后两帧数据目标之间的自定义距离,自定义距离包括目标质心距离、角点距离、形状IOU等信息,并利用距离排序算法,获得匹配目标列表,确定每个目标在当前帧是连续跟踪还是丢失状态。利用deepsort算法,建立每个目标的特征,将特征距离加入自定义距离,实现目标的非连续跟踪(遮挡)。
基于可靠的目标跟踪算法,匹配结果利用扩展卡尔曼滤波进行目标位置和速度的更准确预测和修正,可以获取目标的速度和运动方向,这些数据是规划决策和预测模块必须的。
5. 像素级语义场景分割
Kitti 语义分割数据集
建立合适的语义场景模型,多种传感器和模块可以统一到一个框架下,很容易完成数据的整合工作和交叉验证。语义场景分割可以有效减少目标漏检问题,根据车辆在图像中的布局、车辆的形状以及和其他元素的位置关系进行判定,从而避免从未见过的车型被漏检。像素级的定位精度能够得到车辆的较精确轮廓,这样可以完成准确的旁侧距离计算;同时,检测出来的护栏、车道线和路面等元素可以辅助车辆的特种作业场景,例如道路两边伸展出来的绿化植被等,可以不作为障碍物处理。
利用语义分割深度网络就是将整个场景以像素精度进行语义层面的划分,将图像上的每个像素都归到某个场景类型。语义分割模型基于全卷积神经网络FCN优化设计,通过上采样和反卷积来确保小物体不被忽略,形成细致的场景分割,获得自动驾驶场景的元素:天空、建筑、灯杆、地面标志、路面、人行区、树木、标示牌、护栏、交通工具、行人和自行车等。
自动驾驶是提升道路交通智能化水平、推动交通运输行业转型升级的重要途径,将给人类带来极大的便利。希望科幻片中的场景,能早日在现实生活中实现,真正做到“人工智能,服务民生”。
Top7gun博士
深兰科技无人驾驶(沪)团队感知算法组专家
北京大学 遥感和地理信息科学 博士
在基础软件研发和空间可视化领域有多年实践和技术积累,熟悉GIS/RS、BIM、三维仿真以及各类图形学相关算