rknn环境安装笔记

x33g5p2x  于2022-06-20 转载在 其他  
字(5.9k)|赞(0)|评价(0)|浏览(586)

目录

rknn3399Pro简介

驱动安装:

安装python环境:

依赖项安装:

安装异常解决:

rknn测试例子

yolox onnx导出rknn代码

rknn3399Pro简介

https://www.ruiyixi.com/2019/11/21/the-open-source-platform-of-rockchip-such-as-rk3399pro-rk3288-rk1808-etc/

这个也可以参考:

RKNN-Toolkit安装_雨浅听风吟的博客-CSDN博客_rknn toolkit

RK3399Pro是目前在售的最新平台,本质上就等于RK3399加RK1808,RK1808是独立的NPU,是专门面向人工智能应用场景的。RK3399Pro是第一颗内置独立NPU的通用型SoC,发时间较早,在2019年项目也逐步进入落地阶段。不过由于产品单价过高,且单颗RK1808提供的算力有限,RK3399Pro目前销量并不乐观。目前瑞芯微的RK3288是最受ODM市场欢迎的产品,基于RK3288平台的商业显示、工业控制、视频会议一体机、大型会议平板电脑和机器人主板都有不错的市场表现。不过RK3288是一个老平台了,早在2014年就已经推出,虽然目前的技术积累十分丰富,但是平台的性能也逐渐满足不了高端客户需求。尤其是在机器视觉领域的应用,RK3288性能表现一般。目前大多数高端场景都采用RK3399芯片方案,尤其是一些使用环境苛刻的应用,RK3399K虽然芯片标出的温度是-20℃~70℃,符合一般工业标准要求。但实际项目落地时,可达到-40℃~95℃的宽温性能,因此RK3399也成为一些工控场景的首选方案。

RK3328是一个中端芯片,目前除了家庭影音场景,主要用于数字标牌和控播主机等产品,RK3328本身时开源项目,有多种Linux发行版可使用,也用于小型服务器项目。PX30目前主要用于车机中控,也可用于广告机和数字标牌。目前PX30在ODM项目中的点名率并不高。RK3128主要用于数码相框和一些小尺寸的数字标牌,有较大的成本优势。

按照瑞芯微目前的策略来看,下一代旗舰RK3588也很开能是开源的,进入8K时代,高性能的SoC和DSP是必不可少的。瑞芯微积极拥抱RISC-V也许是想打造更丰富的产品线。

驱动安装:

rk1808需要先下载驱动,

先去官方网站:Zadig - USB driver installation made easy    下载这个软件件:zadig-2.7.exe

官方网站也有教程

这个软件不需要安装,只需要运行就可以了。步骤是:

1、把编程器插到USB接口里

2、运行 zadig-2.5 程序

3、如下图所示:按上下的箭头,选中 libusb-win32(v1.2.6.0) 然后,点击下方的 Install Driver 即可安装驱动。

4、驱动安装完成后,就可以打开编程软件,进行编程了。

5、这个软件可以解决 XTW100 在windows 10 下无法安装驱动的问题。

安装python环境:

2022.06.18更新:

rknn windows版本,只有python3.6版本,linux有3.7版本

conda config --set report_errors true

conda create --name rknn3.6 python=3.6

rknn下载:

http://repo.rock-chips.com/pypi/simple/rknn-toolkit/

