1 points par GN⁺ 4 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Stella v273.0.0.21 embarque, dans l’application compagnon des lunettes connectées Meta, un dispositif de reconnaissance faciale sur l’appareil reliant détection des visages, alignement, embeddings, base locale, index vectoriel, chemin de stockage et surface de notification
  • En appelant directement les handlers existants avec des photos de test, tout fonctionne jusqu’au bout : détection du visage, génération d’un embedding biométrique en 2048 dimensions, recherche dans l’index local, puis en cas de correspondance envoi d’une notification Android "Person recognized"
  • Trois modèles ExecuTorch, dont SCRFD, KPSAligner et SFace, sont téléchargés via NMLML, SFace étant chargé de convertir un visage en un embedding de 2048 nombres
  • person_profiles/objects.db de RLDrive utilise une recherche cosinus vec0 sur float[2048], et le chemin sans correspondance enregistre dans NameTagsPending/ le visage découpé en .jpg et son empreinte .emb
  • Sur un compte non inscrit par défaut, la carte "Connections" et l’écran de profil cible ne sont pas visibles, et aucun push de données du namespace facial de Meta n’a été observé, ce qui laisse comme principaux points non confirmés le déploiement effectif et son calendrier

Portée et limites

  • L’application étudiée est la build Android com.facebook.stella v273.0.0.21 de l’application compagnon des lunettes connectées Meta Stella
  • L’application contient à la fois trois modèles faciaux, un schéma de base locale, un index vectoriel par similarité cosinus cohérent avec les sorties des modèles, un chemin d’écriture préparant les enregistrements biométriques sur disque, une surface de notification et un widget utilisateur "Connections"
  • En appelant directement les handlers existants avec des photos de test, le pipeline s’exécute de bout en bout : il détecte les visages, produit un embedding en 2048 dimensions, puis interroge l’index local
  • Sur un compte non inscrit par défaut, l’interface utilisateur n’apparaît pas, l’écran ouvert par le deeplink de notification n’existe pas non plus dans la build v273, et aucun flux où Meta pousserait depuis le serveur des données d’identité vers la base concernée n’a été observé sur le compte de test
  • Le point essentiel est qu’il ne s’agit pas d’une preuve que Meta identifie déjà secrètement des personnes pour le grand public aujourd’hui, mais bien qu’un dispositif complet capable de le faire est assemblé sur l’appareil et simplement bloqué par des gates côté Meta

Pile de modèles

Nom de l’asset Fichier Taille Rôle
android_facerec_scrfd SCRFD.pte 3.4 MB Détection de visages dans l’image
android_facerec_kps_aligner KPSAligner.pte 117 KB Crop et alignement du visage détecté
android_facerec_sface SFace.pte 96 MB Conversion du visage en embedding de 2048 nombres
  • Les trois modèles sont des assets ExecuTorch .pte téléchargés depuis Meta via le système de distribution d’assets NMLML de Meta
  • SCRFD correspond à SCRFD d’InsightFace, SFace à SFace de Zhong et al. 2021, et KPSAligner à une famille de modèles d’alignement basée sur les points clés
  • La variante SFace de Meta, avec ses 96 MB et sa sortie en 2048 dimensions, semble plus volumineuse que les références publiques d’environ 40 MB et 128–512 dimensions
  • Le simple fait d’embarquer des modèles de détection et d’embedding faciaux ne constitue pas à lui seul une preuve de reconnaissance, la détection faciale sur appareil pouvant aussi servir au cadrage ou à l’autofocus

Index facial local et structure de la base

  • Le pipeline d’exécution lit la base SQLite suivante
