王鹏 叶子豪 孙锐
摘 要:在常规的车辆目标检测中,YOLO,SSD,RCNN等深度模型都获得了较好的检测效果,但是在无人驾驶系统中,车辆的速度、方向、相对距离等因素对于系统来说十分重要,所以采用二维车辆检测对于驾驶场景的理解还远远不够。激光点云数据蕴含着丰富的三维环境信息,融合点云数据和深度网络的三维车辆检测已成為未来的发展方向。文章给出了一种基于点云网络与卷积神经网络的三维车辆检测方法,首先,使用CRC和输入尺寸有关的SDP技术来提高车辆检测的准确性;其次,采用点云网络结构(Pointnet)来处理点云数据,实现三维目标检测,研究表明设计网络结构在检测精度上有着较大的优势。
关键词:车辆检测;点云网络;卷积神经网络;拒绝分类器
1 车辆检测的相关算法
近年来,由于深度学习技术的兴起,机器视觉与人工智能有了快速的发展,特别是智能汽车领域,通过在车辆中安装视觉传感器使驾驶变得越来越安全以及智能化,而无人驾驶技术更是得到了工业界与学术界的高度关注。
车辆检测是无人驾驶感知系统的关键环节,大多数的交通事故发生在车车之间,传统的二维车辆识别技术仅能提供方位信息,并不能满足无人驾驶系统对车辆检测的需求,车辆的空间位置、速度等因素对后期的控制决策起到极为重要的作用。因此,需要激光雷达等传感器提供三维点云信息、融合处理三维点云信息以及二维图像信息成为车辆检测的关键技术。目前,深度学习已被证明是目标检测中最为有效的方法,卷积神经网络(Convolutional Neural Networks,CNN)[1-2]更是在图像处理领域中得到了广泛的应用,例如图像的分类、检测、分割等。但是CNN也存在一些明显的问题,最为突出的就是要对海量数据进行大量卷积运算需要消耗较大的计算量,为了提高目标检测的速度,近些年部分学者又提出了Fast RCNN[3]和空间金字塔网络(Spatial Pyramid Pooling Net)[4],在Fast RCNN中,仅在整幅图像中进行一次卷积操作,其比R-CNN[5]通过共享卷积层来说提高了运算效率。Fast RCNN已经实现了分别在训练和测试阶段的加速。为了进一步提升速度,其他的深度神经网络模型也被提出,SSD[6]采用了一个CNN网络来检测,不过其使用了多尺度特征图,并设置了先验框。SSD借鉴了Fast R-CNN的锚点方法,对每一个候选单元设置不同大小的检测框,取得了较好的检测效果。YOLO[7]是另外一种快速单阶段目标检测方法,与R-CNN类型的模型有着明显的不同,不再是将目标检测视为分类问题,而是作为一种回归问题,可以直接从图像得到目标边界框以及类别的判断。YOLO拥有非常快的速度优势,并且是直接在图像中进行训练,这使得其自然包含有目标的上下文信息。YOLO模型相比于R-CNN模型有着较大的速度优势,但是精度上则不及大多主流的深度网络模型。
三维车辆检测可以提供更多的目标信息,目前已有少量研究成果发表,把这些方法分为3类:(1)基于前景视角图像的方法,通过单幅RGB图像和形状或遮挡样式来推断目标三维边界框[8]。利用深度数据集合CNN网络来对二维目标检测的结果三维化[9]。(2)基于鸟瞰图的方法,MV3D[10]将LIDAR点云投射到鸟瞰图并采用RPN[11]网络来预测目标三维边界框,但是该方法在检测小物体时存在较大误差,例如行人以及自行车都不是很准确。(3)基于3D点云的方法,通过支持向量机(Support Vector Machine,SVM)从点云数据中提取几何特征,最后使用滑动窗口实现三维目标检测[12]。将整个场景的点云转换为体积网格,并使用3D-CNN网络进行目标特征提取和检测。该方法使用到了3D卷积,其计算量十分庞大[13]。
本文采用了直接处理点云数据的PointNet网络[14],该网络结构简单,但是却可以高效处理点云数据。同时,本文设计了一种基于深度点云网络的目标检测方法,先采用卷积神经网络快速、准确地检测车辆候选区域,再采用PointNet网络实现三维实例分割,利用逐层级联的拒绝分类器(Cascaded Rejection Classifiers,CRC)和与输入大小有关的池化层(Scale Dependent Pooling,SDP)来提高目标车辆的检测结果。
2 激光雷达与点云数据
激光雷达属于光电技术,会向周围物体发射激光束,再接受反射的光,通过反射的时间差得到物体的距离信息。激光雷达得到距离信息后再结合发射的角度,由空间几何原理来推测到物体的位置与形状。这个过程中,激光几乎不受到环境因素的干扰,激光雷达的工作范围可达100 m以上。激光雷达采用激光射线而非无线电雷达的电磁波,因此拥有更短的波长,对于获取目标的距离以及形状都会有更大的优势,精度可以达到厘米级。激光雷达通常包括3部分:(1)激光发射器。(2)扫描与光学部件,可感知距离、时间以及角度信息。(3)感光部件,用来检测反射光的光强。
现有的无人驾驶车辆中已广泛安装了激光雷达,在车辆行驶的过程中,激光雷达会按照恒定的角速度进行匀速转动并发射激光,会获得360°全角度的环境信息,继而可由距离、时间以及角度三者信息再加上激光雷达的位置信息,推导出反射点的三维坐标。激光雷达旋转360°获得的反射点坐标集合就叫点云,工作原理如图1所示。激光雷达距离传感器可以比普通摄像机更直接地得到三维信息,可以在识别分类的过程中提供三维形状的信息。但是激光雷达所形成的三维点云一般都比较稀疏,空间的分辨率有限,所以缺乏目标的外观与纹理信息。本文结合二维视觉目标检测以及三维空间定位的各自优势,先利用RGB图像检测网络对目标进行候选估计,再利用点云网络对候选区域处理,最终完成三维车辆检测任务。
3 三维车辆检测算法
在三维车辆检测算法中分别利用2D神经网络在车辆检测的精度优势、3D点云网络在处理点云数据时的空间定位优势,综合设计该网络模型,如图2所示。该模型分为3个部分:2D检测区域建议、三维实例分割以及3D边界框估计,分别由图2中的3个子网络模块完成。首先,由激光雷达和视觉传感器分别接收点云数据与RGB图像数据;其次,利用含有级联拒绝分类器及比列相关池化的CNN网络对RGB图片识别出车辆检测区域;再次,由点云数据将2D检测的区域转换到3D点云中;最后,由PointNet预测出车辆的最终回归框。
3.1 基于卷积神经网络的车辆识别
基于卷积神经网络的车辆识别方法第一阶段设计了一种快速、准确的深度卷积神经网络来检测车辆,该网络利用了网络所有层中的卷积特征,通过拒绝分类器对候选对象进行分类检测;依赖于尺度的集合以及逐层级联的拒绝分类器和与输入尺寸有关的池化层来提高目标车辆的检测结果。级联拒绝分类器有效地利用了卷积特征以及消除在候选对象中存在大量负样本,大大加快了检测速度,同时也保存了较高精度。该网络结构解决了Fast-RCNN中池化层的候选框不能精确识别小物体,以及多尺度图像输入中计算量的问题。常规的Fast-RCNN网络需要进行大量高维卷积和边界框池化,消耗大量运算时间和资源。该网络结构如图3所示。
由于SDP层也加入了4个全卷积层,所以为了进一步减少计算量,在所设计的网络中使用了级联拒绝分类器来减少候选样本的数量,其网络结构如图4所示。该结构首先通过卷积层后得到一组特征,再使用兴趣区(Region of Interest,ROI)池化策略得到若干个候选特征,对于所有的候选特征设置分类标签为0与1,然后训练50个弱分类器,整体策略类似adaboost集成学习,这种网络结构会使得检测时速度提高3~4倍。
3.2 基于点云网络的三维车辆检测技术
针对传统方法处理点云数据难以准确分割的问题,本文采用PointNet网络来处理点云数据,结构简单,但是却可以高效处理点云数据,从而实现目标分割及识别等任务,该网络结构如图5所示,通过最大池化来将点云信息中所有点的信息融合,其输入是一个三个维度的点云数据,输出可以是检测标签也可以是点云分割结果。
网络结构中,第一部分的T-Net网络可以产生仿射变换矩阵,将输入的点云信息进行如旋转及平移变换的规范化预处理,相当于一个小型的PointNet网络,该网络输入为点云信息,输出则是对应的3×3矩阵。该网络也可以应用在特征空间的对齐,对应输出的矩阵大小为64×64。第二部分是将点云数据以及提取的点云特征做进一步处理得到全局特征,该网络输入为n×3的点云结构,通过各点云数据在感知机中的学习以及特征提取,使用最大池化来将所有信息融合为全局特征,在激光雷达收集到点云数据后,就可以利用PointNet网络进行处理,根据上一节的分析,该网络不仅可以实现分类的功能,还可以实现三维实例分割的效果。而算法主要是靠点云网络来实现分割的功能,利用PointNet网络实现的分割效果如图6所示。
4 实验结果与分析
4.1 数据集
本文实验对象为KITTI的二维与三维车辆目标的数据集,该数据集由卡尔斯鲁厄理工学院以及丰田汽车共同发起创建,现为无人驾驶领域视觉感知模块中应用最广的数据集,其中包含行人、车辆等各种交通目标。同时,本团队在训练中还采用了部分PASCAL VOC2007数据集。方法采用平均准确率(Average Precision,AP)指标来评价算法的车辆检测精度。由于方法涉及二维图像检测网络与三维点云网络的结合,最终的检测精度受到这两种网络精度的共同影响,故在实验中对两个部分的实验结果分别做一次对比分析,同时再将整体的实验精度与其他算法做出对比。
4.2 实验结果与分析
实验包含3个部分。本文通过二维检测网络提供的车辆检测区域,故二维图像检测网络的精度影响了最终的结果,首先,给出RGB图像的实验结果;其次,由点云网络预测三维车辆的最终回归框,所以本文也对比分析做出了点云网络的实验结果以及最终整体方法的完整实验结果。
本文采用的二维目标检测网络使用循环冗余校验(Cyclic Redundancy Check,CRC)与战略数据规划(Strategy Data Planning,SDP)来加强网络的精度与减少计算量,使得方法在保证目标检测的高精度同时保障了无人驾驶中所要求的高实时性。在KITTI数据集上的实验结果如表1所示,其中E,M,H分别指简单、中等、困难的识别场景。
SDP+CRC+fine是将CNN模型加入SDP与CRC之后微调的结果,在加了SDP之后候选区域少了70%~80%,大大减少了网络的计算量。 该算法在VOC2007数据集中检测结果如表2所示。
本文最后给出算法在KITTI三维点云数据集的实验结果,可以看出该方法达到了较好的实验结果,如表3所示,其中,模型在二维目标检测基础上使用了PointNet网络。图7为算法直观的3D车辆检测结果。
5 结语
三维车辆检测在无人驾驶系统中有着广阔的应用前景,二维车辆检测仅提供的简单的目标方位,三维车辆检测提供了更多有用的如车辆位置信息以及速度信息。针对早期三维目标检测算法并不能直接利用激光点云数据,且计算量十分庞大的缺陷,本文给出了一种融合二维与三维目标的检测模型,一方面是利用激光点云数据,实现了三维目标的有效分割与提取;另一方面又結合原有深度学习算法中二维目标检测中的高精度优势,整体上实现了一种高效的三维目标车辆检测方法,具有较高的应用价值。
[参考文献]
[1]KRIZHEVSKY A,SUTSKEVER I,HINTON E.Imagenet classification with deep convolutional neural networks[J].In Advances in Neural Information Processing Systems,2012(3):1097-1105.