APP下载

基于注意力机制的毫米波雷达和视觉融合目标检测算法*

2023-10-31陈州全郑元杰

电讯技术 2023年10期
关键词:摄像头卷积雷达

陈州全,黄 俊,郑元杰

(重庆邮电大学 通信与信息工程学院,重庆400065)

0 引 言

随着近年来科学技术的发展,自动驾驶技术也得到了充分的发展[1]。自动驾驶不仅极大地方便了行人的交通出行,而且还可以减少道路交通事故的发生[2],是未来汽车技术发展的首要方向。环境感知是自动驾驶领域的关键技术[3],目标检测在环境感知中发挥着重大的作用,它是规划、决策和控制的基础[4]。

传统的目标检测算法主要基于单一传感器进行,但无论是基于毫米波雷达还是基于激光雷达,又或是基于摄像头对目标进行检测,都存在一定程度上的检测缺陷[5]。文献[6]采用高斯隐马尔科夫模型来学习调频连续波(Frequency Modulated Continuous Wave,FMCW)毫米波雷达检测结果的标签数据,以此来获取目标的相对距离以及相对速度。文献[7]开创性地提出了PointNet网络,将其应用于激光雷达的检测中,实现端到端的特征学习。之后,文献[8]在PointNet的基础上进行改进,又提出了检测效果更好的VoxelNet。它将空间划分为一个一个的体素,然后进行3D卷积,以对激光雷达点云数据进行目标检测,但3D卷积运算量大,导致实时性不强。对此,文献[9]提出PointPillars,将雷达点云数据进行柱扩张,将无序点云数据转换为有序的点云柱,然后进行2D卷积,弥补了VoxelNet网络的不足,提升了检测的速度。文献[10]利用卷积神经网络对毫米波雷达图像中的目标进行检测,为毫米波安检系统中图像的智能化检测奠定了基础。尽管基于单传感器的目标检测算法已经取得了不菲的成绩,但在一些复杂场景,如雨雾、强光、夜晚等场景中,其检测效果仍然不够理想[11]。

基于此,本文提出了一种基于注意力的毫米波雷达和视觉融合目标检测算法。该算法主要分为两部分:毫米波雷达数据编码部分以及数据融合目标检测部分。毫米波雷达数据编码部分在PointPillars激光雷达编码的基础上得到启发,提出一种适用于毫米波雷达的扇形点云柱编码(Fan-shaped Cloud Pillar Code,FCPC)的数据编码方法,充分考虑不同传感器坐标位置之间的关系以及毫米波雷达点云数据相较于激光雷达更稀疏且近密远疏等特点,将毫米波雷达点云数据在三维空间进行扇形柱扩张,扇形柱的面积随着距离的增加非线性扩张,然后对每个扇形柱中的点进行编码,以生成毫米波雷达点云前景伪图像。数据融合目标检测部分采用注意力机制(Convolutional Block Attention Mechanism,CBAM)对毫米波雷达编码数据以及RGB摄像头数据进行融合,然后将融合特征利用Yolov4-tiny进行目标检测。本文在公开的大型自动驾驶数据集Nuscenes[12]上进行算法验证,实验结果表明,本文所提的毫米波雷达和视觉融合目标检测算法在面对雨雾、遮挡以及暗光等复杂场景时,相较于传统模型进行目标检测具有更高的检测精度以及更强的模型鲁棒性。

1 相关工作

1.1 FCPC毫米波雷达扇形点云柱编码

PointPillars是针对激光雷达点云进行的一种点云编码方式,其编码过程如图1所示。它首先以自我为中心,在H×W的空间生成R个底面积为h×w的立方柱体,对点云柱中每个点的原始坐标(x,y,z)进行维度扩张,加入反射比r以及(xc,yc,zc,xp,yp),将原有的一个点扩张为D=9维的向量,其中xc,yc,zc代表所有点的中心值,xp,yp代表离中心距离的偏移。

图1 PointPillars编码过程

由于激光雷达点云数据的稀疏性,对于点云柱集合R,将会含有大量的空柱体。为此,PointPillars对每个样本施加约束,规定:对每个样本非空点云柱的数量为P,对于多于数量P的集合R,对其进行采样,少则进行补零;其次,对每个点云柱,约束其内点数数量为N,同样,在点云柱中多于点数N的进行采样,少则进行补零。经过上述操作,将无序的激光雷达点云数据编码成一个大小为(D,P,N)的张量。

对于编码生成的(D,P,N)的张量,采用一个卷积核为1×1的卷积层进行通道整合,以生成一个(C,P,N)大小的张量,然后对每个点云柱中的所有点进行最大池化,得到一个大小为(C,P)的特征矩阵。因为P代表的是非空点云柱的数量,因此,可以将P个非空点云柱依据原坐标变换关系将其变换映射到原始检测范围内得到大小为(C,H,W)的点云伪图像,然后再通过SSD[13]进行目标框的回归预测。但这种编码方式只适用于单一传感器,因为其未涉及到其他传感器之间同步的问题,且与激光雷达不同的是,毫米波雷达具有较激光雷达点云数据更加稀疏的特点,并具备近密远疏[14]的特点,因此,如果直接采用PointPillars编码方式将使得毫米波雷达和摄像头数据之间无法建立信息上的相关性,从而无法得到较好的推理结果。本文在PointPillars与文献[15]CRF-Net的启发下,提出了一种适用于多传感器毫米波雷达点云数据的编码方式——扇形点云柱编码,其结构如图2所示。FCPC以毫米波雷达为原点(为更好地进行表示,这里只绘制出一半的区域进行说明),在水平地沿原点位置以角度α从左向右进行区域分,同时在原点以增长速率l向外进行圆形扩张,通过公式(1)可以计算得到在增长率为l、角度为α下的面积增长s。

图2 FCPC雷达点云编码流程

(1)

由公式(1)可以看出,s的增长是非线性的,且随着距离的增加,面积非线性增加,符合毫米波雷达点云近密远疏的特性。

对于空间体素集合N中的每个点p(x,y,z),对其维度进行扩张。由于在Nuscenes数据集中毫米波雷达点云数据中z轴数据都为0,因此,在编码中去掉z轴信息,并加入RCS反射截面积r,它是目标在雷达接收方向上反射雷达信号能力的度量,能在一定程度上反映出目标的体积大小,为目标检测提供了信息互补的作用。除此之外,在此基础上再加入(xp,yp,xc,yc,vx,vy,dyn,ph0,amb)等10个维度信息,将其扩展为D=12维的向量,其中,(xp,yp)为空间体素中的中心坐标;(xc,yc)为点相对中心点的偏移量;(vx,vy)为自我运动补偿速度;dyn为群集动态属性,用于指示是否物体是否正在移动;ph0为群集的虚警概率,可用于对不同场景进行一定区分;amb为多普勒状态模糊解,用于粗略估计目标状态。根据图2所示区域划分,依据角度从左向右,l从中心向外增长的规则,对空间区域分别进行编号,然后在空间进行扇形区域堆叠。我们规定,在空间中非空扇形柱的数量为P,且每个扇形柱中点云数量为N,多则进行采样,少则补零,从而将H×W的空间进行扇形编码为大小为(D,P,N)的张量,然后将其通过一个1×1的卷积层和relu层,并在每个扇形柱中对每个点进行全局最大池化,以生成大小为(C,P)的毫米波雷达特征图。将P个有效非空点云柱首先根据原坐标索引映射回原始空间坐标,然后再根据毫米波雷达和摄像机的旋转和平移矩阵以及摄像机的内外参数将其映射到长宽为H1和W1的2D图像上,从而生成一个与原始图像长宽同样大小但通道不同的2D伪图像,其维度为(C,H1,W1)。

1.2 融合目标检测网络

整个融合网络结构如图3所示。首先将编码的毫米波雷达数据通过一个1×1的卷积进行通道整合,然后将其通过CBAM[16]进行特征提取生成毫米波雷达特征数据M1。其中CBAM代表注意力模块,其结构如图3下半部分所示。通过引入注意力机制,可以使得模型更加关注主干特征,从而进一步地减少背景造成的干扰。它主要由两部分组成,分别是通道注意力和空间注意力。在给定的特征图上,通道注意力首先对通道进行最大池化以及平均池化,然后将它们分别输入一个全连接层来自适应的调整权重参数,并将两者数据在维度上进行逐点相加,并经过一个Sigmoid函数将通道注意力权重归一化到0~1之间,然后在将输入特征与其进行逐像素相乘,以此来调整输入特征的比重。

图3 融合目标检测网络

空间注意力模块沿着给定特征图在通道方向上进行最大池化与平均池化,并将两者进行堆叠,然后再依次通过一个7×7大小卷积核的卷积层以及Sigmoid激活层,得到空间注意力特征矩阵。最后将输入特征与该权重参数进行相乘,以得到空间维度上的特征。

同一时刻,对摄像头采集RGB图片数据做同样处理,通过调整卷积核的数量,生成和毫米波雷达数据同维度大小的数据,然后再经过CBAM注意力模块得到相同大小维度的图片特征数据M2,对其进行逐像素相加融合,生成融合特征M。

