MediaPipe Face Detectionの基本実装

MediaPipe Face Detectionは、TensorFlow.jsランタイムで動作する軽量な顔検出モデルです。
// プラットフォームの初期化(1回だけ実行)
await tf.ready();
platformInitialized = true;
// 検出器の初期化
const model = faceDetection.SupportedModels.MediaPipeFaceDetector;
const detectorConfig = {
    runtime: 'tfjs', // TensorFlow.jsランタイム
    modelType: 'short' // 短距離モデル(高速・軽量)
};
detector = await faceDetection.createDetector(model, detectorConfig);
1 TensorFlow.jsの初期化: tf.ready()でプラットフォームを初期化(1回だけ実行)
2 モデルの選択: MediaPipeFaceDetectorを使用(Googleが開発した顔検出モデル)
3 モデルタイプ: 'short'は2メートル以内の距離に最適化(高速・軽量)
// 顔検出の実行
const faces = await detector.estimateFaces(video);
faces.forEach(face => {
    // 顔の位置情報
    const { xMin, yMin, width, height } = face.box;
    // 信頼度スコア(0.0〜1.0)
    const score = face.score;
    // 特徴点(目・鼻・口・耳など)
    face.keypoints.forEach(keypoint => {
        const { x, y } = keypoint;
    });
});
検出結果の構造:
face.box: 顔の位置(xMin, yMin, width, height)
face.score: 信頼度スコア(0.0〜1.0、1.0が最高)
face.keypoints: 特徴点の配列(目・鼻・口・耳など、6個の特徴点)