(「 AI課題3:植物写真分類(5)」の続きです。)

「植物写真分類(5)」で作成した学習済みモデルとOpenCVを 利用して動画の植物を当てるプログラムを作成してみました。
(OpenCVについては「OpenCV を Python Tensorflow (Windows10)環境にインストール」 )

(1)プログラム(言語 Python、テキストファイル UTF-8)
plant05_movie.py
(植物名については前回の plant05_names.py をインポート)

サンプルホルダー(data/plantmovie/sample/)にある各動画に映っている植物を推定するプログラムです。OpenCVの動画読み込み機能を利用して、サンプルフォルダにあるMP4動画を順次読み込み、読み込んだ動画のフレームを TensorFlow, Keras で扱える画像データに変換後、植物名の推定を行っています。
元の学習データが224×224なので動画の画像の中央を正方形に切り出してサイズ変更してます。OpenCvは画像形式がBGRなのでRGBに変換する必要があり、また、VGG16のpreprocess_input()の中では、画像の正規化やRGBごとの平均値を引くなどの処理が行われているそうです。
(学習済みモデルは、VGG16を利用した転移学習なので必要に応じてVGG16をダウンロードする場合があります。)
結果は全体の確信度平均や個別の画像結果の良好な確信度の平均などで表示してます。

(2) 分類用サンプル動画と学習済みモデル

plant05_movie.zip

サンプル動画には植物の映っている動画MP4ファイル、縦・横があります。
(音を消していないので風の音がうるさいかもしれません。)

(3) 実行結果
サクラ sakura01.mp4, sakura02.mp4

plant05_movie01

plant05_movie02

サツキ satsuki01.mp4

plant05_movie03

ツツジ tsutsuji01.mp4

plant05_movie04

 

今回のプログラム実行環境は以下の通りです。
OS:Windows10
言語:Python 3.6.5
フレームワーク:Tensorflow 1.12.0, Keras 2.2.4, OpenCV 4.5.1
本体:マウスコンピューター LM-iH700B2N
CPU: Intel Core i3-8100 CPU @ 3.60GHz
本体メモリ: 12 GByte
本体電源: 500W
グラフィックボード:NVIDIA Geforce GTX1070 8G

(2021/4/30 S.Onda)