जेस्चर की पहचान करने के लिए टास्क गाइड

MediaPipe के जेस्चर आइडेंटिफ़ायर टास्क से आपको रीयल टाइम में, हाथ के जेस्चर की पहचान करने में मदद मिलती है. इसके लैंडमार्क के साथ ही, हाथ के जेस्चर से जुड़े नतीजे दिखाता है हाथों की पहचान हुई है. इस टास्क का इस्तेमाल, हाथ के जेस्चर को पहचानने के लिए किया जा सकता है. उपयोगकर्ता, और उन जेस्चर से संबंधित ऐप्लिकेशन सुविधाओं को शुरू कर सकते हैं.

यह टास्क, मशीन लर्निंग (एमएल) मॉडल की मदद से इमेज के डेटा पर काम करता है और स्वीकार करता है का इस्तेमाल किया जा सकता है. टास्क, हैंड लैंडमार्क दिखाता है इमेज के निर्देशांक, दुनिया के निर्देशांक में हाथ के लैंडमार्क, हाथों का इस्तेमाल (बाएं/दाएं हाथ) और हाथ के जेस्चर की कई कैटगरी.

इसे आज़माएं!

शुरू करें

इस टास्क का इस्तेमाल शुरू करने के लिए, यहां दिए गए लागू करने के दिशा-निर्देशों में से किसी एक को अपनाएं. टारगेट प्लैटफ़ॉर्म पर लागू होता है. प्लैटफ़ॉर्म के हिसाब से, इन गाइड से आपको बुनियादी चीज़ों के बारे में जानकारी मिलेगी किसी सुझाए गए मॉडल का इस्तेमाल करके इस टास्क को लागू करना और कोड के उदाहरण देना सुझाए गए कॉन्फ़िगरेशन विकल्पों के साथ:

टास्क की जानकारी

इस सेक्शन में सुविधाओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के बारे में बताया गया है इस टास्क के विकल्प देखें.

सुविधाएं

  • इनपुट इमेज प्रोसेसिंग - प्रोसेसिंग में इमेज रोटेशन, साइज़ बदलना, नॉर्मलाइज़ेशन, और कलर स्पेस कन्वर्ज़न शामिल हैं.
  • स्कोर थ्रेशोल्ड - अनुमान के स्कोर के आधार पर नतीजों को फ़िल्टर करें.
  • अनुमति वाली सूची और ब्लॉकलिस्ट को लेबल करना - हाथ के जेस्चर की कैटगरी तय करें मॉडल से पहचाना जा सकता है.
टास्क के इनपुट टास्क के आउटपुट
जेस्चर आइडेंटिफ़ायर, इनमें से किसी एक डेटा टाइप के इनपुट को स्वीकार करता है:
  • फ़ोटो
  • डिकोड किए गए वीडियो फ़्रेम
  • लाइव वीडियो फ़ीड
जेस्चर आइडेंटिफ़ायर से ये नतीजे मिलते हैं:
  • हाथ के जेस्चर की कैटगरी
  • पता लगाए गए हाथ का काम
  • इमेज के निर्देशांकों में पहचाने गए हाथ के लैंडमार्क
  • दुनिया के निर्देशांकों में पहचाने गए हाथ के लैंडमार्क

कॉन्फ़िगरेशन के विकल्प

इस टास्क में कॉन्फ़िगरेशन के ये विकल्प हैं:

