TensorImage इमेज ऑब्जेक्ट के लिए रैपर क्लास है। 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 ऑब्जेक्ट को प्रारंभ करता है। |
सार्वजनिक तरीके
स्थिर टेंसरछवि | createFrom ( TensorImage src, DataType dataType) वांछित डेटा प्रकार के साथ किसी दिए गए 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 नहीं है
मापदंडों
छवि |
---|