Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
KirigiriSuzumiya d06134d640 | 1 year ago | |
---|---|---|
.idea | 1 year ago | |
README.assets | 1 year ago | |
crowd_vis | 1 year ago | |
dbmodel | 1 year ago | |
html | 1 year ago | |
output | 1 year ago | |
pp-human | 1 year ago | |
statics | 1 year ago | |
开发者说 | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 1 year ago | |
__init__.py | 1 year ago | |
db.sqlite3 | 1 year ago | |
manage.py | 1 year ago | |
requirements.txt | 1 year ago | |
test1.mp4 | 1 year ago |
在超大城市的管理中,如何应对人口密度增大所造成的拥挤、踩踏等事故是不可回避的问题。一旦人流密度超过场所所能容纳上限,后续的风险往往难以管控。例如在10月29日的韩国梨泰院发生的踩踏事故共造成156人丧生,造成了不可挽回的损失。本项目旨在对特定区域的人流量进行智慧监控,以辅助管理者在事故发生前及时实施管控,以减少甚至彻底消除大人流量带来的风险。
基于[PP-Human](PaddleDetection/deploy/pipeline at release/2.5 · PaddlePaddle/PaddleDetection (github.com))行人分析工具,我们使用Django+Pyecharts完成动态数据大屏的开发, 完成了人流数据的采集与入库, 打架、摔倒、打电话等事件的警报收集与可视化, 并添加了口罩检测。 对于边缘端的CPU部署性能优化,我们采用Openvino+ONNX的方案,并同时提供各种大小尺寸的模型,以满足不同设备的算力限制。
本项目旨在实现对某一特定监控区域进出口人流量的检测与记录,而[PP-Human](PaddleDetection/deploy/pipeline at release/2.5 · PaddlePaddle/PaddleDetection (github.com))为我们提供了全套的解决方案。基于[PP-Human](PaddleDetection/deploy/pipeline at release/2.5 · PaddlePaddle/PaddleDetection (github.com))完善的pipeline,我们使用Django和pyecharts开发了可视化前端;并针对推理速度进行了一定优化,替换了原有的PaddleInference推理方式,使用Openvino以提高pipeine在CPU上的运行速度。
主要支持的功能与PP-Human相同:
功能 | 方案 | 模型 |
---|---|---|
出入计数,区域闯入识别 | 行人检测与追踪 | PP-YOLOE OC-SORT |
行人属性识别 | 单人图像多分类 | PP-HGNet PP-LCNet |
打电话 | 单人图像分类行为识别 | PP-HGNet |
抽烟 | 单人目标检测行为识别 | PP-YOLOE |
打架识别 | 视频分类行为识别 | PP-TSM |
摔倒识别 | 骨骼关键点行为识别 | HRNet ST-GCN |
在数据采集与入库过程中,根据任务性质不同,采用了两种方案:
在数据可视化及事件警报的展示上,我们使用Django与Echarts配合完成。使用Django的StreamingHttpResponse
实现视频流的传输,并用ajax定时更新网页上的图表与警报信息,实现动态数据大屏的基础功能。
*数据即时动态更新示例
同时根据具体应用落地的差异,数据可视化大屏中预留了各种图表的位置,可以根据需求自行设计所需的数据图表进行展示,丰富大屏功能,实现个性化功能定制。
为适应不同人流量密度及设备算力对检测跟踪模型性能的影响,在PP-Human的基础上我们提供多种不同方案可供参考选择。
使用默认的PP-Human模型Pipeline方案,检测精度高,适合设备算力高、人流密度相对较低的场景
功能 | 方案 | 模型 |
---|---|---|
出入计数,区域闯入识别 | 行人检测与追踪 | PP-YOLOE OC-SORT |
行人属性识别 | 单人图像多分类 | PP-HGNet PP-LCNet |
打电话 | 单人图像分类行为识别 | PP-HGNet |
抽烟 | 单人目标检测行为识别 | PP-YOLOE |
打架识别 | 视频分类行为识别 | PP-TSM |
摔倒识别 | 骨骼关键点行为识别 | HRNet ST-GCN |
为适应算力受限的场景,更换了部分推理速度较慢的模型(行人检测模型与骨骼关键点模型)
功能 | 方案 | 模型 |
---|---|---|
出入计数,区域闯入识别 | 行人检测与追踪 | PP-Picodet OC-SORT |
行人属性识别 | 单人图像多分类 | PP-HGNet PP-LCNet |
打电话 | 单人图像分类行为识别 | PP-HGNet |
抽烟 | 单人目标检测行为识别 | PP-YOLOE |
打架识别 | 视频分类行为识别 | PP-TSM |
摔倒识别 | 骨骼关键点行为识别 | PP-Tinypose ST-GCN |
当人流密度较高时,行人互相遮挡比较严重,为不损失追踪等功能,将行人全身检测模型替换为行人头部检测模型。
当人流密度极高时,检测跟踪模型效果较差,使用热力图方式估计人流较为精确(CSRNet)
由于本项目所使用pipeline模型众多,各自算力需求也各有不同,在CPU条件下可能不能够在开启所有功能的条件下保持良好的性能,我们使用Openvino+多种模型方案的形式尽量优化pipeline的推理性能。所有规格方案中的模型都可以自动下载或已经包括在本repo中。您也可以前往PaddleDetection挑选自己所需的模型规格并训练调优。
PP-human模型库:链接
目前已经完成所有功能模块的Openvino推理支持!!!
功能 | 模型 | 替换前fps | 替换后fps |
---|---|---|---|
行人检测与跟踪(640*640) | PP-YOLOe-s | 2.77 | 11.11 |
行人检测与跟踪(320*320) | Picodet | / | 35.02 |
行人检测+基于视频分类打架识别 | PP-YOLOe-s + pp-TSM | / | 10.30 |
行人检测+基于图像分类打电话识别 | Picodet + PPHGNet | / | 7.68 |
*以上均在Intel AiBox(11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz )上测试所得, 包括所有前后处理流程
**行人检测320输入模型速度提升明显, 但对视野较广的镜头识别效果较差
*英特尔AI Box
项目链接:【OpenVino】PP-Human人流量大屏 - 飞桨AI Studio (baidu.com)
整个项目可以在项目挂载的数据集中下载,下载解压完成后
# 切换到解压目录
cd crowd_vis
# 我已经把依赖全部写在requirements.txt中,直接pip安装即可
# paddlepaddle没有写入,没有安装的话自行安装
pip install -r requirements.txt
命令行运行:
python manage.py runserver
出现以下内容即启动成功
System check identified no issues (0 silenced).
August 19, 2022 - 22:53:05
Django version 3.2.15, using settings 'crowd_vis.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
随后启动你的浏览器,输入http://127.0.0.1:8000/
即可访问
基于PP-Human行人分析工具,使用Django+Pyecharts完成的动态数据大屏。提供三种不同场景方案的人流量监测及入库,并提供打架、摔倒、打电话等事件的识别与告警。
Pickle JavaScript Python SVG Markdown other
Apache-2.0
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》