MediaPipe Face Detector टास्क की मदद से, किसी इमेज या वीडियो में चेहरों का पता लगाया जा सकता है. इस टास्क का इस्तेमाल करके, किसी फ़्रेम में चेहरों और चेहरे की विशेषताओं का पता लगाया जा सकता है. इस टास्क के लिए, मशीन लर्निंग (एमएल) मॉडल का इस्तेमाल किया जाता है. यह मॉडल, एक इमेज या लगातार स्ट्रीम की जा रही इमेज के साथ काम करता है. इस टास्क से चेहरे की जगहों के साथ-साथ, चेहरे के इन मुख्य बिंदुओं की जानकारी मिलती है: बाईं आंख, दाईं आंख, नाक का सिरा, मुंह, बाईं आंख का ट्रैगियन, और दाईं आंख का ट्रैगियन.
शुरू करें
अपने टारगेट प्लैटफ़ॉर्म के लिए, लागू करने से जुड़ी इन गाइड में से किसी एक का पालन करके, इस टास्क का इस्तेमाल शुरू करें. प्लैटफ़ॉर्म के हिसाब से बनी इन गाइड में, इस टास्क को लागू करने का बुनियादी तरीका बताया गया है. इसमें सुझाया गया मॉडल और कॉन्फ़िगरेशन के सुझाए गए विकल्पों के साथ कोड का उदाहरण भी शामिल है:
- Android - कोड का उदाहरण - गाइड
- Python - कोड का उदाहरण- गाइड
- वेब - कोड का उदाहरण - गाइड
- iOS - कोड का उदाहरण - गाइड
टास्क की जानकारी
इस सेक्शन में, इस टास्क की क्षमताओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.
सुविधाएं
- इनपुट इमेज प्रोसेसिंग - प्रोसेसिंग में इमेज को घुमाना, उसका साइज़ बदलना, सामान्य करना, और कलर स्पेस बदलना शामिल है.
- स्कोर थ्रेशोल्ड - अनुमानित स्कोर के आधार पर नतीजों को फ़िल्टर करें.
| टास्क के इनपुट | टास्क के आउटपुट |
|---|---|
चेहरे का पता लगाने वाला डिटेक्टर, इनमें से किसी एक डेटा टाइप का इनपुट स्वीकार करता है:
|
चेहरा पहचानने की सुविधा, ये नतीजे दिखाती है:
|
कॉन्फ़िगरेशन के विकल्प
इस टास्क के लिए, ये कॉन्फ़िगरेशन विकल्प उपलब्ध हैं:
| विकल्प का नाम | ब्यौरा | वैल्यू की सीमा | डिफ़ॉल्ट मान |
|---|---|---|---|
running_mode |
यह कुकी, टास्क के रनिंग मोड को सेट करती है. इसके तीन मोड होते हैं: IMAGE: यह मोड, एक इमेज वाले इनपुट के लिए होता है. VIDEO: यह वीडियो के डिकोड किए गए फ़्रेम का मोड है. LIVE_STREAM: यह इनपुट डेटा की लाइव स्ट्रीम का मोड है. जैसे, कैमरे से मिलने वाला डेटा. इस मोड में, एसिंक्रोनस तरीके से नतीजे पाने के लिए, resultListener को कॉल करना ज़रूरी है, ताकि नतीजे पाने के लिए लिसनर सेट अप किया जा सके. |
{IMAGE, VIDEO, LIVE_STREAM} |
IMAGE |
min_detection_confidence |
चेहरे का पता लगाने की सुविधा के लिए, कम से कम कॉन्फ़िडेंस स्कोर. | Float [0,1] |
0.5 |
min_suppression_threshold |
चेहरे का पता लगाने के लिए, नॉन-मैक्सिमम-सप्रेशन थ्रेशोल्ड की कम से कम वैल्यू, ताकि यह माना जा सके कि चेहरे एक-दूसरे पर ओवरलैप हो रहे हैं. | Float [0,1] |
0.3 |
result_callback |
यह फ़ंक्शन, नतीजे सुनने वाले को सेट करता है, ताकि फ़ेस डिटेक्टर के लाइव स्ट्रीम मोड में होने पर, पहचान के नतीजे एसिंक्रोनस तरीके से मिल सकें. इसका इस्तेमाल सिर्फ़ तब किया जा सकता है, जब रनिंग मोड को LIVE_STREAM पर सेट किया गया हो. |
N/A |
Not set |
मॉडल
चेहरे की पहचान करने वाले मॉडल अलग-अलग हो सकते हैं. यह इस बात पर निर्भर करता है कि उन्हें किस तरह के मामलों में इस्तेमाल करना है. जैसे, कम दूरी और ज़्यादा दूरी से पहचान करना. मॉडल आम तौर पर परफ़ॉर्मेंस, सटीकता, रिज़ॉल्यूशन, और संसाधन की ज़रूरी शर्तों के बीच समझौता करते हैं. साथ ही, कुछ मामलों में अतिरिक्त सुविधाएं भी शामिल करते हैं.
इस सेक्शन में दिए गए मॉडल, BlazeFace के वैरिएंट हैं. यह एक हल्का और सटीक फ़ेस डिटेक्टर है. इसे मोबाइल जीपीयू इन्फ़रेंस के लिए ऑप्टिमाइज़ किया गया है. BlazeFace मॉडल, 3D फ़ेशियल कीपॉइंट का अनुमान लगाने, एक्सप्रेशन क्लासिफ़िकेशन, और चेहरे के हिस्से के सेगमेंटेशन जैसे ऐप्लिकेशन के लिए सही हैं. BlazeFace, MobileNetV1/V2 की तरह ही, कम मेमोरी इस्तेमाल करने वाले फ़ीचर एक्सट्रैक्शन नेटवर्क का इस्तेमाल करता है.
BlazeFace (कम दूरी के लिए)
यह एक लाइटवेट मॉडल है. इसका इस्तेमाल, स्मार्टफ़ोन के कैमरे या वेबकैम से ली गई सेल्फ़ी जैसी इमेज में एक या एक से ज़्यादा चेहरों का पता लगाने के लिए किया जाता है. इस मॉडल को, फ़ोन के सामने वाले कैमरे से ली गई कम दूरी की इमेज के लिए ऑप्टिमाइज़ किया गया है. मॉडल आर्किटेक्चर, कस्टम एनकोडर के साथ सिंगल शॉट डिटेक्टर (एसएसडी) कनवोल्यूशनल नेटवर्क तकनीक का इस्तेमाल करता है. ज़्यादा जानकारी के लिए, सिंगल शॉट मल्टीबॉक्स डिटेक्टर पर रिसर्च पेपर देखें.
| मॉडल का नाम | इनपुट का आकार | क्वांटाइज़ेशन टाइप | मॉडल कार्ड | वर्शन |
|---|---|---|---|---|
| BlazeFace (short-range) | 128 x 128 | फ़्लोट 16 | info | सबसे नया |
BlazeFace (फ़ुल-रेंज)
यह एक हल्का मॉडल है. इसका इस्तेमाल, स्मार्टफ़ोन के कैमरे या वेबकैम से ली गई इमेज में एक या उससे ज़्यादा चेहरों का पता लगाने के लिए किया जाता है. इस मॉडल को फ़ुल-रेंज वाली इमेज के लिए ऑप्टिमाइज़ किया गया है. जैसे, फ़ोन के बैक कैमरे से ली गई इमेज. मॉडल आर्किटेक्चर, कस्टम एन्कोडर के साथ CenterNet कनवोल्यूशनल नेटवर्क जैसी तकनीक का इस्तेमाल करता है.
| मॉडल का नाम | इनपुट का आकार | क्वांटाइज़ेशन टाइप | मॉडल कार्ड | वर्शन |
|---|---|---|---|---|
| BlazeFace (full-range) | 128 x 128 | फ़्लोट 16 | info | सबसे नया |
BlazeFace Sparse (फ़ुल-रेंज)
यह BlazeFace मॉडल का लाइट वर्शन है. इसका साइज़, रेगुलर फ़ुल-रेंज BlazeFace मॉडल के मुकाबले करीब 60% छोटा है. इस मॉडल को फ़ुल-रेंज वाली इमेज के लिए ऑप्टिमाइज़ किया गया है. जैसे, फ़ोन के बैक कैमरे से ली गई इमेज. मॉडल आर्किटेक्चर, कस्टम एन्कोडर के साथ CenterNet कन्वलूशनल नेटवर्क जैसी तकनीक का इस्तेमाल करता है.
| मॉडल का नाम | इनपुट का आकार | क्वांटाइज़ेशन टाइप | मॉडल कार्ड | वर्शन |
|---|---|---|---|---|
| BlazeFace Sparse (full-range) | 128 x 128 | फ़्लोट 16 | info | सबसे नया |
टास्क के बेंचमार्क
यहां ऊपर दिए गए प्री-ट्रेन किए गए मॉडल के आधार पर, पूरी पाइपलाइन के लिए टास्क बेंचमार्क दिए गए हैं. लेटेंसी का नतीजा, Pixel 6 पर सीपीयू / जीपीयू का इस्तेमाल करके मिली औसत लेटेंसी है.
| मॉडल का नाम | सीपीयू के लिए इंतज़ार करने का समय | जीपीयू का इंतज़ार का समय |
|---|---|---|
| BlazeFace (कम दूरी के लिए) | 2.94 मि॰से॰ | 7.41 मि॰से॰ |