本发明涉及深度计算机视觉领域,具体涉及一种基于深度神经网络的行人计数方法。
背景技术:
在智能视频监控技术领域中,对于行人计数的研究一直是本领域技术人员关注的核心。这是因为,通过对场景中的行人计数,出现突发事件时,可以有效地根据场景中人数的分布而合适地分散、疏散人流,最大程度地降低突发事件所带来的危害。
目前,行人计数的方法主要有以下四种:
基于压力传感器技术:通常压力传感器会被安装在行人通过的重区域内,当行人走过传感器检测区域时,由于体重不同会产生不同的电信号,通过电信号的变化实现客流量的统计,但因为设备经常接收踩踏,高密度的大客流长期通过会严重影响设备寿命,并且使检测准确率下降。
基于红外对射装置的行人检测方法:当行人通过红外检测装置时,导致接收装置无法接收,此时进行计数,目前此类方法无法对并行行人进行准确计数,并不适用于高密集场景。
基于无线电波行人检测技术:无线电波检测行人主要是计算在有人通过通道内,固定频率的监测电波的衰减量,通过专业设备计算衰减量,估计出通道内客流人数的多少,这种方法只能计算出一个数量范围,而且检测场景相对固定,很难对车站整体进行监控,专业设备采购费用昂贵。
基于视频图像分析的行人计数方法:主要可以分为传统图像处理方法和深度学习处理方法,传统图像处理利用人工设计的适用于检测人的特征,通过在图中检测这些特征有无判断行人是否存在,再利用检测到的“人”的特征进行目标跟踪,达到计数的目的,此种方法在行人稀疏场景下适用,一旦人群密集,行人间存在遮挡情况,检测的准确率将下降。
所以,获得一种准确、快速、实时、低成本的行人计数方法成为了本领域计数人员一直追求的目标。
技术实现要素:
发明目的:为了解决行人计数的速度和准确率稳定性的问题,本发明提供一种基于深度神经网络的行人计数方法。
技术方案:一种基于深度神经网络的行人计数方法,包括以下步骤:
(1)获取视频帧图像,在图像上预先设定计数区域;
(2)利用深度神经网络对视屏帧图像进行目标检测,得到行人框;
(3)利用跟踪算法跟踪行人框,得到跟踪框,跟踪框包括行人框信息及跟踪id,对每个行人增加跟踪id作为属性,获得不同行人的运动轨迹;
(4)根据每个行人的跟踪框信息求得行人的中心点坐标,通过比较不同帧图像中的中心点坐标的变化得知行人的行走方向;将中心点的坐标与计数区域进行比较,当中心点的坐标第一次处于计数区域内时,联合行走方向在该行走方向上计数加一,之后该跟踪id的行人不再参与计数。
进一步的,步骤(1)视频帧图像的获取方法为:利用网络摄像头获取视频流,对视频流进行解析处理,得到视频帧图像。
进一步的,步骤(1)视频流为rtsp流,通过cuda框架利用gpu硬解的方式进行解析处理。
进一步的,步骤(2)中,采用基于回归的目标检测算法,检测网络采用yolo系列,输入为图像,输出为行人框信息,行人框信息记录为(x,y,w,h),x、y分别表示行人框左上角的横坐标、纵坐标,h、w分别表示行人框的长和宽。
进一步的,步骤(3)中,运动轨迹的获取包括:采用iou比较及匈牙利关联算法,将行人框送入跟踪器进行跟踪,输出跟踪框信息,所述跟踪框信息包括所述行人框信息和跟踪id。
进一步的,步骤(3)中,在跟踪过程中,若没有对应的跟踪器,则产生新的跟踪器。
有益效果:本发明提供一种基于深度神经网络的行人计数方法,对于行人拥挤场景和行人稀疏场景均能进行监控计数,尤其适合轨道交通实际场景,具有很高的实际应用价值,实时性高,误辩率低,且本发明现场只使用摄像头,成本低安装方便且对监控环境影响很小。
附图说明
图1是本发明的流程示意图;
图2是跟踪算法的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
图1为基于深度神经网络的行人计数方法的基本流程图,首先对视频流处理,得到视频帧图像,然后进行行人检测,将检测到的行人框送给跟踪器,得到跟踪框,根据行人跟踪框中心点坐标的变化判断行人运动方向以及中心点是否处于计数区域进行计数判断。具体步骤如下:
1、利用网络摄像头获取视频帧图像。
从网络摄像头获取rtsp流,要将其解析成可用的视频帧图像,传统方法采用cpu软件,为了减轻cpu的压力,本实施例通过cuda框架利用gpu硬解,不仅降低cpu压力,速度也更快。
2、利用深度神经网络进行目标检测,得到行人框。
为了兼顾速度与准确率,本发明采用基于回归检测算法yolo系列。检测获得行人框(x,y,w,h)信息,x、y分别表示行人框左上角的横坐标、纵坐标,h、w分别表示行人框的长和宽。
3、利用跟踪算法跟踪行人框,获得不同行人的运动轨迹。
将检测行人框送入跟踪器,通过iou比较及匈牙利关联算法可以将每帧中的检测框与跟踪器对应起来,若没有对应的跟踪器,则产生新的跟踪器,获得的跟踪框包含(x,y,w,h)信息及跟踪id,跟踪id作为不同行人的唯一标志属性,用来确保每个人最多只计数一次,不重复计数。跟踪算法的流程图如图2所示。
4、利用计数算法分析行人的运动轨迹。
根据每个行人的跟踪框信息求得行人的中心点坐标,通过比较不同帧图像中的中心点坐标的变化得知行人的行走方向;将中心点的坐标与计数区域进行比较,当中心点的坐标第一次处于计数区域内时,联合行走方向在该行走方向上计数加一,之后该跟踪id的行人不再参与计数。