基于YOLOv3的人流量检测方法的研究*

2021-07-20 05:32徐天宇曾丽君
科技创新与应用 2021年19期
关键词:人流量头部行人

徐天宇,曾丽君,魏 丽

(南京航空航天大学金城学院 信息工程学院,江苏 南京211156)

面对错综复杂的人流量场景,近几年通过计算机视觉技术来处理和分析人流量的方法日益增多,其优势之一是公共场所普遍装有监控摄像头,无需部署新设备;二是监控面积,广角镜头可以实时监测并统计任意一片区域内的人流量;三是可以最大程度避免干扰当前行人活动。

目前,通过计算机视觉技术进行目标检测有很多种方法,比如早期传统的HOG+SVM[1]分类器方法,再有利用KCF[2]实现多目标跟踪,这两种方法无法满足实时性的需求,且精度不高。伴随着近几年深度学习的突飞猛进,通过神经卷积网络实现多目标追踪检测,极大程度提高了目标检测精度且满足视频监控的实时性需求。基于深度学习的人流量检测方法,是使用神经网络通过对行人头部的数据集样本进行深度学习,实现对头部目标的实时追踪检测,来达到实时统计人流量的目的。

1 YOLOv3检测原理

YOLOv3[3]是一种基于DarkNet-53[4]深度学习框架的由端到端的目标检测算法项目,其本质上是实现了回归的深度卷积神经网络。由于DarkNet-53是用C语言和CUDA的底层编写,所以其速度快,多核处理器以及GPU并行运算能够得到充分发挥的特点让YOLOv3的快速检测非常适合这种需要实时检测视频帧的项目。YOLOv3较之于前两代的Yolo有了非常大的提升,尤其是在小目标检测上,与R-CNN[5]相比快1000倍左右,与Faster RCNN[6]相比快近100倍。使用YOLOv3算法进行人检测时,与之前拥有较高准确率的SSD[7]算法的检测有些不同。首先将原始图片缩放到416×416的大小并分为S×S个等大的单元格,每个单元格会有3个anchor box[8]来预测3个bounding box,预测框包含3个信息:目标在候选框的中心目标(x,y),候选框的宽度(w,h)以及目标类型C。通过卷积层提取特征如图1所示。

图1 YOLOv3算法检测流程图

2 改进YOLOv3

2.1 针对高密度检测目标重聚类

YOLOv3采用了Faster R-CNN中的先验框思想,其目标检测的准确度受到anchor的数量和宽高比影响,在模型训练的过程中,为了让候选框与真实框的参数更加接近,候选框的参数会根据迭代次数的增加而不断变化。本次改进YOLOv3的目的是为了实现针对密集人流量时进行行人头部的检测,通过深度卷积神经网络对收集的样本来学习行人头部的特征。K-means[9]作为聚类算法的一种,与Faster R-CNN相比具有主观性更弱,模型表达能力更强,更易于网络学习的特点,其核心思想是把空间中的K个点作为几何中心,对与最接近的点进行归类,不停地更新和迭代这K个点的值,直到抵达迭代次数或K个值不再变化为止。COCO数据集中的行人是全身的“类长方形”框与本文收集的行人头部数据集多为“类正方形”的候选框类型不同,因此需要对行人头部数据集重新分析K-means聚类,得到最适合密集人流行人头部数据集的anchor数量和宽高比。K-means维度聚类方法的距离公式定义如下:

行人头部数据集聚类分析的目标函数变化曲线见图2。

图2 目标函数变化曲线

由图2所示的变化曲线可知,K值大于7时目标函数趋于平缓,因此选择K=7,即anchor个数为7。

2.2 改进网络结构

目标特征提取的识别效果由卷积神经网络的卷积层数和网络结构的深浅所决定,为了对密集人流量时进行头部检测,需要让检测网络获得更多的小目标特征,同时考虑到边缘端的硬件条件较为有限,本文对YOLOv3的网络结构进行改进。为了提高检测速度,势必要减少主干网络层次,这样也就带来了不能提取出高层次语义特征的问题,从而导致候选框和分类精度降低。为解决这个问题,本文将主干网络替换为MobileNet[10]网络,采用13*13、26*26的分辨率探测网络作为嫁接网络,使用两个不同尺度的yolo输出层,这样可以在增加网络层数保证精度的同时维持较小的计算量,改进后YOLOv3的网络结构见图3。

图3 改进的YOLOv3算法结构

3 人流量统计原理

3.1 人流量密度

通过人流量密度能直观反映出一片区域的拥挤程度,它是估算发生事故几率的重要指标,用式(2)表示。

