【物体検出】keras−yolo3の使い方

【物体検出】keras-yolo3の使い方

こんばんはエンジニアの眠れない夜です。

Kerasを使って物体検出をしてみたいという方に朗報です。

keras−yolo3と言うプロジェクトがありこちらを使うと簡単に物体検出ができます。

実はこのプロジェクトは1年ほど前からあるのですが最近気づきました(;´∀`)

すごく簡単に物体検出ができるのでこちらのブログでも紹介していきます。

keras−yolo3 の使い方

まずはこちらのコマンドでプロジェクトをクローンします。

git clone https://github.com/qqwweee/keras-yolo3.git

プロジェクトディレクトリに移動します。

cd keras-yolo3

環境

ドキュメントではPython 3.5.2で動作確認を行っているようなのでPythonのバージョンを3.5.2 にすることをおすすめします。

他のバージョンでも動くかもしれませんが、バージョンを揃えたほうが安全です。

pyenv を使っている場合は下記のコマンドでPythonバージョン3.5.2をインストールして、keras-yolo3のディレクトリだけ今インストールしたPythonバージョン3.5.2を利用する設定ができます。

pyenv install 3.5.2
pyenv local 3.5.2

必要なモジュール

最小構成で必要なモジュールを requirements.txt に書き出したのでこちらをダウンロード(保存)してインストールしてください。

pip install -r requirements.txt

続いて学習済みのモデルをダウンロードします。

wget https://pjreddie.com/media/files/yolov3.weights

これをKerasで使えるように変換します。

python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5

これで準備は完了です!

YOLOを使って物体検出をしてみましょう!

keras−yolo3 を使って物体検出をしてみよう!

準備ができたのでkeras-yoloを使って物体検出をしてみます。

まずはkeras-yolo3フォルダ直下に物体検出したい画像と動画ファイルを保存します。

画像の物体検出

下記のコードを実行すると”Input image filename:”と表示されるのでファイル名を入力します。(拡張子まで正確に)

python yolo_video.py --image

するとこんな感じで画像に検出されたもののラベルとその確率が表示されます。

Keras YOLO3を使った物体検出

動画の物体検出

動画を使った物体検出をしたい場合は下記のコードを実行します

python yolo_video.py --input ファイル名.mp4

CPUで実行したので1秒1コマ程度のスピードですが無事にYOLOを使った物体検出が画像・動画でできました!

物体検出がこんなに簡単にできるようになるなんて思いもしませんでした。

いい時代になりましたね(^^)v

始めから用意されているモデルで検出できるものがあなたのニーズに合うかは分かりませんが物体検出ができるようになったということが何より嬉しいことですよね!

人によって検出したい対象が異なると思うので次回は独自の物体検出モデルの作成方法をご紹介します。

【物体検出】keras−yolo3の学習方法

ディープラーニングを使うのはオーバースペックという方はこちらの白背景から対象物を切り取る方法もぜひご覧ください。

OpenCVとその他、Pythonの定番のライブラリだけで簡単にできるので開発工数ほぼ0です。

というかコピペで終わります。ぜひこちらもお試しください。

【Python】OpenCVで白背景から対象物を切り取る方法

5 Comments

yuuuuuu

Input image filename:kakuninn2.jpg
Traceback (most recent call last):
File “yolo_video.py”, line 73, in
detect_img(YOLO(**vars(FLAGS)))
File “yolo_video.py”, line 8, in detect_img
img = input(‘Input image filename:’)
File “”, line 1, in
NameError: name ‘kakuninn2’ is not defined
というエラーが出てきます.助けてください!!kakuninn2.jpgはkeras-yolo3直下においています.

返信する
アバター画像 sleepless-se

yuuuuuuさん
ご質問ありがとうございます。
yolo_video.py で kakuninn2.jpg (JPGファイル)を入れているのがエラーの原因ではないでしょうか?

positional arguments:
–input Video input path
–output Video output path

入力を動画ファイルにしてみるといかがでしょうか?

返信する

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください