TensorImage হল ইমেজ অবজেক্টের র্যাপার ক্লাস। TFLite.support লাইব্রেরিতে ইমেজ প্রসেসিং ইউটিলস ব্যবহার করার সময়, বৈকল্পিক ধরনের ইমেজ অবজেক্টকে প্রথমে TensorImage-এ রূপান্তর করা সাধারণ।
বর্তমানে, শুধুমাত্র RGB ছবি সমর্থিত, এবং A চ্যানেল সর্বদা উপেক্ষা করা হয়।
ডেটা স্টোরেজের বিশদ বিবরণ: একটি TensorImage
অবজেক্টে 2টি সম্ভাব্য সত্যের উত্স থাকতে পারে: একটি Bitmap
বা একটি TensorBuffer
। TensorImage
অবস্থা বজায় রাখে এবং প্রয়োজনের সময় শুধুমাত্র একটিকে অন্যটিতে রূপান্তর করে। TensorImage
এর একটি সাধারণ ব্যবহারের ক্ষেত্রে প্রথমে একটি Bitmap
ইমেজ লোড করা, তারপর ImageProcessor
ব্যবহার করে এটি প্রক্রিয়া করা এবং অবশেষে TensorBuffer
অন্তর্নিহিত ByteBuffer
পাওয়া এবং এটিকে TFLite ইন্টারপ্রেটারে খাওয়ানো।
গুরুত্বপূর্ণ: সেরা পারফরম্যান্স অর্জন করতে, TensorImage
যখনই সম্ভব ডেটা কপি করা এড়িয়ে যায়। অতএব, এটি এর ডেটার মালিক নয়। load(Bitmap)
বা load(TensorBuffer, ColorSpaceType)
করার জন্য পাস করা ডেটা অবজেক্টগুলিকে কলারদের পরিবর্তন করা উচিত নয়।
গুরুত্বপূর্ণ: সমস্ত পদ্ধতি থ্রেড-নিরাপদ প্রমাণিত হয় না।
পাবলিক কনস্ট্রাক্টর
টেনসর ইমেজ () একটি TensorImage অবজেক্ট শুরু করে। | |
পাবলিক পদ্ধতি
স্ট্যাটিক টেনসর ইমেজ | createFrom ( TensorImage src, DataType dataType) পছন্দসই ডেটা টাইপের সাথে একটি প্রদত্ত TensorImage একটি গভীর-কপি তৈরি করে। |
স্ট্যাটিক টেনসর ইমেজ | বিটম্যাপ থেকে (বিটম্যাপ বিটম্যাপ) |
বিটম্যাপ | getBitmap () এই TensorImage এর একটি Bitmap উপস্থাপনা প্রদান করে। |
বাইটবাফার | getBuffer () প্রত্যাশিত ডেটা টাইপের সাথে এই TensorImage এর একটি ByteBuffer উপস্থাপনা প্রদান করে। |
কালারস্পেস টাইপ | GetColorSpaceType () এই TensorImage কালার স্পেস টাইপ পায়। |
ডেটা টাইপ | getDataType () এই TensorImage এর ডাটা টাইপ পায়। |
int | উচ্চতা পান () ছবির উচ্চতা পায়। |
ছবি | getMediaImage () এই TensorImage একটি Image উপস্থাপনা প্রদান করে। |
টেনসরবাফার | getTensorBuffer () প্রত্যাশিত ডেটা টাইপের সাথে এই TensorImage এর একটি TensorBuffer উপস্থাপনা প্রদান করে। |
int | getWidth () ছবির প্রস্থ পায়। |
অকার্যকর | লোড ( TensorBuffer বাফার, ColorSpaceType colorSpaceType) নির্দিষ্ট ColorSpaceType সহ পিক্সেল মান ধারণকারী একটি TensorBuffer লোড করে। |
অকার্যকর | লোড (বিটম্যাপ বিটম্যাপ) এই TensorImage একটি Bitmap ইমেজ অবজেক্ট লোড করে। |
অকার্যকর | লোড (int[] পিক্সেল, int[] আকৃতি) এই TensorImage এ RGB পিক্সেল হিসাবে একটি int অ্যারে লোড করে, ভিতরের পিক্সেলগুলিকে উপস্থাপন করে। |
অকার্যকর | লোড (ফ্লোট[] পিক্সেল, int[] আকৃতি) এই TensorImage এ RGB পিক্সেল হিসাবে একটি ফ্লোট অ্যারে লোড করে, ভিতরের পিক্সেলগুলিকে উপস্থাপন করে। |
অকার্যকর | লোড ( ByteBuffer বাফার, ImageProperties imageProperties) নির্দিষ্ট ImageProperties সহ পিক্সেল মান ধারণকারী একটি ByteBuffer লোড করে। |
অকার্যকর | লোড ( TensorBuffer বাফার, ImageProperties imageProperties) নির্দিষ্ট ImageProperties সহ পিক্সেল মান ধারণকারী একটি TensorBuffer লোড করে। |
অকার্যকর | লোড (ছবির ছবি) এই TensorImage ইমেজে একটি Image অবজেক্ট লোড করে। |
উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি
পাবলিক কনস্ট্রাক্টর
পাবলিক টেনসর ইমেজ ()
একটি TensorImage
অবজেক্ট শুরু করে।
দ্রষ্টব্য: এই TensorImage
ডেটা টাইপ হল DataType.UINT8
। অন্যান্য ডেটা প্রকার পছন্দ হলে TensorImage(DataType)
ব্যবহার করুন।
পাবলিক টেনসর ইমেজ ( ডেটা টাইপ ডেটা টাইপ)
নির্দিষ্ট ডেটা টাইপ সহ একটি TensorImage
অবজেক্ট শুরু করে।
এই TensorImage
থেকে একটি TensorBuffer
বা একটি ByteBuffer
পাওয়ার সময়, যেমন getTensorBuffer()
এবং getBuffer()
ব্যবহার করে, ডেটার মানগুলি নির্দিষ্ট ডেটা টাইপে রূপান্তরিত হবে।
দ্রষ্টব্য: একটি TensorImage
আকৃতি স্থির নয়। এই TensorImage
লোড হওয়া ইমেজের আকৃতিতে এটি সামঞ্জস্য করা যেতে পারে।
পরামিতি
ডেটা টাইপ | TensorBuffer প্রত্যাশিত ডেটা টাইপ। TensorImage এর জীবদ্দশায় টাইপ সবসময় স্থির থাকে। ডেটা টাইপ রূপান্তর করতে, একটি অনুলিপি তৈরি করতে createFrom(TensorImage, DataType) ব্যবহার করুন এবং একই সময়ে ডেটা টাইপ রূপান্তর করুন। |
---|
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম | যদি dataType DataType.UINT8 বা DataType.FLOAT32 না হয় |
---|
পাবলিক পদ্ধতি
পাবলিক স্ট্যাটিক TensorImage createFrom ( TensorImage src, DataType dataType)
পছন্দসই ডেটা টাইপের সাথে একটি প্রদত্ত TensorImage
একটি গভীর-কপি তৈরি করে।
পরামিতি
src | যে TensorImage থেকে কপি করতে হবে |
---|---|
ডেটা টাইপ | নতুন তৈরি TensorImage এর প্রত্যাশিত ডেটা টাইপ |
রিটার্নস
- একটি
TensorImage
যার ডেটাsrc
থেকে কপি করা হয়েছে এবং ডেটা টাইপ হলdataType
বিটম্যাপ থেকে পাবলিক স্ট্যাটিক টেনসর ইমেজ (বিটম্যাপ বিটম্যাপ)
একটি Bitmap
সহ DataType.UINT8
এর একটি TensorImage
অবজেক্ট শুরু করে।
পরামিতি
বিটম্যাপ |
---|
সর্বজনীন বিটম্যাপ getBitmap ()
এই TensorImage
এর একটি Bitmap
উপস্থাপনা প্রদান করে।
সংরক্ষিত ডেটা uint8 না হলে সংখ্যাসূচক কাস্টিং এবং ক্ল্যাম্পিং প্রয়োগ করা হবে।
মনে রাখবেন, ALPHA_8
বিটম্যাপ থেকে পিক্সেল পাওয়ার নির্ভরযোগ্য উপায় হল copyPixelsToBuffer
ব্যবহার করা। বিটম্যাপ পদ্ধতি যেমন, `setPixels()` এবং `getPixels` কাজ করে না।
গুরুত্বপূর্ণ: এটি শুধুমাত্র একটি রেফারেন্স। পরিবর্তন করবেন না। কর্মক্ষমতা উদ্বেগের জন্য আমরা এখানে একটি অনুলিপি তৈরি করি না, তবে যদি পরিবর্তনের প্রয়োজন হয় তবে অনুগ্রহ করে একটি অনুলিপি তৈরি করুন৷
রিটার্নস
- এই
TensorBuffer
এরColorSpaceType
এর উপর নির্ভর করেARGB_8888
কনফিগারেশন ("A" চ্যানেল সর্বদা অস্বচ্ছ) বাALPHA_8
এ একটিBitmap
একটি রেফারেন্স।
নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম | যদি TensorImage কখনই ডেটা লোড না করে |
---|
পাবলিক বাইটবাফার getBuffer ()
প্রত্যাশিত ডেটা টাইপের সাথে এই TensorImage
এর একটি ByteBuffer
উপস্থাপনা প্রদান করে।
সংরক্ষিত ডেটা TensorImage
এর ডেটা টাইপ থেকে আলাদা হলে সংখ্যাসূচক কাস্টিং এবং ক্ল্যাম্পিং প্রয়োগ করা হবে।
গুরুত্বপূর্ণ: এটি শুধুমাত্র একটি রেফারেন্স। পরিবর্তন করবেন না। কর্মক্ষমতা উদ্বেগের জন্য আমরা এখানে একটি অনুলিপি তৈরি করি না, তবে যদি পরিবর্তনের প্রয়োজন হয় তবে অনুগ্রহ করে একটি অনুলিপি তৈরি করুন৷
এটি মূলত getTensorBuffer().getBuffer()
এর জন্য একটি শর্ট কাট।
রিটার্নস
- একটি
ByteBuffer
একটি রেফারেন্স যা ইমেজ ডেটা ধারণ করে
নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম | যদি TensorImage কখনই ডেটা লোড না করে |
---|
সর্বজনীন ColorSpaceType getColorSpaceType ()
এই TensorImage
কালার স্পেস টাইপ পায়।
নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম | যদি TensorImage কখনই ডেটা লোড না করে |
---|
সর্বজনীন ডেটা টাইপ getDataType ()
এই TensorImage
এর ডাটা টাইপ পায়।
রিটার্নস
- একটি ডেটা টাইপ। বর্তমানে শুধুমাত্র
DataType.UINT8
এবংDataType.FLOAT32
সমর্থিত।
পাবলিক int getHeight ()
ছবির উচ্চতা পায়।
নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম | যদি TensorImage কখনই ডেটা লোড না করে |
---|---|
অবৈধ আর্গুমেন্ট ব্যতিক্রম | যদি অন্তর্নিহিত ডেটা দূষিত হয় |
সর্বজনীন ছবি getMediaImage ()
এই TensorImage
একটি Image
উপস্থাপনা প্রদান করে।
এই পদ্ধতিটি শুধুমাত্র তখনই কাজ করে যখন TensorImage
একটি Image
দ্বারা ব্যাক করা হয়, যার অর্থ আপনাকে প্রথমে load(Image)
এর মাধ্যমে একটি Image
লোড করতে হবে।
গুরুত্বপূর্ণ: এটি শুধুমাত্র একটি রেফারেন্স। পরিবর্তন করবেন না। কর্মক্ষমতা উদ্বেগের জন্য আমরা এখানে একটি অনুলিপি তৈরি করি না, তবে যদি পরিবর্তনের প্রয়োজন হয় তবে অনুগ্রহ করে একটি অনুলিপি তৈরি করুন৷
রিটার্নস
- এই
TensorBuffer
এরColorSpaceType
এর উপর নির্ভর করেARGB_8888
কনফিগারেশন ("A" চ্যানেল সর্বদা অস্বচ্ছ) বাALPHA_8
এ একটিBitmap
একটি রেফারেন্স।
নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম | যদি TensorImage কখনই ডেটা লোড না করে |
---|
সর্বজনীন TensorBuffer getTensorBuffer ()
প্রত্যাশিত ডেটা টাইপের সাথে এই TensorImage
এর একটি TensorBuffer
উপস্থাপনা প্রদান করে।
সংরক্ষিত ডেটা TensorImage
এর ডেটা টাইপ থেকে আলাদা হলে সংখ্যাসূচক কাস্টিং এবং ক্ল্যাম্পিং প্রয়োগ করা হবে।
গুরুত্বপূর্ণ: এটি শুধুমাত্র একটি রেফারেন্স। পরিবর্তন করবেন না। কর্মক্ষমতা উদ্বেগের জন্য আমরা এখানে একটি অনুলিপি তৈরি করি না, তবে যদি পরিবর্তনের প্রয়োজন হয় তবে অনুগ্রহ করে একটি অনুলিপি তৈরি করুন৷
রিটার্নস
- একটি
TensorBuffer
একটি রেফারেন্স যা ইমেজ ডেটা ধারণ করে
নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম | যদি TensorImage কখনই ডেটা লোড না করে |
---|
পাবলিক int getWidth ()
ছবির প্রস্থ পায়।
নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম | যদি TensorImage কখনই ডেটা লোড না করে |
---|---|
অবৈধ আর্গুমেন্ট ব্যতিক্রম | যদি অন্তর্নিহিত ডেটা দূষিত হয় |
সর্বজনীন অকার্যকর লোড ( টেনসরবাফার বাফার, কালারস্পেস টাইপ কালার স্পেস টাইপ)
নির্দিষ্ট ColorSpaceType
সহ পিক্সেল মান ধারণকারী একটি TensorBuffer
লোড করে।
শুধুমাত্র ColorSpaceType.RGB
এবং ColorSpaceType.GRAYSCALE
সমর্থন করে। অন্যান্য রঙের স্থানের জন্য load(TensorBuffer, ImageProperties)
ব্যবহার করুন।
দ্রষ্টব্য: যদি buffer
ডেটা টাইপ এই TensorImage
এর সাথে মেলে না, getTensorBuffer()
এবং getBuffer()
কল করার সময় সংখ্যাসূচক কাস্টিং এবং ক্ল্যাম্পিং প্রয়োগ করা হবে।
পরামিতি
বাফার | TensorBuffer লোড করা হবে। এর আকৃতি RGB ছবির জন্য হয় (h, w, 3) বা (1, h, w, 3) এবং GRAYSCALE ছবির জন্য হয় (h, w) বা (1, h, w) হওয়া উচিত |
---|---|
colorSpaceType |
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম | যদি বাফারের আকৃতি রঙের স্থানের প্রকারের সাথে মেলে না, বা যদি রঙের স্থানের ধরন সমর্থিত না হয় |
---|
সর্বজনীন অকার্যকর লোড (বিটম্যাপ বিটম্যাপ)
এই 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
এর ডেটা টাইপে মানগুলিকে রূপান্তর করতে সংখ্যাসূচক কাস্টিং এবং ক্ল্যাম্পিং প্রয়োগ করা হবে।
পরামিতি
পিক্সেল | আরজিবি পিক্সেল চিত্রের প্রতিনিধিত্ব করে |
---|---|
আকৃতি | চিত্রের আকৃতি, হয় আকারে হওয়া উচিত (h, w, 3), অথবা আকারে (1, h, w, 3) |
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম | যদি আকৃতিটি না হয় (h, w, 3) বা (1, h, w, 3) |
---|
সর্বজনীন অকার্যকর লোড (ফ্লোট[] পিক্সেল, int[] আকৃতি)
এই TensorImage
এ RGB পিক্সেল হিসাবে একটি ফ্লোট অ্যারে লোড করে, ভিতরের পিক্সেলগুলিকে উপস্থাপন করে।
দ্রষ্টব্য: যদি TensorImage
DataType.FLOAT32
ছাড়া অন্য কোনো ডেটা টাইপ থাকে, তাহলে getTensorBuffer()
এবং getBuffer()
কল করার সময় সংখ্যাসূচক কাস্টিং এবং ক্ল্যাম্পিং প্রয়োগ করা হবে।
পরামিতি
পিক্সেল | আরজিবি পিক্সেল চিত্রের প্রতিনিধিত্ব করে |
---|---|
আকৃতি | চিত্রের আকৃতি, হয় আকারে হওয়া উচিত (h, w, 3), অথবা আকারে (1, h, w, 3) |
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম | যদি আকৃতিটি না হয় (h, w, 3) বা (1, h, w, 3) |
---|
সর্বজনীন অকার্যকর লোড ( বাইটবাফার বাফার, ইমেজ প্রোপার্টিজ ইমেজ প্রোপার্টি)
নির্দিষ্ট ImageProperties
সহ পিক্সেল মান ধারণকারী একটি ByteBuffer
লোড করে।
দ্রষ্টব্য: যদি buffer
ডেটা টাইপ এই TensorImage
এর সাথে মেলে না, getTensorBuffer()
এবং getBuffer()
কল করার সময় সংখ্যাসূচক কাস্টিং এবং ক্ল্যাম্পিং প্রয়োগ করা হবে।
পরামিতি
বাফার | |
---|---|
চিত্র বৈশিষ্ট্য |
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম | যদি বাফার সাইজ 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
দ্বারা সমর্থিত নয়।
* @IllegalArgumentException নিক্ষেপ করে যদি image
ImageFormat
YUV_420_888 না হয়
পরামিতি
ইমেজ |
---|