其中,ρ为人流量密度;N为单位面积上的行人;S为单位面积;P为YOLOv3目标检测的准确率。

3.2 人流量风险评估和预警

人流量密度的风险值不仅和行人的行进方向、速度有关,且被行人所处环境(如人行道、辅路等)因素影响。因此,进行人流量风险评估时需要根据当前监控区域划分不同场景,如楼梯、广场、会场等。根据不同的场景分配不同的权重,最后获得一个人流量风险评估值,为决策层的判断提供依据。人流量风险评估值(Prisk)用式(3)表示。

式(3)中:ρ为人流量密度;weight为不同场景下的权重值。根据上述的人流量风险评估值(Prisk),用不同的颜色将预警级别[11]分成4种,见表1。

表1 预警模型

4 实验测试

4.1 测试环境

测试环境的软硬件配置情况见表2,所有训练测试均在该环境下进行。

表2 实验平台软硬件配置

4.2 训练数据集

训练的数据集主要从咖啡厅、十字路口以及学校等公共场所进行采集。这些数据集都拥有不同的人流密度、图像背景以及拍摄角度等。本次总共采集到15120张不同的人流量密度图片作为数据集,其中训练集15120张图片,验证1000张图片。此外,将100张图片作为测试数据集以便对训练结果进行测试,所有标注均为人工标注。本次采集的数据集示例见图4,所采集的图片均为公共场所,路人行走姿态多样、周围环境复杂、衣着打扮各不相同,还可能被帽子雨伞之类物品遮挡,符合本次训练的需求。

图4 几种测试场景代表图像

训练采用的初始模型参数设置如下:学习率为0.001;batch为64;subdivisions为64;max_batches为50000;decay为0.0005,最后通过50000次迭代后网络收敛。

本文在训练过程中,分别在数据集上取5000次、100 00次、20000次、30000次、40000次迭代训练时的结果,其结果如图5。

图5 不同迭代次数的准确率P

图5 中,准确率P的计算公式为:

式(4)中,P为准确率,Dtec为行人头部数量的预测值,Real为当前行人的真实值。

4.3 行人检测结果对比分析

本文通过上述对行人头部进行目标检测的训练与测试,并将实验结果与对行人全身的检测结果进行对比分析。选择这两种不同的检测方法并对他们在相同测试集的情况下进行对比分析。

分别用相同的测试数据集对改进后的YOLOv3与没改进之前的YOLOv3进行测试,用平均准确率(mAP)、召回率(Recall)以及检测速度作为衡量标准,实验结果如表3。其中,平均准确率mAP的计算公式为:

表3 两个模型的测试结果

式(5)中,∑AP为所有头部图片的平均准确率之和。

召回率Recall的计算公式为:

式(6)中,TP为预测和真实结果是头部的数量;FN为预测结果不是头部但真实结果是头部的数量。

由表3可知,改进后的YOLOv3的mAP和Recall均高于YOLOv3,mAP提高3.55%,Recall提高4.58%。通过上述结果表明,改进后针对行人头部的YOLOv3更大程度地涵盖不同尺度的行人,避免行人身体之间的相互遮挡,两种模型的测试结果对比如图6所示。

图6 两种模型实际场景检测效果对比

对YOLOv3和改进的YOLOv3使用1080p的MP4格式视频进行图像检测速度测试,结果见表4。

表4 改进前后图像检测速度对比

5 结论

以YOLOv3目标检测算法为基础,通过改进网络结构和调整训练数据集之前的聚类分析,设计一种基于计算机视觉的人流量检测方法。本次实验结果表明:此种方法能避免行人之间身体的相互遮挡,且有较高的检测准确率与检测速度,检测头部的平均准确率较检测全身提高了3.55%,检测速度每秒提高近26FPS,召回率提高4.55%,基本满足人流量检测需求。

将监控摄像头的视频流传输到边缘端进行实时目标追踪检测,再到建立预警模型、热力图以及可视化图表,最终实现人流量的实时监控预警,从而降低公共场所突发事件的人员伤亡,在此过程中如何进一步提高人流量检测精度以及合理调度分配安保人员,将是下一步研究的重点。

猜你喜欢
人流量头部行人
自动驾驶走向L4 企业头部效应显现
毒舌出没,行人避让
火箭的头部为什么是圆钝形?
自动门人流量检测系统设计
路不为寻找者而设
提高高职院校图书馆现刊阅览室人流量的策略研究
三级客运汽车站服务能力影响因素分析
我是行人
曝光闯红灯行人值得借鉴
蚝壳巧制作