依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8|回复: 0

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统

[复制链接] 主动推送

9282

主题

9334

帖子

9974

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9974
发表于 昨天 12:17 | 显示全部楼层 |阅读模式
java yolo onnx tensorrt yolov8 图像识别 视频推流 基于springboot的AI算法中台系统
图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统


  1. 1.基于SpringBoot+Docker+Cuda+Cudnn+Pythorch+Onnx+Tensorrt+Yolov8+ffmpeg+zlmediakit 的AI算法中台系统,本系统主要实现JAVA调用Python脚本的方式,实现在GPU(Nvidia Tesla T4)上进行yolov8的加速推理运算。

  2. 2.项目可实现人、车、火灾烟雾、河道漂浮物、道路裂痕等视频的实时识别,并将识别结果通过ffmpeg推流到zlmediakit流媒体服务器,使得在web页面上可以同时查看原始视频和实时计算视频。

  3. 3.项目每隔1分钟将推理结果信息和对应的图片推送到文件服务器minio和消息队列rocketmq,便于开发者获取到推理结果进行业务开发。

  4. 4.项目同时支持基于ONNX的推理运算和基于Tensorrt的加速推理运算2种方式,只需在调用时传递不同参数即可。

  5. 5.项目同时支持Linux和Windows环境,代码自动判断运行的环境并执行对应的.bat或.sh脚本文件以启动AI模型推理。

  6. 6.项目包含前端完整代码和后端完整代码,开箱即用,为JAVA开发者训练、部署、使用AI模型提供了参考。
复制代码
软件架构
1.系统架构 本AI算法中台系统结合了SpringBoot开发Web项目的优势、Python训练调试AI模型的优势、Shell脚本便于调用Linux服务器资源的优势,将不同语言综合一起协调工作,并将项目运行在Docker容器中以便于运维和管理,让JAVA开发者能够方便训练、部署、使用AI模型。

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统
2.技术栈
开发环境:IDEA、JDK1.8、Maven、Gitlab、Pycharm、Anaconda3
软件架构:Nginx + SpringBoot + Vue + Shell + Python
前端框架:Vue + Nodejs
Web框架:SpringBoot
Orm框架:MyBatis3
数据库:Mysql、Redis、MongoDB
消息队列:RocketMq
文件服务: Minio
代码生成: FreeMarker自动生成后端Java代码和前端Vue代码
CPU设备: Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz
GPU设备: Nvidia Tesla T4 16G
AI模型:Yolov8n/Yolov8m
训练环境:Pytorch2.3.0 + Onnxruntime-gpu1.16.1 + Ultralytics8.2.48
推理环境: Cuda11.8 + Cudnn8.6.0 + Tensorrt8.5.1.7 + Onnxruntime-gpu1.16.1
推理加速: Tensorrt8.5.1.7
视频操作:Opencv4.7.0
视频推流: FFmpeg4.2.7
流媒体服务:Zlmediakit
部署环境:Docker + Ubuntu20.04
目录说明
data/algorithm_model : 算法模型库,提供了作者训练并部署的5个常用算法模型,包括.pt .onnx .engine 三种格式
data/doc : 算法中台接口文档
data/front_code : 项目前端Vue代码
data/linux : linux下的onnx和tensorrt推理运行代码
data/windows : windows下的onnx和tensorrt推理运行代码
data/sql : 项目数据库
src : 项目后端springboot代码
安装教程
1.安装Zlmediakit流媒体服务器,安装方法如下:
  1. (1).拉取docker镜像
  2. docker pull zlmediakit/zlmediakit:master

  3. (2).创建目录以存放zlmediakit数据
  4. mkdir -p /home/docker/zlmediakit && chmod 777 /home/docker/zlmediakit

  5. (3).运行镜像
  6.     --1.先运行镜像得到配置文件
  7.     docker run --name zlmediakit -d zlmediakit/zlmediakit:master

  8.     --2.复制 zlmediakit 容器文件到指定目录
  9.     docker cp -a zlmediakit:/opt/media /home/docker/zlmediakit

  10.     --3.删除 zlmediakit 容器
  11.     docker rm -f zlmediakit

  12.     --4.重新按自定义方式运行
  13.     docker run --name zlmediakit --restart=always --env MODE=standalone -e TZ="Asia/Shanghai" \
  14.         -v /home/docker/zlmediakit/media/bin:/opt/media/bin \
  15.         -v /home/docker/zlmediakit/media/conf:/opt/media/conf \
  16.         -p 11935:1935 -p 11080:80 -p 11554:554 \
  17.         -p 11000:10000 -p 11000:10000/udp -p 18000:8000/udp \
  18.         -p 50000-50300:50000-50300/udp \
  19.         -d zlmediakit/zlmediakit:master
