Ubuntu+GPU+Tensorflow運(yùn)行tf-faster-rcnn【光纖分類項(xiàng)目】

系統(tǒng)配置

我所使用的環(huán)境總體來說為:

  1. Ubuntu 18.04
  2. cuda 9.0
  3. cudnn 7.5.0
  4. python 3.6.7
  5. tensorflow 1.10.0
  6. gcc 4.8.5(tf-faster-rcnn不支持6以上版本的gcc)
ubuntu系統(tǒng)配置

顯卡配置:GeForce GTX 1060

顯卡配置:GeForce GTX 1060

屏幕截圖

屏幕截圖

Cuda版本9.0

Cudnn版本7.5

Python版本3.6.7

Tensorflow版本1.10

gcc版本4.8.5

Github代碼鏈接

本文使用的代碼:https://github.com/endernewton/tf-faster-rcnn
官方代碼:https://github.com/ShaoqingRen/faster_rcnn
半官方代碼:https://github.com/rbgirshick/py-faster-rcnn
Faster-RCNN原文鏈接:https://arxiv.org/pdf/1506.01497.pdf
改進(jìn)方案論文鏈接:https://arxiv.org/pdf/1702.02138.pdf

Demo運(yùn)行過程

  1. 根據(jù)顯卡更改下對應(yīng)的計(jì)算單元:
    修改tf-faster-rcnn/lib/setup.py中第130行的arch參數(shù),比如我的顯卡是1070,算力是6.1滥酥,所以是sm_61
    顯卡的算力可以查詢下面網(wǎng)址: http://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
    參考
  2. 編譯Cython
    仍然在lib路徑下戈盈,編譯Cython模塊(確保你已經(jīng)安裝了easydict蛮寂,如果沒有社付,pip install easydict):
    make clean
    make
    cd ..
  1. 安裝COCO API(代碼需要API來訪問COCO dataset)
    這點(diǎn)按照GitHub的步驟走就ok:
    cd data
    git clone https://github.com/pdollar/coco.git
    cd coco/PythonAPI
    make
    cd ../../..

在執(zhí)行g(shù)it clone https://github.com/pdollar/coco.git 這個步驟時(shí),終端報(bào)錯:

報(bào)錯信息

查找資料發(fā)現(xiàn)修改下載方式-https改為ssh,把’https://git.openwrt.org/feed/packages.git’改為’git://git.openwrt.org/feed/packages.git’列林,即改為如下指令就可以成功執(zhí)行:

    git clone git://github.com/pdollar/coco.git
  1. 配置數(shù)據(jù)(按照py-faster-rcnn的說明,設(shè)置VOC和COCO數(shù)據(jù)集烛愧,這些步驟包括下載數(shù)據(jù)和在數(shù)據(jù)文件夾中創(chuàng)建可選的軟鏈接)
  • 下載訓(xùn)練集油宜、驗(yàn)證集、測試集以及VOCdevkit
    在想要存放數(shù)據(jù)集的位置打開終端怜姿,輸入下列命令:
    wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
    wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
    wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
  • 將所有壓縮包解壓到一個名為VOCdevkit的文件夾中
    tar xvf VOCtrainval_06-Nov-2007.tar
    tar xvf VOCtest_06-Nov-2007.tar
    tar xvf VOCdevkit_08-Jun-2007.tar
  • VOCdevkit文件夾應(yīng)由如下構(gòu)成
    VOCdevkit/                                    # development kit
    VOCdevkit/VOCcode/                   # VOC utility code
    VOCdevkit/VOC2007                    # image sets, annotations, etc.
    ... and several other directories ...
  • 創(chuàng)建數(shù)據(jù)集的軟連接
    cd tf-faster-rcnn-master/data 
    ln -s $VOCdevkit VOCdevkit2007
  1. 下載預(yù)訓(xùn)練模型
    需要翻墻慎冤,如果翻不了墻就從網(wǎng)盤里下吧,下面提供一個預(yù)訓(xùn)練模型的網(wǎng)盤鏈接:
    預(yù)訓(xùn)練模型 提取碼:8ahl
    (感謝提供下載鏈接的無私可愛人er)
    下載過后復(fù)制到data文件夾內(nèi)對其進(jìn)行解壓:
    tar zxvf voc_0712_80k-110k.tgz(在data文件夾中解壓)

data文件夾解壓之后如下圖所示:


data文件夾
  1. 創(chuàng)建一個文件夾和一個軟鏈接以使用預(yù)訓(xùn)練模型
    tf-faster-rcnn根目錄創(chuàng)建一個output文件夾并且在其中存放預(yù)訓(xùn)練模型的軟鏈接沧卢,使用軟連接來使用預(yù)訓(xùn)練模型蚁堤,output文件夾中會在每次訓(xùn)練后存放訓(xùn)練好的模型,這里按照步驟走就行:
    NET=res101
    TRAIN_IMDB=voc_2007_trainval+voc_2012_trainval
    mkdir -p output/${NET}/${TRAIN_IMDB}
    cd output/${NET}/${TRAIN_IMDB}
    ln -s ../../../data/voc_2007_trainval+voc_2012_trainval ./default
    cd ../../..
  1. 對demo進(jìn)行測試
    上面的Res101網(wǎng)絡(luò)預(yù)訓(xùn)練模型是已經(jīng)經(jīng)過imagenet和voc0712數(shù)據(jù)集訓(xùn)練好的但狭,用demo來調(diào)用output文件夾下的該模型披诗,展示其實(shí)際檢測效果。仍然按照步驟走:
    GPU_ID=0
    CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py

最終效果如圖所示:


Demo.py效果圖

使用訓(xùn)練好的faster模型對數(shù)據(jù)進(jìn)行測試

這里有點(diǎn)地方需要改:首先把 tf-faster-rcnn/lib/datasets/voc_eval.py的第121行的

with open(cachefile,'w') as f

改成

with open(cachefile,'wb') as f

同時(shí)還要把第105行的

cachefile = os.path.join(cachedir, '%s_annots.pkl' % imagesetfile)

改成

cachefile = os.path.join(cachedir, '%s_annots.pkl' % imagesetfile.split("/")[-1].split(".")[0])

然后在tf-faster-rcnn根目錄中輸入下面命令:

GPU_ID=01
./experiments/scripts/test_faster_rcnn.sh $GPU_ID pascal_voc_0712 res101

結(jié)果如圖所示:

預(yù)訓(xùn)練模型測試結(jié)果

會在output文件夾下建立一個路徑為:
/output/res101/voc_2007_test/default/res101_faster_rcnn_iter_110000/
的文件夾立磁,res101代表網(wǎng)絡(luò)名稱呈队,voc_2007_test代表數(shù)據(jù)集,與訓(xùn)練不同唱歧,該文件夾下不再是模型文件宪摧。

到此為止,所有步驟都成功的話則說明tf-faster-rcnn平臺搭建完成颅崩!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末几于,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子沿后,更是在濱河造成了極大的恐慌沿彭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件得运,死亡現(xiàn)場離奇詭異膝蜈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)熔掺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門饱搏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人置逻,你說我怎么就攤上這事推沸。” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵鬓催,是天一觀的道長肺素。 經(jīng)常有香客問我,道長宇驾,這世上最難降的妖魔是什么倍靡? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮课舍,結(jié)果婚禮上塌西,老公的妹妹穿的比我還像新娘。我一直安慰自己筝尾,他們只是感情好捡需,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著筹淫,像睡著了一般站辉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上损姜,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天饰剥,我揣著相機(jī)與錄音,去河邊找鬼薛匪。 笑死捐川,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逸尖。 我是一名探鬼主播古沥,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娇跟!你這毒婦竟也來了岩齿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤苞俘,失蹤者是張志新(化名)和其女友劉穎盹沈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吃谣,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乞封,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了岗憋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肃晚。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖仔戈,靈堂內(nèi)的尸體忽然破棺而出关串,到底是詐尸還是另有隱情拧廊,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布晋修,位于F島的核電站吧碾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏墓卦。R本人自食惡果不足惜倦春,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望落剪。 院中可真熱鬧溅漾,春花似錦、人聲如沸著榴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脑又。三九已至,卻和暖如春锐借,著一層夾襖步出監(jiān)牢的瞬間问麸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工钞翔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留严卖,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓布轿,卻偏偏與公主長得像哮笆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子汰扭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345