技术|RV1126 本地运行 rnkk-toolkit-lite,用 eKuiper 实现 python 视频 AI 推理
接着上一篇文章:技术|RV1126 本地安装 rnkk-toolkit-lite,实现 python 实施 AI 推理,本文讲述如何在 RV1126 上实现视频流推理;
同时,有两种方法来实现视频分析,1:通过视频采集分析;2:通过定时图片采集分析。这里主要讲述通过 eKuiper 1.8.0 来实现图片定时抓取分析。
前提条件
准备好 RV1126 运行环境
你需要有一个可以运行 rknn 推理框架的硬件设备。
- 可参照上一篇文章:技术|RV1126 本地安装 rnkk-toolkit-lite,实现 python 实施 AI 推理 搭建运行环境;
- 通过开放源码自己编译运行环境:https://github.com/yiqisoft/rv1126-rknn_toolkit_lite-1.7.1;
- 通过 Docker Hub 仓库运行环境;
如果实在无法运行,
可以寻求我司的技术支持:18616669123
基础知识准备
- 熟悉 RKNN 相关的配置和运行环境,可参考官方文档:https://github.com/rockchip-linux/rknn-toolkit;
- 高性能 PC,基于 Windows 用于预编译 RKNN 模型,或基于 macOS 用于开发;
- Docker 开发构建 docker 镜像和运行容器的技能;
- Linux开发搭建HOST运行环境的技巧;
- Python脚本调试Python开发技巧;
- AI/ML 开发深度学习调试技能; GO语言编程技巧;
也就是说,你最好是一位全栈开发者
。
配置过程
过程稍有些复杂和繁琐,需要的基础知识很多,请多参考各框架的官方文档。
搭建 eKuiper 运行环境
基础运行环境
- 官方文档在此:LF Edge eKuiper - 超轻量物联网边缘流处理软件;
- 主要是 使用 Python 函数插件运行 AI 算法 章节和 视频源 章节;
- 使用 eKuiper 官方环境,成功运行
pyai
例程在 tflite 环境下跑通推理;
创建视频分析 stream 和 rule
- 创建视频源 source
- 创建规则 rule
action 可以根据自己的需求,选择合适自己的 Sink - 观察结果(mqtt broker)
确保视频源采集成功,且将图片二进制发送出去;
部署 rknn 推理插件
- 通过开放源码仓库:https://github.com/yiqisoft/rv1126-rknn_toolkit_lite-1.7.1,下载 pyairknn 代码,修改成你需要的功能或不改;
- 打包压缩成 zip 文件;
- 上传到 eKuiper Extension 下;
确保 eKuiper 后台程序没有出错,且RKNN 环境测试后模型正常
。
创建 rknn 推理 rule
- 创建 rule
- 启动 rule,查看日志,推理成功
- 验证外部 mqtt broker 接收到推理结果
总结
- 必须很熟悉 eKuiper 运行环境,熟读官方文档,这个很重要;
- Docker 环境要玩的好,否则日志都不一定找得到;
- 插件不能有一点错误,否则看不到任何结果,代码质量要求很高;
- 基础运行环境的依赖库很头疼,尤其是在 RV1126 的架构是 armv7l 情况下;
- eKuiper 的 rule 规则用 SQL 来写,还是很有挑战性的工作,各种参数传递,没点能力理解不了;
- eKuiper 和 eKuiper manager 版本要一致,
1.8.0
; - 算法精度需要自己多琢磨,可能需要训练自己的模型才能达到毕竟好的推理结果;
- 最后看一下 tflite 在 CPU 上推理 和 rknn 在 NPU 上推理结果对比,快了 100倍;