1/21

画像の収集、整形が終わったため、最後の学習を行っています。
Class 24クラス batchSize 64 TrainData 8024枚 ValidationData 2664枚 で行っています。

ネットの情報をもとに、steps_per_epoch epochを変更したところ 1epochが19時間かかると出たため 再度調べ、
steps_per_epoch * batchSize = TrainData でした。

上記を修正をし、学習を行っています。1epochあたり約90分となり、現在ValidationDataでの正答率が75%なので、今日中に収束してくれると願っています。明日の朝までに検証を行いたいと思っています。

1/14

ユーザーに上位2つから選択させることになったため、上位2種を返すようにPHPの書き換えと読み込みモデルの差し替えを行っていました。

モデルが正しく動くかPython単体で実行したところ、プログラム終了時にエラーが出てしまい、現在実行ができない状況です。早急に修正し、加藤くんが収集している画像を用いて、学習を行う予定です。

1/9 進捗報告

本田
VGG16とXceptionの精度比較を行っていました。
8クラスで行ったところ Xceptionの方が精度が良く、約89%ほどの精度でした。
テストデータ での混同行列と適合率、再現率、F値を出力したところ、
中ではイチョウの精度が悪かったため、ヒートマップを作成しました。
イチョウと判別されたが確率が低い画像と、誤判定されたイチョウの画像で作成しましたが、関係ない部分が特徴として捉えられていました。
画像の数やサイズ、画像処理を施すなどで対処したいと考えているのと、今後は画像の種類を増やし、精度比較を行っていきたいと思っています。

前回のセミナー中にPHPからMariaDB(MySQL)へ接続ができなくなりました。
今まではrootユーザでのログインをしていたのと、バージョンアップデートか何かの拍子にpasswordのハッシュ関数が変わったのが原因なのかと考えています。
MariaDBを削除し再インストールを行い、新規にユーザを作成したため、現在は復旧しています。
国内国外ともに、現在使用しているdebianOSでの資料が少ないため、再度発生した時にはCentOSなどに変更しようかなと思っています。

柴田
2019年内は表示速度の改善を行い、その後は遷移時のエフェクトやモーダルウィンドウ を用いたヘルプ画面の実装を行いました。
また、学習画像の選別も行っていました。
今後は、ユーザーに判別した上位2種の植物から1種を選択してもらうためのページとアルバム詳細ページの作成を行っていきます。

加藤
種類追加のための学習画像の収集を行っていました。
現段階では、1種類ごとにプログラムを実行する必要があるため、プログラムを改良し、複数種類行えるようにしたいと考えています。
今後も引き続き、画像収集と整形、選別を行っていく予定です。

1/7

年末年始はVGG16とXceptionをFineTuningし、精度比較などを行っていました。

十分に画像があった既存の8クラスで学習を行いました。
サイズ (width, height, channel) = (192, 192, 3)
training_data 約2700枚
validation_data 約800枚
test_data 約320枚
epoch 約120
VGG16は下位2層 Xceptionは下位88層を学習
という環境で行いました。

validation_dataでの精度はVGG16で83% Xceptionで89.5%ほどでした。

このサイトを参考にし、混同行列を作成しました。
https://blog.aidemy.net/entry/2018/12/23/022554
丸々コピーしたところ、実行できず、自作モデル以外では
model.predict_classes()が使用できず、ここを1枚ずつmodel.predict()で結果をlistに追加することで動きました。
また、画像読み込みの際にImage.ImageDataGenerator.flow_from_directory()を用いるとフォルダ名をラベルにしてくれるのですが、以前やったラベルの順番と変わってしまい、このことに気づくのに時間がかかってしまいました。

Xception
VGG16

この時点でXceptionの方が精度が良いと判断し、これ以降はXceptionモデルで精度検証を行いました。

次にXceptionモデルの適合率、再現率、F値を出しました。以下が結果です。

Xception

イチョウのF値が一番低いため、どこの特徴を捉えているのかを知るために、
以下のサイトを参考にヒートマップを出しました。
https://qiita.com/T_Tao/items/0e869e440067518b6b58
まず、1枚目はイチョウと判別されたが、確率が低かった画像のヒートマップです。

次に、ハスと誤判別された画像のヒートマップです。

test_dataも悪い気もするのですが、他の誤判別された画像でヒートマップを表示したところ、関係ない背景の部分などの特徴を捉えてました。

現在、メンバーの二人が画像整形してくれたのと、加藤くんが追加で画像収集をしてくれているので、今後は種類を増やし、Xceptionで学習、精度検証をしたいと思っています。
また、training_dataの背景を単一色にし、学習させたら精度向上するのかなと思ったので、時間があれば、画像処理をかけて学習をさせようかと思っています