ऑब्जेक्ट का पता लगाने के लिए टास्क गाइड

MediaPipe Object Detector टास्क से, आपको इमेज या वीडियो में ऑब्जेक्ट की कई क्लास की मौजूदगी और जगह का पता लगाने में मदद मिलती है. उदाहरण के लिए, ऑब्जेक्ट का पता लगाने वाला टूल, इमेज में मौजूद कुत्तों की पहचान कर सकता है. यह टास्क, मशीन लर्निंग (एमएल) मॉडल वाली इमेज डेटा पर काम करता है. इसमें इनपुट के तौर पर स्टैटिक डेटा या लगातार वीडियो स्ट्रीम को स्वीकार किया जाता है. साथ ही, पहचान के नतीजों की सूची दी जाती है. जांच के हर नतीजे में, एक ऐसी चीज़ दिखती है जो इमेज या वीडियो में दिखती है.

इसे आज़माएं!

शुरू करें

आप जिस प्लैटफ़ॉर्म पर काम कर रहे हैं उसके लिए, इनमें से कोई एक गाइड फ़ॉलो करके इस टास्क का इस्तेमाल शुरू करें:

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

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

इस सेक्शन में इस टास्क की क्षमताओं, इनपुट, और आउटपुट के बारे में बताया गया है.

सुविधाएं

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

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

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

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

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

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

LIVE_STREAM: इनपुट डेटा की लाइव स्ट्रीम का मोड, जैसे कि कैमरे से स्ट्रीम किया जाने वाला मोड. इस मोड में, रिज़ल्ट पहचानकर्ता को लिसनर को सेट अप करने के लिए कॉल किया जाना चाहिए, ताकि वह एसिंक्रोनस तरीके से नतीजे पा सके.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
display_names अगर यह उपलब्ध हो, तो टास्क के मॉडल के मेटाडेटा में दिए गए डिसप्ले नेम के लिए, लेबल की भाषा सेट करता है. अंग्रेज़ी के लिए डिफ़ॉल्ट रूप से en है. TensorFlow Lite Metadata Writer API का इस्तेमाल करके, कस्टम मॉडल के मेटाडेटा में स्थानीय भाषा के हिसाब से लेबल जोड़े जा सकते हैं स्थान-भाषा का कोड en
max_results वापस लौटाने के लिए, टॉप-स्कोर किए गए पहचान के नतीजों की ज़्यादा से ज़्यादा वैकल्पिक संख्या सेट करता है. कोई भी पॉज़िटिव नंबर -1 (सभी नतीजे दिखाए जाते हैं)
score_threshold अनुमान के स्कोर का थ्रेशोल्ड सेट करता है, जो मॉडल मेटाडेटा (अगर कोई है) में दिए गए स्कोर को बदलता है. इस वैल्यू से कम के नतीजे अस्वीकार कर दिए गए हैं. कोई भी फ़्लोट सेट नहीं किया गया है
category_allowlist अनुमति वाली कैटगरी के नामों की वैकल्पिक सूची सेट करता है. अगर यह खाली नहीं है, तो जिन कैटगरी का नाम इस सेट में नहीं होगा उन्हें फ़िल्टर कर दिया जाएगा. श्रेणी के डुप्लीकेट या अज्ञात नामों पर ध्यान नहीं दिया जाता है. यह विकल्प category_denylist के साथ म्यूचुअली एक्सक्लूसिव है और दोनों नतीजों का इस्तेमाल करने में गड़बड़ी है. कोई भी स्ट्रिंग सेट नहीं किया गया है
category_denylist उन कैटगरी के नामों की वैकल्पिक सूची सेट करता है जिनकी अनुमति नहीं है. अगर यह खाली नहीं है, तो पहचान के जिन नतीजों की कैटगरी का नाम इस सेट में होगा उन्हें फ़िल्टर करके बाहर कर दिया जाएगा. श्रेणी के डुप्लीकेट या अज्ञात नामों पर ध्यान नहीं दिया जाता है. यह विकल्प category_allowlist के साथ म्यूचुअली एक्सक्लूसिव है और इसका इस्तेमाल करने पर दोनों में गड़बड़ी होगी. कोई भी स्ट्रिंग सेट नहीं किया गया है

