TensorFlow object detection API應用一
目標檢測在圖形識別的基礎上有了更進一步的應用,但是代碼也更加繁瑣,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.pyinstall
我原先在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應用一