คำแนะนำเกี่ยวกับงานการจดจำท่าทางสัมผัส

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

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

ลองเลย

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

เริ่มใช้งานนี้โดยปฏิบัติตามคู่มือการติดตั้งใช้งานข้อใดข้อหนึ่งต่อไปนี้สำหรับ แพลตฟอร์มเป้าหมาย คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำคุณเกี่ยวกับข้อมูลเบื้องต้น ใช้งานงานนี้ โดยใช้โมเดลที่แนะนำ และแสดงตัวอย่างโค้ด ด้วยตัวเลือกการกำหนดค่าที่แนะนำ:

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

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

ฟีเจอร์

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

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

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

ชื่อตัวเลือก คำอธิบาย ช่วงค่า ค่าเริ่มต้น
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"]
  • ภาษาของชื่อที่แสดง: ภาษาที่จะใช้สำหรับชื่อที่แสดงที่ระบุผ่านข้อมูลเมตาของโมเดล TFLite หากมี
  • ผลลัพธ์สูงสุด: จำนวนผลลัพธ์การจัดประเภทที่ได้คะแนนสูงสุดที่จะแสดง ถ้า < 0 ระบบจะแสดงผลลัพธ์ที่ใช้ได้ทั้งหมด
  • เกณฑ์คะแนน: คะแนนที่ต่ำกว่าผลลัพธ์ที่จะถูกปฏิเสธ หากตั้งค่าเป็น 0 ระบบจะแสดงผลผลลัพธ์ที่ใช้ได้ทั้งหมด
  • รายการหมวดหมู่ที่อนุญาต: รายการที่อนุญาตของชื่อหมวดหมู่ หากไม่ว่างเปล่า ระบบจะกรองผลลัพธ์การจัดหมวดหมู่ที่ไม่ตรงกับหมวดหมู่ออก พิเศษร่วมกันกับรายการที่ปฏิเสธ
  • รายการหมวดหมู่ที่ปฏิเสธ: รายการหมวดหมู่ที่ปฏิเสธ หากไม่ว่างเปล่า ผลการจัดประเภทที่มีหมวดหมู่ในชุดนี้จะถูกกรองออก มีสิทธิ์พิเศษร่วมกับรายการที่อนุญาต
    • ภาษาของชื่อที่แสดง: any string
    • ผลลัพธ์สูงสุด: any integer
    • เกณฑ์คะแนน: 0.0-1.0
    • หมวดหมู่ที่อนุญาต: vector of strings
    • รายการหมวดหมู่ที่ปฏิเสธ: vector of strings
    • ภาษาของชื่อที่แสดง: "en"
    • ผลลัพธ์สูงสุด: -1
    • เกณฑ์คะแนน: 0
    • หมวดหมู่ที่อนุญาต: ว่างเปล่า
    • รายการหมวดหมู่ที่ปฏิเสธ: ว่างเปล่า
    custom_gestures_classifier_options ตัวเลือกสำหรับการกำหนดค่าลักษณะการทำงานของตัวแยกประเภทด้วยท่าทางสัมผัสที่กำหนดเอง
  • ภาษาของชื่อที่แสดง: ภาษาที่จะใช้สำหรับชื่อที่แสดงที่ระบุผ่านข้อมูลเมตาของโมเดล TFLite หากมี
  • ผลลัพธ์สูงสุด: จำนวนผลลัพธ์การจัดประเภทที่ได้คะแนนสูงสุดที่จะแสดง ถ้า < 0 ระบบจะแสดงผลลัพธ์ที่ใช้ได้ทั้งหมด
  • เกณฑ์คะแนน: คะแนนที่ต่ำกว่าผลลัพธ์ที่จะถูกปฏิเสธ หากตั้งค่าเป็น 0 ระบบจะแสดงผลผลลัพธ์ที่ใช้ได้ทั้งหมด
  • รายการหมวดหมู่ที่อนุญาต: รายการที่อนุญาตของชื่อหมวดหมู่ หากไม่ว่างเปล่า ระบบจะกรองผลลัพธ์การจัดหมวดหมู่ที่ไม่ตรงกับหมวดหมู่ออก พิเศษร่วมกันกับรายการที่ปฏิเสธ
  • รายการหมวดหมู่ที่ปฏิเสธ: รายการหมวดหมู่ที่ปฏิเสธ หากไม่ว่างเปล่า ผลการจัดประเภทที่มีหมวดหมู่ในชุดนี้จะถูกกรองออก มีสิทธิ์พิเศษร่วมกับรายการที่อนุญาต
    • ภาษาของชื่อที่แสดง: any string
    • ผลลัพธ์สูงสุด: any integer
    • เกณฑ์คะแนน: 0.0-1.0
    • หมวดหมู่ที่อนุญาต: vector of strings
    • รายการหมวดหมู่ที่ปฏิเสธ: vector of strings
    • ภาษาของชื่อที่แสดง: "en"
    • ผลลัพธ์สูงสุด: -1
    • เกณฑ์คะแนน: 0
    • หมวดหมู่ที่อนุญาต: ว่างเปล่า
    • รายการหมวดหมู่ที่ปฏิเสธ: ว่างเปล่า
    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 ซึ่งเป็นไฟล์กลุ่มโมเดล คุณ ควรพิจารณาใช้เครื่องสร้างแบบจำลองเพื่อปรับเปลี่ยนโมเดลที่ให้ไว้สำหรับงานนี้ ก่อนที่จะสร้างขึ้นมาด้วยตัวเอง

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่งโมเดลสำหรับงานนี้ โปรดดู ปรับแต่งโมเดลสำหรับโปรแกรมรู้จำท่าทางสัมผัส