/data/user/0/com.facebook.stella/files/rldrive/person_profiles/objects.db
  • Cette base se trouve dans le namespace person_profiles du framework de synchronisation cross-device de Meta RLDrive, un canal conçu pour être alimenté à distance
  • Sur le compte de test, aucun transfert direct de données vers person_profiles par Meta n’a été observé ; ce qui a été constaté, c’est donc l’existence du canal
  • Le schéma clé sépare les informations sur les personnes, les informations sur les visages et la table de recherche vectorielle en 2048 dimensions
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);
  • Les lignes de face pointent vers person via personUri, et face.mediaPath sert de clé primaire de face_mediaPath_vec
  • La reconnaissance consiste à rechercher un embedding de 2048 nombres par similarité cosinus, puis à faire une jointure avec person.name pour l’utiliser dans le texte de la notification
  • vec0 est l’extension open source sqlite-vec, qui transforme SQLite en moteur de similarité vectorielle, et la dimension float[2048] correspond exactement au format de sortie de l’embedder SFace embarqué dans l’application
  • Le schéma autorise plusieurs lignes face pour un même personUri, mais il n’est pas possible de savoir sur un appareil non inscrit si le déploiement réel adopte un modèle 1:1 ou 1:N

Branches d’exécution et fichiers stockés

  • Dans un test où le pipeline complet a été exécuté deux fois, on observe une séparation entre la branche sans correspondance pour un index vide et la branche avec correspondance après préinsertion d’un embedding unique
  • La branche sans correspondance écrit une paire (uuid.jpg, uuid.emb) dans NameTagsPending/ et n’envoie pas de notification
  • La branche avec correspondance déclenche une notification Android sur le canal de production nametags_recognition, avec pour titre "Person recognized" et pour corps "Recognized Michel Foucault", sans rien ajouter à NameTagsPending/
  • Les visages non reconnus sont stockés au chemin suivant
/data/user/0/com.facebook.stella/files/NameTagsPending/
  • Chaque visage non reconnu génère une paire .jpg et .emb nommée avec un nouvel UUID ; le .jpg est le visage découpé et aligné issu de SCRFD et KPSAligner, et le .emb est l’empreinte SFace de 2048 nombres
  • Le répertoire est en mode 0700, persiste après redémarrage, et les écritures n’ont lieu que dans la branche sans correspondance
  • Le fichier .emb vérifié mesure 8 192 octets, avec une structure 2048 × float32 big-endian, une norme L2 de 0.999999, des valeurs min/max de −0.092110 / +0.098950 et une moyenne de +0.000292
  • La paire (uuid.jpg, uuid.emb) constitue un enregistrement biométrique complet, au même format et avec le même encodage que ce pour quoi l’index cosinus de person_profiles/objects.db a été conçu

Notifications et interface utilisateur

  • Stella définit un canal de notification Android nommé nametags_recognition, avec le nom "NameTags recognition", la description "Notifications for recognized NameTags connections" et une importance IMPORTANCE_HIGH avec heads-up, son et badge
  • Le template de notification est codé en dur dans le handler de reconnaissance : le titre est toujours "Person recognized", et le corps suit toujours la forme "Recognized " + name, où name provient de la table person de person_profiles/objects.db
  • La notification est cliquable et configurée pour ouvrir l’écran de profil de la personne dans Stella via un deeplink rédigé par Meta de la forme fb-viewapp://name_tags?face_id=<face_id>
  • Dans la v273, cet écran cible est introuvable et n’apparaît pas non plus dans le graphe de navigation ; appuyer sur la notification renvoie donc vers l’onglet par défaut de Stella
  • L’APK contient une carte sous la section "Connections", avec les chaînes "See your connections" et "Remember the people you met and make new connections." codées en dur
  • Sur un compte non inscrit par défaut, cette carte n’apparaît pas dans l’onglet Glasses, et elle n’est pas devenue visible pendant les tests

