一种改进RetinaNet的室内人员检测算法

2019-11-08 08:21王璐璐孙琦龙
西安电子科技大学学报 2019年5期
关键词:锚点失活卷积

王璐璐,张 为,孙琦龙

(1.天津大学 电气自动化与信息工程学院,天津 300072;2.天津大学 微电子学院,天津 300072;3.青海民族大学 计算机学院,青海 西宁 810007)

近年来,人体目标检测作为计算机视觉领域的重点研究内容,在各类生活场景中得到广泛应用。在银行、消防值班室等重要场所,工作人员持续在岗是保障居民生命财产安全的必要条件。使用人力对在岗情况进行监控成本极高,因此亟需设计一种高精度的人员检测算法来满足对上述目标的支持。

很多学者尝试在手工提取特征的方法中结合神经网络解决行人检测问题。文献[1]提出一种复杂度自感知算法来平衡速度与精度的关系。文献[2-4]将区域推荐与卷积神经网络结合起来,提出针对多目标检测的系列检测框架。文献[5]将区域推荐与传统分类器随机森林结合起来,提出一种专门针对行人的检测框架。但以上算法结构复杂,检测速度低下,无法满足实时性要求。文献[6]基于SSD算法[7]提出一种单模型的行人检测框架,提升了行人检测速度。以上成果对行人检测起到了很大推动作用,但其主要检测目标为室外行人,这些图片取材场景开阔,摄像头采用平行机位采样,其中人体目标以行走、站立为主。对室内人员来说,摄像头多是俯视拍摄,背景与室外行人有较大差异;另一方面,室内人员易出现办公桌等家具带来的遮挡问题,人机距离也和目前行人检测数据集差距较大,且室内人员姿态多样,致使同一个体在不同状态下也会呈现较大差异,这些细节信息在目前的行人检测数据集中无法体现。以上原因导致前文所述检测框架对室内人员的检测效果并不理想。

针对室内人员检测存在的问题,文献[8]建立了室内人员检测数据集(Indoor Human Detection Dataset,IHDD),将区域推荐网络融入传统检测框架,提出了一种多模型的室内人员检测算法。但这种方法无法支持端到端训练,且精度不足以支撑现实应用。在目标检测领域,文献[9]修改神经网络损失函数,在一定程度上解决了单阶段检测网络中正负样本失衡的问题,文中所提网络因此成为检测领域的前沿模型之一,但也存在不适合室内人员检测的情况。

基于以上研究,笔者对通用网络RetinaNet进行改进,针对室内人员检测数据集,提出一种高精度的室内人员实时检测算法。文中算法的主要改进如下:

(1)针对室内人员数据集将通用网络优化成为专用的高精度室内人员检测网络。同时,文中算法在测试速度和内存占用方面也优于其他检测方法。

(2)对基础残差网络进行改进,在Cov3、Cov4层加入通道注意力[10]模块。同时,为缓解网络的过拟合问题,笔者在通道注意力模块的全连接层加入随机失活机制,从而增强网络的鲁棒性。

(3)通过维度聚类算法对数据集进行预处理,找出最适合室内人员尺寸和形状的锚点来提升检测精度,降低漏检率。同时这些经过筛选的锚点可以显著提升算法的运行速度。

(4)根据聚类得到的特征图尺寸选取合适的特征层进行预测,通过捕捉更丰富的信息提升检测精度。

实验结果表明,笔者提出的算法相比其他算法有更高的准确性,且处理速度更快,在实践应用中具有极大的优势。

1 基本原理

在实际场景中,摄像头距离和人体姿态变换使同一个体的特征不断改变。针对这两个问题,笔者使用文献[11]提出的特征金字塔,在合适的特征层放置锚点以提高多尺度检测的性能。相比在单一特征图上检测不同尺寸的物体,特征金字塔可充分利用不同特征层的语意信息,从而提高室内人员检测的精度。对姿态多样性问题,笔者采用室内行人检测专用数据集进行训练。该数据集在采集样本时着重考虑了不同姿态下多视角的问题,由于神经网络可以在大量数据集下自主学习物体特征,因此经过适当训练后即可获得对不同姿态人员的辨别能力。相比RetinaNet网络使用的基础残差网络,笔者使用改进的SE-ResNet50作为模型的基础网络,并在其中加入随机失活机制增强网络鲁棒性,抑制过拟合。最终的检测网络如图1所示。

