ObjectDetector

पब्लिक फ़ाइनल क्लास ObjectDetector

इमेज पर ऑब्जेक्ट की पहचान करता है.

एपीआई को TFLite मॉडल मेटाडेटा वाले TFLite मॉडल की ज़रूरत होती है.

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

  • इमेज टेंसर (kTfLiteUInt8/kTfLiteFloat32) इनपुट करें
    • [batch x height x width x channels] साइज़ का इमेज इनपुट.
    • बैच अनुमान काम नहीं करता (batch का 1 होना ज़रूरी है).
    • सिर्फ़ आरजीबी इनपुट काम करते हैं (channels को 3 होना ज़रूरी है).
    • अगर टाइप kTfLiteFloat32 है, तो इनपुट को नॉर्मलाइज़ेशन के लिए मेटाडेटा में सामान्याइज़ेशन विकल्प को अटैच करना ज़रूरी है.
  • आउटपुट टेंसर, DetectionPostProcess ऑप के चार आउटपुट होने चाहिए, जैसे कि:
    • लोकेशन टेंसर (kTfLiteFloat32):
      • [1 x num_results x 4] साइज़ का टेन्सर, इंटरनल अरे, जो [टॉप, लेफ़्ट, राइट, बॉटम] फ़ॉर्म में बाउंडिंग बॉक्स को दिखाता है.
      • BoundingBoxProperties को मेटाडेटा के साथ अटैच करना ज़रूरी है और इसमें type=BOUNDARIES और coordinate_type=RATIO की जानकारी होनी चाहिए.
    • क्लास का टेंसर (kTfLiteFloat32):
      • [1 x num_results] का टेंसर, हर वैल्यू, क्लास के इंटीजर इंडेक्स को दिखाती है.
      • अगर लेबल मैप को मेटाडेटा से TENSOR_VALUE_LABELS से जुड़ी फ़ाइलों के तौर पर अटैच किया जाता है, तो टेन्सर वैल्यू को लेबल में बदलने के लिए उनका इस्तेमाल किया जाता है.
    • स्कोर टेंसर (kTfLiteFloat32):
      • [1 x num_results] साइज़ का टेन्सर, हर वैल्यू, पता लगाए गए ऑब्जेक्ट का स्कोर दिखाती है.
    • डिटेक्शन टेंसर की संख्या (kTfLiteFloat32):
      • [1] साइज़ के Tenor के रूप में पूर्णांक num_results.

ऐसे मॉडल का उदाहरण TensorFlow Hub पर देखा जा सकता है.

नेस्ट की गई क्लास

क्लास ObjectDetector.ObjectDetectorOptions ObjectDetector सेट अप करने के विकल्प. 

सार्वजनिक तरीके

