Estimasi pose adalah tugas menggunakan model ML untuk memperkirakan pose seseorang dari gambar atau video dengan memperkirakan lokasi spasial sendi tubuh kunci (keypoints).
Memulai
Jika Anda baru menggunakan TensorFlow Lite dan bekerja dengan Android atau iOS, jelajahi contoh aplikasi berikut yang dapat membantu Anda memulai.
Jika Anda terbiasa dengan TensorFlow Lite API , unduh model estimasi pose MoveNet starter dan file pendukung.
Jika Anda ingin mencoba estimasi pose di browser web, lihat Demo TensorFlow JS .
Deskripsi model
Bagaimana itu bekerja
Estimasi pose mengacu pada teknik visi komputer yang mendeteksi sosok manusia dalam gambar dan video, sehingga seseorang dapat menentukan, misalnya, di mana siku seseorang muncul dalam sebuah gambar. Penting untuk menyadari fakta bahwa estimasi pose hanya memperkirakan di mana sendi tubuh utama berada dan tidak mengenali siapa yang ada dalam gambar atau video.
Model estimasi pose mengambil gambar kamera yang diproses sebagai informasi input dan output tentang keypoint. Titik kunci yang terdeteksi diindeks oleh ID bagian, dengan skor kepercayaan antara 0,0 dan 1,0. Skor kepercayaan menunjukkan probabilitas bahwa titik kunci ada di posisi itu.
Kami menyediakan implementasi referensi dari dua model estimasi pose TensorFlow Lite:
- MoveNet: model estimasi pose mutakhir yang tersedia dalam dua rasa: Lighting dan Thunder. Lihat perbandingan antara keduanya di bagian di bawah ini.
- PoseNet: model estimasi pose generasi sebelumnya yang dirilis pada tahun 2017.
Berbagai sendi tubuh yang terdeteksi oleh model estimasi pose ditabulasikan di bawah ini:
Indo | Bagian |
---|---|
0 | hidung |
1 | mata kiri |
2 | mata kanan |
3 | telinga kiri |
4 | telinga kanan |
5 | bahu kiri |
6 | bahu kanan |
7 | kiriSiku |
8 | siku kanan |
9 | pergelangan tangan kiri |
10 | pergelangan tangan kanan |
11 | kiriPinggul |
12 | kananPinggul |
13 | lutut kiri |
14 | lutut kanan |
15 | pergelangan kaki kiri |
16 | pergelangan kaki kanan |
Contoh output ditunjukkan di bawah ini:
Tolok ukur kinerja
MoveNet tersedia dalam dua rasa:
- MoveNet.Lightning lebih kecil, lebih cepat tetapi kurang akurat dibandingkan versi Thunder. Ini dapat berjalan secara realtime di smartphone modern.
- MoveNet.Thunder adalah versi yang lebih akurat tetapi juga lebih besar dan lebih lambat dari Lightning. Ini berguna untuk kasus penggunaan yang membutuhkan akurasi lebih tinggi.
MoveNet mengungguli PoseNet pada berbagai kumpulan data, terutama dalam gambar dengan gambar aksi kebugaran. Oleh karena itu, kami menyarankan untuk menggunakan MoveNet melalui PoseNet.
Angka tolok ukur kinerja dihasilkan dengan alat yang dijelaskan di sini . Angka akurasi (mAP) diukur pada subset dataset COCO di mana kami memfilter dan memotong setiap gambar agar hanya berisi satu orang .
Model | Ukuran (MB) | peta | Latensi (md) | ||
---|---|---|---|---|---|
Pixel 5 - utas CPU 4 | Pixel 5 - GPU | Raspberry Pi 4 - utas CPU 4 | |||
MoveNet.Thunder (FP16 terkuantisasi) | 12.6MB | 72.0 | 155ms | 45ms | 594ms |
MoveNet.Thunder (INT8 terkuantisasi) | 7.1MB | 68.9 | 100ms | 52ms | 251ms |
MoveNet.Lightning (FP16 terkuantisasi) | 4,8 MB | 63.0 | 60ms | 25ms | 186ms |
MoveNet.Lightning (INT8 terkuantisasi) | 2.9MB | 57.4 | 52ms | 28ms | 95ms |
PoseNet (tulang punggung MobileNetV1, FP32) | 13.3MB | 45.6 | 80ms | 40ms | 338ms |
Bacaan dan sumber lebih lanjut
- Lihat posting blog ini untuk mempelajari lebih lanjut tentang estimasi pose menggunakan MoveNet dan TensorFlow Lite.
- Lihat posting blog ini untuk mempelajari lebih lanjut tentang estimasi pose di web.
- Lihat tutorial ini untuk mempelajari tentang menjalankan MoveNet di Python menggunakan model dari TensorFlow Hub.
- Coral/EdgeTPU dapat membuat estimasi pose berjalan lebih cepat pada perangkat edge. Lihat model yang dioptimalkan EdgeTPU untuk detail selengkapnya.
- Baca makalah PoseNet di sini
Juga, periksa kasus penggunaan estimasi pose ini.