基于自适应感受野的教室人体姿态实时检测
2022-08-29高陈强钱志华陈欣悦
叶 盛,高陈强,钱志华,陈欣悦,杨 烽,赵 悦
(1.重庆邮电大学 通信与信息工程学院,重庆 400065; 2.信号与信息处理重庆市重点实验室,重庆 400065)
0 引 言
随着教室监控摄像头的普及,以及人工智能技术在教学实践中的广泛应用,教室监控场景下的人体姿态检测研究逐渐受到关注[1-2]。采用计算机视觉技术获取学生在课堂上的姿态信息,可以为教学质量评估提供重要且客观的评价依据。
作为计算机视觉的一个重要研究热点,人体姿态检测与估计有着较为广泛的研究[1,3-6]。现有的人体姿态检测与估计方法大多基于人体关键点信息,采用自顶向下(top-down)的方法[5-6]或者自底向上(bottom-up)的方法[7-8]估计人体姿态。然而,对于教室场景而言,人群十分密集,前后排遮挡以及下半身遮挡普遍较为严重;同时,由于监控摄像头成像距离的不同,教室前后目标分辨率差异较大,后排通常为小目标。对于这样的场景,基于人体关键点的姿态估计方法的可靠性往往较低。为此,文献[1]提出了基于目标检测框架的人体姿态检测方法。相对而言,该方法更适合处理教室场景下的人体姿态检测任务。本文继续沿着这一思路,把人体姿态检测变成一个目标检测子任务。
近年来,基于卷积神经网络(convolutional neural networks, CNN)的目标检测器在目标检测领域研究中占据主导地位。现有的主流方法可分为基于区域建议的两阶段方法[9-11]和基于回归的单阶段方法[12-13]两类。两阶段的网络在第一阶段产生大量只有前景和背景的候选建议框(proposal),在第二阶段根据深度特征对每个候选建议框进行进一步分类和回归。单阶段的网络通常对输入图像进行多尺度的密集采样,并通过先验框匹配定位目标。相比于两阶段网络,单阶段网络通常在精度和速度上能得到更好的平衡。因此,为了满足成百上千间教室的人体姿态检测需求,本文基于单阶段的目标检测网络开展研究。
为了使速度与精度得到平衡,一些优秀的单阶段目标检测方法[12-14]被提出。在这些方法中,单发多边框检测器(single shot multibox detector, SSD)[14]因其性能优良、速度快而受到青睐。文献[15]提出一种简洁却性能高效的分类网络VGG,标准的SSD框架使用具有16个权重层的VGG网络(以下简称VGG16)作为主干网络,并在末尾添加了一系列额外的层用作特征预测。SSD采用特征金字塔结构进行检测,每个预测层用于预测不同尺度的目标,浅层特征用于检测小目标,深层特征用于检测大目标,在目标检测任务上表现出较好的性能。尽管如此,其精度仍然落后于两阶段的目标检测网络。
为了进一步提高精度,基于SSD网络的一系列优秀的方法被提出。文献[16]结合多尺度特征感受野以增强特征的上下文信息;文献[17]通过引入语义分割分支和全局激活模块增强网络的语义信息;文献[18]引入特征融合模块以丰富级联特征的尺度信息;文献[19]设计额外的类似特征金字塔网络(feature pyramid networks, FPN)[20]的结构以丰富网络的尺度信息;文献[21]则提出一种级联的预测方法对锚点进行由粗到细的分类和回归,通过牺牲时间复杂度以获取较高的检测精度;文献[22]充分利用了多尺度特征的上下文信息,并通过级联的特征细化方法提高了网络性能。还有一些其他具有代表性的工作,如文献[23]提出焦点损失(focal loss)以解决单阶段目标检测网络中前景与背景不均衡问题;文献[24]则采用不基于锚点(anchor-free)的思想在单阶段目标检测任务中取得了较好性能。
尽管现有的目标检测网络在PASCAL VOC[25]和MS COCO[26]等公共数据集上表现出较好检测性能,但教室场景中的人体目标普遍比较密集,且尺度变化较大,网络感受野的合理选择成为影响姿态检测的重要因素,因此,将这些方法直接用于教室姿态检测任务中仍难以保持高性能和鲁棒性。文献[1]基于Faster R-CNN[9]采用合并的感兴趣区域池化层(merged region of interest pooling)结构,并将局部特征保留损失(locality preserving loss)和目标检测的分类损失与回归损失结合。该方法在教室人体姿态检测任务上取得了较好的效果。然而,该方法采用两阶段的目标检测框架,对于单帧图像的处理速度较慢,因此,难以高效率地服务于成百上千间教室监控摄像头。
基于以上研究背景,本文提出一种基于自适应感受野的教室人体姿态实时检测网络,引入具有自适应感受野的卷积模块与SSD网络进行结合;通过梯度下降自适应地调整网络的感受野,有效处理教室人体目标尺度变化大的问题。实验结果表明,本文方法在速度和精度上均优于现有教室人体姿态检测算法。在教室人体姿态检测任务上,相较于现有单阶段目标检测方法,本文所提出的方法也具有明显优势。
1 本文算法
1.1 网络结构
本文基于SSD网络结构,以VGG16为骨干网络,保持级联特征金字塔结构的检测方式,具体网络结构如图1所示。标准的卷积网络,每层网络中神经元感受野大小都是相同的,对于目标尺度变化较大的教室场景,相同感受野并不利于不同成像距离的目标的特征提取。启发于文献[27],本文在SSD网络中引入自适应感受野卷积模块,并对标准的SSD网络进行了简化,将其6个特征输出层(Conv4_3层、Conv7层、Conv8_2层、Conv9_2层、Conv10_2层和Conv11_2层)简化为4层(Conv4_3层、Conv7层、Conv8_2层和Conv9_2层);取消了VGG16预训练模型的Conv4_1层和Conv6层的预训练权重,并以自适应感受野卷积模块代替;对Conv4_3层和Conv7层也采用自适应感受野卷积模块。本文重新设计了先验框,先验框的尺寸最小值min_size∈{30,64,128,256},最大值max_size∈{64,128,256,315};特征输出层上每个点设置的先验框个数分别为{6,6,6,4}。
图1 本文方法的网络框图
1.2 自适应感受野卷积模块
感受野问题一直是限制目标检测网络效果的一个关键因素。尽管现有方法采用特征分裂聚合[16,22]或者采用空洞卷积[28]等方式能够在一定程度上增大感受野,但网络在学习的过程中并未能自适应地学习特征的感受野。这导致网络在前向传播过程中,随着深度加深,可能会丢失一些重要的细节信息与上下文信息。由于教室监控场景成像普遍复杂,且遮挡严重,目标本身缺乏细节信息,这十分不利于人体姿态检测。本文采用非线性的方法融合来自不同感受野卷积核的特征,从而实现感受野的自适应调整。本文采用的自适应感受野卷积模块见图1,它包含特征分裂、特征融合、参数选择、特征聚合等4个部分。
1)特征分裂。对于输入特征X∈RW×H×Z,通过两个动态滤波器Gc1和Gc2将输入特征分裂成上下两个支路。其中Gc1和Gc2分别为核3×3、核5×5的分组卷积以及批归一化(batch normalization, BN)和线性整流函数(rectified linear unit, ReLU)实现。表示为
K1=Gc1(X;Φ1)
(1)
K2=Gc2(X;Φ2)
(2)
(1)—(2)式中:K1和K2分别为上下两个支路的特征;Φ1与Φ2为滤波器的参数。
2)特征融合。将上支路与下支路映射不同感受野的特征进行像素级融合,融合后的特征为
(3)
将融合后的特征通过全局平均池化操作fgp(·)进行编码。对W×H维度进行压缩,以获得每一个通道的全局信息sc。全局平均池化的具体操作为
(4)
进一步,用一个全连接层得到每一个通道的比重。为了减轻计算量,将当前通道数压缩为d,得到每一个通道占的比重大小,用于引导两条支路不同感受野的特征融合。表示为
z=Fc(s)=δ(B(s))
(5)
(5)式中:Fc表示全连接层;s为输入特征;z为降维后的输出特征;δ(·)表示ReLU函数;B(·)表示批归一化操作;压缩后的特征z∈Rd×1。d的选择准则为
d=max(C/r,L)
(6)
(6)式中:r为压缩通道的参数,为了减少参数量,r在实验过程中设置为16;L为d的最小维度,在本文的实验过程中设置为32。
3)参数选择。通过学习上下两支路不同感受野特征的权重,达到网络自适应学习感受野的目的;采用通道间的软注意力机制,自动学习特征的空间尺度信息。本文在通道级别采用一个softmax函数作用于降维后的特征z,如(7)—(8)式所示。
(7)
(8)
(7)—(8)式中:Ac∈R1×d,Ac为向量A的第c行;ac表示向量a的第c个元素;Bc、bc同理。对于上下两个分支的融合,易得
ac+bc=1
(9)
4)特征聚合。通过采用软注意力机制学习到的权重,将上下两个支路特征相融合,可得最终的自适应感受野卷积模块特征Y=[Y1,Y2,…,Yc],Yc∈RW×H,且Yc满足
Yc=ac·K1c+bc·K2c
(10)
(10)式中,K1c和K2c分别表示特征向量K1和K2的第c行。在梯度下降的过程中,可通过softmax函数自动调整上下支路不同感受野特征的融合权值,从而能够通过神经元自适应学习不同大小感受野的特征。
在卷积过程中,为了减少计算量,本文将VGG16网络中较浅的Conv4_1层以及Conv6层替换成自适应感受野卷积模块,使得网络在浅层提取到更适用于密集目标感受野的特征,并在浅层的特征预测层Conv4_3层以及Conv7层均采用自适应感受野卷积模块。由于深层的特征预测层Conv8_2层和Conv9_2层本身感受野较大,且负责较大尺度目标的预测,本文依然保持其原始的卷积操作。
1.3 损失函数
与单阶段目标检测网络相同,本文采用分类损失和回归损失进行反向传播,其损失函数表示为
(11)
(11)式中:N为先验框中的正样本数量;x为相应类别先验框和标注框相匹配的指示器;c为类别置信度预测值;l为与先验框所对应边界框的位置预测值;而g是标注框的位置参数;α为权重系数,在本文的实验过程中,α的值设置为1。
2 实验与结果分析
2.1 数据集以及评价指标
本文实验数据集为文献[1]的教室数据集扩充后得到的图像数据集,所有图像采集自真实教室场景下的监控视频数据,如图2所示。教室场景中的人体目标普遍比较稠密,成像条件复杂且成像质量较差;通常教室的摄像头分布在前面或后面,具有一定倾斜角,目标尺度变化较大。与文献[1]相同,本文只考虑教学场景中3类较为核心的姿态:坐、趴、站。根据目标的分布特点以及成像质量,本文将数据分为两部分,其中2 420张图像用于训练(坐态样本33 221个,站态样本2 532个,趴态样本2 476个),2 181张图像用于测试(坐态样本229 761个,站态样本2 291个,趴态样本1 861个)。在自然获取的教室监控场景数据中,人体姿态状态普遍为坐态,趴态和站态占比小,因此,采集的数据类别样本较为不平衡。
图2 教室监控场景图像数据集示例
本文采用PYSCAL VOC 2007的数据标注格式,在训练和测试过程中,将与标注框的交并比大于0.5的预测框判定为正样本;采用PYSCAL VOC 2007的评价标准,即平均精确度(average precision, AP)和多类平均精确度(mean average precision, mAP)作为评价指标。对于目标检测模型的评估,通常用准确率p与召回率r度量,其表达式如下
(12)
(13)
(12)—(13)式中:TP表示真正例,代表分类器检测出类别正确的样本数;FP表示假正例,代表分类器将负样本错分为正样本的数量;FN表示假反例,代表分类器将正样本错误分为负样本的数量。以p为纵坐标,r为横坐标,可绘制p-r曲线用于观察不同分类阈值下算法模型的准确率和召回率。AP为p-r曲线与坐标轴围成的面积,其数学表达式如(14)式所示。AP越大,表示模型检测性能越好。多类平均精确度mAP为所有类别的均值。
(14)
2.2 实验设置
1)软硬件环境。基于Ubuntu16.04平台,采用PyTorch 1.7深度学习开源框架,结合Python 3.8编程语言;采用2块24 GByte大小的GeForce RTX 3090显卡并基于CUDA 11.0进行计算。本文涉及的所有实验均在此环境下进行。
2)具体参数设置。训练时,加载预训练好的VGG16网络模型参数作为骨干网络预训练模型,网络的输入尺度固定为512×512,设置批量大小(batch size)为24,总的迭代次数为120 000次。对于前500次迭代,采用warmup策略将学习率逐渐从10-6增大到2×10-4,然后保持此学习率进行梯度更新。在第80 000次和100 000次迭代,学习率减小为原来的1/10,设定权重衰减因子为0.000 5,动量因子为0.9。
2.3 对比实验
1)与现有教室姿态检测算法对比。文献[1]提出了目前较为先进的基于目标检测思路解决教室人体姿态检测难题的方法。该方法基于两阶段的Faster R-CNN检测网络进行改进。本文在文献[1]提到的教室人体姿态数据集上进行训练与评估,该数据集共包括1 955张训练图像与1 955张测试图像。本文方法与文献[1]的结果对比如表1所示。从表1可以看出,本文方法在平均精确度上具有2.96%的优势,在单帧图像上的平均测试时间为0.029 s。本文作为单阶段方法,相比文献[1]基于两阶段的方法,在速度和精度方面均具有明显优势。
表1 与文献[1]方法对比实验结果
2)与其他目标检测方法对比。本文方法本质上属于目标检测。基于所采用的教室监控图像数据集,将本文方法与现有权衡速度和精度的常用目标检测方法进行比较,实验结果如表2所示。相比于单阶段目标检测方法,本文方法比标准SSD网络(输入尺度为512×512)的mAP高3.12%。尽管本文采用了自适应感受野卷积模块,但是本文调整了标准SSD网络的特征预测层,在单帧图像的平均测试耗时上仅仅多0.007 s。基于VGG16骨干网络,通过分裂聚合以及空洞卷积以增大感受野的RFBNet[16],在教室监控数据集上仅仅获得82.64%的mAP。基于多尺度特征增强实现的RFBNet-E网络,在本文的任务中的mAP为83.01%,本文方法总体上仍优于RFBNet-E网络。通过多尺度特征融合以获取不同尺度感受野的FSSD[18]网络的mAP达到83.57%,本文方法较之具有0.44%的优势。对于拥有更深骨干网络ResNet101[29]的RefineDet[21],当输入尺度为512×512时,RefineDet512最好的mAP为83.89%。RefineDet具有更复杂的特征融合步骤以及类似两阶段的检测方式,对于单帧图像的测试时间需要0.058 s,本文的方法在速度和精度上都具有优势。
表2 与其他目标检测方法实验结果对比
此外,本文的方法还优于两阶段的Faster R-CNN[9]。当输入尺度为600×600,无论是采用VGG16还是ResNet101骨干网络,性能均较差,这主要是因为Faster R-CNN仅仅利用了Conv5_3层做预测。对比基于ResNet-50-FPN的Mask R-CNN[10],本文方法尽管在精度上不如Mask R-CNN(其mAP为86.37%),但由于本文方法基于单阶段目标检测网络,且没有采用类似FPN的自下而上以及自上而下的结构,因而在mAP上却能达到84.01%,并且几乎能达到实时的人体姿态检测。总的来说,本文方法在速度和精度上更有优势。
2.4 消融实验
本文方法基于SSD网络进行改进,为了进一步验证有效性,本文做了两个实验进行对比。
1)特征预测层选择。如1.2节所述,标准SSD网络具有6个特征预测层。本文的教室场景数据集目标分布在大小上呈正态分布的趋势,4层特征预测层(Conv4_3, Conv7, Conv8_2, Conv9_2)从速度和精度上更适合于本文的任务,因此,本文分别验证了包含6个特征预测层的SSD网络以及简化为4层特征预测层的SSD网络,实验结果如表3所示。由表3可见,4层特征预测层具有更好的平均精确度。
表3 消融实验结果
2)自适应感受野卷积模块的有效性。在4层特征预测层的SSD网络基础上,本文采用自适应感受野卷积模块替换原始的Conv4_1层、Conv4_3层、Conv6层以及Conv7层,其实验结果如表3所示。由表3可见,具有自适应感受野卷积模块的SSD网络比未采用自适应感受野卷积模块的SSD网络在mAP上提升了1.76%。
消融实验结果表明,本文方法优于标准SSD网络。
2.5 可视化分析
图3为SSD网络(4层特征预测层)和本文方法在教室人体姿态检测任务上的结果对比。图3中,红色框代表趴姿,绿色框代表坐姿,蓝色框表示站姿。本文采用非极大值抑制算法(non-maximum suppression, NMS)过滤冗余框,可视化结果的NMS阈值均为0.35,且分类置信度阈值均为0.35。从图3可以看出,无论是在稀疏场景还是稠密场景,本文方法对模糊目标以及相似类别目标的检测与分类能力均优于SSD网络。这进一步表明,本文自适应感受野卷积模块在尺度变化大、目标稠密的教室人体姿态检测任务中是有效的。合适的感受野对相似目标的识别以及模糊目标的识别具有较好促进作用。
图3 本文方法与SSD网络可视化结果对比分析
3 结束语
本文提出了一种基于自适应感受野的教室人体姿态实时检测方法。不同于姿态估计方法,本文采用基于目标检测的方法实现教室场景下的人体姿态实时检测。在SSD网络的基础上,本文首先进行简化,选取了适合该任务的特征预测层,并将自适应感受野卷积模块与SSD网络进行结合,通过网络反向传播自动学习适应教室场景人体姿态特征的感受野,有效地增加了网络对不同尺度目标的检测能力以及分类能力。本文方法几乎没有增加更多的单帧检测时间,在精度和速度上得到了较好平衡。实验结果表明,本文方法优于现有常用的教室人体姿态检测方法以及其他单阶段目标检测方法。