TensorImage, Image ऑब्जेक्ट के लिए रैपर क्लास है। TFLite.support लाइब्रेरी में इमेज प्रोसेसिंग यूटिलिटीज का उपयोग करते समय, सबसे पहले इमेज ऑब्जेक्ट को विभिन्न प्रकारों में TensorImage में परिवर्तित करना आम बात है।
वर्तमान में, केवल RGB छवियाँ समर्थित हैं, और A चैनल को हमेशा अनदेखा किया जाता है।
डेटा भंडारण का विवरण: एक TensorImage
ऑब्जेक्ट में सत्य के 2 संभावित स्रोत हो सकते हैं: एक Bitmap
या एक TensorBuffer
। TensorImage
स्थिति को बनाए रखता है और आवश्यकता पड़ने पर ही एक को दूसरे में परिवर्तित करता है। TensorImage
का एक सामान्य उपयोग मामला पहले एक Bitmap
छवि को लोड करना है, फिर ImageProcessor
का उपयोग करके इसे संसाधित करना है, और अंत में TensorBuffer
के अंतर्निहित ByteBuffer
प्राप्त करना और इसे TFLite दुभाषिया में फ़ीड करना है।
महत्वपूर्ण: सर्वोत्तम प्रदर्शन प्राप्त करने के लिए, TensorImage
जब भी संभव हो डेटा की प्रतिलिपि बनाने से बचता है। इसलिए, यह अपने डेटा का स्वामी नहीं है। कॉलर्स को उन डेटा ऑब्जेक्ट्स को संशोधित नहीं करना चाहिए जिन्हें load(Bitmap)
या load(TensorBuffer, ColorSpaceType)
में पास किया गया है।
महत्वपूर्ण: सभी विधियाँ थ्रेड-सुरक्षित साबित नहीं होती हैं।
सार्वजनिक निर्माता
टेंसरइमेज () TensorImage ऑब्जेक्ट को प्रारंभ करता है। | |
TensorImage ( डेटा प्रकार डेटा प्रकार) निर्दिष्ट डेटा प्रकार के साथ TensorImage ऑब्जेक्ट को प्रारंभ करता है। |
सार्वजनिक तरीके
स्थिर TensorImage | createFrom ( TensorImage src, डेटाटाइप डेटाटाइप) वांछित डेटा प्रकार के साथ दिए गए TensorImage की एक डीप-कॉपी बनाता है। |
स्थिर 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 फेंकता है
पैरामीटर
छवि |
---|