TensorImage

सार्वजनिक वर्ग TensorImage

TensorImage इमेज ऑब्जेक्ट के लिए रैपर क्लास है। TFLite.support लाइब्रेरी में इमेज प्रोसेसिंग यूटिल्स का उपयोग करते समय, छवि ऑब्जेक्ट को भिन्न प्रकार में TensorImage में परिवर्तित करना आम बात है।

वर्तमान में, केवल RGB छवियों का समर्थन किया जाता है, और A चैनल को हमेशा अनदेखा किया जाता है।

डेटा संग्रहण का विवरण: एक TensorImage ऑब्जेक्ट में सत्य के 2 संभावित स्रोत हो सकते हैं: एक Bitmap या एक TensorBufferTensorImage स्थिति को बनाए रखता है और जरूरत पड़ने पर केवल एक को दूसरे में परिवर्तित करता है। TensorImage का एक विशिष्ट उपयोग मामला पहले एक Bitmap छवि को लोड करना है, फिर इसे ImageProcessor का उपयोग करके संसाधित करना है, और अंत में TensorBuffer के अंतर्निहित ByteBuffer को प्राप्त करना और इसे TFLite दुभाषिया में फीड करना है।

महत्वपूर्ण: सर्वश्रेष्ठ प्रदर्शन प्राप्त करने के लिए, TensorImage जब भी संभव हो डेटा कॉपी करने से बचता है। इसलिए, यह अपने डेटा का स्वामी नहीं है। कॉलर्स को उन डेटा ऑब्जेक्ट्स को संशोधित नहीं करना चाहिए जिन्हें load(Bitmap) या load(TensorBuffer, ColorSpaceType) किया गया है।

महत्वपूर्ण: सभी विधियां थ्रेड-सुरक्षित साबित नहीं होती हैं।

सार्वजनिक निर्माता

टेंसरइमेज ()
TensorImage ऑब्जेक्ट को इनिशियलाइज़ करें।
TensorImage ( डेटा प्रकार डेटा प्रकार )
निर्दिष्ट डेटा प्रकार के साथ एक TensorImage ऑब्जेक्ट को प्रारंभ करता है।

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

स्थिर टेंसरछवि
createFrom ( TensorImage src, DataType dataType)
वांछित डेटा प्रकार के साथ किसी दिए गए TensorImage की एक गहरी प्रतिलिपि बनाता है।
स्थिर टेंसरछवि
बिटमैप से (बिटमैप बिटमैप)
Bitmap के साथ DataType.UINT8 के TensorImage ऑब्जेक्ट को इनिशियलाइज़ करता है।
बिटमैप
बिटमैप प्राप्त करें ()
इस TensorImage का Bitmap प्रतिनिधित्व देता है।
बाइटबफर
गेटबफर ()
अपेक्षित डेटा प्रकार के साथ इस TensorImage का ByteBuffer प्रतिनिधित्व लौटाता है।
कलरस्पेस टाइप
getColorSpaceType ()
इस TensorImage का रंग स्थान प्रकार प्राप्त करें।
तथ्य प्रकार
गेटडाटा टाइप ()
इस TensorImage का डेटा प्रकार प्राप्त करें।
पूर्णांक
प्राप्त हाइट ()
छवि की ऊंचाई प्राप्त करें।
छवि
मीडिया इमेज प्राप्त करें ()
इस TensorImage का एक Image प्रतिनिधित्व देता है।
टेंसरबफर
गेटटेन्सरबफर ()
अपेक्षित डेटा प्रकार के साथ इस TensorImage का एक TensorBuffer प्रतिनिधित्व लौटाता है।
पूर्णांक
गेटविड्थ ()
छवि की चौड़ाई प्राप्त करें।
शून्य
लोड ( टेन्सरबफर बफर, कलरस्पेस टाइप कलरस्पेस टाइप)
विशिष्ट ColorSpaceType के साथ पिक्सेल मान वाले TensorBuffer को लोड करता है।
शून्य
लोड (बिटमैप बिटमैप)
इस TensorImage में एक Bitmap छवि ऑब्जेक्ट लोड करता है।
शून्य
लोड (इंट [] पिक्सल, इंट [] आकार)
इस TensorImage में RGB पिक्सल के रूप में एक इंट ऐरे को लोड करता है, जो अंदर के पिक्सल का प्रतिनिधित्व करता है।
शून्य
लोड (फ्लोट [] पिक्सल, इंट [] आकार)
इस TensorImage में RGB पिक्सेल के रूप में एक फ्लोट सरणी लोड करता है, जो अंदर के पिक्सेल का प्रतिनिधित्व करता है।
शून्य
लोड ( बाइटबफर बफर, इमेजप्रॉपर्टीज इमेजप्रॉपर्टीज)
विशिष्ट ImageProperties के साथ पिक्सेल मान वाले ByteBuffer को लोड करता है।
शून्य
लोड ( टेन्सरबफर बफर, इमेजप्रॉपर्टीज इमेजप्रॉपर्टीज)
एक TensorBuffer को लोड करता है जिसमें विशिष्ट ImageProperties के साथ पिक्सेल मान होते हैं।
शून्य
लोड (छवि छवि)
इस TensorImage में एक Image ऑब्जेक्ट लोड करता है।

