基于caffe框架复现yolov3-tiny目标检测


最近由于要在工程上实现yolov3-tiny的caffe模型的训练和测试,记录踩的坑和解决的办法。

测试预训练模型

基于这篇文章:基于caffe框架复现yolov3目标检测.
github在这里.
测试了预训练模型。由于要做的是yolov3-tiny的caffe转换,只测试了yolov3-tiny上的结果。
其中出现了一些问题记录:

install

    git clone https://github.com/ChenYingpeng/caffe-yolov3
    cd caffe-yolov3
    mkdir build
    cd build
    cmake ..
    make -j6

1.make[2]: *** 没有规则可以创建“x86_64/lib/libsysDetectSpeed.so”需要的目标“/usr/lib/x86_64-linux-gnu/libglog.so”。 停止。
解决:是CMakelists下的相关文件路径问题。
把相关文件的路径根据服务器上的对应路径修改。
2. /caffe/include/caffe/blob.hpp:9:34: 致命错误:caffe/proto/caffe.pb.h:没有那个文件或目录 #include "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

添加upsample层代码

具体的代码见上述文章的百度云盘链接中的文件。
添加过程:
把upsample_layer.hpp 放在include/caffe/layers下面;
把upsample_layer.cpp与upsample_layer.cu放在src/caffe/layers下面;
往自己的caffe.proto里面添加UpsampleParameter相关参数;可以参考他上传的caffe.proto;
在/caffe/src/caffe/proto/caffe.proto改动的地方主要是两处:
1.文件的最后加上
在这里插入图片描述
2.message LayerParameter这一行加上
在这里插入图片描述
重新编译。

test

在caffe-yolov3/build运行Example 4:yolov3-tiny

$ ./x86_64/bin/detectnet 1 ../../data/yolov3/prototxt/yolov3-tiny-1.prototxt ../../data/yolov3/prototxt/yolov3-tiny-2.prototxt ../../data/yolov3/caffemodel/yolov3-tiny.caffemodel

由于是远程,把detectnet.cpp中的图像显示代码注释掉了。

结果

在这里插入图片描述

作者是将yolov3-tiny拆分为两个小模型,通过自行实现的函数连接小模型实现模型前传;但未实现反向传播代码,开源模型也为coco分类,因此实现自己的工程任务需自行实现训练代码;
尝试基于caffe重写yolov3-tiny的maxpooling层。

待续。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值