卷积神经网络因其复杂性容易在小的数据集上出现过拟合现象,影响模型泛化能力。主流缓解网络过拟合的方法有数据增强、引入批量归一化、加入随机失活等机制。文献[7]指出,在存在池化层的情况下,数据增强作用有限。同时,RetinaNet框架已经在卷积之后合理使用批量归一化层,批量标准化不适合二次加入。除以上两种方法外,文献[12]提出可使用随机失活缓解过拟合。如图2所示,随机失活即以特定概率随机选取部分神经元,将其输出置零,从而断开与周边神经元的连接,阻止检测器共同作用,增强网络的鲁棒性。由示意图可以看出,随机失活更适合在全连阶层使用,而ReitnaNet网络中用于特征提取的骨干网络、用于类别预测和锚点回归的子网络都由卷积层实现。在实际应用中随机失活也较少用于卷积层,为解决这一问题,笔者引入通道注意力模块[10]对残差模块进行改进,间接实现随机失活功能。改进后的残差模块如图3所示。图中ReLU表示修正线性单元函数。

图1 网络整体结构图

1.1 特征提取网络

图2 随机失活示意图

图3 改进的残差模块

虚线内为通道注意力模块,由压缩和激活两部分组成。压缩过程对应平均池化,激活过程对应框内其余部分。之后,笔者加入随机失活增强模型泛化能力。通道注意力模块可挖掘特征图各通道的相互关系来调整各通道权重,在近乎相同的计算量提升检测精度。以下进行详细说明。

压缩模块的作用是将全局信息压缩进通道描述符 ,假设特征图为u∈RH×W×C,通道描述符Z∈Rc生成方式如下:

(1)

其中,Zc为通道描述符Z的第c个元素;uc∈RH×W,为特征图第c个通道;uc(i,j)为uc中位置 (i,j)处的取值。为更充分利用通道描述符所融入的全局信息,后续的激发层使用类似全连接的方式对通道描述符Z进行处理,具体公式如下:

S=Fex(Z,W)=σ(g(Z,W))=σ(W2δ(W1Z)),

(2)

(3)

1.2 锚点的选取法则

锚点,即检测过程中的候选框。自文献[4]之后,基于神经网络的检测算法都会使用各种尺寸和形状的矩形作为锚点,这样会贴合数据集中样本的形状,提升定位精度和召回率。在整个神经网络的末端,最终会输出各个锚点的类别得分向量和相对真实框的回归向量,锚点根据这些向量进行回归,得到最终检测结果。但这些选定的尺寸和宽高比不完全适合室内行人,在这里笔者使用在文献[13]中提出的维度聚类算法对IHDD数据集中的标注框进行处理。维度聚类实际为k均值聚类方法的变形,待分类样本为训练集中的包围框,两个包围框B1和B2之间的距离采用如下定义:

d(B1,B2)=1-IoU(B1,B2) ,

(4)

其中,IoU为两个矩形的交并比。聚类过程如下:

(1)采用kmeans++的方法[14]选取n个包围框初始化聚类中心。

(2)将聚类中心以外的包围框以最小距离归入相应聚类中心,每个聚类中心将拥有一个聚类簇为Gi,i=1,2,…,n。

(3)计算Gi的平均值作为新的聚类中心。

(4)重复(2)~(3),直至所有包围框所属聚类中心不再改变。

依据平均交并比得分最高准则,实验结果显示最适合室内人员的锚点尺寸为(1282,2562),最佳宽高比为1。使用k均值聚类方法剔除了原网络中不适合室内人员的锚点,减小了网络计算量,在加速网络收敛的同时改善了检测速度。

1.3 预测层结构

图4 分类和回归子网

P4、P5、P6之后都分别附有预测网络,预测网络由两个平行的全卷积网络组成,分别为分类子网和回归子网。两个子网从预测层接收相同的特征图,之后用3×3的卷积核对特征图进行卷积并执行ReLU操作,这个过程重复4次。最终,分类子网生成每个锚点被归为人员的概率,若此概率大于所设阈值,则判定该锚点为室内人员,最终输出的通道数为A,其中A为每个位置的锚点数量;回归子网为每个锚点生成4个回归值,用来调整锚点的位置,最终输出的通道数为4×A。其中,所有分类子网共享一套权重,回归子网共享一套权重,两套权重相互独立。具体连接方式如图4所示。

2 实验分析

2.1 训练过程及评价方法

文中算法直接使用文献[8]制作的室内人员检测数据集训练神经网络。该数据集采自企业值班室一个月内的监控视频,采集过程中充分考虑不同时间、性别以及年龄等因素,其中人员姿势大部分为坐姿,含有多种视角,可为训练过程提供丰富信息。该数据集共包含14 665张图像,其中训练集有8 799张图片,验证集和测试集分别有2 933张图片,共标注人体目标17 854个。

