基于Faster R-CNN的密集人群检测算法

2023-02-03 03:01斌,张聪*
计算机应用 2023年1期
关键词:实例注意力卷积

邹 斌,张 聪*

(1.现代汽车零部件技术湖北省重点实验室(武汉理工大学),武汉 430070;2.汽车零部件技术湖北省协同创新中心(武汉理工大学),武汉 430070)

0 引言

深度学习的迅速发展为拥挤场景下的目标检测提供了技术支持。密集场景下检测算法的精确率为场景的安全性提供了一定保障,但是密集环境中人与人之间重叠率过高,对算法准确检测出重叠率较高的行人带来了一定的挑战。

现阶段,大多数目标检测算法均基于建议框构建,包括实现端到端的单阶段检测算法YOLO(You Only Look Once)[1-4],以及额外包含区域建议网络(Region Proposal Network,RPN)的两阶段检测算法Faster R-CNN(Faster Region-based Convolutional Neural Network)等[5-9]。这些算法在常规的目标检测应用中均取得了较好的效果,其中,YOLO算法将目标检测看作回归问题,使用单一的网络完成了目标的分类与定位,舍去候选框提取阶段,实现高实时性检测,每秒传输帧数(Frame Per Second,FPS)可达到45;而Faster RCNN 算法为了解决二阶段算法候选框提取速度的问题,首次将 Fast R-CNN(Fast Region-based Convolutional Neural Network)算法中使用的选择性搜寻(Selective Search)替换为RPN 以实现端到端的训练,并且在PASCAL VOC 2012 数据集上测试的平均精度均值(mean Average Precision,mAP)约为73%,相较于原Fast R-CNN,检测速度提升了约10 倍。在检测高度重叠的物体时,检测器很难对每个建议框分别生成有区别的预测,同时因为严重的重叠难免会导致非极大值抑制(Non-Maximum Suppression,NMS)出现错误的抑制。针对以上问题,有学者尝试过使用新的损失函数(聚合损失Aggregation Loss)、复杂的非极大值抑制(Softer NMS)以及对Faster R-CNN 增 设特征金字塔(Feature Pyramid Network,FPN)等方法来解决多尺度检测和提议框远离真实框(Ground Truth)、相邻预测提议框信心值较高从而导致相邻预测框中某一个框被抛弃的问题[10-12],但是使用改进后的网络进行低重叠率案例检测时性能会降低。

为实现对密集人群的检测,考虑到实际场景中行人或大或小的因素以及算法在实际应用中检测精度与速度的要求,本文提出一种基于Faster R-CNN 的密集人群检测算法,通过CrowdHuman 数据集,对算法进行训练,实验结果验证了算法的有效性。本文主要工作如下:

1)针对Faster R-CNN+FPN 结构无法有效应对实际拥挤场景下由于目标物体间相互遮挡以及目标物体较小而导致漏检的问题,提出在双向特征金字塔特征融合网络(Bidirectional Feature Pyramid Network,BiFPN)的基础上,使用卷积操作获取图像更深层的语义信息,对提取的深层特征进行通道维度的融合,以提升相邻特征间的联系和利用率,加强网络的检测能力,使拥挤场景下的漏检问题得以改善,网络在交并比(Intersection over Union,IoU)大于50%时,平均精度(Average Precision,AP)相较于原始网络提升2.4%。

2)针对拥挤场景中高度重叠的实例(以及它们的建议框)可能具有非常相似的特性以及实例间可能严重重叠导致预测很可能被NMS 错误抑制的问题,提出多实例预测以及新的NMS,使网络对每个建议框预测一组可能高度重叠的实例,而不是预测单个实例,使附近的建议框较容易地推断出相同的实例集。在进行NMS 时,提出预先设定一个IoU 阈值来解决网络预测框错误抑制的问题,优化后的新NMS 使网络AP50相比原始网络提升了2.2%。

1 网络设计

1.1 Faster R-CNN与YOLO对比

Faster R-CNN 算法与YOLO 检测算法相比,增设了一个RPN 结构,从而成为两阶段的检测算法,检测精度与检测准确性更优。Faster R-CNN 可以采用多种主干特征提取网络,常用的有:VGG(Visual Geometry Group)[13]、残差网络(ResNet)[7]、Xception[14]等。

