物體識別,Win7下執行TensorFlow Object Detection API詳細版教程(零基礎操作)
這段時間在做三維重建,為了達到更好的重建效果,想在三維重建的工作開始前增加物體識別這一功能,以便針對特定的物體進行相應的優化,國內也不乏有眾多公司在做通用圖片識別,諸如:曠世,商湯,百度,圖普等,這裡我們主要以目前比較熱門的Google框架作為我們的介紹內容,本文主要借鑑自:對於谷歌開源的TensorFlow Object Detection API視訊物體識別系統實現教程
,同時,對原文中一些不正確或者可以優化的部分進行了優化,調整,以供後面的讀者學習借鑑,好了,我們接下來就開始介紹具體的步驟了。
Step1:檢查系統環境!本文使用的系統環境為Windows 7 with SP1 x64
注:tensorflow要求環境必須為64位!Python要求必須是帶有Sp1更新包的Win 7系統!為了避免後面執行出錯,請各位在開始之前先檢查你的系統是否符合要求:
注:為了避免一些不必要的麻煩,請您安裝與博主相同版本的Python!Tensorflow僅支援3.5.X版本的Python,但是在實際執行過程中,筆者使用3.5.4版本的Python在pip安裝元件的過程中也發現了一些麻煩。如果你已經安裝過更高版本的Python,請提解除安裝後再安裝。
安裝成功python後,在CMD下執行:
where python
應該有這樣的效果,如果未出現如下圖所示內容,請檢查python安裝是否正確(安裝過程中是否勾選Add path):
Step3:安裝tensorflow(tensorflow分為gpu版本和cpu版本,這裡僅介紹CPU版本)
方法1(常規,不推薦):在CMD下執行即可完成安裝,但是因為網路等方面原因,此種方法不但速度慢還容易出現失敗的情況,我們推薦使用第二種方法來安裝tensorflow
pip install --upgrade tensorflow
方法2(映象安裝,快速,推薦):同樣是在CMD下執行:
pip install --index-url https://pypi.douban.com/simple tensorflow
在下載並安裝一段時間後,CMD下會提示成功安裝tensorflow等資訊,這時我們需要驗證python是否安裝成功!開啟IDLE(方法1)或者在cmd中進入python環境(方法2),這裡為了說清楚IDLE我具體介紹一下方法1,首先找到IDLE,IDLE在python的安裝目錄下,這裡為了方便各位找到,博主把自己的IDLE路徑貼出來:
C:\Users\jinjing\AppData\Local\Programs\Python\Python35\Lib\idlelib
DILE就是這樣一個批處理檔案,我們雙擊開啟就進入IDLE了,在IDLE下,我們逐行敲入:
import tensorflow as tf
hello=tf.constant("hello,bear")
sess=tf.Session()
print(sess.run(hello))
當輸出列印語句且不報錯時,說明我們的tensorflow已經安好!
當然也可以按方法2所示,先進入python環境再測試,效果如圖,本張圖片參考自:圖片原文:
附:GPU版本可以使用如下語句安裝
pip install tensorflow_gpu -i http://pypi.mirrors.ustc.edu.cn/simple --trusted-host pypi.mirrors.ustc.edu.cn
注:如果已經成功安裝tensorflow,但是在import過程中出現錯誤提示如下:
說明你的電腦缺少執行環境,缺少執行庫,這裡,我們安裝VS 2015執行庫即可解決問題:VS 2015執行庫下載地址
注:這裡推薦大家用更新版本的protoc,因為博主比較懶,沒有更換。這裡使用新版本的意義在於方便後面對API的編譯,博主所用的版本需要逐條編譯,更新版本的可以一次編譯,用新版本可以省去很多無用的重複勞動!
下載好檔案後,我們解壓,把Bin資料夾中的protoc.exe檔案放入系統盤下的windows/system 32下即可,無需其他操作:
放置路徑:
C:\Windows\System32
這裡我們一路點確認就好,傻瓜式安裝,安裝步驟如下:
Step6:安裝其他元件:
方法1(常規,不推薦):在CMD下執行即可完成安裝,但是因為網路等方面原因,此種方法不但速度慢還容易出現失敗的情況,我們推薦使用第二種方法:
pip install pillow
pip install lxml
pip install jupyter
pip install matplotlib
方法2(映象安裝,快速,推薦):同樣是在CMD下執行:
pip install pillow -i https://pypi.douban.com/simple
pip install lxml -i https://pypi.douban.com/simple
pip install jupyter -i https://pypi.douban.com/simple
pip install matplotlib -i https://pypi.douban.com/simple
Step7:下載程式碼,在CMD下執行,這一步需要的時間比較長,檔案總大小500M+,大家可以稍安勿躁,衝杯茶水等待:
git clone https://github.com/tensorflow/models.git
Step8: 編譯編譯Object Detection API的程式碼
注1:編譯前需要進入models下的research中,直接編譯會提示找不到檔案路徑,博主在Step 7中下載的models檔案路徑為:
C:\Users\jinjing\models
以博主的路徑為例,我們需要在編譯前進行操作:
然後,我們再輸入編譯命令即可:
protoc object_detection/protos/*.proto --python_out=.
注2:如果你在輸入如上的編譯語句后里遇到如下圖所示的問題,是因為我們protoc的問題,導致無法一次編譯,我們這時,逐條編譯即可:
//錯誤提示!
object_detection/protos/*.proto:No such file or directory
解決方法:逐條編譯
每一條編譯後都會出現一個Python檔案,如圖所示:
Step9: 確認電腦的預設瀏覽器
這個框架對於部分版本的IE支援並不是很好,所以我們推薦使用chrome瀏覽器!請各位在下一步操作前確認你的電腦已經安裝chrome並未預設瀏覽器,預設瀏覽器設定步驟:
Step10:執行物體識別
CMD在Object_detection目錄下執行:
jupyter notebook
注:注意目錄!具體操作如下圖所示:
執行後,會自動彈出chrome瀏覽器,這時,我們點選:
這時我們耐心等待結果即可, 因為需要下載模型,同時和你所處的計算機硬體也有關係,所以通常所需的時間比較長,耐心等待一段時間後我們就能在頁面看到識別的結果啦!至此教程全部結束:
注:如果你需要用自己的圖片,有兩種方法:
方法1:將圖片放入預設資料夾,命名需和示例圖片一致:
方法2:修改程式碼,使用絕對路徑: