1. 程式人生 > >使用tensorflow object detection api 進行實時目標識別

使用tensorflow object detection api 進行實時目標識別

1.安裝

             tensorflow 原始碼在 github 主要有兩個倉庫,一個是tensorflow ,另一個是models,我們需要的api 在models中。

專案地址: 

官方安裝說明文件:

依賴的庫:

  • Numpy
  • Pillow 1.0
  • Jupyter notebook
  • Matplotlib
  • Tensorflow

                 以上均可使用pip 安裝,作業系統本人使用ubuntu 16.04

安裝:

            安裝到任何位置均可,使用git clone  https://github.com/tensorflow/models  命令 或者 在網頁下載 zip 解壓均可

            新增slim 路徑,開啟終端,進入到如下路徑,並輸入命令:

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

            注意:這個命令是每次開啟終端都需要輸入的,如果你想每次自動執行,請在每個使用者的~/.bashrc的最後一行加上,上面的命令,pwd要更改成research資料夾的絕對路徑。

編譯模型:

            research資料夾下輸入命令:

protoc object_detection/protos/*.proto --python_out=.

2.測試

測試安裝成功:

python object_detection/builders/model_builder_test.py

            如果出現:ran 14 tests in 0.004s 字樣 說明安裝成功

測試程式:

            以root身份執行jupyter:

sudo jupyter-notebook --allow-root

            開啟research/object_detection目錄下的object_detection_tutorial.ipynb,,點選cell 的 run all ,右上角python3 後面的圓點變成實心說明程式正在執行,等待幾分鐘,圓點變成空心,說明程式執行結束,可以看到一張狗的圖片和一張海灘的測試圖片,上面的被識別的物體被bounding-box 包圍著。

3.執行程式

            這裡有一個利用tensorflow object detection api 和 opencv 寫的實時目標檢測程式,呼叫計算機上的攝像頭,實時目標檢測。

專案原始碼:

               這個專案是使用anaconda 環境,但是我沒有使用anaconda,直接執行python object_detection_app.py 就可以。

               執行成功可以看到出現一個小視窗,從攝像頭影象實時目標檢測。

               通過閱讀原始碼發現,使用的是ssd_mobilenet模型,檢測速度非常快,訓練的資料集是coco,關於詳細原始碼分析,在近期的部落格會寫。