目標(biāo)檢測實(shí)踐_tensorflow版SSD訓(xùn)練自己的數(shù)據(jù)

致謝聲明

本文在學(xué)習(xí)《Tensorflow object detection API 搭建屬于自己的物體識別模型(2)——訓(xùn)練并使用自己的模型》的基礎(chǔ)上優(yōu)化并總結(jié)蜜徽,此博客鏈接:https://blog.csdn.net/dy_guox/article/details/79111949容达,感謝此博客作者。

0.前言

本文作者的環(huán)境:python3.6、Windows10拦键、tensorflow_gpu1.10

文章編號 文章名 鏈接
1 目標(biāo)檢測實(shí)踐_tensorflow版SSD運(yùn)行示例 http://www.reibang.com/p/c1d8f1c76de7
2 目標(biāo)檢測實(shí)踐_tensorflow版SSD數(shù)據(jù)準(zhǔn)備 http://www.reibang.com/p/3d9436b4cb66
3 目標(biāo)檢測實(shí)踐_tensorflow版SSD訓(xùn)練自己的數(shù)據(jù) http://www.reibang.com/p/0e5f9df4686a
4 目標(biāo)檢測實(shí)踐_tensorflow版SSD模型測試 http://www.reibang.com/p/7464c5e00716

現(xiàn)在桌面的目標(biāo)檢測文件夾中需要有object_detection工程文件夾和training數(shù)據(jù)文件夾男娄,如下圖所示:

image.png

如果沒有的話,也沒有關(guān)系十艾。本文作者提供下載鏈接:
文件training.zip鏈接: https://pan.baidu.com/s/1Kgp9geSkTFVa_4tfc7ZPew 提取碼: 9sy3
文件object_detection.zip的鏈接:https://pan.baidu.com/s/1Q9SxtKlOqEty08tpFeUUHA 提取碼: p2sm

1.解決第1個(gè)報(bào)錯(cuò)

在桌面的目標(biāo)檢測文件夾中打開cmd抵代,即在路徑中輸入cmd后按Enter鍵運(yùn)行。
打開cmd的方式如下圖所示:

image.png

在cmd中運(yùn)行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr忘嫉,運(yùn)行結(jié)果如下圖所示:
image.png

1.1 第1種解決方式

第1種解決方式是通過Windows界面點(diǎn)擊操作荤牍。
如下圖所示,按Windows+Q鍵可呼喚出搜索界面庆冕,在其中搜索環(huán)境變量康吵。
點(diǎn)擊下圖中上方紅色箭頭標(biāo)記處,進(jìn)入編輯賬戶的環(huán)境變量访递。

image.png

新建一個(gè)系統(tǒng)變量晦嵌,點(diǎn)擊下圖紅色箭頭標(biāo)記處。
image.png

變量名為:PYTHONPATH
變量值如下圖所示,讀者填入1號方框中的路徑與2號方框中的路徑一致即可耍铜。
image.png

兩項(xiàng)設(shè)置好后邑闺,點(diǎn)擊下圖紅色箭頭標(biāo)記處所示的確定按鈕
image.png

點(diǎn)擊下圖紅色箭頭標(biāo)記處所示的確定按鈕棕兼,使設(shè)置生效陡舅。
image.png

1.2 第2種解決方式

使用cmd添加永久環(huán)境變量,適用于熟悉cmd命令的讀者伴挚。
cmd中運(yùn)行命令:setx -m PYTHONPATH "C:\Users\Administrator\Desktop\目標(biāo)檢測"
命令成功運(yùn)行后靶衍,如下圖所示:

image.png

2.解決第2個(gè)報(bào)錯(cuò)

在進(jìn)行完第1章,成功添加環(huán)境變量后茎芋,需要在桌面的目標(biāo)檢測文件夾中重新打開cmd颅眶。
在cmd中運(yùn)行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,運(yùn)行結(jié)果如下圖所示:

image.png

從上圖可以看出田弥,缺少pycocotools庫涛酗,在linux系統(tǒng)中安裝pycocotools庫只需要運(yùn)行命令:pip install pycocotools
但是在Windows上安裝則復(fù)雜得多。

2.1 下載并安裝Microsoft C++ build 14.0

本文作者花了2個(gè)小時(shí)研究有沒有其他方法解決此報(bào)錯(cuò)偷厦,最終發(fā)現(xiàn)只有先安裝C++的編譯工具商叹,才能在Windows系統(tǒng)上安裝pycocotools庫。
首先下載Microsoft C++ build 14.0只泼,鏈接:https://go.microsoft.com/fwlink/?LinkId=691126
文件只有3M左右大小剖笙,下載完成如下圖所示。

image.png

打開安裝文件visualcppbuildtools.exe请唱,初始化安裝程序弥咪,如下圖所示:
image.png

安裝類型選擇自定義,然后點(diǎn)擊下一步十绑,如下圖紅色箭頭標(biāo)記處所示聚至。
image.png

選擇功能只勾選Windows 10 SDK 10.0.10240,然后點(diǎn)擊下一步孽惰,如下圖所示:
image.png

點(diǎn)擊下圖紅色箭頭標(biāo)記處所示的安裝按鈕晚岭,則開始安裝。
image.png

安裝過程中截圖勋功,如下圖所示:
image.png

完成安裝后坦报,點(diǎn)擊關(guān)閉即可。

2.2 下載并安裝pycocotools

打開git頁面狂鞋,鏈接:https://github.com/philferriere/cocoapi
下載按鈕的位置如下圖所示片择,點(diǎn)擊Download ZIP即可開始下載。

image.png

文件大小只有1.53M骚揍,下載完成如下圖所示字管。
image.png

對壓縮文件cocoapi-master.zip選擇解壓到當(dāng)前文件夾啰挪。
進(jìn)入文件夾cocoapi-master中的文件夾PythonAPI,在此文件夾下打開cmd嘲叔,如下圖所示亡呵。
image.png

在cmd中運(yùn)行命令:python setup.py build_ext install,如下圖所示:
image.png

如果安裝成功硫戈,則如下圖所示:
image.png

3.解決第3個(gè)報(bào)錯(cuò)

進(jìn)行完第2章后锰什,需要在桌面的目標(biāo)檢測文件夾中重新打開cmd。
在cmd中運(yùn)行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr丁逝,運(yùn)行結(jié)果如下圖所示:

image.png

解決此報(bào)錯(cuò)汁胆,需要閱讀本文作者的文章《目標(biāo)檢測第1步-運(yùn)行tensorflow官方示例》中的第3章《proto文件轉(zhuǎn)py文件》,文章鏈接:http://www.reibang.com/p/c1d8f1c76de7

4.解決第4個(gè)報(bào)錯(cuò)

進(jìn)行完第3章后霜幼,使用第3章中的cmd即可嫩码。
在cmd中運(yùn)行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,運(yùn)行結(jié)果如下圖所示:

image.png

壓縮文件models-master.zip下載鏈接: https://pan.baidu.com/s/1TnHvqNLT0JEZlugrdyABhQ 提取碼: fnp3
將models-master/research/slim文件夾中的nets文件夾移動到
桌面的目標(biāo)檢測文件夾中罪既,即文件夾object_detection同級目錄铸题。
因?yàn)閙odels-master.zip大小為439M,但我們其實(shí)只要nets文件夾琢感。
本文作者提供nets文件夾壓縮后的壓縮文件nets.zip回挽。
下載鏈接: https://pan.baidu.com/s/1zRkn_TNRlPGAuwQHoO66EQ 提取碼: 99s4
下載完成后,將nets文件夾解壓到與object_detection相同目錄猩谊,如下圖所示:
image.png

5.解決第5個(gè)報(bào)錯(cuò)

進(jìn)行完第4章后,使用第4章中的cmd即可祭刚。
在cmd中運(yùn)行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr牌捷,運(yùn)行結(jié)果如下圖所示:

image.png

從上圖中可以看出,本文作者使用的顯卡是RTX 2070涡驮,顯卡的顯存為8G暗甥。
本文作者推薦如果要進(jìn)行目標(biāo)檢測, 最少也需要配備版本為GTX 1060_顯存6G的顯卡捉捅,否則會出現(xiàn)顯存不足撤防。
從上圖中可以看出,模型成功調(diào)用顯卡棒口,開始訓(xùn)練了寄月。
但是訓(xùn)練經(jīng)過一段時(shí)間后會報(bào)錯(cuò),如下圖所示:
image.png

