हैंड लैंडमार्क की पहचान करने वाली गाइड

अंडा पकड़े हुए एक हाथ. हाथ के आकार को वायरफ़्रेम से मार्क किया गया है, जो पहचाने गए स्ट्रक्चर को दिखाता है

MediaPipe के 'हाथ के लैंडमार्क' टास्क की मदद से, किसी इमेज में हाथ के लैंडमार्क का पता लगाया जा सकता है. इस टास्क का इस्तेमाल करके, हाथों के मुख्य पॉइंट ढूंढे जा सकते हैं और उन पर विज़ुअल इफ़ेक्ट रेंडर किए जा सकते हैं. यह टास्क, मशीन लर्निंग (एमएल) मॉडल के साथ इमेज डेटा पर काम करता है. यह डेटा, स्टैटिक डेटा या लगातार चलने वाली स्ट्रीम के तौर पर हो सकता है. साथ ही, यह इमेज के निर्देशांक में हाथ के लैंडमार्क, दुनिया के निर्देशांक में हाथ के लैंडमार्क, और एक से ज़्यादा हाथों के लिए, बायां/दायां हाथ की जानकारी दिखाता है.

इसे आज़माएं!

शुरू करें

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

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

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

सुविधाएं

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

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

इस टास्क के लिए, कॉन्फ़िगरेशन के ये विकल्प उपलब्ध हैं:

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

IMAGE: एक इमेज इनपुट के लिए मोड.

वीडियो: किसी वीडियो के डिकोड किए गए फ़्रेम के लिए मोड.

LIVE_STREAM: कैमरे से मिले इनपुट डेटा की लाइव स्ट्रीम के लिए मोड. इस मोड में, नतीजे असींक्रोनस तरीके से पाने के लिए, एक listener सेट अप करने के लिए, resultListener को कॉल करना होगा.
{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 जब हाथ का लैंडमार्कर लाइव स्ट्रीम मोड में हो, तो पहचान के नतीजे पाने के लिए रिज़ल्ट लिसनर को असिंक्रोनस तरीके से सेट करता है. यह सिर्फ़ तब लागू होता है, जब रनिंग मोड को LIVE_STREAM पर सेट किया गया हो लागू नहीं लागू नहीं

मॉडल

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

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप मॉडल कार्ड वर्शन
HandLandmarker (पूरा) 192 x 192, 224 x 224 फ़्लोट 16 info हाल ही के अपडेट

हाथ के लैंडमार्क मॉडल बंडल से, हाथ के पहचाने गए हिस्सों में 21 उंगलियों के कोने के निर्देशांकों के मुख्य पॉइंट की जगह की पहचान की जाती है. इस मॉडल को करीब 30 हज़ार असल इमेज के साथ-साथ, अलग-अलग बैकग्राउंड पर रेंडर किए गए कई सिंथेटिक हाथ के मॉडल पर ट्रेन किया गया था.

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

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

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

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

मॉडल का नाम सीपीयू के इंतज़ार का समय जीपीयू में इंतज़ार का समय
HandLandmarker (full) 17.12 मिलीसेकंड 12.27 मिलीसेकंड