【轉(zhuǎn)載】caffe安裝 ssd配置并在VGG模型上訓(xùn)練自己的數(shù)據(jù) 原

https://my.oschina.net/u/1046919/blog/777470


最近一直在看深度學(xué)習(xí)的東西,用到了ssd登刺,上網(wǎng)一搜籽腕,找到一篇不錯的博客,http://www.cnblogs.com/objectDetect/p/5780006.html纸俭,官網(wǎng)皇耗, 這篇是連安裝cuda到caffe環(huán)境的一系列http://blog.csdn.net/wopawn/article/details/52302164郎楼。經(jīng)過磕磕絆絆呜袁,也決定寫一篇相關(guān)的博客蛉迹。

ssd的demo是介紹了在voc數(shù)據(jù)集上訓(xùn)練和驗證,所以想要簡單的使用ssd訓(xùn)練自己的數(shù)據(jù)北救,就是做成類似voc 的數(shù)據(jù)再調(diào)用ssd 中的ssd_pascal.py進(jìn)行訓(xùn)練珍策。 這里需要說明的是ssd項目中自帶的ssd_pascal.py文件會在VGG的模型上再訓(xùn)練,以我的理解就是在VGG的模型上做fine-tuning屯耸。

現(xiàn)在從頭開始教程:

1 安裝ssd

1.1 首先需要安裝有g(shù)it

sudo apt-getinstallgit

1.2 git ssd 項目

gitclonehttps://github.com/weiliu89/caffe.gitcdcaffegit checkout ssd(出現(xiàn)“分支”則說明copy-check成功)

記得一定要用git的方法,不要直接下載caffe-master.zip這種壓縮包线召,里面沒有g(shù)it的配置缓淹,沒用的塔逃。

1.3 開始編譯ssd

先安裝一些依賴

sudo apt-getinstalllibprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-getinstall--no-install-recommends libboost-all-dev

ubuntu14.04需要依賴

sudo apt-getinstalllibgflags-dev libgoogle-glog-dev liblmdb-dev

ubuntu16.04需要cuda 8

BLAS:可以通過

sudo apt-getinstall libatlas-base-dev

可以安裝OpenBLAS 或者 MKL湾盗,MKL可以使CPU更好的工作。

要python的話可能要安裝

sudo apt-getinstallpython-pip python-numpy? python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython

開始編譯躏吊,編譯有兩種辦法:

** 1.3.1 直接make**

cd"<你的caffe項目>"cpMakefile.config.exampleMakefile.config

如果你想直接用CPU而不用GPU颜阐,進(jìn)入Makefile.config 將 #CPU_ONLY:=1這句去掉注釋吓肋,像下面這個

# CPU-only switch (uncomment to build without GPU support).CPU_ONLY := 1

如果要改BLAS:

# BLAS choice:#atlasforATLAS (default)#mklforMKL#openforOpenBlasBLAS := atlas

然后執(zhí)行

makeall-j8sudomake installmakeruntest (這個不一定要)makepycaffe

** 1.3.2 用cmake方法安裝**

cd"<你的caffe項目>"mkdir buildcdbuildccmake ..make -j8sudo make installmake runtestmake pycaffe

如果要改BLAS和單用CPU是鬼,在ccmake .. 中選擇紫新。

裝好在之后注意配置python caffe 環(huán)境

vim/etc/profile

在最后一行添加

exportPYTHONPATH=/home/........../caffe/python:$PYTHONPATH

然后更新下環(huán)境

source/etc/profile

1.4 驗證pycaffe環(huán)境

pythonimportcaffe

如果沒有問題那就是成功了

如果有錯誤那么就打開主目錄下的.bashrc寫入那句話,再試試看芒率。

2 訓(xùn)練自己模型

訓(xùn)練VOC數(shù)據(jù)的方法上面那篇博客有講,這里不再多說充择。講講訓(xùn)練自己數(shù)據(jù)椎麦。

現(xiàn)在來看一下voc的標(biāo)簽00001.xml

現(xiàn)在主要更改的是size中的width材彪,height琴儿,object中的name和xmin造成,xmax谜疤,ymin现诀,ymax這幾個東西。

所以每幅圖片都要在樣子更改坐桩,上面的博客推薦了一個bbox-tool绵跷,但是對于我來說不太好用成福,然后就寫了一個基于opencv的程序,稍后放出净当。

在ssd中voc的同級目錄新建一個文件夾像啼,講所有圖片和標(biāo)簽都放進(jìn)去潭苞,做好鏈接?

trainval.txt 存放訓(xùn)練用的圖片路徑此疹,格式類似

data1/image1.jpg data1/image.xml

test.txt 存放測試用的圖片路徑蝗碎,格式和trainval.txt相同

test_name_size.txt 存放測試用的圖片,格式類似測試 “ 圖片名 高 長“

imagetest1300300

labelmap_indoor.prototxt 標(biāo)簽的名字赶么,注意label 0 這類一定會存在脊串,就是圖片bounding box以外的數(shù)據(jù)標(biāo)簽

數(shù)據(jù)做好之后運(yùn)行create_data.sh進(jìn)行整理數(shù)據(jù),create_data.sh里面可能有些路徑錯誤放闺,可以自行改到自己的數(shù)據(jù)目錄。

