Skip to content

Latest commit

 

History

History
111 lines (79 loc) · 5.95 KB

README_zh.md

File metadata and controls

111 lines (79 loc) · 5.95 KB

基于深度学习的自动化行人检测(人体检测)和监控(视频监控)系统

README

监控在安保和巡查中发挥着重要作用,但也是一项非常乏味的任务,深度学习的出现在一定程度上将人类从这一任务中解放出来。本项目基于深度学习的目标检测去搭建了一个简单有效的监控系统,能够自动化进行人流统计和行人检测。

本系统基于Apache2.0协议开源,请严格遵守开源协议。

0x00 简介

本系统由以下三个子项目组成:

  • 1.基于TensorFlow平台的行人检测系统
  • 2.基于Android平台的推流系统
  • 3.基于JavaWeb的展示系统

总体框架如下图所示:

0x01 服务器部署

1.服务器的配置要求

配置 基本要求
操作系统 Ubuntu 16.04 x64
CPU 主频2.0GHz 以上
内存 8G以上
GPU NVIDIA GTX1080以上
网络 服务器IP地址需是公网IP

2.基于TensorFlow平台的行人检测系统

本系统依赖如下:

依赖项 安装方式
Python3.5
pip
TensorFlow-1.11.0-GPU
Python版本OpenCV
requests pip3 install requests
frozen_inference_graph.pb 下载地址
Nginx with RTMP 安装流程

运行系统:

  • 把训练模型后得到的.pb模型文件复制在python目录下;
  • 修改main.py文件RTMP_HOST变量,运行main.py

3.基于Android平台的推流系统

运行系统:

  • 在Idea或者AndroidStudio中导入android目录下的工程,并修改MainActivity.java中的静态变量;

4.基于SSM(SpringMVC+Spring+Mybatis)互联网轻量级框架的展示系统

本系统依赖如下:

依赖项 安装方式
JDK-1.8.0
Apache-Tomcat-9.0.12
Maven
Mysql 需配置远程访问权限

运行系统:

  • 展示系统基于Idea集成开发环境进行开发,SSM框架中的依赖均基于Maven进行配置,在Idea中导入web目录下的工程,导出war包,将war包放在服务器tomcat/webapps目录下,运行./startup.sh,启动tomcat容器;

0x02 项目展示

  • 新增了针对大数据量的人流统计的可视化视图;

0x03 关于

  • 如何支持作者:点击右上角的"star" 的按钮,是对作者的最大支持;
  • 如有问题或者讨论行人检测算法模型,请提交issue;

0x04 Q&A

Q: 我觉得原来的模型效果不好,应该怎么做?

A: 如果你想重新训练这个模型,获得更好的效果,请参考这篇文章教程 | 用深度学习DIY自动化监控系统,
训练完成之后,将训练导出的网络权值文件替换原来的网络权值文件即可.

Q: 这个项目适合生产环境部署用嘛?

A: Demo项目,不适合部署于生产环境.

Q: 数据库sql文件的问题

A: 提供一个数据库恢复文件,blog.sql.zip, 需要提前创建一个mysql数据库名为blog,修改 PedestrianDetectionSystem/web/PeopleDetection/src/main/resources/generator.properties 和 PedestrianDetectionSystem/web/PeopleDetection/src/main/java/com/webprague/config/RootConfig.java 其中关于数据库的地址,数据库账号和密码的配置。

Q: 行人统计功能的问题

A: 演示界面上面的行人流量统计是直接往数据库里面加的假数据。仅仅为了提交大作业的时候美观一点??😂 实际上没找到思路,并没有正经的实现过。

0x05 后记

这个项目我为研一上学期JavaWeb课程的大作业所写的项目,实际核心部分所用时间为一个星期.
至于为什么JavaWeb课程写了这个一个非主流的项目,因为不想写某某管理系统这种烂大街的项目,因此想写一个新颖的项目,正在找灵感的时候,恰好这时候某个公众号推了了一篇文章,觉得比较有意思,于是萌发了写一个视频行人检测项目的想法.
在这个项目里面服务端使用了基于TF框架的这个项目Pedestrian-Detection,使用了FFmpeg框架进行推/拉流,使用了Nginx分发视频流,使用Python整合以上框架进行调用.
Android端的实现使用了RtmpRecoder,在这个项目的基础了进行了一些薄封装.
在此对以上开源项目表示感谢.
最后使用JavaWeb套了一层壳最后完成了此大作业.
由于我研究生阶段的方向并不是图像方向,因此本项目不再更新.

至于说为什么英文README文档没有更新了,那就是作者太懒了,欢迎提交PR,本人会即时确认后合并。