在检测方面,考虑到车载实时性的问题,本文选取Yolov4-tiny进行目标检测以及回归。Yolov4-tiny是Yolov4[17]的精简版本,在原Yolov4网络的基础上移除了一些冗余的卷积层,其网络结构如图3右上半部分所示。它主要由两部分组成,分别为CSPDark-53-Tiny特征提取模块和FPN特征金字塔多尺度特征融合模块组成,将生成的融合特征M输入Yolov4-tiny进行目标检测以及边界框的回归。

1.3 损失函数改进

在Yolov4-tiny中,使用交叉熵来进行分类损失的计算,它表述了真实概率和预测输出概率之间的距离,其表达式为

Lloss=-ylgy′-(1-y)lg(1-y′)=

(2)

式中:y表示真实概率;y′表示预测概率。在交叉熵损失中,正负样本所占比例一样,但在实际中,往往正样本数远远小于负样本数,因此,通过交叉熵损失计算类别损失将极大降低模型的检测精度。

为了解决上述在训练中由于正负样本不均的问题,本文引入Focal Loss[18]对原分类损失以及置信度损失进行改进。与交叉熵损失所不同的是,Focal Loss在交叉熵损失的基础上引入调节因子α和χ以此来调节正负样本不均衡的问题,其表达式为

Lfloss=-αy(1-y′)χlgy′-

(1-α)(1-y)(y′)χlg(1-y′)=

(3)

在本文中,根据Focal Loss 原论文推荐,将α设置为0.25,χ设置为2。

2 实验结果分析

2.1 数据集

本文采用Nuscenes数据集进行算法验证。它包含1 000个场景,并包含140万张图片,130万个毫米波雷达扫描帧以及140万个对象边界框,涵盖多达23个类别。因为本文主要针对自动驾驶前方车辆的检测,因此本文选取bus.bendy、bus.rigid、car、construction、motorcycle、truck、bicycle、trailer共8类进行实验。由于bus.bendy和bus.rigid同属于bus类别,且其在整个数据集中占比较小,因此,将其统一合并为bus类别,合并之后各数据占比如图4所示。

Nuscenes数据集包含的类别注释都是3D框,因此,在本文的检测任务中,需要将其从3D框转换为2D平面框经过预处理转换过后的对象标注框如图5所示。

图5 3D边界到2D边界框转换

每一帧毫米波雷达包含125个点左右,其中每个点含有18个维度,包含速度、角度、坐标、RCS、多普勒状态模糊解等。由于毫米波雷达点云数据较少,因此,将毫米波雷达相邻前后3帧点云数据进行聚合。

毫米波雷达和摄像头位于不同的空间位置,因此,在进行算法融合之前,需要对毫米波雷达和摄像头数据进行数据对齐。在数据集中,毫米波雷达和摄像头数据位置坐标都是基于车辆惯性导航单元给出,且拥有各自相对于车辆惯性导航位置的旋转和平移矩阵。以摄像头坐标为参考系,摄像头坐标相对于车辆惯性导航单元平移矩阵为T1,毫米波雷达平移矩阵为T2,则毫米波雷达到相机坐标的平移矩阵为T由公式(4)给出:

T=T1-T2。

(4)

同理,摄像机的旋转矩阵为R1,毫米波雷达的旋转矩阵为R2,则毫米波雷达转换到相机的旋转矩阵R由公式(5)给出:

R=R1·R2。

(5)

对此可将毫米波雷达坐标点(xr,yr,zr)通过公式(6)转换到摄像机的空间坐标系中,对应点坐标为(xr1,yr1,zr1)。

(6)

经过坐标对齐之后的毫米波雷达数据在2D图像上表示如图6所示。

图6 毫米波雷达到2D图像映射图

由于毫米波雷达仅有(x,y)轴信息,而不含有z轴高度信息,因此将毫米波雷达数据映射到2D图中时,为更直观地进行表述,以颜色的深浅代表目标距离的远近。

2.2 实验环境及参数设置

本文实验平台为Ubuntu 16.04,使用Python3.8作为开发语言,深度学习框架为Tensorflow2.2,CUDA版本为10.2。数据集为经过筛选过滤的Nuscenes数据集。

对搭建的数据融合网络采用梯度下降的方式进行训练。为了加快模型的收敛,采用迁移学习的策略,加载预训练VOC数据集权重对模型进行参数初始化,同时采用冻结训练的方式,在前50个Epoch时,冻结模型一半的训练参数,设置学习率为1×10-3,batch设置为16,然后进行模型解冻,再进行前向传播100次,batch设置为8,学习率设置为1×10-5,总迭代次数为150轮。训练时,优化器为Adam,并设置Loss提前终止条件。图7显示了训练过程中损失函数的变化过程。

图7 训练过程loss变化曲线

从图7中可以看出,在训练到50个Epoch将模型进行解冻训练时,Loss进行了突变,但是随着训练轮次的继续进行,Loss继续下降,最后在训练到132个Epoch的时候,模型损失不再下降,终止训练。

