งาน MediaPipe Hand Outdoorer จะช่วยให้คุณตรวจจับจุดสังเกตของมือในรูปภาพได้ คุณสามารถใช้งานนี้เพื่อค้นหาจุดสำคัญของมือและแสดงผลเอฟเฟกต์ภาพได้ งานนี้ดำเนินการเกี่ยวกับข้อมูลรูปภาพด้วยโมเดลแมชชีนเลิร์นนิง (ML) เป็นข้อมูลคงที่หรือสตรีมแบบต่อเนื่องและส่งจุดสังเกตมือในพิกัดรูปภาพ จุดสังเกตของมือในพิกัดโลก และความถนัดของมือ(ซ้าย/ขวา) ของมือที่ตรวจพบหลายมือ
เริ่มต้นใช้งาน
เริ่มใช้งานนี้โดยทำตามคำแนะนำในการใช้งานสำหรับแพลตฟอร์มเป้าหมาย คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานเบื้องต้นของงานนี้ ซึ่งรวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดที่มีตัวเลือกการกำหนดค่าที่แนะนำ
- Android - ตัวอย่างโค้ด - คำแนะนำ
- Python - ตัวอย่างโค้ด - คำแนะนำ
- เว็บ - ตัวอย่างโค้ด - คำแนะนำ
รายละเอียดงาน
ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้
ฟีเจอร์
- การประมวลผลรูปภาพอินพุต - การประมวลผลรวมถึงการหมุนรูปภาพ การปรับขนาด การทำให้เป็นมาตรฐาน และการแปลงพื้นที่สี
- เกณฑ์คะแนน - กรองผลลัพธ์ตามคะแนนการคาดการณ์
ข้อมูลงาน | เอาต์พุตของงาน |
---|---|
เครื่องมือจุดสังเกตของมือถือจะยอมรับการป้อนข้อมูลประเภทใดประเภทหนึ่งต่อไปนี้
|
Handจุดสังเกตจะแสดงผลลัพธ์ดังต่อไปนี้
|
ตัวเลือกการกำหนดค่า
งานมีตัวเลือกการกำหนดค่าต่อไปนี้
ชื่อตัวเลือก | คำอธิบาย | ช่วงของค่า | ค่าเริ่มต้น |
---|---|---|---|
running_mode |
ตั้งค่าโหมดการทำงาน มี 3 โหมดดังนี้ IMAGE: โหมดสำหรับการป้อนข้อมูลรูปภาพเดียว วิดีโอ: โหมดสำหรับเฟรมที่ถอดรหัสของวิดีโอ LIVE_Stream: โหมดสำหรับสตรีมแบบสดของข้อมูลอินพุต เช่น จากกล้อง ในโหมดนี้ ต้องมีการเรียกใช้ resultsListener เพื่อตั้งค่า 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 ของกรอบล้อมรอบระหว่างมือในเฟรมปัจจุบันและเฟรมสุดท้าย ในโหมดวิดีโอและโหมดสตรีมของมือจุดสังเกต หากติดตามไม่สำเร็จ จุดสังเกตของมือจะทริกเกอร์การตรวจจับมือ มิฉะนั้นระบบจะข้ามการตรวจจับมือ | 0.0 - 1.0 |
0.5 |
result_callback |
ตั้งค่า Listener ผลลัพธ์ให้รับผลการตรวจจับแบบอะซิงโครนัสเมื่อตัวทำเครื่องหมายสำหรับมืออยู่ในโหมดสตรีมแบบสด
ใช้ได้เมื่อตั้งค่าโหมดทำงานเป็น LIVE_STREAM เท่านั้น |
ไม่มีข้อมูล | ไม่มีข้อมูล |
รูปแบบ
Handจุดสังเกตใช้แพ็กเกจโมเดลที่มีโมเดลแพ็กเกจ 2 แบบ ได้แก่ โมเดลการตรวจจับฝ่ามือและโมเดลการตรวจจับจุดสังเกตของมือ คุณต้องมีแพ็กเกจโมเดลที่มีโมเดลทั้ง 2 รายการนี้เพื่อเรียกใช้งานนี้
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการหาปริมาณ | การ์ดโมเดล | ฉบับ |
---|---|---|---|---|
HandLandmarker (เต็ม) | 192 x 192, 224 x 224 | ทศนิยม 16 | ข้อมูล | ล่าสุด |
แพ็กเกจโมเดลจุดสังเกตแบบเข็มจะตรวจจับการแปลจุดสำคัญของพิกัดแบบใช้สนับมือ 21 รายการภายในบริเวณที่ตรวจพบ โมเดลนี้ได้รับการฝึกจากรูปภาพจริงประมาณ 30, 000 ภาพ รวมถึงโมเดลมือสังเคราะห์ที่แสดงภาพจากพื้นหลังต่างๆ
แพ็กเกจโมเดลเครื่องมือจุดสังเกตด้วยมือประกอบด้วยโมเดลการตรวจจับฝ่ามือและ โมเดลการตรวจจับจุดสังเกตของมือ โมเดลการตรวจจับฝ่ามือจะระบุตำแหน่งมือภายในรูปภาพอินพุต และโมเดลการตรวจจับจุดสังเกตจะระบุจุดสังเกตที่เจาะจงบนรูปภาพมือที่ครอบตัดซึ่งกำหนดโดยโมเดลการตรวจจับฝ่ามือ
เนื่องจากการเรียกใช้โมเดลการตรวจจับฝ่ามือจะใช้เวลานาน เมื่ออยู่ในโหมดการวิ่งวิดีโอหรือสตรีมแบบสด Hand Millenniumer จึงใช้กรอบล้อมรอบที่กำหนดโดยโมเดลจุดสังเกตของมือในเฟรมเดียวเพื่อกำหนดพื้นที่ของมือสำหรับเฟรมต่อๆ ไป จุดแลนด์มาร์กด้วยมือจะทริกเกอร์โมเดลการตรวจจับฝ่ามืออีกครั้งเฉพาะในกรณีที่โมเดลจุดสังเกตของมือไม่ได้ระบุว่ามีมืออยู่หรือไม่ ซึ่งจะลดจำนวนครั้งที่โมเดลการตรวจจับฝ่ามือ ใช้มือจุดสังเกต
การเปรียบเทียบงาน
นี่คือการเปรียบเทียบงานสำหรับทั้งไปป์ไลน์ตามโมเดลที่ฝึกล่วงหน้าไว้ข้างต้น ผลของเวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU
ชื่อโมเดล | เวลาในการตอบสนองของ CPU | เวลาในการตอบสนองของ GPU |
---|---|---|
HandLandmarker (เต็ม) | 17.12 มิลลิวินาที | 12.27 มิลลิวินาที |