Transformers documentation
Pemroses gambar
Pemroses gambar
Sebuah image processor bertanggung jawab untuk memuat gambar (secara opsional), menyiapkan fitur input untuk model visi, dan memproses ulang outputnya. Ini mencakup transformasi seperti pengubahan ukuran, normalisasi, dan konversi ke tensor PyTorch dan Numpy. Hal ini juga dapat mencakup pascapemrosesan yang spesifik untuk model, seperti mengonversi logits menjadi mask segmentasi.
Pemroses gambar menggunakan arsitektur berbasis backend. Hirarki kelasnya adalah:
- BaseImageProcessor — kelas dasar abstrak (hanya untuk kompatibilitas mundur; jangan instansiasi secara langsung)
- TorchvisionBackend — backend default yang didukung torchvision. Dipercepat dengan GPU dan jauh lebih cepat daripada backend PIL. Semua model mengekspos kelas
<Model>ImageProcessoryang mewarisi darinya. - PilBackend — backend alternatif PIL/NumPy. Portabel, hanya CPU. Hanya tersedia untuk model lama melalui kelas
<Model>ImageProcessorPil; berguna ketika kesetaraan numerik yang tepat dengan implementasi asli diperlukan.
- TorchvisionBackend — backend default yang didukung torchvision. Dipercepat dengan GPU dan jauh lebih cepat daripada backend PIL. Semua model mengekspos kelas
Kedua backend tersebut mengekspos API yang sama. Gunakan atribut backend untuk memeriksa backend mana yang digunakan oleh processor yang dimuat (misalnya processor.backend == "torchvision").
Lewati backend ke AutoImageProcessor.from_pretrained() untuk memilih backend. Ketika backend diabaikan (default), torchvision dipilih jika terinstal, jika tidak PIL yang digunakan. Beberapa model yang menggunakan interpolasi Lanczos (Chameleon, Flava, Idefics3, SmolVLM) adalah pengecualian, dan mereka default ke PIL ketika torchvision < 0.27. Memaksa backend="torchvision" untuk model-model ini pada torchvision < 0.27 akan kembali ke interpolasi BICUBIC, karena torchvision mendukung Lanczos untuk tensor hanya mulai dari 0.27 ke atas.
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")Saat menggunakan backend torchvision, Anda dapat mengatur argumen device untuk menentukan perangkat tempat pemrosesan dilakukan. Secara default, pemrosesan dilakukan pada perangkat yang sama dengan input jika input berupa tensor, atau pada CPU jika tidak.
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)Berikut adalah beberapa perbandingan kecepatan antara backend torchvision dan PIL untuk model DETR dan RT-DETR, serta dampaknya terhadap waktu inferensi keseluruhan:




Benchmark ini dijalankan pada instans AWS EC2 g5.2xlarge, menggunakan GPU NVIDIA A10G Tensor Core.
ImageProcessingMixin
Ini adalah mixin pemroses gambar yang digunakan untuk menyediakan fungsionalitas penyimpanan/pemuatan untuk ekstraktor fitur sekuensial dan gambar.
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 )
Parameter
- pretrained_model_name_or_path (
stratauos.PathLike) — Ini bisa berupa:- sebuah string, model id dari image_processor pretrained yang dihosting di dalam repo model di huggingface.co.
- path ke direktori yang berisi file image processor yang disimpan menggunakan metode
save_pretrained(), misalnya
./my_model_directory/. - path ke file JSON image processor yang disimpan file, misalnya
./my_model_directory/preprocessor_config.json.
- cache_dir (
stratauos.PathLike, opsional) — Path ke direktori tempat image processor model pretrained yang diunduh harus di-cache jika cache standar tidak digunakan. - force_download (
bool, opsional, defaultFalse) — Apakah akan memaksa (mengunduh ulang) file image processor dan menimpa versi yang sudah di-cache jika ada. - proxies (
dict[str, str], opsional) — Kamus server proxy untuk digunakan berdasarkan protokol atau endpoint, misalnya{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.Proxy digunakan pada setiap permintaan. - token (
strataubool, opsional) — Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. JikaTrue, atau tidak ditentukan, akan menggunakan token yang dihasilkan saat menjalankanhf auth login(disimpan di~/.huggingface). - revision (
str, opsional, default"main") — Versi model spesifik yang akan digunakan. Bisa berupa nama branch, nama tag, atau commit id, karena kami menggunakan sistem berbasis git untuk menyimpan model dan artefak lainnya di huggingface.co, sehinggarevisiondapat berupa identifikasi apa pun yang diizinkan oleh git.
Instansiasi tipe ImageProcessingMixin dari image processor.
Contoh:
# 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 )
Parameter
- save_directory (
stratauos.PathLike) — Direktori tempat file JSON image processor akan disimpan (akan dibuat jika belum ada). - push_to_hub (
bool, opsional, defaultFalse) — Apakah model Anda akan didorong ke Hugging Face model hub setelah disimpan. Anda dapat menentukan repository yang ingin Anda tuju denganrepo_id(defaultnya adalah namasave_directorydi namespace Anda). - kwargs (
dict[str, Any], opsional) — Argumen kata kunci tambahan yang diteruskan ke metode push_to_hub().
Simpan objek image processor ke direktori save_directory agar dapat dimuat ulang menggunakan metode kelas from_pretrained().
BatchFeature
kelas 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 )
Parameter
- data (
dict, opsional) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call/pad (‘input_values’, ‘attention_mask’, dll.). - tensor_type (
Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi. - skip_tensor_conversion (
list[str]atauset[str], opsional) — Daftar atau set kunci yang TIDAK boleh dikonversi menjadi tensor, bahkan ketikatensor_typeditentukan.
Menyimpan output dari metode pad() dan __call__ spesifik feature extractor.
Kelas ini diturunkan dari kamus python dan dapat digunakan sebagai kamus.
convert_to_tensors
< source >( tensor_type: str | transformers.utils.generic.TensorType | None = Noneskip_tensor_conversion: list[str] | set[str] | None = None )
Parameter
- tensor_type (
stratau TensorType, opsional) — Jenis tensor yang akan digunakan. Jikastr, harus salah satu nilai dari enum TensorType. JikaNone, tidak ada modifikasi yang dilakukan. - skip_tensor_conversion (
list[str]atauset[str], opsional) — Daftar atau set kunci yang TIDAK boleh dikonversi menjadi tensor, bahkan ketikatensor_typeditentukan.
Konversi konten internal menjadi tensor.
Note: Nilai yang tidak memiliki struktur seperti array (misalnya, string, dict, daftar string) akan dilewati secara otomatis dan tidak akan dikonversi menjadi tensor. Array yang tidak beraturan (daftar array dengan panjang berbeda) tetap akan dicoba, meskipun mungkin menimbulkan error selama konversi.
ke
< source >( *args**kwargs ) → BatchFeature
Kirim semua nilai ke perangkat dengan memanggil v.to(*args, **kwargs) (hanya PyTorch). Ini harus mendukung casting ke dtypes yang berbeda dan mengirim BatchFeature ke device yang berbeda.
BaseImageProcessor
kelas transformers.BaseImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Kelas dasar untuk pemroses gambar dengan arsitektur backend berbasis pewarisan.
Kelas ini mendefinisikan pipeline pra-pemrosesan: validasi kwargs, persiapan input, dan pendelegasian ke metode _preprocess backend. Subkelas backend (TorchvisionBackend, PilBackend) mewarisi dari kelas ini dan mengimplementasikan operasi gambar yang sebenarnya (resize, crop, rescale, normalize, dll.). Prosesor gambar spesifik model kemudian mewarisi dari kelas backend yang sesuai.
Ikhtisar Arsitektur
Hierarki kelasnya adalah:
BaseImageProcessor (kelas ini) ├── TorchvisionBackend (dipercepat GPU, torch.Tensor) │ └── ModelImageProcessor (mis. LlavaNextImageProcessor) └── PilBackend (CPU portabel, np.ndarray) └── ModelImageProcessorPil (mis. CLIPImageProcessorPil)
Alur pra-pemrosesan adalah:
call() → preprocess() → _preprocess_image_like_inputs() → _prepare_image_like_inputs() (memanggil process_image per gambar) → _preprocess() (operasi batch: resize, crop, dll.)
process_image: Diimplementasikan oleh backend. Mengonversi satu input mentah (PIL, NumPy, atau Tensor) ke format kerja backend (torch.Tensor atau np.ndarray), menangani konversi RGB dan pengurutan ulang channel._preprocess: Diimplementasikan oleh backend. Melakukan pemrosesan batch yang sebenarnya (resize, center crop, rescale, normalize, pad) dan mengembalikanBatchFeature.
Implementasi Dasar
Untuk prosesor yang hanya memerlukan operasi standar (resize, center crop, rescale, normalize), warisi dari backend dan definisikan atribut kelas:
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
Metode _preprocess backend menangani pipeline standar secara otomatis.
Pemrosesan Kustom
Untuk prosesor yang memerlukan logika khusus (misalnya, pemrosesan berbasis patch, beberapa jenis input), timpa _preprocess di prosesor spesifik model Anda. Metode _preprocess menerima gambar yang sudah disiapkan (dikonversi ke format backend dengan urutan channel-first) dan melakukan pemrosesan sebenarnya:
class MyImageProcessor(TorchvisionBackend): def _preprocess(self, images, do_resize, size, do_normalize, image_mean, image_std, **kwargs):
Kelompokkan gambar berdasarkan bentuk untuk operasi batch yang efisien
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})
Untuk prosesor yang menangani beberapa jenis input (misalnya, gambar + peta segmentasi), timpa _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
Memperluas Perilaku Backend
Untuk menyesuaikan operasi untuk backend tertentu, turunkan kelas dari backend tersebut dan timpa metodenya:
from transformers.image_processing_backends import TorchvisionBackend, PilBackend
class MyTorchvisionProcessor(TorchvisionBackend): def resize(self, image, size, **kwargs):
Logika resize kustom untuk torchvision
return super().resize(image, size, **kwargs)
class MyPilProcessor(PilBackend): def resize(self, image, size, **kwargs):
Logika resize kustom untuk PIL
return super().resize(image, size, **kwargs)
Parameter Kustom
Untuk menambahkan parameter di luar ImagesKwargs, buat kelas kwargs kustom dan atur sebagai valid_kwargs:
class MyImageProcessorKwargs(ImagesKwargs): custom_param: int | None = None
class MyImageProcessor(TorchvisionBackend): valid_kwargs = MyImageProcessorKwargs custom_param = 10 # nilai default
Catatan Penting
- Pemilihan backend dilakukan pada level kelas: warisi dari
TorchvisionBackendatauPilBackend - Backends menerima gambar sebagai
torch.Tensor(Torchvision) ataunp.ndarray(PIL), selalu dengan urutan channel di depan - Semua gambar memiliki dimensi channel di depan selama pemrosesan, terlepas dari backend
- Argumen yang tidak disediakan oleh pengguna secara default menggunakan nilai atribut kelas
- Kelas backend mengenkapsulasi logika yang spesifik untuk backend (resize, normalize, dll.) dan dapat ditimpa
center_crop
< source >( image: ndarraysize: dictdata_format: str | transformers.image_utils.ChannelDimension | None = Noneinput_data_format: str | transformers.image_utils.ChannelDimension | None = None**kwargs )
Parameter
- image (
np.ndarray) — Gambar yang akan dipotong di tengah. - size (
dict[str, int]) — Ukuran gambar keluaran. - data_format (
stratauChannelDimension, opsional) — Format dimensi channel untuk gambar output. Jika tidak disetel, format dimensi channel dari gambar input akan digunakan. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels).
- input_data_format (
ChannelDimensionataustr, opsional) — Format dimensi channel untuk gambar input. Jika tidak disetel, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels).
Pusatkan pemotongan gambar ke (size["height"], size["width"]). Jika ukuran input lebih kecil dari crop_size di sepanjang
salah satu tepi, gambar akan ditambahkan padding dengan 0 dan kemudian dipotong di tengah.
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
Parameter
- image (
np.ndarray) — Gambar yang akan dinormalisasi. - mean (
floatatauIterable[float]) — Rata-rata gambar yang digunakan untuk normalisasi. - std (
floatatauIterable[float]) — Deviasi standar gambar yang digunakan untuk normalisasi. - data_format (
stratauChannelDimension, opsional) — Format dimensi channel untuk gambar output. Jika tidak disetel, format dimensi channel dari gambar input akan digunakan. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels).
- input_data_format (
ChannelDimensionataustr, opsional) — Format dimensi channel untuk gambar input. Jika tidak disetel, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels).
Mengembalikan
np.ndarray
Gambar yang dinormalisasi.
Normalisasi sebuah gambar. image = (image - image_mean) / image_std.
praproses
< 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
Parameter
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, aturdo_rescale=False. - image_like_kwargs (
dict[str, Any], opsional) — Flag pengembang untuk input tambahan yang mirip gambar yang juga akan dipreprocess. Gunakan ini hanya jika melewati input sebagai kwarg tidak berhasil. Misalnya,preprocess(images, masks=masks)adalah opsi yang lebih disukai, tetapi menyebabkan masalah prioritas argumen untuk beberapa model. Dalam kasus tersebut,preprocess(images, image_like_inputs={"masks": masks})dapat digunakan sebagai gantinya. - do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
Mengembalikan
~image_processing_base.BatchFeature
- data (
dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.). - tensor_type (
Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.
Praproses sebuah gambar atau kumpulan gambar.
Memproses satu gambar mentah ke dalam format kerja backend.
Diimplementasikan oleh subkelas backend (TorchvisionBackend, PilBackend). Mengonversi input mentah (PIL Image, array NumPy, atau torch Tensor) ke format internal backend (torch.Tensor untuk Torchvision, np.ndarray untuk PIL), menangani konversi RGB, dan memastikan urutan channel-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
Parameter
- image (
np.ndarray) — Gambar yang akan diskalakan ulang. - scale (
float) — Faktor penskalaan untuk menskalakan ulang nilai piksel. - data_format (
stratauChannelDimension, opsional) — Format dimensi channel untuk gambar output. Jika tidak disetel, format dimensi channel dari gambar input akan digunakan. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels).
- input_data_format (
ChannelDimensionataustr, opsional) — Format dimensi channel untuk gambar input. Jika tidak disetel, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels).
Mengembalikan
np.ndarray
Gambar yang telah diskalakan ulang.
Skala ulang gambar dengan faktor skala. image = image * scale.
TorchvisionBackend
kelas transformers.TorchvisionBackend
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Backend Torchvision untuk pemrosesan gambar batch yang dipercepat GPU.
Center crop sebuah gambar menggunakan Torchvision.
convert_to_rgb
< source >( image: torch.Tensorinput_data_format: str | transformers.image_utils.ChannelDimension | None = None )
Mengonversi gambar ke format RGB.
Konversi satu atau daftar URL / path menjadi objek torch.Tensor.
Objek gambar yang sudah valid (tensor, array numpy, Gambar PIL) diteruskan tanpa perubahan sehingga pemanggil yang memuat gambar sebelumnya tidak terpengaruh.
normalize
< source >( image: torch.Tensormean: float | collections.abc.Iterable[float]std: float | collections.abc.Iterable[float]inplace: bool = False**kwargs )
Normalisasi gambar menggunakan 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 )
Pad gambar menggunakan Torchvision dengan operasi batched.
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'> )
Memproses satu gambar untuk backend torchvision.
Skala ulang gambar dengan faktor skala menggunakan Torchvision.
rescale_and_normalize
< source >( images: torch.Tensordo_rescale: boolrescale_factor: floatdo_normalize: boolimage_mean: float | list[float]image_std: float | list[float] )
Skala ulang dan normalisasi gambar menggunakan Torchvision (digabungkan untuk efisiensi).
resize
< source >( image: torch.Tensorsize: SizeDictresample: PILImageResampling | tvF.InterpolationMode | int | None = Noneantialias: bool = True**kwargs )
Ukurkan ulang gambar menggunakan Torchvision.
PilBackend
kelas transformers.PilBackend
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Backend PIL/NumPy untuk pemrosesan gambar CPU-only yang portabel.
Center crop sebuah gambar menggunakan NumPy.
convert_to_rgb
< source >( image: ndarrayinput_data_format: str | transformers.image_utils.ChannelDimension | None = None )
Mengonversi gambar ke format RGB.
normalize
< source >( image: ndarraymean: float | collections.abc.Iterable[float]std: float | collections.abc.Iterable[float]**kwargs )
Normalisasi gambar menggunakan NumPy.
pad
< source >( images: listpad_size: SizeDict = Nonefill_value: int | None = 0padding_mode: str | None = 'constant'return_mask: bool = False**kwargs )
Pad gambar ke ukuran yang ditentukan menggunakan 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'> )
Proses satu gambar untuk backend PIL.
Skala ulang gambar dengan faktor skala menggunakan NumPy.
resize
< source >( image: ndarraysize: SizeDictresample: PILImageResampling | None = Nonereducing_gap: int | None = None**kwargs )
Ukurkan ulang gambar menggunakan PIL/NumPy.