首页 > 技术知识 > 正文

处理好rknn之后, clone一下github上的rk的model_zoo最新的的版本.

git clone https://github.com/airockchip/rknn_model_zoo.git

确认是最近的提交:

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署

确定一下的确是最新的版本2022年11月16日更新的.

进入datasets/COCO目录, 下载量化用的coco图片.

~/rknn_model_zoo/$ cd datasets\COCO~/rknn_model_zoo/datasets/COCO$ python download_eval_dataset.py

脚本会自动下载coco数据集val2017约5000张照片

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署1

同时会生成几个txt文件, 后面我们会用到.

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署2

把训练并转好的onnx的模型权重, 复制到虚拟机的model zoo目录或者任意目录, 把板子连到虚拟机上, 用adb devices -l查询一下设备id

注意, 这里可能存在一种情况是, 如果你板子刷了易百纳的固件, 可能接入虚拟机的时候, 会反复断开, 你可能需要直接找台机器, 直接装ubuntu而不是使用虚拟机, 或者是尝试重新编译固件烧录进去.

使用adb 查询设备的devicei id, 如果没有安装adb 直接用apt安装即可

(rknn_py36) marc@ubuntu:~/rknn_model_zoo/models/CV/object_detection/yolo/RKNN_model_convert$ adb devices lList of devices attachedadb server version (40) doesnt match this client (39); killing…* daemon started successfullya9d00ab1f032c17a device usb:1-1 product:occam model:Nexus_4 device:mako transport_id:1

这个a9d00ab1f032c17a就是你的板子的device id

在ubuntu下面, 使用vscode打开models/CV/yolo/RKNN_model_convert里面的yolov5_yolov7.yml

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署3

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署4

修改一下内容(注意, 这里修改的时候别用#对脚本进行注释, 直接改, 如果不放心, 可以先把整个文件备份, 别用#注释, 记住!!!):

model_framework: onnx

model_file_path: safe_hat.onnx

dataset: …/…/…/…/datasets/COCO/coco_dataset_1.txt

如果ubuntu是物理机, 可以连接你的板子的otg口, 就添加板子的device id

deivce_id: xxxxxxx

其他不变, 改好之后是这样的:

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署5

这里我直接把转好的safe_hat.onnx复制到了这个yaml所在的目录

同时参考这个目录下面的README,

终于到了最后的关键部分:

$ python ../../../../../common/rknn_converter/rknn_convert.py yml_path ./yolov5.yml python_api_test capi_test

如果你重复执行这个脚本, 会在一开始问你是否要覆盖掉原来转好的rknn模型, 如果不用保留原来的模型, 直接输入Y即可.

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署6

没有意外的话, 模型就转好了, 转好的模型就在这个目录的model_cvt目录下面了.

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署7

如果遇到下面的错误, 多半原因是你的板子没有连到ubuntu上, 就只会生成一个没有预编译的模型, 推理速度会慢20%-30%

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署8

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署9

如果提示没有安装onnxruntime, 直接用pip安装onnxruntime即可.

查看模型

用ntron.app查看转好的rknn

训练自己的yolov5样本, 并部署到rv1126 <四>-yolov5模型部署10

接下来就是使用python或者c的demo程序, 直接对模型进行推理测试了, 就留到下个星期吧.

猜你喜欢