はじめに
前回の機械学習を使った鉄鋼材料の金属組織画像の判定では、機械学習アプリTeachableMachineを使って金属組織の判定を行いましたが、ここではKerasライブラリのMobilenetV2というモデルを使って金属組織の判定を試みます。
モデルの作成
- 金属組織の画像データは前回と同じものを使用しました。
- 学習モデルはImageNetで事前学習済みのKerasライブラリのMobilenetV2を使用して、転移学習で行いました。
- TeachableMachineで作成されるモデルのファイルサイズは2.4kBと同程度のファイルサイズになるように学習モデルを作成しています。
以下の①~③のプログラムや学習モデルについてはサンプル画像と一緒にgithubに格納しております。
① MobilenetV2モデルによる学習・検証プログラム(TrainValidation_MobileNetV2_model)
② 上記①で作成したモデル(model.h5およびlabels.txt)
③ 上記②を使って推論するプログラム(Metallography_MobileNetV3.py)
上記②、③の使い方については、githubのREADMEをお読みください。
上記①については一般的な画像分類(犬・猫の画像分類など)のMobileNetV2モデルを作成するプログラムです。使い方は次のとおりです。
- あらかじめ、分類する種類の分だけフォルダを作成して画像を格納しておきます。プログラムも適当な場所に置きます。
- プログラムの24と25行目のフォルダ名をご使用の環境に合わせて編集してから実行します。
- 学習終了後、二枚のグラフ(accracyとloss)が表示されます。これらを閉じるとプログラムは終了します。
- 学習で作成されるmodel.h5とlabels.txtを使って、Metallography_MobileNetV3.pyで実際の画像を推論することができます。
- 学習の正解率が低い場合、画像の水増し条件や学習率などの変更で改善することがあります。
なお、学習に用いた金属組織画像によるaccuracyとlossは次のとおりです。
図1 学習に用いた金属組織の画像データに対する学習曲線
図2 学習に用いた金属組織の画像データに対する損失曲線
何かのお役に立てれば幸いです。