您的位置:首页 > 编程语言 > C语言/C++

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

2017-10-12 20:59 274 查看

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

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

前提:

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

步骤:

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

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

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

在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;
}


将 RPN部分 在common.hpp和common.cpp中声明

重新编译即可

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

链接: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: