基于红外与激光雷达融合的鸟瞰图空间三维目标检测算法
0 引言
近年来,自动驾驶领域迎来爆发式发展,自动驾驶技术已经在全球掀起热潮,并被认为是未来汽车工业发展的必然趋势,自动驾驶将从根本上改变我们未来的出行方式。感知功能是自动驾驶的关键环节,是行车智能性和安全性的保障。精确实时地进行目标检测是自动驾驶车辆能够准确感知周围复杂环境的核心功能之一[1],“感”是指硬件部分,负责收集周围环境信息,“知”是指算法对硬件收集信息的理解,三维目标检测不仅要预测出目标的类别,还要预测出目标的尺寸、距离、位置、姿态等三维信息,是感知系统和场景理解的核心[2],也是路径规划、运动预测和紧急避障等决策控制环节的基础。
我国交通道路情况十分复杂,多传感器融合是自动驾驶任务的最佳感知方案,实现高级别的自动驾驶需要多种传感器相互配合,共同构建汽车的感知系统。车载红外探测的是物体表面辐射的红外能量,在低照度、雨雪、雾霾、沙尘、强光等场景条件下,依旧可以清晰成像,可有效弥补可见光传感器的不足,还能够解决夜间行车的视线问题,提升驾驶安全性;激光雷达是自动驾驶中最重要的传感器之一,绝大多数自动驾驶方案都选择配备激光雷达,提供了目标物体的距离、速度和方向等丰富的空间几何信息,因此将红外与激光雷达多传感器融合能够结合两者的优势,提高车辆对真实世界的感知能力,达到1+1>2的效果。多模态融合将成为实现高级自动驾驶的核心驱动力。
目前自动驾驶感知系统存在三种主流技术路线,第一种是基于视觉的三维目标检测,LIU Z等[3]提出的Smoke是单阶段的视觉三维目标检测方法,使用一个关键点来表示一个目标,直接将估计的关键点与回归的三维属性相结合来预测目标的3D框。第二种是基于激光雷达的三维目标检测,ZHOU Y等[4]提出了VoxelNet,将点云划分成一个个堆叠的、大小相等、有规则的体素网格,使用三维卷积逐步提取体素特征,最后通过区域建议网络(Region Proposal Network,RPN)预测3D框。由于点云的稀疏性,划分的体素网格包含大量空白体素,直接用三维卷积会浪费大量计算资源,为了解决这个问题,YAN Y等[5]提出Second引入三维稀疏卷积替代三维卷积,在提取体素特征时跳过空白体素,减少了无效运算。第三种是基于多传感器融合的三维目标检测,CHEN X等[6]提出的MV3D将激光雷达点云投影到两种视图表示(鸟瞰图和前视图),然后将这两种视图和从图像中提取的特征进行特征级融合。KU J等[7]提出的AVOD对MV3D进行了改进,首先从点云映射生成鸟瞰图,之后将鸟瞰图和从图像中提取的特征进行第一次数据级融合和第二次特征级融合,这种方式能够提取不同尺度的特征,对检测小目标的效果有所提高。QI C R等[8]提出了使用视锥体(Frustum)的融合方法Frustum-PointNets,首先在图像上生成2D预测框,然后使用投影矩阵将2D框投影到目标对应的点云上,形成了视锥体区域建议,最后使用PointNet[9]/PointNet++[10]对每个视锥体区域进行检测,避免了大范围扫描点云。VORA S等[11]提出的PointPainting首先对图像进行语义分割,然后将语义信息投影到点云上,最后使用点云网络进行检测。
本文考虑到目前主流的多模态检测模型过于复杂、扩展性差,一旦某个传感器出现故障将导致整个系统无法工作,很难部署到自动驾驶的实际应用场景之中,同时为了弥补可见光传感器的不足,提升自动驾驶的夜间行车能力,本文基于微机电系统(Micro-Electro-Mechanical System,MEMS)激光雷达和红外相机两种传感器,设计了一种简单轻量、易于扩展、易于部署的可分离融合感知系统,将激光雷达和红外相机两种传感器分别设置成独立的分支,两者不仅能各自独立工作也能融合工作。由于两种不同的传感器具有不同的数据结构表示和空间坐标系,为了解决这种数据结构以及空间坐标系的差异,本文选择鸟瞰图(Bird's Eye View,BEV)空间作为两种不同模态的统一表示,BEV空间的优势在于能够将复杂的三维空间简化为二维,并且统一坐标系,使得跨摄像头融合、多视角摄像头拼接以及多模态融合更容易实现,对下游任务更为友好,相机分支和雷达分支分别将二维空间和三维空间统一到BEV空间下,以完成后续的多模态特征融合以及三维检测任务。本文对相机分支进行了改进,增强相机的深度估计能力以得到更准确的BEV空间特征,雷达分支适用于任意的SOTA三维点云检测模型,融合分支使用门控注意力融合机制将相机分支BEV特征和雷达分支BEV特征进行融合。
1 算法设计与实现
本节主要介绍一种简单的激光雷达-红外相机可分离融合感知系统的架构、算法的设计及实现。本系统由相机分支、雷达分支和融合分支三部分构成,系统架构如
1.1 相机分支结构
在相机分支中,主要实现图像特征到BEV空间的变换,之后得到BEV特征信息,在变换中需要实现每个相机特征与深度特征相关联,即在二维图像视角下,引入深度估计,转换为在BEV空间视角下的三维感知。本文使用一种主流的方法来实现图像到BEV空间的变换,即Lift-Splat-Shoot(LSS)[12]。相机分支结构主要包括:1)图像编码模块;2)图像-BEV视图变换模块;3)BEV编码模块;4)3D检测头四大模块。
1.1.1 图像编码模块
在图像编码模块中,主要由一个骨干网络、一个颈部(Neck)网络和多尺度特征融合(Multi-Scale Feature Fusion,MSFF)模块三部分组成,实现提取输入图像的多尺度特征,以完成后续图像特征变换为BEV特征的步骤。图像编码模块可以选择先进的基于CNN或基于Vision Transformer的模型作为特征提取网络,体现了本模型的扩展性,本文为了兼顾精度和速度,选择YOLOv5。YOLOv5是一个one-stage、优秀的2D目标检测算法,由于检测速度快且易于部署的优点被工程界所广泛使用。2D骨干网络使用CSPDarknet,CSPDarknet借鉴CSPNet[13],引入了CSP(Cross Stage Partial)结构,CSP将输入特征图分为两部分,一部分经过一个小型网络进行处理,另一部分则直接进入下一层处理,之后结合两部分特征图,作为下一层的输入,能够在不损失检测精度的前提下,提升网络对特征提取的能力。Neck网络使用FPN(Feature Pyramid Networks)[14]+PAN(Path Aggregation Network)[15]结构来提取多尺度特征,FPN自顶向下将深层的强语义特征传递给浅层,增强多个尺度上的语义表达能力;PAN自底向上将浅层的强定位特征传递给深层,增强多个尺度上的定位能力。通过骨干网络和Neck网络输出多尺度特征
1.1.2 图像-BEV视图变换模块
在图像-BEV视图变换模块中,LSS[12]中Lift的深度估计是图像特征变换为BEV特征的关键步骤,LSS[12]提出的深度网络(DepthNet)如
但LSS[12]中Lift对深度的估计存在一些不足,只有少部分特征区域的深度估计是准确的,大部分区域存在较大偏差,这将会造成后续变换为BEV的间接损失,导致生成的BEV特征不准确。对此,本文改进其深度网络,以增强Lift阶段的深度估计能力,改进深度网络(Improved DepthNet)结构如
为提升深度估计的准确性,Improved DepthNet中引入了深度监督(Depth Supervision)模块,使用真实点云来监督
式中,S表示Sigmoid激活函数,
在雷达坐标系下,设定检测范围以及BEV单元格尺寸,本文设定X轴、Y轴和Z轴检测范围分别为
1.1.3 BEV编码模块
在BEV编码模块中,主要实现将上述BEV池化得到的伪体素特征
1.1.4 3D检测头
相机分支适配任意的先进3D检测头完成检测任务,比如基于Anchor的PointPillars[17]检测头,或基于Anchor-Free的CenterPoint[18]检测头,体现了本模型的可扩展性。在这里,本文采用基于Anchor-Free的CenterPoint[18]作为相机分支的3D检测头。
1.2 雷达分支结构
在雷达分支中,由于点云的不规则性和稀疏性,有两种常见的方法处理原始点云,一种是基于Voxelnet[4]的点云体素化(Voxelization),在三维空间中分别沿X轴、Y轴和Z轴将点云划分成一个个堆叠的、大小相等、有规则的体素(Voxel)网格,之后使用体素特征编码层(Voxel Feature Encoding layer,VFE[4])将体素编码成向量,由于点云的稀疏性,划分的网格包含了大量的空白体素,因此使用稀疏3D卷积[5]逐步提取体素特征,跳过空白体素,降低大量无效运算;另一种是基于PointPillars[17]的点云柱状化(Pillarization),柱状体(Pillar)是体素的一种特殊格式,在三维空间中只沿X轴和Y轴对点云划分成一个个大小相等、有规则的Pillar网格,之后使用简易Pointnet[9]网络逐步提取Pillar特征,避免使用了计算量较大的3D卷积,节省计算资源并提升了点云处理速度。
为了兼顾速度和精度,本文使用点云柱状化(Pillarization)的方法来处理原始点云,获得Pillar特征
本文的雷达分支适配任意的SOTA三维点云检测模型,比如基于Anchor的Second[5]、PointPillars[17],或基于Anchor-Free的CenterPoint[18],点云处理方式可以选择点云体素化(Voxelization)或点云柱状化(Pillarization),体现了本模型的可扩展性。本文采用基于Anchor-Free的CenterPoint[18]作为雷达分支的3D检测头。
1.3 融合分支结构
上述相机分支和雷达分支分别将二维空间和三维空间统一到BEV空间下,得到来自不同分支的BEV特征,为了使同一BEV空间下的两种特征对齐,本模型在对点云进行一系列数据增广后,同时也对相机分支中生成的BEV特征进行相同的数据增广,本模型的做法是在对点云进行数据增广后保存其增广矩阵,之后更新相机坐标系到雷达坐标系的转换矩阵,保证了相机分支中生成的BEV特征与雷达分支中生成的BEV特征的空间一致性。
在同一BEV空间下,融合分支使用门控注意力融合机制模块,模块结构如
1.4 损失函数
本文的相机分支、雷达分支和融合分支均采用基于Anchor-Free的CenterPoint[18]作为3D检测头,对于类别损失
式中,
式中,y表示真实值,f(x)表示预测值。
式中,
2 实验分析
在本节中,首先介绍本文的实验数据集、实验评价指标以及实验设置,然后在自建的数据集上进行了综合实验,以验证模型的性能和鲁棒性,最后将本文的模型与其他先进的三维检测模型进行对比分析。
2.1 数据集介绍
数据采集硬件平台主要由一个MEMS激光雷达和一个红外相机构成,数据采集硬件平台及布设位置如
激光雷达和红外相机安装在实验车辆的不同位置,布设位置如
式中,
本文自建数据集由16 095张雷达点云和16 095张分辨率为
2.2 实验评价指标
对于3D检测任务,本文使用平均精度(Average Precision,AP)和平均方向相似性(Average Orientation Similarity,AOS)来评估模型性能,BEV AP和3D AP分别用于衡量模型在鸟瞰图空间下和在三维空间下不同类别的准确度,AOS用于衡量3D检测框方向与3D真实框方向的相似度,基于AP11[19]计算,AP11表示11点插值平均精度,曾在2007年至2010年期间作为PASCAL VOC[20]比赛的指标,如
式中,r表示检测召回率,方向相似度
式中,
2.3 实验设置
检测目标包括三种类别:汽车(Car)、行人(Pedestrian)、骑车人(Cyclist)。本实验将X轴、Y轴和Z轴检测范围分别设置为
2.4 消融实验
关于相机分支的消融实验见
表 1. 相机分支消融实验
Table 1. Ablation experiment of camera branch
|
关于融合分支的消融实验见
表 2. 融合分支消融实验
Table 2. Ablation experiment of fusion branch
|
2.5 模型各分支实验对比
在自建数据集上,雷达分支选择基于Anchor-Free的CenterPoint[18]进行测试,动态体素化(Dynamic Voxelization,DV)由MVF[23]提出,通过Map建立点云与体素的映射关系,消除了普通体素化(Simple Voxelization,SV)需要预先设定体素个数以及每个体素内采样点数的缺点,保证每个点都可以被使用,降低了特征信息的损失,由于柱状体(Pillar)是体素的一种特殊格式,因此Pillar也可以使用动态体素化。不同体素化方式的测试结果如
表 3. 雷达分支不同体素化方式的性能对比
Table 3. Performance comparison of different voxelization method in lidar branches
|
分别对单一传感器和融合两种传感器进行测试,相机分支、雷达分支和融合分支的测试结果见
表 4. 相机分支、雷达分支和融合分支的指标对比
Table 4. Performance comparison of camera branch,lidar branch and fusion branch
|
2.6 与其他先进模型的对比
在自建数据集上进行综合实验,本文模型与其他先进模型的测试结果对比见
表 5. 本文的模型与其他先进模型的指标对比
Table 5. Performance comparison of our model with other SOTA model
|
3 实验测试
实验测试平台主要由一个MEMS激光雷达、一个红外相机和一个MIIVII APEX AD10嵌入式AI计算平台构成,两种传感器布设位置如
激光雷达和红外相机均已接入AD10,本文模型已部署到AD10中,可实时接收来自两种传感器的数据流并且实时推理,发布到RVIZ实现可视化,RVIZ(Robot Visualization)是机器人操作系统(Robot Operating System,ROS)中的三维可视化平台。本文实验测试场景选择城市道路,城市道路场景测试如
4 结论
本文针对目前主流的多模态检测模型过于复杂、扩展性差,难以部署等问题,同时为了弥补可见光传感器的不足,提升自动驾驶的夜间行车能力,设计了一种基于MEMS激光雷达和红外相机的可分离融合感知系统,将激光雷达和红外相机两种传感器分别设置成独立的分支,相机分支和雷达分支不仅能各自独立完成也能融合完成三维目标检测任务,解耦了激光雷达和红外相机融合的相互依赖性。本文选择BEV空间作为两种不同模态的统一表示,相机分支和雷达分支分别将二维空间和三维空间统一到BEV空间下,解决了不同传感器的数据结构表示以及空间坐标系的差异问题,对后续的多模态特征融合以及三维目标检测任务更为友好。相机分支选择工程界广泛通用且易于部署的YOLOv5算法作为特征提取网络,同时改进了相机分支的深度网络,引入点云深度监督模块和相机参数先验模块来增强相机分支的深度估计能力,精确的深度估计是相机分支实现将图像特征变换为BEV特征的关键所在。在图像-BEV视图变换中设计了GPU加速内核,提升了模型检测速度。虽然相机分支性能有限,但应用于融合分支后,融合分支可以显著提高单模态分支的性能。雷达分支适用于任意的SOTA三维点云检测模型。在融合上使用简单的门控注意力融合机制将来自相机分支的BEV特征和来自雷达分支的BEV特征进行融合。本文模型已成功部署到MIIVII APEX AD10嵌入式AI计算平台,实验结果表明本文的模型是有效的、易于扩展的且易于部署。
[1] 任柯燕, 谷美颖, 袁正谦, 等. 自动驾驶3D目标检测研究综述[J]. 控制与决策, 2023, 38(4): 1-2.
REN Keyan, GU Meiying, YUAN Zhengqian, et al. Research review on 3D object detection for automatic driving[J]. Control and Decision, 2023, 38(4): 1-2.
[2] 李瑞龙. 自动驾驶场景下的三维目标检测技术研究[D].长春: 中国科学院大学, 2022.
LIRuilong. Research on 3D object detection technology in automatic driving scenario[D]. Changchun: University of Chinese Academy of Sciences, 2022.
[3] LIUZ, WUZ. SMOKE: Single-stage monocular 3D object detection via keypoint estimation[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2020: 996-997.
[4] ZHOUY, TUZELO. Voxelnet: End-to-end learning for point cloud based 3D object detection[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2018: 4490-4499.
[5] YAN Y, MAO Y, LI B. Second: Sparsely embedded convolutional detection[J]. Sensors, 2018, 18(10): 3337.
[6] CHENX, MAH, WANJ, et al. Multi-view 3D object detection network for autonomous driving[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2017: 1907-1915.
[7] KUJ, MOZIFIANM, LEEJ, et al. Joint 3D proposal generation and object detection from view aggregation[C]. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2018.
[8] QIC R, LIUW, WUC, et al. Frustum pointnets for 3D object detection from rgb-d data[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2018: 918-927.
[9] QIC R, SUH, MOK, et al. Pointnet: Deep learning on point sets for 3D classification and segmentation[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2017: 652-660.
[10] QIC R, YIL, SUH, et al. PointNet++: deep hierarchical feature learning on point sets in a metric space[C]. International Conference and Workshop on Neural Information Processing Systems(NIPS), 2017: 30.
[11] VORAS, LANGA H, HELOUB, et al. Pointpainting: Sequential fusion for 3d object detection[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2020: 4604-4612.
[12] PHILIONJ, FIDLERS. Lift, splat, shoot: encoding images from arbitrary camera rigs by implicitly unprojecting to 3D[C]. European Conference on Computer Vision (ECCV), 2020: 194-210.
[13] WANGC Y, LIAOH Y M, WUY H, et al. CSPNet: a new backbone that can enhance learning capability of CNN[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2020: 390-391.
[14] LINT Y, DOLLARP, GIRSHICKR, et al. Feature pyramid networks for object detection[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2017: 2117-2125.
[15] LIUS, QIL, QINH, et al. Path aggregation network for instance segmentation[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2018: 8759-8768.
[16] HEK, ZHANGX, RENS, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[C]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904-1916.
[17] LANGA H, VORAS, CAESARH, et al. Pointpillars: fast encoders for object detection from point clouds[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2019: 12697-12705.
[18] YINT, ZHOUX, KRAHENBUHLP. Center-based 3D object detection and tracking[C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2021: 11784-11793.
[19] SALTON G, MCGILL M J. Introduction to modern information retrieval[J]. McGraw-Hill, 1986.
[20] EVERINGHAM M, VAN GOOL L, WILLIAMS C K I, et al. The pascal Visual Object Classes(VOC) challenge[J]. International Journal of Computer Vision(IJCV), 2010, 88: 303-338.
[21] GEIGERA, LENZP, URTASUNR. Are we ready for Autonomous Driving? [C]. Proceedings of the IEEE Computer Vision and Pattern Recognition (CVPR), 2012: 3354-3361.
[22] ZHU B, JIANG Z, ZHOU X, et al. Class-balanced grouping and sampling for point cloud 3D object detection[J], 2019.
[23] ZHOUY, SUNP, ZHANGY, et al. End-to-end multi-view fusion for 3D object detection in LiDAR point clouds[C]. Conference on Robot Learning(PMLR), 2020: 923-932.
[24] SINDAGIV A, ZHOUY, TUZELO. Mvx-Net: multimodal voxelnet for 3d object detection[C]. International Conference on Robotics and Automation (ICRA), 2019: 7276-7282.
Article Outline
王五岳, 徐召飞, 曲春燕, 林颖, 陈玉峰, 廖键. 基于红外与激光雷达融合的鸟瞰图空间三维目标检测算法[J]. 光子学报, 2024, 53(1): 0111002. Wuyue WANG, Zhaofei XU, Chunyan QU, Ying LIN, Yufeng CHEN, Jian LIAO. BEV Space 3D Object Detection Algorithm Based on Fusion of Infrared Camera and LiDAR[J]. ACTA PHOTONICA SINICA, 2024, 53(1): 0111002.