图像处理器
图像处理器负责加载图像(可选)、为视觉模型准备输入特征以及对其输出进行后处理。这包括调整大小、归一化以及转换为 PyTorch 和 Numpy 张量等变换。它还可能包括特定于模型的后处理,例如将 logits 转换为分割掩码。
图像处理器采用基于后端的架构。类层次结构如下:
- BaseImageProcessor — 抽象基类(仅为向后兼容而保留;请勿直接实例化)
- TorchvisionBackend — 默认的 torchvision 支持后端。具有 GPU 加速,速度显著快于 PIL 后端。所有模型都暴露一个继承自该后端的
<Model>ImageProcessor类。 - PilBackend — PIL/NumPy 替代后端。可移植,仅支持 CPU。仅通过
<Model>ImageProcessorPil类为较旧的模型提供;当需要与原始实现保持精确的数值一致性时非常有用。
- TorchvisionBackend — 默认的 torchvision 支持后端。具有 GPU 加速,速度显著快于 PIL 后端。所有模型都暴露一个继承自该后端的
两种后端暴露了相同的 API。使用 backend 属性可以检查已加载的处理器使用的是哪种后端(例如 processor.backend == "torchvision")。
将 backend 传递给 AutoImageProcessor.from_pretrained() 以选择后端。当省略 backend(默认情况)时,如果已安装 torchvision,则选择 torchvision,否则使用 PIL。少数使用 Lanczos 插值的模型(Chameleon、Flava、Idefics3、SmolVLM)是例外,当 torchvision < 0.27 时,它们默认使用 PIL。对于 torchvision < 0.27 的这些模型,强制指定 backend="torchvision" 会回退到 BICUBIC 插值,因为 torchvision 仅从 0.27 版本开始才支持张量的 Lanczos 插值。
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 参数来指定执行处理的设备。默认情况下,如果输入是张量,处理将在与输入相同的设备上执行;否则,处理将在 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)以下是 DETR 和 RT-DETR 模型中 torchvision 与 PIL 后端的运行速度对比,以及它们对整体推理时间的影响:




