TensorImage هي فئة برنامج تضمين لكائن الصورة. عند استخدام أدوات معالجة الصور في مكتبة TFLite.support، من الشائع تحويل عناصر الصور في أنواع الصيغ إلى TensorImage في البداية.
في الوقت الحالي، لا يتم دعم سوى الصور بنموذج أحمر أخضر أزرق، ويتم دائمًا تجاهل القناة A.
تفاصيل تخزين البيانات: قد يكون للعنصر TensorImage
مصدران محتملان للحقيقة: Bitmap
أو TensorBuffer
. تحافظ السمة TensorImage
على
حالتها ولا تحوِّل أحدهما إلى الآخر إلا عند الحاجة. إنّ حالة استخدام TensorImage
المعتادة هي تحميل صورة Bitmap
أولاً، ثم معالجتها باستخدام ImageProcessor
، وأخيرًا الحصول على ByteBuffer
الأساسي من TensorBuffer
وإدخاله في مترجم TFLite.
ملاحظة مهمة: لتحقيق أفضل أداء، يتجنّب TensorImage
نسخ البيانات كلما أمكن ذلك. لذلك، لا تمتلك البيانات الخاصة بها. يجب ألا يعدّل المتصلون عناصر البيانات التي
يتم تمريرها إلى load(Bitmap)
أو load(TensorBuffer, ColorSpaceType)
.
ملاحظة مُهمة: لم يتم إثبات أنّ جميع الطرق آمنة للسلاسل.
الإنشاء العام
TensorImage()
تعمل هذه السياسة على إعداد كائن
TensorImage . |
|
الطرق العامة
ثابتة TensorImage |
createFrom(TensorImage src, DataType dataType)
لإنشاء نسخة تفصيلية من
TensorImage محدّد مع نوع البيانات المطلوب. |
ثابتة TensorImage |
fromBitmap(صورة نقطية للصورة النقطية)
|
صورة نقطية |
getBitmap()
تعرض تمثيل
Bitmap لـ TensorImage هذه. |
ByteBuffer |
getBuffer()
تعرض تمثيل
ByteBuffer لـ TensorImage هذا مع نوع البيانات المتوقّع. |
ColorSpaceType |
getColorSpaceType()
الحصول على نوع مساحة اللون لجهاز
TensorImage هذا. |
DataType |
getDataType()
للحصول على نوع بيانات "
TensorImage " هذا. |
int |
getHeight()
الحصول على ارتفاع الصورة.
|
صورة |
getMediaImage()
تعرض تمثيل
Image لـ TensorImage هذه. |
TensorBuffer |
getTensorBuffer()
تعرض تمثيل
TensorBuffer لـ TensorImage هذا مع نوع البيانات المتوقّع. |
int |
getWidth()
للحصول على عرض الصورة.
|
void |
load(المخزن المؤقت TensorBuffer، وColorSpaceType colorSpaceType)
لتحميل
TensorBuffer التي تحتوي على قيم البكسل مع ColorSpaceType المحددة. |
void |
load(الصورة النقطية للصورة النقطية)
لتحميل عنصر صورة
Bitmap في TensorImage هذا. |
void |
load(int[] بكسل, int[] shape)
لتحميل صفيف صحيح على هيئة وحدات بكسل RGB في
TensorImage ، والتي تمثل وحدات البكسل بداخله. |
void |
load(float[] بكسل, int[] shape)
لتحميل مصفوفة عائمة على شكل وحدات بكسل RGB في
TensorImage هذه، والتي تمثل وحدات البكسل داخلها. |
void |
load(التخزين المؤقت ByteBuffer وImageProperties imageProperties)
لتحميل
ByteBuffer التي تحتوي على قيم البكسل مع ImageProperties المحددة. |
void |
load(المخزن المؤقت TensorBuffer، وImageProperties imageProperties)
لتحميل
TensorBuffer التي تحتوي على قيم البكسل مع ImageProperties المحددة. |
void |
load(صورة من الصورة)
لتحميل كائن
Image في TensorImage هذا. |
الطرق المكتسَبة
الإنشاء العام
public TensorImage ()
تعمل هذه السياسة على إعداد كائن TensorImage
.
ملاحظة: نوع البيانات لهذه السمة TensorImage
هو DataType.UINT8
. استخدِم TensorImage(DataType)
إذا كان من الأفضل استخدام أنواع بيانات أخرى.
public TensorImage (DataType dataType)
تعمل هذه السياسة على إعداد كائن TensorImage
بنوع البيانات المحدّد.
عند الحصول على TensorBuffer
أو ByteBuffer
من TensorImage
،
مثل استخدام getTensorBuffer()
وgetBuffer()
، سيتم تحويل قيم البيانات إلى نوع البيانات المحدّد.
ملاحظة: شكل TensorImage
غير ثابت. ويمكن ضبطها على شكل
الصورة التي يتم تحميلها على TensorImage
هذا.
المَعلمات
dataType | نوع البيانات المتوقع للسمة TensorBuffer الناتجة. ويكون النوع ثابتًا دائمًا خلال فترة استخدام TensorImage . لتحويل نوع البيانات، استخدِم createFrom(TensorImage, DataType) لإنشاء نسخة من البيانات وتحويلها في الوقت نفسه. |
---|
الرميات
IllegalArgumentException | إذا لم يكن dataType هو DataType.UINT8 أو DataType.FLOAT32
|
---|
الطرق العامة
public static TensorImage createFrom (TensorImage src, DataType dataType)
لإنشاء نسخة تفصيلية من TensorImage
محدّد مع نوع البيانات المطلوب.
المَعلمات
src | TensorImage للنسخ من |
---|---|
dataType | نوع البيانات المتوقَّع لـ TensorImage التي تم إنشاؤها حديثًا |
المرتجعات
TensorImage
التي تم نسخ بياناتها منsrc
ونوع البياناتdataType
public static TensorImage fromBitmap (صورة نقطية للصورة النقطية)
تعمل هذه السياسة على إعداد كائن TensorImage
من DataType.UINT8
باستخدام Bitmap
.
المَعلمات
صورة نقطية |
---|
public الصورة النقطية getBitmap ()
تعرض تمثيل Bitmap
لـ TensorImage
هذه.
سيتم تطبيق البث الرقمي والتثبيت إذا لم تكن البيانات المخزَّنة uint8.
لاحظ أن الطريقة الموثوق بها للحصول على وحدات البكسل من صورة نقطية ALPHA_8
هي استخدام copyPixelsToBuffer
. لا تعمل طرق الصور النقطية، مثل `setPixels()` و `getPixels`.
ملاحظة مهمّة: إنّه مرجع فقط. يُرجى عدم التعديل. لا ننشئ نسخة هنا للمخاوف المتعلّقة بالأداء، ولكن إذا كان التعديل ضروريًا، يُرجى إنشاء نسخة.
المرتجعات
- إشارة إلى
Bitmap
في إعداداتARGB_8888
(تكون القناة "A" معتمة دائمًا) أو باللغةALPHA_8
، استنادًا إلىColorSpaceType
لـTensorBuffer
هذه.
الرميات
IllegalStateException | إذا لم يتم تحميل البيانات من خلال TensorImage مطلقًا
|
---|
public ByteBuffer getBuffer ()
تعرض تمثيل ByteBuffer
لـ TensorImage
هذا مع نوع البيانات المتوقّع.
سيتم تطبيق البث الرقمي والتثبيت إذا كانت البيانات المخزَّنة مختلفة عن نوع بيانات TensorImage
.
ملاحظة مهمّة: إنّه مرجع فقط. يُرجى عدم التعديل. لا ننشئ نسخة هنا للمخاوف المتعلّقة بالأداء، ولكن إذا كان التعديل ضروريًا، يُرجى إنشاء نسخة.
إنه في الأساس اختصار لـ getTensorBuffer().getBuffer()
.
المرتجعات
- إشارة إلى
ByteBuffer
التي تحتفظ ببيانات الصورة
الرميات
IllegalStateException | إذا لم يتم تحميل البيانات من خلال TensorImage مطلقًا
|
---|
public ColorSpaceType getColorSpaceType ()
الحصول على نوع مساحة اللون لجهاز TensorImage
هذا.
الرميات
IllegalStateException | إذا لم يتم تحميل البيانات من خلال TensorImage مطلقًا
|
---|
public DataType getDataType ()
للحصول على نوع بيانات "TensorImage
" هذا.
المرتجعات
- نوع البيانات. يُسمح حاليًا باستخدام الترميزَين
DataType.UINT8
وDataType.FLOAT32
فقط.
public int getHeight ()
الحصول على ارتفاع الصورة.
الرميات
IllegalStateException | إذا لم يتم تحميل البيانات من خلال TensorImage مطلقًا |
---|---|
IllegalArgumentException | إذا كانت البيانات الأساسية تالفة |
public صورة getMediaImage ()
تعرض تمثيل Image
لـ TensorImage
هذه.
لا تعمل هذه الطريقة إلا إذا كان TensorImage
متوافقًا مع Image
، ما يعني أنّه عليك أولاً تحميل Image
إلى load(Image)
.
ملاحظة مهمّة: إنّه مرجع فقط. يُرجى عدم التعديل. لا ننشئ نسخة هنا للمخاوف المتعلّقة بالأداء، ولكن إذا كان التعديل ضروريًا، يُرجى إنشاء نسخة.
المرتجعات
- إشارة إلى
Bitmap
في إعداداتARGB_8888
(تكون القناة "A" معتمة دائمًا) أو باللغةALPHA_8
، استنادًا إلىColorSpaceType
لـTensorBuffer
هذه.
الرميات
IllegalStateException | إذا لم يتم تحميل البيانات من خلال TensorImage مطلقًا
|
---|
public TensorBuffer getTensorBuffer ()
تعرض تمثيل TensorBuffer
لـ TensorImage
هذا مع نوع البيانات المتوقّع.
سيتم تطبيق البث الرقمي والتثبيت إذا كانت البيانات المخزَّنة مختلفة عن نوع بيانات TensorImage
.
ملاحظة مهمّة: إنّه مرجع فقط. يُرجى عدم التعديل. لا ننشئ نسخة هنا للمخاوف المتعلّقة بالأداء، ولكن إذا كان التعديل ضروريًا، يُرجى إنشاء نسخة.
المرتجعات
- إشارة إلى
TensorBuffer
التي تحتفظ ببيانات الصورة
الرميات
IllegalStateException | إذا لم يتم تحميل البيانات من خلال TensorImage مطلقًا
|
---|
public int getWidth ()
للحصول على عرض الصورة.
الرميات
IllegalStateException | إذا لم يتم تحميل البيانات من خلال TensorImage مطلقًا |
---|---|
IllegalArgumentException | إذا كانت البيانات الأساسية تالفة |
متاح للجميع إلغاء تحميل (TensorBuffer، ColorSpaceType colorSpaceType)
لتحميل TensorBuffer
التي تحتوي على قيم البكسل مع ColorSpaceType
المحددة.
يمكن استخدام ColorSpaceType.RGB
وColorSpaceType.GRAYSCALE
فقط. يمكنك استخدام load(TensorBuffer, ImageProperties)
لأنواع مساحات الألوان الأخرى.
ملاحظة: إذا كان نوع بيانات buffer
لا يتطابق مع نوع بيانات TensorImage
هذا،
سيتم تطبيق البث الرقمي والتثبيت عند استدعاء getTensorBuffer()
وgetBuffer()
.
المَعلمات
المخزن المؤقت | TensorBuffer المراد تحميلها. ويجب أن يكون شكله إما (h، w، 3) أو
(1، h، w، 3) للصور ذات اللون الأحمر والأخضر والأزرق (RGB)، وإما (h، w) أو (1، h، w) للصور ذات الحجم الرمادي |
---|---|
colorSpaceType |
الرميات
IllegalArgumentException | إذا كان شكل المخزن المؤقت لا يتطابق مع نوع مساحة اللون، أو إذا كان نوع مساحة اللون غير متوافق |
---|
علني إلغاء تحميل (صورة نقطية)
لتحميل عنصر صورة Bitmap
في TensorImage
هذا.
ملاحظة: إذا كان TensorImage
يحتوي على نوع بيانات غير DataType.UINT8
، سيتم تطبيق البث الرقمي والتثبيت عند استدعاء getTensorBuffer()
وgetBuffer()
، حيث سيتم تحويل Bitmap
إلى TensorBuffer
.
هام: عند تحميل صورة نقطية، لا تقم بتعديل الصورة النقطية من جانب المتصل بعد الآن. سيعتمد الكائن TensorImage
على الصورة النقطية. ومن المحتمل أن يعدّل الصورة النقطية أيضًا.
في هذه الطريقة، نستخدم طريقة "بدون نسخة مطابقة" لهذه الصورة النقطية من خلال الاحتفاظ بمرجعها. استخدِم bitmap.copy(bitmap.getConfig(), true)
لإنشاء نسخة عند الضرورة.
ملاحظة: للحصول على أفضل أداء، يُرجى تحميل الصور بالشكل نفسه لتجنُّب إعادة تخصيص الذاكرة.
المَعلمات
صورة نقطية |
---|
الرميات
IllegalArgumentException | إذا لم يكن bitmap في ARGB_8888
|
---|
متاح للجميع إلغاء تحميل (int[] بكسل، شكل int[])
لتحميل صفيف صحيح على هيئة وحدات بكسل RGB في TensorImage
، والتي تمثل وحدات البكسل بداخله.
ملاحظة: سيتم تطبيق البث الرقمي والتثبيت لتحويل القيم إلى نوع بيانات TensorImage
هذا عند استدعاء getTensorBuffer()
وgetBuffer()
.
المَعلمات
بكسل | وحدات بكسل RGB التي تمثل الصورة |
---|---|
shape | شكل الصورة، يجب إما على شكل (h، w، 3)، أو على شكل (1، h، w، 3) |
الرميات
IllegalArgumentException | إذا لم يكن الشكل (h, w, 3) ولا (1, h, w, 3) |
---|
متاح للجميع إلغاء تحميل (وحدات بكسل عائمة[] بكسل، شكل عدد صحيح)
لتحميل مصفوفة عائمة على شكل وحدات بكسل RGB في TensorImage
هذه، والتي تمثل وحدات البكسل داخلها.
ملاحظة: إذا كانت السمة TensorImage
تتضمّن نوع بيانات غير DataType.FLOAT32
،
سيتم تطبيق البث الرقمي والتثبيت عند استدعاء getTensorBuffer()
وgetBuffer()
.
المَعلمات
بكسل | وحدات بكسل RGB التي تمثل الصورة |
---|---|
shape | شكل الصورة، يجب إما على شكل (h، w، 3)، أو على شكل (1، h، w، 3) |
الرميات
IllegalArgumentException | إذا لم يكن الشكل (h, w, 3) ولا (1, h, w, 3) |
---|
عام إلغاء تحميل (ByteBuffer buffer, ImageProperties imageProperties)
لتحميل ByteBuffer
التي تحتوي على قيم البكسل مع ImageProperties
المحددة.
ملاحظة: إذا كان نوع بيانات buffer
لا يتطابق مع نوع بيانات TensorImage
هذا،
سيتم تطبيق البث الرقمي والتثبيت عند استدعاء getTensorBuffer()
وgetBuffer()
.
المَعلمات
المخزن المؤقت | |
---|---|
imageProperties |
الرميات
IllegalArgumentException | إذا كان حجم المخزن المؤقت أقل من حجم الصورة المُشار إليه في ارتفاع الصورة وعرضها ونوع مساحة اللون في ImageProperties
|
---|
متاح للجميع إبطال تحميل (TensorBuffer buffer، ImageProperties imageProperties)
لتحميل TensorBuffer
التي تحتوي على قيم البكسل مع ImageProperties
المحددة.
ولن يتم استخدام شكل TensorBuffer
لتحديد ارتفاع الصورة وعرضها.
يمكنك ضبط خصائص الصور من خلال ImageProperties
.
ملاحظة: إذا كان نوع بيانات buffer
لا يتطابق مع نوع بيانات TensorImage
هذا،
سيتم تطبيق البث الرقمي والتثبيت عند استدعاء getTensorBuffer()
وgetBuffer()
.
المَعلمات
المخزن المؤقت | |
---|---|
imageProperties |
الرميات
IllegalArgumentException | إذا كان حجم المخزن المؤقت أقل من حجم الصورة المُشار إليه في ارتفاع الصورة وعرضها ونوع مساحة اللون في ImageProperties
|
---|
متاح للجميع إلغاء تحميل (صورة من الصورة)
لتحميل كائن Image
في TensorImage
هذا.
ويتمثل الاستخدام الرئيسي لهذه الطريقة في تحميل عنصر Image
كإدخال نموذج إلى https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview.
TensorImage
المدعوم من Image
غير متوافق مع ImageProcessor
.
* @throws UnusedArgumentException إذا لم يكن ImageFormat
الخاص بالسمة image
هو YUV_420_888
المَعلمات
صورة |
---|