随着城市社区的快速发展,社区视频监控管理系统对于提升社区管理效率和保障社区安全起着重要的作用[1]。然而现有社区视频监控仅采用人脸相机在特定的角度对小区出入口抓拍人脸数据,忽略了具有潜在价值的人体其他信息。因此,若能利用人脸相机准确快速地获取其他人体信息,并能与现有视频管理系统对接,就可以提升社区公共安全管理能力和精细化管理水平。
随着深度学习技术在目标检测领域的快速发展,现有目标检测算法可以分为两类。第一类是双阶段模型,该类模型首先用窗口标定算法生成一系列待筛选目标区域,然后通过深度神经网络对目标区域进行特征训练,最后用所训练出来的模型选出最优的目标边界框。主要代表网络有R-CNN[2]、Fast R-CNN[3]、Faster R-CNN[4]、R-FCN[5]等。这些算法准确率较高,但提取出大量冗余特征,算法比较耗时。第二类是单阶段模型,该类模型不经过窗口预标定,而是直接利用整张图像一次性预测出目标的位置并标价边框,代表网络有YOLO[6]、SSD[7]等。这些检测算法采用端到端的目标检测,具有检测效率高、原理简单和背景误检率低等特点。其中具有代表性的是Redmon等[8]在2018年提出的YOLOv3检测算法,其在COCO数据集上51 ms 内mAP为57.9%[9]。
为利用人脸相机准确检测人体信息,笔者先采用K-means++[10]算法获得适应于自制数据集的先验框;再选用一种新的边界框回归损失函数GIoU[11]提高检测性能;然后,使用多尺度方式[12]进行模型训练;最后,通过调用人体属性识别模块实现对人体信息准确检测。经实验验证,该方法在快速检测人体的同时,可以准确识别人体其他属性信息。
YOLOv3算法通过特征提取网络对输入的图像提取特征,得到一定大小的特征图。然后将输入的图片分割成S×S个网格,其中每个网格中预测B个边界框,对C类目标进行检测。网格中边界框不仅要确定自身位置,还要预测一个置信度,置信度由每个网格中包含检测目标概率和输出边界框准确度共同确定。若预测目标中心落在该网格中,则该网格负责预测目标。整张图像目标位置类别预测如式(1)所示:
Y=A×A×B×(5+C)。
(1)
式中:Y表示图像目标位置类别预测张量;A表示网格数;B表示边界框数量;5表示4个边框坐标数值和1个边框置信度数值;C表示对象类别。
YOLOv3不仅借鉴了FPN[13]架构,采用3个尺度对不同大小的目标进行预测,提升了小物体的检测效果,还采用多个独立的逻辑logistic分类器替换softmax[14]函数,以计算输入属于特定标签的可能性,每个标签使用二元交叉熵损失降低了计算复杂度。
YOLOv3算法采用Darknet-53作为主干网络。该网络主要是由一系列的1×1和3×3卷积层组合而成的,并且每个卷积层后增加了批次归一化层,可以有效防止过拟合现象。其次,网络借鉴ResNet[15]残差网络结构,通过残差层实现跨层数据更快地向前传播。最后,网络使用5个步长为2的3×3卷积层替换上代网络中的最大池化层实现下采样。该主干网络在ImageNet数据集中进行测试,测试结果如表1所示。表中ATop-1和ATop-5分别表示模型在图片识别时前1个和前5个结果中有一个正确的准确率,计算量表示浮点运算的次数,运算速度是每秒浮点运算的次数,帧速度为每秒刷新图片的帧数。
表1 特征提取网络
Table 1 Feature extraction network
主干网络ATop-1/%ATop-5/%计算量/次运算速度/(次·s-1)帧速率/(f·s-1)Darknet-1974.191.87.29×1091.246×1012171ResNet-10177.193.71.97×10101.039×101253ResNet-15277.693.82.94×10101.090×101237Darknet-5377.293.81.87×10101.457×101278
由表1可知,Darknet-53相比Darknet-19[6]检测的准确率有了进一步的提升,但是运算速度有所降低,与ResNet-152的网络性能基本一致,并且目标检测速度提升到78 f/s,满足目标检测实时性要求。
现有人体目标检测存在人体信息获取不完整和检测速度较慢等问题,因此,为得到更适合人体目标检测的方法并且提升运算速度,对人体目标检测网络重新进行设计,整体检测框架如图1所示。
本文使用新的边界框回归损失函数GIoU和K-means++算法聚类算法,经过多尺度训练得到人体检测模块。视频监控再通过人体检测模块与智能应用平台信息交互,实现人体目标属性信息的检测。
图1 整体框架图
Figure 1 Overall frame diagram
训练深度神经网络模型时,批次归一化利用小批量上的均值和标准差,不断地调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更加稳定,同时可以加速网络的收敛并控制过拟合产生。批次归一化虽然可以使神经网络的训练更容易,但是在网络向前推理时会增加一些运算,一定程度上占用了更多显存。因此,将批次归一化层与原有卷积层相整合构建新的卷积层,这样有利于提升模型向前推理的速度。
由于YOLOv3算法存在网络层数的加深使模型复杂和特征消失等问题,因此笔者在YOLOv3网络结构上适当减少YOLO层的卷积次数,得到新的网络结构。改进网络先将输入图像缩放为通道为3、长和宽均为416的统一参数,然后通过Darknet-53特征提取网络结构提取特征,对采集到的特征采用1×1和3×3的卷积进行卷积操作,降低计算量以及融合特征之间的通道数,得到一个小尺度YOLO层一个13×13×255维的输出量;然后对小尺度YOLO层进行上采样,与Darknet-53中的卷积第45层进行拼接,再进行2组1×1和3×3的卷积进行卷积操作,得到一个中尺度YOLO层一个26×26×255维的输出量;接着将得到的中尺度YOLO层进行上采样,与Darknet-53中的卷积第29层进行拼接,再进行2组1×1和3×3的卷积进行卷积操作,得到一个大尺度YOLO层的一个52×52×255维输出量;最后,将已得到的3个尺度YOLO层进行边界框和类别的预测。改进后的网络一共有102层,由70层卷积层、23层残差层、4层特征层、2层上采样层和3层YOLO层组成,改进的网络结构如图2所示。
图2 改进的网络结构
Figure 2 Improved network structure
目标检测任务中,预测框与真实框之间的交并比IoU不仅可以反映预测检测框与真实检测框的检测效果,还是评价网络性能指标的重要参数。IoU[16]定义如下:
(2)
式中:A为目标的预测框;B为目标的真实框;IoU是真实框和预测框面积的交并比。
现有网络常采用IoU作为损失函数,遇到轴对齐的二维边界框不相交情况,依据IoU计算公式,此时IoU为零,无法进行模型训练。因此Rezatofighi等[11]提出了一种既能维持IoU尺度不变性,还能在目标重叠时更好地反映预测框和真实框的重合度的评价指标GIoU,其定义公式如下:
(3)
式中:A为目标的预测框;B为目标的真实框;C为预测框和真实框的最小框面积。
由式(3)可知,GIoU引入了包含A、B两个形状的C,所以当A、B不重合时,依然可以进行边界框回归优化,因此采用GIoU构造边界框回归损失函数。若已知预测框和真实框的坐标如下:
(4)
其边界框回归损失函数的计算过程如下。
步骤1 计算Bg的面积
步骤2 计算Bp的面积
步骤3 计算Bp和Bg的重叠面积:
I
步骤4 找到可以包含Bp和Bg的最小框BC:
步骤5 计算BC的面积
步骤6 计算
步骤7 计算
步骤8 计算损失。LGIoU=1-GIoU。
YOLOv3网络中的9个先验框是采用K-means算法在COCO数据集下聚类产生的,不能应用于本文的数据集。并且由于K-means[10]算法在运算过程中,初始聚类中心是随机产生的,因此存在聚类中心不断变化,导致每次运行获得不同的聚类效果,从而影响模型的检测效果。为解决初始聚类中心不断变化的问题,笔者采用K-means++算法进行先验框的聚类。聚类过程如下。
步骤1 随机选取数据集中的一个锚定框的宽和高作为第一个聚类中心。
步骤2 计算数据集中每个锚定框坐标与已知聚类中心的距离,再根据概率重新选择下一个聚类中心。
步骤3 重复第2步的计算,直到选出K个聚类中心。
步骤4 重新计算数据集中的每个锚定框坐标与聚类中心距离,并根据最小距离重新进行分类划分。
步骤5 计算每个分类的中心值,直到聚类中心的位置不再变化时结束。
对自制数据集重新聚类依次获取的9组先验框为(76,23),(81,37),(89,46),(102,61),(113,68),(119,71),(150,83),(164,89)和(170,95)。
海康威视萤石开放平台一方面能提供人体目标属性图像识别技术,并且对分析任务提供同步和异步两种接入方式。同步分析任务的接入方式较为简便,但是整体的性能比较受限,适用于小批量的图片检测;异步分析任务则可以提供更大的分析吞吐量,适用于大批量的任务提交。另外一方面,开放平台对人体目标属性有较成熟的识别方案,且对人体目标属性结构化数据如人脸目标位置、年龄段、性别、是否戴眼镜、是否背包、是否拎东西、发型、上衣类型、下衣类型、上衣颜色、下衣颜色和是否骑车等,有较高的检测速度和识别率。
基于以上考虑,采用开放平台中的异步分析任务方式进行人体目标属性的识别。首先,使用改进的网络配合人脸相机截取到监控区域的人体图像;其次,将截取图像使用基于ISAPI协议的图片任务分析接口,提交异步图片分析任务请求中截取图片的发送地址;最后,开放平台进行人体目标属性的分析任务。当平台分析完成后,分析结果会通过TCP的方式发送格式为ISAPI协议所规定的JSON报文;接着使用Python将JSON报文中人体目标检测属性的信息进行提取和展示;最后存储到自建的ACCESS社区人体信息数据库中。调用人体特征识别流程图如图3所示。
图3 人体特征调用流程图
Figure 3 Flow chart of human character recognition
为获得准确的人体信息,将3个数据集中的人体图片整合为标准PASCAL VOC数据集格式。其中第一部分采用的是PASCAL VOC2012数据集中人体的图片共4 015张,标注框数量5 717个;第二部分采用的是COCO数据集中人体的图片,采用了2 693张图片,标注框数量11 004个;第三部分数据采用郑州市某视频中心监控视频,采用labelImg工具对自制人体数据集进行人工标注,人工标注照片3 292张,标注框数量4 326个。总共10 000张图片,标注框21 047个。
在训练和测试前,先将数据集中图片随机分为8 000张训练集和2 000张测试集。然后,再把训练集和测试集中照片统一缩放分成4个不同的尺寸组。其中A组320×320、B组416×416、C组512×512和D组608×608。数据集图片如下图4所示。
图4 实验数据集
Figure 4 Experimental dataset
本实验在PC端完成,实验平台使用操作系统为Ubuntu 16.04,显卡为NVIDIA GeForce 2080 Ti。
训练过程中采取多尺度训练的策略,每10个批次随机挑选训练集中的一组尺寸进行迭代,共进行50 000次迭代。其中学习率为0.001 4,在迭代到25 000、40 000和45 000次时,学习率变为之前的十分之一。其中训练参数批量大小(batch)为64,动量参数(momentum)为0.9。
为验证改进网络和改进目标损失函数对目标检测算法的影响,笔者采用对比实验进行验证。第一组为YOLOv3网络分别采用MSE (mean squared error)、IoU和GIoU边界框回归损失函数进行对比;第二组为均采用IoU损失函数的改进网络与YOLOv3网络进行对比;第三组为改进网络采用GIoU边界损失函数与YOLOv3网络采用IoU进行对比,对比结果如表2所示。
表2 边界框回归损失函数
Table 2 Bounding-box regression loss function
优化方案检测准确率mAP/%YOLOv3+ MSE83.4YOLOv3+ IoU87.8YOLOv3+ GIoU89.3改进网络+ IoU89.7改进网络+ GIoU91.8
由表2可知,第一组YOLOv3网络采用GIoU边界框回归损失函数相比采用MSE和IoU作为损失函数,检测准确率mAP分别提升了7.1% 和1.7%,说明采用GIoU损失函数可以提升网络检测性能。第二组对比实验中,改进网络的mAP提升了0.4%,说明改进网络也能提升网络性能。第三组实验将改进网络采用GIoU边界框回归损失函数与YOLOv3采用IoU边界框回归损失函数相比,mAP提升了4.6%。说明改进网络结构与改进边界框回归损失函数可以进一步提升网络的性能。不同网络与不同边界框损失函数训练过程如图5所示。
图5 对比实验变化
Figure 5 Comparative experimental change
改进网络采用GIoU和YOLOv3网络采用IoU两种边界框回归损失函数对自制数据集的检测效果如图6所示。其中蓝色为改进网络采用GIoU边界框回归损失函数,红色为YOLOv3网络采用IoU损失函数。由图6可知,蓝色框不仅检测精度略高于红色框,还能更准确地框住待检测的人体目标,一定程度上减少因框住人体目标不完整而造成待检测人体信息缺失的问题。
图6 边界框检测对比效果
Figure 6 Bounding-box contrast effect
训练过程中采用多尺度训练的方法,可以增强模型对不同分辨率检测的鲁棒性。笔者使用YOLOv3网络采用IoU损失函数和改进网络采用GIoU损失函数对测试集中4组不同尺寸图片进行对比实验,实验结果以平均mAP为指标,对比结果如表3所示。
由表3可知,首先从不同尺寸图像上的检测指标上看,改进网络使用GIoU损失函数比YOLOv3使用IoU损失函数要高。其次,采取增大输入照片尺度能够提升人体目标检测性能。最后采用多尺度训练能够使模型对不同尺寸图像具有鲁棒性。改进网络使用GIoU回归损失函数检测效果如图7所示。
表3 目标敏感性分析
Table 3 Performance comparison of different algorithms
优化方案检测准确率mAP/%A组B组C组D组YOLOv3+IoU84.5886.7390.6993.08改进网络+GIoU87.7490.0192.4796.23
图7 改进网络检测效果
Figure 7 Improved network detection effect
开放平台对人体目标属性检测的过程为:先检测图片中的人体目标再检测人体属性,平均一张监控图片的检测时间在2.9 s,不能满足检测实时性要求。因此,为满足检测任务实时性要求,采用改进网络先检测监控视频中的人体目标并进行截图后,再使用平台对图片中的人体目标进行检测,最后再对报文进行解析并保存到自制数据库中。 当有正面遮挡时,以截取人脸为主要存储信息,同时其他人体信息捕捉超过检测属性的40%即为有效信息,避免冗余数据,易于数据管理。本文方法对监控视频中一个人体目标进行人体属性检测并显示的平均时间为1.15 s,不仅检测效率大幅提升了60.34%,还在一定程度上减少了计算资源的浪费。通过MATLAB构建GUI界面进行展示的检测效果如图8所示。
图8 调用分析显示效果
Figure 8 The show of call analysis
由显示效果可知,在实时监控下借用人脸相机应用本文方法,既能使用人脸相机获取人脸照片数据,还能获取目标人体的其他属性数据(如:性别、年龄、衣服类型、有无眼镜、有无电话等)。并且本文方法对采集到人体数据直接解析到自建的ACCESS社区人体信息数据库中,解决了实验平台中数据库资源不能直接调用的问题,真正地实现了视频数据的结构化描述。自建的社区人体信息数据库不仅可以实现大规模数据实时存储和查询的要求,还能提升社区对于日常监控管理的水平。
将改进后的网络与Faster R-CNN[4]、SSD[7]和YOLOv3[8]网络在自制数据集上进行性能实验对比,以mAP以及每秒刷新图片的帧数作为检测评价指标,对比结果如表4所示。
表4 不同算法的性能对比
Table 4 Performance comparison of different algorithms
网络框架主干网络mAP/%帧速率/(f·s﹣1)Faster R-CNN[4]ResNet-5090.36SSD-300[7]VGG1686.151YOLOv3[8]Darknet-5387.842改进网络Darknet-5391.845
由表4可知,改进网络mAP数值不但略高于Faster R-CNN,识别帧率还是其7.5倍。其次,改进网络与SSD算法相比,检测速度略低,但mAP高于后者。最后,改进网络相比YOLOv3在准确率和识别帧速率上都有一定的提升。综上所述,改进网络不仅兼顾了检测准确率和检测速度,还可以较好地完成人体目标检测任务。
提出一种将改进YOLOv3网络和调用人体信息识别模块相结合的人体信息检测方法。先使用自制数据集进行人体目标信息的检测实验,通过改进网络结构,使用新的边界框回归损失函数GIoU、K-means++算法进行目标框维度聚类以及多尺度训练方式改进YOLOv3网络,再采用改进后的网络实现监控视频下人体目标的截取,最后调用人体目标属性检测模块,检测视频监控下的人体信息并存储到自建数据库中。本文方法能够利用现有人脸相机实现快速、准确地检测人体信息,并与视频监控管理系统进行对接,可显著提升社区视频监控管理系统的精细化管理能力。
[1] 赵思阳. 社区治理现代化视域下智慧社区建设研究——以洛阳市涧西区天津路街道为例[D].郑州: 郑州大学, 2018.
[2] GIRSHICK R,DONAHUE J,DARRELL T,et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition. New York:IEEE,2014:580-587.
[3] GIRSHICK R. Fast R-CNN [C]//2015 IEEE International Conference on Computer Vision. New York:IEEE, 2015: 1440-1448.
[4] REN S Q,HE K M,GIRSHICK R,et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE transactions on pattern analysis and machine intelligence, 2017,39(6): 1137-1149.
[5] DAI J F,LI Y, HE K M, et al. R-FCN: object detection via region-based fully convolutional networks[J]. Computer vision and pattern recognition, 2016, 29: 379-387.
[6] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, realtime object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. New York:IEEE,2016: 779-788.
[7] LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot MultiBox detector [M]//LEIBE B, MATAS J, SEBE N, et al.Computer Vision-ECCV 2016. Cham: Springer International Publishing,2016:21-37.
[8] REDMON J, FARHADI A. YOLOv3: an incremental improvement[C]// 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).New York:IEEE,2017:6517-6525.
[9] FELZENSZWALB P F, GIRSHICK R B, MCALLESTER D,et al. Object detection with discriminatively trained part-based models [J]. IEEE transactions on pattern analysis & machine intelligence, 2010, 32(9): 1627-1645.
[10] 张素洁,赵怀慈. 最优聚类个数和初始聚类中心点选取算法研究[J]. 计算机应用研究, 2017, 34(6): 1617-1620.
[11] REZATOFIGHI H,TSOI N,GWAK J,et al.Generalized intersection over union: a metric and a loss for bounding box regression[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).New York:IEEE,2019:658-666.
[12] 施辉,陈先桥,杨英. 改进YOLOv3的安全帽佩戴检测方法[J]. 计算机工程与应用, 2019, 55(11): 213-220.
[13] LIN T Y, DOLLR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. New York:IEEE,2017:936-944.
[14] LIU W, WEN Y, YU Z, et al. Large-margin softmax loss for convolutional neural networks[C]//Procee-dings of the 33rd International Conference on Machine Learning. Washington DC:IMLS, 2016: 507-516.
[15] HE K M,ZHANG X Y,REN S Q,et al. Deep residual learning for image recognition[C]//Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2016: 770- 778.
[16] 魏宏彬,张端金,杜广明,等. 基于改进型YOLO v3的蔬菜识别算法[J].郑州大学学报(工学版),2020,41(2):7-12.