Transformers documentation

SegGPT

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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, preprocess yönteminde do_convert_rgb=False olarak ayarlandığından emin olun.
  • Kullanım senaryonuzda SegGptImageProcessor ile ön işleme ve son işleme sırasında segmentation_maps kullanırken (arka planı hesaba katmadan) num_labels parametresini geçmeniz şiddetle tavsiye edilir.
  • SegGptForImageSegmentation ile çıkarım yaparken, batch_size değeri 1'den büyükse, forward metoduna feature_ensemble=True parametresini 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

< >

( 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ılan 1024) — Gizli temsillerin boyutu.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 24) — Transformer çözücüdeki gizli katman sayısı.
  • num_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • hidden_act (str, isteğe bağlı, varsayılan gelu) — Çö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ılan 0.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ılan 0.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ılan 1e-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ılan 16) — Her yamanın boyutu (çözünürlüğü).
  • num_channels (int, isteğe bağlı, varsayılan 3) — Giriş kanal sayısı.
  • qkv_bias (bool, isteğe bağlı, varsayılan True) — 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 olarak hidden_size * 4 değerini alır.
  • drop_path_rate (Union[float, int], isteğe bağlı, varsayılan 0.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ılan 64) — Gizli temsillerin boyutu.
  • use_relative_position_embeddings (bool, isteğe bağlı, varsayılan True) — 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.config

SegGptImageProcessor

sınıf transformers.SegGptImageProcessor

< >

( **kwargs: *<class 'transformers.models.seggpt.image_processing_seggpt.SegGptImageProcessorKwargs'> )

Parametreler

  • do_convert_rgb (bool, kwargs, opsiyonel, varsayılan True) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi.
  • do_resize (bool, kwargs, isteğe bağlı, varsayılan True) — 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ılan True) — 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_crop uygulandıktan sonra çıktı görüntüsünün boyutu.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, varsayılan 3) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu, PILImageResampling enum değerlerinden biri olabilir. Yalnızca do_resize True olarak ayarlanırsa etkilidir.
  • do_rescale (bool, kwargs, isteğe bağlı, varsayılan True) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği.
  • rescale_factor (float, kwargs, opsiyonel, varsayılan 0.00392156862745098) — do_rescale True olarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü.
  • do_normalize (bool, kwargs, opsiyonel, varsayılan True) — 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ızca do_normalize True olarak 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ızca do_normalize True olarak 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_size sağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızca do_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ızca ChannelDimension.FIRST desteklenir. 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" veya ChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü.
    • "channels_last" veya ChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
    • "none" veya ChannelDimension.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_rgb True olduğunda prompt maskesi kanal boyutu boyunca kopyalanır.

SegGptImageProcessor görüntü işleyicisi oluşturur.

ön işleme

< >

