TensorImage, इमेज ऑब्जेक्ट के लिए रैपर क्लास है. TFLite.support लाइब्रेरी में इमेज प्रोसेसिंग के इस्तेमाल का इस्तेमाल करते समय, आम तौर पर, शुरुआत में इमेज ऑब्जेक्ट को वैरिएंट टाइप में TensorImage में बदला जाता है.
फ़िलहाल, सिर्फ़ आरजीबी इमेज का इस्तेमाल किया जा सकता है. साथ ही, A चैनल को हमेशा अनदेखा किया जाता है.
डेटा स्टोरेज की जानकारी: TensorImage ऑब्जेक्ट में सही जानकारी के दो संभावित सोर्स हो सकते हैं: 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 |
fromBitmap(बिट मैप बिट मैप)
|
| बिट मैप |
getBitmap()
इस
TensorImage का Bitmap निरूपण देता है. |
| ByteBuffer |
getBuffer()
अनुमानित डेटा टाइप के साथ, इस
TensorImage को ByteBuffer में दिखाता है. |
| ColorSpaceType |
getColorSpaceType()
TensorImage का कलर स्पेस टाइप बताता है. |
| DataType |
getDataType()
इस
TensorImage का डेटा टाइप बताता है. |
| int |
getHeight()
इमेज की ऊंचाई लेता है.
|
| Image |
getMediaImage()
इस
TensorImage का Image निरूपण देता है. |
| TensorBuffer |
getTensorBuffer()
सही डेटा टाइप के साथ इस
TensorImage को TensorBuffer में दिखाता है. |
| int |
getWidth()
इमेज की चौड़ाई का पता लगाता है.
|
| void |
load(TensorBuffer बफ़र, ColorSpaceType colorSpaceType)
खास
ColorSpaceType के साथ पिक्सल वैल्यू वाला TensorBuffer लोड करता है. |
| void |
load(बिटमैप बिट मैप)
इस
TensorImage में Bitmap इमेज ऑब्जेक्ट लोड करता है. |
| void |
load(int[] pixel, int[] आकार)
इस
TensorImage में, int अरे को आरजीबी पिक्सल के तौर पर लोड करता है. यह अंदर के पिक्सल दिखाता है. |
| void |
load(फ़्लोट[] पिक्सल, int[] आकार)
इस
TensorImage में, फ़्लोट अरे को आरजीबी पिक्सल के तौर पर लोड करता है, जो अंदर के पिक्सल दिखाता है. |
| void |
load(ByteBuffer बफ़र, ImageProperties imageProperties)
खास
ImageProperties के साथ पिक्सल वैल्यू वाला ByteBuffer लोड करता है. |
| void |
load(TensorBuffer बफ़र, ImageProperties imageProperties)
खास
ImageProperties के साथ पिक्सल वैल्यू वाला TensorBuffer लोड करता है. |
| void |
load(इमेज की इमेज)
इस
TensorImage में Image ऑब्जेक्ट लोड करता है. |
इनहेरिट किए गए तरीके
पब्लिक कंस्ट्रक्टर
सार्वजनिक TensorImage ()
TensorImage ऑब्जेक्ट को शुरू करता है.
ध्यान दें: इस TensorImage का डेटा टाइप DataType.UINT8 है. अगर अन्य डेटा टाइप को प्राथमिकता दी जाए, तो TensorImage(DataType) का इस्तेमाल करें.
सार्वजनिक TensorImage (DataType dataType)
तय किए गए डेटा टाइप के साथ TensorImage ऑब्जेक्ट को शुरू करता है.
इस TensorImage से TensorBuffer या ByteBuffer लेने पर,
जैसे कि getTensorBuffer() और getBuffer() का इस्तेमाल करने पर, डेटा की वैल्यू
बताए गए डेटा टाइप में बदल दी जाएंगी.
ध्यान दें: TensorImage का आकार तय नहीं है. इस TensorImage में लोड होने वाली इमेज के आकार में बदलाव किया जा सकता है.
पैरामीटर
| dataType | नतीजे के तौर पर TensorBuffer का अनुमानित डेटा टाइप. इस टाइप को
TensorImage के लाइफ़टाइम में तय किया जाता है. डेटा टाइप को बदलने के लिए,
createFrom(TensorImage, DataType) का इस्तेमाल करें, ताकि एक कॉपी बनाई जा सके और एक साथ डेटा टाइप
बदला जा सके. |
|---|
थ्रो
| IllegalArgumentException | अगर dataType, DataType.UINT8 या
DataType.FLOAT32 न हो
|
|---|
सार्वजनिक तरीके
सार्वजनिक स्टैटिक TensorImage createFrom (TensorImage src, DataType dataType)
अपने हिसाब से डेटा टाइप के साथ, दिए गए TensorImage की डीप-कॉपी बनाता है.
पैरामीटर
| src | कॉपी करने के लिए TensorImage |
|---|---|
| dataType | नए बनाए गए TensorImage का अनुमानित डेटा टाइप |
लौटाए गए प्रॉडक्ट
TensorImage, जिसका डेटाsrcसे कॉपी किया जाता है और डेटा टाइपdataTypeहै
सार्वजनिक स्टैटिक TensorImage fromBitmap (बिटमैप बिटमैप)
Bitmap के साथ, DataType.UINT8 के TensorImage ऑब्जेक्ट को शुरू करता है .
पैरामीटर
| बिट मैप |
|---|
सार्वजनिक बिटमैप getBitmap ()
इस TensorImage का Bitmap निरूपण देता है.
अगर सेव किया गया डेटा uint8 नहीं है, तो न्यूमेरिक कास्ट और क्लैम्पिंग लागू की जाएगी.
ध्यान दें कि किसी ALPHA_8 बिटमैप से पिक्सल पाने का भरोसेमंद तरीका, copyPixelsToBuffer का इस्तेमाल करना है. `setPixels()` और `getPixels` जैसे बिट मैप के तरीके काम नहीं करते.
अहम जानकारी: यह सिर्फ़ एक पहचान फ़ाइल है. इसमें बदलाव न करें. हम परफ़ॉर्मेंस की चिंता के लिए यहां कोई कॉपी नहीं बनाते. अगर बदलाव करना ज़रूरी है, तो कृपया इसकी कॉपी बना लें.
लौटाए गए प्रॉडक्ट
ARGB_8888कॉन्फ़िगरेशन मेंBitmapका रेफ़रंस ("A" चैनल हमेशा ओपेक होता है) याALPHA_8में, इसTensorBufferकेColorSpaceTypeके आधार पर.
थ्रो
| IllegalStateException | अगर TensorImage कभी भी डेटा लोड नहीं करता है
|
|---|
सार्वजनिक ByteBuffer getBuffer ()
अनुमानित डेटा टाइप के साथ, इस TensorImage को ByteBuffer में दिखाता है.
अगर सेव किया गया डेटा, TensorImage के डेटा टाइप से अलग है, तो नंबर वाली कास्ट और क्लैम्पिंग लागू की जाएगी.
अहम जानकारी: यह सिर्फ़ एक पहचान फ़ाइल है. इसमें बदलाव न करें. हम परफ़ॉर्मेंस की चिंता के लिए यहां कोई कॉपी नहीं बनाते. अगर बदलाव करना ज़रूरी है, तो कृपया इसकी कॉपी बना लें.
यह getTensorBuffer().getBuffer() के लिए एक छोटा कट है.
लौटाए गए प्रॉडक्ट
ByteBufferका रेफ़रंस जिसमें इमेज डेटा होता है
थ्रो
| IllegalStateException | अगर TensorImage कभी भी डेटा लोड नहीं करता है
|
|---|
सार्वजनिक ColorSpaceType getColorSpaceType ()
TensorImage का कलर स्पेस टाइप बताता है.
थ्रो
| IllegalStateException | अगर TensorImage कभी भी डेटा लोड नहीं करता है
|
|---|
सार्वजनिक DataType getDataType ()
इस TensorImage का डेटा टाइप बताता है.
लौटाए गए प्रॉडक्ट
- डेटा टाइप के लिए इस्तेमाल किया जा सकता है. फ़िलहाल, सिर्फ़
DataType.UINT8औरDataType.FLOAT32का इस्तेमाल किया जा सकता है.
Public int getHeight ()
इमेज की ऊंचाई लेता है.
थ्रो
| IllegalStateException | अगर TensorImage कभी भी डेटा लोड नहीं करता है |
|---|---|
| IllegalArgumentException | अगर बुनियादी डेटा करप्ट है |
सार्वजनिक इमेज getMediaImage ()
इस TensorImage का Image निरूपण देता है.
यह तरीका सिर्फ़ तब काम करता है, जब TensorImage का बैक अप Image पर होता है. इसका मतलब है कि आपको पहले, load(Image) के ज़रिए Image को लोड करना होगा.
अहम जानकारी: यह सिर्फ़ एक पहचान फ़ाइल है. इसमें बदलाव न करें. हम परफ़ॉर्मेंस की चिंता के लिए यहां कोई कॉपी नहीं बनाते. अगर बदलाव करना ज़रूरी है, तो कृपया इसकी कॉपी बना लें.
लौटाए गए प्रॉडक्ट
ARGB_8888कॉन्फ़िगरेशन मेंBitmapका रेफ़रंस ("A" चैनल हमेशा ओपेक होता है) याALPHA_8में, इसTensorBufferकेColorSpaceTypeके आधार पर.
थ्रो
| IllegalStateException | अगर TensorImage कभी भी डेटा लोड नहीं करता है
|
|---|
सार्वजनिक TensorBuffer getTensorBuffer ()
सही डेटा टाइप के साथ इस TensorImage को TensorBuffer में दिखाता है.
अगर सेव किया गया डेटा, TensorImage के डेटा टाइप से अलग है, तो नंबर वाली कास्ट और क्लैम्पिंग लागू की जाएगी.
अहम जानकारी: यह सिर्फ़ एक पहचान फ़ाइल है. इसमें बदलाव न करें. हम परफ़ॉर्मेंस की चिंता के लिए यहां कोई कॉपी नहीं बनाते. अगर बदलाव करना ज़रूरी है, तो कृपया इसकी कॉपी बना लें.
लौटाए गए प्रॉडक्ट
TensorBufferका रेफ़रंस जिसमें इमेज डेटा होता है
थ्रो
| IllegalStateException | अगर TensorImage कभी भी डेटा लोड नहीं करता है
|
|---|
Public int getWidth ()
इमेज की चौड़ाई का पता लगाता है.
थ्रो
| IllegalStateException | अगर TensorImage कभी भी डेटा लोड नहीं करता है |
|---|---|
| IllegalArgumentException | अगर बुनियादी डेटा करप्ट है |
सार्वजनिक शून्य load (TensorBuffer बफ़र, ColorSpaceType colorSpaceType)
खास ColorSpaceType के साथ पिक्सल वैल्यू वाला TensorBuffer लोड करता है.
सिर्फ़ ColorSpaceType.RGB और ColorSpaceType.GRAYSCALE के साथ काम करता है. अन्य तरह के कलर स्पेस के लिए, load(TensorBuffer, ImageProperties) का इस्तेमाल करें.
ध्यान दें: अगर buffer का डेटा टाइप, TensorImage के डेटा टाइप से मेल नहीं खाता है,
तो getTensorBuffer() और getBuffer() को कॉल करने पर, अंकों वाली कास्टिंग और क्लैंपिंग की सुविधा लागू हो जाएगी.
पैरामीटर
| बफ़र | लोड किया जाने वाला TensorBuffer. आरजीबी इमेज के लिए इसका आकार (h, w, 3) या
(1, h, w, 3) होना चाहिए और GRAYSCALE इमेज के लिए (h, w) या (1, h, w) होना चाहिए |
|---|---|
| colorSpaceType |
थ्रो
| IllegalArgumentException | अगर बफ़र का आकार, कलर स्पेस के टाइप से मेल नहीं खाता हो या कलर स्पेस का टाइप काम न करता हो |
|---|
Public अमान्य लोड (बिटमैप बिटमैप)
इस TensorImage में Bitmap इमेज ऑब्जेक्ट लोड करता है.
ध्यान दें: अगर TensorImage में DataType.UINT8 के अलावा किसी अन्य तरह का डेटा है, तो getTensorBuffer() और getBuffer() को कॉल करने पर, अंकों वाली
कास्ट और क्लैंपिंग की सुविधा लागू होगी. यहां Bitmap को TensorBuffer में बदल दिया जाएगा.
अहम जानकारी: बिट मैप लोड करते समय, कॉलर साइड से बिट मैप में बदलाव न करें. TensorImage ऑब्जेक्ट, बिट मैप पर निर्भर करेगा. यह बिटमैप को भी बदल देगा.
इस तरीके में, हम उस बिट मैप के रेफ़रंस को दबाकर रखते हुए, ज़ीरो-कॉपी का इस्तेमाल करते हैं. अगर ज़रूरी हो, तो कॉपी बनाने के लिए bitmap.copy(bitmap.getConfig(), true) का इस्तेमाल करें.
ध्यान दें: सबसे अच्छी परफ़ॉर्मेंस पाने के लिए, कृपया उसी आकार में इमेज लोड करें, ताकि मेमोरी फिर से असाइन न की जा सके.
पैरामीटर
| बिट मैप |
|---|
थ्रो
| IllegalArgumentException | अगर bitmap ARGB_8888 में नहीं है
|
|---|
Public अमान्य load (int[] pixel, int[] shape)
इस TensorImage में, int अरे को आरजीबी पिक्सल के तौर पर लोड करता है. यह अंदर के पिक्सल दिखाता है.
ध्यान दें: getTensorBuffer() और getBuffer() को कॉल करते समय, वैल्यू को इस TensorImage के डेटा टाइप में
बदलने के लिए, अंकों वाली कास्ट और क्लैंपिंग लागू की जाएगी.
पैरामीटर
| पिक्सेल | इमेज दिखाने वाले आरजीबी पिक्सल |
|---|---|
| आकार | इमेज का आकार (h, w, 3) या फ़ॉर्म (1, h, w, 3) में होना चाहिए |
थ्रो
| IllegalArgumentException | अगर आकृति न तो (h, w, 3) और (1, h, w, 3) है |
|---|
सार्वजनिक शून्य लोड (फ़्लोट[] पिक्सेल, int[] आकार)
इस TensorImage में, फ़्लोट अरे को आरजीबी पिक्सल के तौर पर लोड करता है, जो अंदर के पिक्सल दिखाता है.
ध्यान दें: अगर TensorImage में DataType.FLOAT32 के अलावा किसी अन्य तरह का डेटा है,
तो getTensorBuffer() और getBuffer() को कॉल करने पर, अंकों वाली कास्टिंग और क्लैंपिंग की सुविधा लागू होगी.
पैरामीटर
| पिक्सेल | इमेज दिखाने वाले आरजीबी पिक्सल |
|---|---|
| आकार | इमेज का आकार (h, w, 3) या फ़ॉर्म (1, h, w, 3) में होना चाहिए |
थ्रो
| IllegalArgumentException | अगर आकृति न तो (h, w, 3) और (1, h, w, 3) है |
|---|
सार्वजनिक शून्य लोड (ByteBuffer बफ़र, ImageProperties imageProperties)
खास ImageProperties के साथ पिक्सल वैल्यू वाला ByteBuffer लोड करता है.
ध्यान दें: अगर buffer का डेटा टाइप, TensorImage के डेटा टाइप से मेल नहीं खाता है,
तो getTensorBuffer() और getBuffer() को कॉल करने पर, अंकों वाली कास्टिंग और क्लैंपिंग की सुविधा लागू हो जाएगी.
पैरामीटर
| बफ़र | |
|---|---|
| imageProperties |
थ्रो
| IllegalArgumentException | अगर बफ़र साइज़, ImageProperties में इमेज की ऊंचाई, चौड़ाई, और कलर स्पेस के टाइप से मिली इमेज के साइज़ से कम हो
|
|---|
सार्वजनिक शून्य load (TensorBuffer बफ़र, ImageProperties imageProperties)
खास ImageProperties के साथ पिक्सल वैल्यू वाला TensorBuffer लोड करता है.
TensorBuffer के आकार का इस्तेमाल, इमेज की ऊंचाई और चौड़ाई तय करने के लिए नहीं किया जाएगा.
ImageProperties की मदद से इमेज की प्रॉपर्टी सेट करें.
ध्यान दें: अगर buffer का डेटा टाइप, TensorImage के डेटा टाइप से मेल नहीं खाता है,
तो getTensorBuffer() और getBuffer() को कॉल करने पर, अंकों वाली कास्टिंग और क्लैंपिंग की सुविधा लागू हो जाएगी.
पैरामीटर
| बफ़र | |
|---|---|
| imageProperties |
थ्रो
| IllegalArgumentException | अगर बफ़र साइज़, ImageProperties में इमेज की ऊंचाई, चौड़ाई, और कलर स्पेस के टाइप से मिली इमेज के साइज़ से कम हो
|
|---|
Public अमान्य लोड (इमेज इमेज)
इस TensorImage में Image ऑब्जेक्ट लोड करता है.
इस तरीके का मुख्य इस्तेमाल, Image ऑब्जेक्ट को मॉडल इनपुट के तौर पर https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview पर लोड करना होता है.
Image का TensorImage, ImageProcessor पर काम नहीं करता.
* अगर image का ImageFormat, YUV_420_888 न हो, तो @throws IslamicArgumentexcept,
पैरामीटर
| इमेज |
|---|