Deteksi pose

ML Kit Pose Detection API adalah solusi serbaguna dan ringan bagi developer aplikasi untuk mendeteksi pose tubuh subjek secara real time dari video berkelanjutan atau gambar statis. Pose menggambarkan posisi tubuh pada satu waktu dengan sekumpulan titik tolak ukur kerangka. Penanda terkait dengan berbagai bagian tubuh seperti bahu dan pinggul. Posisi relatif tempat terkenal dapat digunakan untuk membedakan satu pose dari yang lain.

iOS Android

Deteksi Pose ML Kit menghasilkan kecocokan kerangka 33 titik seluruh tubuh yang mencakup penanda wajah (telinga, mata, mulut, dan hidung) serta titik pada tangan dan kaki. Gambar 1 di bawah menunjukkan tempat terkenal yang melihat melalui kamera kepada pengguna sehingga merupakan gambar cermin. Sisi kanan pengguna muncul di sebelah kiri gambar:

Gambar 1. Tempat terkenal

ML Kit Pose Detection tidak memerlukan peralatan khusus atau keahlian ML untuk mencapai hasil yang luar biasa. Dengan teknologi ini, developer dapat menciptakan pengalaman unik bagi pengguna hanya dengan beberapa baris kode.

Wajah pengguna harus ada untuk mendeteksi pose. Deteksi pose berfungsi paling baik jika seluruh tubuh subjek terlihat di frame, tetapi juga mendeteksi pose sebagian tubuh. Dalam hal ini, tempat terkenal yang tidak dikenali akan diberi koordinat di luar gambar.

Kemampuan utama

  • Dukungan lintas platform Nikmati pengalaman yang sama di Android dan iOS.
  • Pelacakan seluruh tubuh Model menampilkan 33 titik penanda kerangka utama, termasuk posisi tangan dan kaki.
  • Skor InFrameLikelihood Untuk setiap penanda, ukuran yang menunjukkan probabilitas bahwa penanda tersebut berada dalam bingkai gambar. Skor tersebut memiliki rentang 0,0 hingga 1,0, dengan 1,0 menunjukkan keyakinan tinggi.
  • Dua SDK yang dioptimalkan SDK dasar berjalan secara real time di ponsel modern seperti Pixel 4 dan iPhone X. Metode ini menampilkan hasil dengan kecepatan masing-masing ~30 dan ~45 fps. Namun, presisi koordinat tempat terkenal dapat bervariasi. SDK yang akurat menampilkan hasil pada kecepatan frame yang lebih lambat, tetapi menghasilkan nilai koordinat yang lebih akurat.
  • Z Koordinat untuk analisis kedalaman Nilai ini dapat membantu menentukan apakah bagian tubuh pengguna berada di depan atau di belakang pinggul pengguna. Untuk informasi selengkapnya, lihat bagian Koordinat Z di bawah ini.

Pose Detection API mirip dengan Facial Recognition API karena menampilkan kumpulan tempat terkenal dan lokasinya. Namun, meskipun Deteksi Wajah juga mencoba mengenali fitur seperti mulut yang tersenyum atau mata terbuka, Deteksi Pose tidak memberikan arti apa pun pada tempat terkenal dalam pose atau pose itu sendiri. Anda dapat membuat algoritma sendiri untuk menafsirkan sebuah pose. Baca Tips Klasifikasi Pose untuk beberapa contoh.

Deteksi pose hanya dapat mendeteksi satu orang dalam gambar. Jika ada dua orang dalam gambar, model akan menetapkan tempat terkenal kepada orang yang terdeteksi dengan keyakinan tertinggi.

Koordinat Z

Koordinat Z adalah nilai percobaan yang dihitung untuk setiap penanda. Nilai ini diukur dalam "piksel gambar" seperti koordinat X dan Y, tetapi bukan nilai 3D yang sebenarnya. Sumbu Z tegak lurus dengan kamera dan melintas di antara pinggul subjek. Asal sumbu Z adalah kira-kira titik tengah antara pinggul (kiri/kanan dan depan/belakang relatif terhadap kamera). Nilai Z negatif menghadap kamera; nilai positif jauh dari kamera. Koordinat Z tidak memiliki batas atas atau bawah.

Hasil sampel

Tabel berikut menampilkan koordinat dan InFrameLikelihood untuk beberapa landmark dalam pose di sebelah kanan. Perhatikan bahwa koordinat Z untuk tangan kiri pengguna negatif, karena berada di depan bagian tengah pinggul subjek dan ke arah kamera.

Tempat terkenalJenisPosisiInFrameLikelihood
11LEFT_SHOULDER(734.9671, 550.7924, -118.11934)0,9999038
12 RIGHT_SHOULDER (391,27032, 583,2485, -321,15836) 0,9999894
13 LEFT_ELBOW (903.83704, 754.676, -219.67009) 0,9836427
14 RIGHT_ELBOW (322.18152, 842.5973, -179.28519) 0,99970156
15 LEFT_WRIST (1073,8956, 654,9725, -820,93463) 0,9737737
16 RIGHT_WRIST (218,27956, 1015,70435, -683,6567) 0,995568
17 LEFT_PINKY (1146,1635, 609,6432, -956,9976) 0,95273364
18 RIGHT_PINKY (176,17755, 1065,838, -776,5006) 0,9785348

Di balik layar

Untuk mengetahui detail implementasi selengkapnya tentang model ML dasar untuk API ini, lihat postingan blog Google AI kami.

Untuk mempelajari lebih lanjut praktik keadilan ML kami dan cara model dilatih, lihat Kartu Model kami