स्टैटिक ObjectDetector
createFromBuffer(कॉन्टेक्स्ट कॉन्टेक्स्ट, ByteBuffer ModelBuffer)
मॉडल बफ़र और डिफ़ॉल्ट ObjectDetector.ObjectDetectorOptions से एक ObjectDetector इंस्टेंस बनाता है.
स्टैटिक ObjectDetector
createFromFile(कॉन्टेक्स्ट कॉन्टेक्स्ट, स्ट्रिंग ModelPath)
किसी मॉडल फ़ाइल और डिफ़ॉल्ट ObjectDetector.ObjectDetectorOptions से एक ObjectDetector इंस्टेंस बनाता है.
स्टैटिक ObjectDetector
createFromFile(कॉन्टेक्स्ट कॉन्टेक्स्ट, फ़ाइल ModelFile)
किसी मॉडल फ़ाइल और डिफ़ॉल्ट ObjectDetector.ObjectDetectorOptions से एक ObjectDetector इंस्टेंस बनाता है.
स्टैटिक ObjectDetector
createFromOptions(कॉन्टेक्स्ट कॉन्टेक्स्ट, ObjectDetector.ObjectDetectorOptions दायरे में आने वाले प्रॉपर्टी)
ObjectDetector.ObjectDetectorOptions से ObjectDetector इंस्टेंस बनाता है.
ObjectDetectorResult
detect(MPImage इमेज)
डिफ़ॉल्ट इमेज प्रोसेसिंग के विकल्पों के साथ दी गई एक इमेज पर ऑब्जेक्ट की पहचान करता है, जैसे कि
ObjectDetectorResult
detect(MPImage इमेज, ImageProcessingOptions imageprocessingOptions)
दी गई एक इमेज पर ही ऑब्जेक्ट की पहचान करता है.
void
detectAsync(MPImage इमेज, ImageProcessingOptions imageprocessingOptions, लंबे टाइमस्टैंप)
यह सुविधा, ऑब्जेक्ट की पहचान करने के लिए इमेज से लाइव डेटा भेजती है और ObjectDetector.ObjectDetectorOptions में दिए गए OutputHandler.ResultListener की मदद से नतीजे उपलब्ध होंगे.
void
detectAsync(MPImage इमेज, लंबा टाइमस्टैंप)
यह सुविधा, डिफ़ॉल्ट इमेज प्रोसेसिंग के विकल्पों की मदद से ऑब्जेक्ट का पता लगाने के लिए, लाइव इमेज डेटा भेजती है, जैसे कि
ObjectDetectorResult
detectForVideo(MPImage इमेज, ImageProcessingOptions imageProcessOptions, लंबे टाइमस्टैंप)
यह सुविधा, दिए गए वीडियो फ़्रेम पर ऑब्जेक्ट की पहचान करती है.
ObjectDetectorResult
detectForVideo(MPImage इमेज, लंबा टाइमस्टैंप)
इमेज प्रोसेसिंग के डिफ़ॉल्ट विकल्पों के साथ दिए गए वीडियो फ़्रेम पर, ऑब्जेक्ट की पहचान करता है

इनहेरिट किए गए तरीके

सार्वजनिक तरीके

सार्वजनिक स्टैटिक ObjectDetector createFromBuffer (कॉन्टेक्स्ट कॉन्टेक्स्ट, ByteBuffer ModelBuffer)

मॉडल बफ़र और डिफ़ॉल्ट ObjectDetector.ObjectDetectorOptions से एक ObjectDetector इंस्टेंस बनाता है.

पैरामीटर
संदर्भ Android ERROR(/Context).
modelBuffer पहचान मॉडल का डायरेक्ट ByteBuffer या ERROR(/MappedByteBuffer).
थ्रो
अगर ObjectDetector बनाते समय कोई गड़बड़ी होती है.

सार्वजनिक स्टैटिक ObjectDetector createFromFile (कॉन्टेक्स्ट कॉन्टेक्स्ट, स्ट्रिंग ModelPath)

किसी मॉडल फ़ाइल और डिफ़ॉल्ट ObjectDetector.ObjectDetectorOptions से एक ObjectDetector इंस्टेंस बनाता है.

पैरामीटर
संदर्भ Android ERROR(/Context).
modelPath का पाथ सेट अप करने की सुविधा मिलती है.
थ्रो
अगर ObjectDetector बनाते समय कोई गड़बड़ी होती है.

सार्वजनिक स्टैटिक ObjectDetector createFromFile (कॉन्टेक्स्ट कॉन्टेक्स्ट, फ़ाइल ModelFile)

किसी मॉडल फ़ाइल और डिफ़ॉल्ट ObjectDetector.ObjectDetectorOptions से एक ObjectDetector इंस्टेंस बनाता है.

पैरामीटर
संदर्भ Android ERROR(/Context).
modelFile डिटेक्शन मॉडल File इंस्टेंस.
थ्रो
IOException अगर tflite मॉडल फ़ाइल को खोलते समय कोई I/O गड़बड़ी होती है.
अगर ObjectDetector बनाते समय कोई गड़बड़ी होती है.

सार्वजनिक स्टैटिक ObjectDetector createFromOptions (कॉन्टेक्स्ट कॉन्टेक्स्ट, ObjectDetector.ObjectDetectorOptions identifierOptions)

ObjectDetector.ObjectDetectorOptions से ObjectDetector इंस्टेंस बनाता है.

पैरामीटर
संदर्भ Android ERROR(/Context).
detectorOptions ObjectDetector.ObjectDetectorOptions इंस्टेंस.
थ्रो
अगर ObjectDetector बनाते समय कोई गड़बड़ी होती है.

सार्वजनिक ObjectDetectorResult detect (MPImage इमेज)

इमेज को प्रोसेस करने के डिफ़ॉल्ट विकल्पों के साथ, दी गई एक ही इमेज पर ऑब्जेक्ट की पहचान करता है, जैसे कि बिना कोई रोटेशन लागू किए. इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब ObjectDetector को ERROR(/RunningMode.IMAGE) की मदद से बनाया गया हो.

ObjectDetector पर इस तरह के कलर स्पेस इस्तेमाल किए जा सकते हैं:

पैरामीटर
इमेज प्रोसेसिंग के लिए MediaPipe MPImage ऑब्जेक्ट.
थ्रो
अगर कोई अंदरूनी गड़बड़ी होती है.

सार्वजनिक ObjectDetectorResult detect (MPImage इमेज, ImageProcessingOptions imageprocessingOptions)

दी गई एक इमेज पर ही ऑब्जेक्ट की पहचान करता है. इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब ERROR(/RunningMode.IMAGE) की मदद से ObjectDetector बनाया गया हो.

ObjectDetector पर इस तरह के कलर स्पेस इस्तेमाल किए जा सकते हैं:

पैरामीटर
इमेज प्रोसेसिंग के लिए MediaPipe MPImage ऑब्जेक्ट.
imageProcessingOptions ImageProcessingOptions में यह बताया गया है कि अनुमान चलाने से पहले, इनपुट इमेज को कैसे प्रोसेस किया जाए. ध्यान दें कि इस टास्क के लिए, पसंद का देश या इलाका काम नहीं करता: ImageProcessingOptions.regionOfInterest() को शामिल करने पर, इस तरीके से legalArgument4 की कॉपी नहीं बनाई जा सकती.
थ्रो
IllegalArgumentException अगर ImageProcessingOptions पसंद के क्षेत्र के बारे में बताता है.
अगर कोई अंदरूनी गड़बड़ी होती है.

Public void detectAsync (MPImage इमेज, ImageProcessingOptions imageprocessingOptions imageProcessOptions, लंबे timestampM)

यह सुविधा, ऑब्जेक्ट की पहचान करने के लिए इमेज से लाइव डेटा भेजती है और ObjectDetector.ObjectDetectorOptions में दिए गए OutputHandler.ResultListener की मदद से नतीजे उपलब्ध होंगे. इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब ERROR(/RunningMode.LIVE_STREAM) की मदद से ObjectDetector बनाया गया हो.

ऑब्जेक्ट डिटेक्टर को इनपुट इमेज कब भेजी गई है, यह बताने के लिए टाइमस्टैंप (मिलीसेकंड में) देना ज़रूरी है. इनपुट के टाइमस्टैंप एक-दूसरे के हिसाब से बढ़ते होने चाहिए.

ObjectDetector पर इस तरह के कलर स्पेस इस्तेमाल किए जा सकते हैं:

पैरामीटर
इमेज प्रोसेसिंग के लिए MediaPipe MPImage ऑब्जेक्ट.
imageProcessingOptions ImageProcessingOptions में यह बताया गया है कि अनुमान चलाने से पहले, इनपुट इमेज को कैसे प्रोसेस किया जाए. ध्यान दें कि इस टास्क के लिए, पसंद का देश या इलाका काम नहीं करता: ImageProcessingOptions.regionOfInterest() को शामिल करने पर, इस तरीके से legalArgument4 की कॉपी नहीं बनाई जा सकती.
timestampMs इनपुट टाइमस्टैंप (मिलीसेकंड में).
थ्रो
IllegalArgumentException अगर ImageProcessingOptions पसंद के क्षेत्र के बारे में बताता है.
अगर कोई अंदरूनी गड़बड़ी होती है.

Public void detectAsync (MPImage इमेज, लंबे टाइमस्टैंपM)

