【轉(zhuǎn)載】faster_rcnn c++版本的 caffe 封裝肉拓,動(dòng)態(tài)庫(2)

https://www.cnblogs.com/louyihang-loves-baiyan/archive/2016/05/14/5493344.html

在上一篇文章中御板,我們是將對(duì)caffe的調(diào)用隔離了出來茁肠,可以說相當(dāng)于原來caffe源碼下的tools中cpp文件使用相同季惩,然后自己寫了個(gè)CMakeLists.txt進(jìn)行編譯。這里是進(jìn)一步將代碼進(jìn)行分離掘剪,封裝成libfaster_rcnn.so文件進(jìn)行使用平委。對(duì)于部分接口,我可能做了一些改動(dòng)夺谁。

目錄結(jié)構(gòu)

├── CMakeLists.txt

├── lib

│?? ├── CMakeLists.txt

│?? ├── faster_rcnn.cpp

│?? ├── faster_rcnn.hpp

├── main.cpp

├── pbs_cxx_faster_rcnn_demo.job

在這里main.cpp就是直接調(diào)用faster_rcnn.cpp的接口廉赔,他的內(nèi)容也很簡單,只是在之前的基礎(chǔ)上,再加上libfaster_rcnn.so這個(gè)動(dòng)態(tài)庫文件

#include "faster_rcnn.hpp"

int main()

{

? ? string model_file = "/home/lyh1/workspace/py-faster-rcnn/models/pascal_voc/VGG_CNN_M_1024/faster_rcnn_alt_opt/faster_rcnn_test.pt";

? ? string weights_file = "/home/lyh1/workspace/py-faster-rcnn/output/default/yuanzhang_car/vgg_cnn_m_1024_fast_rcnn_stage2_iter_40000.caffemodel";

? ? int GPUID=0;

? ? Caffe::SetDevice(GPUID);

? ? Caffe::set_mode(Caffe::GPU);

? ? Detector det = Detector(model_file, weights_file);

? ? det.Detect("/home/lyh1/workspace/py-faster-rcnn/data/demo/car.jpg");

? ? return 0;

}

可以看到這里只是include了faster_rcnn.hpp頭文件匾鸥,其對(duì)應(yīng)的CMakeLists.txt文件如下:

#This part is used for compile faster_rcnn_demo.cpp

cmake_minimum_required (VERSION 2.8)

project (main_demo)

add_executable(main main.cpp)

include_directories ( "${PROJECT_SOURCE_DIR}/../caffe-fast-rcnn/include"

? ? "${PROJECT_SOURCE_DIR}/../lib/nms"

? ? "${PROJECT_SOURCE_DIR}/lib"

? ? /share/apps/local/include

? ? /usr/local/include

? ? /opt/python/include/python2.7

? ? /share/apps/opt/intel/mkl/include

? ? /usr/local/cuda/include )

target_link_libraries(main /home/lyh1/workspace/py-faster-rcnn/faster_cxx_lib/lib/libfaster_rcnn.so

? ? /home/lyh1/workspace/py-faster-rcnn/caffe-fast-rcnn/build/lib/libcaffe.so

? ? /home/lyh1/workspace/py-faster-rcnn/lib/nms/gpu_nms.so

? ? /share/apps/local/lib/libopencv_highgui.so

? ? /share/apps/local/lib/libopencv_core.so

? ? /share/apps/local/lib/libopencv_imgproc.so

? ? /share/apps/local/lib/libopencv_imgcodecs.so

? ? /share/apps/local/lib/libglog.so

? ? /share/apps/local/lib/libboost_system.so

? ? /share/apps/local/lib/libboost_python.so

? ? /share/apps/local/lib/libglog.so

? ? /opt/rh/python27/root/usr/lib64/libpython2.7.so

? ? )

對(duì)于faster_rcnn.hpp和faster_rcnn.cpp?蜡塌,我們需要將他們編譯成動(dòng)態(tài)庫,下面是他們對(duì)應(yīng)的CMakeLists.txt勿负,在文件中馏艾,可以看到跟上面這個(gè)區(qū)別是用了add_library語句,并且加入了SHARED關(guān)鍵字笆环,SHARED代表動(dòng)態(tài)庫攒至。其次厚者,在編譯動(dòng)態(tài)庫的過程中躁劣,是不需要鏈接的,但是我們知道這個(gè)庫是依賴別的很多個(gè)庫的库菲,所以在最后形成可執(zhí)行文件也就是上面這個(gè)CMakeLists.txt账忘,我們需要添加這個(gè)動(dòng)態(tài)庫所依賴的那些動(dòng)態(tài)庫,至此就OK了熙宇。編譯的話鳖擒,非常傻瓜cmake .然后在執(zhí)行make即可。

cmake_minimum_required (VERSION 2.8)

SET (SRC_LIST faster_rcnn.cpp)

include_directories ( "${PROJECT_SOURCE_DIR}/../../caffe-fast-rcnn/include"

? ? "${PROJECT_SOURCE_DIR}/../../lib/nms"

? ? /share/apps/local/include

? ? /usr/local/include

? ? /opt/python/include/python2.7

? ? /share/apps/opt/intel/mkl/include

? ? /usr/local/cuda/include )

add_library(faster_rcnn SHARED ${SRC_LIST})

首先將原來的cpp文件中的聲明提取出來烫止,比較簡單蒋荚,就是hpp文件對(duì)應(yīng)cpp文件。如下:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末馆蠕,一起剝皮案震驚了整個(gè)濱河市期升,隨后出現(xiàn)的幾起案子惊奇,更是在濱河造成了極大的恐慌,老刑警劉巖播赁,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颂郎,死亡現(xiàn)場離奇詭異,居然都是意外死亡容为,警方通過查閱死者的電腦和手機(jī)乓序,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坎背,“玉大人替劈,你說我怎么就攤上這事≌犹保” “怎么了抬纸?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長耿戚。 經(jīng)常有香客問我湿故,道長,這世上最難降的妖魔是什么膜蛔? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任坛猪,我火速辦了婚禮,結(jié)果婚禮上皂股,老公的妹妹穿的比我還像新娘墅茉。我一直安慰自己,他們只是感情好呜呐,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布就斤。 她就那樣靜靜地躺著,像睡著了一般蘑辑。 火紅的嫁衣襯著肌膚如雪洋机。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天洋魂,我揣著相機(jī)與錄音绷旗,去河邊找鬼。 笑死副砍,一個(gè)胖子當(dāng)著我的面吹牛衔肢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播豁翎,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼角骤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了心剥?” 一聲冷哼從身側(cè)響起邦尊,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤硼控,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后胳赌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牢撼,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年疑苫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了熏版。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捍掺,死狀恐怖撼短,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情挺勿,我是刑警寧澤曲横,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站不瓶,受9級(jí)特大地震影響禾嫉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚊丐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一熙参、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧麦备,春花似錦孽椰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呛梆,卻和暖如春锐涯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背削彬。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國打工全庸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秀仲,地道東北人融痛。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像神僵,于是被迫代替她去往敵國和親雁刷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容