论文部分内容阅读
摘 要: 为了实现对视频中的行人进行实时、准确的人数统计,提出了一种基于深度学习的计数方法。首先,通过K-means聚类方法优化检测模型的先验框;其次,使用实际场景下获取的行人图像对深度学习模型YOLO-v3进行训练;然后利用Deep sort在线多目标跟踪算法跟踪多个行人并分别获取其轨迹;最后通过计数线法判断行人数量。该方法计数准确率可达89.2%,每帧检测时间可达65ms,且场景适应性强,鲁棒性好,可满足实时行人计数要求。
关键词: 深度学习;人数统计;多目标跟踪
【Abstract】: In order to realize real-time and accurate population statistics of pedestrians in video, a counting method based on deep learning is proposed.Firstly, the priori box of the detection model is optimized by k-means clustering method.Secondly, the deep learning model YOLO-v3 is trained by using pedestrian images obtained in real scenes.Then Deep sort online multi-object tracking algorithm is used to track multiple pedestrians and obtain their trajectories respectively.Finally, the number of pedestrians is determined by counting line method.The counting accuracy of this method is up to 89.2%, and the detection time of each frame is up to 65ms. In addition, it has strong scene adaptability and good robustness, which can meet the requirements of real-time pedestrian counting.
【Key words】: Deep learning; People counting; Multi-target tracking
0 引言
随着城市化进程加快,各个行业对行人人数统计的需求与日俱增。近年来,随着深度学习在图像处理方面的应用,大大推进了视频监控技术的发展,利用这一技术,能够准确分析视频内容,获取量化数据,使管理者能做出更加合理与高效的决策。
现有的基于视频的人数统计系统所采用的算法可以分为3类:基于高斯过程回归的行人计数方法[1],这类方法复杂度低,但是需要手动调整回归参数,不适用于多种不同的场景,其鲁棒性较差;基于帧差法的计数方法[2],该方法在单一且人群稀疏的场
景下计数效果较好,但是要求视频拍摄背景稳定,对硬件设别要求高,建模复杂,不适用于多种环境下的计数;基于目标检测跟踪的方法[3],这类方法场景适应性强,鲁棒性高,但是在人群密集伴随着严重遮挡的情况下检测效果较弱,其行人计数准确度依赖于目标检测与跟踪算法的性能。近年来,也出现了一些通过深度学习对行人计数的方法[4,5],此类方法在传统的检测思路的基础上,提高了在各个步骤上的性能,提升了计数的准确性。
在基于目标检测的跟踪方法的基础上,提出使用YOLO-v3(You Only Look Once) 深度学习模型对行人进行检测,再使用Deep Sort(Simple Online And Real-time Tracking With A Deep Association Metric)实时多目标跟踪算法跟踪检测出的行人目标,最后再使用过线计数法对行人完成人数统计。
1 方法
行人人数统计的过程主要包括行人检测、行人跟踪和行人计数3个步骤。首先,通过优化过的YOLO-v3对视频中的每一帧进行行人检测;然后,引入Deep Sort算法对多个行人进行跟踪,通过跟踪序号获取每个行人的运动轨迹;最后,比较运动轨迹与计数线的位置关系,完成行人计数,实现人数自动统计。具体算法流程如图1所示。
1.1 行人检测
为了取得良好的行人跟踪效果,就要准确、快速的检测出行人。在目前的目标检测方法中,使用深度学习的检测方法在准确度与速度表现上尤为突出。YOLO-v3[6]是一种实时端到端的实时深度学习目标检测算法,它参照了深度残次网络的结构后,在Darknet-19的基础上添加了残差单元,并且在卷积层后面增加了批量归一化来代替随机去除数据的操作来防止过拟合,在加深了网络深度的同时,又避免了梯度消失、梯度爆炸、过拟合的问题。将19个卷积层的Darknet-19加深至53个卷积层的Darknet-53,其检测速度依然满足实时的要求。YOLO-v3将Darknet-53作为特征提取的骨干网络,更多的卷積层提供多尺度检测的基础,在参考FPN结构后,在3个尺度上进行预测,每个尺度预测有3个不同的先验框,这使得YOLO-v3无论在大目标还是小目标的检测上都有一个更好的表现,在行人检测方面有着不错的表现。为了更好的检测行人,提出使用k-means聚类算法以及对实际场景下的行人图像进行训练的迁移学习方法优化YOLO-v3。
1.1.1 K-means聚类
K-means算法是一种高效、快速的聚类算法,主要用于大样本数据集。它采用距离作为相似性的评价指标,两个样本之间的距离越小,则相似度越高。该算法认为簇是由距离靠近的对象组成的,最终结果是得到k个独立的簇。 YOLO-v3使用类似于Faster-RCNN[8]预先设置锚框的方法,设定了9个不同尺寸的先验框,先验框的尺寸设置会影响深度学习模型对目标检测的精度。为了更好的检测行人这一类别,使用K-means聚类算法对样本中标注的目标矩型框进行聚类,获取针对行人检测目标的9个先验框的参数。
本次实验取5組聚类结果,使用准确率最高的一组作为最终的先验框尺度,其结果为(21,41),(36,77),(60,121),(77,206),(112,150),(126,277),(180,217),(213,319),(332,351)。
1.1.2 训练
在使用YOLO-v3在PascalVOC数据集上的预训练模型对视频行人检测时发现,对于清晰行人的置信度得分普遍高于对模糊行人与使用交通工具的行人的置信度,如图2所示。这导致了跟踪性能不
稳定,甚至出现跟丢现象。为了更好的检测行人,使用了2900张COCO数据集中行人的图像以及2900张从视频拍摄中提取出的jpg格式行人图像数据集进行训练,其中10%的图像作为测试集。
根据实验硬件设备,将训练批次大小设置为32,学习率为0.001,输入图像尺寸为416×416。在训练时,一共迭代训练100次,在原来的PascalVOC预训练模型内已有person类别,为了使模型有更鲁棒的表现,在前70次迭代训练时,冻结其余卷积层,只训练最后3层网络。在最后30次迭代训练时,解冻所有卷积层,将批次大小调整为4,其余参数不变,进行训练,模型训练至11000次后收敛,总训练次数为18100次。
经测试,模糊图像的置信度都有不等程度的提升,其中轻微模糊的图像提升较大,使用交通工具通行的行人置信度有明显的上升。根据模型实际表现,将检测置信度阈值设置为0.4。
1.2 行人跟踪方法
此外,为了解决目标长时间被遮挡的情况导致的卡尔曼滤波梯度弥散问题,使用级联匹配策略,很好的改善了遮挡后跟踪序号跳变的问题。
通过Deep Sort跟踪算法对YOLO-v3检测出的行人进行跟踪,能取得较好的效果,而且额外增加的计算成本低,对运行速度上的影响小。
1.3 行人计数方法
使用计数线法完成行人计数能得在不同场景下取得稳定的计数表现。通过判断同一跟踪序号的行人,其连续2帧的跟踪框质心的连线是否与预设的计数线相交来进行行人数量统计。为了避免同一行人多次触线的情况,设计每一个序号的行人只记录第一次触线。使用此方法也可以降低行人跟踪序号跳变对于计数的影响。
使用如下方法判断两线段是否相交:首先,设有点A、B、C、D,当直线AB的斜率小于直线AC的斜率时,这三个为逆时针排列;其次,如图4所示,如果线段AB与线段CD相交,那么点A与B被线段CD分割,同时也有点C和D被线段AB分割,那么可以得到点A、C、D逆时针排列,点B、C、D排列顺序与之相反,同理点A、B、C和A、B、D按排列顺序也相反,通过此算法判断两线段是否相交。此方法可以在不同场景下,根据实际情况,灵活调整计数线的位置。
2 实验结果及分析
2.1 实验设备与数据
该行人计数方法在YOLO-v3的行人检测基础上,使用deep sort算法跟踪行人,只少量增加计算时间,实现了了实时行人计数的功能。并且在多个640*480的视频场景下保持了算法的准确性与实时性,而且该方法在行人计数上的表现较为鲁棒。
该算法正确计数情况如图5所示,(a)和(b)分别是从检测视频中抽取出计数前与计数后的2帧,图中蓝色框为行人检测框,白色框为行人跟踪框,绿色的数字表示跟踪序号,计数线竖直于图像的中央,蓝色文字“number of people”是当前的计数情况。如图5(a)所示,当行人白色跟踪框质心没有通过计数线的时候,只对行人检测与跟踪,当行人跟踪框的质心与上一帧质心的连线与计数线相交后计数。
由于遮挡的情况经常发生,行人的跟踪序号也会随之发生改变,在图6中实际通过3人,但是行人的跟踪序号已经是13了,由于使用的是计数线法,因此,行人在非计数区域产生的跟踪序号跳变问题对行人计数不产生影响,计数依然准确。
当行人出现严重动态模糊或遮挡时,会降低行人检测的置信度,图7中行人的头盔与雨衣遮挡了行人,导致该型人检测的置信度较低仅为0.32,同时该行人骑电瓶车的速度较快,产生了较为严重的动态模糊,这使得在接下来的帧数中行人低于阈值而无法检测的问题,导致在计数线区域跟丢该行人,当再次检测到行人时,行人已经通过了计数线,出现无法计数的情况。
在图8中,105号跟踪框中,两行人距离非常近,有较为严重的重叠现象,在YOLO-v3检测的时候只检测出了一个人的情况,这导致了跟踪序号只有记录1人,出现漏计的现象。
3 结论
为了解决行人人数统计问题,提出了一种通过深度学习的方法实现视频场景下的实时行人计数方法。通过优化后的YOLO-v3对行人进行检测,再使用Deep Sort在线跟踪算法跟踪行人目标,最后使用过线计数的方法统计行人人数。实验结果表明,该方法在检测质量与检测速度上都有良好的表现,能够准确的检测出行人数量,只有在少部分情况下出现误计数。该方法可用在多种场景下对行人通过数量进行统计,获取人流量数据,并辅助管理人员做出合理决策。
参考文献
[1]Chan A B , Liang Z S , Vasconcelos N . Privacy preserving crowd monitoring: Counting people without people models or tracking[C]// 2008 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2008.
[2]张万鹏, 李天平, 万洪林. 基于三帧差分法与质心匹配的行人自动计数算法[J]. 山东师范大学学报(自然科学版), 2017, 32(04): 72-77.
[3]A. Bewley, Z. Ge, L. Ott, F. Ramos and B. Upcroft, "Simple online and realtime tracking, " 2016 IEEE International Conference on Image Processing (ICIP), Phoenix, AZ, 2016, pp. 3464-3468. doi: 10. 1109/ICIP. 2016. 7533003.
[4]张雅俊, 高陈强, 李佩, 等. 基于卷积神经网络的人流量统计. 重庆邮电大学学报(自然科学版), 2017, 29(2): 265-271.
[5]焦会英. 基于卷积神经网络的稀疏目标场景下智能视频人数统计方法[J]. 电子技术与软件工程, 2018(21): 62-64+ 191.
[6]Redmon J, Farhadi A. YOLOv3: An Incremental Improvement[J]. 2018.
[7]N. Wojke, A. Bewley and D. Paulus, "Simple online and realtime tracking with a deep association metric, "2017 IEEE International Conference on Image Processing (ICIP), Beijing, 2017, pp. 3645-3649.
[8]S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In NIPS, 2015.
关键词: 深度学习;人数统计;多目标跟踪
【Abstract】: In order to realize real-time and accurate population statistics of pedestrians in video, a counting method based on deep learning is proposed.Firstly, the priori box of the detection model is optimized by k-means clustering method.Secondly, the deep learning model YOLO-v3 is trained by using pedestrian images obtained in real scenes.Then Deep sort online multi-object tracking algorithm is used to track multiple pedestrians and obtain their trajectories respectively.Finally, the number of pedestrians is determined by counting line method.The counting accuracy of this method is up to 89.2%, and the detection time of each frame is up to 65ms. In addition, it has strong scene adaptability and good robustness, which can meet the requirements of real-time pedestrian counting.
【Key words】: Deep learning; People counting; Multi-target tracking
0 引言
随着城市化进程加快,各个行业对行人人数统计的需求与日俱增。近年来,随着深度学习在图像处理方面的应用,大大推进了视频监控技术的发展,利用这一技术,能够准确分析视频内容,获取量化数据,使管理者能做出更加合理与高效的决策。
现有的基于视频的人数统计系统所采用的算法可以分为3类:基于高斯过程回归的行人计数方法[1],这类方法复杂度低,但是需要手动调整回归参数,不适用于多种不同的场景,其鲁棒性较差;基于帧差法的计数方法[2],该方法在单一且人群稀疏的场
景下计数效果较好,但是要求视频拍摄背景稳定,对硬件设别要求高,建模复杂,不适用于多种环境下的计数;基于目标检测跟踪的方法[3],这类方法场景适应性强,鲁棒性高,但是在人群密集伴随着严重遮挡的情况下检测效果较弱,其行人计数准确度依赖于目标检测与跟踪算法的性能。近年来,也出现了一些通过深度学习对行人计数的方法[4,5],此类方法在传统的检测思路的基础上,提高了在各个步骤上的性能,提升了计数的准确性。
在基于目标检测的跟踪方法的基础上,提出使用YOLO-v3(You Only Look Once) 深度学习模型对行人进行检测,再使用Deep Sort(Simple Online And Real-time Tracking With A Deep Association Metric)实时多目标跟踪算法跟踪检测出的行人目标,最后再使用过线计数法对行人完成人数统计。
1 方法
行人人数统计的过程主要包括行人检测、行人跟踪和行人计数3个步骤。首先,通过优化过的YOLO-v3对视频中的每一帧进行行人检测;然后,引入Deep Sort算法对多个行人进行跟踪,通过跟踪序号获取每个行人的运动轨迹;最后,比较运动轨迹与计数线的位置关系,完成行人计数,实现人数自动统计。具体算法流程如图1所示。
1.1 行人检测
为了取得良好的行人跟踪效果,就要准确、快速的检测出行人。在目前的目标检测方法中,使用深度学习的检测方法在准确度与速度表现上尤为突出。YOLO-v3[6]是一种实时端到端的实时深度学习目标检测算法,它参照了深度残次网络的结构后,在Darknet-19的基础上添加了残差单元,并且在卷积层后面增加了批量归一化来代替随机去除数据的操作来防止过拟合,在加深了网络深度的同时,又避免了梯度消失、梯度爆炸、过拟合的问题。将19个卷积层的Darknet-19加深至53个卷积层的Darknet-53,其检测速度依然满足实时的要求。YOLO-v3将Darknet-53作为特征提取的骨干网络,更多的卷積层提供多尺度检测的基础,在参考FPN结构后,在3个尺度上进行预测,每个尺度预测有3个不同的先验框,这使得YOLO-v3无论在大目标还是小目标的检测上都有一个更好的表现,在行人检测方面有着不错的表现。为了更好的检测行人,提出使用k-means聚类算法以及对实际场景下的行人图像进行训练的迁移学习方法优化YOLO-v3。
1.1.1 K-means聚类
K-means算法是一种高效、快速的聚类算法,主要用于大样本数据集。它采用距离作为相似性的评价指标,两个样本之间的距离越小,则相似度越高。该算法认为簇是由距离靠近的对象组成的,最终结果是得到k个独立的簇。 YOLO-v3使用类似于Faster-RCNN[8]预先设置锚框的方法,设定了9个不同尺寸的先验框,先验框的尺寸设置会影响深度学习模型对目标检测的精度。为了更好的检测行人这一类别,使用K-means聚类算法对样本中标注的目标矩型框进行聚类,获取针对行人检测目标的9个先验框的参数。
本次实验取5組聚类结果,使用准确率最高的一组作为最终的先验框尺度,其结果为(21,41),(36,77),(60,121),(77,206),(112,150),(126,277),(180,217),(213,319),(332,351)。
1.1.2 训练
在使用YOLO-v3在PascalVOC数据集上的预训练模型对视频行人检测时发现,对于清晰行人的置信度得分普遍高于对模糊行人与使用交通工具的行人的置信度,如图2所示。这导致了跟踪性能不
稳定,甚至出现跟丢现象。为了更好的检测行人,使用了2900张COCO数据集中行人的图像以及2900张从视频拍摄中提取出的jpg格式行人图像数据集进行训练,其中10%的图像作为测试集。
根据实验硬件设备,将训练批次大小设置为32,学习率为0.001,输入图像尺寸为416×416。在训练时,一共迭代训练100次,在原来的PascalVOC预训练模型内已有person类别,为了使模型有更鲁棒的表现,在前70次迭代训练时,冻结其余卷积层,只训练最后3层网络。在最后30次迭代训练时,解冻所有卷积层,将批次大小调整为4,其余参数不变,进行训练,模型训练至11000次后收敛,总训练次数为18100次。
经测试,模糊图像的置信度都有不等程度的提升,其中轻微模糊的图像提升较大,使用交通工具通行的行人置信度有明显的上升。根据模型实际表现,将检测置信度阈值设置为0.4。
1.2 行人跟踪方法
此外,为了解决目标长时间被遮挡的情况导致的卡尔曼滤波梯度弥散问题,使用级联匹配策略,很好的改善了遮挡后跟踪序号跳变的问题。
通过Deep Sort跟踪算法对YOLO-v3检测出的行人进行跟踪,能取得较好的效果,而且额外增加的计算成本低,对运行速度上的影响小。
1.3 行人计数方法
使用计数线法完成行人计数能得在不同场景下取得稳定的计数表现。通过判断同一跟踪序号的行人,其连续2帧的跟踪框质心的连线是否与预设的计数线相交来进行行人数量统计。为了避免同一行人多次触线的情况,设计每一个序号的行人只记录第一次触线。使用此方法也可以降低行人跟踪序号跳变对于计数的影响。
使用如下方法判断两线段是否相交:首先,设有点A、B、C、D,当直线AB的斜率小于直线AC的斜率时,这三个为逆时针排列;其次,如图4所示,如果线段AB与线段CD相交,那么点A与B被线段CD分割,同时也有点C和D被线段AB分割,那么可以得到点A、C、D逆时针排列,点B、C、D排列顺序与之相反,同理点A、B、C和A、B、D按排列顺序也相反,通过此算法判断两线段是否相交。此方法可以在不同场景下,根据实际情况,灵活调整计数线的位置。
2 实验结果及分析
2.1 实验设备与数据
该行人计数方法在YOLO-v3的行人检测基础上,使用deep sort算法跟踪行人,只少量增加计算时间,实现了了实时行人计数的功能。并且在多个640*480的视频场景下保持了算法的准确性与实时性,而且该方法在行人计数上的表现较为鲁棒。
该算法正确计数情况如图5所示,(a)和(b)分别是从检测视频中抽取出计数前与计数后的2帧,图中蓝色框为行人检测框,白色框为行人跟踪框,绿色的数字表示跟踪序号,计数线竖直于图像的中央,蓝色文字“number of people”是当前的计数情况。如图5(a)所示,当行人白色跟踪框质心没有通过计数线的时候,只对行人检测与跟踪,当行人跟踪框的质心与上一帧质心的连线与计数线相交后计数。
由于遮挡的情况经常发生,行人的跟踪序号也会随之发生改变,在图6中实际通过3人,但是行人的跟踪序号已经是13了,由于使用的是计数线法,因此,行人在非计数区域产生的跟踪序号跳变问题对行人计数不产生影响,计数依然准确。
当行人出现严重动态模糊或遮挡时,会降低行人检测的置信度,图7中行人的头盔与雨衣遮挡了行人,导致该型人检测的置信度较低仅为0.32,同时该行人骑电瓶车的速度较快,产生了较为严重的动态模糊,这使得在接下来的帧数中行人低于阈值而无法检测的问题,导致在计数线区域跟丢该行人,当再次检测到行人时,行人已经通过了计数线,出现无法计数的情况。
在图8中,105号跟踪框中,两行人距离非常近,有较为严重的重叠现象,在YOLO-v3检测的时候只检测出了一个人的情况,这导致了跟踪序号只有记录1人,出现漏计的现象。
3 结论
为了解决行人人数统计问题,提出了一种通过深度学习的方法实现视频场景下的实时行人计数方法。通过优化后的YOLO-v3对行人进行检测,再使用Deep Sort在线跟踪算法跟踪行人目标,最后使用过线计数的方法统计行人人数。实验结果表明,该方法在检测质量与检测速度上都有良好的表现,能够准确的检测出行人数量,只有在少部分情况下出现误计数。该方法可用在多种场景下对行人通过数量进行统计,获取人流量数据,并辅助管理人员做出合理决策。
参考文献
[1]Chan A B , Liang Z S , Vasconcelos N . Privacy preserving crowd monitoring: Counting people without people models or tracking[C]// 2008 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2008.
[2]张万鹏, 李天平, 万洪林. 基于三帧差分法与质心匹配的行人自动计数算法[J]. 山东师范大学学报(自然科学版), 2017, 32(04): 72-77.
[3]A. Bewley, Z. Ge, L. Ott, F. Ramos and B. Upcroft, "Simple online and realtime tracking, " 2016 IEEE International Conference on Image Processing (ICIP), Phoenix, AZ, 2016, pp. 3464-3468. doi: 10. 1109/ICIP. 2016. 7533003.
[4]张雅俊, 高陈强, 李佩, 等. 基于卷积神经网络的人流量统计. 重庆邮电大学学报(自然科学版), 2017, 29(2): 265-271.
[5]焦会英. 基于卷积神经网络的稀疏目标场景下智能视频人数统计方法[J]. 电子技术与软件工程, 2018(21): 62-64+ 191.
[6]Redmon J, Farhadi A. YOLOv3: An Incremental Improvement[J]. 2018.
[7]N. Wojke, A. Bewley and D. Paulus, "Simple online and realtime tracking with a deep association metric, "2017 IEEE International Conference on Image Processing (ICIP), Beijing, 2017, pp. 3645-3649.
[8]S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In NIPS, 2015.