Synthèse

  • Stella v273 contient une pile complète de reconnaissance faciale sur l’appareil, allant de la détection à l’alignement, aux embeddings, à l’index vectoriel, au stockage, au chemin d’écriture et à la surface de notification
  • Le pipeline exécuté jusqu’au bout affiche les visages connus avec leur nom dans une notification et prépare sur disque les crops et empreintes des visages inconnus
  • Les dimensions de l’index, le format des embeddings et le schéma de stockage sont cohérents entre eux, ce qui indique un système structuré plutôt qu’un assemblage de code mort épars
  • La carte "Connections" destinée aux utilisateurs ainsi que l’écran de profil cible des notifications sont absents de la build ou dissimulés plus profondément
  • La base utilisée par le pipeline live se trouve dans un namespace synchronisé aux côtés d’autres namespaces que Meta remplit côté serveur, mais aucun push du namespace facial n’a été observé sur le compte de test
  • Ce qui reste non confirmé, c’est si Meta identifie actuellement des inconnus pour les utilisateurs, si des données d’inscription circulent effectivement et si la fonctionnalité est activée en production
  • Le dispositif construit, déployé et relié jusqu’à une empreinte faciale en 2048 dimensions et à une notification "Person recognized" codée en dur représente un investissement d’ingénierie réel ; la question de son usage effectif en production et de son calendrier reste du ressort de Meta

