手把手带你玩转Tensorflow 物体检测 API (1)——运行实例
本文在學習《Tensorflow object detection API 搭建屬于自己的物體識別模型(1)——環境搭建與測試》的基礎上優化并總結,此博客鏈接:https://blog.csdn.net/dy_guox/article/details/79081499,感謝此博客作者。
0.前言
在進行本文操作之前,需要先安裝好tensorflow的gpu版本。
本文作者的環境:python3.6、Windows10、tensorflow_gpu1.10
已經安裝好的可以跳過,學習如何安裝tensorflow的gpu版本的讀者請閱讀本文作者的另外一篇文章《深度學習環境搭建-CUDA9.0、cudnn7.3、tensorflow_gpu1.10的安裝》,鏈接:https://www.jianshu.com/p/4ebaa78e0233
本文是寫給目標檢測入門新手的指導文章,會用示意圖將每一步的詳細實現過程展示出來。
本文作者接觸深度學習2個月后,開始進行目標檢測實踐。
本文作者的專題《目標檢測》,鏈接:https://www.jianshu.com/c/fd1d6f784c1f
此專題的宗旨是讓基礎較為薄弱的新手能夠順利實現目標檢測,專題內容偏向于掌握技能,學會工具的使用。
本文作者尚未具備清楚講述目標檢測原理的能力,學習原理請自行另找文章。
| 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 |
1.訪問tensorflow在github的主頁
tensorflow在github的主頁鏈接:https://github.com/tensorflow
主頁界面如下圖所示。
Repository中文叫做知識庫,對于程序員來說即代碼庫。
tensorflow這個用戶中有很多Repository,我們需要的目標檢測代碼在models這個Repository中。
如下圖2個紅色箭頭標注處所示,都是我們想要找的models這個代碼庫。
這2個紅色箭頭標注處,隨意選擇一個點擊,進入下一步。
注意:因為本文寫作的時間與讀者瀏覽網址的時間不同,所以本文寫作時的界面與讀者瀏覽網址時的界面也可能不同,讀者需要在主頁中往下翻即可找到models這個代碼庫。
image.png
models這個代碼庫也可以使用鏈接直接訪問:https://github.com/tensorflow/models
代碼庫界面如下圖所示。
從下圖中上方紅色箭頭標注處可以看出,這個代碼庫被44617人點贊,說明代碼庫的流行程度高,受眾程度廣。
下圖中下方紅色箭頭標注處的research文件夾,我們需要的目標檢測在這個文件夾中。
點擊下圖中下方紅色箭頭標注處,進入下一步。
image.png
models這個代碼庫中的research文件夾也可以使用鏈接直接訪問:https://github.com/tensorflow/models/tree/master/research
models這個代碼庫中的research文件夾頁面如下圖所示:
image.png
從上圖中可以看出沒有object_detection這個文件夾,讀者需要在頁面中往下翻可以找到。
在頁面中往下翻找到object_detection文件夾如下圖紅色箭頭標注處所示。
點擊下圖中紅色箭頭標注處,進入下一步。
image.png
models這個代碼庫中的research/object_detection文件夾頁面如下圖所示。
也可以使用鏈接直接訪問:https://github.com/tensorflow/models/tree/master/research/object_detection
image.png
在上圖頁面中往下翻,可以看到research/object_detection文件夾的指導文件README.md,如下圖所示。
閱讀README.md中的內容,可以獲得英文版Tensorflow Object Detection API的使用指導。
image.png
?
2.下載代碼庫
在models代碼庫的界面中,有下載整個代碼庫的按鈕,如下圖紅色箭頭標注處所示:
image.png
通過vpn訪問github,速度會加快。
從下圖中可以看出,本文作者下載此代碼庫的速度為5.4MB/s
image.png
本文作者將此代碼庫上傳到百度云盤,下載鏈接: https://pan.baidu.com/s/1TnHvqNLT0JEZlugrdyABhQ 提取碼: fnp3
對于本文的讀者來說,其實只需要代碼庫models中的research/object_detection文件夾就可以。
代碼庫models文件大小有439M,但是object_detection文件夾只有17M左右。
壓縮文件object_detection.zip的百度云盤下載鏈接:https://pan.baidu.com/s/1Q9SxtKlOqEty08tpFeUUHA 提取碼: p2sm
下載完成后,在桌面新建文件夾目標檢測,將壓縮文件object_detection.zip放入其中,如下圖所示。
image.png
選擇解壓到object_detection,如下圖所示。
image.png
解壓完成后,文件夾目標檢測中的文件情況如下圖所示。
image.png
?
3.proto文件轉py文件
3.1 下載和安裝protoc
Protobuf(Google Protocol Buffers)是google開發的的一套用于數據存儲,網絡通信時用于協議編解碼的工具庫。它和XML和Json數據差不多,把數據已某種形式保存起來。Protobuf相對與XML和Json的不同之處,它是一種二進制的數據格式,具有更高的傳輸,打包和解包效率。
下載Protobuf網址:https://github.com/google/protobuf/releases
下載Protobuf網址頁面如下圖所示,下圖中紅色箭頭標注處是Protobuf在操作系統Windows中可以直接運行的protoc程序,下載該壓縮文件protoc-3.6.1-win32.zip。
image.png
將壓縮文件protoc-3.6.1-win32.zip解壓后的文件夾bin中的文件protoc.exe復制到路徑:C:\Windows
本文作者復制文件后,確認路徑C:\Windows有文件protoc.exe,如下圖所示。
image.png
?
3.2 使用protoc
在工程object_detection文件夾中,找到文件夾protos,如下圖所示:
image.png
進入文件夾protos,從下圖中可以看出文件夾中有很多以proto為后綴的文件。
接下來的操作,就是把這些proto文件轉換為py文件。
image.png
與工程object_detection文件夾同級目錄中,打開cmd。
具體操作示意圖如下圖所示,在資源管理器的路徑中輸入cmd,按Enter鍵進入。
image.png
在cmd中輸入并運行命令:jupyter notebook
如下圖紅色箭頭標注處所示:
image.png
在隨后彈出的瀏覽器界面中選擇新建一個ipynb文件,即點擊選擇New->Python3。
具體操作示意圖如下圖所示。
image.png
將下面一段代碼復制到第1個單元格中,并且運行此段代碼。
運行此段代碼的按鈕選擇Cell->Run Cells即可。
?
?
import os file_list = os.listdir('object_detection/protos/') proto_list = [file for file in file_list if '.proto' in file] print('object_detection/proto文件夾中共有%d個proto文件' %len(proto_list)) for proto in proto_list:execute_command = 'protoc object_detection/protos/%s --python_out=.' %protoos.popen(execute_command) file_list = os.listdir('object_detection/protos/') py_list = [file for file in file_list if '.py' in file] print('通過protoc命令產生的py文件共有%d個' %(len(py_list) - 1))上面一段代碼的運行結果如下圖所示。
如果顯示通過protoc命令產生的py文件共有27個,重新運行此段代碼即可。
image.png
重新進入文件夾object_detection/protos,文件按照文件名排序。
從下圖中可以看出文件夾中每個proto文件后都有一個py文件,即將proto文件轉py文件成功。
image.png
?
4.下載模型
4.1 下載壓縮文件
下載模型指的是下載已經訓練好的模型。
在文件object_detection_tutorial.ipynb中有下載模型的代碼語句。
代碼可以運行,但是無法得到結果,因為代碼中的下載鏈接是國外的網址。
壓縮文件ssd_mobilenet_v1_coco_2017_11_17.zip上傳到百度網盤,
鏈接: https://pan.baidu.com/s/1ywlp46lK-WYZ_11sUXqftw 提取碼: yv5i
4.2 解壓壓縮文件
將下載好的壓縮文件放到工程object_detection文件夾中,如下圖所示。
image.png
選擇解壓到ssd_mobilenet_v1_coco_20...,如下圖紅色箭頭標注處所示。
注意,不要選擇解壓到當前文件夾,否則代碼運行時會無法找到模型文件。
image.png
?
4.3 正確解壓示意
如下圖紅色箭頭標注處所示,在壓縮文件解壓后,工程object_detection文件夾中有文件夾ssd_mobilenet_v1_coco_2017_11_17。
image.png
文件夾ssd_mobilenet_v1_coco_2017_11_17中有文件夾saved_model和6個文件。
image.png
?
5.運行ipynb文件
5.1 打開ipynb文件
在工程object_detection文件夾中運行cmd。
即在資源管理器的路徑中輸入cmd,按Enter鍵進入。
具體操作示意圖如下圖所示。
image.png
在cmd中輸入并運行命令:jupyter notebook
如下圖紅色箭頭標注處所示:
image.png
在新打開的瀏覽器界面中打開代碼文件object_detection_tutorial.ipynb。
點擊下圖紅色箭頭標注處即可打開代碼文件。
image.png
代碼文件的頁面如下圖所示。
image.png
?
5.2 刪除代碼塊
將代碼文件的界面下拉到出現Download Model代碼塊。
刪除下圖中下方紅色箭頭標注處的代碼塊。
操作方法是在選中此代碼塊的情況下,點擊下圖中上方紅色箭頭標注處的剪切按鈕。
此代碼塊的作用是從網絡中下載模型,這一步我們已經在本文第4章中實現。
image.png
刪除代碼塊成功后,代碼文件的界面如下圖所示。
image.png
?
5.3 運行代碼
在代碼文件的界面中選擇運行所有代碼塊。
具體操作示意圖如下圖所示,點擊下圖中紅色箭頭標注處即可。
?
image.png
?
如果代碼成功運行的話,運行結果如下圖所示。
?
image.png
6.總結
作者:瀟灑坤
鏈接:https://www.jianshu.com/p/c1d8f1c76de7
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
總結
以上是生活随笔為你收集整理的手把手带你玩转Tensorflow 物体检测 API (1)——运行实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql重要的监控参数_zabbix3
- 下一篇: 利用Seafile搭建私有文件同步云盘