| darknet原版检测结果 | 转化后模型检测结果 |
|
|
|
前提:默认已经配置好源码版caffe
配置caffe步骤:
首先配置opencv
注意一些和caffe的版本兼容问题
然后配置caffe
配置成功后在进行下面的配置
1、caffe配置:加入upsample层
由于caffe缺少yolo的upsample层
需要加入相应的信息
可从如下地址进行下载
https://pan.baidu.com/s/13GpoYoqKSCeFX0m0ves_fQ#list/path=%2F 密码:bwrd
其中的upsample_layer.hpp放入include/caffe/layers下面;
upsample_layer.cpp与upsample_layer.cu放在src/caffe/layers下面。
修改相应的caffe.proto文件,src/caffe/proto/caffe.proto中的LayerParameter的最后一行加入加入:
message LayerParameter {
.....
optional UpsampleParameter upsample_param = 149;
}
注意149为新层的ID号,该ID号请根据个人的caffe.proto文件指定即可。
然后再caffe.proto中添加upsample层的参数,可以放到最后:
message UpsampleParameter{
optional int32 scale = 1 [default = 1];
}
重新编译Caffe:
make clean
make all -j16
make test -j16
make runtest -j16
make pycaffe -j16
2、yolov3转caffe
github.com/ChenYingpeng/darknet2caffe 增加了对yolov3的支持
模型转换:
python darknet2caffe.py ../models/yolov3.cfg ../models/yolov3.weights yolov3.prototxt yolov3.caffemodel
yolov3.prototxt 和yolov3.caffemodel为转换结果
3、转换后模型验证
github.com/ChenYingpeng/caffe-yolov3
不用clone,直接下载
(1)修改CMakefile.txt文件,将里面所有的caffe路径改为本机caffe安装路径并验证路径能否打开
(2)根据自己的yolov3模型修改参数
yolo_layer.h
const int classes = 80; // 这里修改为自己的类数
detector.h
int m_classes = 80; //改为自己的类数
yolo_layer.cpp
修改anchors:
//yolov3
float biases[18] = {10,13,16,30,33,23,30,61,62,45,59,119,116,90,156,198,373,326};
如果是对于tiny网络,在设置float biases_tiny的同时打开yolov3或者yolov4下面的float biases任何一个即可
对于剪枝网络按照原始网络情况设置
(anchor值和原始yolov3.cfg文件一致)
(3)编译
mkdir build
cmake ..
make -j16
(4)测试
./x86_64/bin/demo ../../models_transfer/yolov3.prototxt ../../models_transfer/yolov3.caffemodel ../../models_transfer/test.jpg
4、报错解决
(1)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
(2)缺少libgflags.so.2的问题
git clone https://github.com/gflags/gflags
cmake .
make -j16
sudo make install
cd /usr/lib/x86_64-linux-gnu
sudo ln -s /usr/lib/x86_64-linux-gnu/libgflags.so libgflags.so.2
(3)缺少libGLEW.so.2.0.0的问题
sudo apt-get install glew-utils
cd /usr/lib/x86_64-linux-gnu/
ls libGLEW.so.2.0.0
sudo ln -s libGLEW.so.2.0.0 libGLEW.so.1.13
refer:
https://zhuanlan.zhihu.com/p/95882397
https://blog.csdn.net/e3399/article/details/106058700
https://github.com/ChenYingpeng/darknet2caffe
https://zhuanlan.zhihu.com/p/357316097
本文档详细介绍了如何将darknet的yolov3模型转换为Caffe的yolov3.caffemodel,并提供了转换过程中的配置步骤,包括在Caffe中添加upsample层,使用darknet2caffe工具进行转换,以及转换后的模型验证。在验证过程中,修改了相关参数以适应不同类别的检测,并解决了转换和验证过程中遇到的文件缺失和依赖库问题。


1795

被折叠的 条评论
为什么被折叠?



