カテゴリー
未分類

進捗9/29

やったこと

・桃のデータ採取
・CNNモデルの可視化

桃のデータ採取

桃61個分のデータを採取しました。
一つの桃から48枚の画像を撮影し、6方向から糖度を測定しました。

条件
背景:段ボール・緑色のシート
照明:白色光・暖色光
角度:上下・側面4方向

CNNモデルの可視化

・使用技術:Grad-CAM
・使用したモデル:CNN(EfficientNet)
         ー 画像背景は黒・緑・段ボール
         ー データ数は計23200
・可視化に使用した層:block7b_add

・入力画像

・ヒートマップ

・合成画像(入力画像+ヒートマップ)

背景全体にうっすら反応があるほか、背景の光が当たった部分と下の部分にも反応を示している。
CNN条件を少し変えた場合で多少ヒートマップが変化するが、全体として背景で糖度推定している傾向がある。

その他の結果


今後の予定

・学会発表のレジュメ作成
・今年度のデータを追加してファインチューニング
・桃の領域のみを抽出する方法を考える

カテゴリー
未分類

進捗7/27

やったこと

  • 桃のデータ採取
  • ファインチューニングの続き

桃のデータ採取

引き続き桃のデータ採取を行なった。

ファインチューニング

  • 背景が黒色・緑シート・ダンボールのデータを使用
  • データを8分割してクロスバリデーションを行なった
  • 評価はそれぞれ24epochまで学習したモデルで行なった

学習過程グラフ

50epochまでの学習過程グラフを作成した。
8個の分割データ全てで過学習が起きていたため、原因を考える必要がある。

データ1の学習過程グラフ

評価結果

モデルMAERMSER
8つのモデルの平均値1.92602.67920.0958
MAEが最も良いモデル1.10511.39920.6115
MAEが最も悪いモデル2.47713.2145-0.0968
評価結果

決定係数にばらつきがある原因として、背景が緑色のシートとダンボールの桃が30個であり、1分割ごとに4個ほどしかないことが考えられるため、他は同じ条件のまま黒色背景のみのデータで再度ファインチューニングを行なっていく。

今後の課題

・桃のデータ採取
 約20個分のデータを採取したので、あと最低40個ほどの桃を購入する予定

・ファインチューニングの続き
 現在と同じ方法で、背景が黒色のみのデータを使用してファインチューニング(比較とファインチューニングがうまくいっているかの確認のため)

 その後は桃の裏のみのデータを使用してファインチューニングを行う

カテゴリー
未分類

進捗7/20

やったこと

・ファインチューニングの続き
・桃のデータ採取、購入

・ファインチューニングの続き

クロスバリデーション の際、学習データ・バリデーションデータとテストデータに同じ桃から採取したデータが混ざらないようにデータとプログラムを変更しました。

以下はデータを8分割したうちの1つで学習と評価を行なった結果です。

MAE:1.4
RMSE:1.98
決定係数:0.20

・桃のデータ採取、購入

スーパーで桃を14個購入しました。
産地は愛知と山梨で、品種は白鳳のものを選びました。
細かい品種は担当の人が不在で分からなかったので、また聞いてみたいと思います。

今後の課題

・桃のデータ採取
・ファインチューニングの続き
・桃の裏側のデータのみでモデルを作成

カテゴリー
未分類

進捗7/13

やったこと

今週はファインチューニングのためのデータの変更の続きと、桃のデータ採取を行いました。

プログラムの方はほとんど完成したので、あとはデータに変更を加えて正しく動いているか確認していきます。

今後の課題

ファインチューニングを行う

カテゴリー
未分類

進捗7/6

やったこと

今週は研究の発表資料を修正しました。

ファインチューニング用のデータ構成を変えるプログラムの方は来週までに完成させてファインチューニングを行なっていきたいです。

今後の課題

ファインチューニーのためのデータの変更

カテゴリー
未分類

進捗6/29

やったこと

背景差分を利用して桃の領域を抽出しました。
(OpenCVのBackgroundSubtractorMOG関数を使用)

背景画像
桃の画像
  左:平滑化なし      右:平滑化あり

他の方法も検討しつつ、桃の領域で削れてしまった部分を抽出する方法と、影の部分を除去する方法を考えたいと思います。

