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,
पैरामीटर
इमेज |
---|