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

来源:互联网 发布:python web编程 编辑:程序博客网 时间:2024/06/02 00:28

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.csdn.net/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.csdn.net/zxj942405301/article/details/72775463

原创粉丝点击