विकल्प का नाम ब्यौरा मान की सीमा डिफ़ॉल्ट मान
running_mode टास्क के लिए रनिंग मोड सेट करता है. तीन मोड:

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इमेज: सिंगल इमेज इनपुट का मोड.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है वीडियो: किसी वीडियो के डिकोड किए गए फ़्रेम के लिए मोड.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है LIVE_STREAM: इनपुट की लाइवस्ट्रीम करने का मोड जैसी निजी जानकारी को किसी भी समय रिकॉर्ड कर सकते हैं. इस मोड में, resultListener होना चाहिए नतीजे पाने के लिए, लिसनर सेट अप करने के लिए कॉल किया गया एसिंक्रोनस रूप से.
{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 पर सेट किया जाता है, तो सभी उपलब्ध नतीजे दिखाए जाएंगे.
  • कैटगरी की अनुमति वाली सूची: अनुमति वाली कैटगरी के नामों की अनुमति. खाली न होने पर, क्लासिफ़िकेशन के ऐसे नतीजे जिनकी कैटगरी इस सेट में नहीं है उन्हें फ़िल्टर करके बाहर कर दिया जाएगा. ब्लॉकलिस्ट के साथ म्यूचुअली एक्सक्लूसिव.
  • कैटगरी की ब्लॉकलिस्ट: कैटगरी के नामों की ब्लॉकलिस्ट. खाली न होने पर, क्लासिफ़िकेशन के ऐसे नतीजे जिनकी कैटगरी इस सेट में है उन्हें फ़िल्टर करके बाहर कर दिया जाएगा. जिन लोगों या संगठनों को अनुमति मिली है उनकी सूची में इन्हें एक-दूसरे के लिए ही शामिल किया जा सकता है.
    • डिसप्ले नेम की स्थान-भाषा: any string
    • ज़्यादा से ज़्यादा नतीजे: any integer
    • स्कोर थ्रेशोल्ड: 0.0-1.0
    • अनुमति वाली कैटगरी: vector of strings
    • कैटगरी की ब्लॉकलिस्ट: vector of strings
    • डिसप्ले नेम की स्थान-भाषा: "en"
    • ज़्यादा से ज़्यादा नतीजे: -1
    • स्कोर थ्रेशोल्ड: 0
    • अनुमति वाली कैटगरी: खाली है
    • कैटगरी की ब्लॉकलिस्ट: खाली है
    custom_gestures_classifier_options कस्टम जेस्चर की कैटगरी तय करने वाले व्यवहार को कॉन्फ़िगर करने के विकल्प.
  • डिसप्ले नेम की स्थान-भाषा: अगर कोई स्थान TFLite मॉडल मेटाडेटा के ज़रिए दिया गया है, तो डिसप्ले नेम के लिए इस्तेमाल की जाने वाली स्थान-भाषा.
  • सबसे ज़्यादा नतीजे: दिए जाने वाले, सबसे ज़्यादा स्कोर वाले क्लासिफ़िकेशन नतीजे की ज़्यादा से ज़्यादा संख्या. यदि < कोई समस्या नहीं है, तो सभी उपलब्ध नतीजे दिखाए जाएंगे.
  • स्कोर थ्रेशोल्ड: वह स्कोर जिसके नीचे वाले नतीजे अस्वीकार कर दिए जाते हैं. अगर इस नीति को 0 पर सेट किया जाता है, तो सभी उपलब्ध नतीजे दिखाए जाएंगे.
  • कैटगरी की अनुमति वाली सूची: अनुमति वाली कैटगरी के नामों की अनुमति. खाली न होने पर, क्लासिफ़िकेशन के ऐसे नतीजे जिनकी कैटगरी इस सेट में नहीं है उन्हें फ़िल्टर करके बाहर कर दिया जाएगा. ब्लॉकलिस्ट के साथ म्यूचुअली एक्सक्लूसिव.
  • कैटगरी की ब्लॉकलिस्ट: कैटगरी के नामों की ब्लॉकलिस्ट. खाली न होने पर, क्लासिफ़िकेशन के ऐसे नतीजे जिनकी कैटगरी इस सेट में है उन्हें फ़िल्टर करके बाहर कर दिया जाएगा. जिन लोगों या संगठनों को अनुमति मिली है उनकी सूची में इन्हें एक-दूसरे के लिए ही शामिल किया जा सकता है.
    • डिसप्ले नेम की स्थान-भाषा: any string
    • ज़्यादा से ज़्यादा नतीजे: any integer
    • स्कोर थ्रेशोल्ड: 0.0-1.0
    • अनुमति वाली कैटगरी: vector of strings
    • कैटगरी की ब्लॉकलिस्ट: vector of strings
    • डिसप्ले नेम की स्थान-भाषा: "en"
    • ज़्यादा से ज़्यादा नतीजे: -1
    • स्कोर थ्रेशोल्ड: 0
    • अनुमति वाली कैटगरी: खाली है
    • कैटगरी की ब्लॉकलिस्ट: खाली है
    result_callback यह नीति, क्लासिफ़िकेशन के नतीजे पाने के लिए, रिज़ल्ट लिसनर को सेट करती है जब जेस्चर आइडेंटिफ़ायर लाइव स्ट्रीम मोड में हो, तब यह एसिंक्रोनस रूप से काम करता है. इसका इस्तेमाल सिर्फ़ तब किया जा सकता है, जब रनिंग मोड को LIVE_STREAM पर सेट किया गया हो ResultListener लागू नहीं लागू नहीं

    मॉडल

    जेस्चर आइडेंटिफ़ायर एक ऐसे मॉडल बंडल का इस्तेमाल करता है जिसमें पहले से पैक किए गए दो मॉडल बंडल होते हैं: हैंड लैंडमार्क मॉडल बंडल और जेस्चर क्लासिफ़िकेशन मॉडल बंडल. कॉन्टेंट बनाने लैंडमार्क मॉडल, हाथ और हाथ की ज्यामिति की मौजूदगी का पता लगाता है. साथ ही, पहचान करने वाला मॉडल, हाथ की ज्यामिति के आधार पर जेस्चर की पहचान करता है.

    मॉडल का नाम आकार इनपुट करें क्वांटाइज़ेशन का टाइप मॉडल कार्ड वर्शन
    HandGestureClassifier 192 x 192, 224 x 224 फ़्लोट 16 जानकारी नया

    यह टास्क, Model Maker का इस्तेमाल करके मॉडल बंडल में बदलाव करने की सुविधा भी देता है. इस कार्य के लिए मॉडल कस्टमाइज़ करने के लिए मॉडल मेकर का उपयोग करने के बारे में अधिक जानकारी के लिए, जेस्चर के लिए आइडेंटिफ़ायर के मॉडल को पसंद के मुताबिक बनाएं पेज देखें.

    हैंड लैंडमार्क मॉडल बंडल

    हैंड लैंडमार्क मॉडल बंडल 21 हैंड-नॉकल के कीपॉइंट स्थानीयाइज़ेशन का पता लगाता है पता लगाए गए हाथ के क्षेत्रों में निर्देशांक. इस मॉडल को ट्रेनिंग दी गई असल दुनिया की करीब 30 हज़ार इमेज और एआई की मदद से बनाए गए हाथ से बने कई हाथ अलग-अलग बैकग्राउंड पर लगाए गए मॉडल. नीचे 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
    

    अगर मॉडल को हाथों का पता चलता है, लेकिन वह जेस्चर की पहचान नहीं कर पाता, तो हाथ के जेस्चर पहचानकर्ता "कोई नहीं" का नतीजा दिखाता है. अगर मॉडल को हाथों का पता नहीं चलता, तो जेस्चर आइडेंटिफ़ायर खाली है.

    जेस्चर क्लासिफ़िकेशन मॉडल के बंडल में, टू स्टेप न्यूरल नेटवर्क पाइपलाइन है इसमें जेस्चर एम्बेड करने वाला मॉडल और उसके बाद जेस्चर क्लासिफ़िकेशन मॉडल है. जेस्चर की कैटगरी तय करने वाला मॉडल कार्ड में ज़्यादा जानकारी देखें.

    जेस्चर एम्बेड करने वाला मॉडल, इमेज की सुविधाओं को फ़ीचर वेक्टर में एन्कोड करता है और क्लासिफ़िकेशन मॉडल, एक लाइटवेट जेस्चर क्लासिफ़ायर है, जो इस सुविधा को वेक्टर का इस्तेमाल इनपुट के तौर पर करना. दिए गए जेस्चर क्लासिफ़िकेशन मॉडल बंडल में पहले से तैयार जेस्चर क्लासिफ़ायर, जो पेश किए गए 7 सामान्य हाथ के जेस्चर का पता लगाता है पढ़ें. ट्रेनिंग की मदद से हाथ के ज़्यादा जेस्चर को पहचानने के लिए, मॉडल बंडल को बढ़ाया जा सकता है की सुविधा देता है. ज़्यादा जानकारी यहां देखें कस्टम मॉडल सेक्शन.

    पहले से तैयार जेस्चर क्लासिफ़ायर और कस्टम जेस्चर क्लासिफ़ायर, दोनों के साथ जेस्चर आइडेंटिफ़ायर अगर क्लासिफ़ायर, कस्टम जेस्चर (हाव-भाव) को पसंद करते हैं, तो उनकी कैटगरी तय कर सकता है. अगर सिर्फ़ एक जेस्चर क्लासिफ़ायर जेस्चर को पहचानता है, जेस्चर आइडेंटिफ़ायर, पहचाने गए जेस्चर को सीधे आउटपुट करता है.

    टास्क के मानदंड

    यहां ऊपर दिए गए विकल्पों के आधार पर, पूरी पाइपलाइन के लिए टास्क के मानदंड दिए गए हैं पहले से ट्रेन किए गए मॉडल. इंतज़ार का समय, Pixel 6 पर इस्तेमाल करने में लगने वाले औसत समय का अनुमान है सीपीयू / जीपीयू.

    मॉडल का नाम सीपीयू के लिए इंतज़ार का समय जीपीयू के लिए इंतज़ार का समय
    GestureRecognizer 16.76 मिलीसेकंड 20.87 मिलीसेकंड

    कस्टम मॉडल

    अगर आपको इसमें दिए गए मॉडल की क्षमताओं में सुधार करना है या उनमें बदलाव करना है टास्क के लिए, आप मौजूदा मॉडल को संशोधित करने के लिए मॉडल मेकर का उपयोग कर सकते हैं. इस्तेमाल किए गए कस्टम मॉडल with MediaPipe के साथ .task फ़ॉर्मैट में होना चाहिए. यह मॉडल बंडल फ़ाइल है. आपने लोगों तक पहुंचाया मुफ़्त में को इस कार्य के लिए प्रदान किए गए मॉडल को संशोधित करने के लिए Model Maker का उपयोग करना चाहिए इससे पहले कि आपका अपना लक्ष्य हो.

    इस टास्क के लिए मॉडल को पसंद के मुताबिक बनाने के बारे में ज़्यादा जानकारी के लिए, देखें जेस्चर आइडेंटिफ़ायर के लिए मॉडल को पसंद के मुताबिक बनाना.