(TeachableMachineなどでモデル生成)
https://teachablemachine.withgoogle.com/
参考サイト
https://qiita.com/s_yosh1d/items/0ac1e5c941ecda52b131
Webカメラ映像から画像をキャプチャし、機械学習モデル(Barracudaを使用)で分類を行うシステムです。
を行います。
Webカメラの映像をキャプチャし、Barracudaモデルで画像分類するクラスです。
rawImage: Webカメラの映像を表示するための RawImage コンポーネント。webCamTexture: Webカメラの映像テクスチャ。CameraNumber: 使用するカメラのインデックス(WebCamTexture.devices 配列から選択)。classifier: 分類用クラスの参照。uiText: 分類結果を表示するテキストフィールド。isWorking: 処理中フラグ。devices: 接続されているカメラデバイスのリスト。webCamName: 選択したカメラの名前。webCamTexture を作成します。解像度は Classifier.IMAGE_SIZE に基づきます。rawImage にカメラ映像を表示します。TFClassify() を毎フレーム実行し、カメラ映像をもとに分類処理を行います。ProcessImage コルーチンを開始し、分類結果を表示します。CropSquare コルーチンを呼び出してカメラ画像を正方形に切り出し、スケーリングして、Barracudaモデルで扱える Color32[] フォーマットに変換します。Texture2D に変換後、画像データをコールバックに返します。Texture2D 画像を指定された解像度にリサイズします。Classifier クラスは、Barracudaフレームワークを用いてWebカメラ映像の分類を行うためのクラスです。
modelFile: 推論に使用するニューラルネットワークモデルファイル。labelsFile: 各クラス(分類ラベル)の名前が記載されたテキストファイル。IMAGE_SIZE, IMAGE_MEAN, IMAGE_STD: 画像サイズと正規化のための定数。INPUT_NAME, OUTPUT_NAME: モデルファイルの入力と出力の名前。worker: Barracudaのモデルを実行するためのエンジン。labels: ラベルデータの配列。labelsFile からラベルを読み込み、Barracudaモデルの初期化を行います。Color32[] 配列の画像データをBarracudaモデルに入力して推論を行うメソッドです。callback 関数で返されます。Color32 配列の画像データを Tensor に変換し、Barracudaモデルが扱える形式にします。このファイルには各クラスのラベルが記述されており、Barracudaモデルが分類結果として返すラベルのリストです。例えば、Unity-Chan と Jozen の2つのクラスが含まれています。