Teachable Machine を使った画像分類プロジェクト
概要
本リポジトリは、Google の Teachable Machine を用いて「サウジアラビア国王(King Salman)」の写真と「サウジアラビアの旗」を分類する2クラス画像分類モデルを格納したものです。Teachable Machine 上で画像をクラスごとに集めて学習させ、学習済みモデルを Keras 形式(keras_model.h5)でエクスポートしています。labels.txt にはクラスラベルが記載され、task1.py は学習済みモデルを読み込み推論を行うためのスクリプトと思われます。教育用やプロトタイプ向けの簡潔なセットアップで、モデルの読み込み・推論・ラベル対応までが揃っています。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 4
- ファイル数: 4
- メインの言語: Python
主な特徴
- Teachable Machine で簡単に学習・エクスポートした Keras モデル(keras_model.h5)を同梱
- labels.txt によるクラスラベル管理で結果の可読性を確保
- task1.py による学習済みモデルの読み込みと推論のワンステップ実行(想定)
- 学習プロセスの説明を含む README により再現や拡張が容易
技術的なポイント
このリポジトリは Teachable Machine を起点とした「高速プロトタイピング型」の画像分類ワークフローを示しています。Teachable Machine はブラウザベースで転移学習のプロセスを抽象化しており、ユーザーは自分でデータのラベリングとアップロードを行うだけでモデルが作成されます。ここでは 2 クラス(King Salman と Saudi flag)に対して画像データを収集し、学習を行った後、Keras 形式(keras_model.h5)でエクスポートしています。エクスポートされたモデルは TensorFlow/Keras の標準 API で読み込めるため、Python 環境での推論や追加学習(ファインチューニング)、サーバーやエッジ端末へのデプロイが容易です。
推論スクリプト(task1.py)は典型的には以下の処理を含みます:keras.models.load_model によるモデル読み込み、labels.txt からのクラス名ロード、入力画像のリサイズや正規化(Teachable Machine の出力に合わせた前処理)、モデルへ入力して得られた確率から最大値を取得してクラスを決定する流れです。Teachable Machine のモデルは入力サイズや前処理(ピクセル値の 0-1 正規化や中央寄せなど)が固定されているため、推論時に同じ前処理を適用することが精度維持の鍵です。
注意点としては、Teachable Machine は小規模データで素早く動く反面、汎化性や偏り(データセットの多様性不足)に弱い点があります。実運用を考えるなら、学習データの拡充、データ拡張(回転・スケール・色調変化など)、クロスバリデーションによる評価、混同行列での誤分類分析が必要です。また、モデルサイズや推論速度を重視する場合は TensorFlow Lite への変換や量子化を検討するとよいでしょう。さらに、使用する画像が政治的・文化的に敏感な対象(国王の肖像や国旗)を扱っているため、利用目的と公開範囲について配慮することも重要です。
実装面の拡張案としては、task1.py を拡張してバッチ推論やカメラ入力対応、結果の可視化(確率バーやサンプル表示)、簡易 API 化(Flask/FastAPI)によるデプロイなどが考えられます。モデルを継続的に改善するために、アノテーションの品質管理・学習データのバージョン管理・自動化テストを導入すると、プロジェクトの信頼性が高まります。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- keras_model.h5: file
- labels.txt: file
- task1.py: file
(期待される使い方)
- Python 環境で TensorFlow/Keras をインストール
- task1.py を実行してモデルを読み込み、推論を行う(事前に前処理に合わせた画像を用意)
- 必要に応じてモデルを TensorFlow Lite などに変換してデプロイ
まとめ
Teachable Machine の手軽さで学習からエクスポートまでを完結させた、教育・プロトタイプ向けのシンプルな画像分類リポジトリです。
リポジトリ情報:
- 名前: Teachable-machine
- 説明: We use Teachable Machine to train the machine to differentiate between two different types of images.
- スター数: 1
- 言語: Python
- URL: https://github.com/asdb34542-ops/Teachable-machine
- オーナー: asdb34542-ops
- アバター: https://avatars.githubusercontent.com/u/235815227?v=4
READMEの抜粋:
Teachable-machine
We use Teachable Machine to train the machine to differentiate between two different types of images. To train the model in Teachable Machine A. We go to the Teachable Machine website and choose the image project and specify how many classes we want. I chose two classes. The first class was the King of Saudi Arabia and I added different pictures of King Salman to it. As for the second class, it was the flag of Saudi Arabia and I added different pictures of the flag. Then we c…