Lilith.
⌕
編集イラスト: Photo Scrubberはブラウザ内で顔とmetadataを消す
Lilithのイラスト · 編集リミックス

Photo Scrubberは写真をブラウザ内で処理し、顔を自動検出して共有前にぼかせる。書き出し時には元のmetadataを含まない新しいファイルを生成するため、機微な画像を外部serverへ送らずに済む。

BlazeFaceが写真をserverへ送らずに顔を探す

Simon Willisonはデモ参加者を撮影した後、見知らぬ人の識別可能な顔を共有したくないと考え、このツールを作った。実験的なアプリの作成にはGPT-6 Astraを使った。顔検出にはGoogleのMediaPipe C++ libraryを@mediapipe/tasks-vision経由でWebAssembly化し、BlazeFaceモデルと組み合わせている。

JPEG、PNG、WebPに対応し、上限は75 MBだ。decodeと編集は利用者の端末で行われる。読み込み時にはブラウザがEXIFの向きを適用するが、書き出す画像は元のmetadata一式を引き継がずに新しく生成される。

端末内処理がprivacyを約束から設計へ変える

デモ、病院、学校で撮った写真では、元画像を外部serviceへuploadすること自体がriskになる。ブラウザ内ツールなら、顔検出にも書き出しにも画像を端末外へ出さない。この点は、保存条件が曖昧なcloud editorとの実質的な違いだ。

このprojectはAI codingの有用な型も示す。モデルは既存componentを小さなアプリへ組み立てる作業を助けた。一方、安全性は主にarchitectureから生まれる。ブラウザという境界と検査可能な書き出しが保護を支える。

短距離向け検出器には死角が残る

BlazeFaceは短距離向けの検出器だ。小さい顔、傾いた顔、隠れた顔、画面端の顔を見落とす可能性がある。自動ぼかしは名札、tattoo、車両number、特徴的な服まで隠すとは限らない。metadataを消しても、画素から人物を特定できる場合がある。

Photo Scrubberは明確に実験的ツールとされている。端末内実行はnetwork上のriskを減らすが、完全な匿名化を保証しない。機微な素材では、利用者が画像全体を見て、検出器が逃した部分を手動で覆う必要がある。

安全な書き出しはファイルと画面端の両方で決まる

次の検証は2段階になる。書き出したJPEG、PNG、WebPに元のEXIFや他のmetadataが残っていないか、独立した検査が必要だ。同時に、群衆、暗所、画面端で何人の顔を見落とすかも測るべきだ。

手動確認の手順が分かりやすく、利用者が画像全体を確認したことを示せれば、実用性は高まる。identity保護では、平均検出精度より最後の1人の見落としが重い。

Lilithの判定

写真家が共有ボタンに手を伸ばした瞬間、隅に1人だけぼかされていない顔が残っていれば失敗だ。端末内処理はnetwork経路を閉じるが、最後の視覚的な穴は人の目が塞ぐ。

外部リンクは最後に置いています。まずここで簡潔に解説 — 他人のサイトを探し回る必要はありません。

元の記事 ↗ ↗