Transformers documentation
SegGPT
Bu model 2023-04-06 tarihinde HF papers'ta yayımlandı ve 2024-02-26 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
SegGPT
Genel Bakış
SegGPT modeli, Xinlong Wang, Xiaosong Zhang, Yue Cao, Wen Wang, Chunhua Shen ve Tiejun Huang tarafından SegGPT: Segmenting Everything In Context makalesinde önerilmiştir. SegGPT, girdi olarak bir görüntü, bir istem (prompt) görüntüsü ve buna karşılık gelen istem maskesi verildiğinde bir segmentasyon maskesi üretebilen, yalnızca çözücü (decoder) kullanan bir Transformer mimarisine sahiptir. Model, COCO-20 üzerinde 56,1 mIoU ve FSS-1000 üzerinde 85,6 mIoU ile etkileyici tek atış (one-shot) sonuçları elde etmektedir.
Makalenin özeti aşağıdaki gibidir:
SegGPT'yi sunuyoruz; bu, bağlam içinde her şeyi segmente etmeye yönelik genelci bir modeldir. Farklı segmentasyon veri türlerini aynı biçimdeki görüntülere dönüştürerek bu verileri barındıran, çeşitli segmentasyon görevlerini genelci bir bağlam içi öğrenme çerçevesinde birleştiriyoruz. SegGPT'nin eğitimi, her veri örneği için rastgele renk eşlemesi içeren bir bağlam içi boyama problemi olarak formüle edilir. Amaç, belirli renklere güvenmek yerine bağlama göre çeşitli görevleri gerçekleştirmektir. Eğitimin ardından SegGPT, nesne örneği, doku, parça, kontur ve metin gibi görevler için görüntü veya videolarda bağlam içi çıkarım yoluyla keyfi segmentasyon görevlerini gerçekleştirebilir. SegGPT, az örnekli anlamsal segmentasyon, video nesne segmentasyonu, anlamsal segmentasyon ve panoptik segmentasyon dahil olmak üzere geniş bir görev yelpazesinde değerlendirilir. Sonuçlarımız, alan içi ve alan dışı segmentasyonda güçlü yetenekler göstermektedir.
İpuçları:
- Görsel girdi, istem ve maskenin modele hazırlanması için SegGptImageProcessor kullanılabilir.
- İstem maskeleri olarak segmentasyon haritaları veya RGB görüntüler kullanılabilir. RGB görüntüler kullanılıyorsa,
preprocessyöntemindedo_convert_rgb=Falseolarak ayarlandığından emin olun. - Kullanım senaryonuzda SegGptImageProcessor ile ön işleme ve son işleme sırasında
segmentation_mapskullanırken (arka planı hesaba katmadan)num_labelsparametresini geçmeniz şiddetle tavsiye edilir. - SegGptForImageSegmentation ile çıkarım yaparken,
batch_sizedeğeri 1'den büyükse, forward metodunafeature_ensemble=Trueparametresini geçirerek görüntüleriniz arasında özellik birleştirmesi (feature ensemble) kullanabilirsiniz.
Modeli tek atımlı (one-shot) anlamsal segmentasyon için kullanmanın yolu şudur:
import torch
from datasets import load_dataset
from transformers import SegGptForImageSegmentation, SegGptImageProcessor
checkpoint = "BAAI/seggpt-vit-large"
image_processor = SegGptImageProcessor.from_pretrained(checkpoint)
model = SegGptForImageSegmentation.from_pretrained(checkpoint, device_map="auto")
dataset_id = "EduardoPacheco/FoodSeg103"
ds = load_dataset(dataset_id, split="train")
# Number of labels in FoodSeg103 (not including background)
num_labels = 103
image_input = ds[4]["image"]
ground_truth = ds[4]["label"]
image_prompt = ds[29]["image"]
mask_prompt = ds[29]["label"]
inputs = image_processor(
images=image_input,
prompt_images=image_prompt,
segmentation_maps=mask_prompt,
num_labels=num_labels,
return_tensors="pt"
)
with torch.no_grad():
outputs = model(**inputs)
target_sizes = [image_input.size[::-1]]
mask = image_processor.post_process_semantic_segmentation(outputs, target_sizes, num_labels=num_labels)[0]Bu model EduardoPacheco tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.
SegGptConfig
sınıf transformers.SegGptConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 1024num_hidden_layers: int = 24num_attention_heads: int = 16hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.0initializer_range: float = 0.02layer_norm_eps: float = 1e-06image_size: int | list[int] | tuple[int, ...] = (896, 448)patch_size: int | list[int] | tuple[int, int] = 16num_channels: int = 3qkv_bias: bool = Truemlp_dim: int | None = Nonedrop_path_rate: float | int = 0.1pretrain_image_size: int | list[int] | tuple[int, int] = 224decoder_hidden_size: int = 64use_relative_position_embeddings: bool = Truemerge_index: int = 2intermediate_hidden_state_indices: list[int] | tuple[int, ...] = (5, 11, 17, 23)beta: float = 0.01 )
Parametreler
- hidden_size (
int, isteğe bağlı, varsayılan1024) — Gizli temsillerin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan24) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - hidden_act (
str, isteğe bağlı, varsayılangelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - hidden_dropout_prob (
Union[float, int], isteğe bağlı, varsayılan0.0) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı. - initializer_range (
float, isteğe bağlı, varsayılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - layer_norm_eps (
float, isteğe bağlı, varsayılan1e-06) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - image_size (
Union[int, list[int], tuple[int, ...]], isteğe bağlı, varsayılan(896, 448)) — Her bir görüntünün boyutu (çözünürlüğü). - patch_size (
Union[int, list[int], tuple[int, int]], isteğe bağlı, varsayılan16) — Her yamanın boyutu (çözünürlüğü). - num_channels (
int, isteğe bağlı, varsayılan3) — Giriş kanal sayısı. - qkv_bias (
bool, isteğe bağlı, varsayılanTrue) — Sorgulara, anahtarlara ve değerlere bir sapma eklenip eklenmeyeceği. - mlp_dim (
int, isteğe bağlı) — Transformer kodlayıcısındaki MLP katmanının boyutu. Ayarlanmazsa, varsayılan olarakhidden_size* 4 değerini alır. - drop_path_rate (
Union[float, int], isteğe bağlı, varsayılan0.1) — Patch füzyonu için drop path oranı. - pretrain_image_size (
int, isteğe bağlı, varsayılan 224) — Mutlak konum gömme (embedding) için önceden eğitilmiş boyut. - decoder_hidden_size (
int, isteğe bağlı, varsayılan64) — Gizli temsillerin boyutu. - use_relative_position_embeddings (
bool, isteğe bağlı, varsayılanTrue) — Dikkat katmanlarında göreli konum gömme kullanılıp kullanılmayacağı. - merge_index (
int, isteğe bağlı, varsayılan 2) — Gömme birleştirmesi için kullanılacak kodlayıcı katmanının indeksi. - intermediate_hidden_state_indices (
list[int], isteğe bağlı, varsayılan[5, 11, 17, 23]) — Decoder için özellik olarak sakladığımız encoder katmanlarının indeksleri. - beta (
float, isteğe bağlı, varsayılan 0.01) — SegGptLoss (smooth-l1 loss) için düzenleme faktörü.
Bu, bir SegGptModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Seggpt modelinin örneklenmesi ve model mimarisinin tanımlanması için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, BAAI/seggpt-vit-large ile benzer bir yapılandırma elde edilir.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
Örnek:
>>> from transformers import SegGptConfig, SegGptModel
>>> # Initializing a SegGPT seggpt-vit-large style configuration
>>> configuration = SegGptConfig()
>>> # Initializing a model (with random weights) from the seggpt-vit-large style configuration
>>> model = SegGptModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configSegGptImageProcessor
sınıf transformers.SegGptImageProcessor
< source >( **kwargs: *<class 'transformers.models.seggpt.image_processing_seggpt.SegGptImageProcessorKwargs'> )
Parametreler
- do_convert_rgb (
bool, kwargs, opsiyonel, varsayılanTrue) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, isteğe bağlı, varsayılanTrue) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan{'height' -- 448, 'width': 448}): Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, isteğe bağlı, varsayılanTrue) — size bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağı. - 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, varsayılan3) — 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, isteğe bağlı, varsayılanTrue) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel, varsayılan0.00392156862745098) —do_rescaleTrueolarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü. - do_normalize (
bool, kwargs, opsiyonel, varsayılanTrue) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan[0.485, 0.456, 0.406]) — 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, varsayılan[0.229, 0.224, 0.225]) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanırsa 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. - num_labels (
int, kwargs, opsiyonel) — Segmentasyon görevindeki sınıf sayısı (arka plan hariç). Belirtilirse, class_idx 0'ın arka plan olduğu varsayılarak, düz bir segmentasyon haritasından 3 kanallı bir RGB görüntüsüne geçiş için bir palet oluşturulur. Bu parametre belirtilmezse,do_convert_rgbTrueolduğunda prompt maskesi kanal boyutu boyunca kopyalanır.
SegGptImageProcessor görüntü işleyicisi oluşturur.
ö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'], NoneType] = Noneprompt_images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneprompt_masks: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.models.seggpt.image_processing_seggpt.SegGptImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parametreler
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], isteğe bağlı) — Ön işleme yapılacak 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. - prompt_images (
ImageInput, isteğe bağlı) — Ön işleme yapılacak prompt görselleri. Piksel değerleri 0 ile 255 arasında değişen tek bir görsel veya görsel bir partisi beklenir. - prompt_masks (
ImageInput, isteğe bağlı) — Ön işleme yapılacak prompt maskeleri. Segmentasyon haritaları (kanal yok) veya RGB görüntüler biçiminde olabilir. RGB görüntüler biçimindeyse,do_convert_rgbdeğeriFalseolarak ayarlanmalıdır. Segmentasyon haritaları biçimindeyse, prompt maskesini tek kanaldan 3 kanallı RGB'ye eşlemek için bir palet oluşturmak üzerenum_labelsparametresinin belirtilmesi önerilir.num_labelsbelirtilmezse, prompt maskesi kanal boyutu boyunca kopyalanır. - 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. - num_labels (
int, kwargs, opsiyonel) — Segmentasyon görevindeki sınıf sayısı (arka plan hariç). Belirtilirse, class_idx 0'ın arka plan olduğu varsayılarak, düz bir segmentasyon haritasından 3 kanallı bir RGB görüntüsüne geçiş için bir palet oluşturulur. Bu parametre belirtilmezse,do_convert_rgbTrueolduğunda prompt maskesi kanal boyutu boyunca kopyalanı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.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonenum_labels: int | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parametreler
- outputs (
SegGptImageSegmentationOutput) — Modelin ham çıktıları. - target_sizes (
list[tuple[int, int]], isteğe bağlı) —batch_sizeuzunluğunda bir liste; her öğe, her tahminin istenen nihai boyutuna(height, width)karşılık gelir.Noneolarak bırakılırsa, tahminler yeniden boyutlandırılmaz. - num_labels (
int, isteğe bağlı) — Segmentasyon görevindeki sınıf sayısı (arka plan hariç). Belirtilirse, tahmin maskelerini RGB değerlerinden sınıf indekslerine geri eşlemek için bir palet oluşturulur. Ön işleme sırasında kullanılan değerle eşleşmelidir. - return_segmentation_scores (
bool, isteğe bağlı, varsayılanFalse) — Segmentasyon haritasının yanı sıra segmentasyon puanlarının da döndürülüp döndürülmeyeceğini belirtir.Trueolduğunda, döndürülen listenin her öğesisegmentation(sınıf kimlikleri,(height, width)boyutunda) vesegmentation_scores(her palet rengine olan negatif kare L2 mesafeleri,(num_labels+1, height, width)boyutunda;num_labelsverilmediğindeNone) alanlarına sahip birSemanticSegmentationPostProcessorOutputnesnesidir.
Dönüş değeri
list[torch.Tensor] veya list[SemanticSegmentationPostProcessorOutput]
return_segmentation_scores=False (varsayılan) olduğunda, her öğesi sınıf kimliklerine sahip (height, width) biçiminde bir segmentasyon haritası olan, uzunluğu batch_size olan bir liste döndürülür. return_segmentation_scores=True olduğunda ise, segmentation (sınıf kimlikleri, biçim (height, width)) ve segmentation_scores (biçim (num_labels+1, height, width)) alanlarına sahip SemanticSegmentationPostProcessorOutput nesnelerinden oluşan bir liste döndürülür. Her iki durumda da (height, width), hedef boyutu temsil eder (target_sizes belirtilmişse).
SegGptImageSegmentationOutput çıktısını segmentasyon haritalarına dönüştürür. Yalnızca PyTorch desteklenir.
SegGptImageProcessorPil
sınıf transformers.SegGptImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.seggpt.image_processing_pil_seggpt.SegGptImageProcessorKwargs'> )
Parametreler
- do_convert_rgb (
bool, kwargs, opsiyonel, varsayılanTrue) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, isteğe bağlı, varsayılanTrue) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan{'height' -- 448, 'width': 448}): Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, isteğe bağlı, varsayılanTrue) — size bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağı. - 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, varsayılan3) — 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, isteğe bağlı, varsayılanTrue) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel, varsayılan0.00392156862745098) —do_rescaleTrueolarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü. - do_normalize (
bool, kwargs, opsiyonel, varsayılanTrue) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan[0.485, 0.456, 0.406]) — 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, varsayılan[0.229, 0.224, 0.225]) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanırsa 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. - num_labels (
int, kwargs, opsiyonel) — Segmentasyon görevindeki sınıf sayısı (arka plan hariç). Belirtilirse, class_idx 0'ın arka plan olduğu varsayılarak, düz bir segmentasyon haritasından 3 kanallı bir RGB görüntüsüne geçiş için bir palet oluşturulur. Bu parametre belirtilmezse,do_convert_rgbTrueolduğunda prompt maskesi kanal boyutu boyunca kopyalanır.
SegGptImageProcessor görüntü işleyicisi oluşturur.
ö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'], NoneType] = Noneprompt_images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneprompt_masks: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.models.seggpt.image_processing_pil_seggpt.SegGptImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parametreler
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], isteğe bağlı) — Ön işleme yapılacak 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. - prompt_images (
ImageInput, isteğe bağlı) — Ön işleme yapılacak prompt görselleri. Piksel değerleri 0 ile 255 arasında değişen tek bir görsel veya görsel bir partisi beklenir. - prompt_masks (
ImageInput, isteğe bağlı) — Ön işleme yapılacak prompt maskeleri. Segmentasyon haritaları (kanal yok) veya RGB görüntüler biçiminde olabilir. RGB görüntüler biçimindeyse,do_convert_rgbdeğeriFalseolarak ayarlanmalıdır. Segmentasyon haritaları biçimindeyse, prompt maskesini tek kanaldan 3 kanallı RGB'ye eşlemek için bir palet oluşturmak üzerenum_labelsbelirtmesi önerilir.num_labelsbelirtilmezse, prompt maskesi kanal boyutu boyunca kopyalanır. - 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. - num_labels (
int, kwargs, opsiyonel) — Segmentasyon görevindeki sınıf sayısı (arka plan hariç). Belirtilirse, class_idx 0'ın arka plan olduğu varsayılarak, düz bir segmentasyon haritasından 3 kanallı bir RGB görüntüsüne geçiş için bir palet oluşturulur. Bu parametre belirtilmezse,do_convert_rgbTrueolduğunda prompt maskesi kanal boyutu boyunca kopyalanı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.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonenum_labels: int | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parametreler
- outputs (
SegGptImageSegmentationOutput) — Modelin ham çıktıları. - target_sizes (
list[tuple[int, int]], isteğe bağlı) —batch_sizeuzunluğunda bir liste; her öğe, her tahminin istenen nihai boyutuna(height, width)karşılık gelir.Noneolarak bırakılırsa, tahminler yeniden boyutlandırılmaz. - num_labels (
int, isteğe bağlı) — Segmentasyon görevindeki sınıf sayısı (arka plan hariç). Belirtilirse, tahmin maskelerini RGB değerlerinden sınıf indekslerine geri eşlemek için bir palet oluşturulur. Ön işleme sırasında kullanılan değerle eşleşmelidir. - return_segmentation_scores (
bool, isteğe bağlı, varsayılanFalse) — Segmentasyon haritasının yanı sıra segmentasyon puanlarının da döndürülüp döndürülmeyeceğini belirtir.Trueolduğunda, döndürülen listenin her öğesisegmentation(sınıf kimlikleri,(height, width)boyutunda) vesegmentation_scores(her palet rengine olan negatif kare L2 mesafeleri,(num_labels+1, height, width)boyutunda;num_labelssağlanmadığındaNone) alanlarına sahip birSemanticSegmentationPostProcessorOutputnesnesidir.
Dönüş değeri
list[torch.Tensor] veya list[SemanticSegmentationPostProcessorOutput]
return_segmentation_scores=False (varsayılan) olduğunda, her öğesi sınıf kimliklerine sahip (height, width) biçiminde bir segmentasyon haritası olan, uzunluğu batch_size olan bir liste döndürülür. return_segmentation_scores=True olduğunda ise, segmentation (sınıf kimlikleri, biçim (height, width)) ve segmentation_scores (biçim (num_labels+1, height, width)) alanlarına sahip SemanticSegmentationPostProcessorOutput nesnelerinden oluşan bir liste döndürülür. Her iki durumda da (height, width), hedef boyutu temsil eder (target_sizes belirtilmişse).
SegGptImageSegmentationOutput çıktısını segmentasyon haritalarına dönüştürür. Yalnızca PyTorch desteklenir.
SegGptModel
sınıf transformers.SegGptModel
< source >( config: SegGptConfig )
Parametreler
- config (SegGptConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üzerinde herhangi bir özel head olmadan ham hidden-states üreten çıplak Seggpt Model.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensorprompt_pixel_values: Tensorprompt_masks: Tensorbool_masked_pos: typing.Optional[torch.BoolTensor] = Nonefeature_ensemble: bool | None = Noneembedding_type: str | None = Nonelabels: typing.Optional[torch.FloatTensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → SegGptEncoderOutput or tuple(torch.FloatTensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri SegGptImageProcessor kullanılarak elde edilebilir. Ayrıntılar için SegGptImageProcessor.call() bölümüne bakın (processor_class, görüntüleri işlemek için SegGptImageProcessor kullanır). - prompt_pixel_values (
torch.FloatTensor, şekli(batch_size, num_channels, height, width)) — Prompt piksel değerleri. Prompt piksel değerleri AutoImageProcessor kullanılarak elde edilebilir. Ayrıntılar için SegGptImageProcessor.call() bölümüne bakın. - prompt_masks (
torch.FloatTensor, şekli(batch_size, num_channels, height, width)) — Prompt maskesi. Prompt maskesi AutoImageProcessor kullanılarak elde edilebilir. Ayrıntılar için SegGptImageProcessor.call() bölümüne bakın. - bool_masked_pos (
torch.BoolTensor, şekli(batch_size, num_patches), isteğe bağlı) — Boolean maskeli konumlar. Hangi yamaların maskelendiğini (1) ve hangilerinin maskelenmediğini (0) belirtir. - feature_ensemble (
bool, isteğe bağlı) — Özellik ansamblının kullanılıp kullanılmayacağını belirten bir Boolean değeridir.Trueise, en az iki prompt varsa model özellik ansamblını kullanır.Falseise, model özellik ansamblını kullanmaz. Bu argüman, bir girdi görseli üzerinde few-shot çıkarım yapılırken, yani aynı görsel için birden fazla prompt kullanılırken dikkate alınmalıdır. - embedding_type (
str, isteğe bağlı) — Gömme türü. İfadenin (prompt) semantik mi yoksa örnek (instance) gömme mi olduğunu belirtir. Değer instance veya semantic olabilir. - labels (
torch.FloatTensorof shape(batch_size, num_channels, height, width),optional) — Ground truth mask for input images. - output_attentions (
bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakiattentionsbölümüne bakın. - output_hidden_states (
bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakihidden_statesbölümüne bakın. - return_dict (
bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?
Dönüş değeri
SegGptEncoderOutput veya tuple(torch.FloatTensor)
SegGptEncoderOutput veya torch.FloatTensor bir demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (SegGptConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
SegGptModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
- last_hidden_state (
torch.FloatTensor, şekli(batch_size, patch_height, patch_width, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi. - hidden_states (
tuple[torch.FloatTensor],optional,config.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(gömme çıktısı için bir tane + her katman çıktısı için bir tane) içeren bir tuple(batch_size, patch_height, patch_width, hidden_size)biçiminde. - attentions (
tuple[torch.FloatTensor],optional,config.output_attentions=Trueolduğunda döndürülür) — torch.FloatTensor (her katman için bir adet) içeren bir tuple, şekli(batch_size, num_heads, seq_len, seq_len). - intermediate_hidden_states (
tuple[torch.FloatTensor], isteğe bağlı,config.intermediate_hidden_state_indicesayarlandığında döndürülür) — Şekli(batch_size, patch_height, patch_width, hidden_size)olantorch.FloatTensordeğerlerinden oluşan bir Tuple. Tuple'daki her öğe,config.intermediate_hidden_state_indicesiçinde belirtilen katmanın çıktısına karşılık gelir. Ayrıca, her özellik bir LayerNorm'dan geçirilir.
Örnekler:
>>> from transformers import SegGptImageProcessor, SegGptModel
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> image_input_url = "https://raw.githubusercontent.com/baaivision/Painter/main/SegGPT/SegGPT_inference/examples/hmbb_2.jpg"
>>> image_prompt_url = "https://raw.githubusercontent.com/baaivision/Painter/main/SegGPT/SegGPT_inference/examples/hmbb_1.jpg"
>>> mask_prompt_url = "https://raw.githubusercontent.com/baaivision/Painter/main/SegGPT/SegGPT_inference/examples/hmbb_1_target.png"
>>> with httpx.stream("GET", image_input_url) as response:
... image_input = Image.open(BytesIO(response.read()))
>>> with httpx.stream("GET", image_prompt_url) as response:
... image_prompt = Image.open(BytesIO(response.read()))
>>> with httpx.stream("GET", mask_prompt_url) as response:
... mask_prompt = Image.open(BytesIO(response.read())).convert("L")
>>> checkpoint = "BAAI/seggpt-vit-large"
>>> model = SegGptModel.from_pretrained(checkpoint)
>>> image_processor = SegGptImageProcessor.from_pretrained(checkpoint)
>>> inputs = image_processor(images=image_input, prompt_images=image_prompt, prompt_masks=mask_prompt, return_tensors="pt")
>>> outputs = model(**inputs)
>>> list(outputs.last_hidden_state.shape)
[1, 56, 28, 1024]SegGptForImageSegmentation
sınıf transformers.SegGptForImageSegmentation
< source >( config: SegGptConfig )
Parametreler
- config (SegGptConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Tek atımlı (one-shot) görüntü segmentasyonu için üstünde bir çözücü (decoder) bulunan SegGpt modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensorprompt_pixel_values: Tensorprompt_masks: Tensorbool_masked_pos: typing.Optional[torch.BoolTensor] = Nonefeature_ensemble: bool | None = Noneembedding_type: str | None = Nonelabels: typing.Optional[torch.FloatTensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → SegGptImageSegmentationOutput or tuple(torch.FloatTensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri SegGptImageProcessor kullanılarak elde edilebilir. Ayrıntılar için SegGptImageProcessor.call() bölümüne bakın (processor_class, görüntüleri işlemek için SegGptImageProcessor kullanır). - prompt_pixel_values (
torch.FloatTensor, şekli(batch_size, num_channels, height, width)) — Prompt piksel değerleri. Prompt piksel değerleri AutoImageProcessor kullanılarak elde edilebilir. Ayrıntılar için SegGptImageProcessor.call() bölümüne bakın. - prompt_masks (
torch.FloatTensor, şekli(batch_size, num_channels, height, width)) — Prompt maskesi. Prompt maskesi AutoImageProcessor kullanılarak elde edilebilir. Ayrıntılar için SegGptImageProcessor.call() bölümüne bakın. - bool_masked_pos (
torch.BoolTensor, şekli(batch_size, num_patches), isteğe bağlı) — Boolean maskeli konumlar. Hangi yamaların maskelendiğini (1) ve hangilerinin maskelenmediğini (0) belirtir. - feature_ensemble (
bool, isteğe bağlı) — Özellik ansamblının kullanılıp kullanılmayacağını belirten bir Boolean değeridir.Trueise, en az iki prompt varsa model özellik ansamblını kullanır.Falseise, model özellik ansamblını kullanmaz. Bu argüman, bir girdi görseli üzerinde few-shot çıkarım yapılırken, yani aynı görsel için birden fazla prompt kullanılırken dikkate alınmalıdır. - embedding_type (
str, isteğe bağlı) — Gömme türü. İfadenin (prompt) semantik mi yoksa örnek (instance) gömmesi mi olduğunu belirtir. Değer olarak instance veya semantic olabilir. - labels (
torch.FloatTensorof shape(batch_size, num_channels, height, width),optional) — Girdi görüntüleri için doğru maskesi. - output_attentions (
bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakiattentionsbölümüne bakın. - output_hidden_states (
bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakihidden_statesbölümüne bakın. - return_dict (
bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?
Dönüş değeri
SegGptImageSegmentationOutput veya tuple(torch.FloatTensor)
SegGptImageSegmentationOutput veya bir torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (SegGptConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
SegGptForImageSegmentation forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
- loss (
torch.FloatTensor, opsiyonel,labelssağlandığında döndürülür) — Kayıp değeri. - pred_masks (
torch.FloatTensor, şekli(batch_size, num_channels, height, width)) — Tahmin edilen maskeler. - hidden_states (
tuple[torch.FloatTensor],optional,config.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(gömme çıktısı için bir tane + her katman çıktısı için bir tane) içeren bir tuple(batch_size, patch_height, patch_width, hidden_size)biçiminde. - attentions (
tuple[torch.FloatTensor],optional,config.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(her katman için bir tane) içeren bir tuple, şekli(batch_size, num_heads, seq_len, seq_len).
Örnekler:
>>> from transformers import SegGptImageProcessor, SegGptForImageSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> image_input_url = "https://raw.githubusercontent.com/baaivision/Painter/main/SegGPT/SegGPT_inference/examples/hmbb_2.jpg"
>>> image_prompt_url = "https://raw.githubusercontent.com/baaivision/Painter/main/SegGPT/SegGPT_inference/examples/hmbb_1.jpg"
>>> mask_prompt_url = "https://raw.githubusercontent.com/baaivision/Painter/main/SegGPT/SegGPT_inference/examples/hmbb_1_target.png"
>>> with httpx.stream("GET", image_input_url) as response:
... image_input = Image.open(BytesIO(response.read()))
>>> with httpx.stream("GET", image_prompt_url) as response:
... image_prompt = Image.open(BytesIO(response.read()))
>>> with httpx.stream("GET", mask_prompt_url) as response:
... mask_prompt = Image.open(BytesIO(response.read())).convert("L")
>>> checkpoint = "BAAI/seggpt-vit-large"
>>> model = SegGptForImageSegmentation.from_pretrained(checkpoint)
>>> image_processor = SegGptImageProcessor.from_pretrained(checkpoint)
>>> inputs = image_processor(images=image_input, prompt_images=image_prompt, prompt_masks=mask_prompt, return_tensors="pt")
>>> outputs = model(**inputs)
>>> result = image_processor.post_process_semantic_segmentation(outputs, target_sizes=[(image_input.height, image_input.width)])[0]
>>> print(list(result.shape))
[170, 297]