サービス
サービスを探す
プロ人材を探す
仕事を探す
ブログを探す

// ============================================
// main.cppの処理フロー
// ============================================
// ステップ1: カメラから4bitデータ取得
arducam_capture_frame(&config);
// → image_buf[324*244] に 4bitデータ格納
// ステップ2: 96x96リサイズ + 4bit→8bit変換
prepare_model_input(image_buf, model_input_uint8);
// → model_input_uint8[96*96] に 8bitデータ格納
// → 値は 0, 17, 34, ..., 255 (17刻み)
// ステップ3: Edge Impulseの推論実行
run_classifier(&signal, &result, false);
// ↓
// run_classifierの内部で get_signal_data() が呼ばれる
// ↓
// get_signal_data() がグレースケールをRGB形式に変換
// gray=68 → rgb=0x00444444 → float(4473924.0)
// ↓
// extract_image_features_quantized() が処理
// float(4473924.0) → uint32_t(0x00444444) → R=G=B=68
// → ITU-R 601-2 グレースケール計算 → 68
// → INT8量子化: 68-128 = -60
// ↓
// MobileNetで特徴抽出
// ↓
// 最終分類
// ステップ4: 結果取得
// result.classification[0].value, result.classification[1].value