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

瑞芯微1808模型转换(onnx到rknn)环境配置过程

瑞芯微1808模型转换(onnx → \to rknn)环境配置

阅读本解决方案前,请读者确保已经根据官方的相关教程【rknn_model_zoo/common/rknn_converter at v1.5.0 · airockchip/rknn_model_zoo (github.com)】完成其他配置文件的修改,以便和您的模型参数相符合,才能转换成功

一、基本配置

  1. 创建虚拟环境

    conda create -n rknn python=3.8 -y
    
  2. 安装pytorch,该命令读者可在pytorch的历史版本【Previous PyTorch Versions | PyTorch】配置命令中找到

    conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cpuonly -c pytorch
    
  3. 修改requirements文件,将tensorflow-gpu1.14.0修改为tensorflow-gpu2.2.0

  4. 安装对应包

    pip install -r requirements-gpu.txt
    

    pip install -r requirements-cpu.txt
    
  5. 定位到rknn_toolkit-1.7.5-cp38-cp38-linux_x86_64.whl所在目录下,执行

    pip install rknn_toolkit-1.7.5-cp38-cp38-linux_x86_64.whl
    

二、解决方案

  1. 报错1

    Traceback (most recent call last):
      File "rknn_convert.py", line 14, in <module>
        from phase import convert_phase, validate_phase
      File "/17106/Pengcaiping/rknn_model_zoo/common/rknn_converter/phase.py", line 17, in <module>
        from image_utils.img_preprocesser_tools import Image_preprocessor
      File "/17106/Pengcaiping/rknn_model_zoo/common/image_utils/img_preprocesser_tools.py", line 1, in <module>
        import cv2
      File "/root/anaconda3/envs/rknn/lib/python3.8/site-packages/cv2/__init__.py", line 181, in <module>
        bootstrap()
      File "/root/anaconda3/envs/rknn/lib/python3.8/site-packages/cv2/__init__.py", line 153, in bootstrap
        native_module = importlib.import_module("cv2")
      File "/root/anaconda3/envs/rknn/lib/python3.8/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    ImportError: libGL.so.1: cannot open shared object file: No such file or directory
    

    解决方案:

    • 安装opencv-python-headless库
    pip install opencv-python-headless
    

    如果安装过后还是没能解决问题,可能是openGL库确实,先给他装上,下面的命令在非root用户下执行,如果是root用户,则去掉前缀sudo

    sudo apt-get update
    sudo apt-get install libgl1-mesa-glx
    
  2. 报错2

    Traceback (most recent call last):
      File "rknn_convert.py", line 14, in <module>
        from phase import convert_phase, validate_phase
      File "/17106/Pengcaiping/rknn_model_zoo/common/rknn_converter/phase.py", line 17, in <module>
        from image_utils.img_preprocesser_tools import Image_preprocessor
      File "/17106/Pengcaiping/rknn_model_zoo/common/image_utils/img_preprocesser_tools.py", line 1, in <module>
        import cv2
      File "/root/anaconda3/envs/rknn/lib/python3.8/site-packages/cv2/__init__.py", line 181, in <module>
        bootstrap()
      File "/root/anaconda3/envs/rknn/lib/python3.8/site-packages/cv2/__init__.py", line 175, in bootstrap
        if __load_extra_py_code_for_module("cv2", submodule, DEBUG):
      File "/root/anaconda3/envs/rknn/lib/python3.8/site-packages/cv2/__init__.py", line 28, in __load_extra_py_code_for_module
        py_module = importlib.import_module(module_name)
      File "/root/anaconda3/envs/rknn/lib/python3.8/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "/root/anaconda3/envs/rknn/lib/python3.8/site-packages/cv2/mat_wrapper/__init__.py", line 39, in <module>
        cv._registerMatType(Mat)
    AttributeError: partially initialized module 'cv2' has no attribute '_registerMatType' (most likely due to a circular import)
    
    

    解决方案

    卸载该库

    pip uninstall opencv-python
    

    重新安装该库

    pip install opencv-python
    

    如果还是不行,请再次卸载,重新安装其扩展版本

    pip install opencv-contrib-python
    
  3. 报错3

    Collecting opencv-python
      Using cached opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (20 kB)
    Requirement already satisfied: numpy>=1.17.0 in /root/anaconda3/envs/rknn/lib/python3.8/site-packages (from opencv-python) (1.19.5)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/d9/64/7fdfb9386511cd6805451e012c537073a79a958a58795c4e602e538c388c/opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/d9/64/7fdfb9386511cd6805451e012c537073a79a958a58795c4e602e538c388c/opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    Downloading opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (62.2 MB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.2/62.2 MB 17.8 MB/s eta 0:00:00
    Installing collected packages: opencv-python
    ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
    rknn-toolkit 1.7.5 requires opencv-python==4.5.1.48, but you have opencv-python 4.9.0.80 which is incompatible.
    Successfully installed opencv-python-4.9.0.80
    WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
    

    根据上述报错信息,是我们重新安装opencv版本与rknn-toolkit工具包不兼容,此时再次卸载opencv-python包,安装新的包,此时我们指定rknn-toolkit工具包要求的版本。

    pip install opencv-python==4.5.1.48
    

    具体安装哪个版本,以你的控制台报错信息提示为主。

三、祝贺

如果最后执行命令后出现了如下信息行

---> Export RKNN model
Convert Done! outpath: ./model_cvt/RK1808_3399pro/best_RK1808_3399pro_u8.rknn

那么要恭喜,此时模型转换成功。

四、注意事项

  1. 时过境迁,当读者你看到此解决方案时,可能距离作者收笔此文相去已久,若未能解决你的问题,作者深感抱歉。当然,以上大部分问题我想,读者可以举一反三,完成符合技术标准的配置。

相关文章:

  • 【Linux】Linux基本指令
  • 雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Mohist 1.20.2服务器教程,我的世界MOD和插件服开服教程。
  • 爬虫笔记(三):实战qq登录
  • CSS Day11- 动画
  • 【唐山海德教育】安全员(岗位职责)
  • 为什么 FPGA 比 CPU 和 GPU 快?
  • 机器学习入门-----sklearn
  • 链表的删除和预处理
  • vue/js 调用系统打印功能进行图片(imgUrl,base64),表格,自定义内容,页面局部区域打印【print-js、html2canvas】
  • MavenGradle等引入jSerialComm
  • xss 盲打使用
  • 实现vue3响应式系统核心-shallowReactive
  • 【国产MCU】-CH32V307-通用DMA控制器及使用
  • 云微呼AI外呼:数字时代营销的智能引擎
  • 【30秒看懂大数据】变量
  • 8、应急响应-战前溯源反制主机蜜罐系统HFishHIDSElkeidWazuh
  • 在QT Creator中打开一个包含CMakeLists.txt的项目时,只打开CMakeLists.txt文件而没有自动打开其他文件
  • mongodb config
  • linux 组建和卸载raid1、raid0详细操作
  • PYTHON蓝桥杯——每日一练(简单题)
  • 讲座预告|全球贸易不确定情况下企业创新生态构建
  • 小米回应SU7Ultra排位模式限制车辆动力:暂停推送更新
  • 用社群活动维系“不开发”古镇的生命力
  • 大学2025丨专访清华教授沈阳:建议年轻人每天投入4小时以上与AI互动
  • 新加坡总理黄循财领导人民行动党胜选,外交部回应
  • “五一”假期文旅热度创近3年新高,入境游订单飙升130%