今後の課題

・ファインチューニング用のプログラムの修正     
 (train・validationデータとtestデータで異なる桃からデータを選ぶようにする)

・桃の領域抽出について考える

カテゴリー
未分類

進捗6/22

やったこと

ファインチューニングの続きを行った。
評価はクロスバリデーションで行った。

・使用したモデル
 EfficientNetB3とMLPを結合したモデル(元のモデル)
 学習させる層はCNNの56層とMLPの全部の層

・ファインチューニングに使用したデータ
 背景が黒色・緑色・段ボールの画像(23200枚)
 糖度を平均値化したデータ

・評価結果
 テストデータを8分割してクロスバリデーションで評価を行った。

ホールドアウトについては前回までと同じ方法で行った。
(8つのモデルのうち1つのモデルを使って評価)

評価方法MAERMSER
クロスバリデーション0.48900.58060.8324
ホールドアウト1.74342.3174-1.4641

クロスバリデーションの結果は背景が黒色のデータのみで学習した場合とさほど変わらなかった。

ホールドアウトの結果も前回までの結果とさほど変わらなかった。

今後の課題

・ファインチューニングの方針を考える
・桃の画像から桃の領域だけを抜き出す(背景差分で行う予定)

カテゴリー
未分類

進捗6/8

やったこと

ファインチューニングの続きを行なった。

・使用したモデル
 背景が黒色のみの画像、糖度を平均値化したデータを使用して学習を行ったモデル

・ファインチューニングに使用したデータ
 背景が緑色と段ボールの画像、糖度を平均値化したデータ

・評価結果
 ー 背景が黒色・緑色のシート・段ボールのデータ計288セットを使用

 ー それぞれ24エポック学習させた4つのモデルを評価して平均値を割り出した

ファインチューニングの方法MAERMSER
学習させる層を変えずに学習1.87002.3644-1.5750
CNNの28層のみ学習2.06582.5941-2.1216
MLPの最後の全結合層のみ学習1.98482.4236-1.7476
CNN(28層)とMLP(最後の層)を学習1.98622.5436-2.0011

結果としては、学習させる層を変えずに学習した場合に少し精度が良かったものの、どのパターンも評価結果にそれほど違いはなかった。

今後の課題

・2段階に分けずに、背景が黒い画像・緑色のシート・段ボールのデータセットをまとめて使用して再学習

カテゴリー
未分類

進捗6/1

やったこと

学習させる層を変更して2通りのファインチューニングを行った。

・使用したモデル
 背景が黒色のみの画像、糖度を平均値化したデータを使用して学習を行ったモデル

・ファインチューニングに使用したデータ
 背景が緑色と段ボールの画像、糖度を平均値化したデータ


CNNの上位28層と結合後のレイヤーのみ学習

・50エポックまでの学習過程

・評価結果
 背景が黒色・緑色のシート・段ボールのデータ計288セットを使用して評価

MAEMSER2
昨年度1.48621.9660-0.7930
今回2.06582.5941-2.1216

MLPの最後の全結合層と結合後のレイヤーのみ学習

・40エポックまでの学習過程

・評価結果
 背景が黒色・緑色のシート・段ボールのデータ計288セットを使用して評価

MAEMSER2
昨年度1.48621.9660-0.7930
今回1.65912.1330-1.1013

まとめ
学習させる層を変えた結果、どちらも誤差が大きくなった

今後の課題

どのようにファインチューニングを行っていくか考える

カテゴリー
未分類

進捗5/25

やったこと

アプリの処理速度で、どこがボトルネックになっているのかを細かく調べました。

調べた結果、処理速度が遅い原因は画像のアップロード部分ではなく、アップロード後の推定部分でした。

画像のアップロード自体には0.2秒か0.3秒ほどしかかかっておらず、学習モデルのロードと推論でそれぞれ4秒ほどかかっていました。

AWSの仮想サーバーに搭載されているGPUの性能を上げることで処理速度は改善するかと思いますが、料金がかかるので一旦保留にして次に進みたいと思います。

今後の課題

推論モデルの層構成を工夫して、ファインチューニングを行っていこうと思います。