TensorFlow Object Detection API の USBカメラ、Mjpg-streamer での利用

公開されている、TensorFlow Object Detection API を USBカメラ、Mjpg-streamer での利用方法を試してみます。
GitHub で公開されている、object_detectioon_tutorial.ipynb をベースに、 USBカメラ、Mjpg-streamer での利用をためしてみました。
https://github.com/tensorflow/models/tree/master/research/object_detection

サンプルは、ローカルの画像を2つ読み込んで、試していますが、
これを、 USB カメラ、mjpg-steamer から取り込んだキャプチャー画像に変えてみます。

object_detectioon_tutorial.ipynb が実行できる環境が整えば、結構簡単です。
Windows10 + Tensorflow-1.5.0 GPU +Python3.5 + OpenCV3.4 (Anaconda で全て構築しています)
Tensorflow は、新しいバージョンが出ていますが、GPU版は、1.5.0 をつかいます。

先ず、環境を整えます。 
1. tensorflow/models の全体を、zipファイルでダウンロードして、Windows10 の適当なディレクトリーで展開。
"<>Code" タグ  -> Clone or Download -> Download Zip 

2. Table of contents ->Setup: ->Installation に従って、環境をインストールします。
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md
注) Windows10 なので、完全にはできません。
COCO API installation は、無視

export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim の
`pwd' は、 Winddowsなので、コマンドが無いので、models-master を展開したpath を直接記述。
`pwd` -> c:\???\models-master\research
`pwd`/slim -> c:\???\models-master\research\slim

Windows10 では、下記
set PYTHONPATH=C:\???\models-master\research;C:\???\models-master\research\slim;%PYTHONPATH%

3. c:\???\models-master\research\object_detection ディレクトリーの、object_detection_tutorial.ipynb を JupeterNotebook で開いて、実行します。

4.object_detection_tutorial.ipynb を実行すると、学習済み Model がダウンロードされるのでこれで準備完了です。
学習済み Model は、下記に幾つもあるので色々変えて試せます。

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

要は、COCO Dataset、Kitti dataset、Open Image dataset でそれぞれ学習させたデルが用意されているので、
自分が検出したい物をよく認識するモデル、または性能のモデルを使えば良いと言う事みたいです。
どうしてもマッチするのが無ければ、自分で一から学習させるか、学習済モデルをベースに、
転移学習(Transfer Learning)をするか。

5.インターネット上に良く紹介されている object detection のサンプルプログラムは、 C:\???\models-master\research\object_detection ディレクトリーにプログラムを作成します。
今回のプログラムも、このディレクトリーで作成します。

注) utils -> object_detection.utils の事
#from utils import label_map_util
#from utils import visualization_utils as vis_util
from object_detection.utils import label_map_util
from object_detection.utils import visualization_utils as vis_util

6.実行方法は、Dos プロンプトから
>activate tensorflow
>set PYTHONPATH=C:\???\models-master\research;C:\???\models-master\research\slim;%PYTHONPATH%
>cd C:\???\models-master\research
>python object_detection\object_detection_tutorial_cam.py

プログラムの終了は、
'q'  キーを押下 

それでは、早速ですが、コードは、こちらです。
object_detection\object_detection_tutorial_cam.py

実行した感じ?
PCのモニターの上に自分を映す様にUSBカメラを向けているですが、
モニターには、自分のお顔がクローズアップされています。
一応、Person 70% と表示されます。

序に、 USB カメラを WebCAM(Mjpeg-streamer)に変えてみます。
URL="" は、Mjpeg-streamer のアドレスを指定します。

このブログ記事について

このページは、おんちゃんが2018年6月17日 19:28に書いたブログ記事です。

ひとつ前のブログ記事は「CNTK_106A_LSTM_Timeseries_with_Simulated_Data の改造」です。

次のブログ記事は「CNTK 2.4 Object Detection FasterRCNN の USBカメラ、Mjpg-streamerでの利用」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