1 commentaires

 
GN⁺ 4 시간 전
Commentaires sur Hacker News
  • J’aimerais qu’une telle fonctionnalité existe entièrement hors ligne. Je souffre de prosopagnosie, donc si je pouvais mettre les photos de mes amis dans une base de données hors ligne pour que l’appareil les reconnaisse, ce serait vraiment utile
    L’accessibilité ne devrait pas exiger de renoncer à sa vie privée

    • Je pense exactement pareil. Ce serait vraiment utile, mais je n’ai pas envie de donner un accès à une entreprise avide des données des gens autour de moi
      J’ai récemment entendu la meilleure analogie pour expliquer la prosopagnosie : les pommes. Si on met deux pommes côte à côte, on voit la différence, mais reconnaître une pomme précise parmi 50 pommes semblables, c’est un problème totalement différent
      C’est un peu comme si une pomme vous parlait dans la rue et qu’on vous demandait si vous vous souvenez d’où vous l’avez vue. Il existe des stratégies de contournement, mais elles dépendent beaucoup du contexte et se trompent souvent. Une pomme aux cheveux rouges et à la barbe, on peut savoir que c’est le collègue du bureau d’à côté, mais se demander si c’est la même pomme qui vous a salué hier en ville devient confus
      Les changements de coiffure sont particulièrement problématiques. Une fois, à l’heure du déjeuner, je me demandais qui était ce nouveau collègue, puis je l’ai reconnu à sa voix : c’était une personne avec qui je travaillais depuis 10 ans, qui avait simplement changé de couleur de cheveux
    • À chaque nouveau produit logiciel, je me retrouve à demander : « c’est bien, mais pourquoi on ne peut pas l’utiliser sans compte, sans être attaché au cloud du développeur ? »
    • Je me demande comment les gens autour réagissent à la prosopagnosie. Est-ce qu’ils prennent le fait de ne pas être reconnus pour de l’impolitesse ? Est-ce qu’ils réagissent comme avec l’aphantasie, en trouvant ça difficile à croire ?
    • Meta doit d’abord sortir le matériel pour qu’un système d’exploitation alternatif puisse démarrer. C’est dommage qu’il n’y ait pas de matériel open source dans ce domaine, mais acheter un appareil verrouillé pour y installer un OS alternatif, on l’a déjà fait par le passé
    • Ça semble tout à fait faisable. Même Immich, qui tourne sur un petit Raspberry Pi, traite la reconnaissance faciale sur 50 000 photos pendant la nuit
  • Quand Google Glass est sorti pour la première fois en 2012, je dirigeais une startup tech pour des conférences et nous avions une base de données de photos de profil des intervenants et des participants, donc une appli « les lunettes trouvent dans une salle bondée la personne que vous devez rencontrer » m’est tout de suite venue à l’esprit
    Mais les conditions développeur de Google Glass l’interdisaient strictement, et avec un peu plus de réflexion on comprenait immédiatement pourquoi

    • Meta donne l’impression d’être un harceleur qui plante des buissons devant chez vous pour s’y cacher et collecter encore plus de données. On a l’impression qu’ils veulent d’abord posséder ces données, sans même savoir ce qu’ils en feront
    • On peut aussi penser qu’ils l’ont interdit uniquement parce qu’ils n’avaient pas trouvé comment vendre de la publicité autour
  • J’aimerais porter l’exact opposé de ça. Il faudrait un appareil qui m’alerte quand quelqu’un à proximité porte les lunettes IA de Facebook, afin que je puisse l’éviter

    • Nearby Glasses sur le Play Store fait ça. Je ne suis pas lié au projet ; j’ai juste fait une recherche rapide avant de créer moi-même l’app
    • Et si un tel produit existait, mais qu’il était vendu par Facebook ?
    • Je ne vois pas pourquoi ce serait à moi de porter la charge de l’évitement. Je ne veux pas que l’image de ma famille et la mienne soient, par défaut, aspirées par une régie publicitaire puis exploitées
      J’ai déjà clairement dit à ma famille de ne pas partager de photos des enfants sur les plateformes de Meta. Si ce genre d’appareil est imposé à un public qui n’a rien demandé, certaines personnes pourraient réagir violemment
      C’est complètement différent de la vidéosurveillance généralement acceptée, ou de l’enregistrement manuel avec un appareil photo, une caméra ou un smartphone
    • J’aimerais aussi des lunettes capables de détecter les opposants aux lunettes
  • Pour moi, Meta est un cas d’école dans l’histoire des atteintes à la vie privée. Avec ces lunettes connectées, ils sont allés beaucoup trop loin en enregistrant des gens chez eux, parfois nus, sans leur consentement
    C’était encore discuté ici il y a environ un mois : Meta in row after workers who saw smart glasses users having sex lose jobs (https://news.ycombinator.com/item?id=47961838)

    • Il faut que cela devienne socialement normal d’exclure de son espace ou de sa vie les gens qui portent ce genre de lunettes. Peu importe les fonctions pratiques : si vous portez un extracteur de données, vous n’avez rien à faire près de moi
    • Ces lunettes n’enregistrent pas toutes seules. Quelqu’un a appuyé sur un bouton et a enregistré délibérément
  • On dirait qu’ils sont déterminés à enrichir les avocats de Chicago. [0]
    [0]: https://en.wikipedia.org/wiki/Biometric_Information_Privacy_Act

    • Cette loi concerne la collecte d’informations biométriques, pas directement l’utilisateur final d’un service de reconnaissance faciale
      D’après le lien, la BIPA exige que les entreprises opérant dans l’Illinois respectent des obligations liées à la collecte et à la conservation des données biométriques, obtiennent le consentement avant de collecter ou divulguer les identifiants biométriques d’une personne, les détruisent en temps voulu et les stockent de manière sécurisée. La gestion des données biométriques doit aussi respecter une « norme de diligence raisonnable »
    • Dans ce cas, il suffit de mettre en place une restriction géographique, non ?
    • Si c’est 1 000 dollars par cas et qu’il n’y a pas de charge qui croît de façon exponentielle, en pratique ça ressemble presque à une taxe
    • Les avocats évoluent au-dessus d’un cadre juridique intéressant. Que se passerait-il si la loi changeait ?
  • Idée de startup : mettre des LED proche infrarouge sur le pont et les branches d’une monture de lunettes ordinaire, avec un bon rendement et une forte luminosité, mais en faisant varier le PWM selon une horloge irrégulière d’environ 10 Hz
    Si vous voulez prendre une photo de moi, demandez-moi, ou utilisez de la pellicule

    • Effet secondaire amusant : les téléviseurs risqueraient de s’allumer et s’éteindre aléatoirement, ou de changer de chaîne. Mais l’idée est chouette
    • Oui. Il existe déjà des projets de ce type pour aveugler les caméras de surveillance
    • Dans ce cas, j’imagine que des filtres infrarouges intégrés aux caméras commenceront à apparaître
    • Il doit bien y avoir une bande de fréquences étroite qui perturbe leur fonctionnement, non ? J’en ai de plus en plus assez de toutes les caméras autour de nous et des systèmes automatiques de lecture de plaques
  • Je ne vois absolument aucun usage pratique qui m’aiderait dans ma vie. Après tout, il y a déjà une reconnaissance faciale locale intégrée juste derrière les lunettes.

    • Beaucoup de gens souffrent de prosopagnosie, et j’en fais partie. C’est particulièrement gênant quand il faut se souvenir des prénoms. Cela dit, je n’ai pas envie d’utiliser une technologie de surveillance pour corriger ça.
    • Je trouve intéressant que tant de personnes dans ce fil disent souffrir de prosopagnosie ou se sentir gênées parce qu’elles retiennent mal les prénoms. Je suis vraiment nul pour retenir les noms, mais je n’en ai plus honte.
      Je me souviens du nom de certaines personnes, et au fond j’en suis venu à penser que la capacité à retenir les noms n’a pas tant d’importance. Je me souviens des noms des gens que j’aime vraiment.
      À l’inverse, ça vaut aussi le coup de se demander si quelqu’un se soucie vraiment que j’oublie son nom. Quand j’étais enfant, j’avais un ami chez les scouts avec qui je traînais toute l’année, mais je ne me suis jamais souvenu de son nom, et ça n’a posé aucun vrai problème.
    • Je n’ai pas de diagnostic de prosopagnosie, mais je retiens vraiment très mal les noms. C’est d’autant plus étrange que j’étais au 98e percentile aux tests classiques de mémoire.
      J’ai fréquenté un grand groupe pendant presque dix ans sans vraiment réussir à retenir qui était qui, puis pendant la pandémie, le fait que Zoom affiche les noms m’a permis de les apprendre peu à peu en quelques semaines.
      Quand j’enseignais la plongée sous-marine, je mémorisais la liste des prénoms des élèves, dans un ordre aussi aléatoire que possible, pendant le trajet jusqu’au magasin afin de réduire la charge cognitive liée à l’association visage-nom. À l’appel, j’écrivais tous les noms, puis j’essayais progressivement de m’en passer en posant des questions.
      Mais dès que tout le monde met son équipement, surtout dans les régions où l’on porte une cagoule, tout s’effondre. Deux hommes blancs d’environ 35 ans suffisent à m’embrouiller. Si c’était socialement accepté, j’aimerais porter des lunettes correctrices de ce type pour alléger ce fardeau.
    • https://en.wikipedia.org/wiki/Prosopagnosia
      Je ne pense pas que Meta fasse ça pour l’accessibilité.
    • Je reconnais bien les visages, mais j’ai du mal à me souvenir de qui est la personne. Si tout fonctionnait entièrement hors ligne et que l’expérience utilisateur était correcte, je pourrais envisager de demander à des connaissances si je peux les prendre en photo et laisser les lunettes m’aider à me souvenir.
      Bien sûr, c’est une conversation assez gênante, donc j’ai aussi une stratégie qui consiste à faire une demi-présentation et à espérer que les gens se présentent complètement entre eux, pour que ça me revienne à ce moment-là.
  • Je me demande ce que vaudrait une direction comme principe général : les ordinateurs peuvent automatiser autant qu’ils veulent tant qu’ils ne franchissent pas une frontière réseau, mais tout accès au réseau doit obligatoirement être déclenché par une action explicite d’un humain.
    Un peu comme dans les navigateurs, où la capture de la souris ou le passage en plein écran exigent une action utilisateur de confiance, mais appliqué plus largement. L’étendue des communications réseau devrait aussi être claire afin d’éviter toute ambiguïté pour l’utilisateur.
    Si c’est trop complexe pour pouvoir être expliqué à l’utilisateur visé, alors il ne faut pas le faire à sa place. Cela s’applique surtout aux produits grand public, pas aux déploiements internes.
    Sans frontière solide de ce type, j’ai l’impression qu’on va finir dans un panoptique. Même sans impulsion active des gouvernements, la simple logique de profit de l’ère numérique suffit à produire ce résultat. Des règles plus fines seraient peut-être meilleures en théorie, mais face à de fortes incitations, les gens respectent mal les règles complexes.

    • Ça me semblerait bien. Aujourd’hui, beaucoup d’apps communiquent avec leurs serveurs via des certificats épinglés, si bien qu’il n’existe littéralement aucun moyen de voir les données que mon appareil échange sur Internet. C’est délirant et ça devrait être interdit.
  • Je suis en position d’établir des politiques de sécurité au travail, et l’une d’elles est l’interdiction des lunettes intelligentes dans les bureaux. On ne peut pas laisser des employés braquer des lunettes Facebook sur des écrans affichant des informations confidentielles.
    J’ai aussi beaucoup de mal à imaginer une situation où j’accepterais l’usage de la reconnaissance faciale. Au restaurant, il n’y a aucune raison que Facebook sache où je mange, et dans un club de musique, il n’a pas besoin de savoir ce que j’écoute. Des lieux comparables à des toilettes publiques sont absolument exclus. Même sur un trottoir public, je n’ai pas envie qu’on puisse suivre avec qui je parle.
    Je n’arrive pas du tout à accepter le moindre contexte d’usage pour ça. Honnêtement, au-delà de la simple honte publique pour les gens qui portent ce type de spyware en public, j’aimerais qu’on arrive vite à une situation où ils aient physiquement peur d’être repérés dehors avec ça.
    Et pour répondre à l’objection évidente du genre « vous interdisez aussi les caméras de téléphone au travail ? », oui. Si quelqu’un passait la journée à pointer la caméra de son téléphone vers des écrans pour enregistrer le travail, ce serait évidemment interdit aussi. Nous ne partageons pas d’informations confidentielles avec des prestataires qui n’ont pas été évalués et contractualisés, et si je voyais quelqu’un enregistrer, je le convoquerais pour lui expliquer qu’il s’agit d’une situation très risquée.

    • Pire encore, j’ai aussi vu des fils où des utilisateurs de ces lunettes discutaient de moyens de contourner ou désactiver le voyant d’enregistrement pour que les autres ne sachent pas quand elles sont allumées.
    • Il est aussi important de distinguer les métadonnées et la vidéo complète, ainsi que les différences entre une approche centralisée et une solution locale sur l’appareil.
      Je ne veux pas que BigTech ou l’État suivent toutes mes interactions, mais si la dashcam de la voiture du voisin enregistre localement que je suis passé devant son allée, ça me va tant que ce n’est pas envoyé à un tiers.
      Bien sûr, la plupart des gens ne veulent pas d’auto-hébergement, et la plupart des services ne sont pas chiffrés de bout en bout, donc il est difficile de prétendre que c’est très important en pratique aujourd’hui. Mais c’est quand même une distinction pertinente si l’on réfléchit à la régulation et au type de monde que nous voulons.
    • C’est un bon point de départ pour réfléchir à la manière dont les politiques publiques de protection de la vie privée devraient évoluer.
    • Je suis d’accord, mais j’imagine très bien des femmes en porter pour « se sentir en sécurité ». Pendant la saison sombre, certaines femmes portent déjà des gilets lumineux. Je n’ai pas encore vu de bodycam, mais bon.
    • La technologie existe déjà. On ne remettra pas le génie dans la bouteille, et ça deviendra moins cher et plus intrusif. La seule vraie question que nous pouvons encore contrôler, c’est de savoir si tout le monde y aura accès, ou seulement les gouvernements et les entreprises.
      Il y a là une logique à la Deuxième Amendement, et elle est assez difficile à réfuter. Au moins, ça ne tue pas les gens. J’aimerais que chaque policier soit en permanence entouré de cinq ou six dispositifs d’enregistrement qu’il ne contrôle pas. Ce serait l’option la moins mauvaise.
      Évidemment, je n’aime pas l’idée que tout parte chez Facebook, et j’espère qu’on dépassera cette étape.
  • Que se passerait-il si Meta, Flock et Palantir unissaient leurs forces ? On pourrait obtenir une combo maléfique façon actions groupées à la Musk.

    • Il me semblait que Palantir était déjà une entreprise qui agrège ce genre de technologies. Donc cette idée me paraît déjà assez proche de la réalité.
    • Qu’est-ce qui vous fait penser qu’ils ne l’ont pas déjà fait ?
    • Ça s’appelle la NSA.