基于改进Center Net行人检测研究

2023-06-16 11:33张立国
燕山大学学报 2023年3期
关键词:中心点卷积损失

金 梅,秦 芊,张立国,2

(1.燕山大学 电气工程学院,河北 秦皇岛 066004;2.燕山大学 河北省测试计量技术与仪器重点实验室,河北 秦皇岛 066004)

0 引言

近年来随着人工智能的不断发展,行人检测技术在视频监控[1-3]、人体动作分析[4]、辅助驾驶[5]等领域取得了巨大成功。行人检测往往建立于目标检测基础之上,在过去的几十年中,目标检测领域已经取得一系列的成果。目前主流的目标检测方法可分为两类:一种为基于传统计算机视觉方向的目标检测[6],另一种为基于深度学习方法的目标检测[7]。对于基于传统计算机视觉的目标检测而言,文献[8-9]采用了手工特征与机器学习算法相结合的方法来进行检测。但是此种传统方法对图像语义信息表征不足。对于基于深度学习的方法来说,目前主流的目标检测方法可分为以Faster R-CNN[10-12]为代表的二阶段模型和以Yolo[13-16]系列为代表的一阶段模型。二阶段系列模型精度较高,此系列算法在一阶段要大量生成候选区域,在二阶段对这些候选区域进行检测,由于上述操作并不是端对端的运算,计算量较为庞大。而一阶段系列模型直接将CNN 模型提取到的图像特征进行预测,提高了检测速度,因此在移动端应用较为广泛。对于行人检测来说,考虑到应用场合和硬件设备等因素,必然要采用一种运算量小、结构简单的检测模型。Yolo[13-16]模型与Faster R-CNN[10-12]模型相比速度上大有提高,但与没有使用预设框(anchor-free)的模型相比,Yolo 系列模型则相对复杂。文献[17-19]属于anchor-free模型,此类模型通过预测关键点来生成候选框而不使用预设框(anchor)。但上述模型对于行人检测来说没有较好的针对性,仍存在人体遮挡以及人体姿态多变等引起的精度下降问题。对此,本文针对人体遮挡以及人体姿态多变等问题对文献[19]提出的CenterNet 模型进行了三处改进,第一引入了特征融合模块,可以更好地对人体特征进行捕捉,从而增强模型对不同姿态人体特征的认知;第二设计了带有非局部注意力的检测头,有效地缓解了遮挡问题;第三将中心点预测与分类预测的损失函数合并成一项,降低了原模型中总损失函数的级联误差。在WiderPerson 数据集和Human detection and tracking using RGB-D camera数据集上进行实验,结果表明,上述改进方法有效地解决了遮挡以及外观差异等问题。

1 Center Net 算法

CenterNet 结构分为特征提取部分和参数解码部分,如图1 所示。特征提取的主干部分采用的是resnet50[20]或者hourglass[21],原始图像经过上述的模型,其输出还要进行三次反卷积操作,此番操作的目的是获得高分辨率特征图。得到最终特征图之后,要对特征图进行预测解码。与其他目标检测算法不同的是,除了类别预测之外,CenterNet将目标种类在图中中心点和宽高作为输出,因此预测和表达中心点以及相应损失函数的设计在此模型中尤为重要。CenterNet 的预测结果中分为三个部分,分别为热力图预测,中心点预测和宽高预测。热力图可以表示数据的聚合和离散程度,如果将其赋予颜色,则可以清晰地看出数据之间的关系。在CenterNet 中,采用高斯核函数定义了中心点与其他像素点之间的关系,高斯表达式为

图1 CenterNet 结构图Fig.1 Structure diagram of CenterNet

式中,σ为标准差,px、py为中心点在x和y方向上的分量。当寻找到相应的特征点之后,此特征点附近的特征点对应的种类会按照高斯分布不断下降。热力图代表了预测中心点和实际中心点的偏移情况。宽高预测代表了候选区宽高的预测情况,宽高预测和中心点预测相结合才能更精确地表达出目标的区域。

参数解码部分即为对模型参数进行解析,更加直观地得到种类以及预测框在图中的位置。从热力图预测结果中可以得到被检测的目标的中心点,而中心点预测值预测的是真实中心点与预测值的偏移程度,由此对中心点坐标进行修正。宽高预测的结果为预测框的宽高,得到中心点坐标之后,将其坐标分别加上或减去宽高预测结果的1/2,得到的结果为预测框的左上角和右下角,由此可以画出预测框在图中的位置。

2 改进Center Net 算法