这些基准测试在 AWS EC2 g5.2xlarge 实例 上运行,使用了 NVIDIA A10G Tensor Core GPU。
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 上某个模型仓库中的预训练 model id 的 image_processor。
- 指向一个目录的路径,该目录包含使用 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], 可选) — 按协议或端点使用的代理服务器字典,例如{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.每次请求都会使用这些代理。 - token (
str或bool,可选) — 用于远程文件的 HTTP bearer 授权令牌。如果为True或未指定,则使用运行hf auth login时生成的令牌(存储在~/.huggingface中)。 - revision (
str, 可选, 默认为"main") — 要使用的特定模型版本。由于我们在 huggingface.co 上使用基于 git 的系统来存储模型和其他工件,因此它可以是分支名称、标签名称或提交 ID,所以revision可以是 git 允许的任何标识符。要测试您在 Hub 上创建的拉取请求,可以传入
revision="refs/pr/<pr_number>"。 - return_unused_kwargs (
bool,可选,默认为False) — 如果为False,则此函数仅返回最终的图像处理器对象。如果为True,则此函数返回一个Tuple(image_processor, unused_kwargs),其中 unused_kwargs 是一个字典,包含那些键不是图像处理器属性的键值对:即kwargs中未用于更新image_processor且被忽略的部分。 - subfolder (
str,可选,默认为"") — 如果相关文件位于 huggingface.co 上模型仓库的子文件夹中,您可以在此处指定该文件夹的名称。 - kwargs (
dict[str, Any], 可选) — kwargs 中任何作为图像处理器属性的键的值,将用于覆盖已加载的值。对于键 不是 图像处理器属性的键值对,其行为由return_unused_kwargs关键字参数控制。
从图像处理器实例化 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
class 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 )
保存 pad() 和特征提取器特定的 __call__ 方法的输出。
此类派生自 Python 字典,可用作字典。
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,可选) — 要使用的张量类型。如果为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
class transformers.BaseImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
基于继承式后端架构的图像处理器基类。
该类定义了预处理流程:kwargs 验证、输入准备,以及分发到后端的 _preprocess 方法。后端子类(TorchvisionBackend、PilBackend)继承自该类,并实现实际的图像操作(resize、crop、rescale、normalize 等)。特定于模型的图像处理器随后继承自相应的后端类。
架构概览
类层次结构如下:
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。
基础实现
对于仅需标准操作(调整大小、中心裁剪、重新缩放、归一化)的处理器,请继承自某个后端并定义类属性:
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 方法会自动处理标准流水线。
自定义处理
对于需要自定义逻辑(例如基于 patch 的处理、多种输入类型)的处理器,请在您的模型专用处理器中重写 _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)的形式接收图像,且始终采用通道优先(channels-first)的格式 - 在处理过程中,所有图像的通道维度都位于最前面,与后端无关
- 用户未提供的参数将默认使用类属性值
- Backend 类封装了与后端相关的逻辑(例如 resize、normalize 等),并且可以被重写
center_crop
< source >( image: ndarraysize: dict[str, int]data_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:图像采用 (height, width, num_channels) 格式。
- input_data_format (
ChannelDimension或str, 可选) — 输入图像的通道维度格式。如果未设置,则从输入图像中推断通道维度格式。可以是以下之一:"channels_first"或ChannelDimension.FIRST:图像采用 (num_channels, height, width) 格式。"channels_last"或ChannelDimension.LAST:图像采用 (height, width, num_channels) 格式。
将图像中心裁剪为 (size["height"], size["width"])。如果输入尺寸在任意边缘上小于 crop_size,则先用 0 填充图像,然后再进行中心裁剪。
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:图像采用 (height, width, num_channels) 格式。
- input_data_format (
ChannelDimension或str, 可选) — 输入图像的通道维度格式。如果未设置,则从输入图像中推断通道维度格式。可以是以下之一:"channels_first"或ChannelDimension.FIRST:图像采用 (num_channels, height, width) 格式。"channels_last"或ChannelDimension.LAST:图像采用 (height, width, num_channels) 格式。
返回值
np.ndarray
归一化后的图像。
对图像进行归一化。image = (image - image_mean) / image_std。
预处理
< 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], 可选) — 用于额外图像类输入的开发者标志,这些输入也将被预处理。仅在以关键字参数传递输入不起作用时使用此标志。例如,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, 可选) — 当 size 为整数时,是否在调整大小时默认使用正方形图像。 - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 应用center_crop后输出图像的尺寸。 - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 如果调整图像大小,则使用的重采样滤波器。可以是枚举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:图像采用 (height, width, num_channels) 格式。"none"或ChannelDimension.NONE:图像为 (height, width) 格式。
- 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,则当图像位于 CPU 上时设置为 True,否则设置为 False。此选择基于经验观察,详见此处:https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int,kwargs,可选) — 输入中每张图片所使用的图像 token 数量。 为向后兼容而添加,但在未来的模型中,应将其设置为处理器的属性。
返回值
~image_processing_base.BatchFeature
- data (
dict) — 由 call 方法返回的列表/数组/张量字典(如 ‘pixel_values’ 等)。 - tensor_type (
Union[None, str, TensorType], 可选) — 您可以在此处指定 tensor_type,以便在初始化时将 PyTorch/Numpy 张量中的整数列表进行转换。
预处理一张图像或一批图像。
将单张原始图像处理后转换为后端的工作格式。
由后端子类(TorchvisionBackend、PilBackend)实现。将原始输入(PIL Image、NumPy 数组或 torch Tensor)转换为后端的内部格式(Torchvision 使用 torch.Tensor,PIL 使用 np.ndarray),处理 RGB 转换并确保通道优先(channels-first)的排列顺序。
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:图像采用 (height, width, num_channels) 格式。
- input_data_format (
ChannelDimension或str, 可选) — 输入图像的通道维度格式。如果未设置,则从输入图像中推断通道维度格式。可以是以下之一:"channels_first"或ChannelDimension.FIRST:图像采用 (num_channels, height, width) 格式。"channels_last"或ChannelDimension.LAST:图像采用 (height, width, num_channels) 格式。
返回值
np.ndarray
重新缩放后的图像。
按缩放因子对图像进行重新缩放。image = image * scale。
TorchvisionBackend
class transformers.TorchvisionBackend
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
用于 GPU 加速批量图像处理的 Torchvision 后端。
使用 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 对图像进行归一化。
填充
< source >( images: list['torch.Tensor']pad_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 对图像进行缩放和归一化(为提升效率而融合)。
调整大小
< source >( image: torch.Tensorsize: SizeDictresample: PILImageResampling | tvF.InterpolationMode | int | None = Noneantialias: bool = True**kwargs )
使用 Torchvision 调整图像大小。
PilBackend
class transformers.PilBackend
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
用于便携式纯 CPU 图像处理的 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 对图像进行归一化。
填充
< source >( images: list[numpy.ndarray]pad_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 按缩放因子对图像进行缩放。
调整大小
< source >( image: ndarraysize: SizeDictresample: PILImageResampling | None = Nonereducing_gap: int | None = None**kwargs )
使用 PIL/NumPy 调整图像大小。