1、ISSN 1006 7167CN 31 1707/TESEACH AND EXPLOATION IN LABOATOY第 42 卷 第 1 期Vol 42 No12023 年 1 月Jan 2023计算机技术应用DOI:10 19927/j cnki syyt 2023 01 028基于深度学习的人群密度检测系统在嵌入式平台上的应用张立立1,白柯岩1,王彤1,高东博2,信俊昌1(1 东北大学 计算机科学与工程学院,沈阳 110819;2 中核控制系统工程有限公司,北京 102400)摘要:人群密度计数是智能化视频监控分析领域的关键要素和研究热点。围绕基于目标检测和边缘计算的人群密度检测系统进行
2、研究与设计,主要分为硬件端、通信层和 Web 端 3 个部分。硬件端利用摄像头实时监测,树莓派作为边缘设备运行 YOLOv4-tiny 的目标检测算法,将结果送入通信层-数据库,Web 端利用 AJAX 等异步技术获取数据,引入 PyMySQL 库完成 Web 后端与数据库的连接,利用 ApacheEcharts 框架进行 JavaScript 的交互功能设计,将系统在实际场景测试。结果表明,系统识别效果较好,可视化界面实时更新系统参数,实现了在嵌入式平台上的稳定运行。关键词:深度学习;目标检测;边缘计算;嵌入式设备中图分类号:TP 393文献标志码:A文章编号:1006 7167(2023)
3、01 0141 06Application of Crowd Flow Density Detection System Basedon Deep Learning in Embedded PlatformZHANG Lili1,BAI Keyan1,WANG Tong1,GAO Dongbo2,XIN Junchang1(1 College of Computer Science and Engineering,Northeastern University,Shenyang 110819,China;2 China Nuclear Control System Engineering Co
4、,Ltd,Beijing 102400,China)Abstract:Crowd density counting is a key problem and research hotspot in the field of intelligent video surveillance andanalysis This paper focuses on the research and design of crowd density detection system based on object detection andedge computing,which is mainly divid
5、ed into three parts:hardware,communication layer and Web Hardware usescamera to monitor in real time,raspberry pie as edge device runs YOLOv4-tiny target detection algorithm,and sends theresults to communication layer-database Web uses asynchronous technology such as AJAX to obtain data,introducesPy
6、MySQL library to complete the connection between Web back-end and database,and uses Apache Echarts frameworkto design JavaScript interactive function Finally,the system is tested in the actual scene Experimental results show thatthe recognition effect of the system is good,and the visual interface u
7、pdates the system parameters in real time,thusrealizing the stable operation on the embedded platformKey words:deep learning;target detection;edge computation;embedded device收稿日期:2022-06-18基金项目:国家自然科学基金项目(61671141)作者简介:张立立(1984 ),女,辽宁阜新人,硕士,高级实验师,主要研究方向为通信技术、图像处理、实验技术管理等。Tel:15698842626;E-mail:zhang
8、lili1 cse neu edu cn0引言人群计数或人群密度估计是智能视频图像1 数据处理技术的重要组成部分,以准确估计视频或图像中的人数与人群空间密度分布为主要任务目标。人群计数算法2 为利用视频监控保障城市安全3 提供了第 42 卷有效的技术支持,被广泛应用于安防预警、城市规划、新闻媒体、交通调度与智能商业等领域以及体育赛事、旅游景点、大型集会、交通要道等诸多实际场景4。人群密度检测系统常依托服务器进行系统开发,这种开发方式在系统移植时会产生诸多问题,如系统运行环境、配置要求严格;与其他系统争夺网络和存储资源;系统自身安全性不能被保证;与其他系统进行交互时会产生延时等问题5。针对这些问
9、题本文引入边缘计算的概念6。选用树莓派开发板7 为边缘设备,将人群密度检测系统嵌入边缘设备进行系统开发,使得视频图像获取、目标检测、目标跟踪、数据处理等功能融为一体,不仅方便设备现场安装,同时方便人群密度检测系统被其他系统进行调用,保证整个系统整体运行的稳定与安全。1系统设计要求及总体框架人群计数在智能视频图像数据处理领域扮演着重要角色,在许多场景都有着十分广泛的应用。本文案例主要用于学生教学,系统在图书馆和教学楼背景下进行布置,实现一个实际场景的人群密度监测系统。要求如下:任务 1学习基于深度学习的人群密度检测原理,并在 PC 上实现对静态图像中人群密度的检测。任务 2在嵌入式开发板上实现对
10、静态图像人群密度检测。任务 3实现摄像头实时视频流的人群密度检测。任务 4设计一个图书馆人群密度监测系统,用至少2 台由嵌入式开发板8 构成的前端设备进行人群密度检测,将检测结果发送给后台服务器。将任务拆分为:硬件端、通信层和 Web 端 3 个子任务,其结构框图如图 1 所示。图 1系统设计技术框架(1)构建适用于边缘设备的目标检测算法和树莓派部署。现有的可用于深度学习的边缘设备,其计算能力与 GPU 服务器相差甚远,无法稳定、实时运行大规模的深度卷积神经网络计算,较浅的网络虽在检测速度能够达到系统要求,但其检测精度过低,无法应用于真实场景,构建适用于边缘设备且精度与速度达到平衡满足系统需求
11、的人群密度检测算法是系统开发的第 1 个难点。本文选用的嵌入式设备为 linux 系统9 的树莓派,改进适用于嵌入式设备的 YOLOv4 tiny和树莓派的配置。(2)边缘计算设备和 PC 端通信。多源输入设备和一台 PC 端通信也是本项目难点之一。经过长时间的探索与实验,方案从 ftp 到 fttp 再到 Websocket,最终确定 MySQL 数据库方式10,解决多个树莓派数据源的问题。(3)Web 端开发设计。设计采用基于 JavaScript的 jQuery 库,核心是利用 AJAX 技术11,可实现无刷新状态的更新页面以及异步提交,可视化展示效果更好,提升用户体验。2实验系统设计方
12、案2.1硬件端硬件端分为监测设备、树莓派算法处理和传输接口 3 部分。2.1 1基于 YOLOv4-tiny 的人群密度检测算法将神经网络在嵌入式设备上运行,可被视为边缘计算的一种应用,本项目利用搭载摄像头的树莓派承担边缘计算的功能,PC 端仅用于对接收存储检测结果。进行后续处理。相较于树莓派传输视频流或图像集至 PC 端后再进行目标检测,该方案每秒传输的数据量仅有少量文本信息,极大地减少了传输所占用的带宽资源;直接在硬件端进行图像处理计算,分担了PC 端的大部分算力。显然大型卷积神经网络无法在单纯树莓派上顺利运行,只能使用先训练后移植的方式实现人头计数。又由于深度学习卷积神经网络在训练过程中
13、需要的数据集较大,为尽可能减少训练过程所耗费的时间,由此算法的训练速度也是极为重要的选择指标。综合上述问题考虑,选择相对于主流神经网络,速度和精度都更快的 YOLOv4-Tiny 网络12。YOLOV4-Tiny 网络分为 3 个部分构建:第 1 部分为主干特征提取网络 CSPDarknet53-Tiny;第 2 部分为特征金字塔网络(Feature PyramidNetworks,FPN);第3部 分 为YOLOHead。CSPDarknet53-Tiny,其实是简化版本的 CSPDarknets3,对输入图片进行 2 次卷积标准化操作加激活函数,可见,在 YOLOv4-Tiny 使用的激活
14、函数是 Leaky 激活函数,这 2 次卷积标准化加激活函数的步长均为 2,输入的图片经过 2 次高和宽的压缩,可得 2 个特征层。3个 esblock_body 是一个残差网络结构,每进行一次esblock-body,输入的特征层的高和宽就会压缩一次。241第 1 期张立立,等:基于深度学习的人群密度检测系统在嵌入式平台上的应用进行完 3 次 esblock-body 后,还会再进行一次卷积标准化加激活函数操作进行特征整合。将特征提取网络所提取的有效特征层传入 FPN 中,进行一次卷积之后,再进行卷积加采样。此操作模式可加强特征的融合,提高网络的特征提取能力,通过 FPN 之后,获得 2个具
15、有更高语义的特征层,之后用 2 个 YOLO Head 对2 个高语义特征层进行结果预测。YOLOv4-Tiny 的网络结构图如图 2 所示。图 2算法网络结构图实际测试中,发现官方自带的权重检测模型是对人的全身识别,在高人群密度场景或者是有障碍物遮挡半身时的识别准确度较低,综合考虑项目的应用场景,这里采用自定义人头数据集,通过 yolov4 训练出了只针对人头权重检测模型。利用它再对密集人群进行识别,识别准确度有明显提升。2 1 2树莓派硬件部署(1)树莓派主板贴散热片。(2)安装风扇和摄像头。(3)安装树莓派系统到 SD 卡中。将 SD 使用卡托或者读卡器后,连上电脑。解压并运行 win3
16、2 diskimager 软件,选择系统镜像(img 文件),“Device”下选择 SD 的盘符,选择“Write”,期间出现对话框选择。注意事项:提示是否要格式化 SD 卡时,不要格式化,否则会导致安装在隐藏分区的系统被擦除而无法进入系统。(4)将树莓派连接显示器。树莓派主板连接显示器后,如出现黑屏不亮,其原因为:树莓派一般可自动检测目标设备的分辨率,对于部分设备,分辨率可能会明显不对(过大或过小),这时需要给树莓派指定一个分辨率,修改树莓派 config txt 文件。例如修改 hdmi_group=2,hdmi_mode=9,代表分辨率为 800 60060 Hz。(5)初始化设置后,将 VNC 连接树莓派,便于之后操作树莓派完成各项功能。如遇到 VNC 连接超时,是因为树莓派的 VNC 服务并未打开,开启树莓派的VNC Server 服务后即可连接。(6)配 置 yolov4 环 境。安 装 opencv 和tensorflow。树莓派自带 2 个版本的 python(2.7 和 3.7),由于pip 指令和 python 指令默认绑定为 python2.7 版本,而安装 o