瑞芯微rv1126+yolov3模型转换
环境准备
环境 | 版本 |
---|
docker | rknn-toolkit-1.7.1-docker.tar.gz |
教程:教程链接
一、加载运行docker
1.安装 Docker
请根据官方手册安装 Docker(https://docs.docker.com/install/linux/docker-ce/ubuntu/)。
2. 加载镜像
执行以下命令加载镜像:
docker load --input rknn-toolkit-lite-1.7.1-docker.tar.gz
加载成功后,执行“docker images”命令能够看到 rknn-toolkit-lite 的镜像,如下所示:
REPOSITORY TAG IMAGE ID CREATED SIZE
rknn-toolkit-lite 1.7.1 0f3af4fe47c3 1 hours ago 1.31GB
3、 运行镜像 执行以下命令运行 docker 镜像,运行后将进入镜像的 bash 环境。
docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb rknn-toolkit:1.7.1 /bin/bash
如果想将自己代码映射进去可以加上“-v :”参数,例如: docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /home/rk/test:/test rknn-toolkit- lite:1.7.1 /bin/bash
二、转换步骤
1.下载yolov3_demo,进入yolov3_demo目录,并从darknet官网下载权重
下载:yolov3_demo下载地址
cd yolov3_demo
wget https://pjreddie.com/media/files/yolov3-tiny.weights
wget https://pjreddie.com/media/files/yolov3.weights
2.根据目标板卡修改
修改rknn_transform_416x416.py文件中配置文件,增加目标板target_platform=[‘rv1126’]
代码如下(示例):
from PIL import Image
import numpy as np
#from matplotlib import pyplot as plt
import re
import math
import random
from rknn.api import RKNN
if __name__ == '__main__':
# Create RKNN object
rknn = RKNN()
# Load tensorflow model
print('--> Loading model')
rknn.load_darknet(model='./yolov3_416x416.cfg', weight="./yolov3.weights")
print('done')
rknn.config(channel_mean_value='0 0 0 255', reorder_channel='0 1 2', batch_size=1, target_platform=['rv1126'])
# Build model
print('--> Building model')
rknn.build(do_quantization=True, dataset='./dataset_416x416.txt', pre_compile=True)
print('done')
rknn.export_rknn('./yolov3_416x416.rknn')
exit(0)
3.运行文件生成模型文件yolov3_416x416.rknn
python rknn_transform_416x416.py
三 总结
在虚拟机中运行docker转换时出现内存不足的情况,后面直接在ubuntu系统中调用docker转换成功,特别要注意设置target_platform=[‘rv1126’],默认目标板为RK1808,不然目标板卡无法调用,单帧推理+后处理耗时250ms左右。
|