APP下载

面向多元场景的轻量级行人检测

2022-08-31张云佐李文博宋洲臣

光学精密工程 2022年14期
关键词:剪枝行人矫正

张云佐,李文博,郭 威,宋洲臣

(石家庄铁道大学 信息科学与技术学院,河北 石家庄 050043)

1 引言

行人检测一直以来都是计算机视觉领域的研究热点,快速、准确是行人检测的重要目标,然而在现实应用中,多元场景交错、行人姿态各异、检测环境异常复杂给行人检测带来了极大的挑战。

传统方法通常结合手工特征与机器学习分类器来检测行人,如Yadav 等人[1]采用方向梯度直方图作为行人特征描述子,然后在特征分类器SVM 的作用下实现像素级分割,进而得到行人检 测 区 域。 Sabzmeydani 等 人[2]提 出 了 一 种Shapelet 特征描述子用以解决静止图像中的行人检测问题,利用行人图像的局部信息和低级梯度信息构建Shapelet 特征,并通过Adaboost 算法训练分类器得到行人检测结果。此类方法以颜色、纹理、边缘等特性为主,检测结果易受检测环境干扰,检测精度不佳。

近年来,深度学习凭借其强大的表征能力吸引了众多研究者的关注,行人检测方法也随之取得了重大进展[3]。基于尺度感知的方法常被用于检测不同尺度的行人目标,通过使感受野与目标尺度相匹配来提高行人尤其是小尺度行人的检出率。如Cai 等人[4]提出了从多个网络输出层检测行人,即具有较小感受野的浅层网络用于小目标,而具有较大感受野的深层网络用于大目标。Yang 等人[5]提出了一种多尺度全卷积网络用于检测不同尺度的行人,并采用局部感兴趣区域增加行人可视区域的置信度分数,以减少行人漏检与误检的情况。基于注意力引导的方法通过增强行人特征、抑制背景特征的方法,提升网络对行人可视区域的关注程度。如邹等人[6]提出了一种融合通道与空间注意力机制的行人检测方法,从通道和空间两个维度依次增强行人的空间特征和语义特征,但该方法忽视了不同维度中特征信息的关联性。基于特征融合的方法通过将深浅层特征或时序特征等进行融合,以获得更多的上下文信息和语义信息。如Wu 等人[7]提出了一种自适应特征聚合网络,将视频行人的时序特征以及行人的局部特征进行融合,该方法对检测被严重遮挡的行人具有重要作用。

基于深度学习的行人检测模型在训练过程中学习了大量的鲁棒特征,在一定程度上弱化了姿态变化、环境干扰等因素对行人检测结果的影响,但多数检测模型的参数动辄数十兆字节,依然存在模型体积大、运算量高,难以在计算资源有限的可移动平台上部署等问题。对于计算资源有限的可移动平台,减少其部署模型的计算成本和存储空间至关重要,尤其是在自动驾驶、实时检测等实时性要求较高的任务中。行人检测作为自动驾驶中行为预判、行人防撞等关键技术的基础环节,通过定位和分类行人实例,实时为车载平台提供周围的行人信息,以便于车辆采取正确的控制与状态处理决策。在处理过程中,车载平台不仅仅需要实时处理与分析车载前置摄像头的行人视频数据,还包括其他车载传感器所获取的数据[8],使得原本有限的计算资源更加紧缺。此外,车载平台上部署着大量算法,每种算法可分配的存储空间也十分有限。

基于以上分析,考虑到多元场景的复杂性和计算资源的有限性影响,本文以YOLOX[9]为基础框架提出一种面向多元场景的轻量级行人检测方法。

2 面向多元场景的行人检测

2.1 算法总体结构设计

本文算法的总体结构设计如图1 所示。首先设计和优化行人检测模型以增强网络的特征提取能力,并在训练过程中,采用迁移学习训练策略获得高精度的基准模型;然后利用剪枝策略裁剪基准模型中的冗余通道,生成轻量级的紧凑模型。此外,在检测阶段采用自适应Gamma 的方式对行人图像进行矫正,以减少光照等外界因素对检测器的影响,从而实现多元场景下高效、精确的行人检测。

图1 总体结构设计Fig.1 Design of overall structure

2.2 构建高精度模型

YOLOX 检测模型在原有系列网络的理论基础上融入了无锚机制、标签分配、解耦头等性能优化策略,具有较好的性能表现。为此,本文以高性能检测器YOLOX 为基础框架,融合迁移学习、多尺度特征融合以及注意力引导等强化网络的方法,构建了具有高精度的行人检测模型,其网络结构如图2 所示,图中ECA(Efficient Coordinate Attention)为注意力模块,m为检测层的整合通道数。该网络由主干网络(Backbone)、特征融合网络(FPN)、检测头(Head)三部分组成。

图2 网络结构示意图Fig.2 Schematic diagram of network structure

迁移学习的训练策略可有效降低权值初始化的不确定性,避免因随机权值所导致的特征提取能力不足问题。因此,所提模型保留了YOLOX 中的Backbone,从而确保训练模型和预训练模型网络结构的一致性。将预训练模型中Backbone 的权值作为训练模型的初始化权值,并以此提升主干网络的特征提取能力以及训练模型的收敛速度。

主干特征提取网络用于挖掘行人目标的浅层纹理特征与深层语义特征,特征融合网络实现浅层纹理信息和深层语义信息的互补,但随着网络层数的不断加深,行人的纹理信息逐渐丢失,并且网络对小目标的敏感度也逐渐降低,使得检测模型容易出现漏检、误检的问题。为此,网络中使用ECA 注意力引导模块构建特征融合网络,并增加尺寸为160×160 的输出层,以获得更为有效的行人特征信息,弱化背景特征信息,从而提升模型在多元场景下的前景、背景识别能力。此外,160×160 的检测层更有利于小尺度行人的检测,可有效避免漏检情况的发生。

2.3 跨维特征引导的注意力模型

注意力模型被广泛应用于行人检测任务中,根据关注区域的不同,通常可分为通道域、空间域以及混合域的注意力模型,不同作用域的注意力模型所具有的引导作用也有所差异。通道注意力通常采用全局处理的方式为通道赋予权重,但忽略了空间内的信息交互。空间注意力通过对原始图片中的空间信息进行转换,为空间内的像素生成权重掩膜,但该过程忽略了通道间的信息交互。混合域注意力则是通道域和空间域的结合体,但往往存在体量大,结构复杂的问题。为 此,基 于Coordinate attention[10]进 行 改 进 并 提出了更适合检测行人的ECA 注意力模型,采用跨维度全局处理的方式为整个特征图赋予权重掩膜,从而保留了通道间、空间内的交互信息,并利用最大池化操作保留行人的边缘特征,提升模型对行人区域的关注程度。ECA 的结构如图3 所示,图中AP、MP 分别为平均池化和最大池化。

图3 ECA 结构示意图Fig.3 Schematic diagram of ECA

ECA 注意力模型同时沿着水平、垂直两个方向分别捕获张量(C,W)和(C,H)之间的依赖关系,以跨维度的方式推断注意力权重掩膜,最终与残差边相乘完成输出特征的自适应修饰。在生成权重掩膜过程中,首先采用最大池化和平均池化沿两个方向聚合特征,其中最大池化用以保留行人的边缘信息,而平均池化则用于弥补最大池化所丢失的特征信息。然后通过共享网络MLP 进行非线性运算,经sigmoid 回归获得注意力权重系数:

最终将不同维度的注意力权重系数与残差边相乘,获得赋予权重的输出特征图,输出结果为:

其中,Yc(i,j)为输出特征图。

ECA 注意力模型在关注通道间交互信息的同时,还在空间上引导模型关注行人所在区域的特征信息,以增强网络对行人可视区域的特征学习能力,在检测过程中促使检测器更加关注行人的存在区域,提高行人检测器的准确性。

2.4 引入结构化剪枝策略

剪枝作为模型压缩的主要手段之一,在训练过程中通过去除网络模型中冗余的连接与参数,从而获得可在移动端部署的紧凑型模型。依据剪枝原理的不同,模型剪枝可分为结构化剪枝和非结构化剪枝,但由于非结构化剪枝需要特定软、硬件的支持,因此本文采用结构化剪枝策略[11]。首先选择性能最优的行人检测模型作为基础模型,然后对网络模型进行稀疏化训练,选择网络中的非重要通道进行剪枝,最后利用微调回升精度[12]。

批归一化层(Batch Normalization,BN)具有抑制内部协变量偏移的作用,进而降低网络模型对参数初始值的敏感程度,得以有效提升模型的收敛速度。BN 层可以表示为:

其中:zin和zout分别为BN 层的输入与输出数据;B为当前小批次;μB和σB分别为B批次所输入数据的均值和标准差;γ和β分别为训练过程中可学习的缩放参数与平移参数;ε为一个小量,其作用是防止出现分母为0 的情况。由上式可知,每个通道的激活值zout和具有通道级缩放作用的可学习参数γ呈正相关,即参数γ的大小直接影响该通道信息的重要性,故将参数γ作为衡量通道重要性的量化指标,也称缩放因子。通常情况下,BN 层所输出的激活值呈正态分布且多数不趋近于0,为此引入L1 正则约束,缩小通道重要性量化指标γ的值,以便于进行稀疏化训练,稀疏化训练的损失函数为:

其 中:Lbaseline为基础模型的损失函数为L1 正则约束项,其中g(γ)=|γ|;λ为惩罚因子,用于平衡损失项。稀疏化训练需根据BN 层权重分布情况和平均精度调整惩罚因子并选择合适的学习率,获得精度略微损失的高稀疏模型。在稀疏化训练后将对模型进行剪枝,剪枝过程如图4 所示。

图4 剪枝流程图Fig.4 Flow chart of pruning

BN 层中的缩放因子会整体趋近于0,其中γ越接近0 的通道越不重要,基于此对所有通道的缩放因子进行排序,并设置合适的剪枝比例。剪枝比例对模型的体积和精度有着直接影响,剪枝比例越大,裁剪的通道数越多,则模型的体积越小,但模型的精度也会随之降低,为此在模型剪枝后通过微调回升精度。

2.5 自适应Gamma 矫正

在实际应用中,光照不均、阴影干扰等环境因素会隐藏图像信息进而导致行人检测精度降低[13],为减少环境因素对行人检测器检测效果的影响,采用自适应Gamma 矫正的方法对输入图像进行处理。Gamma 矫正包括以下几个步骤:

Step 1:归一化处理,将灰度图像的像素值转换为0~1 之间的实数;

Step 2:预补偿,通过指数运算对像素值进行预补偿;

Step 3:反归一化,将预补偿后的像素值还原至0~255 的实数。

该过程可用公式表示为:

其中:A(x,y)为输入图像,B(x,y)为输出图像,γ为Gamma 值。

为了使检测器在不同的环境下都能够拥有不错的矫正效果,在Gamma 值的设置上舍弃了人工设置定值的方法,而是采用自动设置Gamma[14]的方式进行:

其 中:γ为Gamma 值,X为 像 素 归 一 化 后 的 平 均值。γ值的设置由输入图片的像素值确定,从而实现了自适应矫正输入图像,矫正效果如图5 所示。通过观察可以发现,自适应Gamma 矫正可有效调节图像的对比度,减少了图像中光照不均、局部阴影的问题。此外,为更直观地体现矫正效果,采用灰度级范围进一步衡量。灰度级范围是图像对比度的衡量指标,灰度级范围越大代表图像的对比度越高,给人的视觉效果也会更清晰。灰度直方图中可直观体现图像的灰度级范围,图5 中各场景矫正前后图像的灰度直方图如图6 所示。

图5 自适应Gamma 矫正效果Fig.5 Adaptive Gamma correction effect

图6 矫正前后图像的灰度直方图Fig.6 Gray histograms of images before and after correction

