海思AI芯片(35xx):验证daknet转caffe的yolov3模型是否正常(yolo层的实现)

相应的代码以及环境后续呈上

1. 下载

2. 修改CMakefile.txt文件

主要是修改caffe安装路径。

在这里插入图片描述
画框的位置需要修改,此处为我的caffe路径,根据自己的路径进行修改。

3. 编译

cd yolov3tocaffe_lecture
mkdir build
cmake ..
make -j4

4. 修改自己的参数后编译

(只需要修改三个文件。detectnet.cpp、yolo_layer.cpp、yolo_layer.h,分别对应:测试数据的路径,自己数据集计算出的anchor·的数值,类别数目以及anchor个数【anchor的个数一般不需要修改】)
**yolov2tocaffe_lecture/detectnet/detectnet.cpp**(用gedit打开很方便)

在这里插入图片描述画红框的修改为自己的测试图片的文件即可
yolov2tocaffe_lecture/yolo_layer.cpp
在这里插入图片描述
yolov2tocaffe_lecture/yolo_layer.h

5. 修改完代码。重新编译

进入到build下

cd build
cmake ..
make clean
make -j4

编译成功的界面
在这里插入图片描述

6. 验证测试

进入到yolov3tocaffe_lecture/build/x86_64/bin下,测试的数据也是放在这个目录下的
cd /home/qif/smf/yolov3tocaffe_lecture/build/x86_64/bin  (*/home/qif/smf修改为自己的路径*)
sudo ./detectnet 0 ../../../model_convert/my_yolo3.prototxt ../../../model_convert/my_yolo3.caffemodel

结果展示:
本人训练的是四类,所以结果如图所示

7. 问题总结

问题1
在这里插入图片描述

问题分析:caffe路径不对,修改CMakeList.txt如下
在这里插入图片描述
问题2
在这里插入图片描述
解决方法:
第一种修改CMakeList.tx
在这里插入图片描述
第二种方法,创建软链接

问题3 caffe/blob.hpp:9:34: fatal error: caffe/proto/caffe.pb.h: 没有那个文件或目录(问题搜索关键词)
在这里插入图片描述
解决方法:
转到caffe目录下, 运行以下代码:

protoc src/caffe/proto/caffe.proto --cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto

参考
在这里插入图片描述
问题4:
运行./detectnet 0 …/…/…/model_convert/my_yolov3.prototxt …/…/…/model_convert/my_yolo3.caffemodel
报错如下:
【caffe】 Check failed: error == cudaSuccess (30 vs. 0) unknown error
解决方案:
在命令前加sudo

sudo ./detectnet 0 …/…/…/model_convert/my_yolov3.prototxt …/…/…/model_convert/my_yolo3.caffemodel

遇到其他的问题可以参考下
YOLOv3转换为caffe模型

猜你喜欢

转载自blog.csdn.net/SMF0504/article/details/103976256