图像处理器
图像处理器负责为视觉模型准备输入特征并对其输出进行后处理。这包括诸如调整大小、标准化以及转换为 PyTorch、TensorFlow、Flax 和 NumPy 张量等变换。它还可以包括模型特定的后处理,例如将 logits 转换为分割掩码。
ImageProcessingMixin
这是一个图像处理器混合类,用于为顺序和图像特征提取器提供保存/加载功能。
from_pretrained
< 源代码 >( pretrained_model_name_or_path: Union cache_dir: Union = None force_download: bool = False local_files_only: bool = False token: Union = None revision: str = 'main' **kwargs )
参数
- pretrained_model_name_or_path (
str
或os.PathLike
) — 可以是以下任一:- 字符串,托管在 huggingface.co 上模型仓库中的预训练图像处理器的模型 ID。
- 包含使用 save_pretrained() 方法保存的图像处理器文件的目录的路径,例如
./my_model_directory/
。 - 保存的图像处理器 JSON 文件的路径或 URL,例如
./my_model_directory/preprocessor_config.json
。
- cache_dir (
str
或os.PathLike
,可选) — 如果不需要使用标准缓存,则应将下载的预训练模型图像处理器缓存到的目录的路径。 - force_download (
bool
,可选,默认为False
) — 是否强制(重新)下载图像处理器文件并覆盖存在的缓存版本。resume_download — 已弃用且被忽略。现在所有下载默认情况下都尽可能恢复。将在 Transformers 的 v5 版本中删除。 - proxies (
Dict[str, str]
,可选) — 按协议或端点使用的代理服务器字典,例如{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.
代理用于每个请求。 - token (
str
或bool
,可选) — 用作远程文件 HTTP 载体授权的令牌。如果为True
或未指定,则使用运行huggingface-cli login
时生成的令牌(存储在~/.huggingface
中)。 - revision (
str
, 可选,默认为"main"
) — 使用的特定模型版本。它可以是分支名称、标签名称或提交 ID,因为我们使用基于 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
< 源代码 >( save_directory: Union push_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
< 源代码 >( data: Optional = None tensor_type: Union = None )
保存 pad() 和特征提取器特定 __call__
方法的输出。
此类派生自 Python 字典,可以用作字典。
通过调用 v.to(*args, **kwargs)
(仅限 PyTorch)将所有值发送到设备。这应该支持在不同的 dtypes
中进行转换,并将 BatchFeature
发送到不同的 device
。
BaseImageProcessor
中心裁剪
< 源代码 > ( image: ndarray size: Dict data_format: Union = None input_data_format: Union = None **kwargs )
将图像中心裁剪到 (size["height"], size["width"])
。如果输入尺寸沿任何边缘小于 crop_size
,则用 0 填充图像,然后进行中心裁剪。
标准化
< 源代码 > ( image: ndarray mean: Union std: Union data_format: Union = None input_data_format: Union = 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。
重新缩放
< 源代码 > ( image: ndarray scale: float data_format: Union = None input_data_format: Union = 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。