はじめに
TeachableMachineはウェブ上で簡単に機械学習モデルが作成できるウェブアプリですが、それに加えて、作成したモデルをダウンロードしてPythonやJavascriptで作ったアプリケーションで利用することもできます。ここでは、以前作成した機械学習を使った破断面の画像分類のモデルをダウンロードして、Pythonで作ったプログラムで使えるようにしてみました。
TeachableMachineのモデルのダウンロード
まず、学習後のモデルをエクスポートするため、アプリ右上の「モデルをエクスポートする」をクリックします。
ここではPythonでアプリケーションを作成するので、①Tensorflowを選び、②モデルをダウンロードをクリックします。
keras_model.h5とlabels.txtがダウンロードされます。ここでは、これらのファイルをc:/pythonというフォルダに格納します。
次に、表示されているサンプルプログラムをコピーします。kerasかOpenCV Kerasを選び(ここではKerasを選ぶ)、コピーをクリックすると、サンプルプログラムをコピーできます。コピーしたプロプラムをお使いのエディタにペーストして、名前を付けて保存します。ここでは、プログラムもc:/pythonに保存しておきます。

エディタにペーストしたサンプルプログラムで、下図の黄色線で示した個所を編集します。

ここで、test_image.jpgは下の画像です。上記のプログラムを動かすには、この画像をc:/dataに格納します。

プログラムを実行すると、下のターミナルにClass:2 RockとConfidence score0.978・・・という結果が表示されます。Rockは粒界破面を表すので、正しい結果が得られていることが分かります。

さて、上記のサンプルプログラムでは画像ファイルが選択できませんので、サンプルプログラムにファイル選択の機能を追加したプログラムを、上記のプログラムやTeachableMachineのモデルなどと一緒に以下に格納しました。
動作環境
- Windows11
- VSC 1.7.3.1
- Python 3.8.10
- numpy 1.20.0
- keras 2.11.0
- pillow 9.3.0
終わりに
何かのお役に立てれば幸いです。