knaka Tech-Blog

AI, IoT, DIYエレクトロニクス, データサイエンスについて投稿予定です。

keras YOLO3 で、物体検知

index:

概要

以前の、keras 画像認識に関連した内容で、 YOLO3 物体検知
する例となります。

環境

python : 3.5.2
keras
YOLO3

準備

紹介記事が、複数ありましたので。
概要のみです

https://github.com/qqwweee/keras-yolo3
yolo3 の、コピー

・学習済ファイルのコピー、yolov3.weights
wget https://pjreddie.com/media/files/yolov3.weights

・keras読み込み、変換処理 
model_data/yolo.h5 が、作成されます。
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5

手順

python yolo_video.py --image
評価する、jpg等画像ファイル名の入力

・結果を、ファイルに保存する場合、
 yolo_video.py
 の、detect_img を、下記修正を追加すると可能でした。
https://github.com/kuc-arc-f/keras-yolo3-test/blob/master/yolo_video.py

#
def detect_img(yolo):
    while True:
        img = input('Input image filename:')
        try:
            image = Image.open(img)
        except:
            print('Open Error! Try again!')
            continue
        else:
            r_image = yolo.detect_image(image)
            #r_image.show()
            import cv2
            cv2.imwrite("out.jpg", np.asarray(r_image)[..., ::-1])
            r_image.show()
    yolo.close_session()


検出の結果

検出できました。
適当な、画像を指定しましたが。
バウンディングボックス、枠の部分が表示れされています。

f:id:knaka0209:20190301124201j:plain

その他

上記の、関連等に記載がありますが。
tiny版もあるので、容量小さめの weights ファイル
をコピーして、評価できましたが。
認識精度は、落ちそうでした。

参考の設定

github.com