TensorImage

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

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

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

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

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

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

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

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

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

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

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

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

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

TensorImage ऑब्जेक्ट को प्रारंभ करता है।

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

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

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

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

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

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

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

सार्वजनिक स्थैतिक TensorImage createFrom ( TensorImage src, डेटा प्रकार डेटा प्रकार)

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

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

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

Bitmap के साथ DataType.UINT8 के TensorImage ऑब्जेक्ट को प्रारंभ करता है।

पैरामीटर
बिटमैप

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

इस TensorImage का Bitmap प्रतिनिधित्व लौटाता है।

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

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

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

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

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

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

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

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

यह अनिवार्य रूप से getTensorBuffer().getBuffer() का शॉर्ट कट है।

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

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

इस TensorImage का रंग स्थान प्रकार प्राप्त होता है।

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

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

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

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

सार्वजनिक पूर्णांक getHeight ()

छवि ऊंचाई प्राप्त करता है.

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

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

इस TensorImage का एक Image प्रतिनिधित्व लौटाता है।

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

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

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

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

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

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

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

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

सार्वजनिक पूर्णांक getWidth ()

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

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

सार्वजनिक शून्य लोड ( टेन्सरबफर बफर, कलरस्पेसटाइप कलरस्पेसटाइप)

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

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

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

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

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

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

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

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

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

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

सार्वजनिक शून्य लोड (int[] पिक्सेल, int[] आकार)

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

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

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

सार्वजनिक शून्य लोड (फ्लोट[] पिक्सेल, int[] आकार)

इस 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 imageProperties)

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

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

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

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

सार्वजनिक शून्य लोड (छवि छवि)

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

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

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

पैरामीटर
छवि