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

img.png

## 使用Visual stadio启动c++项目 打开

Analyzer.sln

启动后的界面(端口默认9703):

img_3.png

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

5、使用过程中的设置如何布控,如何选定识别算法等,如下:

img_4.png

项目地址: