Windows VS2013 將py-faster-rcnn 改寫成c++版本

參考:

[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重新註冊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章