2. 燕山大学 河北省测试计量技术与仪器重点实验室, 秦皇岛 066004
2. Key Laboratory of Measurement Technology and Instrument of Hebei Province, Yanshan University, Qinhuangdao 066004, China
行人检测是计算机视觉和数字图像处理的一个方向, 广泛用于安防、智能视频监控等领域, 将计算机视觉检测目标用在减少人力的使用的同时提高检测精度、提高灵活性具有重要意义. 目前已有的行人检测方法主要分为两大类, 一类是基于传统视觉处理的方法, 主要包括基于背景建模的算法、基于手工特征与机器学习的检测算法. 另一类主要是以神经网络为主的目标检测算法.
对以上算法中第一类算法的背景建模方法而言, 其主要是通过对背景进行建模, 然后将当前图像与背景模型进行比较, 确定前景, 如ViBe算法[1,2]、光流法 [3,4]等, 该类方法通常受环境光照变化、背景的多模态性、运动物体的阴影等多方面因素的影响, 不具备较好的鲁棒性. 相比于背景建模算法, 基于手工特征与机器学习算法的方法主要通过特定的特征实现检测, 如HOG+SVM[5,6]、HOG+DPM[7], 但该类方法很难处理遮挡问题, 人体姿势动作幅度过大或物体方向改变也不易检测.
在另一大类基于神经网络的算法中, 主要是以特征网络提取特征然后组合头部网络回归定位具体位置的方法定位检测目标为主, 近年来衍生出多种系列的检测算法, 如YOLO系列[8-11]、RCNN系列[12-14]、Anchor Free系列[15-17], 在实际的嵌入式设备应用上, 主要是以YOLO系列的阉割版和Anchor Free系列为主, 相对而言, YOLO系列的阉割版虽然能取得较高的模型推理速度, 但是当出现部分遮挡, 行人部分超出视野范围等情况, 精度会严重降低. 而既有的Anchor Free方法虽然整体结构较为简单适用于嵌入式设备的部署, 但是如CenterNet[16]、FCOS[17]等特征提取网络结构特征提取层和参数量较多会严重导致推理速度变慢, 所以本文通过优化特征网络结构进行特征提取, 从而保证头部网络输入特征的有效性, 此外针对行人间的相互遮挡情形, 提出针对行人的高斯核分布改进方式, 保证了模型的检测精度.
1 相关理论基础 1.1 CenterNet算法原理CenterNet是基于中心点的检测方法, 使用图像作为输入, 然后经过骨干网络提取特征, 最后在头部网络经过3个分支, 一个分支预测中心点的位置(HeatMap), 一个分支预测因下采样过程带来中心点位置误差的修正量(offset), 最后一个分支预测检测框的大小(scale), 其抽象结构见图1. 一般而言, 输入图像可用
在训练CenterNet过程中, 通常按以下方式设置ground truth和损失函数, 记检测物体在原图上的中心点为
${Y_{xyc}} = \exp \left( { - \frac{{{{(x - {{\tilde p}_x})}^2} + {{(y - {{\tilde p}_y})}^2}}}{{2{\sigma ^2}}}} \right) $ | (1) |
其中,
$ {L}_{k}=\frac{-1}{N}\sum _{xyc}\left\{\begin{array}{l} {\left(1-{\hat{Y}}_{xyc}\right)}^{\alpha }\mathrm{ln}\left({\hat{Y}}_{xyc}\right),{Y}_{xyc}=1\\ {\left(1-{Y}_{xyc}\right)}^{\beta }{\left({\hat{Y}}_{xyc}\right)}^{\alpha }\mathrm{ln}\left(1-{\hat{Y}}_{xyc}\right),{\text{其他}}\end{array}\right. $ | (2) |
其中
${L_{\rm off}} = \frac{1}{N}\sum\nolimits_p {\left| {{{\hat O}_{\tilde p}} - \left( {\frac{p}{R} - \tilde p} \right)} \right|} $ | (3) |
同样的在scale分支, 假设
${L_{\rm size}} = \dfrac{1}{N}\sum\nolimits_{k = 1}^N {\left| {{{\hat S}_{{p_k}}} - {s_k}} \right|} $ | (4) |
最后对以上3个分支的损失进行平衡:
${L_{\det }} = {L_k} + {\lambda _{\rm size}}{L_{\rm size}} + {\lambda _{\rm off}}{L_{\rm off}}$ | (5) |
式中, 一般在实验中设置
在Backbone的研究中, 模型有效性是一个重要的概念, 在目标检测网络中都需要一个特征提取层提取深度特征, 一般的做法是对高层的语义特征和低层的细节特征进行融合, 即FPN[21]结构, 这样用在检测过程中可以提高位置检测和分类的精度, 但同时也会极大的增加参数量, 致使检测的速度降低, 所以越来越多的FPN结构尝试在尽可能少的增加参数量的同时能保证一定的检测精度, 以满足在嵌入式设备上的实时性要求. 其中EffcientDet[22]提出加权融合的BiFPN结构就可以有效的对下采样或上采样后的不同分辨率的特征图进行有效的融合, 其结构如图2所示. 图中假设
$O = \sum\nolimits_i {\dfrac{{{w_i}}}{{\varepsilon + {\Sigma _j}{w_j}}}} \cdot {I_i}$ | (6) |
其中, Ii表示融合过程中的所有被融合前的特征图,
$P_6^{td} = Conv\left( {\frac{{{w_1} \cdot P_6^{\rm in} + {w_2} \cdot {{Re}}si{\textit{z}}e(P_7^{\rm in})}}{{{w_1} + {w_2} + \varepsilon }}} \right) $ | (7) |
$P_6^{\rm out} = Conv\left( {\frac{{{w_{1'}} \cdot P_6^{\rm in} + {w_{2'}} \cdot P_6^{td} + {w_{3'}}{{Re}}si{\textit{z}}e(P_5^{\rm out})}}{{{w_{1'}} + {w_{2'}} + {w_{3'}}}}} \right) $ | (8) |
经过以上计算就能更加有效的提取到低层细节特征和高层语义特征的混合特征, 用于头部网络的检测和分类任务.
2 行人检测算法设计 2.1 行人检测模型
原CenterNet使用的backbone是多层特征融合的DLA34和Hourglass101, 这类模型参数量大, 前向传播速度较慢, 不适合使用在嵌入式这类计算能力有限的设备上, 所以根据BiFPN结构提出一种新的特征提取结构, 其参数量在嵌入式设备上可以满足实时性的同时, 保证了精度不会出现大幅降低, 改进后的网络结构如图3所示, 从网络结构的图中可以看出输入图像首先经过一个Conv1(卷积)→Bn1(批标准化)→ReLU(激活层)→maxpool(最大池化)的结构得到一个64维的特征图, 然后使用ResBlock(残差块)进一步提取特征, 分别将残差块下采样输出的特征相对应的按式(7), 式(8)进行分辨率调整, 并且按图中BiFPN结构进行融合, 经过BiFPN结构之后得到对应输入的不同层融合之后的特征, 将这些特征经过Conv (卷积), DeConv[23](可变形卷积)送入到头部分支, 最后再在不同的分支分别进行卷积, 得到各个头部检测分支的对应结果, 综合3个分支的结果即可得到最终的检测结果.
2.2 检测网络训练及损失
本文所提方法训练时的输入量和原CenterNet网络的输入量相同, 不过因行人这一检测类别的特殊性进行微调, 并改进其相应的损失函数.
针对行人之间容易出现遮挡的情况, 如图4所示, 通过改进训练过程中HeatMap的高斯核分布形式, 来提高准确度, 即将(1)式修改为:
${Y_{xyc}} = \exp \left( { - \dfrac{{{{(x - {\hat p_x})}^2}}}{{2\sigma _x^2}} - \dfrac{{{{(y - {{\tilde p}_y})}^2}}}{{2{{\left( {\dfrac{{{g_w}}}{{{g_h}}}} \right)}^2}\sigma _x^2}}} \right)$ | (9) |
其中,
$ {L}_{k}=\frac{-1}{N}\sum _{xy}\left\{\begin{array}{l} {\left(1-{\hat{Y}}_{xy}\right)}^{\alpha }\mathrm{ln}\left({\hat{Y}}_{xy}\right),{Y}_{xy}=1\\ {\left(1-{Y}_{y}\right)}^{\beta }{\left({\hat{Y}}_{xy}\right)}^{\alpha }\mathrm{ln}\left(1-{\hat{Y}}_{xy}\right),{\text{其他}}\end{array}\right. $ | (10) |
式(10)与(2)的不同之处在于, 首先因为应用的是针对于行人这一个单类别的检测, 所以HeatMap的结构没有类别对应的维度, 仅在
3 实验结果及分析 3.1 实验数据、环境及评价指标
实验过程中使用CityPerson[25]数据集首先进行30个epoch的预训练, 然后使用CrowdHuman行人数据集进行130个epoch训练和评测. CrowdHuman数据集是密度较高的行人检测数据集, 平均每张图片有22.64个行人检测框, 在训练过程中使用15000张训练集图像和4370张验证集图像进行训练, 使用5000张测试集图像进行评测.
实验训练过程中所用硬件环境Inter Core i7 9400, GPU2080Ti, 操作系统为Ubuntu 16.04, 训练深度学习框架为MXNet 1.5.0, 最终应用的嵌入式平台为Jetson TX2, 在模型移植过程中采用TensorRT加速, 训练和推理过程图片采用512的大小作为输入.
在评价指标上主要采用平均精度(Average Precision, AP)作为主要的评价依据, 其计算过程如式(11):
$AP = \int_0^1 {P(R){\rm{d}}R} $ | (11) |
其中, P表示精确度, R表示召回率. 精确度是指正确检测到的物体在所有目标中所占的比例, 而召回率是指正确检测到的物体在所有检测到的目标中所占的比例, 式(12)表示精确度的计算, 式(13)表示召回率的计算, 两式中TP(IoU不小于阈值)为正确检测出目标, FP(IoU小于阈值)为错误检测目标, FN为没有被检测出目标. 本文IoU阈值设置为0.3, 当IoU ≥0.3时, 则认为检测正确, 否则为错误.
${{Precision}} = \frac{{TP}}{{TP + FP}}$ | (12) |
${{Recall}} = \frac{{TP}}{{TP + FN}}$ | (13) |
参数量和检测速度的评测采用固定大小图片512×512作为输入, 分别计算模型前向传播过程的权重参数的总量及传播时间来实现.
3.2 实验设置和结果为了更好的对改进后的模型及输入进行评估, 分别设置了不同的对比实验, 首先针对模型结构的适应性进行评估, 对其Backbone分别使用DLA34、ResNet34、MobileNet_v2[26]及本文改进后的结构进行对比, 训练过程的损失曲线和精度曲线分别如图6和图7所示, 几个Backbone的参数量如表1所示, 由于MobileNet_v2的参数量较少, 所以很快训练权重就完成拟合, 但最后的损失也略大, 所以精度较低, 相比于ResNet34, DLA34融合了更多高级语义信息和低层细节信息, 所以DLA34在整个训练过程中以比ResNet34更少的参数量达到更优的效果. 最后从本文算法的损失曲线和精度曲线来看, 虽然相比于DLA34、和ResNet34的精度略低, 但从表1可以看出其参数量相较于其他两个Backbone分别少了34.4%和56.2%, 充分说明了本文所用方法提取特征的有效性.
为了体现对行人检测框训练时HeatMap的改进及相应的损失函数的修改带来的效果增益, 首先用未改进HeatMap输入的方法进行检测, 从中挑选出128处因遮挡导致漏检的结果, 如图8(a)所示, 然后使用改进后的训练方式及损失函数进行重新训练, 得到的结果如图8(b), 改进前后在精度和因遮挡造成的评测如表2所示.
结合图8和表2可以看出, 经过对HeatMap训练的高斯核分布改进后, 不仅能够提高检测精度和减少因遮挡造成的漏检, 而且因为新的高斯核分布形式与行人这一类别更加匹配, 所以也会提高新人检测的置信度.
最后为了准确的评估模型在 传播速度(FPS)来综合比较经TensorRT加速后在Jetson TX2上的表现, 其中在移植时, 权重参数全部量化为float8, 结果如表3所示.
从表3可以看出, 相比于其他几种Backbone在Jetson TX2上的表现, 本文所提方法精度仅略微降低, 但68 ms的推理速度足以保证模型在嵌入式平台Jetson TX2上的实时性.
4 结论与展望本文主要是针对原CenterNet检测网络在嵌入式设备上检测速度较慢, 提出了一种满足实时要求又不大幅降低检测精度的网络模型. 然后针对于行人这一检测类别通过改进头部网络HeatMap分支的高斯核分布进一步降低因遮挡带来漏检的方法. 实验结果表明, 本文所提方法在嵌入式设备上与其他方法相比具有一定的优势, 在保证检测精度的同时, 通过有效的检测模型极大的减少了参数量并提高了检测速度, 同时在行人检测的相互遮挡问题上进行了研究. 如何进一步在现有部署框架上尽可能少的使精度下降, 是下一阶段的研究方向.
[1] |
张磊, 傅志中, 周岳平. 基于 HSV 颜色空间和 Vibe 算法的运动目标检测. 计算机工程与应用, 2014(4): 181-185. |
[2] |
胡小冉, 孙涵. 一种新的基于ViBe的运动目标检测方法. 计算机科学, 2014, 41(2): 149-152. DOI:10.3969/j.issn.1002-137X.2014.02.033 |
[3] |
Zhang GF, Chanson H. Application of local optical flow methods to high-velocity free-surface flows: Validation and application to stepped chutes. Experimental Thermal and Fluid Science, 2018, 90: 186-199. DOI:10.1016/j.expthermflusci.2017.09.010 |
[4] |
潘光远. 光流场算法及其在视频目标检测中的应用研究[硕士学位论文]. 上海: 上海交通大学, 2008.
|
[5] |
Han F, Shan Y, Cekander R, et al. A two-stage approach to people and vehicle detection with HOG-based SVM. Performance Metrics for Intelligent Systems 2006 Workshop. Piscataway, NJ, USA. 2006. 133–140.
|
[6] |
李文书, 韩洋, 阮梦慧, 等. 改进的基于增强型HOG的行人检测算法. 计算机系统应用, 2020, 29(10): 199-204. DOI:10.15888/j.cnki.csa.007587 |
[7] |
Girshick R, Iandola F, Darrell T, et al. Deformable part models are convolutional neural networks. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA. 2015. 437–446.
|
[8] |
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 779–788.
|
[9] |
Redmon J, Farhadi A. YOLO9000: Better, faster, stronger. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017: 6517–6525.
|
[10] |
Redmon J, Farhadi A. YOLOv3: An incremental improvement. arXiv: 1804.02767, 2018.
|
[11] |
Wang XL, Shrivastava A, Gupta A. A-fast-RCNN: Hard positive generation via adversary for object detection. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 3039–3048.
|
[12] |
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 |
[13] |
Elhabian SY, El-Sayed KM, Ahmed SH. Moving object detection in spatial domain using background removal techniques-state-of-art. Recent Patents on Computer Science, 2008, 1(1): 32-54. DOI:10.2174/2213275910801010032 |
[14] |
He KM, Gkioxari G, Dollár P, et al. Mask R-CNN. Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy. 2017. 2980–2988.
|
[15] |
Law H, Deng J. CornerNet: Detecting objects as paired keypoints. Proceedings of the 15th European Conference on Computer Vision. Munich, Germany. 2018. 765–781.
|
[16] |
Duan KW, Bai S, Xie LX, et al. CenterNet: Keypoint triplets for object detection. Proceedings of 2019 IEEE/CVF International Conference on Computer Vision. Seoul, Republic of Korea. 2019. 6568–6577.
|
[17] |
Tian Z, Shen CH, Chen H, et al. FCOS: Fully convolutional one-stage object detection. Proceedings of 2019 IEEE/CVF International Conference on Computer Vision. Seoul, Republic of Korea. 2019. 9626–9635.
|
[18] |
Newell A, Yang KY, Deng J. Stacked hourglass networks for human pose estimation. Proceedings of the 14th European Conference on Computer Vision. Amsterdam, the Netherlands. 2016. 483–499.
|
[19] |
Yu F, Wang DQ, Shelhamer E, et al. Deep layer aggregation. Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City, UT, USA. 2018. 2403–2412.
|
[20] |
Lin TY, Goyal P, Girshick R, et al. Focal loss for dense object detection. Proceedings of 2017 IEEE International Conference on Computer Vision. Venice. 2017. 2999–3007.
|
[21] |
Lin TY, Dollár P, Girshick R, et al. Feature pyramid networks for object detection. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 936–944.
|
[22] |
Tan MX, Pang RM, Le QV. Efficientdet: Scalable and efficient object detection. Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle, WA, USA. 2020. 10778–10787.
|
[23] |
Zhu XZ, Hu H, Lin S, et al. Deformable convnets v2: More deformable, better results. Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, CA, USA. 2019. 9300–9308.
|
[24] |
Bodla N, Singh B, Chellappa R, et al. Soft-NMS—improving object detection with one line of code. Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy. 2017: 5562–5570.
|
[25] |
Zhang SS, Benenson R, Schiele B. Citypersons: A diverse dataset for pedestrian detection. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 4457–4465.
|
[26] |
Sandler M, Howard A, Zhu ML, et al. Mobilenetv2: Inverted residuals and linear bottlenecks. Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City, UT, USA. 2018. 4510–4520.
|