本文所提出行人检测的流程图如图2 所示,是基于CenterNet 进行了改进,将改进后的模型称为P-CenterNet。

图2 P-CenterNet 结构图Fig.2 Structure diagram of P-CenterNet

2.1 特征融合模块

特征融合模块的结构如图3 所示,采用残差结构嵌入到特征提取的主干网络,其作用为增强图像特征的表达。此模块将Backbone 子模块1 的输出特征图进行反转卷积处理,得到通道方向上的特征,再将其与Backbone 子模块2 的输出特征图按位相加,经过ReLU 函数进行激活后输入到Backbone 子模块3 中。

图3 特征融合模块结构图Fig.3 Structure diagram of feature fusion

图像的卷积运算是用固定的卷积核在图像上进行滑动运算,不同通道所采用的卷积核也不相同,这就造成了卷积核在空间上具有不变性,在通道上具有独立性。具体来讲空间不变性指的是目标在空间中的位置不会影响输出结果;而通道独立性指的是特征图中所有的通道都是独立的,并没有进行信息交互。为了尽可能地挖掘特征图各个方面的信息并高效利用,本文在CenterNet 原模型中加入反转卷积[22]。反转卷积的结构图如4所示。

反转卷积与其他卷积不同的是,其卷积核是由自身生成,并且生成的卷积核尺寸不是固定的,可根据输入特征的不同在不同位置产生不同尺寸的卷积核。卷积核是由在不同通道的单个像素生成而非相邻像素,当输入特征的尺寸较小时,生产的卷积核通道数也会相应变小,与固定通道数的卷积核相比,更加地灵活分配通道数,有效减少了信息的冗余,具体产生卷积核公式如下:

其中:Xij为坐标邻域的一个索引集合,用来表示特征图上包含的某个区域;W0和W1表示两个线性变换,二者组合可产生一个瓶颈结构;σ为归一化和激活函数的线性投影。

以图4 为例,首先从输入特征图中利用特定的变换函数提取了1×1×K2个向量,对其进行处理使其形状变为K×K×1。之后再将此特征图与输入特征图进行相乘进行特征融合,进而获得空间上的信息再由此作为新的卷积核,新卷积核与输入特征图进行卷积操作输出最终预测结果。

图4 反转卷积结构图Fig.4 Structure diagram of involution

输入特征图是提取图像空间上的特征,而反转卷积是在通道上提取特征,两种特征相加,使两种特征互相补充,增强了图像特征表征,更有利于模型对各种不同姿态的行人进行识别。

2.2 非局部注意力检测头

特征提取部分结束后,获得了一个128×128×64 的高分辨率特征图。其中128 为特征图的长和宽,64 为特征图的个数。原CenterNet 预测头的结构如图1 所示。此结构为目标检测任务中较为通用的检测头结构,但由于在行人检测任务中经常出现遮挡问题,因此,本文设计了一种含有非局部注意力的检测头。非局部注意力[23]来自于自注意力机制[24],非局部注意力可以用公式表达为

其中:i和j都表示特征图的位置索引,且i与j不相等;f(xi,xj) 是计算输入x中i的位置与j的位置的相似度函数;g(xj)为变换函数;C(x)是对输出进行归一化处理,保证输入输出的大小一致。f(xi,xj)的表达式为

计算非局部注意力的流程图如图5 所示。首先将输入特征x分别进行三次卷积核为1×1 的卷积操作,具体参数θ、f、g是经过训练得到。其目的是将特征图进行降维操作,降低后续计算量。之后对经过卷积核θ的特征进行转置处理,接着与经过卷积核ϕ得到的特征图相乘,得到相似度矩阵。经过softmax 之后与降维后的原特征图相乘,得到带有权重的新特征图,最后通过1×1 的卷积进行形状调整,达到输入输出维度相同的目的。

图5 非局部注意力结构图Fig.5 Structure diagram of none-local attention

此模块可以计算特征图中任意两点之间的相似度。对于遮挡问题,通过计算相似度,可以很好地分辨出在同一遮挡下的两个目标。

2.3 损失函数

CenterNet 的损失函数也分为三部分,热力图损失采用的是focal loss,计算公式为

其中,α和β是超参数,N为特征图像素点个数,Y表示真实样本,y表示Y的预测值。

当样本为易分样本时,损失函数值会很小,起到了正向的作用;当样本为难分样本时,对应的ln (1-y)变得很大,损失函数值变大,使得增加了模型的训练量,以此来寻找最预测值。

中心点预测和宽高预测采用的是L1损失函数,公式如下:

误差函数的值即为真实值和预测值差的绝对值之和。整体的损失函数是三者损失函数的加权和,公式如下:

式中,LF代表热力图预测损失,Lsize代表宽高损失,Loffset代表中心点损失,λsize和λoffset代表权重参数。权重参数是按照三种损失函数的重要程度来进行设置。在CenterNet 的实验方案中是对这三种损失分别计算。

边界框的选择往往会对宽高预测造成影响,其他的检测模型通常会采用非极大值抑制对边界框进行筛选,选取得分最高的候选框作为最终输出结果。在原CenterNet 中并没有进行非极大值抑制的设置,但从实际实验中了解到,加入非极大值抑制对检测精度有正面的影响,因此在设计本文相关算法时加入了相关计算。常规的非极大值抑制只是单纯的筛选得分最高的候选框,但如果框的边界与其他目标的框有交叉时,很容易造成错误的筛选。针对上述问题,本文使用了一种基于交并比(Intersection over Union,IoU)和分类得分联合判断的非极大值抑制的方法,流程图如图6 所示。

图6 非极大值抑制计算流程图Fig.6 Calculation flow chart of the non-maximum suppression

从图6 中可以看出,分类得分是主要的判别信息,IoU 作为辅助判断。将所有的候选框信息放到同一集合,再随机抽取一个候选框作为初始值,初始值与其他的候选框进行比较,如果其他的候选框的得分和IoU 值都大于初始值,则这个候选框将作为新的初始值与其他候选框进行比较,直到与所有的候选框比较完成后结束筛选。普通IoU 只是单纯的计算两个区域的面积重合度,但对于靠近物体中心点的冗余框会产生误判,为了减少这一误差,本文采用Distance-IoU,简称DIoU。DIoU 的定义为

式中,b为预测框的中心点,bgt为真实框的中心点,ρ代表了这两个点的欧氏距离,c为能够涵盖预测框和真实框的最小矩形的对角线距离。

本文在设计P-CenterNet 时加入了非极大值抑制部分,是由分类分数和预测框联合筛选的最终结果,而分类结果和预测框结果又会影响损失函数。在模型训练时,上述三部分是各自训练,之后再将其联合作为筛选条件,这样的操作显然不是端对端的,会存在一定的级联误差,为了改善这一现象,本文采用一种改进的focal loss,将分类预测和中心点预测成为端对端的输出。本文将中心点预测值进行归一化处理变为0~1 之间的连续值作为一个质量标签,从而对分类和质量两方面进行评估。预测结果值越大代表着预测结果的质量越好。具体公式如下:

其中,y为中心点预测值,σ为分类预测值,根据实验经验β值取2。上式可以看出,当y和σ取值均为1 时,损失函数得到最优解,|y-σ|β为比例因子,当分类预测和中心预测都较大的偏离真实值时,损失函数的值较大, 更加关注负样本。CenterNet 中还存在着宽高损失,如果将其也加入focal loss 中会增大计算量,因此在P-CenterNet 中对于宽高的损失函数采用smoothL1损失。L1损失函数为两数值差绝对值之和,但是此函数的图像存在折点,在此点处很难进行求导运算,而smoothL1损失将此点进行了平滑处理,改善了上述问题。

3 实验

3.1 实验环境以及评价指标

本文的实验环境为:Intel Core i5-9400F CPU@ 2.90GHz,16G 内存;显卡NVIDIA GeForce GTX 1080;64 位Windows 10 操作系统;学习框架为TensorFlow 2.3;CUDA 10.3。实验用到VOC、Human detection and tracking using RGB-D camera和WiderPerson 三种数据集。VOC 数据集是较为经典的目标检测数据集,其中也包含行人类别;Human detection and tracking using RGB-D camera数据集是室内场景行人检测数据集;WiderPerson数据集是拥挤场景行人检测数据集。

P-CenterNet 采用迁移学习的方式进行训练,模型先采用VOC 数据集进行预训练,预训练的目的是让模型有一个初步判别能力,之后采用WiderPerson 数据集进行针对性训练,最后分别在VOC 数据集、WiderPerson 数据集以及室内公开数据集Human detection and tracking using RGB-D camera 进行测试,结果表明P-CenterNet 在三种数据集上性能均有提升,验证了方法的有效性。

实验结果的优劣程度由平均精度和漏检率这两个指标进行比较。平均精度(Average precision,AP)的定义为

其中,p(r)函数为精准度(precision)和召回率(recall)的曲线。精准度和召回率的定义如下:

