NodeMediaServer产业集成-飞浆PaddleDetection进行道路交通AI分析

简介

NodeMediaServer V3是一个Go语言开发的高性能流媒体服务端软件,支持RTMPRTSPSRTKMPGB28181JT1078协议推流,RTMPRTSPKMPHTTP(WS)-FLVHTTP(WS)-MP4HLS协议播流。内置图形化管理拉流转发器,可主动拉取远端RTMPRTSPRTPHTTP流,转发到本机或远程服务器。

PaddleDetection是一个基于PaddlePaddle的目标检测端到端开发套件,在提供丰富的模型组件和测试基准的同时,注重端到端的产业落地应用,通过打造产业级特色模型|工具、建设产业应用范例等手段,帮助开发者实现数据准备、模型选型、模型训练、模型部署的全流程打通,快速进行落地应用。

安装

NodeMediaServer 一键部署安装,本案例使用windows平台
下载:https://cdn.nodemedia.cn/nms/3.19.2/nms-windows-amd64-v3.19.2-20230103.zip
解压后双击nms.exe运行

PaddleDetection基于Paddle,详细安装步骤:开始使用_飞桨-源于产业实践的开源深度学习平台

本例安装环境
python 3.9.13, 下载地址:https://www.python.org/ftp/python/3.9.13/python-3.9.13-amd64.exe
不要使用3.10.x,更不要使用3.11.x ,当前PaddleDetection版本号2.5只支持python3.9。也不要使用windows应用商店的python。

安装cuda10.2版对应的paddle-gpu版

python -m pip install paddlepaddle-gpu==2.4.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

验证安装:安装完成后您可以使用 python 进入 python 解释器,输入import paddle ,再输入 paddle.utils.run_check()

如果出现PaddlePaddle is installed successfully!,说明您已成功安装。

下载PaddleDetection源码https://github.com/PaddlePaddle/PaddleDetection/archive/refs/tags/v2.5.0.zip

解压后安装:

# 安装其他依赖
cd PaddleDetection
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 编译安装paddledet
python setup.py install

下载ffmpeg: https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-5.0.1-full_build.7z
解压后将ffmpeg.exe拷贝到 c:/windows/ 目录中

应用案例

NodeMediaServer接收一路道路推流,可以是RTMP, GB28181或RTSP拉流转发等方式。

 

本案例使用PaddleDetection的推理部署的pipeline功能,需要修改一点代码:

 

进入PaddleDetection-2.5源码目录,编辑deploy/pipeline/pipe_utils.py,插入代码:

                ‘-c:v’,’libx264′,

                ‘-tune’,’zerolatency’,

默认代码如果不指定输出视频编码器,rtsp默认协议是采用mpeg4视频编码,在目前互联网应用中支持很低,改为h264编码。

修改rtsp输出流地址格式,以适应当前直播通用格式

将原代码中:

pushurl = os.path.join(self.pushurl, video_out_name)

改为

pushurl = self.pushurl

开始视频分析

在PaddleDetection-2.5源码目录下执行

python deploy/pipeline/pipeline.py –config deploy/pipeline/config/examples/infer_cfg_vehicle_attr.yml –rtsp rtsp://192.168.0.2/live/che –device=gpu –pushurl rtsp://192.168.0.2/live/che_ai

-----------  Running Arguments -----------
DET:
  batch_size: 1
  model_dir: https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_l_36e_ppvehicle.zip
MOT:
  batch_size: 1
  enable: true
  model_dir: https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_l_36e_ppvehicle.zip
  tracker_config: deploy/pipeline/config/tracker_config.yml
VEHICLE_ATTR:
  batch_size: 8
  color_threshold: 0.5
  enable: true
  model_dir: https://bj.bcebos.com/v1/paddledet/models/pipeline/vehicle_attribute_model.zip
  type_threshold: 0.5
crop_thresh: 0.5
visual: true
warmup_frame: 50

------------------------------------------
Multi-Object Tracking enabled
Vehicle Attribute Recognition enabled
DET  model dir:  C:Usersaliang/.cache/paddle/infer_weightsmot_ppyoloe_l_36e_ppvehicle
MOT  model dir:  C:Usersaliang/.cache/paddle/infer_weightsmot_ppyoloe_l_36e_ppvehicle
VEHICLE_ATTR  model dir:  C:Usersaliang/.cache/paddle/infer_weightsvehicle_attribute_model
-----------  Model Configuration -----------
Model Arch: PPLCNet
Transform Order:
--transform op: Resize
--transform op: NormalizeImage
--transform op: Permute
--------------------------------------------
-----------  Model Configuration -----------
Model Arch: YOLO
Transform Order:
--transform op: Resize
--transform op: Permute
--------------------------------------------
video fps: 21, frame_count: -2177740619812933
the result will push stream to url:rtsp://192.168.0.2/live/che_ai

NodeMediaServer集成飞浆PaddleDetec

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>