1. 程式人生 > >Tensorflow object detection API 搭建屬於自己的物體識別模型(1)——環境搭建與測試

Tensorflow object detection API 搭建屬於自己的物體識別模型(1)——環境搭建與測試

後續部落格地址(附帶視訊教程)

--------------------------------------------------------------------------------------------------

最近對深度學習比較感興趣,看了網上很多資料,嘗試了一下Tensorflow object detection API,想要在自己的資料集上呼叫API完成識別,積累了不少經驗,記錄下來,以後給需要的人。

1.開發環境搭建

在自己筆記本上完成。

作業系統:windows 10  64位

記憶體:8G

GPU:Nvidia MX 150

Tensorflow: 1.4

(1) 安裝python

建議選擇 Anaconda3-5.0.1 版本,已經整合大多數庫,並將其作為預設python版本(3.6.3),配置好環境變數(Anaconda安裝則已經配好)

(2)安裝Tensorflow

Tensorflow有CPU版本與GPU版本,首先安裝CPU版本。採用pip原生安裝。“開始-Anaconda3-Anaconda Prompt”調出命令列。

pip install --upgrade tensorflow
然後安裝GPU版本。此過程中有報錯,先執行
conda install pip
更新pip程式即可。

pip install --upgrade tensorflow-gpu
當然也可以在Anaconda中新建一個虛擬環境進行安裝,詳見  https://www.tensorflow.org/install/install_windows

對於GPU版本,需要安裝如下軟體:

1)CUDA® Toolkit 8.0, 需要注意最新版9.1不支援tensorflow 1.4版本;

2) cuDNN v6.0,7.0不支援tensorflow 1.4版本,現在cuDNN需要先註冊成為NVIDIA開發者,下載後將cuDNN中對應資料夾下的.dll檔案分別複製到CUDA安裝目錄對應資料夾下;

3) 對應的顯示卡驅動,如果驅動較新,在安裝CUDA的時候會有提示可能不相容,可以無視。

要測試Tensorflow 是否安裝成功,開啟命令列,首先啟用python

開始-Anaconda3-Anaconda Prompt,輸入'python',然後逐行輸入下面的文字

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
當輸出下面這行字,說明安裝成功。
Hello, TensorFlow!

(3)下載Tensorflow object detection API 

https://github.com/tensorflow/models
從github上下載專案(右上角“Clone or download”-"DownloadZIP"),下載到本地目錄(避免中文),解壓。

(4)Protobuf 安裝與配置

在 https://github.com/google/protobuf/releases  網站中選擇windows 版本(最下面),解壓後將bin資料夾中的【protoc.exe】放到C:\Windows

在models\research\目錄下開啟命令列視窗,輸入:

# From tensorflow/models/
protoc object_detection/protos/*.proto --python_out=.
在這一步有時候會出錯,可以嘗試把/*.proto 這部分改成資料夾下具體的檔名,一個一個試,每執行一個,資料夾下應該

出現對應的.py結尾的檔案。不報錯即可

(5)PYTHONPATH 環境變數設定

在 ‘此電腦’-‘屬性’- ‘高階系統設定’ -‘環境變數’-‘系統變數’ 中新建名為‘PYTHONPATH’的變數,將

models/research/ 及 models/research/slim 兩個資料夾的完整目錄新增,分號隔開,效果如下圖:


接下來可以測試API,在 models/research/ 資料夾下執行命令列:

python object_detection/builders/model_builder_test.py

不報錯說明執行成功。

2.測試自帶案例

開始-Anaconda3-Anaconda Prompt”調出命令列,改變工作目錄至 models\research\object_detection


然後輸入jupyter notebook,就會呼叫瀏覽器(Chrome)開啟當前資料夾,點開 object_detection_tutorial.ipynb,

在新標籤頁中開啟 Object Detection Demo,點選上方的 “Cell”-"Run All",

就可以直接看到結果,最後輸出的是兩張圖片的識別結果,分別是狗,以及沙灘。第一次執行由於需要下載訓練好的模型,耗時較長。第二次之後可以將 .ipynb檔案中 Download Model 即 in[5]部分的程式碼註釋掉,以加快執行速度。


如果在notebook中執行有問題,可以將.ipynb中in[]的程式碼複製到.py中,然後在 開始-Anaconda3-spyder 中執行。

至此Tensorflow object detection API 的環境搭建與測試工作完成。

下一步我們可以在此基礎上對程式碼進行適當的修改,可以用已有的模型來檢測自己的圖片,甚至視訊,並輸出結果。

在進一步,可以用自己標註的資料集進行訓練與評估。這些內容將在後續的部落格中呈現。