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

Windows VS2013 将py-faster-rcnn 改写成c++版本

2018-01-23 13:21 609 查看
参考

C编写 RPN层代码

建立faster-test测试工程

测试代码

遇到的问题

参考:

[1] Windows下py-Faster rcnn的编译及遇到的问题

[2] faster rcnn windows 下c++版本

[3] Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type: Input (known types: Input )

[4]Windows下VS2013 C++编译测试faster-rcnn

通过我的上一篇博客: Windows下py-Faster rcnn的编译及遇到的问题 可以知道Windows下py-Faster rcnn的编译就是在caffe-master的编译中加入RoiPooling层,然后编译pycaffe接口后,使用python编写RPN层,nms函数进行调用。

所以py-faster-rcnn的c++化主要是在caffe中用c++来实现RPN层和nms函数,集成到libcaffe中,这样之后我们就不需要在使用python了。

1. C++编写 RPN层代码

参考这篇博客:faster rcnn windows 下c++版本

编写完RPN层之后如何将RPN集成到libcaffe中,这个过程和在libcaffe中加入RoiPooling层是一样的,参考这篇:Windows下py-Faster rcnn的编译及遇到的问题

2. 建立faster-test测试工程

用VS2013建立一个空项目,首先要知道,caffe-master的所有依赖项也是你这个测试工程的依赖项,同时需要将caffe-master的include以及编译好的release下的.lib都加入到你的测试工程中。如下图:



右键项目-》生成依赖项-》生成自定义-》查找现有项-》找到编译caffe-master时nuget下载的依赖,并一一添加



将caffe-master的include和cuda的include添加到包含目录中



将caffe-master编译好的Release文件夹以及cuda的lib文件夹添加到工程的库目录中



在连接器-》输入中添加依赖项

libcaffe.lib

caffe.lib

cudart.lib

cublas.lib

curand.lib

3. 测试代码

测试代码参考这篇博客:faster rcnn windows 下c++版本

同时修改python faster rcnn中的pt文件

主要是rpn层。

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


测试结果如下:



4. 遇到的问题:

Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type: Input (known types: Input )

http://blog.csdn.net/birdwcp/article/details/53580068

主要是在测试过程中遇到的Unknown layer type的问题,需要对layer重新注册。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: