在win7上跑基於任少卿做者代碼修改的RPN+BF實驗

1.前言

        以前在win10上成功的跑起來faster-rcnn的實驗,而且跑了一下CaltechPedestrian的數據集,可是效果一直不理想,折騰了很久也沒弄清楚到底緣由出在哪裏,直到讀了Is Faster R-CNN Doing Well for Pedestrian Detection? 這片文章以後才明白了具體的問題出在哪裏,因而就想跑一下文章中的實驗。本來實驗的源代碼做者只在Ubuntu上面跑過,並無在win上跑過,可是他的代碼都是基於任少卿的matlab代碼修改的,因而我就想在win上應該也能跑通。因而我就試了一下,沒想到居然卡在了編譯external上面。html

        caffe_library用的依然是任少卿做者給的(https://pan.baidu.com/s/1hqGojnI),RPN+BF的源碼是在GitHub上面下載的,按照我以前的博客寫的方法去編譯,居然沒經過,當時報了個錯誤,是關於caffe.pb.h文件版本的問題,也沒鬧明白是怎麼回事,上網百度了一下,初步診斷是由於caffe_library的第三方庫中protobuf的版本太低,網上說使用protobuf2.6.1版本能夠,可是後來我一頓折騰,包括重裝系統,重搭環境,也是行不通,轉移到Ubuntu下也由於其餘緣由行不通,沒有辦法就又回到了win7上,又通過一頓瞎折騰,終於鬧明白了是什麼問題了。。。測試

2.編譯RPN+BF所須要的external文件

        2.1分析源碼文件

             首先,caffe_library是這樣的spa

                     

      能夠看到它其中有一個文件夾叫作 protobuf_compiler-2.6 ,那麼這個文件夾是幹什麼用的呢?爲此我特意研究了一下protobuf的相關知識。能夠這樣說,caffe.pb.h和caffe.pb.cc是由圖中畫框的兩個文件生成的,咱們能夠看一下 protoc.cmd 中的代碼就明白了,以下圖:3d

                         

 

 

                     

 

        2.2生成本身須要的caffe.pb.h和caffe.pb.cc

       既然編譯的時候報的錯是關於這兩個文件的,那麼確定要在這兩個文件上面着手去解決問題了,當時一直覺得是protobuf的版本問題,搞了很久,最後使用了protobuf2.6.1雖然編譯經過了,可是編譯出來的文件卻不能用,別提多心酸了。。。那麼緣由究竟是出在了哪裏呢?當我打開下圖目錄中的caffe.vcxproj這個文件的時候,明白了本身問題的結症所在了。                                                                                              htm

 

                                            

      首先說一下 .vcxproj 文件的做用,.vcxproj 文件管理着VS solution的相關配置,仔細看一下這個文件的內容,你就會發現它裏面的信息都是solution的相關配置信息,包括編譯平臺,庫目錄,包含目錄等等信息都保存在這個裏面,因此我經過它肯定了,protobuf的版本是沒有錯誤的,用的就是protobuf2.6.0版本的。那麼,問題就只可能出如今一個地方了,那就caffe.proto 這個文件。關於這個文件的更多信息能夠去網上百度,這裏並不作細說。在caffe-RPN_BF這個文件夾裏搜索一下 caffe.proto ,找到了它是存放在.\caffe-RPN_BF\src\caffe\proto 中的,因而咱們把它取出來,放在 protobuf_compiler-2.6 文件夾中,替換掉原來的 caffe.proto 文件,運行protoc.cmd,來從新生成caffe.pb.h和caffe.pb.cc這兩個文件。blog

      那爲何不用protobuf_compiler-2.6 文件夾中本來存在的 caffe.proto 呢?你能夠比較一下,由於它居然和.\caffe-RPN_BF\src\caffe\proto 中的 caffe.proto 是不同的。。。真是無話可說,並不太懂是爲何。。。get

3.從新編譯

        而後把新生成的兩個文件分拷貝到 caffRPN_BF\include\caffe\proto 和 caffe-RPN_BF\src\caffe\proto 中,替換掉原來的文件。再從新進行編譯,具體的編譯過程能夠參考我以前的博客,經 過測試,能夠順利經過編譯。cmd

相關文章
相關標籤/搜索