YoloV8视频识别系统功能解析
系统组成
视频AI识别系统,该系统主要由四个部分组成,分别为:admin管理端,media流媒体端,分析端analyzer(c++)和YOLOV8模型端.系统当中四个模块之间的关系如下图:
管理端Admin模块
admin模块主要功能就是负责前后端的交互功能,其中使用的是Web作为前端的展示,后端的数据和接口的处理逻辑为Django的框架,负责执行一些自动化操作,和实现与临时数据库Redis之间的交互功能,包括:账号登陆,视频流id,报警视频和报警图片等信息的存储.
MediaServer媒体服务模块
该模块主要负责接收视频流,并且将通过算法分析后视频流转发出去的功能,这个模块也是使用C++进行编写的,使用CMake对流媒体服务模块进行编译得到MediaServer.exe文件,可以直接点击该文件,即可运行流媒体服务,如图
Analyses分析器模块
该模块是该系统当中最重要的一个模块,它负责连接流媒体模块,接收流媒体模块推送过来的实时视频流,还需要连接YOLOV8模型的API接口调用该接口当中的YOLOV8模型对视频流进行分析识别,最后还要连接前端Admin,将处理好的实时视频流推送给前端,前端才能展示处理过后的视频。启动分析模块后如图
YOLOV8模型模块
该模块主要就是实现了一个API端口负责将接入分析器当中的视频流推送到YOLOV8模型的API端口当中,经过API分析过后的视频流在回到分析器当中推送到前端进行展示,在这个过程当中难免会出现延时显示的问题,所以后续有进行优化,将YOLOV8模型集成到分析器模块当中,可以有效地降低时延,提高实时性。
项目运行的步骤和结果
1、admin 启动
进入到admin目录下执行:
# 创建虚拟环境
python -m venv venv
### 切换到虚拟环境
venv\Scripts\activate
pip install -r .\requirements.txt
//启动后台管理服务
python manage.py runserver 0.0.0.0:9001
后台管理服务:9001
流媒体服务器:9002
分析器:9003
//管理员用户
admin/admin888
analyzer 启动
需要自己将第三方库的文件加到Release文件夹当中,手动的将库文件加载到C++项目当中。将第三方库当中的bin目录下的所有.dll文件复制到 下面这个文件夹当中 ..\Analyzer\x64\Release
## 使用Visual stadio启动c++项目 打开
Analyzer.sln
启动后的界面(端口默认9703):
3、mediaServer 启动
点击mediaServer下的exe启动即可
4、启动yolo(可选)
可以选择启动,启动后可以使用API作为分析算法,也可以不启动选择不启动,使用onnxruntime_yolo8作为分析算法(集成到分析器模块当中),二者效果一样。
### 创建虚拟环境
python -m venv venv
### 切换到虚拟环境
venv\Scripts\activate
### 安装 pytorch-cpu版本依赖库
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
## 启动服务
python main.py
默认端口: 9702