Pynote

Python、機械学習、画像処理について

Deep Learning - Keras 実装の YOLOv3 で画像、動画から物体検出を試してみた

試した環境

手順

依存ライブラリを導入する。

pip install keras tensorflow-gpu numpy

コード及び重みファイルをダウンロードする。

コード及び重みファイルをダウンロードする。

# コードをダウンロードする。
git clone https://github.com/qqwweee/keras-yolo3.git
# 重みファイルをダウンロードする。
wget https://pjreddie.com/media/files/yolov3.weights

Darknet 形式のモデル定義及び重みを Keras 形式に変換する。

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

画像から物体検出を行う場合

$ python yolo.py
Input image filename:

ファイルパスを聞かれるので、スクリプトがあるディレクトリからの相対パスで入力する。

$ python yolo.py
Input image filename: cat.jpg
(416, 416, 3)
Found 1 boxes for img
cat 0.99 (2, 19) (351, 276)
1.479669090360403

検出結果画像が関連付けされているビューアーで表示される。

ファイルに出力したい等あれば、yolo.py を編集する。

動画から物体検出する場合

python yolo_video.py <動画ファイルのパス> <検出結果動画の出力パス>
# 例 python yolo_video.py video.mp4 out_video.mp4

検出結果が OpenCV のビューアーでリアルタイムに表示され、指定したパスに検出結果動画が出力される。