Faster R-CNN 算法的检测过程如下:首先,将输入图片的短边固定成600 像素,同时按照原始长宽比对长边进行同比例缩放,以防图像失真;其次,将调整大小(Resize)后的图片传入主干特征提取网络,对图片长宽进行四次压缩,输出得到公用特征层(Feature Map);随后,网络继续前向传播进入RPN,在Faster R-CNN 中每个网格对应9 个先验框,RPN 对先验框参数进行调整获得建议框,此时获得的建议框大小有异,与兴趣区域池化(Region Of Interest Pooling,ROIPooling)[1]结合使用,将不同大小的建议框截取到的感兴趣区域变为相同大小;最后,对建议框截取到的特征层进行大小调整和进一步卷积,完成目标物体的分类与回归。整个检测过程如图1 所示。

图1 Faster R-CNN算法检测过程Fig.1 Detection process of Faster R-CNN algorithm

相较于YOLO 检测算法,Faster R-CNN 检测算法精度更高是因为RPN 的存在(见图2)。在建议网络中,首先进行一次3×3 的卷积,接着进行一个18 通道的1×1 卷积和一个36 通道的1×1 卷积,其中9×4 的卷积用于预测公用特征层上每一个网格点上每一个先验框的变化情况(4 代表框的中心和宽高的调整参数);9×2 的卷积用于预测公用特征层上每一个网格点上每一个预测框内部是否包含了物体,序号为1 的内容为包含物体的概率。最后,对每个建议框进行ResNet 的第五次压缩,对建议框分类与回归得到最终的预测框。

图2 RPN 结构Fig.2 Structure of RPN

1.2 注意力机制

由于注意力机制可以使网络选择性地关注对检测任务有用的特征而忽视部分无用特征,提升网络对特征的利用率,并在一定程度上改善检测网络性能,故在此将注意力机制引入优化的Faster R-CNN 密集人群检测网络中。

注意力机制(Attention Mechanism,AM)最初用于机器翻译,现已成为神经网络的重要组成部分。将通道注意力机制与空间注意力机制连接形成一个简单但有效的注意力模块CBAM(Convolutional Block Attention Module)[15],如图3 所示。将CBAM 用于Faster R-CNN,在通道注意力模块中,特征的每一个通道都代表一个专门的检测器,因此通道注意力关注什么样的特征是有意义的,如式(1)所示,分别进行一个空间的全局平均池化和最大池化得到特征图的空间信息,然后经过两个共享卷积层得到最终结果。空间注意力关注的特征与通道注意力互补,如式(2)[15]所示,分别进行一个通道维度的平均池化和最大池化,将两个特征描述按通道拼接在一起后再经过一个7×7 的卷积生成空间注意力图。

图3 通道注意力与空间注意力Fig.3 Channel attention and spatial attention

其中:σ代表Sigmoid 激活函数;F代表特征向量;cat 代表通道连接运算;conv 代表1×1 卷积+ReLU 激活函数+1×1 卷积。

为使用Faster R-CNN 的预训练权重,减少网络运算量,仅在Faster R-CNN 的不同层之间添加CBAM 注意力机制。

1.3 多实例预测与优化的NMS

首先,基于拥挤人群检测研究,在实例预测以及NMS 阶段对原有Faster R-CNN 进行改进。在原始检测算法中,每个对象都对应很多个预测框,所以通常采用NMS 的方法在众多预测框中选取置信度最高的框,而将其他置信度小于该最大值的框全部删除,形成了一个框对一个物体的映射关系。对重叠度过高的场景,该方法难免出现错误的NMS,从而导致漏检以及错检。

赵敏本不叫赵敏,她是敏敏特穆尔,汝阳王家的宝贝女儿,绍敏郡主。若不论历史的最终走向,单看她的身份,自是无须奋斗也有享不尽的荣华富贵,但她眼中从来看着更高的那片天空。

通过对文献[16]的研究,提出在高度重叠的场景中,与其一个预测框对应单个对象,不如将重叠度过高的几个实例全部预测。即对于每个建议框bi,预测相关的一组真实(Ground Truth)实例集G(bi),而不是单个实例,如式(3)所示:

其中:ς是所有真实框的集合;θ是一个给定的IoU 阈值,如果大于给定阈值,则将属于同一个实例的相关对象一起框起来。对建议框bi进行预测时,受文献[8]启发,提出为每个提议框均预测一组实例,引入K个检测函数生成一组预测P(bi),如式(4):

其中:ci是类别标签置信度;li是相对坐标;K是一个给定常数,代表G(bi)的最大基数。P(bi)可以在大多数现有的检测框架中通过引入额外的预测分支来实现,如图4 所示。

受文献[17]中最小化预测框与真实框之间差距的启发,在图4 中引入地球移动距离(Earth Mover’s Distance,EMD):对特征空间中两个多维矩阵的某一维距离的一种度量。损失最小化预测P(bi)与建议框bi相关联的真实(Ground Truth)实例集G(bi)之间的差距,计算公式如下:

图4 P(bi)预测网络Fig.4 P(bi) prediction network

其中:π表示一个特定的排列(1,2,…,K),第k项为πk,∈G(bi)是πk的真实框;τcls(·)和τreg(·)分别为分类损失和边框Box 的回归损失。在式(5)中,假设了|G(bi)|=K,如果不是,则向其中加入一些“哑”盒(其类标签被视为背景且没有回归损失),直到满足假设。如果K=1,式(5)就等于传统单实例预测框中的损失,这意味着EMD 损失是对常用检测损失的一种通用概括。

除此之外,尽管每个建议框能够预测多个实例,如果NMS 仍参与后处理,仍然不能有效地检测拥挤场景的目标。在上述的EMD 损失中一个建议框所预测的实例在定义上是唯一的,因此可以在NMS 中每次一个边界框抑制另一个边界框之前,插入一个额外的测试来检查两个框是否来自同一个建议框,如果是则跳过抑制。

对NMS 的优化如下:如上所述,由于EMD 损失在预测时一个建议框只对应一个唯一的实例,所以增设一个IoU 阈值用于优化NMS,对于相邻两个预测框,如果两个框的IoU 值大于所设定的阈值,则判断两个预测框基于同一个建议框而来,跳过抑制(因为重复预测只存在于不用的建议框之间);反之,若两个框的IoU 值小于阈值,则进行NMS 抑制。

将优化后的NMS 与多实例预测结合起来可以在拥挤场景检测中取得显著的改进,同时,在CrowdHuman 数据集中将对其优化前后所带来的效果提升进行实验验证。

1.4 金字塔卷积模块

金字塔卷积模块的提出正是为了解决多尺度融合的问题,从其发展至今经过了许多的迭代更新。最初的金字塔卷积模块为FPN,不断地进行上采样,同时引入一条自顶向下的通道来融合本层与上层特征。但是,FPN 只考虑了上层特征对检测结果的影响,没有考虑下层的特征影响,故在YOLOv4 中提出了一种新的特征融合手段——路径聚合网络(Path Aggregation Network,PANet),在FPN 的基础上增加了一条自底向上的通道来双向融合特征,同时考虑了上下层特征共同影响的作用。最新的特征融合网络BiFPN[18]在PANet 的基础上融合了图像本身的特征,并同时在融合阶段采用加权方式来区分各级特征对融合后的特征的贡献程度。上述金字塔卷积模块如图5 所示。

图5 金字塔卷积模块Fig.5 Pyramid convolution module

虽然BiFPN[18]加权融合了上下层特征作为最后的输出结果,但是实际图像采集过程中人群与拍摄设备距离以及人群之间相互拥挤,目标物体会在图像中呈现出或大或小以及相互遮挡的现象,使部分待检测实例只有少数有用特征出现在图像中供后续网络学习(例如有些拥挤场景中,部分人体实例仅露出头或者上半身等少量对检测任务有用的特征)。

因此,对BiFPN 进行优化改进:在原始网络进行特征融合的基础上,考虑到模型参数量及复杂度的问题,对其输出结果采用卷积操作进行更深层语义信息的提取,提高网络对上述仅有少量有用特征出现在图像中的目标物体以及小目标物体的检测能力;同时,对进一步提取到的相邻深层特征之间使用Concat 融合操作,增强相邻特征之间的联系,有效利用多尺度的特征,提高密集人群场景下的目标检测精度。优化后的BiFPN,即加强的双向特征金字塔网络(Strong-Bidirectional Feature Pyramid Network,S-BiFPN)结构如图6。

图6 S-BiFPN 结构Fig.6 Structure of S-BiFPN

将S-BiFPN 模块用于改进的Faster R-CNN 进行特征的多尺度融合,在CrowdHuman 数据集上进行BiFPN 优化前后的对比实验,以验证优化后检测网络性能提升的效果。改进后的Faster R-CNN 检测网络结构如图7 所示。

图7 改进的Faster R-CNN结构Fig.7 Structure of improved Faster R-CNN

2 实验与结果分析

本文基于Pytorch1.2 深度学习框架搭建模型,计算机主要配置为:Ubuntu 18.04 操作系统,i5-9300H CPU,显卡为NVIDIA Tesla V100,内存32 GB。

2.1 数据集评估

理想的拥挤目标检测器应对实例的分布具有较强的鲁棒性,不仅能在拥挤场景下取得较好的检测结果,而且能对中等拥挤/不太拥挤场景下的实例对象进行稳定检测。采用CrowdHuman、CityPersons 和COCO 数据集分别对严重、中等和轻微重叠的情况进行综合评估,结果如表1 所示。

表1 不同数据集中每幅图像的物体数和重叠物体数Tab.1 Numbers of objects and overlapping objects in each image in different datasets

2.2 实验设置

在对数据集进行训练阶段,首先设置本实验初始参数为:一批训练样本的数量为10,初始学习率为0.001,动量参数为0.5,所有框重叠阈值默认设置为0.5,总迭代次数为3 000。每个图像的短边被调整为800 像素,用于训练和测试。同时,对于CrowdHuman 与CityPersons 数据集,纵横比设置为H∶W={1∶1,2∶1,3∶1};对于COCO 数据集,将其设置为{2∶1,1∶1,1∶2}。

2.3 消融实验

首先,将原Faster R-CNN 算法、使用FPN 改进的Faster RCNN 算法以及本文优化的Faster R-CNN 算法在相同数据集上和相同实验环境下进行目标检测实验,图片输出尺寸均为800 像素×800 像素,检测准确率、实时性差别的实验结果如表2 所示,其中:检测准确率评价指标AP50表示在计算平均精度均值时,若检测框与真实框的IoU 大于50%,则认为预测正确;反之,则预测错误。

采用不同的经典目标检测算法以及本文算法对相同图片进行测试,检测时间与精度结果如表3 所示。对比算法有YOLO、原 Faster R-CNN 和 RFCN(Region-based Fully Convolutional Network),其中RFCN 基于Faster R-CNN 结构,但是仅包含卷积网络,减少了计算量,提升了检测速度。由表2、表3 可以看出,优化后的Faster R-CNN 算法在实时性(检测速度)上稍逊于其他算法,但是基本达到实时性要求,检测精度上有较大的优势。综合来看,优化后的Faster R-CNN 检测算法是一个有效的密集人群检测算法。

表2 Faster R-CNN算法改变网络后数据统计Tab.2 Data statistics after Faster R-CNN algorithm changing network

表3 经典检测算法与本文算法性能对比Tab.3 Performance comparison between classical detection algorithms and proposed algorithm

最后,为深入验证改进的Faster R-CNN 密集人群检测算法的有效性,在CrowdHuman 数据集上进行了对比和消融实验,其中15 000 张、4 370 张和5 000 张图片分别用于训练、验证和测试。消融实验包括NMS 优化前后所带来的网络检测性能提升的效果(表4)、BiFPN 网络优化前后带来的检测性能提升的效果(表5)以及S-BiFPN、多实例预测(Multi-Instance Prediction,MIP)、注意力机制以及优化的NMS 组合使用所带来的网络检测性能提升的效果(表6),前两个消融实验通过检测准确率和实时性进行评估,而最后一个消融实验使用2.4 节所提的指标进行。

由表4 可知,当网络引入了优化的NMS 后,可以在不影响整体检测速度的同时,对检测精度带来一定程度的提升,且相较于网络使用原NMS 时,AP50值提高了2.2%。

