งานหาจุดสังเกตของมือของ MediaPipe ช่วยให้คุณตรวจหาจุดสังเกตของมือในรูปภาพได้ คุณสามารถใช้งานนี้เพื่อหาจุดสำคัญของมือและแสดงผลภาพบนมือ งานนี้จะดำเนินการกับข้อมูลรูปภาพด้วยโมเดลแมชชีนเลิร์นนิง (ML) เป็นข้อมูลแบบคงที่หรือสตรีมต่อเนื่อง และแสดงผลจุดสังเกตของมือในพิกัดรูปภาพ จุดสังเกตของมือในพิกัดโลก และลักษณะการจับถือ(มือซ้าย/ขวา) ของมือหลายมือที่ตรวจพบ
เริ่มต้นใช้งาน
เริ่มใช้แท็บงานนี้โดยทําตามคําแนะนําการใช้งานแพลตฟอร์มเป้าหมายข้อใดข้อหนึ่งต่อไปนี้ คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานพื้นฐานของงานนี้ รวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดพร้อมตัวเลือกการกำหนดค่าที่แนะนำ
- Android - Code example
- Python - Code example
- เว็บ - ตัวอย่างโค้ด - คำแนะนำ
รายละเอียดงาน
ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้
ฟีเจอร์
- การประมวลผลรูปภาพอินพุต - การประมวลผลประกอบด้วยการหมุนรูปภาพ การปรับขนาด การทำให้เป็นมาตรฐาน และการแปลงพื้นที่สี
- เกณฑ์คะแนน - กรองผลลัพธ์ตามคะแนนการคาดการณ์
อินพุตงาน | เอาต์พุตของงาน |
---|---|
เครื่องมือระบุจุดสังเกตบนมือยอมรับอินพุตประเภทข้อมูลต่อไปนี้
|
เครื่องมือระบุจุดสังเกตบนมือจะแสดงผลลัพธ์ต่อไปนี้
|
ตัวเลือกการกําหนดค่า
งานนี้มีตัวเลือกการกำหนดค่าต่อไปนี้
ชื่อตัวเลือก | คำอธิบาย | ช่วงของค่า | ค่าเริ่มต้น |
---|---|---|---|
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 มิลลิวินาที |