1 ポイント 投稿者 GN⁺ 4 시간 전 | 1件のコメント | WhatsAppで共有
  • Stella v273.0.0.21 には、Metaスマートグラスのコンパニオンアプリ内で、顔検出・整列・埋め込み・ローカルDB・ベクトルインデックス・保存パス・通知サーフェスをつなぐデバイス内顔認識機構が含まれている
  • 既存ハンドラをテスト写真で直接呼び出すと、顔検出、2048次元の生体埋め込み生成、ローカルインデックス検索、一致時の Android 通知 "Person recognized" 送信まで動作した
  • SCRFD、KPSAligner、SFace の3つの ExecuTorch モデルが NMLML で配信され、SFace は顔を 2048 個の数値埋め込みへ変換する役割を担う構成になっている
  • RLDrive の person_profiles/objects.dbvec0float[2048] コサイン検索を使い、一致なしの経路では NameTagsPending/ に切り出した顔の .jpg.emb 指紋を保存する
  • デフォルトの未登録アカウントでは "Connections" カードと対象プロフィール画面が表示されず、Meta の顔ネームスペース向けデータプッシュも観測されなかったため、配布の有無と時期が主要な未確認事項として残っている

範囲と限界

  • 対象アプリは Meta スマートグラスのコンパニオンアプリ Stella の Android ビルド com.facebook.stella v273.0.0.21
  • アプリ内には顔モデル3種、ローカルDBスキーマ、モデル出力と一致するコサイン類似度ベクトルインデックス、生体記録をディスクに準備する書き込み経路、通知サーフェス、ユーザー向け "Connections" ウィジェットがあわせて存在する
  • テスト写真で既存ハンドラを直接呼び出すと、パイプラインは最後まで実行され、顔を検出して 2048 次元埋め込みを作成した後、ローカルインデックスを検索した
  • デフォルトの未登録アカウントではユーザー向け UI は表示されず、通知ディープリンクが開く画面も v273 ビルドには存在せず、関連 DB に Meta が身元データをサーバープッシュする流れもテストアカウントでは観測されなかった
  • 現時点で重要なのは、Meta が一般ユーザー向けに密かに人物を識別している証拠ではなく、そのような機能を実行できる完成済みの仕組みがデバイス上に組み込まれており、Meta がゲートで制御している状態だという区別である

モデルスタック

資産名 ファイル サイズ 役割
android_facerec_scrfd SCRFD.pte 3.4 MB 画像内の顔を検出
android_facerec_kps_aligner KPSAligner.pte 117 KB 検出した顔を crop・整列
android_facerec_sface SFace.pte 96 MB 顔を 2048 個の数値埋め込みへ変換
  • 3つのモデルは Meta の資産配信システム NMLML を通じて Meta からダウンロードされる ExecuTorch .pte 資産
  • SCRFD は InsightFace の SCRFD、SFace は Zhong et al. 2021 の SFace、KPSAligner はキーポイントベースの整列系に連なるモデル群に当たる
  • Meta の SFace 変種は 96 MB と 2048 次元出力で、公開リファレンスの約 40 MB と 128–512 次元より大きい形に見える
  • 顔検出および埋め込みモデルを搭載している事実だけでは認識機能の証拠にはならず、デバイス内顔検出はフレーミングやオートフォーカスにも使える

ローカル顔インデックスと DB 構造

  • 実行パイプラインは次の SQLite DB を読む構造
/data/user/0/com.facebook.stella/files/rldrive/person_profiles/objects.db
  • この DB は Meta のクロスデバイス同期フレームワーク RLDrive 配下の person_profiles ネームスペースにあり、リモートから投入されるよう設計されたチャネル
  • テストアカウントでは Meta が person_profiles にデータを直接プッシュする転送は観測されなかったため、観測されたのはチャネルの存在である
  • 主要スキーマは人物情報、顔情報、2048 次元ベクトル検索テーブルを分けて持つ形
CREATE TABLE person (
  nodeid INTEGER PRIMARY KEY,
  name TEXT,
  uri TEXT,
  blob BLOB,
  deleted INTEGER,
  version BLOB
);

CREATE TABLE face (
  nodeid INTEGER PRIMARY KEY,
  mediaPath TEXT,
  personUri TEXT,
  blob BLOB,
  deleted INTEGER,
  uri TEXT,
  version BLOB
);

