Windows onnx ai推理 - xia-chu/zlmediakit-pro GitHub Wiki
下载Windows onnx版本程序
- 1、浏览器打开tags列表网页
- 2、找到windows onnx版本程序并点击:
- 3、下载程序:
- 4、解压到任意目录(建议不要有中文或空格等字符):
安装python3.14依赖
- 1、下载python3.14
- 2、双击安装python3.14
- 3、找到python3.14安装路径:
- 4、设置PATH环境变量:
安装cuda与cudnn
注意选择自己系统适合的cuda版本。
复制cudnn的dll至于zlm解压目录:
注意根据您cuda版本选择不同cudnn目录,如果cudnn的dll未拷贝成功,则将以cpu模式运行
运行zlm pro:
- 按下shift键,点击鼠标右键
- 启动zlm pro:
测试ai推理能力:
- webrtc开始推流:
- webrtc预览ai处理后的流:
python二次开发与热加载:
用户可以修改python文件并保存以测试实时热加载能力
python插件接口规范:
class PluginInstance:
# 初始化插件,context为空时为预热模式,否则为实际运行
def __init__(self, context):
pass
# ai推理后回调,pts为该帧时间戳,单位毫秒,context为该帧上下文信息
def run(self, context, pts):
pass
# 插件销毁回调
def destory(self):
pass
# 返回创建的python插件实例
def create_plugin(context):
return PluginInstance(context)
zlm pro提供的python接口:
# 绘制半透明多边形填充区域
py_loader.plugin_loader.fillPoly(context, 0x8FFFFFFF, star_points)
# 绘制多边形
py_loader.plugin_loader.polylines(context, 0x00FF0000, 1, star_points)
# 绘制文字
py_loader.plugin_loader.draw_text(context, "ZLMediaKit pro AI演示", 48, 40, 2, 0x00FF0000, 0x00FFFFFF)
# 指定区域马赛克
py_loader.plugin_loader.draw_mosaic(context, bbox[0], bbox[1], bbox[2] - bbox[0] , bbox[3] - bbox[1], 10)
# 指定区域截图
py_loader.plugin_loader.crop_image(context, bbox[0], bbox[1], bbox[2] - bbox[0] , bbox[3] - bbox[1], 0)
# 录制事件视频,可以直接报错至s3云存储
py_loader.plugin_loader.start_record(context, "/path/to/out.mp4", 5000, 5000)
# 绘制矩形
py_loader.plugin_loader.draw_rect(context, 300, 300, 500, 500, 0x00FF0000, 5)
# 获取指定区域的目标
py_loader.plugin_loader.get_detections(context, [])
# 更新目标信息
py_loader.plugin_loader.update_detections(context, detections)
# 获取当前视频相关元数据和该任务配置元信息
py_loader.plugin_loader.get_meta(context, "height")
# 发送sei信息
py_loader.plugin_loader.send_sei(context, "sei data from python plugin sei data from python plugin sei data from python plugin")
# 保持当前帧为截图文件:
py_loader.plugin_loader.save_snap(context, draw_snap: bool, paint_txt: bool)
# ... 其他接口不一一举例
目前实现的能力
-
c++层
- 1、实现视频的解码、滤镜预处理,ai推理处理后再编码,或者只推理不编码。
- 2、实现了yolo推理加速,支持硬件加速和cpu模式,支持目标跟踪,cuda环境下支持全gpu显存处理链路,不经过内存处理。
- 3、支持python插件框架,内置优化(cuda加速)后的图片处理等接口暴露给python调用。
-
python层
- 1、支持获取推理结果,根据布放区域过滤推理结果,支持修改结果并更新至c++层从而更新视频渲染效果。
- 2、支持截取视频某区域图像,可以实现诸如车牌ocr识别、人脸识别等业务。
- 3、支持渲染接口,支持文字、矩形框、半透明多边形阴影、多边形框等绘制接口。
- 4、支持c++透传扩展配置元信息至python层,方便业务扩展。
- 5、支持视频截图、事件视频回溯录制等接口。
- 6、支持敏感目标打马赛克接口。