विरासत में मिली विधियां

सार्वजनिक निर्माता

सार्वजनिक TensorImage ()

TensorImage ऑब्जेक्ट को इनिशियलाइज़ करें।

नोट: इस TensorImage का DataType.UINT8 है। यदि अन्य डेटा प्रकारों को प्राथमिकता दी जाती है, तो TensorImage(DataType) का उपयोग करें।

सार्वजनिक TensorImage (डेटा प्रकार डेटा प्रकार )

निर्दिष्ट डेटा प्रकार के साथ एक TensorImage ऑब्जेक्ट को प्रारंभ करता है।

इस TensorImage से TensorBuffer या ByteBuffer प्राप्त करते समय, जैसे getTensorBuffer() और getBuffer() ) का उपयोग करके, डेटा मान निर्दिष्ट डेटा प्रकार में परिवर्तित हो जाएंगे।

नोट: TensorImage का आकार निश्चित नहीं है। इसे इस TensorImage पर लोड की जा रही छवि के आकार में समायोजित किया जा सकता है।

मापदंडों
तथ्य प्रकार परिणामी TensorBuffer का अपेक्षित डेटा प्रकार। प्रकार हमेशा TensorImage के जीवनकाल के दौरान तय किया जाता है। डेटा प्रकार को कनवर्ट करने के लिए, एक ही समय में एक प्रतिलिपि बनाने और डेटा प्रकार को कनवर्ट करने के लिए createFrom(TensorImage, DataType) का उपयोग करें।
फेंकता
अवैध तर्क अपवाद अगर डेटा टाइप न तो DataType.UINT8 टाइप है। dataType और न ही डेटा टाइप। DataType.FLOAT32

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

सार्वजनिक स्थैतिक TensorImage createFrom ( TensorImage src, DataType dataType)

वांछित डेटा प्रकार के साथ किसी दिए गए TensorImage की एक गहरी प्रतिलिपि बनाता है।

मापदंडों
एसआरसी कॉपी करने के लिए TensorImage
तथ्य प्रकार नव निर्मित TensorImage का अपेक्षित डेटा प्रकार
रिटर्न
  • एक TensorImage जिसका डेटा src से कॉपी किया गया है और डेटा प्रकार dataType प्रकार है

बिटमैप से सार्वजनिक स्थैतिक TensorImage ( बिटमैप बिटमैप)

Bitmap के साथ DataType.UINT8 के TensorImage ऑब्जेक्ट को इनिशियलाइज़ करता है।

मापदंडों
बिटमैप

सार्वजनिक बिटमैप गेटबिटमैप ()

इस TensorImage का Bitmap प्रतिनिधित्व देता है।