表4 NMS优化对Faster R-CNN算法的性能影响Tab.4 Impact of NMS optimization on Faster R-CNN algorithm performance

由表5 与表2 可知,当Faster R-CNN 引入BiFPN 时,其检测精度较FPN 特征融合网络有一定的提升,当引入基于BiFPN 优化的S-BiFPN 结构时,其检测效果继续提升,但是检测精度低于整体优化后的Faster R-CNN。将数据进一步量化,使用S-BiFPN 结构的检测网络相较于使用BiFPN 时,AP50值提高了2.4%。

表5 BiFPN优化对Faster R-CNN算法的性能影响Tab.5 Impact of BiFPN optimization on Faster R-CNN algorithm performance

表6 使用平均精度(Average Precision,AP)、Jaccard 指数(Jaccard Index,JI)、每张图像假阳性的对数平均漏报率(Miss Rate-2,MR-2)对模型性能进行评价。其中:1)AP 为最常用的目标检测评价指标,其在数值上等于精度召回率曲线下的面积,反映了检测结果的查全率与查准率;2)JI 主要用于评价检测器的计数能力,评估预测集与事实的重叠程度,JI 越大,性能越好;3)MR-2通常用于行人检测,在数值上等于9 个单幅图像误报值(False Positive Per Image,FPPI)下(在值域[0.01,1.0]内以对数空间均匀间隔)的平均误报率(Miss Rate)值,其值越小,表现性能越好。

表6 Faster R-CNN使用不同优化策略时的性能对比单位:%Tab.6 Performance comparison of Faster R-CNN using different optimization strategies unit:%

经过消融实验可以发现,在拥挤场景数据集中,优化后的整体算法在AP 值和JI 值上相较于没有使用优化策略的原始Faster R-CNN 算法,分别提高了5.6%和3.2%。

表1 说明COCO 数据集中实例拥挤程度较低,为验证本文算法在非拥挤场景下实例检测的鲁棒性,在COCO 数据集上进行对比实验,评价指标为AP、AP50(IoU 为0.5 时的AP值)、AP75(IoU 为0.75 时的AP 值),指标值越大性能越好。由表7 可知,本文算法不仅在拥挤场景有效,而且处理非拥挤实例时,算法性能也不会下降。

表7 Faster R-CNN算法优化前后在COCO数据集上的AP单位:%Tab.7 AP comparison on COCO dataset before and after optimization of Faster R-CNN algorithm unit:%

2.4 测试效果验证

为了直观地区分本文算法与原始Faster R-CNN 算法在密集人群下的检测效果,从CrowdHuman 数据集的测试集中随机抽取两张图像在相同实验环境下进行测试对比,结果如图8 所示,其中,图8(a)为原始Faster R-CNN 算法的检测结果;而图8(b)为本文算法的检测结果。由图8 可以看出,优化后的算法相较于原始算法,降低了密集人群场景下的漏检率,在一定程度上提升了密集场景下目标检测的精度。

图8 不同算法图像检测结果对比Fig.8 Comparison of image detection results of different algorithms

3 结语

针对目前大多数目标检测算法不能精确检测密集人群的问题,结合相关拥挤场景检测的研究,提出一种基于Faster R-CNN 改进的密集人群检测算法。该算法在实例预测以及非极大值抑制方面引入了MIP 算法和优化的NMS 算法,降低了高重叠实例的漏检率和误检率;同时,在网络各层之间引入了通道与空间注意力机制,使网络可以自主性地关注重要特征;并对金字塔卷积模块BiFPN 进行了改进,提出了S-BiFPN 结构,将其应用于优化的网络之中,提高了检测网络对特征提取的表达力和利用率。实验结果表明:所提的Faster R-CNN 算法不仅在拥挤场景中有着较好的检测结果,而且在非拥挤场景下性能也不会下降,具有较高的稳定性,为密集场景下的准确检测提供了保障。但是优化后的Faster R-CNN 算法仍为二阶段目标检测算法,这使得其与实时检测之间还存在一定的距离,未来可以在检测实时性上做进一步研究,已达到更好的检测效果。

猜你喜欢
实例注意力卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
完形填空Ⅱ
完形填空Ⅰ