運(yùn)行create_data.sh之后會在當(dāng)前目錄和ssd的examples下新建一個數(shù)據(jù)目錄篡悟,名字是當(dāng)前目錄的名字搬葬。

3 訓(xùn)練

打開ssd_pascal.py需要修改的有一下幾點(diǎn):

train_data和test_data , 指向examples中你的數(shù)據(jù)艳悔,例如

train_data="examples/indoor/indoor_trainval_lmdb"# The database file for testing data. Created by data/VOC0712/create_data.shtest_data="examples/indoor/indoor_test_lmdb"

num_test_image該變量修改成自己數(shù)據(jù)集中測試數(shù)據(jù)圖片的數(shù)量

num_classes 該變量修改成自己數(shù)據(jù)集中 標(biāo)簽類別數(shù)量數(shù) + 1

gpus = "0,1,2,3" 電腦有幾個gpu就寫多少個猜年,如果有一個就寫gpus="0",兩個就寫gpus="0,1",以此類推。

最后到caffe的根目錄運(yùn)行, ps:你的ssd_pascal.py的目錄是example/yourSSD/ssd_pascal.py

pythonexample/yourSSD/ssd_pascal.py

4 測試

有好幾種測試的方法床三,

4.1 python

在caffe的根目錄運(yùn)行ssd_pascal_webcam.py這個文件撇簿,這是使用攝像頭實(shí)時測試的軟件推汽,讀取的caffemodel是在caffe/models/VGGNet/VOC0712/SSD_300x300_webcam下最新的model歧沪,所以記得在這個文件夾中放入模型诊胞。 還要更改下ssd_pascal_webcam.py中l(wèi)abel_map_file到你的labelmap_voc.prototxt

pythonexamples/ssd/ssd_pascal_webcam.py

4.2 c++

編譯完SSD后,C++版本的的可執(zhí)行文件存放目錄: .build_release/examples/ssd/ssd_detect.bin

測試命令 ./.build_release/examples/ssd/ssd_detect.bin models/VGGNet/indoor/deploy.prototxt models/VGGNet/indoor/VGG_VOC0712_SSD_300x300_iter_60000.caffemodel pictures.txt

ssd自帶ssd_detect.cpp迈着,可以拿來使用裕菠。

** 4.2.1 用qt** .pro件定義中需要引入你的caffe配置闭专,例如

LIBS += /home/xxx/caffe/build/lib/libcaffe.so INCLUDEPATH += /home/xxx/caffe/includeINCLUDEPATH += /home/xxx/caffe/build/include

可能還會有一些編譯問題:

error while loading shared libraries: libglog.so.0: cannot open shared object file: No such file or directory 解決

LIBS +=/usr/lib/x86_64-linux-gnu/libglog.so

libcaffe.so.1.0.0-rc3: cannot open shared object file: No such file or directory 解決:在/etc/ld.so.conf.d/下新建caffe.conf文件,在caffe.conf中加入到libcaffe.so.1.0.0-rc3的位置画髓,基本上是在build的lib里。

** 4.2.2 使用cmake**

如果是使用cmake夺谁,注意安裝ssd的時候一定要make install

然后CMakeLists.txt

find_package(OpenCV REQUIRED)find_package(Caffe REQUIRED)#option (CPU_ONLY"Use CPU or use GPU"ON)#option (USE_OPENCV"Use CPU or use GPU"ON)include_directories( ${Caffe_INCLUDE_DIRS} )add_definitions(${Caffe_DEFINITIONS})# ex. -DCPU_ONLYadd_executable(ssd_detect ssd_detect.cpp )

使用cpu或者gpu可以在選項里面定義匾鸥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扫腺,一起剝皮案震驚了整個濱河市村象,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌躁劣,老刑警劉巖库菲,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熙宇,死亡現(xiàn)場離奇詭異,居然都是意外死亡蒋荚,警方通過查閱死者的電腦和手機(jī)馆蠕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來播赁,“玉大人容为,你說我怎么就攤上這事〗叻欤” “怎么了沼瘫?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵耿戚,是天一觀的道長。 經(jīng)常有香客問我坛猪,道長皂股,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任就斤,我火速辦了婚禮洋机,結(jié)果婚禮上洋魂,老公的妹妹穿的比我還像新娘。我一直安慰自己副砍,他們只是感情好豁翎,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布谨垃。 她就那樣靜靜地躺著,像睡著了一般刘陶。 火紅的嫁衣襯著肌膚如雪匙隔。 梳的紋絲不亂的頭發(fā)上纷责,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機(jī)與錄音挺勿,去河邊找鬼喂柒。 笑死,一個胖子當(dāng)著我的面吹牛蚊丐,可吹牛的內(nèi)容都是我干的艳吠。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼凛篙,長吁一口氣:“原來是場噩夢啊……” “哼鞋诗!你這毒婦竟也來了迈嘹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤融痛,失蹤者是張志新(化名)和其女友劉穎神僵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體保礼,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡目派,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年企蹭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徒河。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡顽照,死狀恐怖闽寡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奢人,我是刑警寧澤淆院,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布土辩,位于F島的核電站,受9級特大地震影響各墨,放射性物質(zhì)發(fā)生泄漏启涯。R本人自食惡果不足惜结洼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一松忍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宏所,春花似錦摊溶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至膛薛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雅任,已是汗流浹背沪么。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工锌半, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刊殉,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像遍膜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瓢颅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

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