Transformers documentation
معالج الصور
معالج الصور
يتولى مُعالج الصور مسؤولية تحميل الصور (اختياريًا)، وتجهيز ميزات الإدخال لنماذج الرؤية، ومعالجة مخرجاتها بعد التشغيل. وتشمل هذه العملية تحويلات مثل تغيير الحجم، والتطبيع، والتحويل إلى متجهات PyTorch وNumpy. وقد تشمل أيضًا معالجة لاحقة خاصة بالنموذج، مثل تحويل القيم الاحتمالية (logits) إلى أقنعة تجزئة.
تستخدم معالجات الصور بنية معمارية مبنية على الخلفية (backend). وهيكلية الفئات هي:
- BaseImageProcessor — فئة أساسية مجردة (لأغراض التوافق مع الإصدارات السابقة فقط؛ لا تُنشأ مباشرةً)
- TorchvisionBackend — الواجهة الخلفية الافتراضية المعتمدة على torchvision. تعمل بتسريع عبر وحدة معالجة الرسوميات (GPU) وهي أسرع بكثير من الواجهة الخلفية المعتمدة على PIL. جميع النماذج تعرض فئة
<Model>ImageProcessorترث منها. - PilBackend — بديل الخلفية المبنية على PIL/NumPy. محمولة، وتعتمد على المعالج المركزي فقط. متاحة فقط للنماذج الأقدم عبر فئة
<Model>ImageProcessorPil؛ وهي مفيدة عند الحاجة إلى تطابق عددي دقيق مع التنفيذ الأصلي.
- TorchvisionBackend — الواجهة الخلفية الافتراضية المعتمدة على torchvision. تعمل بتسريع عبر وحدة معالجة الرسوميات (GPU) وهي أسرع بكثير من الواجهة الخلفية المعتمدة على PIL. جميع النماذج تعرض فئة
توفر كلا الواجهتين الخلفيتين نفس واجهة البرمجة. استخدم خاصية backend لفحص الواجهة الخلفية التي يستخدمها المعالج المحمّل (على سبيل المثال processor.backend == "torchvision").
مرّر backend إلى AutoImageProcessor.from_pretrained() لاختيار واجهة خلفية. عند إغفال backend (وهو الافتراضي)، يتم اختيار torchvision إذا كان مثبّتًا، وإلا يُستخدم PIL. بعض النماذج التي تستخدم استيفاء Lanczos (Chameleon، Flava، Idefics3، SmolVLM) هي استثناء، وتُستخدم PIL افتراضيًا عندما يكون torchvision < 0.27. فرض backend="torchvision" لهذه النماذج على torchvision < 0.27 يؤدي إلى الرجوع إلى استيفاء BICUBIC، لأن torchvision يدعم Lanczos للمصفوفات (tensors) فقط من الإصدار 0.27 فصاعدًا.
from transformers import AutoImageProcessor
# Default: picks torchvision if available, otherwise pil
processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50")
# Explicitly request torchvision
processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50", backend="torchvision")
# Explicitly request PIL
processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50", backend="pil")عند استخدام واجهة torchvision الخلفية، يمكنك تعيين معامل device لتحديد الجهاز الذي يجب أن تتم عليه المعالجة. افتراضيًا، تتم المعالجة على نفس الجهاز الذي توجد عليه المدخلات إذا كانت المدخلات من نوع tensors، أو على وحدة المعالجة المركزية (CPU) في حال العكس.
import torch
from torchvision.io import read_image
from transformers import DetrImageProcessor
device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"
images = read_image("image.jpg")
processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-50")
images_processed = processor(images, return_tensors="pt", device=device)فيما يلي بعض مقارنات السرعة بين واجهتي torchvision وPIL لنموذجي DETR وRT-DETR، وكيف تؤثران على زمن الاستدلال الكلي:




