瑞芯微rv1126+yolov3模型转换

瑞芯微rv1126+yolov3模型转换

文章目录

  • 瑞芯微rv1126+yolov3模型转换
  • 环境准备
  • 一、加载运行docker
    • 1.安装 Docker
    • 2. 加载镜像
  • 二、转换步骤
    • 1.下载yolov3_demo,进入yolov3_demo目录,并从darknet官网下载权重
    • 2.根据目标板卡修改
    • 3.运行文件生成模型文件yolov3_416x416.rknn
  • 三 总结


环境准备

环境 版本
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左右。

你可能感兴趣的:(python,tensorflow,人工智能)