यदि संग्रहीत डेटा uint8 नहीं है, तो संख्यात्मक कास्टिंग और क्लैम्पिंग लागू की जाएगी।

ध्यान दें कि, ALPHA_8 बिटमैप से पिक्सेल प्राप्त करने का विश्वसनीय तरीका copyPixelsToBuffer का उपयोग करना है। बिटमैप विधियाँ, जैसे कि, `सेटपिक्सेल ()` और `getPixels` काम नहीं करती हैं।

महत्वपूर्ण: यह केवल एक संदर्भ है। संशोधित न करें। हम प्रदर्शन की चिंता के लिए यहां एक प्रति नहीं बनाते हैं, लेकिन यदि संशोधन आवश्यक है, तो कृपया एक प्रति बनाएं।

रिटर्न
  • इस TensorBuffer के ColorSpaceType के आधार पर, ARGB_8888 config ("A" चैनल हमेशा अपारदर्शी होता है) या ALPHA_8 में Bitmap का संदर्भ।
फेंकता
IllegalStateException यदि TensorImage कभी भी डेटा लोड नहीं करता है

सार्वजनिक बाइटबफ़र गेटबफ़र ()

अपेक्षित डेटा प्रकार के साथ इस TensorImage का ByteBuffer प्रतिनिधित्व लौटाता है।

यदि संग्रहीत डेटा TensorImage के डेटा प्रकार से अलग है, तो संख्यात्मक कास्टिंग और क्लैम्पिंग लागू की जाएगी।

महत्वपूर्ण: यह केवल एक संदर्भ है। संशोधित न करें। हम प्रदर्शन की चिंता के लिए यहां एक प्रति नहीं बनाते हैं, लेकिन यदि संशोधन आवश्यक है, तो कृपया एक प्रति बनाएं।

यह अनिवार्य रूप से getTensorBuffer().getBuffer() के लिए एक छोटा सा कट है।

रिटर्न
  • एक ByteBuffer का संदर्भ जो छवि डेटा रखता है
फेंकता
IllegalStateException यदि TensorImage कभी भी डेटा लोड नहीं करता है

सार्वजनिक ColorSpaceType getColorSpaceType ()

इस TensorImage का रंग स्थान प्रकार प्राप्त करें।

फेंकता
IllegalStateException यदि TensorImage कभी भी डेटा लोड नहीं करता है

सार्वजनिक डेटा प्रकार getDataType ()

इस TensorImage का डेटा प्रकार प्राप्त करें।

रिटर्न
  • एक डेटा प्रकार। वर्तमान में केवल DataType.UINT8 और DataType.FLOAT32 समर्थित हैं।

सार्वजनिक int getHeight ()

छवि की ऊंचाई प्राप्त करें।

फेंकता
IllegalStateException यदि TensorImage कभी भी डेटा लोड नहीं करता है
अवैध तर्क अपवाद यदि अंतर्निहित डेटा दूषित है

सार्वजनिक छवि getMediaImage ()

इस TensorImage का एक Image प्रतिनिधित्व देता है।

यह विधि केवल तभी काम करती है जब TensorImage एक Image द्वारा समर्थित होता है, जिसका अर्थ है कि आपको पहले एक Image को load(Image) के माध्यम से लोड करना होगा।

महत्वपूर्ण: यह केवल एक संदर्भ है। संशोधित न करें। हम प्रदर्शन की चिंता के लिए यहां एक प्रति नहीं बनाते हैं, लेकिन यदि संशोधन आवश्यक है, तो कृपया एक प्रति बनाएं।

रिटर्न
  • इस TensorBuffer के ColorSpaceType के आधार पर, ARGB_8888 config ("A" चैनल हमेशा अपारदर्शी होता है) या ALPHA_8 में Bitmap का संदर्भ।
फेंकता
IllegalStateException यदि TensorImage कभी भी डेटा लोड नहीं करता है

सार्वजनिक TensorBuffer getTensorBuffer ()

अपेक्षित डेटा प्रकार के साथ इस TensorImage का एक TensorBuffer प्रतिनिधित्व लौटाता है।