मॉडल

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

AutomatedDet-Lite0 मॉडल, 320x320 इनपुट साइज़ और BiFPN सुविधा नेटवर्क के साथ, capableNet-Lite0 बैकबोन का इस्तेमाल करता है. इस मॉडल को COCO डेटासेट की मदद से ट्रेनिंग दी गई. यह ऑब्जेक्ट का पता लगाने वाला ऐसा डेटासेट है जो बड़े स्तर पर ऑब्जेक्ट का पता लगाता है. इसमें 15 लाख ऑब्जेक्ट इंस्टेंस और 80 ऑब्जेक्ट लेबल शामिल हैं. इस्तेमाल किए जा सकने वाले लेबल की पूरी सूची देखें. efficiencyDet-Lite0, int8, फ्लोट16 या फ़्लोट 32 के रूप में उपलब्ध है. इस मॉडल का सुझाव इसलिए दिया जाता है, क्योंकि यह इंतज़ार के समय और सटीक होने के बीच संतुलन बनाता है. यह सटीक और हल्का है, इसलिए कई तरह के कामों में इस्तेमाल किया जा सकता है.

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप वर्शन
efficiencyDet-Lite0 (int8) 320 x 320 int8 नए
PerformanceDet-Lite0 (फ़्लोट 16) 320 x 320 फ़्लोट 16 नए
PerformanceDet-Lite0 (फ़्लोट 32) 320 x 320 कोई नहीं (फ़्लोट32) नए

efficiencyDet-Lite2 मॉडल

efficiencyDet-Lite2 मॉडल में 448x448 इनपुट साइज़ और BiFPN सुविधा नेटवर्क के साथ, capableNet-Lite2 बैकबोन का इस्तेमाल किया जाता है. इस मॉडल को COCO डेटासेट की मदद से ट्रेनिंग दी गई. यह ऑब्जेक्ट का पता लगाने वाला ऐसा डेटासेट है जो बड़े स्तर पर ऑब्जेक्ट का पता लगाता है. इसमें 15 लाख ऑब्जेक्ट इंस्टेंस और 80 ऑब्जेक्ट लेबल शामिल हैं. इस्तेमाल किए जा सकने वाले लेबल की पूरी सूची देखें. efficiencyDet-Lite2, int8, फ्लोट16 या फ़्लोट32 मॉडल के रूप में उपलब्ध है. आम तौर पर, यह मॉडल ShoppingDet-Lite0 से ज़्यादा सटीक होता है, लेकिन यह धीमा भी होता है और इसमें ज़्यादा मेमोरी की ज़रूरत भी होती है. यह मॉडल उन मामलों में इस्तेमाल के लिए सही है जहां रफ़्तार और साइज़ की जगह सटीक जानकारी को ज़्यादा प्राथमिकता दी जाती है.

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप वर्शन
PerformanceDet-Lite2 (int8) 448 x 448 int8 नए
PerformanceDet-Lite2 (फ़्लोट 16) 448 x 448 फ़्लोट 16 नए
AccessibilityDet-Lite2 (फ़्लोट 32) 448 x 448 कोई नहीं (फ़्लोट32) नए

SSD MobileNetV2 मॉडल

SSD MobileNetV2 मॉडल, 256x256 इनपुट साइज़ और एसएसडी सुविधा नेटवर्क के साथ, MobileNetV2 बैकबोन का इस्तेमाल करता है. इस मॉडल को COCO डेटासेट की मदद से ट्रेनिंग दी गई. यह ऑब्जेक्ट का पता लगाने वाला ऐसा डेटासेट है जो बड़े स्तर पर ऑब्जेक्ट का पता लगाता है. इसमें 15 लाख ऑब्जेक्ट इंस्टेंस और 80 ऑब्जेक्ट लेबल शामिल हैं. इस्तेमाल किए जा सकने वाले लेबल की पूरी सूची देखें. एसएसडी MobileNetV2, int8 और फ़्लोट 32 मॉडल के तौर पर उपलब्ध है. यह मॉडल enablingDet-Lite0 से ज़्यादा तेज़ और हल्का है. हालांकि, आम तौर पर यह मॉडल कम सटीक होता है. यह मॉडल, इस्तेमाल के ऐसे मामलों के लिए सही है जिनमें तेज़ और कम वज़न वाले मॉडल की ज़रूरत होती है. हालांकि, इस मॉडल में कुछ सटीक नतीजे नहीं मिलते.

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप वर्शन
SSDMobileNet-V2 (int8) 256 x 256 int8 नए
SSDMobileNet-V2 (फ़्लोट 32) 256 x 256 कोई नहीं (फ़्लोट32) नए