2.3 评价指标

本文使用平均精度(mean Average Precision,mAP)以及每秒帧率(Frame per Second,FPS)对模型进行评估。计算mAP需要首先计算精确度p和召回率r,其公式分别如式(7)和(8)所示:

(7)

(8)

式(7)和(8)中:TP表示样本为正样本而预测结果也为正样本;FP表示样本为负样本而预测为正样本;FN表示样本为正样本但是预测为负样本。以p为纵轴,r为横轴,绘制p-r曲线,平均精确度(Average Precision,AP)被定义为p-r曲线下的面积,其表达式为

(9)

mAP被定义为所有类别AP的平均值,其表达式为

(10)

式中:n表示一共有多少类,在本文中,共有7类,因此n为7。

FPS是衡量目标检测网络检测速度的一个指标,其含义是在单位时间中模型能检测多少帧,其定义为

(11)

式中:Tstart表示检测开始的时间;Tend表示检测结束时间。

2.4 实验结果

本文共分为3组进行测试,分别对应正常天气、遮挡、暗光等环境,检测结果如图8所示。

在图8中,第一组为在正常天气环境下使用测试集中图片进行检测的结果。从第一组实验可以看出,在正常天气下,通过图片进行检测和通过融合毫米波雷达数据进行检测都能都精确地将目标检测出来,未出现漏检的情况。这是因为在正常天气,摄像头能提供丰富的像素信息,因此能精准地将目标进行检测出来。

第二组实验为目标遮挡的情况。由检测结果可以看出,在仅使用图片数据进行目标检测时,Yolov4-tiny出现了漏检的情况,而融合毫米波雷达数据之后,则能较好地对目标进行检测。这是因为在遮挡的情况下,摄像头无法获取目标的特征信息,将会将其视为背景进行处理,而编码后的毫米波雷达数据则提供目标的特征信息,因此,在遮挡的情况下,仅使用图片进行目标检测将造成一定的漏检。

第三组为在夜晚暗光条件下进行的测试。由检测结果可以看出,仅使用图像信息进行目标检测存在大量漏检的情况,后面光照较暗的小车和右边被遮挡的车辆都未能检测出来,而本文的融合算法能在目标模糊以及光照不强的情况下依然能将目标检测出来,具有较强的抗干扰性。

为了更进一步的验证本文所提融合算法的性能,本文在同样的环境下,先后测试了Yolov3[19]、Yolov4[17]、Yolov4-tiny、Efficientnet[20]、Faster-RCNN[21]等目标检测网络,并使用平均精度以及每秒检测帧数进行模型评估,检测结果如表1所示。

表1 本文算法与其他算法的对比

由表1可以看出,Yolov4的平均精度达到了60.83,但是其检测速度只有44.81;Yolov4-tiny虽然检测速度较高,但是其检测精度却相较于Yolov4下降了19.31的精度;本文提出的融合算法在检测精度上高达61.82,不仅检测精度与Yolov4相当,而且其检测速度也达到了53.84,较原始Yolov4网络提高了9.03。综合检测精度以及检测速度来看,本文所提的毫米波雷达与摄像头融合目标检测算法优于其他算法。

2.5 消融实验

为进一步验证本文各模块的有效性,分别对编码方式、融合方式以及损失函数进行消融实验,实验共分5组进行,结果如表2所示。

表2 消融实验结果

由表2可以看出,当采用FCPC毫米波雷达编码策略时,其mAP相较于原始基模型时有较为明显的提升;其次,从第2~4组实验可以看出,本文所采用的CBAM融合策略以及Focal Loss损失改进策略都在一定程度上提升了检测精度。综合以上5组实验,可以看出本文所提改进方向的有效性。

3 结束语

针对传统目标检测算法基于图像进行处理,在面对如雨雾,遮挡,强光等复杂场景下,目标容易造成漏检、误检的情况,本文提出了一种基于毫米波雷达与摄像头数据进行融合的目标检测算法,并在Nuscenes数据集上进行模型验证与对比。实验结果显示,本文所提融合算法相较于基于图像进行目标检测算法具有更强的抗干扰能力以及更高的检测精度。由于条件限制,本文所提算法未在实车上进行测试,因此,在后续工作中将考虑利用实车对算法性能进行进一步验证并改进。

猜你喜欢

摄像头卷积雷达
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
基于3D-Winograd的快速卷积算法设计及FPGA实现
DLD-100C型雷达测试方法和应用
从滤波器理解卷积
雷达
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
基于傅里叶域卷积表示的目标跟踪算法
基于空时二维随机辐射场的弹载雷达前视成像
现代“千里眼”——雷达