CN115841649A - 一种用于城市复杂场景的多尺度人数统计方法 - Google Patents
一种用于城市复杂场景的多尺度人数统计方法 Download PDFInfo
- Publication number
- CN115841649A CN115841649A CN202211545070.6A CN202211545070A CN115841649A CN 115841649 A CN115841649 A CN 115841649A CN 202211545070 A CN202211545070 A CN 202211545070A CN 115841649 A CN115841649 A CN 115841649A
- Authority
- CN
- China
- Prior art keywords
- pedestrian
- frame
- detection
- tracks
- detected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种用于城市复杂场景的多尺度人数统计方法,属于数字图像处理技术领域。本发明旨在基于YOLOv5模型与Deepsort算法对行人实现定位与跟踪,继而实现对人流量的统计以及行人间距风险程度的预警。首先使用YOLOv5模型对视频帧进行检测,然后使用Deepsort算法对目标进行跟踪,根据目标与两条检测线的关系计算不同方向人员流动情况,最后根据目标之间的距离判断风险程度。该方法具有计算量小、抗噪能力强和辨别力高等特点。
Description
技术领域
本发明涉及一种用于城市复杂场景的多尺度人数统计方法,属于数字图像处理技术领域。
背景技术
近年来,行人识别逐渐成为目标检测的热点,监控视频也慢慢成为行人检测的主要处理对象之一。随着各行各业的务工人员慢慢涌向大城市,城市早高峰和晚高峰对地铁,公交站的人群梳理要求越来越高。火灾地震发生时要求对人群尽快的疏散,人数统计在现今的情况下,有很大的应用场景。对视频进行不同方向人流量的统计可以方便相关防疫部门对监控中的人流量实现实时的监控。而通过对人流的实时的监控,可以达到对拥堵场所进行一定的限流,减小人流量聚集的发生以便减小疫情传播的概率。
作为典型的目标检测问题之一,城市复杂场景的多尺度人数统计主要涉及如下几个问题:1)根据输入的视频序列,对视频帧中的行人进行目标识别与目标定位;2)根据相邻两帧之间检测目标之间的距离对目标进行编号实现对目标的追踪;3)对一条道路上两个方向的行人人数进行统计;(4)计算各行人之间的距离,并设置阈值,判断行人之间的距离是否为高风险。
传统的目标检测主要基于滑动窗口,采用不同大小和比例的窗口在整张图片上以一定的步长进行滑动,然后对每个窗口中的局部信息进行特征提取,主要包括Haar特征、HOG特征。在行人检测领域主要采用HOG特征提取的方法,HOG的核心思想是所检测的局部物体外形能够被光强梯度或边缘方向的分布所描述。通过将整幅图像分割成小的连接区域,称为cells,每个cell生成一个方向梯度直方图或者cell中像素的边缘方向,这些直方图的组合可表示出所检测目标的目标的HOG特征。在特征提取后,需要对候选区域提取出的特征进行分类判定,行人检测属于单类别目标检测,只需要区分当前窗口所包含的对象是背景还是行人即可。在经过对复选框判定后就会得到一系列的可能为检测目标的候选框,对这些候选框使用NMS进行合并后得到目标检测的结果。但是这种基于手工提取特征的目标检测算法识别效果不够好,准确率不高,同时存在着计算量大、运算速度较慢的缺点,还有可能产生多个正确识别的结果。
因此,随着2012年卷积神经网络(Convolutional Neural Networks,CNNs)的兴起将目标检测领域推向了新的台阶。Ross Girshick于2014年提出RCNN,RCNN首先通过选择性搜索算法Selective Search从一组对象候选框中选择可能出现的对象框,然后将这些选择出来的对象框中的图像resize到某一固定尺寸的图像,并输入到CNN模型(经过在ImageNet数据集上训练过的CNN模型,如AlexNet)提取特征,最后将提取出的特征送入到分类器来预测该对象框中的图像是否存在待检测目标,并进一步预测该检测目标具体属于哪一类。这种方法使用深度卷积神经网络自动提取特征,同时检测精度取得了质的飞跃,RCNN算法在VOC-07数据集上取得了非常显著的效果,平均精度由33.7%(DPM-V5,传统检测的SOTA算法)提升到58.5%。但存在重叠框(一张图片大约2000多个候选框)特征的冗余计算使得整个网络的检测速度变得很慢(使用GPU的情况下检测一张图片大约需要14s)的问题。
2015年Ross提出了Fast-RCNN之后,在Fast-RCNN的基础上又提出了改进的FasterRCNN,在算法的性能之上又得到了新的成果。在2016年,WeiLiu提出了新的目标检测框架SSD(Single Shot MultiBox Detector),不仅准确度上升了,速度也相应的提高了。之后由Joseph Redmon,Santosh Divvala,Ross Girshick等人共同提出了YOLO(You Only LookOnce)目标检测网络,它是一种单阶段的目标检测网络,其运行速度相当快,并且很好的克服了RCNN网络的缺陷,YOLO每秒能够处理大约四十五帧图像,并且可以很好的地适应实际运行的需要。因为YOLO网络的高速率和准确度,所以从YOLOv1,YOLOv2,YOLOv3,YOLOv4到YOLOv5都被广泛的使用,在目标检测领域有着深远的影响力。
而目标跟踪领域最为经典的是SORT(Simple Online Realtime Tracking)算法。该算法以卡尔曼滤波与匈牙利匹配为核心,卡尔曼滤波分为预测和更新两个过程。预测过程:当一个行人经过移动后,且其初始定位和移动过程都是高斯分布时,则最终估计位置分布会更分散,即更不准确;更新过程:当一个行人经过传感器(也就是Detections)观测定位,且其初始定位和观测都是高斯分布时,则观测后的位置分布会更集中,即更准确。但是由于得到的是一堆Track和Detection,因此只有在用匈牙利算法进行分配后,才能把Track按照对应的Detection结果更新。匈牙利算法解决的是分配成本最小问题。但是SORT存在ID-switch很高,即同一个人的ID会变化的问题。这主要是由于一帧不匹配删除机制及IOU成本矩阵的问题。
YOLOv5大量整合了计算机视觉领域的State-of-the-art,从而显著改善了YOLO对目标的检测性能。相比于YOLOv4,YOLOv5在性能上稍微逊色,但其灵活性与速度上远强于YOLOv4,而且在模型的快速部署上也具有极强优势。
Deepsort算法相比SORT算法加入了外观信息,借用ReID领域模型来提取外观特征,同时匹配机制从原来的基于IOU成本矩阵的匹配变成了级联匹配与IOU匹配相结合的方式,显著减少了ID-switch的次数,极大提高了目标跟踪的准确率。
发明内容
本发明提出了一种用于城市复杂场景的多尺度人数统计方法,旨在基于YOLOv5模型对行人进行检测,然后使用Deepsort算法对行人进行跟踪编号,根据行人与两条检测线的关系来计算两个方向上的人流数量,计算任意两人之间的距离判断风险程度,以解决现有技术中存在的问题。
一种用于城市复杂场景的多尺度人数统计方法,首先使用YOLOv5模型检测视频帧中的行人目标,然后使用Deepsort算法对检测到的行人目标进行跟踪与编号,根据检测到的行人目标与检测线的关系计算不同方向人员流动情况,最后根据检测到的行人目标之间的距离判断风险程度。
进一步的,多尺度人数统计步骤如下:
S100、扫描视频的每帧,对每帧图像进行预处理后输入到YOLOv5网络中进行检测;
S200、根据S100检测出的结果,使用Deepsort算法对检测到的行人目标进行追踪并分配ID;
S300、根据不同的行人目标通过两条检测线的先后顺序进行触线计数,统计双向流动人数;
S400、计算不同的行人目标对象质心之间的距离,根据距离判断风险程度。
进一步的,在S100中,具体包括以下步骤:
S110、对每一帧画面进行预处理,然后裁剪为608×608大小的图片,预处理包括Mosaic数据增强;
S120、将图片输入Backbone与Neck网络中计算特征图;
S130、将特征图输入三个不同的Head中,进行多尺度预测,输出目标检测结果。
进一步的,在S100中,具体的,扫描视频的每一帧,使用Mosaic数据增强方式采用四张图像作为拼接,并且按照随机裁剪,随机缩放和随机分布三个方式拼接后,使用自适应的图片缩放方案将输入图像裁剪为608×608大小后输入到YOLOv5的基准网络中,然后利用slice和contact技术来对输入尺寸大小为608×608×3的图像进行切割,对图片进行切割的具体操作方法为:在每一张输入的图像中,隔一个像素拿一次数据,拿到四张不仅互补相似而且没有信息遗漏的图像,并能够将信息都汇集到通道空间;裁剪拼接起来的图像具有十二个通道,输出尺寸大小为304×304×12的特征映射,经过YOLOv5的Backbone与Neck网络获得目标特征,经过3个Head输出端输出目标检测结果。
进一步的,在S200中,具体包括以下步骤:
S210、将目标检测框中的特征提取出来,提取的特征包括表观特征和运动特征;
S220、为新检测的视频帧创建其对应的Tracks,并用一开始检测到的运动变量去作为卡尔曼滤波的初始变量,再通过卡尔曼滤波去预测新的预测框;
S230、用IOU匹配去计算目标检测的框与通过卡尔曼滤波预测的框是否能对应的上,再根据IOU匹配的结果通过计算公式去计算对应的代价矩阵;
S240、输入代价矩阵,通过匈牙利算法,得到最后匹配的结果;
S250、反复循环执行S210至S240,直到Tracks出现确认态或者视频帧执行结束;
S260、通过卡尔曼滤波去预测现在状态是确认态的Tracks对应的框,同时也通过卡尔曼滤波去预测现在状态是不确认态的Tracks对应的框。
进一步的,在S200中,具体的:
首先为新检测的视频帧创建其对应的Tracks,并用一开始检测到的运动变量去做为卡尔曼滤波的初始变量,再通过卡尔曼滤波去预测新的预测框,然后用IOU匹配去看目标检测的框与通过卡尔曼滤波预测的框是否能对应的上,再根据IOU匹配的结果通过计算公式去计算对应的代价矩阵,对代价矩阵使用匈牙利算法,得到最后匹配的结果,其中马氏距离马氏距离表示第j个detection和第i条轨迹之间的运动匹配度,Si表示由卡尔曼计算的协方差矩阵,计算公式如下所示:
外观信息通过最小余弦距离计算,第j个detection和第i条轨迹之间的最小余弦距离计算公式如下所示:
其中rj表示特征描述子,|rj|=1存放了第i个轨迹的100个特征描述子,
匹配的结果有三种:第一种,当Tracks为不确认态时失配,直接将Tracks删除,当Tracks为确认态发生失配时,默认是需要发生30次失配,这时才能将Tracks删除;第二种,当Detections发生失配的情况时,需要为失配的Detections产生一个新的对应的Tracks;第三种,当检测框和预测框发生配对时,表示成功追踪到了检测的物体,视频帧对应上了,这时需要通过卡尔曼滤波将该视频帧对应的Detections更新为其对应的Tracks变量,反复循环执行上面的步骤,直到Tracks出现确认态或者视频帧执行结束,通过卡尔曼滤波去预测现在状态是确认态的Tracks对应的框,同时也通过卡尔曼滤波去预测现在状态是不确认态的Tracks对应的框,将现在状态是确认态的Tracks的框和Detections进行级联匹配,级联匹配公式如下所示:
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
其中d(1)(i,j)为马氏距离,d(2)(i,j)为最小余弦距离,级联匹配的结果有三种:第一种,Tracks和Detections匹配,这时对其对应的Tracks需要通过卡尔曼滤波进行更新相应的信息,第二种,当Tracks和Detections失配时,需要将之前检测的不确认状态的Tracks和检测的失配的Tracks一起和没有匹配的Detections进行IOU匹配,再根据IOU匹配的结果通过计算公式去计算对应的代价矩阵。
进一步的,S300具体包括以下步骤:
S310、设置两条触线计数的检测线A、B,默认为图像的中心位置;
S320、根据Deepsort算法对每个行人的追踪结果,判断行人与两条检测线A、B的关系,得到满足行人跨线的五种情况中的一种,实现对两个方向上人流量的计数。
进一步的,在S300中,具体的:为了对检测框进行位置判断,将检测框上边缘的中心当作检测框的位置,即为行人的位置,用来触线计数的线框设计了两条,这两条线框的位置默认设置在检测视频的中心位置,这两条线框的位置和长度在检测视频中的位置是由人来自主定义的,用于区分统计不同方向的人流量,假设两条线为A线和B线,行人跨线共五种情况,第一种是跨越A线再跨越B线的情况,第二种是一次跨越两种边线,第三种是跨一条线后又返回,第四种是只跨过一条边线不跨过另一条线,第五种是行走的路线不经过边线,用一个带ID的点和他的坐标来代替行人,行人在行走时,他的ID不会改变,改变的只有坐标,实现触线计数的流程为:判断是否撞线时,先是根据撞线的y方向的偏移方向来计算出撞线的检测点的坐标,如果该检测点的坐标在A线框之内,再判断B检测框里有没有该检测框的ID,如果B检测框有,则判断是上升方向,同时上升的数目加一,输出当时的行人统计量,并删掉在B线框里面该点的记录,如果B检测框里没有,则不能判断,如果A线框里面没有该检测点,则在A检测框里添加上该点的记录,如果该检测点的坐标在B线框之内,则先判断B线框里有没有该检测点的记录,如果没有该点的记录,则在B线框里加上该检测点的记录,如果在B线框里有该检测点的记录,则判断在A线框里有没有该检测点的记录,如果A检测框里有该点的记录,则判断行走方向为向下,同时向下的行人统计量加一,并输出当时的行人统计量,并删除该检测点在A检测框里的记录,如果A检测框里没有该点的记录,则无法判断,如果在视频结束后,都没有找到匹配的ID,则被视为是无用的ID,会将该ID在A检测框和B检测框中的记录删掉。
进一步的,S400具体包括以下步骤:
S410、根据YOLOv5检测出的所有行人目标,计算检测到的所有行人的质心;
S420、根据计算出的行人质心,计算质心之间的欧几里得距离;
S430、循环判断任意两个行人之间的欧几里得距离是否小于规定的阈值,若小于则列为高风险区域。
进一步的,在S400中,具体的:通过YOLOv5检测视频中的所有行人,同时将目标框的中心来代替检测框,然后通过Deepsort算法实时跟踪行人,然后再计算所有检测到的行人之间的距离,根据计算出来的距离来判断行人之间的距离为低风险还是高风险,其中,计算机判断社交距离的方式是用检测到的两个行人的质心来计算距离的,检测到的行人的质心就是指检测到的目标框的中心,而行人质心的距离就是指目标框中心之间相隔的像素值,然后判断行人之间的距离是否小于N个像素,如果小于则为风险区。
本发明的有益效果:
本发明所提出的用于城市复杂场景的多尺度人数统计方法具有以下优点,有效的克服了上文中所提到的诸多不足:
(1)对于行人的检测准确率高;
(2)计算效率高,处理速度快;
(3)特征抗干扰能力强,对于光照、颜色变化不敏感。
附图说明
图1为本发明所述Deepsort算法流程示意图;
图2为本发明所述五种行人跨线情况示意图;
图3为本发明所述行人距离算法流程示意图;
图4为本发明人流量计数示意图;
图5为本发明行人距离风险级别示意图。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出了一种用于城市复杂场景的多尺度人数统计方法,旨在基于YOLOv5模型对行人进行检测,然后使用Deepsort算法对行人进行跟踪编号,基于行人与两条检测线的关系来计算两个方向上的人流数量,并计算任意两人之间的距离来判断风险程度进行预警。
结合图1至图3对本发明进行详细说明,
用于城市复杂场景的多尺度人数统计方法,首先使用YOLOv5模型检测视频帧中的行人目标,然后使用Deepsort算法对目标进行跟踪与编号,根据目标与检测线的关系计算不同方向人员流动情况,最后根据目标之间的距离判断风险程度。
城市复杂场景下的多尺度人数统计方法的具体步骤如下:
S100、扫描视频的每帧,对每帧图像进行预处理后输入到YOLOv5网络中进行检测;
S200、根据步骤一检测出的结果,使用Deepsort算法对目标进行追踪并分配ID;
S300、根据不同目标通过两条检测线的先后顺序进行触线计数,统计双向流动人数;
S400、计算不同目标对象质心之间的距离,根据距离判断风险程度。
S100中所述行人检测的具体步骤如下:
S110、对每一帧进行Mosaic数据增强等预处理,然后裁剪为608×608大小的图片。其中Mosaic数据增强利用了四张图片,对四张图片进行拼接,每一张图片都有其对应的框,将四张图片拼接之后就获得一张新的图片,同时也获得这张图片对应的框,然后我们将这样一张新的图片传入到神经网络当中去学习,相当于一下子传入四张图片进行学习了。通过使用Mosaic数据增强方式,在训练过程中不会出现非信息像素,从而能够提高训练效率,保留了regional dropout的优势,能够关注目标的non-discriminative parts,进一步增强模型的定位能力,不会有图像混合后不自然的情形,能够提升模型分类的表现,同时保证训练和推理代价保持不变。
S120、将图片输入Backbone与Neck网络中计算特征图,其中Backbone主要由CBL、Bottleneck、CSP/C3以及SPP/SPPF等组成,BottleNeck结构默认是先1×1卷积缩小channel为原来的1/2,再通过3×3卷积提取特征。如果输入通道c1和3×3卷积输出通道c2相等,则进行残差输出。SPP模块将输入通道减半,然后分别做kernel size为5,9,13的maxpooling,最后将结果拼接,包含原始输入的四组结果合并后通道应该是原来的2倍。第三步、将特征图输入三个不同的Head中,进行多尺度预测,输出目标检测结果。
S130、将特征图输入三个不同的Head中,进行多尺度预测,输出目标检测结果。其中三个Head结构分别接受128×80×80、256×40×40、512×20×20三个不同尺度的特征图。其中损失函数采用的是CIOU_Loss,CIOU_Loss的公式如下:
其中C为预测框和真实框的最小外接矩阵,Distance_2为预测框的中心点和真实框的中心点的欧氏距离,Distance_C为C的对角线距离,v为长宽比影响因子。v的计算方式如下:
其中w为宽,h为高,gt为真实框,p为预测框。
S200中所述使用Deepsort算法对行人进行追踪如图1所示,具体步骤如下:
S210、将目标的检测框中的特征提取出来,提取的特征包括表观特征和运动特征;
S220、为新检测的视频帧创建其对应的Tracks,并用一开始检测到的运动变量去做为卡尔曼滤波的初始变量,再通过卡尔曼滤波去预测新的预测框,其中卡尔曼滤波算法是Deepsort算法的实现核心。主要完成了下列工作:第一,预测Tracks在下一时刻的位置,将第一个视频帧检测到的运动变量作为卡尔曼滤波的初始化运动变量;第二,如果匹配成功了,就通过卡尔曼滤波将该视频帧对应的Detections更新为其对应的Tracks变量。根据之前检测的Tracks状态来预测,当前时刻的轨迹公式为:
x1=F(x)
其中F为状态转移矩阵,x为Tracks在(t-1)时刻的状态向量,x1为预期的t时刻的状态向量。状态向量有八个参数,表示为x={cx,cy,r,h,cx',cy',r',h'}。其中cx代表目标中心点的横坐标,cy代表目标中心点的纵坐标位置,r代表目标框的长宽比,h则代表目标框的高,cx',cy',r',h'分别对应cx,cy,r,h的导数,物理意义表示为目标物体的速度。
S230、用IOU匹配去看目标检测的框与通过卡尔曼滤波预测的框是否能对应的上,再根据IOU匹配的结果通过计算公式去计算对应的代价矩阵,其中马氏距离表示第j个detection和第i条轨迹之间的运动匹配度,Si表示由卡尔曼计算的协方差矩阵,计算公式如下所示:
外观信息通过最小余弦距离计算,第j个detection和第i条轨迹之间的最小余弦距离计算公式如下所示:
其中rj表示特征描述子,|rj|=1存放了第i个轨迹的100个特征描述子。
S240、输入S230中得到的代价矩阵,通过匈牙利算法,得到最后匹配的结果。
S250、反复循环执行上面的步骤,直到Tracks出现确认态(Confirmed)或者视频帧执行结束。
S260、通过卡尔曼滤波去预测现在状态是确认态(Confirmed)的Tracks对应的框,同时也通过卡尔曼滤波去预测现在状态是不确认态(Unconfirmed)的Tracks对应的框。
S300中所述统计人流量的具体步骤如下:
S310、设置两条触线计数的检测线A、B,默认为图像的中心位置;
S320、根据Deepsort算法对每个行人的追踪结果,判断行人与两条检测线A、B的关系,具体流程如图2所示。行人跨线共五种情况,见图3所示,第一种是跨越A线再跨越B线的情况,第二种是一次跨越两种边线,第三种是跨一条线后又返回,第四种是只跨过一条边线不跨过另一条线,第五种是行走的路线不经过边线。得到满足行人跨线的五种情况中的一种。实现对两个方向上人流量的计数。
S400中所述通过行人之间距离计算风险程度的具体步骤如下:
S410、根据YOLOv5检测出的所有行人目标,计算检测到的所有行人的质心;
S420、根据计算出的行人质心,计算质心之间的欧几里得距离;
S430、循环判断任意两个行人之间的距离是否小于规定的阈值,若小于则列为高风险区域;
优选地,所述城市复杂场景下的多尺度人数统计方法的具体步骤如下:
S100、扫描视频的每一帧,使用Mosaic数据增强方式采用了四张图像作为拼接,并且按照随机裁剪,随机缩放和随机分布三个方式拼接后,使用自适应的图片缩放方案将输入图像裁剪为608×608大小后输入到YOLOv5的基准网络中,利用slice和contact技术来对输入尺寸大小为608×608×3的图像进行切割,对图片进行切割的具体操作方法就是在每一张输入的图像中,隔一个像素就拿一次数据,这样就拿到了四张不仅互补相似而且没有信息遗漏的图像,并能够将信息都汇集到通道空间。裁剪拼接起来的图像比原来的三通道模式扩大了四倍,变成了十二个通道,输出尺寸大小为304×304×12的特征映射。经过YOLOv5的Backbone与Neck网络获得目标特征,然后经过3个Head输出端输出目标检测结果。
S200、首先为新检测的视频帧创建其对应的Tracks(默认是不确认态(Unconfirmed)),并用一开始检测到的运动变量去做为卡尔曼滤波的初始变量,再通过卡尔曼滤波去预测新的预测框。其中卡尔曼滤波主要完成了下列工作:第一,预测Tracks在下一时刻的位置,将第一个视频帧检测到的运动变量作为卡尔曼滤波的初始化运动变量;第二,如果匹配成功了,就通过卡尔曼滤波将该视频帧对应的Detections更新为其对应的Tracks变量。然后用IOU匹配去看目标检测的框与通过卡尔曼滤波预测的框是否能对应的上,再根据IOU匹配的结果通过计算公式去计算对应的代价矩阵。对代价矩阵使用匈牙利算法,得到最后匹配的结果。其中马氏距离马氏距离表示第j个detection和第i条轨迹之间的运动匹配度,Si表示由卡尔曼计算的协方差矩阵,计算公式如下所示:
外观信息通过最小余弦距离计算,第j个detection和第i条轨迹之间的最小余弦距离计算公式如下所示:
其中rj表示特征描述子,|rj|=1存放了第i个轨迹的100个特征描述子。
匹配的结果有三种:第一种,当Tracks为不确认态(Unconfirmed)时失配(UnmatchedTracks),直接将Tracks删除,当Tracks为确认态(Confirmed)发生失配时,默认是需要发生30次失配,这时才能将Tracks删除;第二种,当Detections发生失配的情况时(UnmatchedDetections),需要为失配的Detections产生一个新的对应的Tracks(NewTracks);第三种,当检测框和预测框发生配对(Matched)时,表示成功追踪到了检测的物体,视频帧对应上了,这时需要通过卡尔曼滤波将该视频帧对应的Detections更新为其对应的Tracks变量。反复循环执行上面的步骤,直到Tracks出现确认态(Confirmed)或者视频帧执行结束。通过卡尔曼滤波去预测现在状态是确认态(Confirmed)的Tracks对应的框,同时也通过卡尔曼滤波去预测现在状态是不确认态(Unconfirmed)的Tracks对应的框。将现在状态是确认态(Confirmed)的Tracks的框和Detections进行级联匹配。级联匹配公式如下所示:
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
其中d(1)(i,j)为马氏距离,d(2)(i,j)为最小余弦距离。级联匹配的结果有三种:第一种,Tracks和Detections匹配(Matched),这时对其对应的Tracks需要通过卡尔曼滤波进行更新相应的信息。第二种,当Tracks和Detections失配时(Unmatched),需要将之前检测的不确认状态(Unconfirmed)的Tracks和检测的失配(Unmatched)的Tracks一起和没有匹配的Detections进行IOU匹配,再根据IOU匹配的结果通过计算公式去计算对应的代价矩阵。
S300、为了对检测框进行位置判断,将检测框上边缘的中心当作检测框的位置,即为人的位置。用来触线计数的线框设计了两条,这两条线框的位置默认设置在检测视频的中心位置。这两条线框的位置和长度在检测视频中的位置是由人来自主定义的,可以区分统计不同方向的人流量。行人跨线共五种情况,第一种是跨越A线再跨越B线的情况,第二种是一次跨越两种边线,第三种是跨一条线后又返回,第四种是只跨过一条边线不跨过另一条线,第五种是行走的路线不经过边线。因为在多目标跟踪中,会为每个行人赋予一个独有的ID,而在上述过程中用框上的一个点代替检测框,这样就用一个带ID的点和他的坐标来代替行人,行人在行走时,他的ID不会改变,改变的只有坐标。实现触线计数的流程为:判断是否撞线时,先是根据撞线的y方向的偏移方向来计算出撞线的检测点的坐标,如果该检测点的坐标在A线框之内,再判断B检测框里有没有该检测框的ID,如果B检测框有,则判断是上升方向,同时上升的数目加一,输出当时的行人统计量,并删掉在B线框里面该点的记录,如果B检测框里没有,则不能判断。如果A线框里面没有该检测点,则在A检测框里添加上该点的记录。如果该检测点的坐标在B线框之内,则先判断B线框里有没有该检测点的记录。如果没有该点的记录,则在B线框里加上该检测点的记录,如果在B线框里有该检测点的记录,则判断在A线框里有没有该检测点的记录,如果A检测框里有该点的记录,则判断行走方向为向下,同时向下的行人统计量加一,并输出当时的行人统计量,并删除该检测点在A检测框里的记录,如果A检测框里没有该点的记录,则无法判断。如果在视频结束后,都没有找到匹配的ID,则被视为是无用的ID,会将该ID在A检测框和B检测框中的记录删掉。
S400、主要通过YOLOv5检测视频中的所有行人,同时将目标框的中心来代替检测框,然后通过Deepsort算法实时跟踪行人,然后再计算所有检测到的行人之间的距离,根据计算出来的距离来判断行人之间的距离为低风险还是高风险。距离判断需要注意的是计算机判断社交距离的方式是用检测到的两个行人的质心来计算距离的,检测到的行人的质心就是指检测到的目标框的中心,而行人质心的距离就是指目标框中心之间相隔的像素值,然后判断行人之间的距离是否小于N个像素,如果小于则为高风险区。
实施例1
实施例1的实验数据集由MS COCO(Microsoft Common Objects in Context)数据集与Market-1501数据集组成。
MS COCO训练集是微软构建的一个数据集,其包含detection,segmentation,keypoints等任务。主要是为了解决detecting non-iconic views ofobjects,contextualreasoning between objects and the precise 2D localization ofobjects这三种场景下的问题。从中筛选出的一千张只带行人标签的图片,随机将其转换为比例为八比二的训练集和测试集。训练集有七百九二张标注好的图片,测试集有二百零八张图片。使用训练集对YOLOv5模型进行训练。
Market-1501数据集以清华大学教职工和学生为采集对象,并于2015年建造和公开的数据集。该数据集的拍照工具是一个低分辨率摄像头和五个高清摄像头。该数据集总体拍摄了行人一千五百零一个,能够检测到的行人矩形框三万二千六百六十八个。在数据集搜集中每一个行人最少被两个摄像头拍到,并且多次被同一个摄像头拍到。在该数据集中,训练集总共有行人七百五十位,图片一万两千九百三十六张,每人平均大约有训练数据十七张。在测试集中共有行人七百五十位,图像一万九千七百三十二张,每人平均大约有测试数据二十六张。从中选取1502张图片,按照1:1的比例分为测试集和训练集后,进行随机分布,测试集和训练集都各有七百五十一张图片,然后训练Deepsort算法,训练完成后在checkpoint目录下得到一个新的特征提取网络。
将输入视频帧输入训练好的YOLOv5网络,检测出其中的行人,并使用Deepsort算法对行人进行跟踪和编号,通过行人与两条检测带的关系进行计数,如图4所示。同时计算任意两个行人之间的距离,若小于阈值则标记为‘High Risk’,若大于阈值则标记为‘LowRisk’,如图5所示。
虽然本发明已以较佳的实施例公开如上,但其并非用以限定本发明,任何熟悉此技术的人,在不脱离本发明的精神和范围内,都可以做各种改动和修饰,因此本发明的保护范围应该以权利要求书所界定的为准。
Claims (10)
1.一种用于城市复杂场景的多尺度人数统计方法,其特征在于,首先使用YOLOv5模型检测视频帧中的行人目标,然后使用Deepsort算法对检测到的行人目标进行跟踪与编号,根据所述检测到的行人目标与检测线的关系计算不同方向人员流动情况,最后根据所述检测到的行人目标之间的距离判断风险程度。
2.根据权利要求1所述城市复杂场景下的多尺度人数统计方法,其特征在于,所述多尺度人数统计步骤如下:
S100、扫描视频的每帧,对每帧图像进行预处理后输入到YOLOv5网络中进行检测;
S200、根据S100检测出的结果,使用Deepsort算法对检测到的行人目标进行追踪并分配ID;
S300、根据不同的行人目标通过两条检测线的先后顺序进行触线计数,统计双向流动人数;
S400、计算不同的行人目标对象质心之间的距离,根据距离判断风险程度。
3.根据权利要求2所述城市复杂场景下的多尺度人数统计方法,其特征在于,在S100中,具体包括以下步骤:
S110、对每一帧画面进行预处理,然后裁剪为608×608大小的图片,所述预处理包括Mosaic数据增强;
S120、将图片输入Backbone与Neck网络中计算特征图;
S130、将所述特征图输入三个不同的Head中,进行多尺度预测,输出目标检测结果。
4.根据权利要求3所述城市复杂场景下的多尺度人数统计方法,其特征在于,在S100中,具体的,扫描视频的每一帧,使用Mosaic数据增强方式采用四张图像作为拼接,并且按照随机裁剪,随机缩放和随机分布三个方式拼接后,使用自适应的图片缩放方案将输入图像裁剪为608×608大小后输入到YOLOv5的基准网络中,然后利用slice和contact技术来对输入尺寸大小为608×608×3的图像进行切割,对图片进行切割的具体操作方法为:在每一张输入的图像中,隔一个像素拿一次数据,拿到四张不仅互补相似而且没有信息遗漏的图像,并能够将信息都汇集到通道空间;裁剪拼接起来的图像具有十二个通道,输出尺寸大小为304×304×12的特征映射,经过YOLOv5的Backbone与Neck网络获得目标特征,经过3个Head输出端输出目标检测结果。
5.根据权利要求4所述城市复杂场景下的多尺度人数统计方法,其特征在于,在S200中,具体包括以下步骤:
S210、将目标检测框中的特征提取出来,提取的特征包括表观特征和运动特征;
S220、为新检测的视频帧创建其对应的Tracks,并用一开始检测到的运动变量去作为卡尔曼滤波的初始变量,再通过卡尔曼滤波去预测新的预测框;
S230、用IOU匹配去计算目标检测的框与通过卡尔曼滤波预测的框是否能对应的上,再根据IOU匹配的结果通过计算公式去计算对应的代价矩阵;
S240、输入所述代价矩阵,通过匈牙利算法,得到最后匹配的结果;
S250、反复循环执行S210至S240,直到Tracks出现确认态或者视频帧执行结束;
S260、通过卡尔曼滤波去预测现在状态是确认态的Tracks对应的框,同时也通过卡尔曼滤波去预测现在状态是不确认态的Tracks对应的框。
6.根据权利要求5所述城市复杂场景下的多尺度人数统计方法,其特征在于,在S200中,具体的:
首先为新检测的视频帧创建其对应的Tracks,并用一开始检测到的运动变量去做为卡尔曼滤波的初始变量,再通过卡尔曼滤波去预测新的预测框,然后用IOU匹配去看目标检测的框与通过卡尔曼滤波预测的框是否能对应的上,再根据IOU匹配的结果通过计算公式去计算对应的代价矩阵,对代价矩阵使用匈牙利算法,得到最后匹配的结果,其中马氏距离马氏距离表示第j个detection和第i条轨迹之间的运动匹配度,Si表示由卡尔曼计算的协方差矩阵,计算公式如下所示:
d(1)(i,j)=(dj-yi)TSi -1(dj-yi)
外观信息通过最小余弦距离计算,第j个detection和第i条轨迹之间的最小余弦距离计算公式如下所示:
其中rj表示特征描述子,|rj|=1存放了第i个轨迹的100个特征描述子,
匹配的结果有三种:第一种,当Tracks为不确认态时失配,直接将Tracks删除,当Tracks为确认态发生失配时,默认是需要发生30次失配,这时才能将Tracks删除;第二种,当Detections发生失配的情况时,需要为失配的Detections产生一个新的对应的Tracks;第三种,当检测框和预测框发生配对时,表示成功追踪到了检测的物体,视频帧对应上了,这时需要通过卡尔曼滤波将该视频帧对应的Detections更新为其对应的Tracks变量,反复循环执行上面的步骤,直到Tracks出现确认态或者视频帧执行结束,通过卡尔曼滤波去预测现在状态是确认态的Tracks对应的框,同时也通过卡尔曼滤波去预测现在状态是不确认态的Tracks对应的框,将现在状态是确认态的Tracks的框和Detections进行级联匹配,级联匹配公式如下所示:
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
其中d(1)(i,j)为马氏距离,d(2)(i,j)为最小余弦距离,级联匹配的结果有三种:第一种,Tracks和Detections匹配,这时对其对应的Tracks需要通过卡尔曼滤波进行更新相应的信息,第二种,当Tracks和Detections失配时,需要将之前检测的不确认状态的Tracks和检测的失配的Tracks一起和没有匹配的Detections进行IOU匹配,再根据IOU匹配的结果通过计算公式去计算对应的代价矩阵。
7.根据权利要求6所述城市复杂场景下的多尺度人数统计方法,其特征在于,S300具体包括以下步骤:
S310、设置两条触线计数的检测线A、B,默认为图像的中心位置;
S320、根据Deepsort算法对每个行人的追踪结果,判断行人与两条检测线A、B的关系,得到满足行人跨线的五种情况中的一种,实现对两个方向上人流量的计数。
8.根据权利要求7所述城市复杂场景下的多尺度人数统计方法,其特征在于,在S300中,具体的:为了对检测框进行位置判断,将检测框上边缘的中心当作检测框的位置,即为行人的位置,用来触线计数的线框设计了两条,这两条线框的位置默认设置在检测视频的中心位置,这两条线框的位置和长度在检测视频中的位置是由人来自主定义的,用于区分统计不同方向的人流量,假设两条线为A线和B线,行人跨线共五种情况,第一种是跨越A线再跨越B线的情况,第二种是一次跨越两种边线,第三种是跨一条线后又返回,第四种是只跨过一条边线不跨过另一条线,第五种是行走的路线不经过边线,用一个带ID的点和他的坐标来代替行人,行人在行走时,他的ID不会改变,改变的只有坐标,实现触线计数的流程为:判断是否撞线时,先是根据撞线的y方向的偏移方向来计算出撞线的检测点的坐标,如果该检测点的坐标在A线框之内,再判断B检测框里有没有该检测框的ID,如果B检测框有,则判断是上升方向,同时上升的数目加一,输出当时的行人统计量,并删掉在B线框里面该点的记录,如果B检测框里没有,则不能判断,如果A线框里面没有该检测点,则在A检测框里添加上该点的记录,如果该检测点的坐标在B线框之内,则先判断B线框里有没有该检测点的记录,如果没有该点的记录,则在B线框里加上该检测点的记录,如果在B线框里有该检测点的记录,则判断在A线框里有没有该检测点的记录,如果A检测框里有该点的记录,则判断行走方向为向下,同时向下的行人统计量加一,并输出当时的行人统计量,并删除该检测点在A检测框里的记录,如果A检测框里没有该点的记录,则无法判断,如果在视频结束后,都没有找到匹配的ID,则被视为是无用的ID,会将该ID在A检测框和B检测框中的记录删掉。
9.根据权利要求8所述城市复杂场景下的多尺度人数统计方法,其特征在于,S400具体包括以下步骤:
S410、根据YOLOv5检测出的所有行人目标,计算检测到的所有行人的质心;
S420、根据计算出的行人质心,计算质心之间的欧几里得距离;
S430、循环判断任意两个行人之间的欧几里得距离是否小于规定的阈值,若小于则列为高风险区域。
10.根据权利要求9所述城市复杂场景下的多尺度人数统计方法,其特征在于,在S400中,具体的:通过YOLOv5检测视频中的所有行人,同时将目标框的中心来代替检测框,然后通过Deepsort算法实时跟踪行人,然后再计算所有检测到的行人之间的距离,根据计算出来的距离来判断行人之间的距离为低风险还是高风险,其中,计算机判断社交距离的方式是用检测到的两个行人的质心来计算距离的,检测到的行人的质心就是指检测到的目标框的中心,而行人质心的距离就是指目标框中心之间相隔的像素值,然后判断行人之间的距离是否小于N个像素,如果小于则为风险区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211545070.6A CN115841649A (zh) | 2022-11-21 | 2022-11-21 | 一种用于城市复杂场景的多尺度人数统计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211545070.6A CN115841649A (zh) | 2022-11-21 | 2022-11-21 | 一种用于城市复杂场景的多尺度人数统计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115841649A true CN115841649A (zh) | 2023-03-24 |
Family
ID=85577983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211545070.6A Pending CN115841649A (zh) | 2022-11-21 | 2022-11-21 | 一种用于城市复杂场景的多尺度人数统计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115841649A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167625A (zh) * | 2023-04-25 | 2023-05-26 | 湖南工商大学 | 一种基于深度学习的踩踏风险评估方法 |
CN116434150A (zh) * | 2023-06-14 | 2023-07-14 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 面向拥挤场景的多目标检测跟踪方法、系统及存储介质 |
CN116630867A (zh) * | 2023-07-25 | 2023-08-22 | 深圳市美侨医疗科技有限公司 | 一种基于Mask R-CNN的白带滴虫检测与跟踪方法 |
CN117037045A (zh) * | 2023-10-08 | 2023-11-10 | 成都考拉悠然科技有限公司 | 基于融合聚类与深度学习的异常检测系统 |
CN117710903A (zh) * | 2024-02-05 | 2024-03-15 | 南京信息工程大学 | 一种基于ReID和Yolov5双模型下的可视化特定行人追踪方法及系统 |
-
2022
- 2022-11-21 CN CN202211545070.6A patent/CN115841649A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167625A (zh) * | 2023-04-25 | 2023-05-26 | 湖南工商大学 | 一种基于深度学习的踩踏风险评估方法 |
CN116167625B (zh) * | 2023-04-25 | 2023-08-18 | 湖南工商大学 | 一种基于深度学习的踩踏风险评估方法 |
CN116434150A (zh) * | 2023-06-14 | 2023-07-14 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 面向拥挤场景的多目标检测跟踪方法、系统及存储介质 |
CN116434150B (zh) * | 2023-06-14 | 2023-12-05 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 面向拥挤场景的多目标检测跟踪方法、系统及存储介质 |
CN116630867A (zh) * | 2023-07-25 | 2023-08-22 | 深圳市美侨医疗科技有限公司 | 一种基于Mask R-CNN的白带滴虫检测与跟踪方法 |
CN116630867B (zh) * | 2023-07-25 | 2023-11-17 | 深圳市美侨医疗科技有限公司 | 一种基于Mask R-CNN的白带滴虫检测与跟踪方法 |
CN117037045A (zh) * | 2023-10-08 | 2023-11-10 | 成都考拉悠然科技有限公司 | 基于融合聚类与深度学习的异常检测系统 |
CN117037045B (zh) * | 2023-10-08 | 2024-04-26 | 成都考拉悠然科技有限公司 | 基于融合聚类与深度学习的异常检测系统 |
CN117710903A (zh) * | 2024-02-05 | 2024-03-15 | 南京信息工程大学 | 一种基于ReID和Yolov5双模型下的可视化特定行人追踪方法及系统 |
CN117710903B (zh) * | 2024-02-05 | 2024-05-03 | 南京信息工程大学 | 一种基于ReID和Yolov5双模型下的可视化特定行人追踪方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108053427B (zh) | 一种基于KCF与Kalman的改进型多目标跟踪方法、系统及装置 | |
CN108062349B (zh) | 基于视频结构化数据及深度学习的视频监控方法和系统 | |
CN108009473B (zh) | 基于目标行为属性视频结构化处理方法、系统及存储装置 | |
CN115841649A (zh) | 一种用于城市复杂场景的多尺度人数统计方法 | |
Asha et al. | Vehicle counting for traffic management system using YOLO and correlation filter | |
CN108304798B (zh) | 基于深度学习及运动一致性的街面秩序事件视频检测方法 | |
CN108052859B (zh) | 一种基于聚类光流特征的异常行为检测方法、系统及装置 | |
CN103824070B (zh) | 一种基于计算机视觉的快速行人检测方法 | |
CN109977782B (zh) | 基于目标位置信息推理的跨店经营行为检测方法 | |
US20220164965A1 (en) | System and method for transforming video data into directional object count | |
CN107273832B (zh) | 基于积分通道特征与卷积神经网络的车牌识别方法及系统 | |
CN104978567B (zh) | 基于场景分类的车辆检测方法 | |
Guan et al. | A lightweight framework for obstacle detection in the railway image based on fast region proposal and improved YOLO-tiny network | |
CN110532937B (zh) | 基于识别模型与分类模型进行列车前向目标精准识别的方法 | |
CN111931582A (zh) | 基于图像处理的高速公路交通事件检测方法 | |
CN112507844A (zh) | 基于视频分析的交通拥堵检测方法 | |
CN110852179B (zh) | 基于视频监控平台的可疑人员入侵的检测方法 | |
CN111008574A (zh) | 一种基于形体识别技术的重点人员轨迹分析方法 | |
CN112132873A (zh) | 一种基于计算机视觉的多镜头行人识别与跟踪 | |
Karaimer et al. | Combining shape-based and gradient-based classifiers for vehicle classification | |
CN107688830A (zh) | 一种用于案件串并的现勘视觉信息关联图层生成方法 | |
CN112270381A (zh) | 基于深度学习的人流量检测方法 | |
Han et al. | A method based on multi-convolution layers joint and generative adversarial networks for vehicle detection | |
CN114463390A (zh) | 耦合车队跟驰强化的多孪生对抗网络跨相机车辆追踪方法 | |
CN113706584A (zh) | 基于计算机视觉的街景流量信息采集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |