Windows環境でKeras実装されたYOLOv3を使って一般物体検出をお手軽に試してみた

プログラミング

こんにちわ。R&Dエンジニアのやじろべぇです。
皆さん、機械学習&ディープラーニング楽しんでますか?
「機械学習やディープラーニングやってみたいけどどうやって勉強していけば良いかわからない」という人は、下記の記事もオススメですので、是非ご覧ください。

さて、今回は一般物体検出で有名な手法であるYOLOv3をサクッとに試してみたいと思います。
Windows環境でも簡単に動かせますよ。

YOLOv3とは

画像に写った物体が何であるかを認識して、更にその物体が画像中のどこにあるかを推定してくれます。
こういった技術のことを物体検出と呼びます。
イメージがわかない人はこちらの動画を見てみてください。
技術的にもっと詳しく知りたい人は、原著論文を読むことをオススメします。
この記事では下のソースコードを使ってKeras実装されたYOLOv3でお手軽に一般物体検出を試してみたいと思います。

qqwweee/keras-yolo3
A Keras implementation of YOLOv3 (Tensorflow backend) - qqwweee/keras-yolo3

環境構築

まずは、Anacondaをインストールして、その仮想環境上で必要なライブラリをインストールします。
下のパッケージは最低限必要になるのでインストールします。
・Keras (2.2.4)
・Tensorflow (1.9.0)
・Pillow
・matplotlib
※TensorFlowのバージョンは、1.13.1だとYOLOを動かそうとするときにエラーを吐きました。そこで1.9.0にダウングレードしたら上手く動作しました。

実行手順

まずはソースコードをダウンロードします。

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

ダウンロードしたフォルダ内に移動します。

cd keras-yolo3

次に、yolov3のdarknetでの学習済みモデルをダウンロードします。
wgetコマンドが上手く動かない場合は、URLを直接Web上に入力すればモデルをダウンロード出来ますよ。

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

モデルを格納するフォルダを作成します。

mkdir model_data

darknet 形式のモデルをKeras 形式に変換します。

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

事前準備はこれだけです。
では、いよいよYOLOを動かしてみましょう。
何か画像を用意して、keras-yolo3フォルダの直下に置きます。
そして、下記のコマンドを実行しましょう。

python yolo_video.py --image

そうすると、ターミナル上で「Input image filename:」と出てきますので、用意した画像ファイル名を入力します。

すると・・・

良い感じで物体検出されました!

コメント

タイトルとURLをコピーしました