這段時間在做三維重建,爲了達到更好的重建效果,想在三維重建的工作開始前增加物體識別這一功能,以便針對特定的物體進行相應的優化,國內也不乏有衆多公司在做通用圖片識別,諸如:曠世,商湯,百度,圖普等,這裏我們主要以目前比較熱門的Google框架作爲我們的介紹內容,本文主要借鑑自:對於谷歌開源的TensorFlow Object Detection API視頻物體識別系統實現教程
,同時,對原文中一些不正確或者可以優化的部分進行了優化,調整,以供後面的讀者學習借鑑,好了,我們接下來就開始介紹具體的步驟了。
Step1:檢查系統環境!本文使用的系統環境爲Windows 7 with SP1 x64
注:tensorflow要求環境必須爲64位!Python要求必須是帶有Sp1更新包的Win 7系統!爲了避免後面運行出錯,請各位在開始之前先檢查你的系統是否符合要求:
Step2:安裝Python 3.5.2 官方下載地址 CSDN下載地址
注:爲了避免一些不必要的麻煩,請您安裝與博主相同版本的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運行庫下載地址
Step4:安裝protoc,github下載地址,博主所用版本爲3.6.1(3.6.1版本CSDN下載)
注:這裏推薦大家用更新版本的protoc,因爲博主比較懶,沒有更換。這裏使用新版本的意義在於方便後面對API的編譯,博主所用的版本需要逐條編譯,更新版本的可以一次編譯,用新版本可以省去很多無用的重複勞動!
下載好文件後,我們解壓,把Bin文件夾中的protoc.exe文件放入系統盤下的windows/system 32下即可,無需其他操作:
放置路徑:
C:\Windows\System32
Step5:安裝Git.Git下載地址,Git CSDN下載地址
這裏我們一路點確認就好,傻瓜式安裝,安裝步驟如下:
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:修改代碼,使用絕對路徑: