Transformers documentation
Görsel işleyici
Görsel işleyici
Bir görüntü işleyici, görüntüleri yüklemekten (isteğe bağlı olarak), görme modelleri için giriş özelliklerini hazırlamaktan ve çıktıların son işlemlerini yapmaktan sorumludur. Bu, yeniden boyutlandırma, normalizasyon ve PyTorch ile Numpy tensörlerine dönüştürme gibi dönüşümleri içerir. Ayrıca, logitleri segmentasyon maskelerine dönüştürme gibi modele özgü son işlemleri de içerebilir.
Görüntü işleyiciler, bir arka uç tabanlı mimari kullanır. Sınıf hiyerarşisi şudur:
- BaseImageProcessor — soyut temel sınıf (yalnızca geriye dönük uyumluluk için; doğrudan örneklemeyin)
- TorchvisionBackend — varsayılan torchvision destekli arka uç. GPU hızlandırmalıdır ve PIL arka ucundan önemli ölçüde daha hızlıdır. Tüm modeller, bu sınıftan türeyen bir
<Model>ImageProcessorsınıfı sunar. - PilBackend — PIL/NumPy tabanlı alternatif arka uç. Taşınabilir, yalnızca CPU destekli. Yalnızca eski modeller için
<Model>ImageProcessorPilsınıfı üzerinden kullanılabilir; orijinal uygulama ile tam sayısal uyumluluk gerektiğinde faydalıdır.
- TorchvisionBackend — varsayılan torchvision destekli arka uç. GPU hızlandırmalıdır ve PIL arka ucundan önemli ölçüde daha hızlıdır. Tüm modeller, bu sınıftan türeyen bir
Her iki arka uç da aynı API'yi sunar. Yüklenmiş bir işleyicinin hangi arka ucu kullandığını incelemek için backend özniteliğini kullanın (ör. processor.backend == "torchvision").
backend parametresini AutoImageProcessor.from_pretrained() fonksiyonuna geçirerek bir backend seçebilirsiniz. backend belirtilmediğinde (varsayılan durum), yüklüyse torchvision seçilir, aksi halde PIL kullanılır. Lanczos interpolasyonu kullanan bazı modeller (Chameleon, Flava, Idefics3, SmolVLM) bir istisnadır ve torchvision < 0.27 olduğunda varsayılan olarak PIL kullanırlar. Bu modeller için torchvision < 0.27 üzerinde backend="torchvision" zorlanırsa, torchvision'un tensörler için Lanczos desteğini yalnızca 0.27 sürümünden itibaren sunması nedeniyle BICUBIC interpolasyonuna geri düşülür.
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 arka ucunu kullanırken, işlemenin hangi cihazda yapılacağını belirtmek için device argümanını ayarlayabilirsiniz. Varsayılan olarak, girdiler tensörlerse işleme girdilerle aynı cihazda, aksi halde CPU üzerinde yapılır.
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 ve RT-DETR modelleri için torchvision ve PIL arka uçları arasındaki bazı hız karşılaştırmaları ve bunların genel çıkarım süresine etkileri:




Bu kıyaslamalar, NVIDIA A10G Tensor Core GPU kullanan bir AWS EC2 g5.2xlarge örneği üzerinde çalıştırıldı.
ImageProcessingMixin
Bu, ardışık ve görüntü özellik çıkarıcıları için kaydetme/yükleme işlevselliği sağlamak için kullanılan bir görüntü işleyici karışımıdır (mixin).
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 )
Parametreler
- pretrained_model_name_or_path (
strveyaos.PathLike) — Bunlardan biri olabilir:- bir dize, huggingface.co'daki bir model deposunda barındırılan ön eğitilmiş bir image_processor'ın model kimliği.
- save_pretrained() yöntemiyle kaydedilmiş bir görüntü işleyici dosyası içeren bir dizin yoluna, örneğin
./my_model_directory/. - kaydedilmiş bir görüntü işleyici JSON dosyasına giden bir yol, örneğin
./my_model_directory/preprocessor_config.json.
- cache_dir (
strveyaos.PathLike, isteğe bağlı) — Standart önbellek kullanılmayacaksa, indirilen önceden eğitilmiş model görüntü işleyicisinin önbelleğe alınacağı dizinin yolu. - force_download (
bool, isteğe bağlı, varsayılanFalse) — Görsel işleyici dosyalarının indirilmesini (yeniden) zorlayıp mevcut ise önbellekteki sürümleri geçersiz kılıp kılmayacağı. - proxies (
dict[str, str], isteğe bağlı) — Protokole veya uç noktaya göre kullanılacak vekil sunucuların sözlüğü, örn.{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.Vekiller her istekte kullanılır. - token (
strveyabool, isteğe bağlı) — Uzak dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton.Trueise veya belirtilmezse,hf auth loginçalıştırıldığında oluşturulan jeton (~/.huggingfaceiçinde saklanır) kullanılır. - revision (
str, isteğe bağlı, varsayılan"main") — Kullanılacak belirli model sürümü. huggingface.co üzerinde modelleri ve diğer artefaktları depolamak için git tabanlı bir sistem kullandığımız için bir dal adı, etiket adı veya commit kimliği olabilir; bu nedenlerevision, git tarafından izin verilen herhangi bir tanımlayıcı olabilir.
Bir görüntü işleyicisinden ImageProcessingMixin türünün bir örneğini oluşturun.
Örnekler:
# 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 )
Parametreler
- save_directory (
strveyaos.PathLike) — Görsel işleyici JSON dosyasının kaydedileceği dizin (varsa oluşturulur). - push_to_hub (
bool, isteğe bağlı, varsayılanFalse) — Modelinizi kaydettikten sonra Hugging Face model hub'ına gönderip göndermeyeceğinizi belirtir. Göndermek istediğiniz depoyurepo_idile belirtebilirsiniz (varsayılan olarak ad alanınızdakisave_directoryadını kullanır). - kwargs (
dict[str, Any], isteğe bağlı) — push_to_hub() yöntemine iletilen ek anahtar kelime argümanları.
Bir görüntü işleyici nesnesini, from_pretrained() sınıf yöntemiyle yeniden yüklenebilmesi için save_directory dizinine kaydedin.
BatchFeature
sınıf 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 )
Parametreler
- data (
dict, isteğe bağlı) — call/pad yöntemleri tarafından döndürülen listelerin/dizilerin/tensörlerin sözlüğü (‘input_values’, ‘attention_mask’, vb.). - tensor_type (
Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz. - skip_tensor_conversion (
list[str]veyaset[str], isteğe bağlı) —tensor_typebelirtilse bile tensöre dönüştürülmemesi gereken anahtarların listesi veya kümesi.
pad() ve özellik çıkarıcıya özgü __call__ yöntemlerinin çıktısını tutar.
Bu sınıf bir python sözlüğünden türetilmiştir ve bir sözlük olarak kullanılabilir.
convert_to_tensors
< source >( tensor_type: str | transformers.utils.generic.TensorType | None = Noneskip_tensor_conversion: list[str] | set[str] | None = None )
Parametreler
- tensor_type (
strveya TensorType, isteğe bağlı) — Kullanılacak tensörlerin türü.strise, TensorType enum'undaki değerlerden biri olmalıdır.Noneise, herhangi bir değişiklik yapılmaz. - skip_tensor_conversion (
list[str]veyaset[str], isteğe bağlı) —tensor_typebelirtilse bile tensöre dönüştürülmemesi gereken anahtarların listesi veya kümesi.
İçeriği tensörlere dönüştürün.
Not: Dizi benzeri bir yapıya sahip olmayan değerler (ör. dizeler, sözlükler, dizi listeleri) otomatik olarak atlanır ve tensörlere dönüştürülmez. Düzensiz diziler (farklı uzunluklara sahip dizi listeleri) yine de denemeye çalışılır, ancak dönüştürme sırasında hatalar oluşturabilirler.
'a
< source >( *args**kwargs ) → BatchFeature
Parametreler
- args (
Tuple) — Tensor'larınto(...)fonksiyonuna iletilecektir. - kwargs (
Dict, isteğe bağlı) — Tensörlerinto(...)fonksiyonuna aktarılacaktır. Asenkron veri aktarımını etkinleştirmek içinkwargsiçindenon_blockingbayrağını ayarlayın (varsayılanFalse).
Dönüş değeri
Değişiklikten sonra aynı örnek.
Tüm değerleri v.to(*args, **kwargs) çağrısını yaparak cihaza gönderin (yalnızca PyTorch). Bu, farklı dtypes için dönüştürmeyi ve BatchFeature nesnesini farklı bir device adresine göndermeyi desteklemelidir.
BaseImageProcessor
sınıf transformers.BaseImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Kalıtım tabanlı bir arka uç mimarisine sahip görüntü işleyicileri için temel sınıf.
Bu sınıf, ön işleme hattını tanımlar: kwargs doğrulama, girdi hazırlama ve backend’in _preprocess yöntemine yönlendirme. Backend alt sınıfları (TorchvisionBackend, PilBackend) bu sınıftan devralır ve gerçek görüntü işlemlerini (yeniden boyutlandırma, kırpma, yeniden ölçekleme, normalizasyon vb.) uygular. Model-özel görüntü işleyicileri ise uygun backend sınıfından devralır.
Mimari Genel Bakış
Sınıf hiyerarşisi şudur:
BaseImageProcessor (bu sınıf) ├── TorchvisionBackend (GPU hızlandırmalı, torch.Tensor) │ └── ModelImageProcessor (ör. LlavaNextImageProcessor) └── PilBackend (taşınabilir CPU, np.ndarray) └── ModelImageProcessorPil (ör. CLIPImageProcessorPil)
Ön işleme akışı şudur:
call() → preprocess() → _preprocess_image_like_inputs() → _prepare_image_like_inputs() (görüntü başına process_image çağrısı) → _preprocess() (toplu işlemler: yeniden boyutlandırma, kırpma vb.)
process_image: Arka uçlar tarafından uygulanır. Tek bir ham girdiyi (PIL, NumPy veya Tensor) arka ucun çalışma biçimine (torch.Tensor veya np.ndarray) dönüştürür, RGB dönüşümünü ve kanal yeniden sıralamasını yönetir._preprocess: Arka uçlar tarafından uygulanır. Gerçek parti işleme işlemlerini (boyutlandırma, merkezden kırpma, yeniden ölçekleme, normalizasyon, dolgu) gerçekleştirir ve birBatchFeaturedöndürür.
Temel Uygulama
Sadece standart işlemlere (boyutlandırma, merkezden kırpma, yeniden ölçekleme, normalizasyon) ihtiyaç duyan işlemciler için bir arka uçtan (backend) devralın ve sınıf özniteliklerini tanımlayın:
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
Arka uç _preprocess yöntemi standart hattı otomatik olarak işler.
Özel İşleme
Özel mantık gerektiren işlemciler için (ör. yama tabanlı işleme, birden fazla giriş türü) modelinize özgü işlemcinizde _preprocess metodunu geçersiz kılın. _preprocess metodu, zaten hazırlanmış görüntüleri (kanal-öncelikli sıralamaya sahip backend biçimine dönüştürülmüş) alır ve gerçek işlemleri gerçekleştirir:
class MyImageProcessor(TorchvisionBackend): def _preprocess(self, images, do_resize, size, do_normalize, image_mean, image_std, **kwargs):
Verimli toplu işlemler için görüntüleri şekle göre gruplayın
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})
Birden fazla giriş türünü (ör. görüntüler + segmentasyon haritaları) işleyen işlemciler için _preprocess_image_like_inputs metodunu geçersiz kılın:
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
Arka Uç Davranışını Genişletme
Belirli bir arka uç için işlemleri özelleştirmek için arka ucu alt sınıflandırın ve yöntemlerini geçersiz kılın:
from transformers.image_processing_backends import TorchvisionBackend, PilBackend
class MyTorchvisionProcessor(TorchvisionBackend): def resize(self, image, size, **kwargs):
torchvision için özel yeniden boyutlandırma mantığı
return super().resize(image, size, **kwargs)
class MyPilProcessor(PilBackend): def resize(self, image, size, **kwargs):
PIL için özel yeniden boyutlandırma mantığı
return super().resize(image, size, **kwargs)
Özel Parametreler
ImagesKwargs dışında parametreler eklemek için özel bir kwargs sınıfı oluşturun ve bunu valid_kwargs olarak ayarlayın:
class MyImageProcessorKwargs(ImagesKwargs): custom_param: int | None = None
class MyImageProcessor(TorchvisionBackend): valid_kwargs = MyImageProcessorKwargs custom_param = 10 # default value
Önemli Notlar
- Arka uç seçimi sınıf düzeyinde yapılır:
TorchvisionBackendveyaPilBackendsınıflarından birini devralın. - Arka uçlar, görüntüleri
torch.Tensor(Torchvision) veyanp.ndarray(PIL) olarak, her zaman kanal-öncelikli alır - Tüm görüntüler, arka uçtan bağımsız olarak işleme sırasında kanal boyutunu en başta tutar
- Kullanıcılar tarafından sağlanmayan argümanlar, sınıf öznitelik değerlerine varsayılan olarak ayarlanır
- Backend sınıfları, backend'e özgü mantığı (yeniden boyutlandırma, normalizasyon vb.) kapsar ve yeniden yazılabilir
center_crop
< source >( image: ndarraysize: dictdata_format: str | transformers.image_utils.ChannelDimension | None = Noneinput_data_format: str | transformers.image_utils.ChannelDimension | None = None**kwargs )
Parametreler
- image (
np.ndarray) — Ortadan kırpılacak görüntü. - size (
dict[str, int]) — Çıktı görüntüsünün boyutu. - data_format (
strveyaChannelDimension, isteğe bağlı) — Çıktı görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, girdi görüntüsünün kanal boyutu biçimi kullanılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
- input_data_format (
ChannelDimensionveyastr, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
Bir görüntüyü (size["height"], size["width"]) boyutuna merkezden kırpın. Girdi boyutu herhangi bir kenar boyunca crop_size değerinden küçükse, görüntü önce 0'larla doldurulur ve ardından merkezden kırpılır.
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
Parametreler
- image (
np.ndarray) — Normalizasyon yapılacak görüntü. - mean (
floatveyaIterable[float]) — Normalizasyon için kullanılacak görüntü ortalaması. - std (
floatveyaIterable[float]) — Normalizasyon için kullanılacak görüntü standart sapması. - data_format (
strveyaChannelDimension, isteğe bağlı) — Çıktı görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, girdi görüntüsünün kanal boyutu biçimi kullanılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
- input_data_format (
ChannelDimensionveyastr, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
Dönüş değeri
np.ndarray
Normalleştirilmiş görüntü.
Bir görüntüyü normalize edin. image = (image - image_mean) / image_std.
ön işleme
< 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
Parametreler
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Ön işleme uygulanacak görüntü. Piksel değerleri 0 ile 255 arasında değişen tek bir görüntü veya görüntü grubu beklenir. Piksel değerleri 0 ile 1 arasında olan görüntüler geçiriliyorsado_rescale=Falseolarak ayarlayın. - image_like_kwargs (
dict[str, Any], isteğe bağlı) — Ayrıca ön işleme yapılacak ek görüntü benzeri girdiler için geliştirici bayrağı. Girdileri kwarg olarak geçirmek işe yaramadığında yalnızca bu bayrağı kullanın. Örneğin,preprocess(images, masks=masks)tercih edilen seçenektir ancak bazı modellerde argüman öncelik sorunlarına yol açar. Bu durumlarda bunun yerinepreprocess(images, image_like_inputs={"masks": masks})kullanılabilir. - do_convert_rgb (
bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, opsiyonel) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, opsiyonel) — Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntüye geçilip geçilmeyeceği. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropuygulandıktan sonra çıktı görüntüsünün boyutu. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu,PILImageResamplingenum değerlerinden biri olabilir. Yalnızcado_resizeTrueolarak ayarlanırsa etkilidir. - do_rescale (
bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel) —do_rescaleTrueolarak ayarlanırsa görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü. - do_normalize (
bool, kwargs, opsiyonel) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanmışsa etkilidir. - do_pad (
bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut,{"height": int, "width" int}biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır.pad_sizesağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızcado_pad=True.olduğunda uygulanır. - do_center_crop (
bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — YalnızcaChannelDimension.FIRSTdesteklenir. Yavaş işleyicilerle uyumluluk için eklendi. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü."none"veyaChannelDimension.NONE: (height, width) biçiminde görüntü.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür. - disable_grouping (
bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır.
Dönüş değeri
~image_processing_base.BatchFeature
- data (
dict) — call yönteminin döndürdüğü listeler/diziler/tensörler sözlüğü (‘pixel_values’ vb.). - tensor_type (
Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz.
Bir görüntüyü veya bir görüntü grubunu ön işleme tabi tutun.
Tek bir ham görüntüyü, arka planın çalışma biçimine dönüştürün.
Arka uç alt sınıfları (TorchvisionBackend, PilBackend) tarafından uygulanır. Ham bir girdiyi (PIL Image, NumPy dizisi veya torch Tensor) arka ucun dahili biçimine (torch.Tensor Torchvision için, np.ndarray PIL için) dönüştürür, RGB dönüşümünü işler ve kanallar-önce sıralamasını sağlar.
yeniden ölçekle
< source >( image: ndarrayscale: floatdata_format: str | transformers.image_utils.ChannelDimension | None = Noneinput_data_format: str | transformers.image_utils.ChannelDimension | None = None**kwargs ) → np.ndarray
Parametreler
- image (
np.ndarray) — Yeniden ölçeklendirilecek görüntü. - scale (
float) — Piksel değerlerini yeniden ölçeklemek için kullanılan ölçekleme faktörü. - data_format (
strveyaChannelDimension, isteğe bağlı) — Çıktı görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, girdi görüntüsünün kanal boyutu biçimi kullanılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
- input_data_format (
ChannelDimensionveyastr, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
Dönüş değeri
np.ndarray
Yeniden ölçeklendirilmiş görüntü.
Bir ölçekleme faktörü ile bir görüntüyü yeniden ölçekler. image = image * scale.
TorchvisionBackend
sınıf transformers.TorchvisionBackend
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
GPU hızlandırmalı toplu görüntü işleme için Torchvision arka ucu.
Torchvision kullanarak bir görüntünün merkezini kırpın.
convert_to_rgb
< source >( image: torch.Tensorinput_data_format: str | transformers.image_utils.ChannelDimension | None = None )
Bir görüntüyü RGB biçimine dönüştürür.
Tek bir URL / yol veya bir URL / yol listesini torch.Tensor nesnelerine dönüştürür.
Zaten geçerli olan görüntü nesneleri (tensörler, numpy dizileri, PIL görüntüleri) değiştirilmeden olduğu gibi geçirilir, böylece görüntüleri önceden yükleyen çağrıcılar etkilenmez.
normalize
< source >( image: torch.Tensormean: float | collections.abc.Iterable[float]std: float | collections.abc.Iterable[float]inplace: bool = False**kwargs )
Bir görüntüyü Torchvision kullanarak normalize edin.
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 )
Görselleri Torchvision ile toplu işlemler kullanarak doldurun.
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 arka ucu için tek bir görüntü işleyin.
Torchvision kullanarak bir görüntüyü ölçekleme faktörü ile yeniden ölçekleyin.
rescale_and_normalize
< source >( images: torch.Tensordo_rescale: boolrescale_factor: floatdo_normalize: boolimage_mean: float | list[float]image_std: float | list[float] )
Görselleri Torchvision kullanarak yeniden ölçekleyin ve normalize edin (verimlilik için birleştirilmiş).
boyutlandır
< source >( image: torch.Tensorsize: SizeDictresample: PILImageResampling | tvF.InterpolationMode | int | None = Noneantialias: bool = True**kwargs )
Bir görüntüyü Torchvision kullanarak yeniden boyutlandırın.
PilBackend
sınıf transformers.PilBackend
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Taşınabilir, yalnızca CPU tabanlı görüntü işleme için PIL/NumPy arka ucu.
Bir görüntüyü NumPy kullanarak merkezden kırpın.
convert_to_rgb
< source >( image: ndarrayinput_data_format: str | transformers.image_utils.ChannelDimension | None = None )
Bir görüntüyü RGB biçimine dönüştürür.
normalize
< source >( image: ndarraymean: float | collections.abc.Iterable[float]std: float | collections.abc.Iterable[float]**kwargs )
Bir görüntüyü NumPy kullanarak normalize edin.
pad
< source >( images: listpad_size: SizeDict = Nonefill_value: int | None = 0padding_mode: str | None = 'constant'return_mask: bool = False**kwargs )
Görselleri NumPy kullanarak belirtilen boyuta doldurun.
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 arka ucu için tek bir görüntü işleyin.
NumPy kullanarak bir görüntüyü ölçekleme faktörü ile yeniden ölçekleyin.
boyutlandır
< source >( image: ndarraysize: SizeDictresample: PILImageResampling | None = Nonereducing_gap: int | None = None**kwargs )
Bir görüntüyü PIL/NumPy kullanarak yeniden boyutlandırın.