实验平台是64 bit的Ubuntu14.04操作系统和英伟达TITAN Xp GPU,使用的软件为Python 3.7,采用的深度学习框架为PyTorch 1.0。在不失一般性的情况下,算法所用主干网络先在ImageNet数据集上进行预训练,如无特殊说明,新加入的改进模块都采用Xavier分布进行初始化。训练过程中使用随机梯度下降寻找最优解,基础学习率为0.005,动量大小为0.9,权重衰减设置为0.000 1,通道注意力模块中随机失活的概率为0.5。优化器学习率分段递减,前15个数据集循环过程采用基础学习率,第15~25个循环的学习率降为前一阶段的10%,第25-30个循环的学习率使用相同方式递减。

笔者分别采用VOC标准和行人检测定义的指标来评判算法的有效性。两种标准分别采用P-R(精确度-召回率)曲线和Miss Rate-FPPI曲线评价算法性能,两种曲线下的面积分别表示算法的平均精确度和漏检率。依据官方标准,以上两种方法交并比阈值都设为0.5,即当预测框与真实框交并比大于0.5时,视为预测正确。

2.2 结果分析

为验证文中算法的有效性,选择文献[4]、[8]、[15]和[9]中的算法与文中算法进行对比。其中,前3种方法的性能直接引用文献[8]的测试结果。当交并比阈值设为0.5时,文中算法检测精度为99.84%,漏检率为0.045% ,远超其他方法。值得注意的是,与文献[8]和文献[15]提出的复杂多模型相比,文中算法仅使用单模型卷积网络便可达到最佳检测效果;与文献[4]相比,笔者使用改进的损失函数解决单阶段模型正负样本不均衡的问题,使室内人员检测效果大幅提升。最终精度对比结果如表1所示。

表1 不同算法的精度比较 %

笔者选取不同角度及部分遮挡的图片进行检测,图5为最终的检测效果图。可以看出,文中算法对以上复杂实例均能有效检测。这说明笔者所选网络可以有效学习数据集特征,自适应处理多角度,遮挡等困难样本。主要原因有以下几点:方向梯度直方图等传统方法主要依赖人为设计的颜色、梯度等特征,而神经网络可对其他特征进行更加全面的学习,对人体目标具有更强的表征能力;其次,相比文献[4]算法,笔者使用改进的损失函数,可自动提升困难样本所占权重,降低易分类样本在训练过程中所起的作用,实现了高效率的难例挖掘;相比原始文献[9]中的RetinaNet网络,使用聚类算法确定更适合室内人员检测数据集的锚点,选用合适的预测层,并利用通道注意力模块,间接引入随机失活机制,最终达到了最好的检测效果。

图5 检测效果图

文中算法实现高精度检测的同时,在检测速度及内存占用方面也做出了很大改进。在这里选用表1中精度达到80%以上的算法进行比较说明,所有算法的运行平台与上文相同。其中,文献[8]不支持端到端的训练方式,在这里不进行比较。检测图片取自室内人员检测数据集,分辨率为1 280×720。具体数据如表2所示,相比当下流行的卷积神经网络,笔者借助单阶段网络的速度优势,选用维度聚类进一步优化锚点选取方案,达到了最快的检测速度。实验选用高分辨率检测图片,若降低图片分辨率,则算法速度还有进一步提升空间;但这已超出文中研究范围,在此不再展开。表中第2列是测试期间显卡内存占用情况,从表中可以看出,以批处理量等于1作为衡量标准,文中算法占用内存比文献[9]小4 MB,同时远小于文献[4]的,原因是算法模型小,使用参数较少。这说明文中算法具有更强的并行处理能力和更好的应用前景。

表2 不同算法速度和占用内存比较

3 结束语

笔者针对现有行人检测算法不适用于室内人员检测的问题,利用已有室内人员数据集,使用维度聚类算法选取适合室内人员的预选框,引入通道注意力模块间接实现随机失活,提高检测网络的泛化能力。文中算法在室内人员检测数据集上取得了99.8%的检测精度,且检测速度块,运行时占用内存小,并行处理能力强,具有很好的应用前景。

虽然在现有数据集上实现了高精度检测,考虑到实际监控条件和应用场景的复杂性,文中算法并未完全解决室内场景下人员检测的问题。为在实际场景中获得更稳定的检测性能,还需对IHDD数据集进一步完善,使其包含更多复杂场景下的人体样本,在此基础上开发完善的实时检测算法。

猜你喜欢
锚点失活卷积
中科院物理研究所等发现钠通道快速失活新机制
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于NR覆盖的NSA锚点优选策略研究
5G手机无法在室分NSA站点驻留案例分析
5G NSA锚点的选择策略
5G NSA组网下锚点站的选择策略优化
卷积神经网络的分析与设计
研究揭示哺乳动物高温保护机制
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法