TensorImage

পাবলিক ক্লাস টেনসর ইমেজ

TensorImage হল ইমেজ অবজেক্টের র্যাপার ক্লাস। TFLite.support লাইব্রেরিতে ইমেজ প্রসেসিং ইউটিলস ব্যবহার করার সময়, বৈকল্পিক ধরনের ইমেজ অবজেক্টকে প্রথমে TensorImage-এ রূপান্তর করা সাধারণ।

বর্তমানে, শুধুমাত্র RGB ছবি সমর্থিত, এবং A চ্যানেল সর্বদা উপেক্ষা করা হয়।

ডেটা স্টোরেজের বিশদ বিবরণ: একটি TensorImage অবজেক্টে 2টি সম্ভাব্য সত্যের উত্স থাকতে পারে: একটি Bitmap বা একটি TensorBufferTensorImage অবস্থা বজায় রাখে এবং প্রয়োজনের সময় শুধুমাত্র একটিকে অন্যটিতে রূপান্তর করে। TensorImage এর একটি সাধারণ ব্যবহারের ক্ষেত্রে প্রথমে একটি Bitmap ইমেজ লোড করা, তারপর ImageProcessor ব্যবহার করে এটি প্রক্রিয়া করা এবং অবশেষে TensorBuffer অন্তর্নিহিত ByteBuffer পাওয়া এবং এটিকে TFLite ইন্টারপ্রেটারে খাওয়ানো।

গুরুত্বপূর্ণ: সেরা পারফরম্যান্স অর্জন করতে, TensorImage যখনই সম্ভব ডেটা কপি করা এড়িয়ে যায়। অতএব, এটি এর ডেটার মালিক নয়। load(Bitmap) বা load(TensorBuffer, ColorSpaceType) করার জন্য পাস করা ডেটা অবজেক্টগুলিকে কলারদের পরিবর্তন করা উচিত নয়।

গুরুত্বপূর্ণ: সমস্ত পদ্ধতি থ্রেড-নিরাপদ প্রমাণিত হয় না।

পাবলিক কনস্ট্রাক্টর

টেনসর ইমেজ ()
একটি TensorImage অবজেক্ট শুরু করে।
টেনসর ইমেজ ( ডেটা টাইপ ডেটা টাইপ)
নির্দিষ্ট ডেটা টাইপ সহ একটি TensorImage অবজেক্ট শুরু করে।

পাবলিক পদ্ধতি

স্ট্যাটিক টেনসর ইমেজ
createFrom ( TensorImage src, DataType dataType)
পছন্দসই ডেটা টাইপের সাথে একটি প্রদত্ত TensorImage একটি গভীর-কপি তৈরি করে।
স্ট্যাটিক টেনসর ইমেজ
বিটম্যাপ থেকে (বিটম্যাপ বিটম্যাপ)
একটি Bitmap সহ DataType.UINT8 এর একটি 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 না হয়

পরামিতি
ইমেজ