2. 南京国电南自轨道交通工程有限公司, 南京 210032
2. Nanjing Guodian Nanzi Rail Transit Engineering Co. Ltd., Nanjing 210032, China
如今地铁已经成为城市交通出行不可或缺的方式, 智慧车站的发展满足了人们对地铁智能化服务的需求. 随着近年来云计算、大数据、人工智能等技术的不断演进, 智慧车站中的视频监控系统逐渐以深度学习目标检测体系为架构, 不仅能在保障地铁安全上发挥越来越重要的作用, 还能改善地铁运营效率, 提升地铁服务质量, 增强地铁应急能力. 智能视频监控系统可以实时检测、分析和处理所监控的图像, 实现地铁人流量监测、行人异常行为分析、安全隐患警示等快速的响应. 地铁站内大规模视频监控系统的计算资源有限, 在成本约束下, 选择性能优越的国产算能卡部署目标检测网络更符合工程需求.
目标检测技术是为了解决目标视频或者图片中待检测物体的定位和分类问题, 它的性能好坏会直接影响到计算机视觉研究的后续进程. 随着神经网络在目标检测领域的迅速发展, 以深度学习为基础的目标检测算法成为主流, 其主要分为two-stage检测算法和one-stage检测算法两类. Two-stage算法将图像候选区域和卷积神经网络进行融合, 使用CNN提前在输入图像的生成区域中创造一个目标分类器, 然后进行分类和特征提取, 常见的算法有R-CNN[1]、Fast R-CNN[2]、Faster R-CNN等. One-stage算法主要包括SSD[3]、YOLO系列[4–7], 不需要生成候选框, 直接对初始的目标进行检测, 加快了图像检测速度, 满足大量图像检测的需求. 虽然当前很多目标检测算法精度很高, 但是部署在视频监控系统中并不能满足快速检测的需求, 而且行人之间遮挡较严重, 算法的误检率和漏检率也比较高.
针对密集场景下遮挡和多尺度行人检测精度低的问题, Zhang等人提出一种跨通道的注意机制[8], 在Faster R-CNN架构中增加注意网解决不同的遮挡情况, 将身体不同部位与CNN通道进行关联, 提高网络对行人目标的关注度. 王明吉等人提出一种改进YOLOv3的行人检测方法[9], 通过搭建新一层的特征流在网络颈部进行特征融合, 增强网络的特征信息, 但该网络结构复杂度较高. 邓杰等人提出Crowd-YOLO算法[10], 将行人可见框和全身框进行结合并在空间注意力上增加频域通道注意力机制, 但在拥挤人群场景中, 该算法会生成特别多的锚框, 正负样本比例失衡.
单阶段检测算法中的YOLOv5网络模型综合性能较优异, 其网络深度和宽度可以自行调节. 根据参数量由小到大, 可以分为YOLOv5s, YOLOv5m, YOLOv5l, YOLOv5x这4种不同结构. 考虑到地铁站内大规模监控系统中的算能卡算力有限, 本文选择YOLOv5s为基础算法进行改进, 提出一种轻量化行人检测算法MCA-YOLOv5s, 并采用FPGM剪枝进一步压缩网络模型, 然后部署在Atlas 300 AI加速卡中进行测试. MCA-YOLOv5s首先分析采集到的地铁行人图像, 然后采用轻量级模块MobileNetv3[11]重构YOLOv5s的主干网络, 减少模型的体积和参数量, 实现网络模型轻量化处理, 并用PConv[12]代替深度可分离卷积中的DWConv, 减少冗余计算和内存访问, 提高网络的计算速度. 针对行人目标多尺度问题, 将注意力模块CA (coordinate attention)[13]融入模型结构中的特征融合阶段的C3模块中, 使模型更加关注行人的位置信息, 提高对目标位置的定位能力, 同时弥补轻量化处理带来的精度损失. 最后将损失函数CIoU替换为Alpha IoU[14]以增加High Loss目标的权重和边界框的回归精度, 优化模型整体性能. 为了进一步提高算法部署在Atlas 300 AI加速卡上的检测速度, 对优化的网络模型进行剪枝, 压缩模型大小. 考虑到地铁场景内行人身体部位相互遮挡带来的不利影响, 本文选择遮挡范围较小的头部作为行人的检测目标. 实际工程实践表明, 改进后的算法相比于原始网络模型, 部署到加速卡设备中拥有更快的实时检测性能, 而且检测精确率也很高.
1 YOLOv5网络介绍本文所提出的算法在YOLOv5s-6.0版本的基础上进行改进, 网络结构分为输入端、Backbone、Neck和Head. 输入端采用自适应图片缩放技术和Mosaic数据增强以及K-means算法处理输入的图像. Backbone部分特征图首先经过第一层的卷积层(Conv), 接着通过4层C3模块生成不同尺寸的特征图, 最后使用空间金字塔池化结构(SPPF)融合不同感受野的特征图. Neck部分采用FPN+PAN[15]结合的路径聚合网络架构, 加强网络特征的融合能力. Head检测层分别解码预测3种不同尺寸的特征图, 使用NMS (non-maximum suppression)非极大值抑制算法获取目标最优预测框, 输出预测框和类别位置信息.
2 改进YOLOv5s检测算法复杂网络模型通常具有较大的参数量, 部署到设备中将面临占用空间大和检测速度慢的问题, 难以满足地铁大规模监控系统低延迟和快速响应的需求, 同时地铁站内设有多路监控视频设备, 需要考虑到工程成本的实际需求. 而且采用头部作为行人的检测目标虽然可以解决身体部位的遮挡问题, 但是行人头部依然存在多尺度、多角度、穿戴物遮挡等困难检测样本, 当前算法依然存在误检和漏检的问题. 为优化地铁站内大规模视频监控场景下的行人检测, 对YOLOv5s网络结构进行改进, 如图1所示, 具体方法为: (1)为提高模型检测速度, 使用MobileNetv3网络替换主干网络, 并使用PConv替换MobileNetv3中的DWConv, 减少网络内存的访问, 降低计算延迟. (2)为了增强网络各层的特征融合能力, 在特征融合模块的C3层中融入CA注意力模块, 使模型更加关注目标的位置信息. (3)为提高High Loss目标的权重和边界框的回归精度, 损失函数使用Alpha IoU替换CIoU. (4)为进一步压缩网络模型, 提高算法部署到设备中的推理速度, 使用FPGM剪枝去除不重要的卷积核和冗余的通道数.
2.1 MobileNetv3
MoblieNetv3采用MoblieNetv1[16]和MoblieNetv2[17]中提出的深度可分离卷积和逆残差结构, 在此基础上更新Block, 加入SE (squeeze and excitation)[18]模块, 利用H-swish代替swish激活函数, 进一步地提高了计算速度和模型性能.
MoblieNetv3网络中的Block网络结构如图2所示, 主要包括了通道可分离卷积和SE通道注意力机制以及残差网络结构.
其核心是使用深度可分离卷积代替传统卷积层, 将传统卷积层拆分成逐通道卷积(DWConv)和逐点卷积(PWConv). 逐通道卷积用于空间滤波, 将卷积核变为单通道, 每个卷积核处理一个通道. 逐点卷积用于特征生成, 不仅可以改变特征图的维度, 还可以在逐通道卷积生成的特征图通道上进行融合. 在逐通道卷积中, 每个卷积核的深度都为1, 输出特征矩阵与输入特征矩阵深度相等. 逐点卷积则相当于卷积核大小为1的普通卷积, 一般与逐通道卷积搭配使用, 放在逐通道卷积后用来改变或者自定义特征矩阵的深度, 极大地减少了模型参数数量和计算量. 逐通道卷积和逐点卷积组合如图3所示.
MobileNetv3通过NAS搜索全局网络结构, 分为Large和Small两种版本. 主要的不同在于经过卷积升维后的通道数量以及网络中的Block使用次数. 本文采用MobileNetv3-Small模型进行实验.
2.2 MobileNetv3的改进为了减少逐通道卷积中的冗余计算和内存访问的数量, 使用PConv (partial convolution)替换DWConv, 更好的平衡检测延迟(Latency)和浮点运算(FLOPs)之间的联系, 它们之间的关系公式如下:
$ L{{atency}} = \frac{{FLOP{{s}}}}{{FLOPS}} $ | (1) |
其中, FLOPS表示每秒浮点运算的缩写, 度量有效的计算速度. PConv可以缓和网络进行FLOPs时, 内存访问频繁造成FLOPS减小的副作用, 在降低FLOPs的同时优化FLOPS, 尽可能多地使用设备的计算能力, 实现更好的低延迟效果. PConv的工作原理如图4所示.
在PConv结构中, 只需要使用部分输入图像的通道与标准卷积结合, 进行特征的提取, 其余通道保持不变. 如果内存访问是连续或者规则的, 使用第1个或最后一个连续的通道作为计算代表与整个特征图进行融合. PConv的内存访问数量为:
$ {{h}} \times {{w}} \times 2{{{c}}_{{p}}} + {{{k}}^2} \times {{c}}_{{p}}^2 \approx h \times {{w}} \times 2{{{c}}_{{p}}} $ | (2) |
其中, h和w分别为输入矩阵的宽高, cp是常规卷积作用的通道数, k为卷积核的大小. 在实际实现过程中, cp一般设置为常规矩阵的1/4, 其余通道数不参与计算. 而DWConv在降低FLOPs的同时, 会增大通道数来弥补精度的下降, 一般通道数会增大为常规卷积的6倍. 因此, PConv相比与DWConv能够极大地减小内存访问的数量和计算冗余. PConv层中没有简单地删除剩余的通道, 而是接着使用PWConv进行剩余通道特征的进一步提取. PWConv可以提取所有通道特征信息流, 充分完整的捕获所有通道的特征信息. PConv与PWConv组合成新的结构New Block. 改进后的MobileNetv3网络结构如表1所示.
对于输入网络的图像, 统一调整为640×640的尺寸, 其中New Block表示将深度可分离卷积中的DWConv替换成PConv, 网络中一共包含11个New Block. HS为hard-swish激活函数, RE为ReLU激活函数.
2.3 融合CA注意力模块CA注意力机制相比其他注意力机制, 如SENet、ECA[19]、CBAM[20], 同时考虑了通道维度和空间维度的信息, 并把位置信息嵌入到通道注意力当中, 有效地解决了空间维度存在的长距离依赖的问题, 而且还避免了大量的计算, 适合嵌入到轻量化网络当中. CA注意力机制的具体流程如图5所示.
CA注意力机制首先进行信息嵌入操作. 针对输入特征图的每一个通道信息, 利用尺寸为(H, 1)和(1, W)的卷积核对每个通道的水平方向和垂直方向进行全局平均池化操作, 聚合两个空间方向的特征, 输出具有方向感知的特征图. 其中水平方向得到H×1×C的信息特征图的公式为:
$ Z_c^h\left( {{h}} \right) = \frac{1}{W}\sum\nolimits_{0 \leqslant i \leqslant w} {{x_c}\left( {h, i} \right), \; Z_c^h \in {R^{C \times H \times 1}}} $ | (3) |
垂直方向得到1×W×C的信息特征图公式为:
$ Z_c^w\left( {{w}} \right) = \frac{1}{H}\sum\nolimits_{0 \leqslant i \leqslant H} {{x_c}\left( {j, w} \right), \; Z_c^w \in {R^{C \times 1 \times W}}} $ | (4) |
接着进行CA注意力生成操作. 沿着空间维度对生成的特征图
$ f = \delta \left( {{F_1}\left( {\left[ {{Z^h}, {Z^w}} \right]} \right)} \right), \; f \in {R^{\frac{C}{r} \times 1 \times \left( {H + W} \right)}} $ | (5) |
$ {g^h} = \sigma \left( {{F_h}\left( {{f^h}} \right)} \right) $ | (6) |
$ {g^w} = \sigma \left( {{F_w}\left( {{f^w}} \right)} \right) $ | (7) |
最后使用广播变换把gh和gw拓展到C×H×W维度, 对特征图进行矫正, 得到注意力特征. CA注意力机制输出的最终表达式为:
$ {y_c} = {x_c} \times {g^h} \times {g^w} $ | (8) |
CA注意力机制融入到C3模块当中只会引入少量的参数, 而且不会增加网络的总层数, 运用在本文数据集中可以提高整个网络的性能, 具体实现如图6所示. 在C3模块主通道的CBS卷积之后接入CA注意力模块组合成C3CA模块. 其中, CBS为带有BN和激活函数SiLU的卷积核大小为1×1的卷积, Bottleneck为两个卷积核大小分别为1×1和3×3的CBS卷积融合而成.
2.4 IoU Loss改进
GIoU损失函数考虑到真实框和预测框不相交的情况下, 梯度恒为0无法反向传播的问题, 提出了使用最小外接矩阵包含真实框和预测框[21]. 但是在对行人进行检测时, 经常会出现真实框与预测框完全重叠在一起的情况, 这会导致损失收敛速度变慢. CIoU损失函数进一步地优化了检测框, 同时考虑到预测框与真实框的重叠面积、中心点聚集、长宽比之间的差异[22], 从而使得目标框的发散减少, 回归更加稳定, 同时加速损失的收敛速度. CIoU的定义如下:
$ {L_{{\rm{loss}}}} = 1 - IoU + \frac{{{\rho ^2}\left( {b, {b_{{\rm{gt}}}}} \right)}}{{{c^2}}} + \gamma u $ | (9) |
$ u = \frac{4}{{{\pi ^2}}}{\left( {\arctan \frac{{{w^{{\rm{gt}}}}}}{{{h^{{\rm{gt}}}}}} - \arctan \frac{w}{h}} \right)^2} $ | (10) |
其中, Lloss为CIoU的损失; IoU、ρ、bgt和b以及c分别为真实框与预测框的交并比、中心点之间的距离、中心点以及并集部分对角线的长度; γ为调节因子; u是长宽比的相似系数, w和h分别为预测框的高度与宽度, wgt和hgt分别为真实框的高度和宽度.
但是该损失函数对每个目标的IoU都分配相同的权重, 在训练过程中梯度和损失无法自适应, 对于某些High IoU目标回归精度较差. 因此本文使用Alpha IoU对CIoU做进一步的优化, 自适应地调节High IoU目标的权重. 运用Box-Cox变换, Alpha IoU Loss可表示为:
$ {L_{\alpha {\text{-}} IoU}} = \frac{{1 - Io{U^\alpha }}}{\alpha }, \; \alpha \gt 0 $ | (11) |
其中, 当α趋近于0时, Lα-IoU=−log(IoU), 当α不趋近于0时, Lα-IoU=1–IoUα.
将惩罚项加在上述公式中, 可以归纳出CIoU的改进损失函数α-CIoU, 即:
$ {L_{\alpha {\text{-}} CIoU}} = 1 - Io{U^\alpha } + \frac{{{\rho ^{2\alpha }}\left( {b, {b_{{\rm{gt}}}}} \right)}}{{{c^{2\alpha }}}} + {\left( {\gamma u} \right)^\alpha } $ | (12) |
此时, 该函数可以概括出现有的一些其他的IoU损失类型. 当α大于1时, 分配给High IoU目标更多的损失权重, 有利于模型更加关注High IoU目标, 提高检测性能和边界框的回归精度. 同时模型训练更加灵活, 能够实现计算不同情况下的目标框回归精度, 在轻量化网络模型的结构中能发挥更好的作用. 经过实验对比, α参数取3的情况下模型对High IoU目标的检测效果最好.
2.5 基于滤波器剪枝的MCA-YOLOv5sFPGM (filter pruning via geometric median)[23]提出了一种新的剪枝方法, 通过计算几何中值的卷积神经网络过滤器剪枝. 突破范数准则不能总是满足范数偏差很大以及最小范数很小这两个要求的局限性, 实现“相对不重要”到“可替代性”的转变. FPGM剪枝过程如图7所示, 通过修剪带有冗余信息的卷积核来压缩CNN模型, 具体为修剪同一层卷积核中几何中值附近的卷积核, 生成深度减小的特征图. 其相比基于范数准则的剪枝方法保留了更多的特征信息, 并且能够结合网络模型正常的训练过程, 免去额外的微调.
FPGM结合YOLOv5s训练过程具体为: (1) YOLOv5s网络根据梯度更新网络参数, 定义剪枝率参数R, 以迭代的方式进行剪枝操作. (2)在所有卷积层中, 计算当前层的几何中心点, 然后计算其他卷积核到几何中心点的欧式距离. (3)对欧式距离进行排序, 裁剪掉后R×N个卷积核, N为当前层的卷积核总数. (4)模型进行下一轮的训练, 裁剪掉的卷积核权重修改为0. (5)模型的每轮训练不断地迭代(2)–(4)这3步. (6)训练完成后开始调整网络结构, 去除参数为0的卷积核和卷积核中的冗余通道以及BN层参数的冗余数值, 得到最终剪枝后的模型.
3 实验结果及分析 3.1 实验环境本实验的基本参数以及训练的深度学习环境如表2所示, 使用PyTorch深度学习框架部署网络模型.
3.2 实验数据集
本文采用的数据集来自地铁站内监控视频的抽帧图片. 现场捕获地铁站内乘客运动的视频, 使用Python导入OpenCV包对视频进行读取, 并使用5 fps的帧率进行抽帧, 通过对不同时间段视频的采集, 建立了丰富的站内乘客数据, 提供训练模型多样化的样本数据. 本文共8738张图片, 其中包含密集和稀疏的行人场景以及多尺度的行人. 对获取的图片使用LabelImg软件进行手动标注, 获取XML格式的标签, 然后计算归一化的坐标以及归一化的宽高, 将标注文件转换为YOLOv5s算法适配的txt格式. 标注目标为行人的头部, 标签为“head”类, 以此来消除行人身体部分遮挡带来的影响. 实验按照8:2的比例划分图片, 训练集6166张, 验证机2622张, 一共包含41925个标签.
3.3 训练参数及评价指标将网络的输入图片大小统一裁剪为640×640的尺寸, 设置batchsize为4, 优化器选择随机梯度下降法来更新网络参数, 学习率设置为0.01, 使用余弦函数动态调整, Dropout率设置为0.05, 在训练集上最大训练次数epoch设置为200, 前3个epoch用作热身训练, IoU训练时的置信度阈值设置为0.45.
为了更好地衡量地铁场景内行人检测算法的精确度和实时性能, 本研究设置的模型检测性能评价指标有: 精确率(precision, P)、召回率(recall, R)、平均精度(average precision, AP)、浮点计算量(giga floating-point operation per second, GFLOPs)、每秒传输帧数(frames per second, FPS)、参数量(Parameters).
精确率P定义为在所有的检测目标中预测正确的概率, 计算公式为:
$ P = \frac{{TP}}{{TP + FP}} $ | (13) |
召回率R定义为实际存在的图片中预测正确的概率, 计算公式为:
$ R = \frac{{TP}}{{TP + FN}} $ | (14) |
平均精度AP定义为不同召回率下的平均精确度, 计算公式为:
$ AP = \int_0^1 {p\left( R \right)} dR $ | (15) |
其中, TP (true positives)表示正样本中被正确检测的例子; FP (false positives)表示负样本被预测为正样本的例子; FN (false negatives)表示正样本被错误预测为负样本的例子. AP表示P(R) (precision-recall)学习的模型检测性能的好坏.
GFLOPs表示浮点运算次数, 可以用来衡量网络模型的复杂度. FPS表示模型的检测速度, 即检测图片的数量和检测时间的比例. Parameters表示模型中包含参数的数量.
3.4 实验结果分析共进行6组对比实验和1组消融实验, 第1组(见表3)为不同轻量化网络模型比较; 第2组(见图8)为不同剪枝率下的模型性能比较; 第3组(见图9和图10)为YOLOv5s和MCA-YOLOv5s的损失函数收敛性比较; 第4组(见表4)为YOLOv5s加入不同改进模块的消融实验; 第5组(见图11)为MCA-YOLOv5s与YOLOv5s的性能比较; 第6组(见表5)为MCA-YOLOv5s与其他主流方法的比较; 第7组(见图12–图14)为改进算法的检测效果图比较.
首先对改进后的MobileNetv3与原始的MobileNetv3、FasterNet和GhostNet[24]轻量化网络模型做对比试验, 在实验中均加入CA注意力模块和Alpha IoU损失, 结果如表3所示. FasterNet虽然FLOPs较高, 但是其结构中的PConv相比于DWConv极大地降低了内存访问数量, 对空间特征的提取更为有效, 因此检测平均精度和速度都高于GhostNet和MobileNetv3. 改进的MobileNetv3模型与FasterNet相比较, 检测精度和速度都有提高, 轻量化效果更加优异.
对使用不同剪枝率的MCA-YOLOv5s模型的性能进行对比验证, 剪枝结果如图8所示. 图中展示了不同剪枝率下网络的AP、FPS、Parameters的指标变化. 剪枝率为0表示MCA-YOLOv5s网络模型. 本文的骨干网络已经进行了轻量化处理, 为了维持模型的检测精度, 此处主要对特征融合阶段的多余通道进行剪枝. 从实验结果可以看出, 网络模型的参数量随着剪枝率的增加线性下降. 模型性能方面, 当剪枝率达到0.4后, 检测速度的增加变得缓慢, 检测精度开始加速降低, 当剪枝率为0.9时AP仅有86.4%, 原因是因为剪枝后的网络结构如果太浅会严重影响精度. 在保证检测精度的情况下, 本文实验选择使用0.4的剪枝率.
对比使用GIoU损失函数的YOLOv5s与加入Alpha IoU损失函数的MCA-YOLOv5s的损失函数收敛情况, 得到定位损失box_loss与置信度损失obj_loss的收敛曲线, 如图9和图10所示.
通过对比图9和图10可以发现, MCA-YOLOv5s的定位损失函数达到稳定状态时损失值稳定在0.021附近, 相比于YOLOv5s有明显的下降. 这是由于采用Alpha IoU损失函数可以有效降低边界框的损失值, 而且使得模型的置信度损失也有所下降, 提高网络整体的收敛效果.
为验证改进模型的性能, 本文进行消融实验. 实验结果如表4所示, 采用AP和FPS以及GFLOPs这3种指标评价模型. 首先在YOLOv5s-6.0的基础上使用改进的MobileNetv3主干网络, 测试轻量化模型的性能, 然后在轻量化模型的基础上依次加入CA注意力机制和Alpha IoU损失函数观察检测效果, 最后采用40%剪枝率的FPGM剪枝对改进后的网络模型进行压缩, 测试去除冗余通道后模型检测速度和精度的变化, 其中√表示加入此模块.
由实验结果可知: 在模型主干替换为MobileNetv3后模型的计算量大幅减少, 检测速度加快, 但带来了精度上的小幅降低; 把MobileNetv3中的DWConv替换为PConv后, 虽然参数量有所上升, 但是其降低了检测延迟, 因此检测速度有所加快, 行人目标的检测AP也有提升; 在此基础上加入CA注意力模块, 在小幅降低检测速度的同时, 行人目标检测AP提高了1.6%, 弥补了轻量化结构导致的部分精度损失, 然后再将CIoU损失函数替换为Alpha IoU, 行人目标检测的精度和速度都得到了提升. 改进后的算法在保证了检测精度的同时, 大大减小了模型的计算量和复杂度, 加快了检测速度. 更进一步的使用40%剪枝率的剪枝压缩改进后的网络模型, 在AP下降了0.6%的情况下, FPS增加30.4%, 达到102.6, 更加适合后续的算法模型部署.
最后对比在相同数据集下MCA-YOLOv5s与原始YOLOv5s模型的性能, AP对比图如图11所示, 改进的YOLOv5s算法在检测速度加快48%的情况下, 检测精度保持与原始YOLOv5s相近的水平, 因此综合性能更加符合地铁内大规模监控系统的实时检测需求.
为了验证本文MCA-YOLOv5s算法的效果与性能, 将算法与其他当前主流算法, 如YOLOv5s、YOLOv7、YOLOv4、Faster R-CNN、SSD、YOLOXs在相同的场景下进行对比实验, 结果如表5所示.
对比表5中的实验结果可知, Faster R-CNN作为传统的two-stage算法, 在本文的数据集进行验证, 检测精度和速度都难以满足检测需求. YOLOv7算法拥有最高的召回率和平均精度, 但是检测速度较慢, 难以部署在计算资源受限的设备平台. YOLOv4、SSD算法以及YOLOv5算法同样为one-stage算法, 它们的算法平均准确率、精确率和召回率以及检测速度都比改进的YOLOv5s算法要低, 主要是因为改进YOLOv5s算法在特征融合阶段添加了注意力模块, 使得模型训练过程中更加关注重要的特征信息, 一定程度上增加了模型的检测效果. 同时它们的损失函数计算没有考虑到High IoU目标, 因此造成模型的性能和边界框回归精度的降低, 而改进的YOLOv5s算法引入Alpha IoU损失弥补了这一缺点. 同时改进的算法还使用了轻量化主干, 大大地降低了模型计算量, 在小幅降低检测精度的同时极大地提高了模型的检测速度. 综上所述, 本文提出的改进算法综合性能优于其他算法, 适合部署在地铁内大规模监控系统设备当中.
此外, 本文将改进后的算法MCA-YOLOv5s和原始的YOLOv5s算法在相同的地铁场景下针对不同密度和尺度的行人做对比试验, 结果如图12–图14所示. 实验结果显示本文提出的改进算法在显著提高行人检测速度的同时, 在密集场景中对于遮挡的小目标检测仍具有较高的检测框置信度. 虽然剪枝后的模型相比于YOLOv5s检测精度有略微的下降, 但是在一定程度上改善了行人误检和漏检的问题, 并且在稀疏和多尺度行人场景中, 检测效果与YOLOv5s算法同样优异.
4 Atlas 300 AI加速卡算法部署 4.1 软硬件融合
为验证本文算法在地铁大规模监控系统中的实用性和有效性, 将改进的YOLOv5s网络模型部署到华为Atlas 300 AI加速卡中进行测试. 该加速卡面向边缘侧和数据中心服务器场景, 包括低功耗的海思Ascend 310处理器实现快速高效的模型推理和图像识别及处理、2个全新的达芬奇架构负责矩阵运算、ARM64架构的鲲鹏920CPU负责部分算子调度和实现, 通过Camera模块融合外接的摄像头和加速模块, 在半精度下最高能实现32 TOPS的计算能力, 单卡最高能提供64 TOPS INT8的计算性能, 业界能够实现最高64路高清视频的实时分析能力, 且加速模块中集成了丰富的计算单元, 在程序运行时提供强大的神经网络计算能力, 实现高性能和低功耗的算法实现, 完全能够满足大规模视频监控场景设备部署的内存容量大、带宽高、低延迟的需求.
Atlas 300 AI加速卡内有4个独立操作系统的NPU芯片, 实现地铁站内行人检测过程的加速推理. 业务软件根据运行环境分为服务器侧和NPU侧, 在模型推理前处理阶段利用集成的4块NPU芯片提供算力, NPU通过使CNN结构与权重结合成一体进而加速推理, 其他过程在服务器侧运行. 将深度学习开发框架训练生成的模型部署到Atlas 300 AI加速卡需要先转化为晟腾AI处理器支持的.om离线模型, 转化主要包括3个步骤: 首先将PyTorch训练生成的.pth权重文件转化为.onnx文件, 并获取其中的网络结构和权值, 然后使用统一的中间图重新表达网络结构, 并基于结构中的权重对算子和模型进行编译. 最后采用序列化操作将.om模型保存在外部文件当中, 离线模型生成步骤如图15所示.
4.2 性能测试验证
在Atlas 300 AI加速卡上分别移植不同的离线模型, 并在晟腾AI处理器上输入相同的地铁内行人数据集, 观察不同网络模型的性能, 对比实验结果如表6所示.
由表6可知, YOLOv5s算法检测平均精度最高, 但是因为其网络结构较深, 每秒传输帧数比其他网络慢很多. MCA-YOLOv5s算法在检测精度下降0.2%的情况下, 检测速度提高33.5%. 经过剪枝后, 进一步测试最终网络模型的检测效果, 实验结果显示召回率为91.9%, 平均精度为94.1%, FPS达到104.1, 相比于原始YOLOv5s网络模型, 在检测精度只降低了0.4%的情况下, 加快了71.8%的检测速度.
图16为经过剪枝的MCA-YOLOv5s和YOLOv5s模型分别部署在Atlas 300 AI加速卡中的检测效果, 可以看出两个模型的检测精度和检测框的定位几乎没有区别. 在地铁大规模监控系统设备部署的成本约束下, 改进后的网络模型部署在Atlas 300 AI加速卡后能够同时检测更多路视频, 而且检测精度也完全符合需求, 更加适合实际的工程应用.
5 结论与展望本文针对地铁场景内大规模监控系统设备计算资源有限和行人多尺度、多角度、遮挡等问题, 提出了一种轻量化检测算法MCA-YOLOv5s, 在保证高检测精度的前提下, 拥有更快的检测速度. 实际工程实践表明, 将改进后的模型剪枝后部署在Atlas 300 AI加速卡上, 相比于YOLOv5s算法, 检测速度提升71.8%, 达到104.1 fps, 而且检测性能几乎没有下降, 其能够同时实现地铁站内更多路视频的实时检测, 降低了实际工程中成本的投入, 而且更易于实现检测后行人追踪、行为警示、客流引导等进一步功能的实现.
目前模型对严重遮挡的小尺寸行人的误检率和漏检率还有待进一步优化. 之后的研究在维持当前检测速度的前提下, 继续优化算法的网络结构, 降低行人检测的误检率和漏检率.
[1] |
Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation. Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014. 580–587.
|
[2] |
Ren SQ, He KM, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 |
[3] |
Liu W, Anguelov D, Erhan D, et al. SSD: Single shot multibox detector. Proceedings of the 14th European Conference on Computer Vision. Amsterdam: Springer, 2016. 21–37.
|
[4] |
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection. Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 779–788.
|
[5] |
Redmon J, Farhadi A. YOLO9000: Better, faster, stronger. Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 6517–6525.
|
[6] |
Redmon J, Farhadi A. YOLOv3: An incremental improvement. arXiv:1804.02767, 2018.
|
[7] |
Bochkovskiy A, Wang CY, Liao HYM. YOLOv4: Optimal speed and accuracy of object detection. arXiv:2004.10934, 2020.
|
[8] |
Zhang SS, Yang J, Schiele B. Occluded pedestrian detection through guided attention in CNNs. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 6995–7003.
|
[9] |
王明吉, 张政, 倪子颜, 等. 基于YOLOv3的视频场景行人检测研究. 通信技术, 2021, 54(6): 1378-1383. DOI:10.3969/j.issn.1002-0802.2021.06.014 |
[10] |
邓杰, 万旺根. 基于改进YOLOv3的密集行人检测. 电子测量技术, 2021, 44(11): 90-95. DOI:10.19651/j.cnki.emt.2106129 |
[11] |
Howard A, Sandler M, Chen B, et al. Searching for MobileNetV3. Proceedings of the 2019 IEEE/CVF International Conference on Computer Vision (ICCV). Seoul: IEEE, 2019. 1314–1324.
|
[12] |
Chen JR, Kao SH, He H, et al. Run, don’t walk: Chasing higher flops for faster neural networks. arXiv:2303.03667, 2023.
|
[13] |
Hou QB, Zhou DQ, Feng JS. Coordinate attention for efficient mobile network design. Proceedings of the 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Nashville: IEEE, 2021. 13708–13717.
|
[14] |
He JB, Erfani S, Ma XJ, et al. Alpha-IoU: A family of power intersection over union losses for bounding box regression. Proceedings of the 35th Conference on Neural Information Processing Systems. 2021. 20230–20242.
|
[15] |
Liu S, Qi L, Qin HF, et al. Path aggregation network for instance segmentation. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 8759–8768.
|
[16] |
Howard AG, Zhu ML, Chen B, et al. MobileNets: Efficient convolutional neural networks for mobile vision applications. arXiv:1704.04861, 2017.
|
[17] |
Sandler M, Howard A, Zhu ML, et al. MobileNetv2: Inverted residuals and linear bottlenecks. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 4510–4520.
|
[18] |
Hu J, Shen L, Sun G. Squeeze-and-excitation networks. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 7132–7141.
|
[19] |
Wang QL, Wu BG, Zhu PF, et al. ECA-Net: Efficient channel attention for deep convolutional neural networks. Proceedings of the 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Seattle: IEEE, 2020. 11531–11539.
|
[20] |
Woo S, Park J, Lee JY, et al. CBAM: Convolutional block attention module. Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 3–19.
|
[21] |
Rezatofighi H, Tsoi N, Gwak J, et al. Generalized intersection over union: A metric and a loss for bounding box regression. Proceedings of the 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE. 2019. 658–666.
|
[22] |
Zheng ZH, Wang P, Ren DW, et al. Enhancing geometric factors in model learning and inference for object detection and instance segmentation. IEEE Transactions on Cybernetics, 2022, 52(8): 8574-8586. DOI:10.1109/TCYB.2021.3095305 |
[23] |
He Y, Liu P, Wang ZW, et al. Filter pruning via geometric median for deep convolutional neural networks acceleration. Proceedings of the 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019. 4335–4344.
|
[24] |
Han K, Wang YH, Tian Q, et al. GhostNet: More features from cheap operations. Proceedings of the 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020. 1577–1586.
|