1. 程式人生 > >TensorFlow object detection API應用一

TensorFlow object detection API應用一

ofo ash png figure lin 調用 安裝包 pat eight

目標檢測在圖形識別的基礎上有了更進一步的應用,但是代碼也更加繁瑣,TensorFlow專門為此開設了一個object detection API,接下來看看怎麽使用它。

一、object detection API 配置

首先,能到目標檢測了應該至少已經安裝好了TensorFlow及其相關依賴。這裏主要講在TensorFlow可以正常使用的基礎上目標檢測API的配置。

(1)下載TensorFlow object detection API

  去TensorFlow github上下載到本地目錄(避免中文),解壓。

(2)protobuf安裝與配置

  首先看看電腦是否安裝了protobuf,可在終端試下:

?  ~ protoc --version
libprotoc 3.6.1  # 有輸出說明已經安裝

如果沒有安裝,先去protobuf github下載安裝包,我選擇的版本是protobuf-all-3.6.1.tar.gz。Linux安裝方法如下:

  a、解壓,編譯,安裝

#tar -xf  protobuf-all-3.6.1.tar.gz
#cd protobuf-3.6.1
#./configure 
#make 
#make check 
#make install

  b、安裝protobuf的python 模塊(不需要python調用的可以不用)

#cd ./python 
#python setup.py build 
#python setup.py test 
#python setup.py 
install

  我原先在python模塊了安裝過了,用 pip install protobuf,但兩個版本要一致。

  c、驗證是否安裝成功

#protoc --version

#python 
>>>import google.protobuf

  沒有報錯,說明安裝成功

下面進行protobuf的配置,終端進入models\research\目錄,輸入:

?  ~ $ cd tensorflow/models/research 
?  research $ protoc object_detection/protos/*.proto --python_out=.

會將protos下所有的proto文件轉換為一個對應的Python文件。

(3)添加環境變量PYTHONPATH

tensorflow/models/research/ 和 slim 目錄 需要添加到PYTHONPATH環境變量中. 從終端中,切換到tensorflow/models/research/目錄,執行:

# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

註意: 這條命令在新打開的終端中需要重新執行一次才會在新終端中生效,如果不想那麽麻煩,就在 ~/.bashrc或者~/.zshrc (具體看用的是bash還是zsh)文件上把上面的語句添加到末尾,註意把pwd改成絕對路徑。

(4)測試

得到OK,說明安裝成功

python object_detection/builders/model_builder_test.py

技術分享圖片

(5)接下來,跑一個demo,你可以在這個路徑下運行jupyter notebook,然後打開/object_detection/object_detection_tutorial.ipynb

技術分享圖片

註意,下面這個demo裏第4步是從網絡中下載預訓練模型文件,若執行的時候速度很慢,可以單獨去下載這個模型文件,然後解壓到相應目錄,確保存在object_detection/ssd_mobilenet_v1_coco_2017_11_17/frozen_inference_graph.pb 文件,然後屏蔽到代碼中下載指令,如圖所示,把Download Model代碼塊設置MarkDown或直接註釋掉也可以。

技術分享圖片

接下就一步步執行裏面的代碼,看看最後的結果是否能檢測出圖片中的object。

技術分享圖片

TensorFlow object detection API應用一