(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つのクラスが含まれています。