ประมาณการท่า

การประมาณท่าทางเป็นงานในการใช้แบบจำลอง ML เพื่อประมาณท่าทางของบุคคลจากรูปภาพหรือวิดีโอ โดยการประมาณตำแหน่งเชิงพื้นที่ของข้อต่อหลักๆ ของร่างกาย (จุดสำคัญ)

เริ่ม

หากคุณยังใหม่กับ TensorFlow Lite และกำลังใช้งาน Android หรือ iOS ลองสำรวจแอปพลิเคชันตัวอย่างต่อไปนี้ที่สามารถช่วยคุณเริ่มต้นได้

ตัวอย่าง 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 ที่นี่

นอกจากนี้ ให้ตรวจสอบกรณีการใช้งานของการประมาณท่าทางเหล่านี้