网站首页  词典首页

请输入您要查询的论文:

 

标题 基于OpenCV的人流量监测系统
范文

    王崇国 石刚 陈田希 刘丹妮 王志远 周司宇

    

    

    

    摘要:针对人员密集场所人流量统计准确度较低,实时性较差的问题,提出采用基于OpenCV的算法实时进行人流量分析。首先,用Tensorflow中的视频分解为图像算法将采集到的视频分解为帧,对采集到的视频帧图像进行灰度化,去噪声等预处理增强前景物体边缘;其次,通过基于MobileNet V2的SSD算法进行模型训练,meanshift算法进行跟踪检测实现人流量计数;最后,将实时数据通过展示系统输出并实现数据的可视化。结果表明,算法具有较高准确性和实时性。

    关键词:深度学习;OpenCV;SSD

    中图分类号:TP212? ? ? ? ?文献标识码:A

    文章编号:1009-3044(2021)07-0235-02

    Abstract:Aiming at the low accuracy and poor real-time performance of pedestrian flow statistics in densely populated places, this paper proposes an algorithm based on OpenCV for real-time traffic analysis. Firstly, the video is decomposed into frames by using Tensorflow's video decomposition algorithm, and the collected video frame images are grayed and denoised to enhance the edge of the foreground object; secondly, the foreground object edge is enhanced by using MobileNet The SSD algorithm of V2 is used to train the model, and the meanshift algorithm is used to track and detect the pedestrian flow. Finally, the real-time data is output through the display system and the data visualization is realized. Experimental results show that the algorithm has high accuracy and real-time performance.

    Keywords:deep learning; OpenCV; SSD

    隨着现代社会逐步变得智能化,计算机视觉和图像处理已经广泛应用到工业,医疗,军事,通信以及航空航天等各个领域。其中对于视频的处理具有广阔的应用前景,监控在很多地方发挥着至关重要的作用,例如安保和巡查工作等,但观察监控中的视频却是一件相当乏味的工作。所以我们利用深度学习等知识,希望将人类从这一乏味的工作中解放出来。

    现实中,当面临海量的视频数据时,视频数据的非结构化特点,使得计算机很难得到视频中具体有效的数据。如何让视频中的非结构化信息自动化的加工生成结构化的数据,是当前研究的一个重要热点。通过对视频信息的结构化,可以得到超过人工值守获取更多更有价值的信息。然而,随着科技水平的不断提高,摄像头的清晰度越来越高、每秒帧数也在增加,成本却不断在降低。但是加工和处理视频所需的计算资源却也在不断增长。如果加上人流量监控等功能,背后需要更为庞大的计算资源支持。否则无法进行实时处理,从而导致视频结构化设想难以在现实中全面应用。

    针对以上问题,本文提出的基于OpenCV的人流量检测算法,首先用Tensorflow中的算法将采集到的视频分解为帧,对采集到的视频帧图像进行灰度化、去噪声等预处理增强前景物体边缘,减少外界干扰;其次,通过基于MobileNet V2的SSD算法进行模型的训练,meanshift算法进行跟踪检测实现人流量计数;最后,将实时数据通过展示系统输出并实现数据的可视化。测试结果表明,算法在以往的基础上提高了准确性和实时性。

    1设计思路

    人流量统计系统主要包括采集人像信息,图像预处理,跟踪识别,计数四部分。对于采集到的视频帧图像先进行灰度化处理和去噪声比处理,为方便统计结果,结合SSD模型和HOG特征提取和SVM分类器进行人体目标的识别,使识别的目标符合人物形象的40%即可作为一个目标量。之后结合Android平台的推流系统,以及封装opencv、OpenKinect、videoInput等方法在Android平台上进行结果处理功能,为精确统计数人流量和有效避免障碍物遮挡和目标变形,计数采用Meanshift的算法。

    2图像预处理

    2.1 图像灰度化

    由于平均值法和最大值法在灰度化时的效果较加权平均法效果较差,所以采用加权平均法。

    加权平均法中,由于人眼对绿色敏感最高,对蓝色敏感最低,故采用心理学灰度公式(1):

    以上公式中表示三个通道的权值,且三者之和为1。

    2.2 图像去噪声

    采用中值滤波法,该方法拥有诸多优点,同时存在丢失图像细节的缺陷。为避免这种缺陷,采用基于个数的中值滤波法。该方法需设定一阈值T,用以限制邻域内像素点与中心像素点灰度差绝对值的范围,从而将含噪图像中的像素点的属性划分为以下三类:噪点、图像边缘以及平坦区域。以3*3窗口为例,假设中心像素点为8,定义m为中心像素点灰度差分的绝对值大于阈值T的相邻像素点的个数,则当m≤2时,中心像素点为平坦区域点;当2

    3 跟踪检测技术

    3.1 带有MobileNet v2的SSD算法

    设计采用了带有MobileNet v2的SSD算法,如图1所示。和MobileNet V1相比,MobileNet V2改进有两点:1)Linear Bottlenecks,为了保证模型的表达能力,去掉了小维度输出层后面的非线性激活层;2)Inverted Residual block,该结构先扩增再缩减,与residual block正好相反,因此shotcut连接的是维度缩减后的feature map。

    当stride=1时,才会使用elementwise 的sum将输入和输出特征连接;

    stride=2时,无short cut连接输入和输出特征。

    SSD算法的检测精度和速度都非常出色,主要是采用了基于回归的模式,可以直接在网络中回归出物体的位置和类别。同时利用基于区域的相关概念,在检测过程中,使用許多候选区域作为ROI。

    SSD的骨干网络是基于传统的图像分类网络,经过卷积层和池化层的处理,可以得到特征图,从而在特征图上进行回归,得到物体的位置和类别。

    SSD对多个特征图进行分析,对于神经网络,浅层的特征图适合进行小物体的检测;而较深的特征图适合大物体的检测。

    3.2 meanshift算法

    meanshift算法实际是一种基于密度的聚类算法。其主要思路是计算某一点A与其周围半径R内的向量距离的平均值M,计算出该点下一步移动方向(A=M+A)。如果该点不在发生变化时,该点就会与周围的区域点形成一个类簇,计算出这个类簇与其他类簇的距离,当该距离小于阈值时,会合并为一个类簇,否则就单独形成一个类簇,以此类推,直到所有点被选取。

    对于给定的n维空间中的m个样本点,i=1...m,对于其中一个样本X,它的均值漂移向量为式(2):

    其中Sh指的是一个半径为h的球状领域,定义为式(3):

    meanshift算法根据反向投影图和输入的方框进行meanshift迭代,它是向中心移动,就是向反向投影图中概率大的地方移动,所以始终会移动到目标上。

    4 系统实现

    使用安卓端推流,将摄像头采集的视频推到服务器上。Android端首先进行了用户的登录注册,登录后可以查看摄像头所录视频,将视频传到服务器端。在安卓端的代码开发中进行了Butter Knife的安装。Butter Knife通过注解的方式来替代android中view的相关操作。减少大量的findViewById以及setOnClickListener代码,且对性能的影响较小。使用JavaCV中的utility类方便在Java平台上调用这些接口。

    基于Tensorflow的人流量监测系统对输入的图像进行处理,首先用智能摄像头采集视频,用Tensorflow中的视频分解为图像算法,将采集到的视频分解为帧,分解后的图片保存到一个文件夹中作为训练集。开始要在config配置文件中定义训练任务,配置好相应的路径,然后执行命令开始训练。最后导出训练模型,然后在视频流上使用它,从视频源中提取单帧,通过OpenCV的VedioCapture方法完成。

    5 系统测试

    对该软件的主要功能进行测试,首先对视频进行取帧,从而进行检测,测试结果如图2所示。

    从图片中可以看出,人流量识别正确率相对较高,但在人流特别密集的情况下有些人并未识别出来,对算法仍需进行改进。

    6结语

    基于OpenCV来研究人流量检测的相关方法,与一些目标检测的算法进行了比较,最终在检测时选取了带有MobileNet v2的SSD算法,该算法相对来说在检测精度和速度方面都有了一定的提高。该系统人流量识别正确率相对较高,算法具有较高准确性和实时性。

    参考文献:

    [1]卜秋月.基于OpenCV的人脸识别系统的设计与实现[D].吉林大学,2015.

    [2]吴晓阳.基于OpenCV的运动目标检测与跟踪[D].浙江大学,2008.

    [3]牛秋月,李超,唐国良.基于智能监控视频的人流量统计[J].电子技术与软件工程,2018(4):64-66.

    【通联编辑:代影】

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/4/11 8:04:49