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
相关文章推荐
- 纯C++版的Faster-Rcnn(通过caffe自定义RPN层实现)
- [置顶] 纯C++版的Faster-Rcnn(通过caffe自定义RPN层实现)
- JAVA中通过接口实现方法重写
- 用faster rcnn对celebA的bbox重新标注,c++实现筛选,过滤无效bbox
- Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(更快的RCNN:通过区域提议网络实现实时)
- Java【多线程知识总结(4)】通过实现Runnable接口创建线程
- 通过例子学设计模式之--桥接模式以及使用场景说明(C++实现)
- C++ 中的接口继承与实现继承
- C++ 通过指针实现多态实例详解
- c++实现的cnn
- 普通java类(排序)实现Comparable接口重写CompareTo方法
- C++接口实现总结
- C++箴言:接口继承和实现继承
- C++中接口与实现分离的技术
- c++接口的实现
- effective C++ 条款 34:区分接口继承和实现继承
- c++接口定义及实现举例
- 将Faster RCNN的python demo改成C++ demo
- 实现一个自定义字符串的排序 ,重写Comparable接口的练习!!
- 通过nginx实现线上页面访问本地接口