手把手带你玩转Tensorflow 物体检测 API (3)——训练模型
致謝聲明
本文在學習《Tensorflow object detection API 搭建屬于自己的物體識別模型(2)——訓練并使用自己的模型》的基礎上優化并總結,此博客鏈接:https://blog.csdn.net/dy_guox/article/details/79111949,感謝此博客作者。
0.前言
本文作者的環境:python3.6、Windows10、tensorflow_gpu1.10
| 1 | 目標檢測實踐_tensorflow版SSD運行示例 | https://www.jianshu.com/p/c1d8f1c76de7 |
| 2 | 目標檢測實踐_tensorflow版SSD數據準備 | https://www.jianshu.com/p/3d9436b4cb66 |
| 3 | 目標檢測實踐_tensorflow版SSD訓練自己的數據 | https://www.jianshu.com/p/0e5f9df4686a |
| 4 | 目標檢測實踐_tensorflow版SSD模型測試 | https://www.jianshu.com/p/7464c5e00716 |
現在桌面的目標檢測文件夾中需要有object_detection工程文件夾和training數據文件夾,如下圖所示:
image.png
如果沒有的話,也沒有關系。本文作者提供下載鏈接:
文件training.zip鏈接: https://pan.baidu.com/s/1Kgp9geSkTFVa_4tfc7ZPew 提取碼: 9sy3
文件object_detection.zip的鏈接:https://pan.baidu.com/s/1Q9SxtKlOqEty08tpFeUUHA 提取碼: p2sm
?
1.解決第1個報錯
在桌面的目標檢測文件夾中打開cmd,即在路徑中輸入cmd后按Enter鍵運行。
打開cmd的方式如下圖所示:
image.png
在cmd中運行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,運行結果如下圖所示:
image.png
?
1.1 第1種解決方式
第1種解決方式是通過Windows界面點擊操作。
如下圖所示,按Windows+Q鍵可呼喚出搜索界面,在其中搜索環境變量。
點擊下圖中上方紅色箭頭標記處,進入編輯賬戶的環境變量。
image.png
新建一個系統變量,點擊下圖紅色箭頭標記處。
image.png
變量名為:PYTHONPATH
變量值如下圖所示,讀者填入1號方框中的路徑與2號方框中的路徑一致即可。
image.png
兩項設置好后,點擊下圖紅色箭頭標記處所示的確定按鈕。
image.png
點擊下圖紅色箭頭標記處所示的確定按鈕,使設置生效。
image.png
?
1.2 第2種解決方式
使用cmd添加永久環境變量,適用于熟悉cmd命令的讀者。
cmd中運行命令:setx -m PYTHONPATH "C:\Users\Administrator\Desktop\目標檢測"
命令成功運行后,如下圖所示:
image.png
?
2.解決第2個報錯
在進行完第1章,成功添加環境變量后,需要在桌面的目標檢測文件夾中重新打開cmd。
在cmd中運行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,運行結果如下圖所示:
image.png
從上圖可以看出,缺少pycocotools庫,在linux系統中安裝pycocotools庫只需要運行命令:pip install pycocotools
但是在Windows上安裝則復雜得多。
?
2.1 下載并安裝Microsoft C++ build 14.0
本文作者花了2個小時研究有沒有其他方法解決此報錯,最終發現只有先安裝C++的編譯工具,才能在Windows系統上安裝pycocotools庫。
首先下載Microsoft C++ build 14.0,鏈接:https://go.microsoft.com/fwlink/?LinkId=691126
文件只有3M左右大小,下載完成如下圖所示。
image.png
打開安裝文件visualcppbuildtools.exe,初始化安裝程序,如下圖所示:
image.png
安裝類型選擇自定義,然后點擊下一步,如下圖紅色箭頭標記處所示。
image.png
選擇功能只勾選Windows 10 SDK 10.0.10240,然后點擊下一步,如下圖所示:
image.png
點擊下圖紅色箭頭標記處所示的安裝按鈕,則開始安裝。
image.png
安裝過程中截圖,如下圖所示:
image.png
完成安裝后,點擊關閉即可。
?
2.2 下載并安裝pycocotools
打開git頁面,鏈接:https://github.com/philferriere/cocoapi
下載按鈕的位置如下圖所示,點擊Download ZIP即可開始下載。
image.png
文件大小只有1.53M,下載完成如下圖所示。
image.png
對壓縮文件cocoapi-master.zip選擇解壓到當前文件夾。
進入文件夾cocoapi-master中的文件夾PythonAPI,在此文件夾下打開cmd,如下圖所示。
image.png
在cmd中運行命令:python setup.py build_ext install,如下圖所示:
image.png
如果安裝成功,則如下圖所示:
image.png
?
3.解決第3個報錯
進行完第2章后,需要在桌面的目標檢測文件夾中重新打開cmd。
在cmd中運行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,運行結果如下圖所示:
image.png
解決此報錯,需要閱讀本文作者的文章《目標檢測第1步-運行tensorflow官方示例》中的第3章《proto文件轉py文件》,文章鏈接:https://www.jianshu.com/p/c1d8f1c76de7
?
4.解決第4個報錯
進行完第3章后,使用第3章中的cmd即可。
在cmd中運行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,運行結果如下圖所示:
image.png
壓縮文件models-master.zip下載鏈接: https://pan.baidu.com/s/1TnHvqNLT0JEZlugrdyABhQ 提取碼: fnp3
將models-master/research/slim文件夾中的nets文件夾移動到
桌面的目標檢測文件夾中,即文件夾object_detection同級目錄。
因為models-master.zip大小為439M,但我們其實只要nets文件夾。
本文作者提供nets文件夾壓縮后的壓縮文件nets.zip。
下載鏈接: https://pan.baidu.com/s/1zRkn_TNRlPGAuwQHoO66EQ 提取碼: 99s4
下載完成后,將nets文件夾解壓到與object_detection相同目錄,如下圖所示:
image.png
?
5.解決第5個報錯
進行完第4章后,使用第4章中的cmd即可。
在cmd中運行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,運行結果如下圖所示:
image.png
從上圖中可以看出,本文作者使用的顯卡是RTX 2070,顯卡的顯存為8G。
本文作者推薦如果要進行目標檢測, 最少也需要配備版本為GTX 1060_顯存6G的顯卡,否則會出現顯存不足。
從上圖中可以看出,模型成功調用顯卡,開始訓練了。
但是訓練經過一段時間后會報錯,如下圖所示:
image.png
解決方法:修改工程文件夾object_detection中的代碼文件model_lib.py
如下圖所示,找到第418行,將category_index.values()修改為list(category_index.values())
image.png
修改代碼文件model_lib.py完成后,則可以在cmd中重新輸入命令開啟模型訓練。
模型訓練穩定地進行一段時間后,會做一次模型評估,如下圖所示。
所以如果讀者看到下圖中的情況,則說明模型訓練很順利。
image.png
?
6.查看模型訓練狀況
模型訓練穩定地進行后,在桌面的目標檢測文件夾中重新打開cmd。
在cmd中運行命令:tensorboard --logdir=training,如下圖所示:
image.png
復制上圖中紅色箭頭標記處的鏈接,粘貼到瀏覽器中即可訪問。
注意:每臺電腦的鏈接都不同,讀者復制自己電腦cmd中顯示的鏈接即可。
如果使用360瀏覽器,必須使用極速模式,不能使用兼容模式。
在瀏覽器中的界面如下圖所示。
在SCALARS標簽界面中可以查看準確率Precison、召回率Recall、損失值Loss等模型評估指標。
在IMAGES標簽界面中可以查看實時的測試集效果。
在GRAPHS標簽界面中可以查看模型的整體架構。
image.png
?
7.總結
1.本文詳細介紹了在Windows操作系統的環境中如何訓練自己的目標檢測模型。
2.在本文作者的實踐中,發現在Linux操作系統中訓練速度會快很多。不明白為什么相同的代碼,2種操作系統會導致運行效率的差異。如果讀者有Linux的主機,本文作者建議為了工作效率,應該使用Linux主機做模型訓練。
在Ubuntu16.04系統的訓練速度如下圖所示:
image.png
3.在測試集的圖片中,有的圖片目標檢測效果較優,下面給出了2張演示圖。
?
預測結果1
?
預測結果2
作者:瀟灑坤
鏈接:https://www.jianshu.com/p/0e5f9df4686a
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
總結
以上是生活随笔為你收集整理的手把手带你玩转Tensorflow 物体检测 API (3)——训练模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c 语言 json序列化,C#中json
- 下一篇: 贪心---leetcode-376摆动序