Windows10+kerasで、YOLOを使ってみます。
YOLOの最新バージョンはv3ですが、今回はv2を使います。
YOLOは、物体検出の分野で高速な性能を提供しています。
公式動画はこちら↓
https://pjreddie.com/darknet/yolo/
事前準備
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に出力されます。
試しに動かしてみる
手持ちの画像で試してみました。
小さく写っている「ベンチに座っている人」も検知できています。
手前の車は屋根しか写っていませんが、ちゃんと検知できています。
奥の燕は検知できませんでした。首の角度が悪いのかな?
そして、庇(屋根)が飛行機として認識されています。
感想
誤検知や検知漏れもありますが、高速に動く分、我慢できる範囲かな??