( 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çiriliyorsa do_rescale=False olarak 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_rgb değeri False olarak ayarlanmalıdır. Segmentasyon haritaları biçimindeyse, prompt maskesini tek kanaldan 3 kanallı RGB'ye eşlemek için bir palet oluşturmak üzere num_labels parametresinin belirtilmesi önerilir. num_labels belirtilmezse, 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_crop uygulandı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, PILImageResampling enum değerlerinden biri olabilir. Yalnızca do_resize True olarak ayarlanırsa etkilidir.
  • do_rescale (bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği.
  • rescale_factor (float, kwargs, opsiyonel) — do_rescale True olarak 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ızca do_normalize True olarak ayarlanırsa etkilidir.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızca do_normalize True olarak 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_size sağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızca do_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ızca ChannelDimension.FIRST desteklenir. 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" veya ChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü.
    • "channels_last" veya ChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
    • "none" veya ChannelDimension.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_rgb True olduğ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

< >

( 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_size uzunluğunda bir liste; her öğe, her tahminin istenen nihai boyutuna (height, width) karşılık gelir. None olarak 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ılan False) — Segmentasyon haritasının yanı sıra segmentasyon puanlarının da döndürülüp döndürülmeyeceğini belirtir. True olduğunda, döndürülen listenin her öğesi segmentation (sınıf kimlikleri, (height, width) boyutunda) ve segmentation_scores (her palet rengine olan negatif kare L2 mesafeleri, (num_labels+1, height, width) boyutunda; num_labels verilmediğinde None) alanlarına sahip bir SemanticSegmentationPostProcessorOutput nesnesidir.

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

< >

( **kwargs: *<class 'transformers.models.seggpt.image_processing_pil_seggpt.SegGptImageProcessorKwargs'> )

Parametreler

  • do_convert_rgb (bool, kwargs, opsiyonel, varsayılan True) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi.
  • do_resize (bool, kwargs, isteğe bağlı, varsayılan True) — 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ılan True) — 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_crop uygulandıktan sonra çıktı görüntüsünün boyutu.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, varsayılan 3) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu, PILImageResampling enum değerlerinden biri olabilir. Yalnızca do_resize True olarak ayarlanırsa etkilidir.
  • do_rescale (bool, kwargs, isteğe bağlı, varsayılan True) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği.
  • rescale_factor (float, kwargs, opsiyonel, varsayılan 0.00392156862745098) — do_rescale True olarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü.
  • do_normalize (bool, kwargs, opsiyonel, varsayılan True) — 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ızca do_normalize True olarak 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ızca do_normalize True olarak 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_size sağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızca do_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ızca ChannelDimension.FIRST desteklenir. 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" veya ChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü.
    • "channels_last" veya ChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
    • "none" veya ChannelDimension.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_rgb True olduğunda prompt maskesi kanal boyutu boyunca kopyalanır.

SegGptImageProcessor görüntü işleyicisi oluşturur.

ön işleme

< >

( 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çiriliyorsa do_rescale=False olarak 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_rgb değeri False olarak ayarlanmalıdır. Segmentasyon haritaları biçimindeyse, prompt maskesini tek kanaldan 3 kanallı RGB'ye eşlemek için bir palet oluşturmak üzere num_labels belirtmesi önerilir. num_labels belirtilmezse, 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_crop uygulandı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, PILImageResampling enum değerlerinden biri olabilir. Yalnızca do_resize True olarak ayarlanırsa etkilidir.
  • do_rescale (bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği.
  • rescale_factor (float, kwargs, opsiyonel) — do_rescale True olarak 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ızca do_normalize True olarak ayarlanırsa etkilidir.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızca do_normalize True olarak 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_size sağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızca do_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ızca ChannelDimension.FIRST desteklenir. 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" veya ChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü.
    • "channels_last" veya ChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
    • "none" veya ChannelDimension.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_rgb True olduğ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

< >

( 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_size uzunluğunda bir liste; her öğe, her tahminin istenen nihai boyutuna (height, width) karşılık gelir. None olarak 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ılan False) — Segmentasyon haritasının yanı sıra segmentasyon puanlarının da döndürülüp döndürülmeyeceğini belirtir. True olduğunda, döndürülen listenin her öğesi segmentation (sınıf kimlikleri, (height, width) boyutunda) ve segmentation_scores (her palet rengine olan negatif kare L2 mesafeleri, (num_labels+1, height, width) boyutunda; num_labels sağlanmadığında None) alanlarına sahip bir SemanticSegmentationPostProcessorOutput nesnesidir.

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

< >

( 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

< >

( 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. True ise, en az iki prompt varsa model özellik ansamblını kullanır. False ise, 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.FloatTensor of 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ındaki attentions bö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ındaki hidden_states bö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=True olduğ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=True olduğ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_indices ayarlandığında döndürülür) — Şekli (batch_size, patch_height, patch_width, hidden_size) olan torch.FloatTensor değerlerinden oluşan bir Tuple. Tuple'daki her öğe, config.intermediate_hidden_state_indices iç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

< >

( 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

< >

( 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. True ise, en az iki prompt varsa model özellik ansamblını kullanır. False ise, 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.FloatTensor of 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ındaki attentions bö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ındaki hidden_states bö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, labels sağ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=True olduğ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=True olduğ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]
Update on GitHub