• 1:Caffe环境搭建
    • 下载文件修改源:修改pip
  • 2:Darknet2caffe模型转换
    • 1:在Ubuntu系统下,分步执行下面的命令,安装编译darknet2caffe时需要的torch环境
      • pip3 install torchvision==0.5.0 -i Simple Index some-package
    • 3:由于python的本地版本是python3.6,开源代码为 python2.X,因此需要对代码语法做适当调整
      • 将 darknet2caffe.py 中的所有的 if block.has_key('name'):替换成 if 'name' in block:

      • 一共有20个地方需要修改

      • 再将caffe_root修改为caffe的实际的绝对路径,如:/home/hispark/code/caffe/

      • 进入darknet2caffe目录,执行下面的命令,将三个文件拷贝到caffe目录下
        • cp caffe_layers/upsample_layer/upsample_layer.hpp ../caffe/include/caffe/layers/
        • cp caffe_layers/upsample_layer/upsample_layer.c* ../caffe/src/caffe/layers/
      • 进入caffe的 src/caffe/proto/目录下,修改caffe.proto文件
        • cd ../caffe/src/caffe/proto/
        • 在 message LayerParameter {}中新增 optional UpsampleParameter upsample_param = 150;

        • 在caffe.proto最后添加UpsampleParameter参数,如下图所示:

        • 在caffe目录下,执行下面的命名,重新编译caffe环境,命令如下。
          • make clean
          • make -j4
          • make pycaffe
          • 若无任何报错,证明darknet2caffe环境和代码已经适配成功。
  • 3:模型转换
    • 将训练生成的文件存放到darknet2caffe目录下,如:resnet18_new_final.weights

    • 将之前配置的cfg文件放在以下目录

    • 启动命令:python3.8 darknet2caffe.py cfg/yolov3-hat.cfg yolov3-hat_last.weights yolov3_caffe.prototxt yolov3_caffe.caffemodel

      • yolov3_caffe.prototxt和 yolov3_caffe.caffemodel为生成的目标文件
      • yolov3-hat.cfg 为之前配置的文件,生成目标文件:.caffemodel和一个.prototxt文件

      • 出现错误
        • 错误

        • 可能问题:可能磁盘满了
          • df -a

            • snap满了
        • 解决:sudo apt autoremove --purge snapd
  • 4:模型量化
    • RuyiStudio启动

    • 新建工程

    • 双击该cfg文件

    • 修改以下参数

    • 制作imagin.list,路径里不要有中文,不需要mean文件,全填好后运行生成wk文件

    • 运行

    • 生成

  • 5:开发板端的信息函数修改
    • 修改添加模型文件

    • 修改:SAMPLE_SVP_NNIE_Yolov3_SoftwareInit

    • 还要修改sample_svp_nnie_software.h中关于yolov3的参数设置,修改为5+classnum(自己类别的个数)

    • 如果是部分类别检测不出来sample_svp_nnie_software.c中找到static HI_S32 SVP_NNIE_Yolov3_GetResult,修改里面的

更多推荐