CREATE VIRTUAL TABLE face_mediaPath_vec
USING vec0(mediaPath float[2048] distance_metric=cosine);
  • face 行は personUriperson を参照し、face.mediaPathface_mediaPath_vec の主キー役を担う
  • 認識は 2048 個の数値埋め込みをコサイン類似度で検索し、その後 person.name と結合して通知文言に使う流れ
  • vec0 は SQLite をベクトル類似度エンジンに変えるオープンソースの sqlite-vec 拡張で、float[2048] の次元はアプリに同梱された SFace 埋め込み器の出力形式と正確に一致する
  • スキーマは 1 つの personUri に複数の face 行を許容するが、実際の配備で 1:1 と 1:N のどちらを使うかは未登録デバイスでは見えない

実行分岐と保存ファイル

  • パイプラインを2回実行したテストでは、空インデックスに対する一致なし分岐と、単一埋め込みを事前投入した一致分岐に分かれた
  • 一致なし分岐は NameTagsPending/(uuid.jpg, uuid.emb) の組を書き込み、通知は送らない
  • 一致分岐は本番の nametags_recognition チャネルで Android 通知を表示し、タイトルは "Person recognized"、本文は "Recognized Michel Foucault" で、NameTagsPending/ には何も追加しない
  • 認識されなかった顔は次のパスに保存される
/data/user/0/com.facebook.stella/files/NameTagsPending/
  • 各未認識の顔は新しい UUID 名の .jpg.emb の組を作り、.jpg は SCRFD と KPSAligner の出力である切り出し・整列済みの顔、.emb は 2048 個の数値からなる SFace 指紋
  • ディレクトリモードは 0700 で再起動後も保持され、書き込みは一致なし分岐でのみ発生する
  • 検証済みの .emb ファイルは 8,192 バイトで、2048 × float32 の big-endian 構造、L2 norm 0.999999、min/max −0.092110 / +0.098950、mean +0.000292 の値を持つ
  • (uuid.jpg, uuid.emb) の組は、person_profiles/objects.db のコサインインデックスが照合するよう設計されたものと同一形式・同一エンコーディングの完全な生体記録である

通知とユーザー UI

  • Stella は nametags_recognition という Android 通知チャネルを定義しており、名前は "NameTags recognition"、説明は "Notifications for recognized NameTags connections"、重要度は heads-up・音・バッジを伴う IMPORTANCE_HIGH
  • 通知テンプレートは認識ハンドラ内にハードコードされており、タイトルは常に "Person recognized"、本文は常に "Recognized " + name の形で、nameperson_profiles/objects.dbperson テーブルから来る
  • 通知はタップ可能で、fb-viewapp://name_tags?face_id=<face_id> 形式の Meta 作成ディープリンクで Stella 内の人物プロフィール画面を開くよう構成されている
  • v273 ではその対象画面は見つからず、navigation graph にもないため、通知をタップすると Stella のデフォルトタブへ移動する
  • APK 内には "Connections" セクション配下のカードがあり、文字列は "See your connections""Remember the people you met and make new connections." としてハードコードされている
  • デフォルトの未登録アカウントではこのカードは Glasses タブに表示されず、テスト中にも表示状態にはならなかった

総合

  • Stella v273 には、顔検出、整列、埋め込み、ベクトルインデックス、保存領域、書き込み経路、通知サーフェスまでつながる完全なデバイス内顔認識スタックが存在する
  • 最後まで実行されたパイプラインは、既知の顔に名前を付けて通知で表示し、未知の顔については crop と指紋をディスクに準備する
  • インデックス次元、埋め込み形式、保存スキーマが互いに一致しているため、ばらばらの死んだコードではなく、一貫したシステムとして構成されている
  • ユーザーが触れる "Connections" カードと通知先のプロフィール画面は、ビルドに存在しないか、さらに深く隠されている状態
  • ライブパイプラインが使う DB は Meta がサーバー側で埋める他のネームスペースとともに同期ネームスペース内にあるが、テストアカウントでは顔ネームスペースのプッシュは観測されなかった
  • 未確認なのは、Meta が現在ユーザーに見知らぬ人を識別して見せているのか、登録データが流れているのか、この機能が本番で有効化されているのかという点
  • 2048 次元の顔指紋とハードコードされた "Person recognized" 通知まで構築・配備・接続した仕組みは工学的投資であり、実際の本番適用の有無と時期は Meta が答えるべき問題として残る

