基于Tensorflow框架的人流量计算系统设计
2022-08-26黄盈洁
黄盈洁
(广西师范大学,广西 桂林 541006)
0 引 言
随着现代社会的不断发展,计算机视觉与图像处理技术在工业、医疗、军事、通讯、航天等多个行业中得到了广泛的应用。在这方面,视频处理具有广泛的应用价值,监控在很多地方都起着至关重要的作用,比如安保、巡逻等,但是在监控中监测人流量是一个比较枯燥的工作。因此,可以使用诸如深度学习之类的知识,将这些人流量数据收集并合理的运用,不仅能够大大地降低管理部门的管理压力,也能够让企业、政府等根据人流量的分布情况,制定出合理的策略,增加经济收益或节约服务成本等。
本研究的目的是根据视频统计某个区域内的人流量情况,在景区、车站、大型商场等人流密集的场所,对一定时间内的人流量进行监控,目的是保障公共安全,但也具有潜在的商业价值。如今这些公共场所都装有摄像头,可以很容易地获得实时录像情况。基于Tensorflow的深度学习框架的物体识别算法SSD不仅可以方便快捷地获得相关数据,而且获取到的相关数据是实时和准确的。
1 基于Tensorflow框架SSD算法的模型训练
1.1 图形标注
本研究选用Labelimg对数据集的图像进行注释,注释结果格式为Pascal VOC数据集格式,Tensorflow框架提供将Pascal VOC数据集转换为TFR数据集的接口,因此使用Labelimg可大幅缩短数据集的处理时间。Labelimg是用Python编写的图形图像注释工具,使用Qt作为图形界面。
1.2 SSD算法原理
SSD物体检测算法有多个卷积层,简单来说是将输入的图片转化为多个不同大小的图片,大一点的图片可以用来识别小的物体,小的图片可以识别大的物体。SSD算法本身有多个先验框,先验框的作用是用来匹配图片里面自己标注的对象。
在训练过程中,它会根据你框出来的图片匹配对应的先验框,求得参数矩阵。参数矩阵一般有很多个,因为行人有近处的,也有远处的,对应的先验框也就有不同大小的,相对应的参数矩阵也就有不同的;同时在不同的卷积层里面,对应框选出来的图片内容不同,对应的参数矩阵也就有不同的。
在预测的时候有一个默认大小的框,它会根据这个框一个一个的遍历整张图片,当这个框里面的内容和参数矩阵相乘,得到的结果值大于你设定的相似度时,它会将先验框里面的每一种类都试一遍,然后将相似度最高的输出。
1.3 模型训练
1.3.1 数据准备
使用公开免费和自己标注的行人视频数据制作训练数据,接着用Labelimg进行视频标注,创建VC2012数据集。
1.3.2 训练对象检测模型
使用TensorFlow对象检测API,创建模型配置文件,修改conf ig配置文件,驱动模型训练。输入命令如图1所示。
图1 输入命令
1.3.3 训练结果模型分析
在路上拍完一段视频后,启动程序进行分析,可以准确地检测和跟踪人体的前、后、侧面,以及戴口罩的人。对一小段视频进行分析和目标追踪,最终得出正确的结果,人流量监测如图2所示。
对于9例内翻性乳头状瘤而言,其病变仅仅是在鼻道窦口复合体以及筛窦、上颌窦的内壁,而基底处于鼻腔外侧壁,使用等离子刀在距离肿瘤基底0.5厘米处进行手术,需要注意的是,将刀头置于肿瘤基底和鼻腔的外侧壁骨面间,缓慢切除的同时利用刀头进行剥离,一直持续到肿瘤基底边缘黏膜被完全切断,能够完整的将肿瘤取出,对周边存在的不安全创缘加以消融,直至到满意的安全界限,将增生的骨质加以磨除。
图2 人流量监测
2 系统需求
人流量监测系统通过摄像头端,实时获取本地摄像头和IP摄像头的数据,使用基于深度学习框架Tensorf low的物体识别算法(SSD算法)训练出来的行人模型,进行实时检测,当超过设置的预警阈值,就自动录制视频和相关数据上传至后台,后台实施显示预警视频数据并转发给处理端,处理人员通过查看预警视频和相关信息,前往对应地点进行行人疏导工作。
2.1 面向方向分析
根据人流量监测平台的实际需求,监测系统首先要满足工作人员、监测管理员与处理人员的需求,针对工作人员、监测管理员与处理人员三类用户的需求和权限进行不同的设计,比如,对监测管理员需开启监测管理与监测查询权限,但对工作人员和处理人员则不开启此权限。
2.2 模块分析
针对相关需求和对其他类型监控系统的分析,人流量计算系统应包括三个主要部分,即摄像头模块、管理模块及处理模块。这三个模块仅仅是在大方向上的分类,其中各个模块会有不同类型的细分类,会根据程序设计的不同而有所变化,但主要目的是保障相关程序的稳定运行,并能有效地起到保障、监测人流量的作用。
2.3 功能设计
2.3.1 系统登录功能
对于人流量计算系统划分的三个用户角色,应该能够提供各自独立的用户登录功能,并赋予不同角色相应的权限。用户登录后可以自行修改个人信息,对个人信息进行添加、删除、修改、查看等操作,登录界面如图3所示。
图3 系统登录界面
2.3.2 摄像头模块
摄像头模块的主要功能为:工作人员登录、摄像头初始化、实时监控摄像信息、上传异常视频、工作人员自身信息的管理。
工作人员登录平台后,填写好调用的本地摄像头和IP摄像头地址以及对应所在的地点和对应的预警阈值,便可打开摄像头,可以选择只打开摄像头,或者打开摄像头的同时并调用模型。调用的模型是根据获取到的视频,将其一帧一帧的根据模型进行检测,当图片里的人数超过设定的预警阈值,将会自动录制5秒钟左右的视频,保存到根目录下的静态文件中。
2.3.3 管理模块
管理人员登录平台后,可以对预警视频进行查看、修改,也可以对工作人员以及处理人员进行添加、查询、修改、删除相关人员信息的操作,同时,也可以对自身信息进行修改和注销自身账户。当超级管理员登录后,除了具备上述功能外,他还可以进行添加、查询、修改、删除相关管理人员信息的操作。
2.3.4 处理模块
处理模块的主要功能为:处理人员登录、预警视频信息查看、处理人员自身信息的管理。
处理人员登录平台后,可以查看预警视频,然后前往对应的地点进行行人疏导,当疏导工作完成后,可以在平台进行工作提交;同时也可以对自身信息进行修改和注销自身账户。
3 概要设计
3.1 系统功能概要设计
根据需求分析结果,本系统包括三个系统角色:摄像头端、管理端、处理端等模块,系统物理体系架构图如图4所示。
图4 物理体系架构图
3.2 业务架构设计
本平台采用的是Django框架,它是属于Python的一个Web框架。它遵循的设计模式是MVT。它其实和传统的MVC模式十分接近。在Django里面,接收器的功能被Django自动处理,所以它除了注重原来已有的模型和视图,同时也关注了一个新的层、模板。这些层次的功能如表1所示。
表1 Django框架表
3.3 数据库设计
数据库是数据的集合,按照一定的排布将数据存储在里面。它可以支持用户添加数据、删除数据、查询数据、删除数据等操作。根据系统的功能需求,本系统主要设计了工作人员信息表、视频信息表、管理员信息表以及处理人员信息表等数据库表,每个数据库表的说明如表2所示。
表2 计算系统数据库表
4 详细设计
通过系统的详细设计部分,即系统实现功能页面设计、数据库访问,完成各个模块的功能,实现功能模块之间的数据通信,完成整个人流量监测系统的实现。限于篇幅,详细设计部分将以摄像头模块为例进行分析。
系统中摄像头模块的主要功能为:实时监控摄像信息,上传异常视频等,部分代码如图5所示。
图5 部分代码
5 系统测试
本次人流量计算系统的测试是在单元测试的基础上对系统进行的集成测试,这次使用黑盒测试对人流量监测系统进行测试,对所出现的问题进行及时地修正和优化。限于篇幅,以工作人员登录及摄像头模块为例进行说明,功能测试情况如表3和表4所示,最终测试结果功能实现效果良好,此次系统功能测试表明了人流量监测系统的实用性以及稳定性。
表3 工作人员登录功能测试
表4 摄像头模块功能测试
6 结 论
本系统在一定区域内可以根据视频来统计人流量的情况,采用基于深度学习框架Tensorflow的物体识别算法(SSD算法),不仅可以方便快捷地获取到相关数据,而且获取到的数据是实时、准确的,有效地对一定区域内的人流量进行监控,保障公共安全,提高此类工作的工作效率。在此次系统开发的研究过程中,对需求分析以及模块设计进行了充分的思考与考量,将理论与实际相结合,实现了人流量计算系统实用、高效、安全以及稳定等功能特点,有助于降低管理部门的管理压力,亦有助于企业、政府等进行决策,增加经济收益以及节约服务成本等。