rknn-toolkit-1.2.1-cp36-cp36m-linux_aarch64.whl    17-Oct-2019 10:05            56659109
rknn-toolkit-1.2.1-cp36-cp36m-linux_x86_64.whl     17-Oct-2019 10:05            60841540
rknn-toolkit-1.2.1-cp36-cp36m-macosx_10_9_x86_6..> 17-Oct-2019 10:08            36891121
rknn-toolkit-1.2.1-cp36-cp36m-win_amd64.whl        17-Oct-2019 10:08            33134089
rknn-toolkit-1.2.1-cp37-cp37m-linux_aarch64.whl    17-Oct-2019 10:09            57598878
rknn-toolkit-1.3.0-cp36-cp36m-linux_aarch64.whl    20-Jan-2020 06:47            57274013
rknn-toolkit-1.3.0-cp36-cp36m-linux_x86_64.whl     20-Jan-2020 06:59           136707878
rknn-toolkit-1.3.0-cp36-cp36m-macosx_10_9_x86_6..> 20-Jan-2020 07:02           116558624
rknn-toolkit-1.3.0-cp36-cp36m-win_amd64.whl        20-Jan-2020 07:06           109971468
rknn-toolkit-1.3.0-cp37-cp37m-linux_aarch64.whl    20-Jan-2020 07:06            58575235
rknn-toolkit-1.3.2-cp37-cp37m-linux_aarch64.whl    23-Apr-2020 06:48            35742584
rknn-toolkit-1.4.0-cp36-cp36m-linux_x86_64.whl     24-Aug-2020 00:51           135521194
rknn-toolkit-1.4.0-cp36-cp36m-win_amd64.whl        24-Aug-2020 00:51           108328413
rknn-toolkit-1.4.0-cp37-cp37m-linux_aarch64.whl    24-Aug-2020 00:51            31001197
rknn-toolkit-1.4.0-cp37-cp37m-macosx_10_15_x86_..> 24-Aug-2020 00:51           108429118
rknn_toolkit-1.6.0-cp35-cp35m-linux_aarch64.whl    14-Jan-2021 02:33            34538213
rknn_toolkit-1.6.0-cp35-cp35m-linux_x86_64.whl     14-Jan-2021 02:34           160362809
rknn_toolkit-1.6.0-cp36-cp36m-linux_x86_64.whl     14-Jan-2021 02:35           160552824
rknn_toolkit-1.6.0-cp36-cp36m-macosx_10_15_x86_..> 14-Jan-2021 02:36           119510062
rknn_toolkit-1.6.0-cp36-cp36m-win_amd64.whl        14-Jan-2021 02:36           112325076
rknn_toolkit-1.6.0-cp37-cp37m-linux_aarch64.whl    14-Jan-2021 02:36            39105410
rknn_toolkit-1.6.0-cp37-cp37m-macosx_10_15_x86_..> 14-Jan-2021 02:37           117990241
rknn_toolkit-1.7.0-cp37-cp37m-linux_aarch64.whl    02-Nov-2021 08:31            40410162
rknn_toolkit-1.7.1-cp35-cp35m-linux_aarch64.whl    11-May-2022 04:33            37938676
rknn_toolkit-1.7.1-cp35-cp35m-linux_x86_64.whl     11-May-2022 04:33           142780939
rknn_toolkit-1.7.1-cp36-cp36m-linux_x86_64.whl     11-May-2022 04:34           140752080
rknn_toolkit-1.7.1-cp36-cp36m-macosx_10_15_x86_..> 11-May-2022 04:34           122255122
rknn_toolkit-1.7.1-cp36-cp36m-win_amd64.whl        11-May-2022 04:34           114232401
rknn_toolkit-1.7.1-cp37-cp37m-linux_aarch64.whl    11-May-2022 04:34            41073863
rknn_toolkit-1.7.1-cp37-cp37m-macosx_10_15_x86_..> 11-May-2022 04:35           120252888

pip install rknn_toolkit-1.7.1-cp36-cp36m-win_amd64.whl

依赖项安装:

pip install tensorflow==1.15

pip install tensorflow-gpu==1.15

pip install opencv-python

安装异常解决:

异常1 tensorflow ImportError: DLL load failed: 找不到指定的模块。

Traceback (most recent call last):
  File "D:\Users\Administrator\miniconda3\envs\tf1x\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "D:\Users\Administrator\miniconda3\envs\tf1x\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "D:\Users\Administrator\miniconda3\envs\tf1x\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "D:\Users\Administrator\miniconda3\envs\tf1x\lib\imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
  File "D:\Users\Administrator\miniconda3\envs\tf1x\lib\imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: 找不到指定的模块。

解决方法:

pip install tensorflow==1.15

rknn测试例子 ok

from rknn.api import RKNN
if __name__ == '__main__':
    rknn = RKNN()
    rknn.list_devices()
    rknn.release()

yolox onnx可以导出rknn

参考代码:

GitHub - qq1243196045/YONO

导出onnx:

tools/export_onnx.py

导出rknn,可以导出,推理还没测试

demo/RKNN/export_rknn.py

import os
import urllib
import traceback
import time
import sys
import re
import numpy as np
import cv2
from yolox.data.data_augment import preproc as preprocess
from rknn.api import RKNN
import time
from yolox.utils import mkdir, multiclass_nms, demo_postprocess, vis
from config import Config

def run():
    cfg = Config()
    ONNX_MODEL = 'yolox.onnx'
    RKNN_MODEL = 'yolox.rknn'

    rknn = RKNN(verbose=True)
    rknn.list_devices()
    # rknn.config(target_platform='rk3566')
    rknn.config()
    ret = rknn.load_onnx(model=ONNX_MODEL)
    if ret < 0:
        print("load faild")
    ret = rknn.build(do_quantization=False,dataset="/home/bona/Projects/python/YOLOX-main/demo/RKNN/dataset.txt")
    if ret < 0:
        print("build faild")
    ret = rknn.export_rknn(RKNN_MODEL)
    if ret < 0:
        print("export faild")
    print("export down")

报错:

python 另一个程序正在使用此文件,进程无法访问

主要原因为几个:

1.文件正在使用,使用过程中删除了

2.文件已经删除了,还需要再用。

临时解决方法:

D:\Users\Administrator\miniconda3\envs\tf1x\Lib\tempfile.py

@classmethod
    def _cleanup(cls, name, warn_message):
        # _shutil.rmtree(name)
        _warnings.warn(warn_message, ResourceWarning)

相关文章