相应的代码以及环境后续呈上
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模型