文章

将scrfd模型转换为onnx成功历程

scrfd官方文档 , 作者转换好了点击去下载

python世界发展过快,版本之间依赖不兼容问题很是头疼;避免这种问题浪费时间笔者总结了以下六点

……


  • 不要相信自己搭的绝配环境,来装个mini conda随意折腾,听人劝吃饱饭.乖~
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    # conda常用命令
    
    # 创建环境
    conda create --name test python==3.9.18
    # 进入创建的环境
    conda activate test
    # 查看自己创建了多少环境
    conda env list
    # 删除不要的环境
    conda env remove --name test
    
  • 成功步骤环境:安装时提示缺少什么包就安装
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    # 安装pytorch
    conda install pytorch==1.9.1 torchvision==0.10.1 torchaudio==0.9.1 cpuonly -c pytorch
    # 安装mmcv
    pip install -U openmim
    mim install mmcv-full==1.3.3
    # 这步可能会出现错误:Failed building wheel for mmpycocotools 安装以下包版本
    pip install cython==0.29.36
    
    # 目录下 detection/scrfd 
    pip install -r requirements/build.txt
    pip install -v -e .
    
    # 接下来就是转换了 需要个input-img不知道用来干什么
    python tools/scrfd2onnx.py configs/scrfd/scrfd_500m.py SCRFD_500M.pth --shape 640 640 --input-img test.png
    
    # kps后缀的模型是返回检测5个器官点(眼鼻嘴),configs哪个路径下的.py文件区别就是 use_kps=True
    # 含bg字符的模型对于我这种菜鸡是搞不懂区别的,反正我发现的规律就是kps用的bn;代码对比的区别:
    # norm_cfg=dict(type='GN', num_groups=8, requires_grad=True),
    # strides_share=True,
    # norm_cfg=dict(type='BN', requires_grad=True),
    # strides_share=False,
    
  • 有时候在windows下把自己心态搞炸了可以换个姿势到linux下,推荐使用wsl文件都给你映射好了在/mnt
  • 安装依赖包各种错误从开源库中去看引用版本,没看到各依赖包版本时就查看最后更新时间,通过时间去找版本
本文由作者按照 CC BY 4.0 进行授权