解決方法:修改工程文件夾object_detection中的代碼文件model_lib.py
如下圖所示无牵,找到第418行漾肮,將category_index.values()修改為list(category_index.values())
image.png

修改代碼文件model_lib.py完成后,則可以在cmd中重新輸入命令開啟模型訓(xùn)練茎毁。
模型訓(xùn)練穩(wěn)定地進(jìn)行一段時(shí)間后克懊,會做一次模型評估忱辅,如下圖所示。
所以如果讀者看到下圖中的情況谭溉,則說明模型訓(xùn)練很順利墙懂。
image.png

6.查看模型訓(xùn)練狀況

模型訓(xùn)練穩(wěn)定地進(jìn)行后,在桌面的目標(biāo)檢測文件夾中重新打開cmd扮念。
在cmd中運(yùn)行命令:tensorboard --logdir=training损搬,如下圖所示:

image.png

復(fù)制上圖中紅色箭頭標(biāo)記處的鏈接,粘貼到瀏覽器中即可訪問扔亥。
注意:每臺電腦的鏈接都不同场躯,讀者復(fù)制自己電腦cmd中顯示的鏈接即可。
如果使用360瀏覽器旅挤,必須使用極速模式踢关,不能使用兼容模式。
在瀏覽器中的界面如下圖所示粘茄。
在SCALARS標(biāo)簽界面中可以查看準(zhǔn)確率Precison签舞、召回率Recall、損失值Loss等模型評估指標(biāo)柒瓣。
在IMAGES標(biāo)簽界面中可以查看實(shí)時(shí)的測試集效果儒搭。
在GRAPHS標(biāo)簽界面中可以查看模型的整體架構(gòu)。
image.png

7.總結(jié)

1.本文詳細(xì)介紹了在Windows操作系統(tǒng)的環(huán)境中如何訓(xùn)練自己的目標(biāo)檢測模型芙贫。
2.在本文作者的實(shí)踐中搂鲫,發(fā)現(xiàn)在Linux操作系統(tǒng)中訓(xùn)練速度會快很多。不明白為什么相同的代碼磺平,2種操作系統(tǒng)會導(dǎo)致運(yùn)行效率的差異魂仍。如果讀者有Linux的主機(jī),本文作者建議為了工作效率拣挪,應(yīng)該使用Linux主機(jī)做模型訓(xùn)練擦酌。
在Ubuntu16.04系統(tǒng)的訓(xùn)練速度如下圖所示:

image.png

3.在測試集的圖片中,有的圖片目標(biāo)檢測效果較優(yōu)菠劝,下面給出了2張演示圖赊舶。


預(yù)測結(jié)果1

預(yù)測結(jié)果2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赶诊,隨后出現(xiàn)的幾起案子笼平,更是在濱河造成了極大的恐慌,老刑警劉巖舔痪,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件出吹,死亡現(xiàn)場離奇詭異,居然都是意外死亡辙喂,警方通過查閱死者的電腦和手機(jī)捶牢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門鸠珠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秋麸,你說我怎么就攤上這事渐排。” “怎么了灸蟆?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵驯耻,是天一觀的道長。 經(jīng)常有香客問我炒考,道長可缚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任斋枢,我火速辦了婚禮帘靡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瓤帚。我一直安慰自己描姚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布戈次。 她就那樣靜靜地躺著轩勘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪怯邪。 梳的紋絲不亂的頭發(fā)上绊寻,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音悬秉,去河邊找鬼榛斯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛搂捧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播懂缕,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼允跑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了搪柑?” 一聲冷哼從身側(cè)響起聋丝,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎工碾,沒想到半個(gè)月后弱睦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渊额,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年况木,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了垒拢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡火惊,死狀恐怖求类,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情屹耐,我是刑警寧澤尸疆,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站惶岭,受9級特大地震影響寿弱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜按灶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一症革、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兆衅,春花似錦地沮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至畏铆,卻和暖如春雷袋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辞居。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工楷怒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瓦灶。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓鸠删,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贼陶。 傳聞我的和親對象是個(gè)殘疾皇子刃泡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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