- Stella v273.0.0.21 memuat perangkat pengenalan wajah di perangkat di dalam aplikasi pendamping kacamata pintar Meta, yang menghubungkan deteksi wajah, penyelarasan, embedding, DB lokal, indeks vektor, jalur penyimpanan, dan permukaan notifikasi
- Saat handler yang ada dipanggil langsung dengan foto uji, sistem bekerja hingga mendeteksi wajah, membuat embedding biometrik 2048 dimensi, mencari di indeks lokal, lalu mengirim notifikasi Android
"Person recognized" saat ada kecocokan
- Tiga model ExecuTorch seperti SCRFD, KPSAligner, dan SFace diturunkan melalui NMLML, dan SFace berperan mengubah wajah menjadi embedding berisi 2048 angka
person_profiles/objects.db milik RLDrive menggunakan pencarian kosinus vec0 float[2048], dan jalur tidak ada kecocokan menyimpan wajah hasil crop .jpg serta sidik jari .emb ke NameTagsPending/
- Pada akun default yang belum terdaftar, kartu
"Connections" dan layar profil target tidak terlihat, dan dorongan data namespace wajah dari Meta juga tidak teramati, sehingga apakah dan kapan fitur ini dirilis masih menjadi hal utama yang belum terkonfirmasi
Cakupan dan batasan
- Aplikasi yang menjadi sasaran adalah build Android
com.facebook.stella v273.0.0.21 dari aplikasi pendamping kacamata pintar Meta Stella
- Di dalam aplikasi terdapat tiga model wajah, skema DB lokal, indeks vektor kemiripan kosinus yang cocok dengan keluaran model, jalur tulis yang menyiapkan catatan biometrik ke disk, permukaan notifikasi, dan widget
"Connections" untuk pengguna
- Saat handler yang ada dipanggil langsung dengan foto uji, pipeline berjalan sampai akhir: mendeteksi wajah, membuat embedding 2048 dimensi, lalu mencari di indeks lokal
- Pada akun default yang belum terdaftar, UI untuk pengguna tidak muncul, layar yang dibuka oleh deep link notifikasi juga tidak ada di build v273, dan alur Meta mendorong data identitas ke DB terkait juga tidak teramati pada akun uji
- Yang penting adalah pembedaan bahwa ini bukan bukti Meta diam-diam mengidentifikasi orang untuk pengguna umum saat ini, melainkan bahwa perangkat lengkap untuk menjalankan fungsi tersebut sudah dirakit di perangkat dan ditahan oleh gate dari Meta
Tumpukan model
| Nama aset |
File |
Ukuran |
Peran |
android_facerec_scrfd |
SCRFD.pte |
3.4 MB |
Mendeteksi wajah dari gambar |
android_facerec_kps_aligner |
KPSAligner.pte |
117 KB |
Crop dan menyelaraskan wajah yang terdeteksi |
android_facerec_sface |
SFace.pte |
96 MB |
Mengubah wajah menjadi embedding 2048 angka |
- Ketiga model tersebut adalah aset ExecuTorch
.pte yang diunduh dari Meta melalui sistem pengiriman aset Meta NMLML
SCRFD adalah SCRFD dari InsightFace, SFace adalah SFace dari Zhong et al. 2021, dan KPSAligner termasuk keluarga model penyelarasan berbasis keypoint
- Varian SFace milik Meta tampak lebih besar, dengan ukuran 96 MB dan keluaran 2048 dimensi, dibanding referensi publik sekitar 40 MB dan 128–512 dimensi
- Fakta bahwa model deteksi wajah dan embedding dimuat tidak otomatis menjadi bukti adanya fungsi pengenalan, karena deteksi wajah di perangkat juga dapat dipakai untuk framing atau autofocus
Indeks wajah lokal dan struktur DB
- Pipeline eksekusi membaca DB SQLite berikut
/data/user/0/com.facebook.stella/files/rldrive/person_profiles/objects.db
- DB ini berada di bawah namespace
person_profiles dalam framework sinkronisasi lintas perangkat Meta RLDrive, yaitu kanal yang dirancang untuk diisi dari jarak jauh
- Pada akun uji, tidak teramati adanya transfer Meta yang langsung mendorong data ke
person_profiles, jadi yang teramati adalah keberadaan kanal tersebut
- Skema intinya memisahkan informasi orang, informasi wajah, dan tabel pencarian vektor 2048 dimensi
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);
- Baris
face menunjuk ke person melalui personUri, dan face.mediaPath berperan sebagai primary key untuk face_mediaPath_vec
- Alur pengenalan bekerja dengan mencari embedding 2048 angka menggunakan kemiripan kosinus, lalu melakukan join dengan
person.name untuk dipakai dalam teks notifikasi
vec0 adalah ekstensi open source sqlite-vec yang mengubah SQLite menjadi mesin kemiripan vektor, dan dimensi float[2048] persis cocok dengan bentuk keluaran embedder SFace yang ikut dimuat dalam aplikasi
- Skema ini mengizinkan beberapa baris
face untuk satu personUri, tetapi pada deployment nyata tidak terlihat apakah yang dipakai adalah bentuk 1:1 atau 1:N di perangkat yang belum terdaftar
Cabang eksekusi dan file penyimpanan
- Dalam pengujian yang menjalankan keseluruhan pipeline dua kali, percabangan tidak ada kecocokan untuk indeks kosong dan percabangan ada kecocokan setelah satu embedding dimasukkan sebelumnya terlihat terpisah
- Percabangan tidak ada kecocokan menulis pasangan
(uuid.jpg, uuid.emb) ke NameTagsPending/ dan tidak mengirim notifikasi
- Percabangan ada kecocokan menampilkan notifikasi Android melalui kanal produksi
nametags_recognition, dengan judul "Person recognized", isi "Recognized Michel Foucault", dan tidak menambahkan apa pun ke NameTagsPending/
- Wajah yang tidak dikenali disimpan di jalur berikut
/data/user/0/com.facebook.stella/files/NameTagsPending/
- Setiap wajah yang tidak dikenali membuat pasangan
.jpg dan .emb dengan nama UUID baru; .jpg adalah wajah yang sudah di-crop dan disejajarkan dari keluaran SCRFD dan KPSAligner, sedangkan .emb adalah sidik jari SFace berisi 2048 angka
- Mode direktori adalah
0700 dan tetap bertahan setelah reboot, dan penulisan hanya terjadi pada percabangan tidak ada kecocokan
- File
.emb yang tervalidasi berukuran 8.192 byte, berstruktur 2048 × float32 big-endian, dengan L2 norm 0.999999, nilai min/max −0.092110 / +0.098950, dan mean +0.000292
- Pasangan
(uuid.jpg, uuid.emb) merupakan catatan biometrik lengkap dengan bentuk dan encoding yang sama seperti yang dirancang untuk dicocokkan oleh indeks kosinus dalam person_profiles/objects.db
Notifikasi dan UI pengguna
- Stella mendefinisikan kanal notifikasi Android bernama
nametags_recognition, dengan nama "NameTags recognition", deskripsi "Notifications for recognized NameTags connections", dan tingkat kepentingan IMPORTANCE_HIGH yang disertai heads-up, suara, dan badge
- Template notifikasi di-hardcode di dalam handler pengenalan; judul selalu
"Person recognized", isi selalu berbentuk "Recognized " + name, dan name berasal dari tabel person di person_profiles/objects.db
- Notifikasi dapat diketuk dan dikonfigurasi untuk membuka layar profil orang di dalam Stella melalui deep link buatan Meta berbentuk
fb-viewapp://name_tags?face_id=<face_id>
- Pada v273, layar target tersebut tidak ditemukan dan juga tidak ada di navigation graph, sehingga saat notifikasi diketuk pengguna justru dibawa ke tab default Stella
- Di dalam APK ada kartu di bawah bagian
"Connections", dengan string "See your connections" dan "Remember the people you met and make new connections." yang di-hardcode
- Pada akun default yang belum terdaftar, kartu ini tidak muncul di tab Glasses, dan selama pengujian pun tidak terlihat
Ringkasan
- Stella v273 memiliki keseluruhan stack pengenalan wajah di perangkat, mulai dari deteksi wajah, penyelarasan, embedding, indeks vektor, penyimpanan, jalur tulis, hingga permukaan notifikasi
- Pipeline yang dijalankan sampai akhir menampilkan notifikasi bernama untuk wajah yang sudah dikenal, dan menyiapkan crop serta sidik jari ke disk untuk wajah yang belum dikenal
- Dimensi indeks, bentuk embedding, dan skema penyimpanan saling cocok, sehingga ini tampak sebagai sistem yang konsisten, bukan sekadar potongan kode mati yang tersebar
- Kartu
"Connections" yang akan dilihat pengguna dan layar profil target notifikasi tidak ada di build atau disembunyikan lebih dalam
- DB yang dipakai pipeline aktif berada di namespace sinkronisasi bersama namespace lain yang diisi dari sisi server oleh Meta, tetapi dorongan namespace wajah tidak teramati pada akun uji
- Hal yang belum terverifikasi adalah apakah Meta saat ini mengidentifikasi orang asing untuk pengguna, apakah data pendaftaran benar-benar mengalir, dan apakah fitur ini aktif di produksi
- Perangkat yang membangun, menyebarkan, dan menghubungkan sidik jari wajah 2048 dimensi hingga notifikasi
"Person recognized" yang di-hardcode merupakan investasi rekayasa, sedangkan apakah dan kapan ini diterapkan di produksi tetap menjadi pertanyaan yang harus dijawab Meta
1 komentar
Komentar Hacker News
Andai fitur seperti ini ada sepenuhnya offline. Saya punya prosopagnosia, jadi kalau saya bisa memasukkan foto teman ke database offline lalu membiarkannya mengenali mereka, itu akan sangat berguna
Aksesibilitas tidak boleh menuntut mengorbankan privasi
Baru-baru ini saya mendengar analogi terbaik untuk menjelaskan prosopagnosia: apel. Jika dua apel diletakkan berdampingan, perbedaannya terlihat, tetapi apakah Anda bisa mengenali satu apel tertentu di antara 50 apel yang mirip adalah masalah yang sama sekali berbeda
Rasanya seperti ada apel yang menyapa Anda di jalan lalu Anda harus ingat pernah melihatnya di mana; memang ada cara-cara mengakalinya, tetapi sangat bergantung konteks dan sering salah. Apel berambut merah dengan janggut mungkin bisa dikenali sebagai rekan kerja di kantor sebelah, tetapi apakah itu apel yang sama dengan yang melambaikan tangan kemarin di pusat kota tetap membingungkan
Perubahan gaya rambut adalah masalah yang sangat besar. Pernah suatu kali saat makan siang saya penasaran siapa rekan kerja baru itu, lalu mengenalinya dari suara ketika dia berbicara; ternyata itu orang yang sudah bekerja bersama saya selama 10 tahun dan hanya mengganti warna rambut
Saat Google Glass pertama kali keluar pada 2012, saya sedang menjalankan startup teknologi konferensi, dan kami punya database foto profil pembicara serta peserta, jadi aplikasi “kacamata membantu menemukan orang yang Anda janjian temui di ruangan ramai” terasa seperti ide yang sangat jelas
Tapi ketentuan pengembang Google Glass melarang itu dengan ketat, dan begitu dipikirkan sedikit lebih jauh, langsung jelas kenapa
Saya ingin memakai kebalikan total dari ini. Perlu ada perangkat yang memberi tahu saya kalau ada orang di dekat saya yang memakai kacamata AI Facebook supaya saya bisa menghindarinya
Saya sudah dengan jelas memberi tahu keluarga agar tidak membagikan foto anak-anak di platform Meta. Kalau perangkat seperti ini dipaksakan kepada publik yang tidak tahu apa-apa, mungkin akan ada orang yang bereaksi dengan kekerasan
Ini sama sekali berbeda dari CCTV yang diterima umum atau perekaman manual dengan kamera dan smartphone
Menurut saya, Meta adalah contoh utama pelanggaran privasi dalam sejarah teknologi. Kacamata pintar ini sudah kelewatan, karena merekam orang di dalam rumah mereka, kadang dalam keadaan telanjang, tanpa persetujuan
Ini juga sempat dibahas di sini sekitar sebulan lalu: Meta in row after workers who saw smart glasses users having sex lose jobs (https://news.ycombinator.com/item?id=47961838)
Kelihatannya ada niat untuk membuat para pengacara Chicago kaya raya. [0]
[0]: https://en.wikipedia.org/wiki/Biometric_Information_Privacy_Act
Menurut isi tautannya, BIPA mengharuskan perusahaan yang berbisnis di Illinois mematuhi persyaratan terkait pengumpulan dan penyimpanan data biometrik, termasuk mendapatkan persetujuan untuk mengumpulkan atau mengungkapkan pengenal biometrik seseorang, memusnahkannya tepat waktu, dan menyimpannya dengan aman. Pengelolaan data biometrik juga memerlukan “standar kehati-hatian yang wajar”
Ide startup: pasang LED inframerah dekat pada bridge dan sisi bingkai kacamata biasa, dengan efisiensi bagus dan terang, tetapi PWM-nya dijalankan dengan clock tak beraturan sekitar 10Hz
Kalau ingin memotret saya, mintalah izin atau pakai film
Saya tidak bisa memikirkan satu pun kegunaan praktis yang membantu hidup saya. Saya sudah punya pengenalan wajah lokal yang tertanam tepat di belakang kacamata ini
Saya mengingat nama beberapa orang, dan pada akhirnya saya jadi melihat bahwa kemampuan mengingat nama itu sendiri bukan hal yang terlalu berarti. Saya mengingat nama orang-orang yang benar-benar saya sukai
Sebaliknya, patut juga dipikirkan apakah seseorang benar-benar peduli kalau saya lupa namanya. Waktu kecil saya punya teman di kepanduan yang selalu bersama saya sepanjang tahun, tetapi saya tidak ingat namanya, dan toh tidak ada masalah besar
Saya bergaul dengan kelompok besar selama hampir 10 tahun, tetapi tetap sulit mengingat siapa itu siapa; saat pandemi, nama yang tampil di Zoom membuat saya perlahan-lahan mengenalnya selama beberapa minggu
Saat mengajar scuba, ketika berkendara ke toko saya menghafalkan daftar nama murid dalam urutan seacak mungkin untuk mengurangi beban kognitif saat mengaitkan wajah dengan nama. Saat memanggil absensi, saya menuliskan semua nama dan, sambil melempar pertanyaan, mencoba sedikit demi sedikit melakukannya tanpa contekan
Tetapi begitu mereka memakai peralatan, terutama di daerah yang menggunakan hood, semuanya langsung berantakan. Dua pria kulit putih berusia sekitar 35 tahun saja sudah cukup membuat saya bingung. Kalau bisa diterima secara sosial, saya ingin memakainya sebagai kacamata resep untuk mengurangi beban itu
Saya tidak mengira Meta melakukan ini demi aksesibilitas
Tentu ini percakapan yang cukup canggung, jadi ada juga strategi setengah mengenalkan lalu berharap orang-orang saling memperkenalkan diri sepenuhnya, dan saya mengingatnya saat itu juga
Sebagai prinsip umum, saya penasaran bagaimana kalau arahnya seperti ini: komputer boleh otomatis melakukan sebanyak apa pun selama tidak menyentuh batas jaringan, tetapi untuk mengakses jaringan harus selalu dimulai oleh tindakan eksplisit manusia
Mirip seperti di browser, penangkapan mouse atau masuk layar penuh membutuhkan tindakan pengguna tepercaya, tetapi diterapkan lebih luas. Ruang lingkup komunikasi jaringan juga harus jelas agar pengguna tidak mungkin salah paham
Jika terlalu rumit sampai tidak bisa dijelaskan kepada pengguna sasaran, maka itu tidak boleh dilakukan atas nama pengguna tersebut. Ini terutama berlaku untuk produk konsumen massal, bukan distribusi internal
Tanpa batas keras seperti ini, rasanya kita akan menuju panoptikon. Bahkan tanpa dorongan aktif dari pemerintah, motivasi keuntungan belaka di era digital sudah cukup untuk menghasilkan itu. Aturan yang rinci mungkin secara teori lebih baik, tetapi ketika insentifnya kuat, orang cenderung tidak patuh pada aturan yang rumit
Saya berada pada posisi yang bisa membuat kebijakan keamanan di tempat kerja, dan salah satunya adalah larangan kacamata pintar di kantor. Saya tidak bisa membiarkan karyawan mengarahkan kacamata Facebook ke layar yang menampilkan informasi rahasia
Saya juga hampir tidak bisa membayangkan situasi apa pun yang layak mengizinkan penggunaan pengenalan wajah. Di restoran, tidak ada alasan Facebook perlu tahu saya makan di mana, dan di klub musik, tidak perlu tahu saya mendengarkan apa. Tempat seperti toilet umum sama sekali tidak boleh. Bahkan di trotoar umum pun saya tidak ingin dilacak sedang berbicara dengan siapa
Saya sama sekali tidak merasa bisa menerima sedikit pun konteks penggunaan ini. Sejujurnya, lebih dari sekadar mempermalukan secara terbuka orang yang memakai spyware publik seperti ini, saya berharap cepat muncul suasana di mana orang secara fisik takut ketahuan memakainya di luar
Untuk menjawab sanggahan klise “apakah ponsel berkamera juga dilarang di tempat kerja”, ya, benar. Mengarahkan kamera ponsel ke layar sepanjang hari dan merekam pekerjaan tentu juga akan dilarang. Kami tidak membagikan informasi rahasia kepada siapa pun selain vendor yang sudah ditinjau dan dikontrak, dan kalau saya melihat seseorang merekam, saya akan memanggilnya dan menjelaskan bahwa itu situasi yang sangat berbahaya
Saya tidak ingin BigTech atau pemerintah melacak semua interaksi saya, tetapi kalau dashcam mobil tetangga saya menyimpan secara lokal bahwa saya melewati jalan masuk rumah itu, saya masih bisa menerimanya selama tidak diunggah ke pihak ketiga
Tentu saja, kebanyakan orang tidak ingin self-hosting, dan kebanyakan layanan juga bukan end-to-end encrypted, jadi sulit untuk berpura-pura bahwa ini penting secara praktis saat ini. Tetap saja, ini perbedaan yang relevan jika memikirkan regulasi dan dunia seperti apa yang kita inginkan
Ada logika ala Amandemen Kedua di sini, dan cukup sulit dibantah. Setidaknya benda ini tidak membunuh orang. Saya ingin setiap polisi selalu dikelilingi 5-6 perangkat perekam yang tidak bisa mereka kendalikan. Itu pilihan yang kurang buruk
Tentu saya tidak suka kalau semuanya berakhir ke Facebook, dan saya berharap kita bisa melewati tahap itu
Bagaimana kalau Meta, Flock, dan Palantir bergabung? Rasanya mereka bisa membuat combo kejahatan ala saham bundel gaya Musk