यदि संग्रहीत डेटा TensorImage के डेटा प्रकार से अलग है, तो संख्यात्मक कास्टिंग और क्लैम्पिंग लागू की जाएगी।

महत्वपूर्ण: यह केवल एक संदर्भ है। संशोधित न करें। हम प्रदर्शन की चिंता के लिए यहां एक प्रति नहीं बनाते हैं, लेकिन यदि संशोधन आवश्यक है, तो कृपया एक प्रति बनाएं।

रिटर्न
  • एक TensorBuffer का संदर्भ जो छवि डेटा रखता है
फेंकता
IllegalStateException यदि TensorImage कभी भी डेटा लोड नहीं करता है

सार्वजनिक int getWidth ()

छवि की चौड़ाई प्राप्त करें।

फेंकता
IllegalStateException यदि TensorImage कभी भी डेटा लोड नहीं करता है
अवैध तर्क अपवाद यदि अंतर्निहित डेटा दूषित है

सार्वजनिक शून्य लोड ( TensorBuffer बफर, ColorSpaceType colorSpaceType)

विशिष्ट ColorSpaceType के साथ पिक्सेल मान वाले TensorBuffer को लोड करता है।

केवल ColorSpaceType.RGB और ColorSpaceType.GRAYSCALE का समर्थन करता है। अन्य रंग स्थान प्रकारों के लिए load(TensorBuffer, ImageProperties) का उपयोग करें।

नोट: यदि डेटा प्रकार का buffer इस TensorImage से मेल नहीं खाता है, तो getTensorBuffer() और getBuffer() ) को कॉल करते समय संख्यात्मक कास्टिंग और क्लैम्पिंग लागू की जाएगी।

मापदंडों
बफर TensorBuffer लोड किया जाना है। आरजीबी छवियों के लिए इसका आकार या तो (एच, डब्ल्यू, 3) या (1, एच, डब्ल्यू, 3) होना चाहिए, और ग्रेस्केल छवियों के लिए या तो (एच, डब्ल्यू) या (1, एच, डब्ल्यू) होना चाहिए
कलरस्पेस टाइप
फेंकता
अवैध तर्क अपवाद यदि बफ़र का आकार रंग स्थान प्रकार से मेल नहीं खाता है, या यदि रंग स्थान प्रकार समर्थित नहीं है

सार्वजनिक शून्य भार (बिटमैप बिटमैप)

इस TensorImage में एक Bitmap छवि ऑब्जेक्ट लोड करता है।

नोट: यदि TensorImage में DataType.UINT8 के अलावा अन्य डेटा प्रकार है, तो getTensorBuffer() और getBuffer() को कॉल करते समय संख्यात्मक कास्टिंग और क्लैम्पिंग लागू की जाएगी, जहां Bitmap को TensorBuffer में बदल दिया जाएगा।

महत्वपूर्ण: बिटमैप लोड करते समय, अब कॉलर साइड से बिटमैप को संशोधित न करें। TensorImage ऑब्जेक्ट बिटमैप पर निर्भर करेगा। यह शायद बिटमैप को भी संशोधित करेगा। इस पद्धति में, हम उस बिटमैप के लिए एक शून्य-प्रतिलिपि दृष्टिकोण करते हैं, बस इसके संदर्भ को पकड़कर। यदि आवश्यक हो तो प्रतिलिपि बनाने के लिए bitmap.copy(bitmap.getConfig(), true) का उपयोग करें।

नोट: सर्वश्रेष्ठ प्रदर्शन प्राप्त करने के लिए, कृपया स्मृति पुन: आवंटन से बचने के लिए छवियों को उसी आकार में लोड करें।

मापदंडों
बिटमैप
फेंकता
अवैध तर्क अपवाद यदि bitmap ARGB_8888 में नहीं है

सार्वजनिक शून्य भार (इंट [] पिक्सल, इंट [] आकार)

इस TensorImage में RGB पिक्सल के रूप में एक इंट ऐरे को लोड करता है, जो अंदर के पिक्सल का प्रतिनिधित्व करता है।

