致謝聲明
本文在學(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ù)文件夾男娄,如下圖所示:
如果沒有的話,也沒有關(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的方式如下圖所示:
在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é)果如下圖所示:1.1 第1種解決方式
第1種解決方式是通過Windows界面點(diǎn)擊操作荤牍。
如下圖所示,按Windows+Q鍵可呼喚出搜索界面庆冕,在其中搜索環(huán)境變量康吵。
點(diǎn)擊下圖中上方紅色箭頭標(biāo)記處,進(jìn)入編輯賬戶的環(huán)境變量访递。
新建一個(gè)系統(tǒng)變量晦嵌,點(diǎn)擊下圖紅色箭頭標(biāo)記處。
變量名為:
PYTHONPATH
變量值如下圖所示,讀者填入1號方框中的路徑與2號方框中的路徑一致即可耍铜。
兩項(xiàng)設(shè)置好后邑闺,點(diǎn)擊下圖紅色箭頭標(biāo)記處所示的確定按鈕。
點(diǎn)擊下圖紅色箭頭標(biāo)記處所示的確定按鈕棕兼,使設(shè)置生效陡舅。
1.2 第2種解決方式
使用cmd添加永久環(huán)境變量,適用于熟悉cmd命令的讀者伴挚。
cmd中運(yùn)行命令:setx -m PYTHONPATH "C:\Users\Administrator\Desktop\目標(biāo)檢測"
命令成功運(yùn)行后靶衍,如下圖所示:
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é)果如下圖所示:
從上圖可以看出田弥,缺少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左右大小剖笙,下載完成如下圖所示。
打開安裝文件visualcppbuildtools.exe请唱,初始化安裝程序弥咪,如下圖所示:
安裝類型選擇自定義,然后點(diǎn)擊下一步十绑,如下圖紅色箭頭標(biāo)記處所示聚至。
選擇功能只勾選Windows 10 SDK 10.0.10240,然后點(diǎn)擊下一步孽惰,如下圖所示:
點(diǎn)擊下圖紅色箭頭標(biāo)記處所示的安裝按鈕晚岭,則開始安裝。
安裝過程中截圖勋功,如下圖所示:
完成安裝后坦报,點(diǎn)擊關(guān)閉即可。
2.2 下載并安裝pycocotools
打開git頁面狂鞋,鏈接:https://github.com/philferriere/cocoapi
下載按鈕的位置如下圖所示片择,點(diǎn)擊Download ZIP即可開始下載。
文件大小只有1.53M骚揍,下載完成如下圖所示字管。
對壓縮文件cocoapi-master.zip選擇解壓到當(dāng)前文件夾啰挪。
進(jìn)入文件夾cocoapi-master中的文件夾PythonAPI,在此文件夾下打開cmd嘲叔,如下圖所示亡呵。
在cmd中運(yùn)行命令:
python setup.py build_ext install
,如下圖所示:如果安裝成功硫戈,則如下圖所示:
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é)果如下圖所示:
解決此報(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é)果如下圖所示:
壓縮文件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相同目錄猩谊,如下圖所示:
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é)果如下圖所示:
從上圖中可以看出,本文作者使用的顯卡是RTX 2070涡驮,顯卡的顯存為8G暗甥。
本文作者推薦如果要進(jìn)行目標(biāo)檢測, 最少也需要配備版本為GTX 1060_顯存6G的顯卡捉捅,否則會出現(xiàn)顯存不足撤防。
從上圖中可以看出,模型成功調(diào)用顯卡棒口,開始訓(xùn)練了寄月。
但是訓(xùn)練經(jīng)過一段時(shí)間后會報(bào)錯(cuò),如下圖所示:
解決方法:修改工程文件夾object_detection中的代碼文件
model_lib.py
如下圖所示无牵,找到第418行漾肮,將
category_index.values()
修改為list(category_index.values())
修改代碼文件
model_lib.py
完成后,則可以在cmd中重新輸入命令開啟模型訓(xùn)練茎毁。模型訓(xùn)練穩(wěn)定地進(jìn)行一段時(shí)間后克懊,會做一次模型評估忱辅,如下圖所示。
所以如果讀者看到下圖中的情況谭溉,則說明模型訓(xùn)練很順利墙懂。
6.查看模型訓(xùn)練狀況
模型訓(xùn)練穩(wěn)定地進(jìn)行后,在桌面的目標(biāo)檢測文件夾中重新打開cmd扮念。
在cmd中運(yùn)行命令:tensorboard --logdir=training
损搬,如下圖所示:
復(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)。
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)練速度如下圖所示:
3.在測試集的圖片中,有的圖片目標(biāo)檢測效果較優(yōu)菠劝,下面給出了2張演示圖赊舶。