复制代码
2.安装mysql、mongodb、redis、rocketmq、minio
3.导入项目的Mysql数据库 data/sql/algorithm_center.sql
4.安装推理环境并运行后端项目
(1).在Windows下安装推理环境并运行(根据自己计算机的硬件配置情况选择如下3种安装方式中的1种)
  1.   **1**.安装推理环境

  2.     1).计算机没有GPU显卡---使用onnxruntime的cpu版本进行推理
  3.     --1.电脑主机需要安装如下软件
  4.         ①.Anaconda3(安装方法百度: Windows安装anaconda3 或参考 https://blog.csdn.net/zwLoneranger/article/details/138743242)
  5.         ②.opencv4.7.0 (安装方法百度: Windows安装opencv)
  6.         ③.FFmpeg4.2.7 (安装方法百度: Windows安装FFmpeg)

  7.     --2.由于推理代码是使用python语言运行,所以需要在Python环境(如Python3.9/Anaconda3/Miniconda)中安装如下依赖库:
  8.         ①.opencv-python4.9.0.80 (安装方法: pip install opencv-python==4.9.0.80 -i https://pypi.tuna.tsinghua.edu.cn/simple/)
  9.         ②.torch2.0.1 + torchvision0.15.2 + torchaudio2.0.2 (安装方法: pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118)
  10.         ③.yolov8 ultralytics (安装方法: pip install ultralytics==8.2.48 -i https://pypi.tuna.tsinghua.edu.cn/simple/)
  11.         ④.Onnxruntime-cpu1.16.1 (运行.onnx模型文件需要该依赖,此处安装cpu版本。安装方法: pip install onnxruntime-cpu==1.16.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/)
  12.    

  13.     2).计算机有GPU显卡---使用onnxruntime的gpu版本进行推理
  14.     --1.电脑主机需要安装如下软件
  15.         ①.Anaconda3(安装方法百度: Windows安装anaconda3 或参考 https://blog.csdn.net/zwLoneranger/article/details/138743242)
  16.         ②.opencv4.7.0 (安装方法百度: Windows安装opencv)
  17.         ③.FFmpeg4.2.7 (安装方法百度: Windows安装FFmpeg)
  18.         ④.Cuda11.8 (安装方法百度: Windows安装Cuda)
  19.         ⑤.Cudnn8.6.0 (安装方法百度: Windows安装Cudnn)

  20.     --2.由于推理代码是使用python语言运行,所以需要在Python环境(如Python3.9/Anaconda3/Miniconda)中安装如下依赖库:
  21.         ①.opencv-python4.9.0.80 (安装方法: pip install opencv-python==4.9.0.80 -i https://pypi.tuna.tsinghua.edu.cn/simple/)
  22.         ②.torch2.0.1 + torchvision0.15.2 + torchaudio2.0.2 (安装方法: pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118)
  23.         ③.yolov8 ultralytics (安装方法: pip install ultralytics==8.2.48 -i https://pypi.tuna.tsinghua.edu.cn/simple/)
  24.         ④.Onnxruntime-gpu1.16.1 (运行.onnx模型文件需要该依赖,此处安装gpu版本。安装方法: pip install onnxruntime-gpu==1.16.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/)
  25.    

  26.     3).计算机有GPU显卡,并且是Nvidia的显卡---使用Nvidia的Tensorrt进行推理加速(速度大于onnx推理,是目前推理速度最快的方式)
  27.     --1.电脑主机需要安装如下软件
  28.         ①.Anaconda3(安装方法百度: Windows安装anaconda3 或参考 https://blog.csdn.net/zwLoneranger/article/details/138743242)
  29.         ②.opencv4.7.0 (安装方法百度: Windows安装opencv)
  30.         ③.FFmpeg4.2.7 (安装方法百度: Windows安装FFmpeg)
  31.         ④.Cuda11.8 (安装方法百度: Windows安装Cuda)
  32.         ⑤.Cudnn8.6.0 (安装方法百度: Windows安装Cudnn)
  33.         ⑥.Tensorrt8.5.1.7 (运行.engine模型文件需要该依赖。安装方法百度: Windows安装Tensorrt)

  34.     --2.由于推理代码是使用python语言运行,所以需要在Python环境(如Python3.9/Anaconda3/Miniconda)中安装如下依赖库:
  35.         ①.opencv-python4.9.0.80 (安装方法: pip install opencv-python==4.9.0.80 -i https://pypi.tuna.tsinghua.edu.cn/simple/)
  36.         ②.torch2.0.1 + torchvision0.15.2 + torchaudio2.0.2 (安装方法: pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118)
  37.         ③.yolov8 ultralytics (安装方法: pip install ultralytics==8.2.48 -i https://pypi.tuna.tsinghua.edu.cn/simple/)
  38.         ④.Onnxruntime-gpu1.16.1 (运行.onnx模型文件需要该依赖,此处安装gpu版本。安装方法: pip install onnxruntime-gpu==1.16.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/)


  39.   **2**.本地IDEA中启动后端项目

  40.     --1.修改mysql、mongoDB、redis、rocketmq、minio的连接地址
  41.   
  42.     --2.运行 AlgorithmCenterApplication.main(String[] args)以启动项目
复制代码
(2).在Linux的Docker容器中安装推理环境并运行
  1.   1).在服务器新建3个目录比如 /home/docker/ai/py_java/algcenter  /home/docker/ai/py_java/nvidia  /home/docker/ai/py_java/opencv


  2.   2).拷贝docker运行的所需文件到服务器
  3.      --1.将data/algcenter/下的所有内容拷贝到/home/docker/ai/py_java/algcenter/目录,algcenter下的内容为项目jar包(jar需要执行 mvn clean intsall打包放入algcenter)和项目的配置文件

  4.      --2.下载英伟达(NVIDIA)相关的文件并保存到/home/docker/ai/py_java/nvidia/ 目录
  5.          ①.下载cuda_11.8,下载命令 wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

  6.          ②.下载cuDNN8.6.0.163,下载地址 https://developer.nvidia.com/rdp/cudnn-archive#a-collapse897-118

  7.          ③.下载tensorRT 8.5.1.17,下载地址 https://developer.nvidia.com/tensorrt

  8.      --3.下载opencv4.7.0并保存到/home/docker/ai/py_java/opencv/目录,下载地址 https://opencv.org/releases/

  9.      --4.构建docker镜像
  10.          ①.将data/docker/Dockerfile 拷贝到服务器 /home/docker/ai/py_java/
  11.          
  12.          ②.进入到/home/docker/ai/py_java/目录,执行 docker build -t py_java_ai:1.0 . 命令以构建镜像

  13.          ③.该镜像包含ubuntu20.04、jdk11、python3.8、pip、opencv、cuda11.8、cudnn8.6.0、TensorRT8.5.1.7、onnxruntime-gpu==1.16.1、pytorch2.3.0、ultralytics8.2.48


  14.    3).镜像构建完成后,执行docker run 命令以便运行algcenter
  15.       docker run --name=algcenter --restart=always --privileged=true \
  16.                  --gpus all \
  17.                  -p 8088:8088 \
  18.                  -v /home/docker/ai/py_java/algcenter/:/data/app \
  19.                  -v /home/docker/ai/py_java/algcenter/config:/config \
  20.                  -v /etc/localtime:/etc/localtime \
  21.                  -d py_java_ai:1.0 /data/app/run.sh
复制代码
5.运行前端项目
(1).本地VSCODE中运行:
  1.   1).安装依赖 npm install
  2.   
  3.   2).修改服务器的访问地址

  4.   3).启动项目 npm run dev

  5.   4).访问地址 http://ip:8080/login  用户名/密码: admin / 123456
