Estimasi pose adalah tugas menggunakan model ML untuk memperkirakan pose seseorang dari gambar atau video dengan memperkirakan lokasi spasial sendi tubuh utama (titik kunci).
Memulai
Jika Anda baru menggunakan TensorFlow Lite dan menggunakan Android atau iOS, jelajahi contoh aplikasi berikut yang dapat membantu Anda memulai.
Jika Anda sudah familiar dengan TensorFlow Lite API , download model estimasi pose MoveNet starter dan file pendukungnya.
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 letak sendi-sendi utama tubuh dan tidak mengenali siapa yang ada dalam gambar atau video.
Model estimasi pose mengambil gambar kamera yang telah diproses sebagai masukan dan keluaran informasi tentang titik-titik kunci. Titik kunci yang terdeteksi diindeks oleh ID bagian, dengan skor keyakinan antara 0,0 dan 1,0. Skor kepercayaan menunjukkan kemungkinan adanya titik kunci pada posisi tersebut.
Kami menyediakan implementasi referensi dari dua model estimasi pose TensorFlow Lite:
- MoveNet: model estimasi pose canggih yang tersedia dalam dua varian: Pencahayaan dan Guntur. Lihat perbandingan keduanya pada 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:
Pengenal | Bagian |
---|---|
0 | hidung |
1 | mata kiri |
2 | mata kanan |
3 | telinga kiri |
4 | telinga kanan |
5 | bahu kiri |
6 | bahu kanan |
7 | kiriSiku |
8 | kananSiku |
9 | pergelangan tangan kiri |
10 | Pergelangan tangan kanan |
11 | pinggul kiri |
12 | kananPinggul |
13 | kirilutut |
14 | lutut kanan |
15 | pergelangan kaki kiri |
16 | pergelangan kaki kanan |
Contoh keluaran ditunjukkan di bawah ini:
Tolok ukur kinerja
MoveNet tersedia dalam dua rasa:
- MoveNet.Lightning lebih kecil, lebih cepat tetapi kurang akurat dibandingkan versi Thunder. Itu 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 memerlukan akurasi lebih tinggi.
MoveNet mengungguli PoseNet pada berbagai kumpulan data, terutama pada gambar dengan gambar tindakan kebugaran. Oleh karena itu, kami menyarankan penggunaan MoveNet melalui PoseNet.
Angka tolok ukur kinerja dihasilkan dengan alat yang dijelaskan di sini . Angka akurasi (mAP) diukur pada subkumpulan kumpulan data COCO tempat kami memfilter dan memangkas setiap gambar agar hanya memuat satu orang .
Model | Ukuran (MB) | peta | Latensi (ms) | ||
---|---|---|---|---|---|
Piksel 5 - CPU 4 utas | Piksel 5 - GPU | Raspberry Pi 4 - CPU 4 utas | |||
MoveNet.Thunder (FP16 terkuantisasi) | 12,6MB | 72.0 | 155 md | 45 md | 594 md |
MoveNet.Thunder (terkuantisasi INT8) | 7.1MB | 68.9 | 100 md | 52 md | 251 md |
MoveNet.Lightning (FP16 terkuantisasi) | 4,8MB | 63.0 | 60 md | 25 md | 186 md |
MoveNet.Lightning (terkuantisasi INT8) | 2,9MB | 57.4 | 52 md | 28 md | 95 md |
PoseNet (tulang punggung MobileNetV1, FP32) | 13,3MB | 45.6 | 80 md | 40 md | 338 md |
Bacaan dan sumber lebih lanjut
- Lihat postingan blog ini untuk mempelajari lebih lanjut estimasi pose menggunakan MoveNet dan TensorFlow Lite.
- Lihat postingan blog ini untuk mempelajari lebih lanjut tentang estimasi pose di web.
- Lihat tutorial ini untuk mempelajari cara menjalankan MoveNet di Python menggunakan model dari TensorFlow Hub.
- Coral/EdgeTPU dapat membuat estimasi pose berjalan lebih cepat di perangkat edge. Lihat model EdgeTPU yang dioptimalkan untuk lebih jelasnya.
- Baca makalah PoseNet di sini
Lihat juga kasus penggunaan estimasi pose ini.