当前位置: 首页 > news >正文

openRv1126 AI算法部署实战之——Tensorflow模型部署实战

在RV1126开发板上部署Tensorflow算法,实时目标检测+RTSP传输。视频演示地址

rv1126 yolov5 实时目标检测 rtsp传输_哔哩哔哩_bilibili

一、准备工作

从官网下载tensorflow模型和数据集

手动在线下载: 
    https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md

TensorFlow预训练模型下载地址:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md

往下拉找到ssd_mobilenet_v1_coco并下载

    数据集:MSCOCO数据集https://cocodataset.orgObject(论文版本)有90类物体(加上一个背景类就是91类),label_map可参考:https://github.com/tensorflow/models/blob/master/research/object_detection/data/mscoco_label_map.pbtxt

然后将ssd_mobilenet_v1_coco_2018_01_28.tar.gz拷贝至虚拟机

/home/rv1126/ModelConvertSample/original_model目录并解压

二、TensorFlow模型转换为RKNN格式 pb->rknn

 转换tensorflow ->RKNN

python convert-tensorflow-to-rknn-pre.py

该脚本读取'./original_model/ssd_mobilenet_v1_coco_2018_01_28/frozen_inference_graph.pb'

模型文件,使用数据集参考'./dataset/dataset3.txt',

转换后保存为'./rknn_model/ssd_mobilenet_v1_coco.rknn'文件

三、部署ssd_mobilenet_v1_coco.rknn到RV1126开发板上

1.准备工作

首先在开发板执行如下命令,退出出厂测试程序

killall rkmedia_rockx_person_detection

在开发板执行如下命令,挂载nfs根文件系统

busybox mount -t nfs -o nolock,nfsvers=3 192.168.1.108:/home/rv1126 /getnfs/

2.拷贝模型到开发板并运行程序​

cd /getnfs/ModelConvertSample/rknn_model
mv /demo/bin/ssd_inception_v2_rv1109_rv1126.rknn /demo/bin/ssd_inception_v2_rv1109_rv1126.rknn_bak
cp ssd_mobilenet_v1_coco.rknn /demo/bin/ssd_inception_v2_rv1109_rv1126.rknn
/demo/bin/openRv1126_ssd_object_recognize

3.VLC查看视频,串口查看打印坐标

然后在电脑上打开VLC播放器,输入如下取流地址。注意IP地址请根据实际修改

rtsp://192.168.1.105/live/main_stream

即可看到实时ssd检测的视频画面。

串口实时打印检测框坐标信息

如需退出请按ctrl+c

4.源码说明

上面运行的openRv1126_yolov5_object_recognize程序源码位于路径:

/home/rv1126/openRv1126-Aidemo/openRv1126_ssd_object_recognize_rtsp

 openRv1126_ssd_object_recognize.cpp文件rkmedia_rknn_thread函数中定义了模型路径

ssd.cc定义了数据集路径

http://www.lryc.cn/news/531708.html

相关文章:

  • STM32 TIM定时器配置
  • 51单片机 05 矩阵键盘
  • SSRF 漏洞利用 Redis 实战全解析:原理、攻击与防范
  • kubernetes学习-配置管理(九)
  • python 语音识别
  • 一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署
  • [mmdetection]fast-rcnn模型训练自己的数据集的详细教程
  • 1. Kubernetes组成及常用命令
  • linux下ollama更换模型路径
  • 本地Ollama部署DeepSeek R1模型接入Word
  • 【自学笔记】Git的重点知识点-持续更新
  • [EAI-028] Diffusion-VLA,能够进行多模态推理和机器人动作预测的VLA模型
  • 实现数组的扁平化
  • 登录认证(5):过滤器:Filter
  • pytorch实现门控循环单元 (GRU)
  • Word List 2
  • 机器学习常用包numpy篇(四)函数运算
  • CSS in JS
  • TCP 丢包恢复策略:代价权衡与优化迷局
  • 面经--C语言——内存泄漏、malloc和new的区别 .c文件怎么转换为可执行程序 uart和usart的区别 继承的访问权限总结
  • Denavit-Hartenberg DH MDH坐标系
  • 力扣动态规划-20【算法学习day.114】
  • 计算机视觉-边缘检测
  • 文字加持:让 OpenCV 轻松在图像中插上文字
  • 掌握 HTML5 多媒体标签:如何在所有浏览器中顺利嵌入视频与音频
  • 在Mac mini M4上部署DeepSeek R1本地大模型
  • 【电脑系统】电脑突然(蓝屏)卡死发出刺耳声音
  • Docker使用指南(二)——容器相关操作详解(实战案例教学,创建/使用/停止/删除)
  • Java中的常见对象类型解析
  • Dijkstra算法解析