faster RCNN的c++接口 通过用c++重写RPN层实现

faster RCNN的c++接口 通过用c++重写RPN层实现

rbg大神给出的代码是python接口的,但是在实际的项目应用中c++可能更加应用的广泛些。

前提:

​ 首先是将faster RCNN原版代码编译通过。

步骤:

  1. 把rpn_layer.cpp放到py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers中

  2. 把rpn_layer.hpp放到py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers中

  3. 在py-faster-rcnn/caffe-fast-rcnn/src/caffe/proto/caffe.proto中message LayerParameter{添加:optional RPNParameter rpn_param = 150;(数字不要和前面重复就行) }

  4. 在py-faster-rcnn/caffe-fast-rcnn/src/caffe/proto/caffe.proto最后面添加:

    message RPNParameter {
     optional uint32 feat_stride = 1;
     optional uint32 basesize = 2;
     repeated uint32 scale = 3;
     repeated float ratio = 4;
     optional uint32 boxminsize =5;
     optional uint32 per_nms_topn = 9;
     optional uint32 post_nms_topn = 11;
     optional float nms_thresh = 8;
    }
  5. 将 RPN部分 在common.hpp和common.cpp中声明

  6. 重新编译即可

我将上面需要用到的文件(包括相应的封装接口文件)全部上传,只需要替换掉原始的就可以了

链接:http://download.youkuaiyun.com/download/qq_17278169/10018637

如果没有下载积分,请留言邮箱

测试过程中需要将test.prototxt修改,屏蔽掉原来的python层

layer {  
  name: "proposal"  
  type: "RPN"  
  bottom: "rpn_cls_prob_reshape"  
  bottom: "rpn_bbox_pred"  
  bottom: "im_info"  
  top: "rois"  
  rpn_param {  
    feat_stride : 16  
    basesize : 16  
    scale : 8  
    scale : 16  
    scale : 32  
    ratio : 0.5  
    ratio : 1  
    ratio : 2  
    boxminsize :16  
    per_nms_topn : 0;  
    post_nms_topn : 0;  
    nms_thresh : 0.3  
   }  
}

修改过的prototxt文件也在上面压缩包内。

参考大神链接:http://blog.youkuaiyun.com/zxj942405301/article/details/72775463

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值