复制代码
(2).服务器Nginx中运行:
  1.   1).nginx的安装

  2.      --1.在服务器新建目录 /home/docker/ai/nginx/

  3.      --2.将data/nginx/下的所有文件拷贝到服务器 /home/docker/ai/nginx/目录下
  4.      
  5.      --3.执行docker run 命令以便运行nginx
  6.         docker run --name=nginx --restart=always  --privileged=true \
  7.                 -p 8080:80 -p 1935:1935 \
  8.                 -v /home/docker/ai/nginx/data:/usr/share/nginx/html/ \
  9.                 -v /home/docker/ai/nginx/config/nginx.conf:/etc/nginx/nginx.conf \
  10.                 -v /home/docker/ai/nginx/config/conf.d/default.conf:/etc/nginx/conf.d/default.conf\
  11.                 -v /home/docker/ai/nginx/logs:/var/log/nginx/ \
  12.                 -v /home/docker/ai/nginx/ssl:/ssl/ \
  13.                 -d tiangolo/nginx:latest

  14.   2).打包项目 npm build
  15.   
  16.   3).将打包后新生成的dist文件夹拷贝到Nginx的/home/docker/ai/nginx/data/目录

  17.   4).访问地址 http://ip:8080/login  用户名/密码: admin / 123456
复制代码
使用说明
1.算法中台的使用
(1).前后端代码运行起来后,打开页面 http://ip:8080/login 用户名/密码: admin / 123456
(2).点击"算法模型"即可上传修改删除训练好的AI模型
(3).点击"计算任务"即可查看需要计算的任务,点击启用即可开始进行AI模型的推理运算
(4).点击"告警中心"即可查看模型的告警记录,比如识别到河道有垃圾漂浮物即产生一条告警信息
(5).点击"推送日志"即可查看本平台向其他平台推送的HTTP告警日志记录
(6).点击"客户管理"即可查看需要给哪些客户平台推送告警信息
(7).打开文件data/doc_sql/算法中台接口文档(v2.0).docx 即可通过接口实现与算法中台的对接
2.模型的训练
以训练YOLOv8目标检测模型为例:
(1).Yolov8 预训练模型下载 (附件中包含)
(2).自己准备数据或在kaggle、 CV Datasets on the web、 阿里天池数据集等深度学习数据集下载网站下载数据
(3).将数据集分为训练集、验证集、测试集,使用Pytorch加载Yolov8预训练模型并训练自己的数据
(4).查看训练结果,主要关注精确度Precision、召回率Recall、P-R曲线、F1 Score、mAP50、mAP50-95等重要参数
(5).根据模型训练结果判断是否需要进行再次的调优训练,例如修改Epoch、调整训练集、测试集的比例等等
(6).训练完成后得到当前最佳的模型best.pt
(7).使用Python脚本调用best.pt运行测试集数据进行模型的验证
3.模型的部署
(1).将训练好的best.pt拷贝到容器内部的 /data/app/yolo/tensorrt_infer/YOLOv8-TensorRT-main目录下
(2).进入到/data/app/yolo/tensorrt_infer/YOLOv8-TensorRT-main目录,通过如下命令将 best.pt 转换为 best.onnx模型格式 python3 export-det.py --weights best.pt --iou-thres 0.65 --conf-thres 0.25 --topk 100 --opset 11 --sim --input-shape 1 3 640 640
(3).接着执行如下命令将best.onnx转为tensorrt的引擎文件格式best.engine,以便实现在nvidia gpu上进行推理加速 /gsis_ai/nvidia/TensorRT-8.5.1.7/bin/trtexec --onnx=best.onnx --saveEngine=best.engine --fp16
(4).在算法中台管理界面点击"算法模型-添加",填写模型基本信息,视频地址可以是rtsp/rtmp/flv/hls/http/ws等任意格式的视频地址或离线视频文件.mp4,注意模型键(modelKey)为刚才生成的引擎文件的文件名best,脚本键(shellKey)为yolov8
(5).填写好模型信息后,点击文件上传,将转换生成好的best.engine上传到minio中,后期运行该模型时系统会自动下载该模型到对应的工作目录(比如 /data/app/yolo/tensorrt_infer/)
(6).在计算任务中点击 "新增"选择模型,添加对应的视频地址,然后保存
(7).在任务列表点击"启用"即可加载模型并进行推理
(8).启用成功后点击最右边视频图标,即可查看原始视频画面和实时推理画面
效果展示

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统

图像识别 视频推流 基于springboot的AI算法中台系统 视频算法中台系统


游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0
提取码下载:
文件名称:提取码下载.txt 
下载次数:0  文件大小:13 Bytes  售价:800金钱 [记录]
下载权限: 不限 [购买VIP]   [充值]   [在线充值]   【VIP会员5折;永久VIP免费】
安全检测,请放心下载





相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-8-24 20:09

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表