งานโปรแกรมรู้จำท่าทางสัมผัส MediaPipe ช่วยให้คุณจำท่าทางสัมผัสของมือได้แบบเรียลไทม์ และ แสดงผลท่าทางสัมผัสที่เป็นมือที่จดจำได้ รวมถึงจุดสังเกตของ มือที่ตรวจพบ คุณสามารถใช้งานนี้เพื่อจดจำท่าทางสัมผัสของมือที่เจาะจงจาก ผู้ใช้ และเรียกใช้คุณลักษณะของแอปพลิเคชันที่สอดคล้องกับท่าทางสัมผัสเหล่านั้น
งานนี้ดำเนินการเกี่ยวกับข้อมูลอิมเมจด้วยโมเดลแมชชีนเลิร์นนิง (ML) และยอมรับ ข้อมูลคงที่หรือสตรีมต่อเนื่อง งานจะแสดงจุดสังเกตของมือใน พิกัดรูปภาพ จุดสังเกตของมือในพิกัดโลก ความถนัดของมือ (มือซ้าย/ขวา) และหมวดหมู่ท่าทางสัมผัสของมือหลายมือ
เริ่มต้นใช้งาน
เริ่มใช้งานนี้โดยปฏิบัติตามคู่มือการติดตั้งใช้งานข้อใดข้อหนึ่งต่อไปนี้สำหรับ แพลตฟอร์มเป้าหมาย คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำคุณเกี่ยวกับข้อมูลเบื้องต้น ใช้งานงานนี้ โดยใช้โมเดลที่แนะนำ และแสดงตัวอย่างโค้ด ด้วยตัวเลือกการกำหนดค่าที่แนะนำ:
- Android - ตัวอย่างโค้ด - คำแนะนำ
- Python - ตัวอย่างโค้ด - คำแนะนำ
- เว็บ - ตัวอย่างโค้ด - คำแนะนำ
รายละเอียดงาน
ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และการกำหนดค่า ของงานนี้
ฟีเจอร์
- การประมวลผลรูปภาพอินพุต - การประมวลผลจะรวมถึงการหมุนรูปภาพ การปรับขนาด การแปลงเป็นรูปแบบมาตรฐาน และการแปลงพื้นที่สี
- เกณฑ์คะแนน - กรองผลลัพธ์ตามคะแนนการคาดการณ์
- รายการที่อนุญาตและรายการที่ปฏิเสธของป้ายกำกับ - ระบุหมวดหมู่ท่าทางสัมผัส โมเดลนี้จึงจะรู้จัก
อินพุตงาน | เอาต์พุตของงาน |
---|---|
โปรแกรมจดจำท่าทางสัมผัสจะยอมรับการป้อนข้อมูลประเภทใดประเภทหนึ่งต่อไปนี้
|
โปรแกรมจดจำท่าทางสัมผัสจะแสดงผลลัพธ์ต่อไปนี้
|
ตัวเลือกการกำหนดค่า
งานนี้มีตัวเลือกการกำหนดค่าต่อไปนี้
ชื่อตัวเลือก | คำอธิบาย | ช่วงค่า | ค่าเริ่มต้น | |
---|---|---|---|---|
running_mode |
ตั้งค่าโหมดการทำงานสำหรับงาน มี 3 แบบ
โหมด: รูปภาพ: โหมดสำหรับอินพุตรูปภาพเดียว วิดีโอ: โหมดสำหรับเฟรมที่ถอดรหัสของวิดีโอ LIVE_STREAM: โหมดสำหรับสตรีมแบบสดของอินพุต เช่น ข้อมูลจากกล้อง ในโหมดนี้ resultsListener ต้องเป็น ถูกเรียกให้ตั้งค่า Listener เพื่อรับผลลัพธ์ แบบไม่พร้อมกัน |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
|
num_hands |
จำนวนมือสูงสุดที่ตรวจจับได้ด้วย
GestureRecognizer
|
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 |
|
canned_gestures_classifier_options |
ตัวเลือกสำหรับการกำหนดค่าลักษณะการทำงานของตัวแยกประเภทด้วยท่าทางสัมผัสสำเร็จรูป ท่าทางสัมผัสสำเร็จรูปคือ ["None", "Closed_Fist", "Open_Palm", "Pointing_Up", "Thumb_Down", "Thumb_Up", "Victory", "ILoveYou"] |
|
|
|
custom_gestures_classifier_options |
ตัวเลือกสำหรับการกำหนดค่าลักษณะการทำงานของตัวแยกประเภทด้วยท่าทางสัมผัสที่กำหนดเอง |
|
|
|
result_callback |
ตั้งค่า Listener ผลลัพธ์เพื่อรับผลลัพธ์การจัดประเภท
แบบไม่พร้อมกันเมื่อตัวจดจำท่าทางสัมผัสอยู่ในโหมดสตรีมแบบสด
ใช้ได้เมื่อตั้งค่าโหมดวิ่งเป็น LIVE_STREAM เท่านั้น |
ResultListener |
ไม่มี | ไม่มี |
โมเดล
โปรแกรมจดจำท่าทางสัมผัสใช้ชุดโมเดลที่มีกลุ่มโมเดลที่จัดเตรียมไว้แล้ว 2 ชุด ได้แก่ กลุ่มโมเดลโมเดลจุดสังเกตที่ใช้มือและกลุ่มโมเดลการจัดประเภทท่าทางสัมผัส โมเดลจุดสังเกตตรวจหารูปเรขาคณิตของมือและมือ รวมถึงท่าทางสัมผัส โมเดลการจดจำจะจดจำท่าทางสัมผัสตามรูปเรขาคณิตของมือ
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการกำหนดปริมาณ | การ์ดโมเดล | เวอร์ชัน |
---|---|---|---|---|
HandGestureClassifier | 192 x 192, 224 x 224 | ทศนิยม 16 | ข้อมูล | ล่าสุด |
งานนี้ยังรองรับการดัดแปลงกลุ่มโมเดลโดยใช้เครื่องสร้างโมเดลด้วย หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการใช้เครื่องสร้างโมเดลเพื่อปรับแต่งโมเดลสำหรับงานนี้ ดูหน้าปรับแต่งโมเดลสำหรับการจดจำท่าทางสัมผัส
กลุ่มโมเดลโมเดลจุดสังเกตแบบมือ
กลุ่มโมเดลจุดสังเกตสำหรับมือตรวจพบการแปลคีย์พอยท์ของสนับมือ 21 ข้อ พิกัดภายในเขตมือที่ตรวจพบ โมเดลได้รับการฝึกเมื่อ ภาพจากชีวิตจริงประมาณ 30, 000 ภาพ และมือสังเคราะห์หลายภาพที่แสดงออกมา จากพื้นหลังหลากหลาย ดูคำจำกัดความของจุดสังเกต 21 แห่งด้านล่าง
กลุ่มโมเดลเครื่องมือจุดสังเกตสำหรับมือมีโมเดลตรวจจับฝ่ามือและ โมเดลการตรวจจับจุดสังเกตด้วยมือ โมเดลการตรวจจับฝ่ามือแปลพื้นที่ของ จากภาพที่ป้อนทั้งหมด และรูปแบบการตรวจจับจุดสังเกตของมือจะค้นหา จุดสังเกตในรูปภาพที่มีการครอบตัดซึ่งกำหนดโดยโมเดลการตรวจจับฝ่ามือ
เนื่องจากโมเดลการตรวจจับฝ่ามือใช้เวลามากกว่ามากในโหมดวิดีโอหรือการถ่ายทอดสด โหมดสตรีม เครื่องมือจดจำท่าทางสัมผัสจะใช้กรอบล้อมรอบที่กำหนดโดยมือที่ตรวจพบ จุดสังเกตในเฟรมปัจจุบันเพื่อแปลพื้นที่ของมือในอีก เฟรม ซึ่งจะช่วยลดเวลาที่โปรแกรมจดจำท่าทางสัมผัสเรียกใช้โมเดลการตรวจจับฝ่ามือ เฉพาะเมื่อโมเดลจุดสังเกตของมือระบุความจำเป็นไม่ได้มากพออีกต่อไป จำนวนมือที่ปรากฏ หรือติดตามมือไม่สำเร็จ โมเดลการตรวจจับฝ่ามือ ได้รับคำสั่งให้แปลมือใหม่
กลุ่มโมเดลการจัดประเภทท่าทางสัมผัส
กลุ่มโมเดลการจัดประเภทด้วยท่าทางสัมผัสสามารถจดจำท่าทางสัมผัสของมือทั่วไปเหล่านี้ได้
0 - Unrecognized gesture, label: Unknown
1 - Closed fist, label: Closed_Fist
2 - Open palm, label: Open_Palm
3 - Pointing up, label: Pointing_Up
4 - Thumbs down, label: Thumb_Down
5 - Thumbs up, label: Thumb_Up
6 - Victory, label: Victory
7 - Love, label: ILoveYou
หากโมเดลตรวจจับมือแต่ไม่จำท่าทางสัมผัส ท่าทางสัมผัส ระบบจดจำแสดงผลลัพธ์เป็น "ไม่มี" หากโมเดลตรวจไม่พบมือ เครื่องมือจดจำท่าทางสัมผัสแสดงผลเป็นว่างเปล่า
กลุ่มโมเดลการจัดประเภทท่าทางสัมผัสมีไปป์ไลน์โครงข่ายระบบประสาทเทียมแบบ 2 ขั้นตอน ด้วยโมเดลการฝังท่าทางสัมผัส ตามด้วยโมเดลการจัดประเภทท่าทางสัมผัส ดูรายละเอียดเพิ่มเติมในการ์ดโมเดลการแยกประเภทท่าทางสัมผัส
โมเดลการฝังท่าทางสัมผัสจะเข้ารหัสฟีเจอร์ของรูปภาพลงในเวกเตอร์ฟีเจอร์ และ โมเดลการจัดประเภทคือตัวแยกประเภทท่าทางสัมผัสขนาดเล็กที่ใช้ฟีเจอร์นี้ เวกเตอร์เป็นอินพุต กลุ่มโมเดลการจัดประเภทท่าทางสัมผัสที่ให้ไว้มี ตัวแยกประเภทท่าทางสัมผัสสำเร็จรูป ซึ่งจะตรวจหาท่าทางสัมผัสการใช้มือทั่วไป 7 แบบ ที่ด้านบน คุณสามารถขยายกลุ่มโมเดลให้จดจำท่าทางสัมผัสเพิ่มเติมโดยการฝึก ด้วยตัวแยกประเภท ท่าทางสัมผัสที่คุณกำหนดเอง โปรดดูรายละเอียดเพิ่มเติมใน รูปแบบที่กำหนดเอง
โปรแกรมจดจำท่าทางสัมผัสที่มีทั้งตัวแยกประเภทท่าทางสัมผัสสำเร็จรูปและตัวแยกประเภทท่าทางสัมผัสที่กำหนดเอง ต้องการใช้ท่าทางสัมผัสที่กำหนดเองหากตัวแยกประเภททั้งสองรู้จักท่าทางสัมผัสเดียวกัน หมวดหมู่ของตน หากมีตัวแยกประเภทด้วยท่าทางสัมผัสเพียงตัวเดียวที่จำท่าทางสัมผัสได้ โปรแกรมจดจำท่าทางสัมผัสจะแสดงท่าทางสัมผัสที่รู้จักโดยตรง
การเปรียบเทียบงาน
ต่อไปนี้เป็นการเปรียบเทียบงานสำหรับไปป์ไลน์ทั้งหมดตามข้อมูลข้างต้น โมเดลก่อนการฝึก ผลเวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU
ชื่อแบบจำลอง | เวลาในการตอบสนองของ CPU | เวลาในการตอบสนองของ GPU |
---|---|---|
GestureRecognizer | 16.76 มิลลิวินาที | 20.87 มิลลิวินาที |
โมเดลที่กำหนดเอง
ถ้าคุณต้องการปรับปรุงหรือเปลี่ยนแปลงความสามารถของโมเดลที่ให้ไว้ใน
คุณสามารถใช้เครื่องสร้างโมเดลเพื่อแก้ไขโมเดลที่มีอยู่ รูปแบบที่กำหนดเองที่ใช้
ที่มี MediaPipe ต้องอยู่ในรูปแบบ .task
ซึ่งเป็นไฟล์กลุ่มโมเดล คุณ
ควรพิจารณาใช้เครื่องสร้างแบบจำลองเพื่อปรับเปลี่ยนโมเดลที่ให้ไว้สำหรับงานนี้
ก่อนที่จะสร้างขึ้นมาด้วยตัวเอง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่งโมเดลสำหรับงานนี้ โปรดดู ปรับแต่งโมเดลสำหรับโปรแกรมรู้จำท่าทางสัมผัส