动态卷积的3D点云目标检测算法
2023-01-12蔡黎明杜吉祥刘怀进张洪博黄敬东
蔡黎明 ,杜吉祥,刘怀进,张洪博,黄敬东
(1.华侨大学 计算机科学与技术学院,福建 厦门 361021;2.华侨大学 福建省大数据智能与安全重点实验室,福建 厦门 361021;3.华侨大学 厦门市计算机视觉与模式识别重点实验室,福建 厦门 361021)
在汽车、飞机等交通工具中,以计算机智能为核心的无人操作,称为自动驾驶.为了提高驾驶安全、缓解交通压力、适应不同人群等问题,自动驾驶已经成为人工智能领域的热门话题.在自动检测场景中出现的目标是自动驾驶研究的关键.在过去研究中,目标检测研究主要侧重于二维图像中的目标检测.然而,当目标检测图片出现严重的遮挡与噪声时,常导致检测算法不精确.在自动驾驶中,常用的传感器是激光雷达传感器,与单目相机相比,激光雷达传感器可以提供更准确的深度信息,且能生成三维(3D)点云来捕捉场景的3D结构.准确的空间位置信息使自动驾驶汽车能够有效地预测和规划路径,避免发生不必要的交通事故.因此,基于3D点云的目标检测研究在自动驾驶领域备受关注.
为了处理非结构化的三维点云,体素的检测器通常将不规则的点转换成规则的体素网格,采用3D卷积神经网络进行特征学习.Zhou等[1]提出一种新的体素特征编码层,提高了体素网格的有效并行处理能力.Yan等[2]利用3D子流形稀疏卷积[3],提出一种高效架构,使计算和内存效率显著提高.Lang等[4]提出将体素简化为柱子.Shi等[5]提出一种两阶段检测器,由部件感知模块和聚合模块组成.Deng等[6]在两阶段的算法中引入全卷积网络来扩展一种新的高性能3D目标检测(PV-RCNN)算法,在体素特征中提取感兴趣区域特征,使粗体素粒度的检测精度得到提高.Ma等[7]将点云分配到规则的三维网格中,并使用三维稀疏卷积提取体素特征.Xu等[8]将原始的3D点云数据进行体素化,同时设计一个轻量级的位置注意模块,采用加权特征融合的方法,高效地获得多层次特征.
与体素的方法不同,基于点的算法是直接从非结构化的点中学习特征生成感兴趣区域.Qi等[9-10]开创性地采用直接从点中学习特征的算法,保留了较多的特征信息,提升了模型的分类分割精度.Shi等[11]提出一种从原始点云中检测3D物体的两阶段3D目标检测(PointRCNN)算法,该算法可以直接从原始点云中分割前景点,为预测3D回归框减少搜索空间.Yang等[12]在下采样过程中提出一种融合采样策略,对点进行检测,设计了包含候选生成层、无锚回归头和3D中心性分配策略的预测网络.Shi等[13]将图神经网络引入三维目标检测的框架中.
上述的3D目标检测算法在特征提取时采用的卷积均为静态.针对此问题,Xu等[14]提出一种用于点云处理的位置自适应卷积算子.在点云三维立体空间中,点与点之间的关系复杂,可以使卷积核的选取适应周围的变化.点云三维目标检测的难点主要是点云的不规则性,若样本遮挡严重且较为稀疏,则难以提取关键特征,经常要转为有序的表达方式.基于此,本文提出一种新的3D目标检测算法,尝试解决不规则且稀疏点云数据中的目标检测问题.
1 实验方法
1.1 算法的整体框架
图1 PAC-PointRCNN算法框架图Fig.1 PAC-PointRCNN algorithm framework diagram
提出一种结合动态卷积学习特征的PointRCNN(PAC-PointRCNN)算法,其框架如图1所示.整体架构模型分为2个阶段:第1阶段主要通过构建动态卷积进行特征提取,并构建3D检测框;第2阶段对第1阶段的输出进行精细化处理.在第1阶段首先对点进行预处理,将得到的点数据送入骨干网络提取特征,每个点产生特征向量,同时,对周围的上下文信息进行编码,增大其感受野,通过KITTI数据集标注的3D边界框可以判断出前景点信息;然后,根据特征向量进行前景点分割,对得到的前景点进行分类回归,在对前景点预测所属对象的包围框时,用bin机制[11]把回归问题先转化为分类问题,再进行回归,以提高效率及精度;得到大量预选框后,将预选框进行非极大值抑制处理,送入第2阶段进行特征融合,提取局部特征,得到的点位置坐标通过规范化处理,再分类回归得到精细框.
图2 骨干网络Fig.2 Backbone network
1.2 骨干网络
骨干网络,如图2所示.骨干网络由4个下采样编码的集合抽象层和4个上采样编码的特征传播层组成.
集合抽象层,如图3所示.图3中:N,N1为点集中点的数量;d为坐标空间维度;C,C1为特征空间维度;k为固定值.在集合抽象层中,采用最远点采样的方法对输入点进行降采样,将输入点集从N降到更小的N1,最远点采样是使采样的各个点之间尽可能远,这种降采样的结果比较均匀且具有更好的覆盖效果.在骨干网络的第1个集合抽象层中,对输入的原始点进行最远点采样,得到的降采样结果作为第2个集合抽象层的输入点,以此类推,直到第4个集合抽象层.将降采样得到点的数量N1进行分组,选取这N1个中心点,每个中心点采用球查询的方式寻找固定的k个邻域点,先划定某一半径,找在该半径球内的点作为邻域点,如果点数大于固定值k,取前k个点为邻域点,如果点数小于固定值k,对点进行重采样以达到固定值k.这样形成一个局部邻域,共组成N1个局部邻域,这个过程中,坐标空间维度d和特征空间维度C没有发生变化.球查询在局部邻域组内固定了区域尺度,使局部区域特征在空间上更具有泛化性.
动态网络,如图4所示.在动态网络中,对每一组局部邻域进行动态网络编码,将采样和分组后的点作为输入,送进具有动态内核组装的位置自适应卷积即PAConv动态卷积里,使每个点的特征维度升高,以获取更多的特征信息,再通过最大池化选取最重要的特征作为新特征输出.在此过程中,坐标空间维度d没有发生变化,特征空间维度从C变成更高的维度C1,即特征的通道数升高了.在特征传播层中,采用基于距离的插值和跨越跳级链路的分层传播策略,与集合抽象层的反过程类似,将集合抽象层每一层得到的结果通过插值点特征传播到原始点集.PointNet为直接从点云中学习特征的网络结构;PointNet++在PointNet的基础上进行改进,具有多层次特征提取结构.在PointNet++的集合抽象层基础上,骨干网络将PointNet层嵌入PAConv动态卷积,生成动态网络,没有改变其他架构配置.
图3 集合抽象层 图4 动态网络Fig.3 Set abstraction layer Fig.4 Dynamic network
1.3 动态卷积
在三维空间中,点与点之间的关系与二维平面中点之间的关系有很大的不同.例如,在二维平面的网格中,中心点周围的邻域点个数是固定的,但在点云的三维空间里,取一个中心点(图5),它周围的邻近点有无限可能,多一个维度会使点关系变的错综复杂.在二维平面空间中,使用卷积神经网络学习得到的特征可以很好地反映点之间的相关性;而在三维空间里,由于点的无序不规则性,使用二维空间里学习特征的卷积核算子会使相关性变差,从而导致检测不精确.因此,重新设计卷积核函数,使其能动态地学习点特征.PAConv动态卷积,如图6所示.首先,定义由几个权重矩阵组成的权重库;接着,设计一个LearnNet学习系数向量,根据点的位置组合权重矩阵;最后,结合权值矩阵及其相关的位置自适应系数生成动态核.
图5 3D点 图6 PAConv动态卷积 Fig.5 3D point Fig.6 PAConv dynamic convolution
构景要素以自然、人文为主线,交通为纽带,民俗文化为趣味点,形成主题各异、形象鲜明的旅游精品线路,造出“同饮黄河水,共赏民俗情”的主题式旅游[10]。民俗文化有着独特的文化内涵、浓烈的原始气味、厚重的历史氛围、显著的地域差距、欢愉的生活情调及丰富多彩的表现形式,对游客产生强大的吸引力和感召力。
P=(Aj-Ai,Ai),
(1)
(Aj-Ai,Ai)=(xj-xi,yj-yi,zj-zi,xi,yi,zi).
(2)
LearnNet的输出向量Ei,j表达式为
Ei,j=softmax(relu(δ(P))).
(3)
(4)
得到动态核后,生成的自适应动态卷积可以更加灵活地学习特征.因此,权重库的规模越大,权重矩阵的灵活性和可用性也越大,但由于权重矩阵是随机初始化的,在网络的训练过程中,卷积核学习得到的合理权值会趋于相似,不能保证权重矩阵的多样性.为了避免这种情况,采用权值正则化来惩罚不同权值矩阵之间的相关性,让权重矩阵的分布更加多样化,进一步保证生成核的多样性.因此,将PAConv动态卷积嵌入骨干网络,从而可以更加灵活精确地学习三维空间的点特征.
1.4 损失函数
为了便于比较,采用PointRCNN的损失函数,由于大型户外场景前景点的数量比背景点的数量少,因此,在第1阶段的子网络中,使用焦点损失[15]解决前景-背景分类不均衡的问题,得到的损失为Lfocal,即
Lfocal(pt)=-φt(1-pt)γlnpt.
(5)
式(5)中:t为前景点即正确分类点;pt为正确分类的概率;φt,γ为超参数调节因子,φt=0.25,γ=2.
使用回归损失函数[11]生成3D预选框,即
(6)
在第2阶段的子网络中,将预选框坐标转到规范的坐标系下,总的损失Lrefine为
(7)
2 实验结果与分析
2.1 数据集
KITTI的三维检测数据集包含7 481个训练样本和7 518个测试样本,与PointRCNN算法一样,将训练样本分为训练集(3 712个样本)和验证集(3 769个样本).标注文件里的字段含义分别为类别、截断率、遮挡程度、观测角度、2D边界框左右下角坐标、3D边界框的长宽高和在相机的坐标、相对Y轴旋转角度.激光雷达点云数据以浮点二进制文件格式存储.
2.2 实验设置
采用两阶段的训练方式,对于训练集中的每个3D点云场景,从每个场景中抽取16 384个点作为输入,不足16 384个点的场景,随机重复抽取以达到16 384个点.在骨干网络中,使用4个多尺度分组的集合抽象层,将输入的点下采样为4 096,1 024,256,64的组.然后,使用4个特征传播层获取点特征向量,用于分割和生成预选框细化子网络.从每个感兴趣的集合区域随机抽取512个点作为细化子网络的输入,为了使对象置信度分类和提案位置细化,采用3个单尺度分组的集合抽象层(组大小为128,32,1)生成单个特征向量.在KITTI数据集中,汽车类的样本数量最多,对其训练细节的描述也适用于其他类别(如行人和自行车).将3D真值框内的所有点视为前景点,其余点视为背景点,在训练过程中,忽略物体边界附近的背景点.由于3D真值框可能会有小的变化,所以,通过在物体的每一侧将3D真值框放大0.2 m进行鲁棒分割.对于bin机制,参数设置的搜索范围S=3 m,2个垂直方向共划分12个区间,每个区间为0.5 m.
评估时,难度等级Easy,Moderate,Hard表示的最小边界框高度分别为40,25,25 px,最大遮挡程度分别为完全可见、部分可见、很难看到,最大的截断率分别为15%,30%,50%.在PointRCNN开源代码的基础上进行修改,为了便于对比分析,实验的参数设置与原模型一致,只在第1阶段的骨干网络部分将PAConv动态卷积嵌入其中进行改进.为了增加额外的非重叠真值框,在场景中使用随机翻转、缩放、旋转和数据增强等方法.两个阶段的子网络分开训练,在训练过程中,第1阶段采用单个图形处理器(GPU)方式进行训练;第2阶段采用两种训练方式,即在线的数据增强和离线的数据增强,在线数据增强易于训练,离线数据增强训练效果更好.
2.3 实验对比结果
为了验证文中算法的有效性,根据PointRCNN提供的代码指令,采用在线和离线两种数据增强方式,在汽车类数据集中进行复现,在交并比阈值(IOU)为0.7的情况下,记录平均检测精度(PA).汽车类数据集上文中算法与现有算法、PointRCNN算法的平均检测精度对比,如表1所示.表1中:黑体数据表示最好的实验结果.
表1 不同算法在汽车类KITTI验证集上的平均检测精度对比Tab.1 Comparison of average detection precision of different algorithms on car class of KITTI val split
由表1可知:文中算法在PointRCNN的基础上融入PAConv动态卷积模块,在汽车类数据集的Moderate,Hard等级难度下,文中算法的平均检测精度均优于现有其他算法.
在行人和自行车类数据集上进行实验,文中算法与PointRCNN算法的平均检测精度对比,如表2所示.由表2可知:由于行人和自行车类数据集的体积小且样本稀疏,文中算法在行人类数据集Hard等级难度下的检测精度较好,在自行车类数据集Easy,Moderate等级难度下的检测精度更好.由此可见,文中算法在遮挡严重且样本稀疏的目标检测上具有优越性.
表2 不同算法在行人和自行车类KITTI验证集上的平均检测精度对比Tab.2 Comparison of average detection precision of different algorithms on pedestrian and bicycle class of KITTI val split
表3 训练时间的对比Tab.3 Comparison of training time
为了验证文中算法的可行性,采用文中算法和PointRCNN算法对两阶段进行训练,其训练时间的对比,如表3所示.表3中:t1,t2分别为第1阶段、第2阶段的训练时间.由表3可知:文中算法比PointRCNN算法所用的训练时间更少,再次验证了文中算法的优越性.
2.4 消融实验
为了探究不同的输入方式对PAConv动态卷积效果的影响,采用4种不同的输入方式进行消融分析实验.以中心点Ai和邻近点Aj两者之间的关系设计4种不同的任务,Oi,j表示Ai和Aj的欧式距离.不同输入方式下的召回率(ηR),如表4所示.由表4可知:将邻近点与中心点的距离差和中心点一起输入,召回率最高,加入两点的欧式距离及邻近点后,召回率变差,表明在大型的户外场景中运用动态卷积自适应时,输入的越多,越容易产生误差,从而影响检测效果.因此,选择(Aj-Ai,Ai)作为输入,该输入方式的召回率高,得到的最终检测精度最好.
表4 不同输入方式下的召回率Tab.4 Recall rate under different input modes
2.5 效果可视化
在KITTI训练集上对汽车、行人和自行车三类进行标记,采用分开训练的方式,将得到的模型可视化展示.汽车、行人和自行车类的检测对比图,分别如图7~9所示.图7~9中:图(a)为2D标记框;图(b)为3D标记框;图(c)为预测框;图(d)为预测框与3D标记真值框的对比;图(e)为图(d)部分结果的放大效果;绿色为汽车类标记框;蓝色为行人类标记框;黄色为自行车类标记框;红色为预测框;红色箭头表示方向.
图7 汽车类的检测对比图Fig.7 Car detection comparison chart
图9 自行车类的检测对比图Fig.9 Bicycle detection comparison chart
由图7~9可知:2D标记框的遮挡问题在3D点云场景中得到很好地解决,因为3D检测框是立体的,使检测框得到很好的分离,显示出3D目标检测的优越性;在汽车、行人、自行车类的检测效果图中,预测框与标记框的误差小,证明了文中算法的有效性.
3 结束语
提出一种将动态卷积作为特征提取的3D点云目标检测算法.针对点云的不规则无序性问题,相较于现有算法,文中算法的优点是运用动态卷积的方法,可以更好地提取关键特征.文中算法采用PAConv动态卷积的方式,通过相对点位置自适应地学习生成分配系数,从而动态调整权重,有效地避免了因遮挡和样本稀疏造成的模型不精确问题.从KITTI数据集的训练结果可知,在汽车类的Moderate,Hard等级难度下,文中算法的平均检测精度优于现有算法;由于行人和自行车类数据集的体积小且样本稀疏,在行人类数据集的Hard等级难度下,文中算法的平均检测精度较好,在自行车类数据集的Easy,Moderate等级难度下,文中算法的平均检测精度较好.实验结果表明:针对不规则无序、遮挡、稀疏的点数据,文中算法具有更好的检测精度.