การประมาณท่าทางเป็นงานในการใช้แบบจำลอง ML เพื่อประมาณท่าทางของบุคคลจากรูปภาพหรือวิดีโอ โดยการประมาณตำแหน่งเชิงพื้นที่ของข้อต่อหลักๆ ของร่างกาย (จุดสำคัญ)
เริ่ม
หากคุณยังใหม่กับ TensorFlow Lite และกำลังใช้งาน Android หรือ iOS ลองสำรวจแอปพลิเคชันตัวอย่างต่อไปนี้ที่สามารถช่วยคุณเริ่มต้นได้
หากคุณคุ้นเคยกับ TensorFlow Lite API ให้ดาวน์โหลดแบบจำลองการประมาณค่าท่าทาง MoveNet เริ่มต้นและไฟล์ที่รองรับ
หากคุณต้องการลองประมาณค่าบนเว็บเบราว์เซอร์ ลองดู TensorFlow JS Demo
คำอธิบายโมเดล
มันทำงานอย่างไร
การประมาณท่าทางหมายถึงเทคนิคการมองเห็นด้วยคอมพิวเตอร์ที่ตรวจจับรูปร่างของมนุษย์ในรูปภาพและวิดีโอ เพื่อให้สามารถระบุได้ เช่น ตำแหน่งที่ข้อศอกของบุคคลใดปรากฏในรูปภาพ สิ่งสำคัญคือต้องทราบข้อเท็จจริงที่ว่าการประมาณค่าเป็นเพียงการประมาณว่าข้อต่อหลักๆ ของร่างกายอยู่ที่ไหน และไม่รู้จักว่าใครอยู่ในรูปภาพหรือวิดีโอ
โมเดลการประมาณท่าทางจะใช้ภาพจากกล้องที่ได้รับการประมวลผลเป็นข้อมูลอินพุตและเอาต์พุตเกี่ยวกับจุดสำคัญ จุดสำคัญที่ตรวจพบจะถูกจัดทำดัชนีโดยรหัสชิ้นส่วน โดยมีคะแนนความเชื่อมั่นระหว่าง 0.0 ถึง 1.0 คะแนนความเชื่อมั่นบ่งบอกถึงความน่าจะเป็นที่จุดสำคัญจะมีอยู่ในตำแหน่งนั้น
เรามีการใช้งานอ้างอิงของแบบจำลองการประมาณค่าท่าทาง TensorFlow Lite สองแบบ:
- MoveNet: โมเดลการประมาณท่าทางที่ล้ำสมัย มีให้เลือกสองรสชาติ: Lighting และ Thunder ดูการเปรียบเทียบระหว่างทั้งสองในส่วนด้านล่าง
- PoseNet: โมเดลการประมาณค่าท่าทางรุ่นก่อนหน้าที่เปิดตัวในปี 2560
ข้อต่อต่างๆ ของร่างกายที่ตรวจพบโดยแบบจำลองการประมาณท่าทางมีดังต่อไปนี้:
รหัส | ส่วนหนึ่ง |
---|---|
0 | จมูก |
1 | ตาซ้าย |
2 | ขวาตา |
3 | หูซ้าย |
4 | หูขวา |
5 | ไหล่ซ้าย |
6 | ไหล่ขวา |
7 | ซ้ายข้อศอก |
8 | ขวาข้อศอก |
9 | ข้อมือซ้าย |
10 | ข้อมือขวา |
11 | ซ้ายสะโพก |
12 | ขวาสะโพก |
13 | เข่าซ้าย |
14 | เข่าขวา |
15 | ข้อเท้าซ้าย |
16 | ข้อเท้าขวา |
ผลลัพธ์ตัวอย่างแสดงอยู่ด้านล่าง:
เกณฑ์มาตรฐานประสิทธิภาพ
MoveNet มีให้เลือกสองรสชาติ:
- MoveNet.Lighting มีขนาดเล็กกว่า เร็วกว่า แต่มีความแม่นยำน้อยกว่าเวอร์ชัน Thunder สามารถทำงานได้แบบเรียลไทม์บนสมาร์ทโฟนสมัยใหม่
- MoveNet.Thunder เป็นเวอร์ชันที่แม่นยำกว่า แต่ยังใหญ่กว่าและช้ากว่า Lightning อีกด้วย มีประโยชน์สำหรับกรณีการใช้งานที่ต้องการความแม่นยำสูงกว่า
MoveNet มีประสิทธิภาพเหนือกว่า PoseNet บนชุดข้อมูลที่หลากหลาย โดยเฉพาะอย่างยิ่งในภาพที่มีภาพการเคลื่อนไหวด้านฟิตเนส ดังนั้นเราขอแนะนำให้ใช้ MoveNet บน PoseNet
หมายเลขเกณฑ์มาตรฐานประสิทธิภาพสร้างขึ้นด้วยเครื่องมือ ที่อธิบายไว้ที่นี่ ตัวเลขความแม่นยำ (mAP) วัดจากชุดย่อยของ ชุดข้อมูล COCO ซึ่งเรากรองและครอบตัดแต่ละภาพเพื่อให้มีบุคคลเพียงคนเดียว
แบบอย่าง | ขนาด (เมกะไบต์) | แผนที่ | เวลาแฝง (มิลลิวินาที) | ||
---|---|---|---|---|---|
Pixel 5 - CPU 4 เธรด | พิกเซล 5 - GPU | Raspberry Pi 4 - CPU 4 เธรด | |||
MoveNet.Thunder (ปริมาณ FP16) | 12.6MB | 72.0 | 155ms | 45ms | 594ms |
MoveNet.Thunder (ปริมาณ INT8) | 7.1MB | 68.9 | 100ms | 52ms | 251ms |
MoveNet.Lightning (ปริมาณ FP16) | 4.8MB | 63.0 | 60ms | 25ms | 186ms |
MoveNet.Lightning (ปริมาณ INT8) | 2.9MB | 57.4 | 52ms | 28มิลลิวินาที | 95ms |
PoseNet (แกนหลัก MobileNetV1, FP32) | 13.3MB | 45.6 | 80ms | 40ms | 338ms |
อ่านเพิ่มเติมและแหล่งข้อมูล
- ลองอ่าน บล็อกโพสต์ นี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการประมาณท่าทางโดยใช้ MoveNet และ TensorFlow Lite
- ลองอ่าน บล็อกโพสต์ นี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการประมาณท่าทางบนเว็บ
- ดู บทช่วยสอน นี้เพื่อเรียนรู้เกี่ยวกับการรัน MoveNet บน Python โดยใช้โมเดลจาก TensorFlow Hub
- Coral/EdgeTPU สามารถทำให้การประมาณท่าทางทำงานเร็วขึ้นมากบนอุปกรณ์ Edge ดู รุ่นที่ปรับให้เหมาะสม EdgeTPU สำหรับรายละเอียดเพิ่มเติม
- อ่านรายงาน PoseNet ที่นี่
นอกจากนี้ ให้ตรวจสอบกรณีการใช้งานของการประมาณท่าทางเหล่านี้