CNN结构:Windows使用FasterRCNN-C++版本
?????????? 參考文章:Windows下VS2013 C++編譯測試faster-rcnn。
?????????? 本文與作者的所寫方法有些許不同,欲速則不達,沒有按照作者的推薦方法,繞了個彎彎。
????????? Windows版本純C++版本的FasterRCNN比較難找,且懶得翻譯Matlab版本代碼,暫時可用的是這個項目:Windows下VS2013 C++編譯測試faster-rcnn。
? ? ?????? 作者上傳的faster-rcnn c++代碼,鏈接https://github.com/zhanglaplace/Faster_rcnn_Cplusplus_vs2013,代碼結合Matlab版本的faster-rcnn以及參考http://blog.csdn.net/oYangZi12/article/details/53290426?locationNum=5&fps=1 提供的代碼。下載model,model文件可以從網盤下載,網盤鏈接:http://pan.baidu.com/s/1dF88JvV ,設置新建項目為啟動項目,且只編譯該項目。 ???????????????
1.重新編譯Caffe庫版本:
?????? 作者貌似給出了FasterRCNN的代碼,且只給了FasterRCNN的代碼,相關的Caffe依賴庫并沒有在源代碼里直接給出。因此,參考:CNN:Windows下編譯使用Caffe和Caffe2,直接使用Vs13的Caffe版本。
?????? 為什么VS15版本的不行,因為編譯Caffe1-Vs15失敗了,沒能把roi_pooling_layer.cpp 編譯進去。
???? 1.1 可能錯誤:fast-r-cnn: caffe.LayerParameter“ has no field named ”roi_pooling_param。使用RBG版本的FasterRCNN和Caffe版本的源代碼rbgirshick/caffe-fast-rcnn,仍然不能編譯成功,沒有包含ROI-Pooling的Win版本的代碼。
?????? 排錯方法:
?????? 1.在Vs13版本的工程中,添加已經存在的 ? roi_pooling_layer.cu roi_pooling_layer.cpp? roi_pooling_layer.hpp到libCaffe工程,重新編譯帶RoiPooling的Caffe庫。
???????? 2. 在src/proto/caffe.proto文件中,若不存在 roi_pooling_param ,? 則賦值 option ?roi_pooling_param? = ID。取ID為一個與其他參數不重復的整數,我取其為152。
????????? 編譯caffe完成后,在libcaffe后面加d,加入工程引用。
2. 測試
????? 初始化錯誤,無法注冊layer。
????? 方法:去掉 //#include "register.h"? 包含
? ??? 程序運行可以完成。
3. 測試模型
????? 在作者的網盤里面:網盤鏈接:http://pan.baidu.com/s/1dF88JvV ,下載模型。把模型文件添加后綴? .caffemodel, 寫入程序網絡配置參數文件。
? ?? 修改方法: 建立一個layer 文件夾,把MsCaffe相應的層的源文件添加到項目中,
???
4.重新編譯,運行成功
???
總結:
?? 結果:模型稍小,結果暫時不如YOLO2的檢測結果。
? 另外,贊原作者
總結
以上是生活随笔為你收集整理的CNN结构:Windows使用FasterRCNN-C++版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kubeadm搭建k8s(v1.17.3
- 下一篇: selenium使用ChromeDriv