Transformers documentation
이미지 프로세서
이미지 프로세서
이미지 프로세서는 이미지 로딩(선택 사항), 비전 모델의 입력 특징 준비 및 출력 후 처리를 담당합니다. 여기에는 리사이징, 정규화, PyTorch 및 Numpy 텐서 변환과 같은 변환 작업이 포함됩니다. 또한 logits를 세그멘테이션 마스크로 변환하는 것과 같은 모델별 후 처리도 포함될 수 있습니다.
이미지 프로세서(Processor)는 백엔드 기반 아키텍처를 사용합니다. 클래스 계층 구조는 다음과 같습니다:
- 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"을 강제하면, torchvision이 텐서에 대한 Lanczos 보간을 0.27 버전부터만 지원하기 때문에 BICUBIC 보간으로 대체됩니다.
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 백엔드 간의 속도 비교와 전체 추론 시간에 미치는 영향을 확인해 보세요:




이 벤치마크는 NVIDIA A10G Tensor Core GPU를 갖춘 AWS EC2 g5.2xlarge 인스턴스에서 실행되었습니다.
ImageProcessingMixin
ImageProcessorMixin은 시퀀스 및 이미지 특징 추출기에 저장/로드 기능을 제공하기 위해 사용되는 이미지 프로세서 믹스인입니다.
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의 모델 저장소에 호스팅된 사전 학습된 image_processor의 model id입니다.
- 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 기반 시스템을 사용하므로,revision은 git에서 허용하는 모든 식별자, 즉 브랜치 이름, 태그 이름 또는 커밋 ID가 될 수 있습니다.
이미지 프로세서에서 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 )
매개변수
- data (
dict, 선택 사항) — call/pad 메서드가 반환하는 리스트/배열/텐서 딕셔너리(‘input_values’, ‘attention_mask’, 등). - tensor_type (
Union[None, str, TensorType], 선택 사항) — 초기화 시 PyTorch/Numpy 텐서에서 정수 목록을 변환하려면 여기에 tensor_type을 지정할 수 있습니다. - skip_tensor_conversion (
list[str]또는set[str], 선택 사항) —tensor_type가 지정된 경우에도 텐서로 변환하지 않아야 하는 키의 목록 또는 집합.
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가 지정된 경우에도 텐서로 변환하지 않아야 하는 키의 목록 또는 집합.
내부 내용을 텐서로 변환합니다.
Note: 배열과 유사한 구조가 없는 값(예: 문자열, 딕셔너리, 문자열 목록)은 자동으로 건너뛰며 텐서로 변환되지 않습니다. 불규칙한 배열(길이가 서로 다른 배열의 목록)은 여전히 변환을 시도하지만, 변환 과정에서 오류가 발생할 수 있습니다.
(으)로
< source >( *args**kwargs ) → BatchFeature
v.to(*args, **kwargs)를 호출하여 모든 값을 device로 전송합니다 (PyTorch 전용). 이는 서로 다른 dtypes로 캐스팅하고 BatchFeature를 다른 device로 전송하는 것을 지원해야 합니다.
BaseImageProcessor
클래스 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() (배치 연산: resize, crop 등)
process_image: 백엔드에서 구현합니다. 단일 원시 입력(PIL, NumPy 또는 Tensor)을 백엔드의 작업 형식(torch.Tensor 또는 np.ndarray)으로 변환하고, RGB 변환 및 채널 재배열을 처리합니다._preprocess: 백엔드에서 구현됩니다. 실제 배치 처리(리사이즈, 센터 크롭, 리스케일, 정규화, 패딩)를 수행하고BatchFeature를 반환합니다.
기본 구현
표준 연산(resize, center crop, rescale, normalize)만 필요한 프로세서의 경우, 백엔드를 상속받고 클래스 속성을 정의합니다:
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 # default value
주요 참고 사항
- 백엔드 선택은 클래스 수준에서 수행됩니다:
TorchvisionBackend또는PilBackend를 상속하세요 - Backends는 이미지를
torch.Tensor(Torchvision) 또는np.ndarray(PIL) 형식으로, 항상 채널 우선 순서로 수신합니다 - backend와 관계없이, 모든 이미지는 처리 과정에서 채널 차원이 앞에 위치합니다.
- 사용자가 제공하지 않은 인수는 클래스 속성 값으로 기본 설정됩니다
- Backend 클래스는 백엔드별 로직(resize, normalize 등)을 캡슐화하며 오버라이드할 수 있습니다
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: (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.
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], 선택) — 추가 이미지 유사 입력을 전처리할 때 사용하는 개발자용 플래그입니다. 입력을 kwarg로 전달하는 것이 작동하지 않는 경우에만 사용하세요. 예를 들어,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가 int인 경우 리사이즈 시 정사각형 이미지로 기본 설정할지 여부. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_crop을 적용한 후 출력 이미지의 크기. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 이미지를 리사이즈할 경우 사용할 리샘플링 필터입니다. 이는PILImageResamplingenum 중 하나일 수 있습니다.do_resize가True로 설정된 경우에만 효과가 있습니다. - do_rescale (
bool, kwargs, 선택 사항) — 이미지를 다시 스케일링할지 여부입니다. - rescale_factor (
float, kwargs, optional) —do_rescale이True로 설정된 경우 이미지를 리스케일하기 위한 리스케일 팩터입니다. - do_normalize (
bool, kwargs, optional) — 이미지를 정규화할지 여부. - 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, optional) — 이미지를 패딩할지 여부입니다. 패딩은 배치 내 가장 큰 크기로 수행하거나, 이미지마다 고정된 정사각형 크기로 수행합니다. 정확한 패딩 전략은 모델에 따라 달라집니다. - 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, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다.
반환값
~image_processing_base.BatchFeature
- data (
dict) — call 메서드가 반환하는 리스트/배열/텐서 딕셔너리(‘pixel_values’ 등). - tensor_type (
Union[None, str, TensorType], 선택 사항) — 초기화 시 PyTorch/Numpy 텐서에서 정수 목록을 변환하려면 여기에 tensor_type를 지정할 수 있습니다.
이미지 또는 이미지 배치(batch)를 전처리합니다.
…
백엔드 하위 클래스(TorchvisionBackend, PilBackend)에서 구현됩니다. 원시 입력(PIL Image, NumPy 배열 또는 torch Tensor)을 백엔드의 내부 형식(Torchvision의 경우 torch.Tensor, PIL의 경우 np.ndarray)으로 변환하고, 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: (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 또는 경로 하나 또는 목록을 torch.Tensor 객체로 변환합니다.
이미 이미 유효한 이미지 객체(텐서, numpy 배열, PIL Image)는 그대로 전달되므로, 이미지를 미리 로드한 호출자는 영향을 받지 않습니다.
normalize
< source >( image: torch.Tensormean: float | collections.abc.Iterable[float]std: float | collections.abc.Iterable[float]inplace: bool = False**kwargs )
Torchvision을 사용하여 이미지를 정규화합니다.
패딩
< 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을 사용하여 이미지를 리스케일하고 정규화합니다(효율성을 위해 융합됨).
리사이즈
< 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'> )
이동 가능한 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: 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를 사용하여 스케일 팩터로 이미지를 리스케일합니다.
리사이즈
< source >( image: ndarraysize: SizeDictresample: PILImageResampling | None = Nonereducing_gap: int | None = None**kwargs )
PIL/NumPy를 사용하여 이미지의 크기를 조정합니다.