YOLOを使ってみた -Windows- (塩尻MLもくもく会#5)

Windows10+kerasで、YOLOを使ってみます。

YOLOの最新バージョンはv3ですが、今回はv2を使います。

YOLOは、物体検出の分野で高速な性能を提供しています。

公式動画はこちら↓

https://pjreddie.com/darknet/yolo/

08097E42-5F4A-41E1-985D-93BF943C460A.jpeg


事前準備

gitのインストール

https://qiita.com/toshi-click/items/dcf3dd48fdc74c91b409

wgetのインストール

https://assimane.blog.so-net.ne.jp/2013-01-21


YOLOのインストール

ソースコードをダウンロード&必要なライブラリをインストールします。

コマンドプロンプトで以下のように入力します。

git clone https://github.com/allanzelener/YAD2K.git

cd yad2k

pip install numpy h5py pillow
pip install tensorflow-gpu
pip install keras

weightsなどをダウンロードします。(公式サイトでは2行目が古いままです。最新はyolov2.cfgです。)

wget http://pjreddie.com/media/files/yolo.weights

wget https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov2.cfg

kerasでモデルを作成します。

python ./yad2k.py yolov2.cfg yolo.weights model_data/yolo.h5

imagesフォルダ内にある画像に対して物体検出を実行します。

python ./test_yolo.py model_data/yolo.h5

結果はimage/outに出力されます。


試しに動かしてみる

手持ちの画像で試してみました。

kj.JPG

小さく写っている「ベンチに座っている人」も検知できています。

ng.JPG

手前の車は屋根しか写っていませんが、ちゃんと検知できています。

ij.JPG

奥の燕は検知できませんでした。首の角度が悪いのかな?

そして、庇(屋根)が飛行機として認識されています。


感想

誤検知や検知漏れもありますが、高速に動く分、我慢できる範囲かな??