Sumber: TensorFlow
Artikel ini adalah tentang 2626 kata , Dianjurkan untuk membaca 5 menit
Artikel ini memperkenalkan dua paket baru untuk melacak titik fitur utama wajah dan tangan: Sungkup muka dan Pegangan.
Baru-baru ini kami merilis dua paket baru: Facemesh dengan Handpose , Digunakan untuk melacak poin fitur utama masing-masing wajah dan tangan. Paket yang dirilis kali ini adalah Google Research MediaPipe dengan TensorFlow.js Pekerjaan tim.
Coba versi demo langsung di browser Anda
Paket Facemesh dapat menemukan batas wajah dan titik fitur dalam gambar, sedangkan Handpose dapat digunakan untuk menemukan batas tangan dan titik fitur. Paket-paket ini kecil, cepat, dan dapat berjalan sepenuhnya di browser, sehingga data tidak pernah meninggalkan perangkat pengguna, sehingga melindungi privasi pengguna. Anda sekarang dapat mencoba paket ini menggunakan tautan di bawah ini:
- Facemesh
- Handpose
Paket-paket ini juga telah disediakan sebagai komponen dalam MediaPipe (perpustakaan untuk membangun jalur kesadaran multi-modal):
- Pelacakan wajah MediaPipe
- Pelacakan postur tangan MediaPipe
Kami berharap pelacakan wajah dan tangan secara real-time dapat membuka mode interaktif baru: posisi geometris wajah adalah dasar klasifikasi ekspresi wajah, dan pelacakan tangan adalah langkah pertama dalam pengenalan gerakan. Kami menantikan bagaimana fungsi semacam ini akan semakin memperluas aplikasi interaktivitas dan aksesibilitas Internet.
Pemahaman mendalam: Facemesh
Paket Facemesh hanya memerlukan input kamera tunggal (tanpa sensor kedalaman) untuk menyimpulkan perkiraan geometri wajah 3D dari aliran gambar atau video. Bentuk geometris ini dapat menemukan lokasi mata, hidung, dan bibir wajah melalui fitur, termasuk detail seperti kontur bibir dan kontur wajah. Informasi ini dapat digunakan untuk tugas-tugas hilir, seperti klasifikasi ekspresi wajah (tetapi tidak untuk identifikasi). Untuk detail tentang kinerja model dalam kumpulan data yang berbeda, silakan lihat kami Kartu model . Paket ini juga tersedia melalui MediaPipe memperoleh.
Performa
Facemesh adalah paket ringan yang hanya menempati ruang sekitar 3MB, yang sangat cocok untuk inferensi real-time di berbagai perangkat seluler. Saat menguji, perlu diperhatikan bahwa TensorFlow.js juga menyediakan beberapa backend berbeda untuk Anda pilih, termasuk WebGL dan XNNPACK WebAssembly (WASM) untuk perangkat dengan GPU kelas bawah. Tabel berikut menunjukkan performa paket ini di beberapa perangkat berbeda dan backend TensorFlow.js:
instalasi
Ada dua cara untuk menginstal paket Facemesh:
1. Melalui NPM:
impor * sebagai facemesh dari '@ tensorflow-models / facemesh;2. Melalui tag script:
< script src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core" > < /naskah > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter" > < /naskah > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow-models/facemesh" > < /naskah > ``pemakaian
Setelah menginstal paket, Anda hanya perlu memuat model dan meneruskan gambar untuk mulai mendeteksi titik fitur wajah:
// Muat aset model facemesh MediaPipe. model const = menunggu facemesh.load (); // Teruskan aliran video ke model untuk mendapatkan // larik wajah yang terdeteksi dari grafik MediaPipe. const video = document.querySelector ("video"); wajah const = menunggu model.estimateFaces (video); // Setiap objek wajah berisi properti `scaledMesh`, // yang merupakan susunan dari 468 landmark. face.forEach (face = > console.log (face.scaledMesh));Dapat memasukkan video dan gambar statis ke estimFaces, bahkan untuk penggunaan pipeline node.js. ImageData antarmuka. Facemesh kemudian mengembalikan larik objek prediksi untuk masukan informasi terkait untuk setiap wajah (misalnya, skor kredibilitas dan lokasi 468 poin fitur wajah). Berikut adalah contoh objek yang diprediksi:
{ faceInViewConfidence: 1, boundingBox: { topLeft :, // kanan bawah:, }, jala: , scaledMesh: , anotasi: { siluet: , ... } }Lihat kami Dokumentasi Untuk mempelajari lebih lanjut tentang API.
Pemahaman mendalam: Handpose
Paket Handpose digunakan untuk mendeteksi jarum jam pada gambar masukan atau aliran video, dan mengembalikan 21 titik fitur 3D untuk memposisikan masing-masing tangan. Poin fitur ini mencakup posisi setiap sendi jari dan telapak tangan. Pada Agustus 2019, kami lulus MediaPipe Publikasikan model-Anda dapat menemukan informasi lebih lanjut tentang arsitektur model di artikel yang diterbitkan dengan model. Untuk detail tentang kinerja Handpose dalam kumpulan data yang berbeda, silakan lihat kami Kartu model . Paket ini juga tersedia melalui MediaPipe memperoleh.
Performa
Handpose adalah paket yang relatif ringan, menempati ruang sekitar 12MB, cocok untuk penalaran waktu nyata. Tabel berikut menunjukkan kinerja paket perangkat lunak di berbagai perangkat:
instalasi
Ada dua cara untuk menginstal paket Handpose:
1. Instal melalui NPM:
impor * sebagai handtrack dari '@ tensorflow-models / handpose;2. Melalui tag script:
< script src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core" > < /naskah > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter" > < /naskah > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow-models/handpose" > < /naskah >pemakaian
Setelah menginstal paket perangkat lunak, Anda hanya perlu memuat model dan meneruskan gambar untuk mulai melacak fitur tangan:
// Muat model handpose MediaPipe model const = menunggu handpose.load (); // Teruskan aliran video ke model untuk mendapatkan // prediksi dari grafik MediaPipe. const video = document.querySelector ("video"); const hands = menunggu model.estimateHands (video); // Setiap objek tangan berisi properti `landmark`, // yang merupakan larik dari 21 landmark 3-D. hands.forEach (tangan = > console.log (hand.landmarks));Seperti facemesh, input untuk estimationHands dapat berupa video, gambar statis, atau ImageData antarmuka. Paket tersebut kemudian mengembalikan array objek yang menggambarkan tangan input. Berikut adalah contoh objek yang diprediksi:
{ handInViewConfidence: 1, boundingBox: { topLeft :, // kanan bawah:, }, landmark: , anotasi: { indexFinger: , ... } }Lihat kami Dokumentasi Untuk mempelajari lebih lanjut tentang API.
Melihat ke masa depan
Kami akan terus meningkatkan Facemesh dan Handpose. Dalam waktu dekat, kami juga akan menambahkan dukungan untuk pelacakan beberapa tangan. Kami juga telah berkomitmen untuk mempercepat model tersebut, terutama pada perangkat seluler. Dalam pengembangan beberapa bulan terakhir, kami telah melihat peningkatan yang signifikan dalam kinerja Facemesh dan Handpose, dan kami yakin tren ini akan terus berlanjut.
Tim MediaPipe sedang mengembangkan arsitektur model yang lebih efisien, dan tim TensorFlow.js telah mempelajari cara-cara untuk mempercepat penalaran, seperti fusi operator. Meningkatkan kecepatan inferensi pada gilirannya dapat membuka model yang lebih besar dan lebih akurat untuk digunakan dalam pipeline real-time.
Rencana tindak lanjut
- Coba kami model ! Untuk Anda Umpan balik atau pendapat , Kami akan berterima kasih!
- Baca makalah Riset Google ini: https://arxiv.org/abs/1907.06724 Untuk mempelajari lebih lanjut tentang Facemesh
- Baca artikel "Ekspresi Diri AR Real-time Melalui Pembelajaran Mesin" dan umumkan rilis facemesh sebagai bagian dari Android AR SDK
- Baca "Pelacakan Tangan Waktu-Nyata di Perangkat dengan MediaPipe" untuk mempelajari lebih lanjut tentang menggabungkan handpose ke MediaPipe
Terima kasih
Kami ingin berterima kasih kepada tim MediaPipe karena telah dengan murah hati berbagi dengan kami implementasi asli dari paket-paket ini. MediaPipe mengembangkan dan melatih model dasar, dan merancang grafik pasca-pemrosesan untuk mengintegrasikan semua konten.
Jika Anda ingin mempelajari lebih lanjut tentang konten terkait yang disebutkan dalam artikel ini, lihat dokumen berikut. Dokumen-dokumen ini mempelajari banyak topik yang disebutkan dalam artikel ini:
Facemeshhttps: //www.npmjs.com/package/@tensorflow-models/facemesh
Handposehttps: //www.npmjs.com/package/@tensorflow-models/handpose
MediaPipehttps: //mediapipe.dev/
TensorFlow.js https://github.com/tensorflow/tfjs
Demo Facemesh https://storage.googleapis.com/tfjs-models/demos/facemesh/index.html
Demo Handposehttps: //storage.googleapis.com/tfjs-models/demos/handpose/index.html
MediaPipehttps: //github.com/google/mediapipe/
Pelacakan wajah MediaPipe https://github.com/google/mediapipe/tree/master/mediapipe/graphs/face_detection
Pelacakan gerakan tangan MediaPipe https://github.com/google/mediapipe/blob/master/mediapipe/docs/hand_tracking_mobile_gpu.md
Kartu model https://drive.google.com/file/d/1VFC_wIpw4O7xBOiTgUldl79d9LA-LsnA/view
XNNPACKhttps: //github.com/google/XNNPACK
ImageDatahttps: //developer.mozilla.org/en-US/docs/Web/API/ImageData
Dokumentasi https://github.com/tensorflow/tfjs-models/tree/master/facemesh
Kartu model https://drive.google.com/file/d/1sv4sSb9BSNVZhLzxXJ0jBv9DqD-4jnAz/view
MediaPipehttps: //github.com/google/mediapipe/blob/master/mediapipe/docs/hand_tracking_desktop.md
Dokumentasi https://github.com/tensorflow/tfjs-models/tree/master/handpose
Model https://github.com/tensorflow/tfjs-models
Umpan balik https://github.com/tensorflow/tfjs/issues/new
Opini https://github.com/tensorflow/tfjs-models/pulls
-Selesai-
Ikuti platform publik WeChat resmi dari Institut Ilmu Data Tsinghua-Qingdao " Pai Data AI "Dan nomor saudara perempuan" Data Pie THU "Dapatkan lebih banyak manfaat kuliah dan konten berkualitas.
- Ajari Anda untuk menggunakan jaringan saraf untuk menyelesaikan persamaan matematika tingkat lanjut!
- Google Terjemahan dihancurkan! Mesin terjemahan pertama di dunia, DeepL, telah kembali, dan "detail gila" telah selesai
- University of Science and Technology of China × MSRA | Catatan Kuliah Dr. Zhou Ming: Pemrosesan Bahasa Alami Membuat Hidup Lebih Baik
- Tonggak sejarah yang "menyeramkan": AI ilmuwan China menerjemahkan gelombang otak dengan akurasi 97%
- Di mana menemukan data penelitian mahkota baru? Tempat yang harus dilihat untuk pekerja penelitian ilmiah (dengan tautan)
- Menggunakan gerbang logika protein untuk mengubah sel menjadi komputer, cendekiawan muda Tiongkok belajar tentang Sains