मॉडल की ज़रूरी शर्तें और मेटाडेटा

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

डिज़ाइन से जुड़ी ज़रूरी शर्तें

इनपुट आकार ब्यौरा
इनपुट इमेज फ़्लोट 32 टेंसर ऑफ़ शेप[1, ऊंचाई, चौड़ाई, 3] सामान्य इनपुट इमेज.
आउटपुट आकार ब्यौरा
detection_boxes फ़्लोट 32 के आकार का टेंसर [1, num_boxes, 4] पता लगाए गए हर ऑब्जेक्ट के बॉक्स की जगह.
detection_classes फ़्लोट 32 आकार का टेन्सर [1, num_boxes] पता लगाए गए हर ऑब्जेक्ट के लिए क्लास के नामों का इंडेक्स.
detection_scores आकार का फ्लोट32 टेंसर [1, num_boxes] पता लगाए गए हर ऑब्जेक्ट के लिए अनुमान का स्कोर.
num_boxes 1 का फ़्लोट 32 टेंसर पता लगाए गए बॉक्स की संख्या.

मेटाडेटा से जुड़ी ज़रूरी शर्तें

पैरामीटर ब्यौरा ब्यौरा
input_norm_mean इनपुट टेंसर नॉर्मलाइज़ेशन में इस्तेमाल किया गया मीन वैल्यू. सामान्य इनपुट इमेज.
input_norm_std इनपुट टेंसर नॉर्मलाइज़ेशन में इस्तेमाल किया गया फ़ील्ड स्टैंडर्ड. पता लगाए गए हर ऑब्जेक्ट के बॉक्स की जगह.
label_file_paths टेन्सर लेबल वाली कैटगरी की फ़ाइलों के पाथ. अगर मॉडल में कोई लेबल फ़ाइल नहीं है, तो एक खाली सूची पास करें. पता लगाए गए हर ऑब्जेक्ट के लिए क्लास के नामों का इंडेक्स.
score_calibration_md क्लासिफ़िकेशन टेंसर में स्कोर कैलिब्रेशन की कार्रवाई के बारे में जानकारी. अगर मॉडल, स्कोर
कैलिब्रेशन का इस्तेमाल नहीं करता है, तो इस पैरामीटर की ज़रूरत नहीं है.
पता लगाए गए हर ऑब्जेक्ट के लिए अनुमान का स्कोर.
num_boxes 1 का फ़्लोट 32 टेंसर पता लगाए गए बॉक्स की संख्या.

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

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

मॉडल का नाम सीपीयू (CPU) के इस्तेमाल में होने वाला समय जीपीयू इंतज़ार का समय
efficiencyDet-Lite0 फ़्लोट32 मॉडल 61.30 मि॰से॰ 27.83 मि॰से॰
efficiencyDet-Lite0 फ़्लोट16 मॉडल 53.97 मि॰से॰ 27.97 मि॰से॰
efficiencyDet-Lite0 int8 मॉडल 29.31 मि॰से॰ -
efficiencyDet-Lite2 फ़्लोट32 मॉडल 197.98 मि॰से॰ 41.15 मि॰से॰
efficiencyDet-Lite2 फ़्लोट16 मॉडल 198.77 मि॰से॰ 47.31 मि॰से॰
efficiencyDet-Lite2 int8 मॉडल 70.91 मि॰से॰ -
एसएसडी MobileNetV2 फ़्लोट32 मॉडल 36.30 मिलीसेकंड 24.01 मि॰से॰
एसएसडी MobileNetV2 फ़्लोट16 मॉडल 37.35 मि॰से॰ 28.16 मि॰से॰