1件のコメント

 
GN⁺ 4 시간 전
Hacker Newsの意見
  • こういう機能が完全オフラインで存在してほしい。相貌失認があるので、友人の写真をオフラインのデータベースに入れて認識できるようにできたら本当に役立つと思う
    アクセシビリティのためにプライバシーの放棄を求めるべきではない

    • まったく同感。本当に助けになるだろうけど、周囲の人のデータを欲しがる会社にアクセス権を渡したくはない
      最近、相貌失認を説明するいちばんうまい比喩を聞いたが、それはリンゴだ。リンゴを2つ並べれば違いはわかるが、似たリンゴ50個の中から特定の1個を見分けられるかというのはまったく別の問題だ
      道でリンゴに話しかけられて、どこで見たか思い出せるかという感じで、回避策はあるものの文脈依存で間違いも多い。赤い髪とひげのあるリンゴは隣のオフィスの同僚だとわかっても、それが昨日街で手を振っていたリンゴと同じかどうかはあいまいだ
      髪型の変化は特に大きな問題だ。以前、昼食時に新しい同僚が誰なのか気になっていたら、話を聞いて声でわかったのだが、10年一緒に働いている人が髪色を変えただけだった
    • 新しいソフトウェア製品が出るたびに、「いいんだけど、どうしてアカウントなしで、開発元のクラウドに縛られずに使えないんだ?」と聞きたくなる
    • 周囲の人が相貌失認にどう反応するのか気になる。覚えていないことを無礼だと受け取るのか、心的イメージを持てない人のように信じがたいものとして反応されるのかも気になる
    • Metaがまずハードウェアを出してくれないと代替OSは始められない。この分野にオープンソースハードウェアがないのは残念だが、ロックされた機器を買って代替OSを入れること自体は昔からやってきた
    • かなり実現可能に見える。小さな Raspberry Pi で動かすImmichでも、写真5万枚の顔認識を一晩で処理する
  • 2012年に Google Glass が初めて出たとき、カンファレンス向けの技術系スタートアップを運営していて、発表者と参加者のプロフィール写真データベースがあったので、「混雑した部屋で会う約束をした相手をメガネが見つけてくれる」アプリは当然思いついた
    だが、Google Glass の開発者規約ではそれが厳しく禁止されていて、少し考えればその理由もすぐわかった

    • Metaは、家の外の茂みに身を潜めてさらにデータを得ようとするストーカーのような存在だ。そのデータで何をするのかもわからないまま、とにかく持っていたがっている感じがする
    • 広告としてどう売るかを思いつけなかったから禁止しただけ、という気もする
  • こういうものの正反対を身につけたい。近くで誰かが Facebook のAIメガネをかけていたら通知を受けて避けられるようにする装置が必要だ

    • Play Store のNearby Glassesがそれをやってくれる。関係者ではなく、自分でアプリを作る前に軽く検索してみただけだ
    • そういう製品が存在しても、Facebookが売るならどうだろう?
    • なぜ避ける負担がこちらにあるべきなのかわからない。自分や家族の画像が、デフォルトで広告会社に吸い上げられて悪用される状況は望まない
      すでに家族には、子どもの写真を Meta のプラットフォームに共有しないようはっきり伝えてある。見知らぬ大衆にこういう機器が押しつけられれば、暴力的に反応する人が出てもおかしくない
      一般的に受け入れられているCCTVやカメラ・スマートフォンの手動録画とはまったく違う
    • 反メガネ派を検知するメガネも欲しい
  • Metaは技術史におけるプライバシー侵害の代表例だと思う。今回のスマートグラスは、人々を家の中で、ときには裸の状態で、同意なく録画しており、一線を大きく越えている
    1か月ほど前にもここで議論されていた話だ: Meta in row after workers who saw smart glasses users having sex lose jobs (https://news.ycombinator.com/item?id=47961838)

    • こういうメガネをかけた人を自分の空間や生活から締め出すことが、社会的に自然になっていくべきだ。どんな便利機能があっても、データ採掘機を使っているなら自分の近くにいる資格はない
    • そのメガネが勝手に録画しているわけではない。誰かがボタンを押して意図的に録画したのだ
  • シカゴの弁護士たちを金持ちにする気満々のようだ。[0]
    [0]: https://en.wikipedia.org/wiki/Biometric_Information_Privacy_Act

    • その法律は生体情報の収集に関するものであって、顔認識サービスの最終利用者そのものに関するものではない
      リンク先によれば、BIPAはイリノイ州で事業を行う企業に対し、生体情報の収集・保管に関する要件の順守を求めており、個人の生体識別子を収集または開示するには同意を得て、適時に破棄し、安全に保存しなければならない。生体情報の管理には「合理的な注意の基準」も必要とされる
    • それなら地域制限をかければいいのでは?
    • 1件あたり1,000ドルで、指数関数的に膨らむ負担がないなら、実質的には税金に近い
    • 弁護士たちは興味深い法律の上で動いている。法律が変わったらどうなるのだろう?
  • スタートアップのアイデア: 普通のメガネフレームのブリッジとテンプルに近赤外線LEDを付けて、効率は良くて明るいが、およそ10Hzの不規則なクロックでPWMを回すこと
    私を撮りたいなら尋ねるか、フィルムを使えばいい

    • 面白い副作用として、テレビがランダムに点いたり消えたり、チャンネルが変わったりしそうだ。それでもアイデアはすばらしい
    • そうだね。こういうふうに監視カメラを目くらましするプロジェクトはすでにある
    • するとカメラに内蔵赤外線フィルターが入り始めそうだ
    • 動作を妨害する狭い周波数帯がきっとあるのでは? 周囲のあらゆるカメラや自動ナンバープレート認識装置に、だんだんうんざりしている
  • 自分の生活に役立つ実用的な使い道がひとつも思い浮かばない。メガネのすぐ後ろに ローカル顔認識 がすでに内蔵されているのだから

    • 相貌失認の人は多いし、自分もその一人だが、とくに名前を覚えていなければならないときは本当に気まずい。それでも、それを解決するために監視技術を使いたいとは思わない
    • このスレッドで、相貌失認だったり名前をうまく覚えられず気まずい思いをしている人が多いのは興味深い。自分も本当に名前を覚えられないが、もう恥ずかしいとは思わない。
      何人かの名前は覚えているし、結局のところ名前をよく覚える能力そのものには大きな意味はないと思うようになった。本当に好きな人たちの名前は覚えている。
      逆に、誰かが自分の名前を忘れたことを本当に気にするのかも考えてみる価値がある。子どものころ、スカウトで1年間ずっと一緒にいた友だちがいたが、名前は覚えていなかったし、それでも特に問題はなかった
    • 診断を受けた相貌失認ではないが、名前を本当に覚えられない。一般的な記憶力テストでは98パーセンタイルだったので、なおさら不思議だ。
      ほぼ10年間、大きなグループと付き合っていたのに誰が誰かをなかなか覚えられず、パンデミックのときにZoomで名前が表示されるようになって、数週間かけて少しずつ覚えた。
      スキューバを教えるときは、ショップへ車で向かいながら受講生の名前リストをできるだけランダムな順で覚えて、顔と名前を結びつける認知負荷を減らしている。点呼を取るときは全員の名前を書き留め、質問を振りながら徐々にチートシートなしでやろうとする。
      でも器材を装着すると、特にフードをかぶる地域では、すぐに崩れる。35歳くらいの白人男性が2人いると混乱してしまう。社会的に受け入れられるなら、処方メガネとして使って負担を減らしたい
    • https://en.wikipedia.org/wiki/Prosopagnosia
      Metaがアクセシビリティのためにこれをやっているとは思わない
    • 顔はよく見分けられるが、その人が誰なのかはあまり思い出せない。完全にオフラインで、ユーザー体験がまともなら、知り合いに写真を撮ってもいいか聞いて、メガネに記憶を助けてもらうことは考えるかもしれない。
      もちろんかなり気まずい会話なので、半分紹介するような形にして、相手同士が完全に自己紹介してくれるのを期待し、そのときに思い出すという戦略もある
  • 一般原則として、こういう方向性はどうだろうか。コンピュータは ネットワーク境界 に触れない限り自動でいくらでも作業してよいが、ネットワークにアクセスするには必ず人間の明示的な行動から始まらなければならない。
    ブラウザでマウスキャプチャやフルスクリーン移行に信頼できるユーザー操作が必要なのと似ているが、もっと広く適用するイメージだ。ネットワーク通信の範囲も、ユーザーが誤解する余地がないよう明確でなければならない。
    対象ユーザーに説明できないほど複雑なら、そのユーザーの代わりにやるべきではない。これは社内配布向けではなく、主に一般消費者向け製品に当てはまる。
    こうした堅い境界を設けないと、パノプティコン に向かう気がする。政府による積極的な後押しがなくても、デジタル時代の単純な利潤動機だけでそういう結果になる。細かなルールのほうが理論上は良いかもしれないが、強い誘因があると人は複雑なルールをうまく守れない

    • よさそうだ。今では多くのアプリが 証明書ピンニング でサーバーと通信していて、自分の端末がインターネット越しにやり取りするデータを見る方法が文字どおりない。狂っているし、禁止されるべきだ
  • 職場でセキュリティポリシーを作れる立場にあり、その一つがオフィス内での スマートグラス禁止 だ。従業員に、機密情報が表示された画面へFacebookメガネを向けさせるわけにはいかない。
    自分に顔認識の使用を許容できる場面もほとんど思い浮かばない。レストランなら、自分がどこで食事しているかをFacebookが知る理由はないし、音楽クラブなら、自分が何を聴いているかを知る必要もない。公衆トイレのような空間は絶対に駄目だ。公共の歩道でも、自分が誰と話しているかを追跡されたくない。
    これが使われる状況を少しでも受け入れられそうにない。正直、こういう公共スパイウェアを身につけた人に対する公然の恥辱を超えて、外で着用しているのが見つかったら身体的に恐れるくらいの空気が早く生まれてほしい。
    「職場でもスマホのカメラを禁止するのか」というお決まりの反論に答えるなら、そうだ。スマホのカメラを一日中画面に向けて業務を録画するのも当然禁止する。審査して契約したベンダー以外とは機密情報を共有しないし、誰かが録画しているのを見たら呼び出して、非常に危険な状態だと説明するだろう

    • さらに悪いことに、こういうメガネの利用者たちが 録画インジケーター を回避したり無効化したりして、いつオンになっているのか周囲に分からないようにする方法を議論しているスレッドも見た
    • メタデータと映像全体 の違い、中央集権型と端末ローカルな解決策の違いを区別するのも重要だ。
      BigTechや政府が自分のあらゆる相互作用を追跡するのは望まないが、近所の車のドラレコが自分がその家の私道を通ったことをローカルに記録する程度なら、第三者にアップロードしない限り問題ない。
      もちろん、ほとんどの人はセルフホスティングを望まないし、ほとんどのサービスはエンドツーエンド暗号化でもないので、現時点で実務上重要だと装うのは難しい。それでも、規制や自分たちが望む世界を考えるなら意味のある区別だ
    • 政府レベルのプライバシーポリシーがどう進化すべきかを考えるうえで、良い出発点だ
    • 同意するが、女性たちが「安心感を得るために」着用する場面は十分想像できる。日が短い季節には、女性がライト付きベストを着ることもある。まだボディカメラを着けているのは見たことがないが
    • 技術はすでに存在する。瓶の中のジーニーを戻すことはできず、もっと安く、もっと侵襲的になっていく。自分たちが制御できる唯一の問いは、みんなが持てるようにするのか、それとも政府と企業だけが持つのかという点だ。
      ここには修正第2条のような論理があり、かなり反論しづらい。少なくともこれは人を殺さない。すべての警察官が、自分で制御できない5〜6台の録画装置に常に囲まれていてほしい。それがまだましな選択肢だ。
      もちろん、すべてがFacebookに流れる仕組みは嫌だし、その段階を通り過ぎてほしい
  • Meta、Flock、Palantirが手を組んだらどうなるだろう。Musk流の抱き合わせ株のような 悪のコンボ を作れそうだ

    • Palantirはすでに技術を集約する会社だと理解している。だから、そのアイデアはすでに現実にかなり近いように見える
    • まだやっていないと思う理由は何だ?
    • それはNSAと呼ぶ