5/20 進捗報告

研究室紹介の調整と打ち合わせを行っていました。

また、卒研は主に糖度計などの測定器を調べていました。
現段階では以下の2つのうちどちらかで測定を行いたいと思っています。

https://www.atago.net/product/?l=ja&f=new/products-pen-top.php

http://www.takamori-kohki.co.jp/rt/products/1638/

糖度計の他に水分計や酸度計などもありましたが、測定により時間がかかってしまうため、検討中です。

5/6 進捗報告

今までのモデル構成でのラベルの修正は無事終わったのですが、以前確認した精度より落ちている気がしました。精度をあげようとアンサンブル学習を行ったのですが、少ししか精度は上がりませんでした。モデルをサーバーにアップロード、動作確認をし、とりあえず完成にしたいと思っています。

卒研については、あまり手がつけられていないテーマだったり新規性を求め既存研究など調べていますが、大きな方向性しか定まっていないので焦っています。

4/22 進捗報告

今まで使用していたGoogle Compute Engineのインスタンスが使用不可となったため、新しいアカウントで再構築を行いました。

以前使用していたファイルがどれかわらなくなったり、データベースのテーブルの構成があやふやだったりと想像以上に時間がかかってしまいました。

現在は元の状態に復旧したので、デモで使用する予定の花を用いて機械学習モデルを再度作成をしています。

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の背景を単一色にし、学習させたら精度向上するのかなと思ったので、時間があれば、画像処理をかけて学習をさせようかと思っています

12/24

今週は現在Webで実装していた8種の画像をXceptionでFine tuningをしていました。

135層のうち109層以下を学習し、70エポックごとにWeightを保存をしていましたが、1回の実行に6時間かかってしまっています。

2回目の実行を深夜に放置していたところ、途中でランタイムが途切れてしまい、現在も実行中です。1回目の実行(70エポック)で約40%の精度でした。

また、同時並行で葉と草の学習をはじめました。こちらは独自で基本的なモデルを組み、5種で現在学習していますが、今見る限り6,70%ぐらいで収束する気がします。

プログラムは一通りかけているので、明日明後日のうちに混同行列やグラフを用いて精度比較したいと思っています。

検索にかける画像の結果の値が低い時、上位2つをWebページで表示させ、ユーザーに選択させようかと思っています。

12/17

この1週間は個人制作に気を取られ、全くすすめることが出来ませんでした。

データベースに登録してある植物が10種のままだったため、テーブルの設計の見直しとともに20種に増やしました。

また、アップロード処理の保存部分に不備があったため、全体的にプログラムを書き換えました

この1週間は追加機能の検討、今後の分担の割り振りなどをしていきたいと思っています。

12/10

先週に引き続き、画像を整形していました。しかし、使えそうな画像が1種につき50枚ほどしかなかったため、追加で収集していました。以下のURLにあるgoogle-images-downloadというツールを見つけ、使用しました。

https://qiita.com/tomokin966/items/fdf14f4bfaa8bf97eed6

また、先週の金曜(12/6)以降加藤くんと連絡が取れなかったのと、サーバサイドが遅れていると感じたため、勝手にMySQLのインストールとデータベース設計作成、PHPからの接続とデータ取得などを行い、Ajaxを用いて、JavaScript側で値を受け取ることができました。

サーバーサイドでなかなか苦戦し、時間を取られたため、中間発表までに学習ができるかが微妙ですが、PHPからのPython(モデル)呼び出し、結果を受け取るという部分は既に作成済みなので、プログラムをまとめ、1つのサイトとして機能するように調整したいです。

また、GCEでサーバーが乱立しているのと、サーバー側のファイルがごちゃごちゃしているので、そこも整理したいと思っています。