针对行人检测本文采用漏检率(Miss rate,MR)这一指标来评价模型的优劣,其值越小代表模型检测效果越好,定义如下:

其中,NTP为所有的正样本中被预测正确的比例,NFN为正样本中被误分成负样本的比例,NFP为负样本正确预测的比例。由于训练时采用迁移学习的方法,模型已经具有初步识别人的能力,因此只需要对模型进行进一步微调。本文采用公开数据集WiderPerson 训练500 轮,取损失值最小的一组训练结果作为最终结果。

3.2 实验结果及分析

表1 为不同模型在VOC 数据集上性能测试结果,精度代表检测结果的准确率(即检测结果是否正确),从表中可以直观地看出,P-CenterNet 模型在VOC 数据集上检测结果的精度已经超越了具有较高准确率的Faster R-CNN 模型,并且与CenterNet 模型相比,准确率提高了5.5%。

表1 VOC 数据集性能测试结果Tab.1 VOC dataset performance test results%

图7、图8 为CenterNet 分别在室内和室外环境下改进前后对比。整体来看,每个人的检测精度均有小幅提升,并且预测框的区域更加规范。从图7 右上部分和图8 右部分可以看出PCenterNet 对遮挡具有鲁棒性。图8 中间的人像也可证明P-CenterNet 对人体的姿态更加敏感。

图7 室内环境下检测结果Fig.7 Detection results of indoor environment

图8 室外环境下检测结果Fig.8 Detection results of outdoor environment

表2 为P-CenterNet 模型在WiderPerson 数据集上的检测结果,由此可以看出,P-CenterNet 模型与原CenterNet 模型相比AP 提升了3.29%,MR降低了3.26%,并且优于其他检测模型。

表2 WiderPerson 数据集性能测试结果Tab.2 WiderPerson dataset performance test results %

表3 为P-CenterNet 模型在Human detection and tracking using RGB-D camera 数据集上的检测结果,该数据集的采集环境为室内,环境与上述数据集大不相同,因此检测结果也存在差异。与CenterNet 模型相比AP 提升了2.66%,MR 降低了2.46%,同样也优于其他检测模型。

表3 Human detection and tracking using RGB-D camera数据集性能测试结果Tab.3 Human detection and tracking using RGB-D camera dataset performance test results%

此外,为了验证各个模块对CenterNet 模型的改进效果, 设计了 4 种实验方案并使用WiderPerson 数据集进行验证,结果见表4。

表4 消融实验Tab.4 Ablation experiment

从上述实验可以看出,P-CenterNet 模型在VOC 数据集、 WiderPerson 数据集和 Human detection and tracking using RGB-D camera 数据集中均有良好的表现。与CenterNet 模型相比,本文提出的P-CenterNet 模型设计了特征融合模块、非局部注意力检测头模块,加入了非极大值抑制并且改进了损失函数。从实验数据可看出,特征融合模块和非局部注意力检测模块对模型精度影响最大,在AP 上分别提升了1.66%和0.78%,非极大值抑制和改进的focal loss 次之。主要原因为,由于反转卷积的通道不变性和空间特异性,相当于在通道上提取另一维度上的语义信息,经过反转卷积的特征与原特征进行融合,融合的结果从多个特征图中得到了目标最显著的信息,使得模型对人体的认知大大提高;非局部注意力检测头模块会对特征图进行进一步区分,通过计算特征相似度得到相似度矩阵并作用于原特征图,令非同一目标区域进行抑制,从而区分被遮挡的对象。上述模块相互作用,为模型筛选了较为有用的信息,最终提高了CenterNet 模型在行人检测上精度。

4 结论

本文对CenterNet 模型进行改进并应用于行人检测中,改进后的模型命名为P-CenterNet。该模型通过引入含有反转卷积的特征融合模块、增加非全局注意力检测模块以及损失函数改进,提高了检测算法的准确度。实验结果表明与其他模型相比, 本文提出的 P-CenterNet 模型在WiderPerson 数据集上的平均精度提升了3.29%,漏检率下降了3.26%;在数据集Human detection and tracking using RGB-D camera 上的平均精度提升了2.66%,漏检率降低了2.46%。由此可以看出P-CenterNet 模型在目标遮挡和目标姿态多变等问题上的检测结果与CenterNet 模型相比有所提升。

猜你喜欢
中心点卷积损失
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
Scratch 3.9更新了什么?
如何设置造型中心点?
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
基于傅里叶域卷积表示的目标跟踪算法
汉字艺术结构解析(二)中心点处笔画应紧奏
一般自由碰撞的最大动能损失
寻找视觉中心点