储珺, 束雯, 周子博, 缪君, 冷璐. 结合语义和多层特征融合的行人检测. 自动化学报, 2022, 48(1): 282−291 doi: 10.16383/j.aas.c200032
行人检测是目标检测领域研究最广泛的任务之一,也一直是计算机视觉任务中的热点和难点。行人检测任务是给出图像或视频中所有行人的位置和大小,一般用矩形框标注。行人检测技术可以与目标跟踪、行人重识别等技术结合,应用于汽车无人驾驶系统、智能视频监控、人体行为分析等领域。在实际场景中, 由于行人与物体、行人间互相遮挡以及交通标志、橱窗中的模特等相似信息的干扰,行人检测任务仍然存在很大的挑战。
行人检测是目标检测中的一种特例,现阶段的很多行人检测算法都以目标检测框架为基础。快速区域卷积神经网络(Fast R-CNN)和更快速区域卷积神经网络(Faster R-CNN)是目标检测和行人检测中被广泛采用的基础框架,目前在Caltech行人检测数据集上效果较好的算法大多是基于这两个框架。如多尺度卷积神经网络(MS-CNN)和尺度感知的快速卷积神经网络(SA-FastRCNN)分别基于Faster R-CNN和Fast R-CNN框架强调了尺度问题,针对不同尺寸的行人特征设计了不同尺度的子网络。
Zhang等证明了Faster R-CNN的候选区域网络(RPN)对提取行人候选区域的有效性。但同时也指出基于区域的卷积神经网络(R-CNN)在分类阶段,由于高层卷积特征图分辨率降低,小尺寸的行人无法得到有效的描述,会降低检测的总体性能。因此提出一种结合候选区域网络与决策森林(RPN + BF)的算法。
该算法用RPN提取候选区域,然后用决策森林对候选区域进行分类,有效缓解了上述问题。同样,针对Faster R-CNN中小尺寸行人检测效果不佳的问题, Zhang等提出自适应更快速区域卷积神经网络,通过量化RPN尺度、增大上采样因子、微调特征步幅、处理被忽略区域和调整损失函数的方式,进一步提升了检测效果。Yun等提出一种基于显著性和边界框对齐的部分卷积神经网络(PL-CNN), 其用RPN提取候选区域,对特征图中前景和背景设置不同的权重来消除背景干扰引起的误检,有效解决了行人检测中遮挡和复杂背景干扰等问题。
目标检测算法的设计是为了更好地定位不同的对象,检测过程中只用矩形框标注目标的位置,通常不提供目标的边界信息。语义分割能逐像素地定位目标的边界,将检测和分割联合,使用基于区域的分割方法提取特征,自上而下地聚类计算候选区域,能有效改进目标检测的性能。
Hariharan等首次提出将分割与检测同时用于行人检测,与文献一样采用自上而下的分割方法, 不同的是使用多尺度组合分组(MCG)作为分割的候选区域。Wang等提出一种基于卷积神经网络的结合部件与上下文信息(PCN)的算法,部件分支利用行人的语义信息来精准分类,对被严重遮挡的行人具有良好的检测效果。Du等提出深层神经网络融合(F-DNN)的架构,主要由行人候选区域生成器、分类网络和像素级别语义分割网络组成。该算法在语义分割网络中使用掩膜增强行人特征,降低行人检测的漏检率(MR),缺点是架构结构复杂,提高了精度,但牺牲了速度。
上述行人检测方法虽然添加了语义分割以解决遮挡及背景干扰等问题,但把语义分割作为一个独立的任务来设计额外的分割网络,计算复杂。并且在检测过程中没有针对漏检和误检问题设计独立模块。
因此,本文提出一种新的利用语义分割来增强检测效果的行人检测框架,将语义分割掩膜融合到共享层,增强行人特征,解决行人的漏检和误检问题。由于不增加单独的语义分割网络,因此基本不增加模型的计算复杂度。在RPN的回归分支中用VGG-16构建一个轻量的二次检测模块,解决前一模块初步检测的误检问题,并且对前一次检测的结果进行二次回归。
本文的主要创新点包括:
1)提出一种新的结合语义和多层特征融合(CSMFF)的行人检测算法。增加了行人特征增强模块(PFEM)和行人二次检测模块(PSDM),将语义分割掩膜融合到共享层,有效抑制背景信息的干扰和解决不同程度的遮挡问题,并在此基础上通过二次检测和回归减少误检,提高定位精度。
2)在多层特征融合的基础上结合语义分割,将骨干网络的浅层特征像素信息与深层特征语义信息进行融合,有效提高了小尺寸行人的检测性能。
3)行人特征增强模块可以很方便地嵌入到已有检测框架,基本不增加运算复杂度。
提出的CSMFF行人检测算法除骨干网络外由两个关键部分组成:行人特征增强模块和行人二次检测模块。
行人特征增强模块在Faster R-CNN的RPN之前添加语义分割分支,得到以目标框为边界的分割掩膜。即对骨干网络采用多层特征融合,在此基础上用1 × 1卷积实现分割。分割时逐像素遍历图像中每个像素点,并对每个像素点单独预测和分类,形成语义分割掩膜。分割掩膜通过编码得到语义信息,映射到骨干网络的深层特征作为RPN的输入。
行人二次检测模块添加在RPN的回归分支上,同样对多层特征融合后添加语义分割分支,用来解决PFEM初步检测的误检问题,并对初次检测结果进行二次回归。CSMFF框架的流程如图1所示。
▲ 图 1 本文算法框架
浅层卷积产生的特征图包含更多像素信息,有较高的空间分辨率,行人的轮廓更加清晰,用来定位行人会更准确。深层卷积产生的特征图则包含更多的语义信息,用于行人的检测会更精确。所以文中在分割时把多个卷积特征的融合特征作为分割的输入特征。
行人特征增强模块采用的骨干网络是VGG-16,用卷积的前5层来提取特征。不同卷积层生成的特征图表示不同尺度的行人,卷积层越深,特征图的尺寸就越小,因此,需要对不同的卷积层采用不同的采样策略。
具体做法为:保持Conv2_2层的特征图尺寸不变(112 × 112像素),在Conv3_3层和Conv4_3层上分别添加一个2 × 2和4 × 4的反卷积对特征图进行上采样,记为Dconv3_3和Dconv4_3。然后将Dconv3_3、Dconv4_3与Conv2输出的特征图进行级联,生成多层特征融合层,记为融合1层。
为获得较好的语义特征映射,在融合1层上添加由1 × 1的卷积构成的语义分割分支,用于预测输入图像在采样分辨率上每个像素的类别,记为分割1层。语义分割层形成的行人掩膜有效抑制了背景信息的干扰,并且网络加深时,语义信息会随之进入到卷积层。
利用分割的掩膜获取语义特征映射后,将其与相应的卷积特征图连接作为行人分类的最终特征。具体为分割1层与Conv5_3层特征映射相加连接,记为融合2层,最终输入RPN网络。
现阶段的行人检测数据集大都缺乏基于物体轮廓为边界的逐像素语义标注,无法正常对其进行训练。而且随着卷积网络的加深,图像的尺寸在经过多个池化层后越变越小,对于被严重遮挡的行人和小目标来说,使用物体轮廓和目标框作为边界的逐像素标注的差异已经微乎其微。
图2比较了在Conv5_3层后分别采用基于物体轮廓和目标框为边界的逐像素分割结果。从图2(b)和图2(c)来看,两者相差不大。并且我们的分割只是用来辅助检测,无需分割出行人的精确形状,所以文中选择基于目标框为边界的逐像素分割方式。训练时利用训练数据集中行人的标注信息(坐标、宽、高)形成基于目标框式的分割区域,作为行人分割的标注。
▲ 图 2 基于目标框和物体轮廓为边界的逐像素分割结果
随着卷积网络的加深,网络训练越来越困难,收敛也越来越慢。前期有很多方法可以解决该问题,如修正线性单元激活函数(ReLU)、残差网络(ResNet)以及梯度下降法(GD)。
尽管这些方法训练神经网络非常简单高效,但是需要人为地选择参数,如学习率、参数初始化、权重衰减系数等,而且这些参数的选择对于训练结果至关重要,需要花费很多时间在参数调整上。
本文使用BatchNorm层来解决该问题, 具体是在Conv2 ~ Conv5每一个卷积层中添加BatchNorm层, 采用的BatchNorm层位于卷积层和激活层中间。
图3是行人特征增强模块在添加语义分割前后Conv5_3层的特征可视化对比,图中差异明显的地方用矩形方框做了相应的标记。第1行是Caltech数据集部分测试图像结果,第2行是骨干网络Conv5_3层的特征图,第3行是在Conv5_3层上添加本文语义分割分支的特征图,第4行是融合多层特征后添加语义分割分支的特征图。
通过对比可以看出,受背景和行人较为相似、行人被遮挡等因素影响,行人在骨干网络Conv5_3层的特征不明显。添加了本文的语义分割分支后,行人特征增强,但当目标比较小时,增强效果不太明显(第3行方框)。在提出的融合语义和多层卷积特征后,行人特征增强更加明显(第4行方框)。验证了CSMFF可以更好地区分行人与背景区域。
▲ 图 3 添加语义分割前后Conv5_3层的特征可视化对比
PFEM模块训练时的损失函数包含三个部分:分类损失、回归损失和分割损失。分类损失和回归损失与一般的目标检测器一致。分割在本文是一个二分类的辅助检测工作,与一般的分割方法不同,此处分割损失也采用与分类损失一样的损失函数。PFEM的总损失函数如下:
(1)
式中,
是PFEM模块中回归的损失权重,在实验中,
1)
为分类损失函数:
(2)
式中,
表示分类时第i个锚(anchor)框为行人的概率,
表示第i个标记框为行人的概率。当第i个anchor框与标记框的交并比大于等于0.5时,说明预测的是正样本,即是行人,
,否则
2)
为回归损失函数:
(3)
式中,
是一个向量,表示第 i 个预测目标框的坐标、宽、高的偏移量,
是向量
的第j个元素;
表示第i个真实目标框与对应anchor的坐标、宽、高的偏移量,
是向量
的第j个元素。其中,
函数定义如下:
(4)
3)
为分割损失函数:
(5)
式中,
表示分割时第i个掩膜为行人的概率,
为掩膜标记框的标签。目标区域标记为
;背景区域标记为
PFEM模块增加了分割分支,将分割得到的语义信息和骨干网络Conv5_3层特征融合,通过RPN网络提取候选区域,再经过分类和回归得到初步的检测结果。其中,分割语义信息增强行人特征,抑制背景信息,可以减少相似背景干扰,同时提高小目标的检测率。但当图像中存在与行人特征相似的目标,如停车牌、树木等,也会出现误检。因此在后端提出PSDM以进一步提高被遮挡、小尺寸等行人的分数,提高整体的检测性能。
在二阶段目标检测框架中,大多数后端的分类和回归采用Faster R-CNN后端R-CNN的分类部分,但是文献指出Faster R-CNN的后端会降低行人检测的精度。通过Caltech数据集进行验证,前端使用提出的PFEM,后端用R-CNN与提出的PSDM模块对比分类和回归的效果,实验结果也说明后端采用R-CNN的结果不如PSDM模块。其主要原因有两个:
1)行人在数据集中的尺寸较小,在行人检测Caltech数据集中,大约有88 %的行人低于112 × 112像素。对于小尺寸的行人来说,若后端感兴趣区域池化层的输入分辨率小于其输出分辨率,会降低提取特征的辨别力。
2)行人检测和目标检测两者误检的针对性不同。行人检测误检是指将背景中的相似物预测为行人,而传统目标检测中存在多个类别,其误检是指将一个正确的目标错误地预测为另一个目标。而且基于目标检测中的R-CNN缺乏挖掘难负样本的机制,将这样的R-CNN直接用于行人检测时对于被遮挡严重或者尺寸较小的行人检测效果不佳。
行人检测是一个二分类问题,与文献[13]不同,本文使用VGG-16中的Conv1 ~ Conv5层作为骨干网络构建一个单独的识别网络,减少了计算量。为解决感兴趣区域池化层的输入分辨率小于输出分辨率问题,去除Conv5_3层后的池化层,将输入PFEM之前的图像尺寸调整为112 × 112像素。PSDM中仍然增加了多层特征融合层和语义信息来提高识别率。Conv4层和Conv5层的深层语义特征有助于分类,Conv3层是中间层,存在边缘信息,可以更好地回归,使行人定位更精准。
因此,行人二次检测模块分别在Conv4_3层、Conv5_3层上添加一个步长为2的2 × 2卷积核和步长为4的
卷积核进行反卷积上采样,然后与Conv3层输出的特征级联,生成多层特征融合层,记为融合3层。在此基础上添加语义分割分支,记为分割2层。获得的语义特征映射后与Conv5_3层特征映射相加融合,记为融合4层,作为行人分类的特征。PSDM的损失函数可表示为:
(6)
其中,分类损失、回归损失与PFEM一致。
是PSDM模块中回归的损失权重,在实验中,
本文采用基于ImageNet上预训练的VGG-16网络作为骨干网络。实验均是在MATLAB 2016b环境下进行,操作系统为64位的Ubuntu 16.04,深度学习框架为Caffe;硬件配置为CPU Intel Xeon(R) E5-2678 v3 @ 2.50 GHz十二核;内存32 GB;GPU NVIDIA GeForce GTX 1080Ti。
在Caltech和CityPersons数据集上进行实验,它们是近几年使用规模最广的行人检测数据集。文献[14]比较了Caltech和CityPersons不同遮挡水平下的行人分布。从文献[14]可知,CityPersons数据集行人被遮挡程度更大,Caltech完全可见的行人超过60%,而CityPersons则不到30%。
Caltech数据集是目前规模较大的行人数据库,采用车载摄像头拍摄10个小时左右,背景主要是公路或街道,视频的分辨率为640×480像素。其中标注了350 000个矩形框,2300个行人,超过70%的行人至少在一帧内出现了遮挡。该数据集分为11个视频组set00 ~ set10,其中set00 ~ set05为训练集,根据Caltech10 × 的标准对训练集中42782张图像训练,对剩余的set06 ~ set10中4024张图像进行测试。
CityPersons数据集是基于语义分割Cityscapes数据集的一个行人检测数据集,其数据是从德国的18个城市,在三个不同的季节和不同的天气条件下收集的。该数据集总共包括5000张图像 (2975张用于训练,500张用于验证,1525张用于测试),总共约有35 000人,另外还有约13000个未标注的区域,图像分辨率为2 048 × 1 024像素。本文对该数据集的训练和测试都是在其训练和验证集上进行。
为验证实验的全面性,根据官方提供的数据集评估标准,Caltech和CityPersons的数据依据行人高度和被遮挡比例被划分成很多子集。因为本文实验主要验证对被遮挡行人和小目标的检测性能,所以只比较Caltech数据集中的Reasonable、Partial、Heavy子集和CityPersons数据集中的Bare、Reasonable、Partial、Heavy子集。表1、表2分别给出了Caltech、CityPersons数据集中不同遮挡情况下每个子集的划分标准。
▲ 表 1 Caltech数据集中部分子集的划分标准
▲ 表 2 CityPersons数据集中部分子集的划分标准
本文实验中,采用行人检测和目标检测领域常用的漏检率(Miss rate, MR)、漏检率–每帧图像误检率曲线(MR-FPPI)及对数平均漏检率(LAMR)作为评价指标。其中,漏检率是指正样本被模型预测为负样本的数目与所有正样本数目的比例;每帧图像误检率(FPPI)是指负样本被模型预测为正样本的数目与所有样本的比例;对数平均漏检率是MR-FPPI曲线在对数空间
内均匀分布的九个点的平均值。
1) Caltech数据集
为验证本算法性能,选取了8种在Caltech数据集性能较好的、能解决不同程度遮挡行人的检测算法与CSMFF结果比较。其中AdaptFasterRCNN、PCN、PL-CNN、MS-CNN、F-DNN + SS是基于目标检测框架结合语义的算法;RPN + BF采用决策森林代替Faster R-CNN中的R-CNN,对候选区域进行分类,有助于提升小尺寸行人的检测效果;Faster R-CNN + ATT增加了注意力机制,在被严重遮挡行人检测上取得了最佳性能。总体性能和运行速度如表3所示,因为PL-CNN、Faster R-CNN + ATT、AdaptFasterRCNN、PCN原论文中没有比较检测速度,所以表3中没有给出它们的检测速度。
▲ 表 3 在Caltech测试数据集上对比算法性能以及运行速度比较
从表3可以看出,CSMFF算法在Reasonable和Partial子集上都达到了最低的漏检率,分别比效果第二的F-DNN + SS算法降低了1.12 %和0.75 %。Caltech数据集的检测性能已接近饱和,因此在Reasonable子集上性能的提升非常重要。但在Heavy子集上效果低于Faster R-CNN + ATT,排在第二位。主要原因是卷积通道特征分别对应行人身体的不同部位,其对行人定位非常有效。Faster R-CNN + ATT在Faster R-CNN中添加了一个额外的注意力机制网络,以通道方式的注意力机制有效地利用行人身体部位与不同卷积通道的关系来处理严重遮挡模式下的行人。虽然文献[32]未给出Faster R-CNN + ATT算法的运行速度,但是其注意力机制的复杂度可以从其论文的描述中体现出来。这些结果表明,行人出现不同程度的遮挡会减少行人的有效特征,本文设计的PFEM和PSDM可以在一定程度上增强行人的特征辨别性,因此CSMFF在不同程度的遮挡情况下均具有良好的泛化能力。
表3也给出了各算法运行速度的比较,本文训练和测试仅在一张1080Ti GPU上进行,从表3可以看出,所提出的CSMFF算法的运行速度约为0.12 s/帧,在比较的算法中是最快的,F-DNN排在第二位。
图4是CSMFF与各种对比算法在Caltech数据集Reasonable、Partial、Heavy子集上MR-FPPI变化。横坐标表示每帧图像误检率,纵坐标表示漏检率,MR-FPPI曲线越低,表示行人检测算法在测试集上测试效果越好。从图中可以观察到,CSMFF算法的曲线在Reasonable和Partial子集上最低,且下降很快,取得了最佳的检测性能。
主要原因是:
1)虽然一些算法结合了从CityPersons数据集训练的高精度像素级语义信息,但是语义分割模型是独立于候选区域生成器进行训练的,语义特征无法进入候选区域网络;
2)本文针对前端模块产生的误检问题进行了二次检测,提高了整体性能。
▲ 图 4 CSMFF与各种对比算法在Caltech测试数据集上MR-FPPI变化
2) CityPersons数据集
为验证算法的鲁棒性,在CityPersons数据集的部分子集上也做了实验。表4比较了CityPersons数据集上效果较好的几种行人检测方法与CSMFF的检测性能。从表4中可以看出,CSMFF在大部分子集上都能实现最佳检测性能,分别在Reasonable、Partial、Heavy子集上实现了11.2 %、13.4 %和50.1 %的漏检率,但在Bare子集上弱于OR-CNN。因为Bare子集的遮挡率不到10 %,在被轻度遮挡的情况下,人体的四肢躯干完全,人体结构信息比较清楚,OR-CNN将人体分成5个部分,利用人体结构先验信息,所以OR-CNN方法在这种情况下的漏检率较低。
▲ 表 4 在CityPersons测试数据集上不同算法性能比较
之前Zhang等已经揭示了多层特征融合对各种尺寸行人检测的重要性,本文在PFEM的VGG-16网络上训练了几种模型,以此来研究哪些卷积层融合会达到最佳效果。由于浅层的判别信息有限,所以选取Conv2_2的输出作为起点。表5比较了PFEM融合不同卷积层和完整CSMFF算法的结果。结果表明较浅的特征图对定位有帮助,Conv4和Conv5等较深卷积层的特征图有丰富的语义特征,有利于小目标的检测。最终采用Conv2_2、Conv3_3和Conv4_3层卷积融合生成多层特征层。
▲ 表 5 在Caltech测试数据集上融合不同卷积层的性能
为证明模型的有效性,在Caltech数据集上进行消融实验。表6比较了PFEM中每个组件以及添加PSDM后与完整算法的对比结果。从表6可以看出,在VGG-16上将各层特征融合以及在此基础上添加语义分割分支时,漏检率都有所下降,这表明提出的PFEM是有效的。针对Faster R-CNN的后端会降低行人检测精度的问题,本文设计了PSDM。从实验结果可以很明显地看到,对前一模块由于背景干扰和遮挡产生的误检,进行行人二次检测和回归后,可以提高算法整体的检测性能。
▲ 表 6 在Caltech数据集上测试每个组件的消融实验
本文提出了一种基于Faster R-CNN的结合语义和多层特征融合的行人检测算法。
在多层卷积特征融合基础上添加语义分割分支,并将其结果作为行人目标特征信息,为行人检测和背景的区分提供了更多的辨别信息。后端在初步检测的基础上增加行人二次检测模块,并对初步检测结果进行二次回归,解决了前一阶段产生的误检问题。但由于行人被严重遮挡时的可见部分很少,造成用于训练的有效特征少,加上行人周围大量背景等无用信息的干扰,导致检测性能下降。
我们下一步工作拟在本文算法框架上提出一种新型压缩激励的注意力机制网络,可以自动选择卷积层通道中行人的语义以及有用信息,抑制无用信息,降低被严重遮挡行人的漏检率。