คู่มือการตรวจหาจุดสังเกตของมือ

มือกำลังถือไข่ รูปร่างของมือมีการทำเครื่องหมายด้วยโครงร่างที่บ่งบอกถึงโครงสร้างที่ระบุ

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

ลองใช้เลย

เริ่มต้นใช้งาน

เริ่มใช้แท็บงานนี้โดยทําตามคําแนะนําการใช้งานแพลตฟอร์มเป้าหมายข้อใดข้อหนึ่งต่อไปนี้ คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานพื้นฐานของงานนี้ รวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดพร้อมตัวเลือกการกำหนดค่าที่แนะนำ

รายละเอียดงาน

ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้

ฟีเจอร์

  • การประมวลผลรูปภาพอินพุต - การประมวลผลประกอบด้วยการหมุนรูปภาพ การปรับขนาด การทำให้เป็นมาตรฐาน และการแปลงพื้นที่สี
  • เกณฑ์คะแนน - กรองผลลัพธ์ตามคะแนนการคาดการณ์
อินพุตงาน เอาต์พุตของงาน
เครื่องมือระบุจุดสังเกตบนมือยอมรับอินพุตประเภทข้อมูลต่อไปนี้
  • ภาพนิ่ง
  • เฟรมวิดีโอที่ถอดรหัสแล้ว
  • ฟีดวิดีโอสด
เครื่องมือระบุจุดสังเกตบนมือจะแสดงผลลัพธ์ต่อไปนี้
  • ความถนัดของมือที่ตรวจพบ
  • จุดสังเกตของมือที่ตรวจพบในพิกัดรูปภาพ
  • จุดสังเกตของมือที่ตรวจพบในพิกัดโลก

ตัวเลือกการกําหนดค่า

งานนี้มีตัวเลือกการกำหนดค่าต่อไปนี้

ชื่อตัวเลือก คำอธิบาย ช่วงของค่า ค่าเริ่มต้น
running_mode ตั้งค่าโหมดการทํางานสําหรับงาน โดยโหมดมี 3 แบบ ดังนี้

รูปภาพ: โหมดสำหรับอินพุตรูปภาพเดียว

วิดีโอ: โหมดสำหรับเฟรมที่ถอดรหัสของวิดีโอ

LIVE_STREAM: โหมดสตรีมแบบสดของข้อมูลอินพุต เช่น จากกล้อง ในโหมดนี้ คุณต้องเรียกใช้ resultListener เพื่อตั้งค่า Listener เพื่อรับผลลัพธ์แบบไม่พร้อมกัน
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
num_hands จํานวนมือสูงสุดที่ตรวจพบโดยตัวตรวจจับจุดสังเกตของมือ Any integer > 0 1
min_hand_detection_confidence คะแนนความน่าเชื่อถือขั้นต่ำที่การตรวจจับมือจะถือว่าประสบความสำเร็จในโมเดลการตรวจจับฝ่ามือ 0.0 - 1.0 0.5
min_hand_presence_confidence คะแนนความเชื่อมั่นขั้นต่ำสำหรับคะแนนการมีอยู่ของมือในโมเดลการตรวจหาจุดสังเกตของมือ ในโหมดวิดีโอและโหมดสตรีมแบบสด หากคะแนนความเชื่อมั่นของมือจากโมเดลจุดสังเกตของมือต่ำกว่าเกณฑ์นี้ ตัวระบุจุดสังเกตของมือจะทริกเกอร์โมเดลการตรวจจับฝ่ามือ หรืออัลกอริทึมการติดตามมือแบบเบาจะระบุตำแหน่งของมือเพื่อการตรวจหาจุดสังเกตในภายหลัง 0.0 - 1.0 0.5
min_tracking_confidence คะแนนความเชื่อมั่นขั้นต่ำสำหรับการติดตามมือที่ถือว่าสำเร็จ นี่คือเกณฑ์ IoU ของขอบเขตระหว่างมือในเฟรมปัจจุบันกับเฟรมสุดท้าย ในโหมดวิดีโอและโหมดสตรีมของ Hand Landmarker หากการติดตามไม่สำเร็จ Hand Landmarker จะทริกเกอร์การตรวจจับมือ ไม่เช่นนั้น ระบบจะข้ามการตรวจจับมือ 0.0 - 1.0 0.5
result_callback ตั้งค่าโปรแกรมรับฟังผลลัพธ์ให้รับผลลัพธ์การตรวจจับแบบไม่พร้อมกันเมื่อเครื่องหมายจุดสังเกตของมืออยู่ในโหมดสตรีมแบบสด มีผลเฉพาะเมื่อตั้งค่าโหมดการทํางานเป็น LIVE_STREAM ไม่มี ไม่มี

โมเดล

เครื่องมือระบุจุดสังเกตของมือใช้กลุ่มโมเดลที่มีโมเดล 2 รายการที่บรรจุไว้ด้วยกัน ได้แก่ โมเดลการตรวจจับฝ่ามือและโมเดลการตรวจจับจุดสังเกตของมือ คุณต้องมีกลุ่มโมเดลที่มีทั้ง 2 โมเดลนี้จึงจะทํางานนี้ได้

ชื่อโมเดล รูปร่างอินพุต ประเภทการแปลงค่าเป็นจำนวนเต็ม การ์ดโมเดล เวอร์ชัน
HandLandmarker (full) 192 x 192, 224 x 224 ลอย 16 info ล่าสุด

แพ็กเกจโมเดลจุดสังเกตของมือจะตรวจหาตําแหน่งจุดสังเกตของพิกัดข้อต่อของมือ 21 จุดภายในบริเวณมือที่ตรวจพบ โมเดลได้รับการฝึกจากรูปภาพในชีวิตจริงประมาณ 30, 000 ภาพ รวมถึงโมเดลมือสังเคราะห์ที่ผ่านการจัดการเรนเดอร์หลายแบบซึ่งวางซ้อนกันบนพื้นหลังต่างๆ

แพ็กเกจโมเดลจุดสังเกตของมือประกอบด้วยโมเดลการตรวจจับฝ่ามือและโมเดลการตรวจจับจุดสังเกตของมือ โมเดลการตรวจจับฝ่ามือจะหาตำแหน่งมือในรูปภาพอินพุต และโมเดลการตรวจจับจุดสังเกตของมือจะระบุจุดสังเกตของมือที่เฉพาะเจาะจงในรูปภาพมือที่ครอบตัดซึ่งกำหนดโดยโมเดลการตรวจจับฝ่ามือ

เนื่องจากโมเดลการตรวจจับฝ่ามือใช้เวลานาน เมื่ออยู่ในโหมดการเรียกใช้วิดีโอหรือสตรีมแบบสด ตัวระบุจุดสังเกตของมือจะใช้กล่องขอบเขตที่โมเดลจุดสังเกตของมือกำหนดไว้ในเฟรมเดียวเพื่อหาตำแหน่งของมือในเฟรมต่อๆ ไป เครื่องมือระบุจุดสังเกตของมือจะเรียกใช้โมเดลการตรวจจับฝ่ามืออีกครั้งก็ต่อเมื่อโมเดลจุดสังเกตของมือไม่พบมืออีกต่อไปหรือติดตามมือภายในเฟรมไม่สำเร็จ วิธีนี้ช่วยลดจำนวนครั้งที่ Hand Landmarker จะทริกเกอร์โมเดลการตรวจจับฝ่ามือ

การเปรียบเทียบงาน

ต่อไปนี้เป็นการเปรียบเทียบประสิทธิภาพของงานสำหรับทั้งไปป์ไลน์โดยอิงตามโมเดลที่ผ่านการฝึกล่วงหน้าข้างต้น ผลลัพธ์เวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU

ชื่อแบบจำลอง เวลาในการตอบสนองของ CPU เวลาในการตอบสนองของ GPU
HandLandmarker (เต็ม) 17.12 มิลลิวินาที 12.27 มิลลิวินาที