FaceBlurオープンツール

FaceBlurの精度検証

高速モードと詳細モードをストック動画のみで再検証しました。ユーザーがアップロードしたコンテンツは、この実行にも公開証拠にも使用していません。

· 更新後の動作テストと過去の基準テスト結果。

現在のアプリ:徹底モードが標準

単一動画と一括処理の標準を徹底モードに変更しました。高速モードも選べます。また、短い時間範囲かつ同じ検出シーン内で、連続する2回の一致した検出を使い、新たに現れた顔の1フレーム前も覆います。

新たに取得したストック動画9本、12シナリオ。各モード63秒、連続1,512フレームです。3シナリオは2倍速でもテストしています。ユーザーがアップロードした素材は使用していません。

動作テストの所見

頭を振る動画の3.500秒で再び現れる顔を、両モードとも覆うようになりました。高速モードでは、パーティーの顔の接写で以前は見逃していた最初のフレームも覆います。

徹底モードは、確認した頭の回転と2倍速の見逃し区間を覆っています。高速モードでは、パーティー動画の2.417〜2.708秒の連続7フレームと2.917〜3.083秒の4フレームで、引き続き見逃しがあります(終了時刻を含まない)。2倍速では、高速モードの30〜31および34〜36フレームに部分的なマスクやマスク欠落が残っています。

同じ64の選択した元動画の時点と128の出力フレームを再度目視確認しました。解析した全3,024フレームで、既存のマスク座標と追跡ラベルは変わらず、修正では直前フレームのマスクのみを追加しています。未確認のフレームですべての顔が覆われていることを示すものではありません。

修正の参考にしたものと同じ動画で再テストしています。選択したフレームは回帰確認用であり、独立した精度評価ではありません。以前の98.3%は過去の結果で、今回の更新の評価ではありません。

顔の再出現時の見逃しと復帰を確認

モードデコード済み出力フレーム解析時間(秒)書き出し時間(秒)
高速1512 / 1512200.912.8
詳細1512 / 1512900.523.4

動作テストの時間は、証拠ファイルの生成をバックグラウンドで行った1回のローカル実行によるもので、条件を統一した速度比較ではありません。モデルの初期化時間は含みません。

左が元動画、中央が高速モード、右が徹底モードです。実際の書き出し結果を半分の解像度で表示しています。解析と書き出しは1280 × 720、24 fpsで行い、音声は削除しました。

後頭部のみのランニング対照例 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

小さな顔とグループダンス (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

重なるダンサーと手による遮蔽 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

回転と側転 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

回転と側転 (2×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

素早い頭の回転と髪による遮蔽 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

素早い頭の回転と髪による遮蔽 (2×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

カメラの動きと暗所でのダンス (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

顔の接写での頭の動きと色付き照明 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

顔の接写での頭の動きと色付き照明 (2×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

全身ダンスと髪の動き (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

カメラ上方の通過と退出 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材

全フレームの動作トレースをダウンロード(CSV) · 動作レビューと失敗区間(JSON) · 動作テスト概要(JSON) · 動作テストの来歴マニフェスト(JSON)

高速モードの動作テスト生データ · 徹底モードの動作テスト生データ

アプリ更新前

連続動作のストレステスト

新たに取得したストック動画9本、12シナリオ。各モード63秒、連続1,512フレームです。3シナリオは2倍速でもテストしています。ユーザーがアップロードした素材は使用していません。

全フレームを解析し、書き出した全フレームをデコードしました。これは処理の検証であり、顔がすべて隠れていることの検証ではありません。下記の98.3%は以前の固定サンプルによる基準テストの結果です。

動作テストの所見

接写の頭の回転で、高速モードは顔が見える連続8フレーム(2.417秒から2.750秒未満)を見逃しました。徹底モードはこの区間を覆いました。高速モードは2.917秒から3.125秒未満の5フレームも見逃しました。

頭を回す動画の3.500秒で再び現れた顔を両モードとも見逃し、3.542秒で再び覆いました。見逃したフレームでは、徹底モードは顔ではなく胴体にマスクを配置しました。

2倍速では、高速モードのマスクが動きに遅れ、顔の特徴が見えることもありました。マスクの数がゼロでないことは、顔が覆われている証拠にはなりません。選択した失敗例だけでは、全動作シナリオの総合順位は決められません。

選択した失敗区間をCodexがフレーム単位で確認しました。動作全体の精度評価や独立した人間によるレビューではありません。マスクがないフレームが必ずしも顔の見逃しを意味するわけではありません。

頭の回転で見逃したフレームを確認 · 顔の再出現時の見逃しと復帰を確認

モードデコード済み出力フレーム解析時間(秒)書き出し時間(秒)
高速1512 / 1512176.519.7
詳細1512 / 1512753.411.6

動作テストの時間は、証拠ファイルの生成をバックグラウンドで行った1回のローカル実行によるもので、条件を統一した速度比較ではありません。モデルの初期化時間は含みません。

左が元動画、中央が高速モード、右が徹底モードです。実際の書き出し結果を半分の解像度で表示しています。解析と書き出しは1280 × 720、24 fpsで行い、音声は削除しました。

後頭部のみのランニング対照例 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 0–6秒 → 6秒

小さな顔とグループダンス (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 4–10秒 → 6秒

重なるダンサーと手による遮蔽 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 3–9秒 → 6秒

回転と側転 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 0–6秒 → 6秒

回転と側転 (2×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 0–6秒 → 3秒

素早い頭の回転と髪による遮蔽 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 2–8秒 → 6秒

素早い頭の回転と髪による遮蔽 (2×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 2–8秒 → 3秒

カメラの動きと暗所でのダンス (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 1–7秒 → 6秒

顔の接写での頭の動きと色付き照明 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 5–11秒 → 6秒

顔の接写での頭の動きと色付き照明 (2×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 5–11秒 → 3秒

全身ダンスと髪の動き (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 5–11秒 → 6秒

カメラ上方の通過と退出 (1×)
元動画高速詳細

比較動画を開く · Mixkitのストック素材 · 0–6秒 → 6秒

全フレームの動作トレースをダウンロード(CSV) · 動作レビューと失敗区間(JSON) · 動作テスト概要(JSON) · 動作テストの来歴マニフェスト(JSON)

高速モードの動作テスト生データ · 徹底モードの動作テスト生データ

素材は今回のテスト用にMixkitから直接ダウンロードしました。マニフェストには素材のハッシュ、抜粋範囲、再生速度、モデル・コード・証拠ファイルのハッシュを記録しています。ランニングの対照例は人物を後方から撮影しており、顔を隠せた成功例には数えません。

固定サンプルによる基準テスト

5公開ストック動画
47 / 65評価済み/抽出フレーム
59確認できる顔の延べ数
モードマスク済み/顔マスク率欠けている偽ポジティブ
高速(YuNet)58 / 5998.3%120
詳細(SCRFD-10G)58 / 5998.3%110

マスク率は固定時刻で確認できるマスク済みの顔を数えます。誤検出は人以外の物や背景に付いたマスクです。人数ではなく、抽出フレームに写る顔の延べ数です。

両モードともグループ動画の10.5秒で画面端の顔を見逃しました。詳細モードでは誤検出が半減しましたが、解析時間は長くなりました。

シナリオによる結果

脚本フレーム顔高速:マスク済み/誤検出詳細:マスク済み/誤検出
フロントアウト555 / 05 / 0
プロフィール 全121212 / 012 / 2
手と髪の毛のオクルーシング151515 / 915 / 2
低光グループ152726 / 1126 / 6

遠距離の歩行者の難条件テスト

遠くの群衆の18サンプルは、ぼけと距離で顔の判定が曖昧なため採点しません。マスク率の分母・分子のどちらにも含めません。

未採点サンプルのマスク数: 95 高速 · 76 詳細

フレーム証明

左はストック映像と検出枠、右はモザイク処理後です。

低光グループ

秒

高速(YuNet)
左はストック映像と検出枠、右はモザイク処理後です。
詳細(SCRFD-10G)
左はストック映像と検出枠、右はモザイク処理後です。

手と髪の毛のオクルーシング

秒

高速(YuNet)
左はストック映像と検出枠、右はモザイク処理後です。
詳細(SCRFD-10G)
左はストック映像と検出枠、右はモザイク処理後です。

手と髪の毛のオクルーシング

秒

高速(YuNet)
左はストック映像と検出枠、右はモザイク処理後です。
詳細(SCRFD-10G)
左はストック映像と検出枠、右はモザイク処理後です。

低光グループ

秒

高速(YuNet)
左はストック映像と検出枠、右はモザイク処理後です。
詳細(SCRFD-10G)
左はストック映像と検出枠、右はモザイク処理後です。

遠距離の歩行者の難条件テスト

秒

高速(YuNet)
左はストック映像と検出枠、右はモザイク処理後です。
詳細(SCRFD-10G)
左はストック映像と検出枠、右はモザイク処理後です。

全フレーム結果をダウンロード(CSV) · 目視評価の注釈(JSON)

方法と限界

両モードとも全デコードフレームを解析し、追跡と欠落補完を行い、保存した解析で書き出します。設定はモザイク、強度72、余白42、手動編集なし、音声削除です。

0.5秒から1秒間隔で固定サンプルを確認します。正面5枚、横顔12枚、遮蔽15枚、グループ15枚、群衆18枚です。元動画の解像度は1280 × 720です。

Codexによる1回の視覚評価で元フレームと出力を採点しており、独立した人による確認はありません。横顔、一部が隠れた顔、画面端で切れた顔を含めます。彫像や、髪・顎・鼻先だけの断片は除外します。

除外した人物の断片上のマスクは採点しません。高速モードは0個、詳細モードは2個です。

マスク済みとは、見えている目・鼻・口がモザイクで覆われている状態です。マスクなし、または不完全なものは失敗に数えます。これは見た目のマスク確認であり、人物を特定できるかの試験ではありません。

この小規模で相関のあるサンプルでは、全フレームのプライバシー、人口属性による公平性、一般的な精度は評価していません。共有前に書き出した動画全体を確認してください。

以前のBlazeFaceベンチマークとは映像と注釈が異なるため、割合を直接比較できません。

書き出し検証

全5本を各モードで書き出し、出力の全フレームを正常にデコードしました。フレーム数は解析時と一致し、解像度は1280 × 720、音声トラックはありませんでした。

モードデコード済み出力フレーム解析時間(秒)書き出し時間(秒)
高速1637 / 1637196.419.3
詳細1637 / 1637761.710.5

テスト環境: Chrome 153.0.8010.53 · macOS · ONNX Runtime WASM · 4 スレッド

所要時間はローカルのヘッドレスブラウザーで1回測定した値で、速度保証ではありません。モデル初期化を除き、書き出しには保存済み解析を使います。他のブラウザーや端末は今回再検証していません。

機械可読の概要 · 高速モードの生データ · 詳細モードの生データ

出典と取得記録

このテスト用にMixkitから新たに直接ダウンロードしました。マニフェストには出典ページ、ダウンロードURL、取得日時、元ファイル・モデル・コード・全証拠画像のハッシュを記録しています。メディアを開く前に許可リストを検証します。

Mixkitストック動画無料ライセンス · 出典マニフェスト(JSON)

映像と検出モデルのライセンスは別です。詳細モードのSCRFD重みには、提供元の非商用研究向け条件が適用されます。

SCRFDモデルの注意事項

自分の動画を確認

自動マスクを確認し、見逃した顔には手動のカバーを追加してください。

オープンツール