नोट: getTensorBuffer() और getBuffer() को कॉल करते समय मानों को इस TensorImage के डेटा प्रकार में बदलने के लिए संख्यात्मक कास्टिंग और क्लैम्पिंग लागू की जाएगी।

मापदंडों
पिक्सल छवि का प्रतिनिधित्व करने वाले RGB पिक्सेल
आकार छवि का आकार, या तो रूप में होना चाहिए (h, w, 3), या रूप में (1, h, w, 3)
फेंकता
अवैध तर्क अपवाद यदि आकार न तो (h, w, 3) और न ही (1, h, w, 3) है

सार्वजनिक शून्य भार (फ्लोट [] पिक्सल, इंट [] आकार)

इस TensorImage में RGB पिक्सेल के रूप में एक फ्लोट सरणी लोड करता है, जो अंदर के पिक्सेल का प्रतिनिधित्व करता है।

नोट: यदि TensorImage में DataType.FLOAT32 के अलावा कोई अन्य डेटा प्रकार है, तो getTensorBuffer() और getBuffer() ) को कॉल करते समय संख्यात्मक कास्टिंग और क्लैम्पिंग लागू की जाएगी।

मापदंडों
पिक्सल छवि का प्रतिनिधित्व करने वाले RGB पिक्सेल
आकार छवि का आकार, या तो रूप में होना चाहिए (h, w, 3), या रूप में (1, h, w, 3)
फेंकता
अवैध तर्क अपवाद यदि आकार न तो (h, w, 3) और न ही (1, h, w, 3) है

सार्वजनिक शून्य भार ( बाइटबफर बफर, इमेजप्रॉपर्टीज इमेजप्रॉपर्टीज)

विशिष्ट ImageProperties के साथ पिक्सेल मान वाले ByteBuffer को लोड करता है।

नोट: यदि डेटा प्रकार का buffer इस TensorImage से मेल नहीं खाता है, तो getTensorBuffer() और getBuffer() ) को कॉल करते समय संख्यात्मक कास्टिंग और क्लैम्पिंग लागू की जाएगी।

मापदंडों
बफर
छवि गुण
फेंकता
अवैध तर्क अपवाद यदि बफ़र का आकार ImageProperties में छवि की ऊँचाई, चौड़ाई और रंग स्थान प्रकार द्वारा दर्शाए गए छवि आकार से कम है

सार्वजनिक शून्य भार ( टेन्सरबफर बफर, इमेजप्रॉपर्टीज इमेजप्रॉपर्टीज)

एक TensorBuffer को लोड करता है जिसमें विशिष्ट ImageProperties के साथ पिक्सेल मान होते हैं।

छवि की ऊंचाई और चौड़ाई निर्धारित करने के लिए TensorBuffer के आकार का उपयोग नहीं किया जाएगा। ImageProperties के माध्यम से छवि गुण सेट करें।

नोट: यदि डेटा प्रकार का buffer इस TensorImage से मेल नहीं खाता है, तो getTensorBuffer() और getBuffer() ) को कॉल करते समय संख्यात्मक कास्टिंग और क्लैम्पिंग लागू की जाएगी।

मापदंडों
बफर
छवि गुण
फेंकता
अवैध तर्क अपवाद यदि बफ़र का आकार ImageProperties में छवि की ऊँचाई, चौड़ाई और रंग स्थान प्रकार द्वारा दर्शाए गए छवि आकार से कम है

सार्वजनिक शून्य भार (छवि छवि)

इस TensorImage में एक Image ऑब्जेक्ट लोड करता है।

इस पद्धति का मुख्य उपयोग Image वस्तु को मॉडल इनपुट के रूप में https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview पर लोड करना है। Image द्वारा समर्थित TensorImage , ImageProcessor द्वारा समर्थित नहीं है।

* @IllegalArgumentException फेंकता है यदि image का ImageFormat YUV_420_888 नहीं है

मापदंडों
छवि