通过对比矫正前后的灰度直方图可以发现,左侧场景矫正前的灰度级主要集中在5~80 之间,而矫正后主要集中在20~130 之间,且各灰度级的像素数量分布比较均匀;右侧场景矫正前的灰度级主要集中在5~55 之间,而矫正后主要集中在15~110 之间,并且低灰度级的像素数量明显减少。比较矫正前后图像的灰度级范围可以发现,经过矫正后的图像具有更大的灰度级范围,且不同灰度级的像素分布比较均匀,从而增大了原有图像像素间的差异性,降低了模型对图像中昏暗区域的学习难度,使所提模型在多元场景下具有更强的抗干扰性。

3 实验设置与分析

3.1 实验环境及数据

实验条件:处理器为Intel(R)Xeon(R)Gold 6226R CPU@2.90 GHz,内 存188 G,显 卡 为Tesla V100S-PCIE-32 GB,操作系统为Centos7。

评价指标:实验采用平均精度(Average Precision)作为检测器精度的评价指标,用以衡量行人检测器在复杂场景下对行人实例的检测效果;采用每秒处理图像的帧数(FPS)来衡量检测器的检测速度,依此判断检测器的计算复杂度;参数量(Parameters)和模型体积(Size)是判断模型是否轻量的直观评价指标,用来衡量检测模型的大小。

实验数据:本实验的训练集和测试集选自于自动驾驶数据集KITTI 中的2D object detection left color image of object data。将数据集的Pedestrian、Person_sitting、Cyclist 类融合为1 个Person 类。

3.2 实验过程

本文分别以YOLOX-L 和YOLOX-S 为基础框架构建本文方法,即本文方法L 和本文方法S,并基于所提方法开展实验。实验分为三个阶段进行,依次为基准模型训练阶段、剪枝模型训练阶段以及微调模型训练阶段,实验流程如图7所示。

图7 实验流程Fig.7 Flow chart of experiment

所提算法在基础模型训练阶段使用了迁移学习,将YOLOX 基于COCO 数据集的训练参数作为初始化权值,用以引导模型确定训练方向,从而加速收敛速度。实验分别以本文方法L 和本文方法S 的基准模型展开训练,训练过程分为冻结训练和解冻训练两部分。在冻结训练过程中,对基础模型主干部分的网络层进行冻结,即本文方法L 模型的前234 层以及本文方法S 模型的前125 层,冻结网络层的初始化权值为预训练模型对应网络层的参数。在解冻训练过程中,解除了对模型参数的限制,使网络朝着更适合本文应用场景的方向学习。冻结训练中迭代次数设置为100,学习率设为0.001;解冻训练中迭代次数设置为200,学习率设为0.000 1,批量大小为16。

在稀疏化训练中,将基准模型的权重参数作为初始化权值,惩罚因子设为0.001,学习率设为0.000 1,批量大小为16,迭代次数为100,根据缩放因子的分布情况,为避免严重损失精度,采用65%的剪枝率。

剪枝完成后通过对模型进行微调使精度回升,该过程采用warm-up 的学习率优化方法,训练初期使用较小的学习率避免造成过拟合现象,随着迭代次数增加逐步减小学习率以加快模型的收敛速度,最后当模型的训练趋于稳定时,使用较小的学习率训练,以免破坏模型的稳定性。

3.3 有效性验证

为了验证本文改进算法的有效性,将本文所提算法模型以及与其相关的中间模型分别与YOLOX-L 和YOLOX-S 进行对比,实验结果分别如表1 和表2 所示。

表1 YOLOX-L 及其改进算法性能比较Tab.1 Performance comparison of the YOLOX-L and its improved algorithms

从表1 中数据可知,基准模型的检测精度最佳为72.08%,但相比于YOLOX-L,模型的参数量增加了13.2%,体积增加了11.6%,检测速度下降了4.4%,可见基准模型检测精度的提升是以牺牲检测速度为代价的。基准模型经过剪枝处理后,模型的体量得到了大幅度缩减,但同样伴随着精度损失的问题,检测精度下降了3.55%。通过微调使检测精度有所回升,检测精度达到71.56%。相比于基准模型,微调模型的体积减少了79.7%,检测速度提升了29.2%,虽然检测精度略微下降,但并不影响检测效果。