تم تشغيل هذه الاختبارات المرجعية على وحدة AWS EC2 g5.2xlarge، باستخدام معالج رسومي NVIDIA A10G Tensor Core.
ImageProcessingMixin
هذا مزيج لمعالج الصور يُستخدم لتوفير وظائف الحفظ/التحميل لمستخرِقات الميزات التسلسلية والصور.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )
المعاملات
- pretrained_model_name_or_path (
strأوos.PathLike) — يمكن أن يكون هذا:- سلسلة نصية، وهي معرف النموذج لمعالج صور مُدرَّب مسبقًا مستضاف داخل مستودع نموذج على huggingface.co.
- مسار إلى مجلد يحتوي على معالج صور محفوظ باستخدام طريقة
save_pretrained()، على سبيل المثال
./my_model_directory/. - مسار إلى ملف JSON لمعالج صور محفوظ، على سبيل المثال
./my_model_directory/preprocessor_config.json.
- cache_dir (
strأوos.PathLike، اختياري) — المسار إلى مجلد يجب تخزين مُعالج الصور المُسبق التدريب في الموديل المُحمّل فيه إذا لم يُستخدم المجلد المؤقت القياسي. - force_download (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إجبار (إعادة) تنزيل ملفات معالج الصور وتجاوز الإصدارات المخزنة مؤقتًا إذا كانت موجودة. - proxies (
dict[str, str], اختياري) — قاموس لخوادم الوكيل (proxy) للاستخدام حسب البروتوكول أو نقطة النهاية، على سبيل المثال{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.تُستخدم هذه الوكلاء في كل طلب. - token (
strأوbool، اختياري) — الرمز الذي يُستخدم كتفويض حامل HTTP للملفات البعيدة. إذا كانTrue، أو لم يُحدد، فسيتم استخدام الرمز الذي تم إنشاؤه عند تشغيلhf auth login(المخزَّن في~/.huggingface). - revision (
str، اختياري، القيمة الافتراضية"main") — الإصدار المحدد من النموذج الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف commit، نظرًا لاستخدامنا نظامًا قائمًا على git لتخزين النماذج والمخرجات الأخرى على huggingface.co، لذا يمكن أن يكونrevisionأي معرّف يسمح به git.
أنشئ نوعًا من ImageProcessingMixin من معالج الصور.
أمثلة:
# We can't instantiate directly the base class *ImageProcessingMixin* so let's show the examples on a
# derived class: *CLIPImageProcessor*
image_processor = CLIPImageProcessor.from_pretrained(
"openai/clip-vit-base-patch32"
) # Download image_processing_config from huggingface.co and cache.
image_processor = CLIPImageProcessor.from_pretrained(
"./test/saved_model/"
) # E.g. image processor (or model) was saved using *save_pretrained('./test/saved_model/')*
image_processor = CLIPImageProcessor.from_pretrained("./test/saved_model/preprocessor_config.json")
image_processor = CLIPImageProcessor.from_pretrained(
"openai/clip-vit-base-patch32", do_normalize=False, foo=False
)
assert image_processor.do_normalize is False
image_processor, unused_kwargs = CLIPImageProcessor.from_pretrained(
"openai/clip-vit-base-patch32", do_normalize=False, foo=False, return_unused_kwargs=True
)
assert image_processor.do_normalize is False
assert unused_kwargs == {"foo": False}save_pretrained
< source >( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )
المعاملات
- save_directory (
strأوos.PathLike) — المجلد الذي سيتم حفظ ملف JSON لمعالج الصور فيه (سيتم إنشاؤه إذا لم يكن موجودًا). - push_to_hub (
bool، اختياري، الافتراضيFalse) — ما إذا كان سيتم دفع نموذجك إلى مركز نماذج Hugging Face بعد حفظه. يمكنك تحديد المستودع الذي تريد الدفع إليه باستخدامrepo_id(سيكون الافتراضي هو اسمsave_directoryفي نطاقك). - kwargs (
dict[str, Any]، اختياري) — حجج إضافية بأسماء تُمرَّر إلى طريقة push_to_hub().
احفظ كائن معالج الصور في المجلد save_directory حتى يمكن إعادة تحميله باستخدام طريقة الفئة from_pretrained().
BatchFeature
فئة transformers.BatchFeature
< source >( data: dict[str, typing.Any] | None = Nonetensor_type: None | str | transformers.utils.generic.TensorType = Noneskip_tensor_conversion: list[str] | set[str] | None = None )
المعاملات
- data (
dict, اختياري) — قاموس من القوائم/المصفوفات/الموترات التي تُعاد بواسطة طرائق call/pad (مثل ‘input_values’، ‘attention_mask’، وما إلى ذلك). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة. - skip_tensor_conversion (
list[str]أوset[str]، اختياري) — قائمة أو مجموعة من المفاتيح التي يجب ألا تُحوَّل إلى متجهات، حتى لو تم تحديدtensor_type.
يحتوي على مخرجات طريقة pad() وطريقة __call__ الخاصة بمستخرج الميزات.
تُشتق هذه الفئة من قاموس بايثون ويمكن استخدامها كقاموس.
convert_to_tensors
< source >( tensor_type: str | transformers.utils.generic.TensorType | None = Noneskip_tensor_conversion: list[str] | set[str] | None = None )
المعاملات
- tensor_type (
strأو TensorType، اختياري) — نوع المصفوفات (tensors) المراد استخدامه. إذا كانstr، فيجب أن يكون أحد قيم التعداد TensorType. إذا كانNone، فلا يتم إجراء أي تعديل. - skip_tensor_conversion (
list[str]أوset[str]، اختياري) — قائمة أو مجموعة من المفاتيح التي يجب ألا تُحوَّل إلى متجهات، حتى لو تم تحديدtensor_type.
قم بتحويل المحتوى الداخلي إلى متجهات.
ملاحظة: تُتجاهل تلقائيًا القيم التي لا تملك بنية تشبه المصفوفة (مثل السلاسل النصية، والقواميس، وقوائم السلاسل النصية) ولن يتم تحويلها إلى متجهات. أما المصفوفات غير المنتظمة (قوائم من المصفوفات بطول مختلف) فيُحاول تحويلها، لكنها قد تثير أخطاء أثناء عملية التحويل.
إلى
< source >( *args**kwargs ) → BatchFeature
أرسل جميع القيم إلى الجهاز عن طريق استدعاء v.to(*args, **kwargs) (PyTorch فقط). يجب أن يدعم هذا التحويل إلى أنواع بيانات dtypes مختلفة وإرسال BatchFeature إلى جهاز device مختلف.
BaseImageProcessor
فئة transformers.BaseImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
الفئة الأساسية لمعالجات الصور مع بنية خلفية مبنية على الوراثة.
تعريف هذا الصنف خط المعالجة المسبقة: التحقق من صحة معاملات kwargs، وتجهيز المدخلات، وتوجيه الطلبات إلى طريقة _preprocess الخاصة بالخلفية. ترث صنفات الخلفية الفرعية (TorchvisionBackend، PilBackend) من هذا الصنف وتنفذ عمليات الصور الفعلية (تحديد الحجم، القص، إعادة التحجيم، التطبيع، وما إلى ذلك). ثم ترث معالجات الصور الخاصة بالنموذج من صنف الخلفية المناسب.
نظرة عامة على البنية
هيكلية الفئات هي:
BaseImageProcessor (هذه الفئة) ├── TorchvisionBackend (مع تسريع GPU، torch.Tensor) │ └── ModelImageProcessor (مثل LlavaNextImageProcessor) └── PilBackend (CPU محمول، np.ndarray) └── ModelImageProcessorPil (مثل CLIPImageProcessorPil)
مسار المعالجة المسبقة هو:
call() → preprocess() → _preprocess_image_like_inputs() → _prepare_image_like_inputs() (يستدعي process_image لكل صورة) → _preprocess() (عمليات الدفعة: تغيير الحجم، القص، إلخ)
process_image: تنفّذها الخوادم الخلفية. تحوّل مدخلاً خاماً واحداً (PIL أو NumPy أو Tensor) إلى الصيغة التشغيلية للخادم الخلفي (torch.Tensor أو np.ndarray)، وتتعامل مع تحويل RGB وإعادة ترتيب القنوات._preprocess: تنفّذه الخوادم الخلفية. يقوم بمعالجة الدفعة الفعلية (تحديد الحجم، القص المركزي، إعادة التحجيم، التطبيع، الحشو) ويعيدBatchFeature.
التطبيق الأساسي
للمعالجات التي تحتاج فقط إلى عمليات قياسية (تغيير الحجم، القص من المنتصف، إعادة التحجيم، التطبيع)، ورّث من backend وحدد سمات الفئة:
from transformers.image_processing_backends import PilBackend
class MyImageProcessorPil(PilBackend): resample = PILImageResampling.BILINEAR image_mean = IMAGENET_DEFAULT_MEAN image_std = IMAGENET_DEFAULT_STD size = {“height”: 224, “width”: 224} do_resize = True do_rescale = True do_normalize = True
يتولى منهج _preprocess الخاص بالخلفية معالجة خط المعالجة القياسي تلقائيًا.
المعالجة المخصصة
للمعالجات التي تتطلب منطقًا مخصصًا (مثل المعالجة على أساس البقع، أو أنواع مدخلات متعددة)، قم بتجاوز _preprocess في المعالج الخاص بنموذجك. يتلقى أسلوب _preprocess صورًا جاهزة مسبقًا (تم تحويلها إلى صيغة الخلفية مع ترتيب القنوات أولاً) وينفذ المعالجة الفعلية:
class MyImageProcessor(TorchvisionBackend): def _preprocess(self, images, do_resize, size, do_normalize, image_mean, image_std, **kwargs):
تجميع الصور حسب الشكل لعمليات الدفع الفعّالة
grouped_images, grouped_images_index = group_images_by_shape(images) processed_groups = {} for shape, stacked_images in grouped_images.items(): if do_resize: stacked_images = self.resize(stacked_images, size=size) if do_normalize: stacked_images = self.normalize(stacked_images, mean=image_mean, std=image_std) processed_groups[shape] = stacked_images processed_images = reorder_images(processed_groups, grouped_images_index) return BatchFeature(data={“pixel_values”: processed_images})
للمعالجات التي تتعامل مع أنواع مدخلات متعددة (مثل الصور + خرائط التقسيم)، تجاوز _preprocess_image_like_inputs:
def _preprocess_image_like_inputs( self, images: ImageInput, segmentation_maps: ImageInput | None = None, kwargs, ) -> BatchFeature: images = self._prepare_image_like_inputs(images,kwargs) batch_feature = self._preprocess(images, **kwargs)
if segmentation_maps is not None: maps = self._prepare_image_like_inputs(segmentation_maps, kwargs) batch_feature[“labels”] = self._preprocess(maps,kwargs).pixel_values
return batch_feature
توسيع سلوك الخلفية
لتخصيص العمليات لواجهة خلفية محددة، قم بإنشاء فئة فرعية من الواجهة الخلفية وتجاوز دوالها:
from transformers.image_processing_backends import TorchvisionBackend, PilBackend
class MyTorchvisionProcessor(TorchvisionBackend): def resize(self, image, size, **kwargs):
منطق تحجيم مخصص لـ torchvision
return super().resize(image, size, **kwargs)
class MyPilProcessor(PilBackend): def resize(self, image, size, **kwargs):
منطق تحجيم مخصص لـ PIL
return super().resize(image, size, **kwargs)
معلمات مخصصة
لإضافة معاملات تتجاوز ImagesKwargs، أنشئ فئة kwargs مخصصة واضبطها كـvalid_kwargs:
class MyImageProcessorKwargs(ImagesKwargs): custom_param: int | None = None
class MyImageProcessor(TorchvisionBackend): valid_kwargs = MyImageProcessorKwargs custom_param = 10 # القيمة الافتراضية
ملاحظات رئيسية
- يتم اختيار الخلفية على مستوى الفئة: ورث من
TorchvisionBackendأوPilBackend - تستقبل الخلفيات الصور على شكل
torch.Tensor(Torchvision) أوnp.ndarray(PIL)، مع وضع القنوات أولاً دائماً - جميع الصور تحتوي على بُعد القناة أولاً أثناء المعالجة، بغض النظر عن الخلفية
- تتخذ الحُجج التي لا يوفّرها المستخدمون قيمَ سمات الفئة افتراضيًا
- تُغلّف فئات الخلفية (Backend) المنطق الخاص بالخلفية (مثل تغيير الحجم والتطبيع، إلخ) ويمكن تجاوزها
center_crop
< source >( image: ndarraysize: dictdata_format: str | transformers.image_utils.ChannelDimension | None = Noneinput_data_format: str | transformers.image_utils.ChannelDimension | None = None**kwargs )
المعاملات
- image (
np.ndarray) — الصورة التي سيتم قصّها من المنتصف. - size (
dict[str, int]) — حجم الصورة الناتجة. - data_format (
strأوChannelDimension, اختياري) — تنسيق بُعد القناة للصورة الناتجة. إذا لم يُضبط، يُستخدم تنسيق بُعد القناة للصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
- input_data_format (
ChannelDimensionأوstr, اختياري) — تنسيق بُعد القنوات للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القنوات من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
يقوم بقصّ صورة من المنتصف إلى (size["height"], size["width"]). إذا كانت أبعاد المدخل أصغر من crop_size على أي حافة، يتم ملء الصورة بأصفار ثم قصّها من المنتصف.
normalize
< source >( image: ndarraymean: float | collections.abc.Iterable[float]std: float | collections.abc.Iterable[float]data_format: str | transformers.image_utils.ChannelDimension | None = Noneinput_data_format: str | transformers.image_utils.ChannelDimension | None = None**kwargs ) → np.ndarray
المعاملات
- image (
np.ndarray) — الصورة المراد تطبيعها. - mean (
floatأوIterable[float]) — متوسط الصورة المستخدم للتطبيع. - std (
floatأوIterable[float]) — انحراف المعيار للصورة المستخدم في عملية التطبيع. - data_format (
strأوChannelDimension, اختياري) — تنسيق بُعد القناة للصورة الناتجة. إذا لم يُضبط، يُستخدم تنسيق بُعد القناة للصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
- input_data_format (
ChannelDimensionأوstr, اختياري) — تنسيق بُعد القنوات للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القنوات من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
يعيد
np.ndarray
الصورة المُطبَّعة.
تطبيع صورة. image = (image - image_mean) / image_std.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature
المعاملات
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبطdo_rescale=False. - image_like_kwargs (
dict[str, Any], اختياري) — علامة مخصّصة للمطوّرين لإدخال مدخلات إضافية مشابهة للصور ستخضع أيضاً للمعالجة المسبقة. استخدم هذا الخيار فقط إذا لم يعمل تمرير المدخلات كحجج اسمية (kwargs). على سبيل المثال،preprocess(images, masks=masks)هو الخيار المفضّل، لكنه قد يسبّب مشاكل في أولوية الحُجج لبعض النماذج. في تلك الحالات يمكن استخدامpreprocess(images, image_like_inputs={"masks": masks})بدلاً منه. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
معالجة صورة أو دفعة من الصور مسبقًا.
معالجة صورة خام واحدة إلى الصيغة التشغيلية للجهة الخلفية.
يُنفَّذ بواسطة فئات فرعية تابعة للواجهة الخلفية (TorchvisionBackend، PilBackend). يحوّل مدخلاً خاماً (صورة PIL، مصفوفة NumPy، أو متجه torch) إلى الصيغة الداخلية للواجهة الخلفية (torch.Tensor في حالة Torchvision، وnp.ndarray في حالة PIL)، ويتعامل مع التحويل إلى RGB ويضمن ترتيب القنوات أولاً.
rescale
< source >( image: ndarrayscale: floatdata_format: str | transformers.image_utils.ChannelDimension | None = Noneinput_data_format: str | transformers.image_utils.ChannelDimension | None = None**kwargs ) → np.ndarray
المعاملات
- image (
np.ndarray) — الصورة التي سيتم إعادة تحجيمها. - scale (
float) — عامل التوسيع الذي يُستخدم لإعادة توسيع قيم البكسل. - data_format (
strأوChannelDimension, اختياري) — تنسيق بُعد القناة للصورة الناتجة. إذا لم يُضبط، يُستخدم تنسيق بُعد القناة للصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
- input_data_format (
ChannelDimensionأوstr, اختياري) — تنسيق بُعد القنوات للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القنوات من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
يعيد
np.ndarray
الصورة المُعاد تحجيمها.
إعادة تحجيم صورة بمعامل تحجيم. image = image * scale.
TorchvisionBackend
فئة transformers.TorchvisionBackend
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
واجهة Torchvision الخلفية لمعالجة الصور الدفعية مع تسريع GPU.
قصّ صورة في المنتصف باستخدام Torchvision.
convert_to_rgb
< source >( image: torch.Tensorinput_data_format: str | transformers.image_utils.ChannelDimension | None = None )
تحويل صورة إلى تنسيق RGB.
تحويل عنوان URL واحد أو قائمة من عناوين URL / المسارات إلى كائنات torch.Tensor.
تُمرَّر كائنات الصور الصالحة مسبقًا (المصفوفات المتوترة، مصفوفات numpy، صور PIL) دون أي تغيير، بحيث لا يتأثر المستدعون الذين يقومون بتحميل الصور مسبقًا.
normalize
< source >( image: torch.Tensormean: float | collections.abc.Iterable[float]std: float | collections.abc.Iterable[float]inplace: bool = False**kwargs )
تطبيع صورة باستخدام Torchvision.
pad
< source >( images: listpad_size: SizeDict = Nonefill_value: int | None = 0padding_mode: str | None = 'constant'return_mask: bool = Falsedisable_grouping: bool | None = Falseis_nested: bool | None = False**kwargs )
قم بتوسيط الصور باستخدام Torchvision مع عمليات الدُفعات.
process_image
< source >( image: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]do_convert_rgb: bool | None = Noneinput_data_format: str | transformers.image_utils.ChannelDimension | None = Nonedevice: typing.Optional[ForwardRef('torch.device')] = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
معالجة صورة واحدة لخلفية torchvision.
إعادة تحجيم صورة بمعامل تحجيم باستخدام Torchvision.
rescale_and_normalize
< source >( images: torch.Tensordo_rescale: boolrescale_factor: floatdo_normalize: boolimage_mean: float | list[float]image_std: float | list[float] )
إعادة تحجيم الصور وتطبيعها باستخدام Torchvision (مدمجة من أجل الكفاءة).
resize
< source >( image: torch.Tensorsize: SizeDictresample: PILImageResampling | tvF.InterpolationMode | int | None = Noneantialias: bool = True**kwargs )
تغيير حجم صورة باستخدام Torchvision.
PilBackend
فئة transformers.PilBackend
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
واجهة خلفية PIL/NumPy لمعالجة الصور على المعالج فقط، مع قابلية نقل عالية.
قصّ صورة من المنتصف باستخدام NumPy.
convert_to_rgb
< source >( image: ndarrayinput_data_format: str | transformers.image_utils.ChannelDimension | None = None )
تحويل صورة إلى تنسيق RGB.
normalize
< source >( image: ndarraymean: float | collections.abc.Iterable[float]std: float | collections.abc.Iterable[float]**kwargs )
تطبيع صورة باستخدام NumPy.
pad
< source >( images: listpad_size: SizeDict = Nonefill_value: int | None = 0padding_mode: str | None = 'constant'return_mask: bool = False**kwargs )
حشو الصور إلى الحجم المحدد باستخدام NumPy.
process_image
< source >( image: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]do_convert_rgb: bool | None = Noneinput_data_format: str | transformers.image_utils.ChannelDimension | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
معالجة صورة واحدة لخلفية PIL.
إعادة تحجيم صورة بمعامل تحجيم باستخدام NumPy.
resize
< source >( image: ndarraysize: SizeDictresample: PILImageResampling | None = Nonereducing_gap: int | None = None**kwargs )
تغيير حجم صورة باستخدام PIL/NumPy.