यह सुविधा, इमेज को डिफ़ॉल्ट रूप से प्रोसेस करने के विकल्पों की मदद से, ऑब्जेक्ट का पता लगाने के लिए लाइव इमेज डेटा भेजती है. इसका मतलब है कि बिना कोई रोटेशन लागू किए, और नतीजे ObjectDetector.ObjectDetectorOptions में दिए गए OutputHandler.ResultListener के ज़रिए उपलब्ध होंगे. इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब ERROR(/RunningMode.LIVE_STREAM) की मदद से ObjectDetector बनाया गया हो.

ऑब्जेक्ट डिटेक्टर को इनपुट इमेज कब भेजी गई है, यह बताने के लिए टाइमस्टैंप (मिलीसेकंड में) देना ज़रूरी है. इनपुट के टाइमस्टैंप एक-दूसरे के हिसाब से बढ़ते होने चाहिए.

ObjectDetector पर इस तरह के कलर स्पेस इस्तेमाल किए जा सकते हैं:

पैरामीटर
इमेज प्रोसेसिंग के लिए MediaPipe MPImage ऑब्जेक्ट.
timestampMs इनपुट टाइमस्टैंप (मिलीसेकंड में).
थ्रो
अगर कोई अंदरूनी गड़बड़ी होती है.

सार्वजनिक ObjectDetectorResult detectForVideo (MPImage इमेज, ImageProcessingOptions imageprocessingOptions imageprocessingOptions, ज़्यादा timestampMs

यह सुविधा, दिए गए वीडियो फ़्रेम पर ऑब्जेक्ट की पहचान करती है. इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब ERROR(/RunningMode.VIDEO) की मदद से ObjectDetector बनाया गया हो.

वीडियो फ़्रेम के टाइमस्टैंप की जानकारी, मिलीसेकंड में देना ज़रूरी है. इनपुट के टाइमस्टैंप एक-दूसरे के हिसाब से बढ़ते रहने चाहिए.

ObjectDetector पर इस तरह के कलर स्पेस इस्तेमाल किए जा सकते हैं:

पैरामीटर
इमेज प्रोसेसिंग के लिए MediaPipe MPImage ऑब्जेक्ट.
imageProcessingOptions ImageProcessingOptions में यह बताया गया है कि अनुमान चलाने से पहले, इनपुट इमेज को कैसे प्रोसेस किया जाए. ध्यान दें कि इस टास्क के लिए, पसंद का देश या इलाका काम नहीं करता: ImageProcessingOptions.regionOfInterest() को शामिल करने पर, इस तरीके से legalArgument4 की कॉपी नहीं बनाई जा सकती.
timestampMs इनपुट टाइमस्टैंप (मिलीसेकंड में).
थ्रो
IllegalArgumentException अगर ImageProcessingOptions पसंद के क्षेत्र के बारे में बताता है.
अगर कोई अंदरूनी गड़बड़ी होती है.

सार्वजनिक ObjectDetectorResult detectForVideo (MPImage इमेज, लंबा टाइमस्टैंप)

इमेज को प्रोसेस करने के डिफ़ॉल्ट विकल्पों की मदद से, दिए गए वीडियो फ़्रेम पर ऑब्जेक्ट की पहचान करता है. इसका मतलब है कि डिवाइस को घुमाते हुए नहीं रखा जाता. इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब ObjectDetector को ERROR(/RunningMode.VIDEO) की मदद से बनाया गया हो.

वीडियो फ़्रेम के टाइमस्टैंप की जानकारी, मिलीसेकंड में देना ज़रूरी है. इनपुट के टाइमस्टैंप एक-दूसरे के हिसाब से बढ़ते रहने चाहिए.

ObjectDetector पर इस तरह के कलर स्पेस इस्तेमाल किए जा सकते हैं:

पैरामीटर
इमेज प्रोसेसिंग के लिए MediaPipe MPImage ऑब्जेक्ट.
timestampMs इनपुट टाइमस्टैंप (मिलीसेकंड में).
थ्रो
अगर कोई अंदरूनी गड़बड़ी होती है.