从表2 中数据可知,基于YOLOX-S 所训练得到的微调模型在模型参数量、模型体积以及检测速度上都有着不错的表现,模型体积大约为10 MB,检测速度高达93 帧每秒。

表2 YOLOX-S 及其改进算法性能比较Tab.2 Performance comparison of the YOLOX-S and its improved algorithms

3.4 对比实验

为验证所提算法的性能表现,将所提算法与目前主流的行人检测算法以及轻量级算法在KITTI 数据集上进行比较,实验结果如表3所示。

从表3 中的结果可知,相较于其他行人检测算法,本文方法在模型体量和检测速度方面具有明显优势,满足行人检测对准确性以及实时性的要求。

表3 不同算法的性能比较Tab.3 Performance comparison of different algorithm

相比于双阶段检测算法Faster-RCNN,单阶段的YOLO 系列的检测算法具有更好的表现,作为目前YOLO 系列表现最佳的YOLOX 取得了69.47%的检测精度,但模型体积高达207 MB,本文方法L 在检测精度以及模型体积上都有明显优势;相比于基于Mobilenet、Ghostnet 改进的轻量化方法以及YOLOX 轻量化效果最好的版本YOLOX-tiny,本文方法S 平均精度高达68.13%,模型体积约为10 MB,检测速度达到每秒93 帧,在各方面都有着最优的表现;相比于目前主流的行人检测方法,本文方法L 的平均精度与最优方案相当,即PAMS-FCN 方法的71.44%,但在检测速度上具有明显优势,大约是该方法的3 倍。此外,虽然本文方法S 的检测精度只有68.13%,但基本可以实现多元场景下行人的准确检测,且参数量较低便于移动端部署,更适合实际应用。

3.5 可视化检测结果对比

为直观的体现所提算法的有效性以及自适应Gamma 矫正的作用效果,在对比实验中抽取轻量级算法YOLOX-tiny 与本文方法S 对矫正前后的图像进行检测,并进行可视化结果比较,实验结果如图8 所示。图中包含三种常见的多元场景,即行人尺度差异大、光照不均匀、人群密集等场景,其中每个场景左、右两侧分别为YOLO-tiny 与本文方法S 的检测结果,在每一侧包含对矫正前后图像的检测结果。通过比较不同场景下的检出行人,可以发现本文方法S 对远处的小目标、遮挡目标以及阴影下的目标都有着较强的检出能力。此外,通过观察矫正前后的检测结果可以发现,自适应Gamma 矫正在光照均匀的场景下对检测器的性能提升并不明显,但在昏暗的场景下却有着重要作用,由图8(b)可以发现经矫正后的图像有着更好的检测效果。可见自适应Gamma 矫正提升了算法对不同场景的适应性,使本文方法更适用于多元场景的行人检测。

图8 KITTI 数据集上的检测结果对比Fig.8 Results comparison on KITTI dataset

4 结论

本文提出了一种面向多元场景的轻量级行人检测方法,该方法使用提出的跨维特征引导注意力模块构建多层特征融合网络,并利用迁移学习的训练方法使得网络模型具备较高的检测精度。获得高精度模型后,经剪枝优化将模型体积压缩至10 MB,检测速度提升至93 Frame/s,并在检测阶段采用自适应Gamma 矫正图像以减小光照等因素对检测器性能的影响,在KITTI 数据集上取得了68.13%的检测精度,所提方法具有精度高、体积小、抗干扰性强的优点,更符合实际应用的需求。

猜你喜欢

剪枝行人矫正
人到晚年宜“剪枝”
毒舌出没,行人避让
基于YOLOv4-Tiny模型剪枝算法
基于激活-熵的分层迭代剪枝策略的CNN模型压缩
路不为寻找者而设
“体态矫正”到底是什么?
我是行人
剪枝
曝光闯红灯行人值得借鉴
矫正牙齿,不只是为了美