Transformers documentation

OneFormer

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

Model ini dipublikasikan di HF papers pada 2022-11-10 dan disumbangkan ke Hugging Face Transformers pada 2023-01-19.

OneFormer

Ikhtisar

Model OneFormer diusulkan dalam OneFormer: One Transformer to Rule Universal Image Segmentation oleh Jitesh Jain, Jiachen Li, MangTik Chiu, Ali Hassani, Nikita Orlov, Humphrey Shi. OneFormer adalah kerangka kerja segmentasi gambar universal yang dapat dilatih pada satu dataset panoptic untuk menjalankan tugas segmentasi semantik, instance, dan panoptic. OneFormer menggunakan task token untuk mengondisikan model pada tugas yang sedang difokuskan, sehingga arsitekturnya menjadi task-guided untuk pelatihan, dan task-dynamic untuk inferensi.

Abstrak dari makalah tersebut adalah sebagai berikut:

Universal Image Segmentation bukanlah konsep baru. Upaya-upaya sebelumnya untuk menyatukan segmentasi citra dalam beberapa dekade terakhir mencakup scene parsing, panoptic segmentation, dan, yang lebih baru, arsitektur panoptic baru. Namun, arsitektur panoptic semacam itu tidak benar-benar menyatukan segmentasi citra karena mereka perlu dilatih secara individual pada semantic, instance, atau panoptic segmentation untuk mencapai kinerja terbaik. Secara ideal, kerangka kerja universal yang sejati seharusnya hanya perlu dilatih sekali dan mencapai kinerja SOTA di ketiga tugas segmentasi citra. Untuk tujuan tersebut, kami mengusulkan OneFormer, sebuah kerangka kerja segmentasi citra universal yang menyatukan segmentasi dengan desain multi-task train-once. Pertama, kami mengusulkan strategi pelatihan gabungan yang dikondisikan tugas (task-conditioned joint training strategy) yang memungkinkan pelatihan pada ground truths dari masing-masing domain (semantic, instance, dan panoptic segmentation) dalam satu proses pelatihan multi-task. Kedua, kami memperkenalkan task token untuk mengondisikan model kami pada tugas yang sedang ditangani, sehingga model kami menjadi task-dynamic untuk mendukung pelatihan dan inferensi multi-task. Ketiga, kami mengusulkan penggunaan query-text contrastive loss selama pelatihan untuk membangun pembedaan antar-tugas dan antar-kelas yang lebih baik. Yang patut dicatat, model OneFormer tunggal kami melampaui model Mask2Former yang khusus di ketiga tugas segmentasi pada ADE20k, CityScapes, dan COCO, meskipun yang terakhir dilatih pada masing-masing dari ketiga tugas tersebut secara individual dengan tiga kali sumber daya. Dengan backbone ConvNeXt dan DiNAT baru, kami mengamati peningkatan kinerja yang bahkan lebih besar. Kami percaya OneFormer adalah langkah signifikan menuju menjadikan segmentasi citra lebih universal dan mudah diakses.

Gambar di bawah ini mengilustrasikan arsitektur OneFormer. Diambil dari paper asli.

Model ini disumbangkan oleh Jitesh Jain. Kode aslinya dapat ditemukan di sini.

Tips penggunaan

  • OneFormer memerlukan dua input selama inferensi: image dan task token.
  • Selama pelatihan, OneFormer hanya menggunakan anotasi panoptik.
  • Jika Anda ingin melatih model dalam lingkungan terdistribusi di beberapa node, maka fungsi get_num_masks di dalam kelas OneFormerLoss pada modeling_oneformer.py harus diperbarui. Saat melatih di beberapa node, nilai ini harus diatur ke jumlah rata-rata target mask di semua node, seperti yang dapat dilihat pada implementasi asli di sini.
  • Anda dapat menggunakan OneFormerProcessor untuk menyiapkan gambar input dan input tugas untuk model serta target opsional untuk model. OneFormerProcessor membungkus OneFormerImageProcessor dan CLIPTokenizer ke dalam satu instance untuk menyiapkan gambar dan mengkodekan input tugas.
  • Untuk mendapatkan segmentasi akhir, tergantung pada tugasnya, Anda dapat memanggil post_process_semantic_segmentation() atau post_process_instance_segmentation() atau post_process_panoptic_segmentation(). Ketiga tugas tersebut dapat diselesaikan menggunakan output OneFormerForUniversalSegmentation, segmentasi panoptik menerima argumen opsional label_ids_to_fuse untuk menggabungkan instance dari objek target (misalnya langit) menjadi satu.

Sumber daya

Daftar sumber resmi Hugging Face dan komunitas (ditandai dengan 🌎) untuk membantu Anda memulai dengan OneFormer.

  • Notebook demo mengenai inferensi + penyesuaian halus pada data kustom dapat ditemukan di sini.

Jika Anda tertarik untuk mengirimkan sumber daya agar disertakan di sini, silakan buka Pull Request dan kami akan meninjaunya. Sumber daya tersebut sebaiknya mendemonstrasikan sesuatu yang baru, bukan menduplikasi sumber daya yang sudah ada.

Output khusus OneFormer

kelas transformers.models.oneformer.modeling_oneformer.OneFormerModelOutput

< >

( encoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Nonetransformer_decoder_object_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_contrastive_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_mask_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_class_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_auxiliary_predictions: tuple[dict[str, torch.Tensor]] | None = Nonetext_queries: typing.Optional[torch.Tensor] = Nonetask_token: typing.Optional[torch.Tensor] = Noneattentions: tuple[torch.Tensor] | None = None )

Parameter

  • encoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model encoder pada output setiap tahap.
  • pixel_decoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model pixel decoder pada output setiap tahap.
  • transformer_decoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari transformer decoder pada output setiap tahap.
  • transformer_decoder_object_queries (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri objek keluaran dari lapisan terakhir pada transformer decoder.
  • transformer_decoder_contrastive_queries (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri kontras dari transformer decoder.
  • transformer_decoder_mask_predictions (torch.Tensor dengan bentuk (batch_size, num_queries, height, width)) — Prediksi Mask dari lapisan terakhir di transformer decoder.
  • transformer_decoder_class_predictions (torch.Tensor dengan bentuk (batch_size, num_queries, num_classes+1)) — Prediksi kelas dari lapisan terakhir di transformer decoder.
  • transformer_decoder_auxiliary_predictions (Tuple of Dict of str, torch.Tensor, opsional) — Tuple dari prediksi kelas dan mask dari setiap lapisan transformer decoder.
  • text_queries (torch.Tensor, opsional dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri teks yang diturunkan dari daftar teks input yang digunakan untuk menghitung kerugian kontras (contrastive loss) selama pelatihan.
  • task_token (torch.Tensor dengan bentuk (batch_size, hidden_dim)) — token tugas 1D untuk mengondisikan query.
  • attentions (tuple(tuple(torch.Tensor)), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari tuple(torch.Tensor) (satu untuk setiap lapisan) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length). Bobot Self dan Cross Attentions dari decoder transformer.

Kelas untuk output dari OneFormerModel. Kelas ini mengembalikan semua hidden states yang diperlukan untuk menghitung logits.

kelas transformers.models.oneformer.modeling_oneformer.OneFormerForUniversalSegmentationOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneclass_queries_logits: typing.Optional[torch.Tensor] = Nonemasks_queries_logits: typing.Optional[torch.Tensor] = Noneauxiliary_predictions: list = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: list[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Nonetransformer_decoder_object_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_contrastive_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_mask_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_class_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_auxiliary_predictions: list[dict[str, torch.Tensor]] | None = Nonetext_queries: typing.Optional[torch.Tensor] = Nonetask_token: typing.Optional[torch.Tensor] = Noneattentions: tuple[tuple[torch.Tensor]] | None = None )

Parameter

  • loss (torch.Tensor, opsional) — Loss yang dihitung, dikembalikan saat label ada.
  • class_queries_logits (torch.Tensor, opsional) — Tensor dengan bentuk (batch_size, num_queries, num_labels + 1) yang mewakili kelas yang diusulkan untuk setiap query. Perhatikan bahwa + 1 diperlukan karena kami mengintegrasikan kelas null.
  • masks_queries_logits (torch.Tensor, opsional) — Tensor dengan bentuk (batch_size, num_queries, height, width) yang merepresentasikan mask yang diusulkan untuk setiap query.
  • auxiliary_predictions (List of Dict of str, torch.Tensor, opsional) — Daftar prediksi kelas dan mask dari setiap lapisan decoder transformer.
  • encoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model encoder pada output setiap tahap.
  • pixel_decoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model pixel decoder pada output setiap tahap.
  • transformer_decoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari transformer decoder pada output setiap tahap.
  • transformer_decoder_object_queries (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri objek keluaran dari lapisan terakhir pada transformer decoder.
  • transformer_decoder_contrastive_queries (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri kontras dari transformer decoder.
  • transformer_decoder_mask_predictions (torch.Tensor dengan bentuk (batch_size, num_queries, height, width)) — Prediksi Mask dari lapisan terakhir di transformer decoder.
  • transformer_decoder_class_predictions (torch.Tensor dengan bentuk (batch_size, num_queries, num_classes+1)) — Prediksi kelas dari lapisan terakhir di transformer decoder.
  • transformer_decoder_auxiliary_predictions (List of Dict of str, torch.Tensor, opsional) — Daftar prediksi kelas dan mask dari setiap lapisan transformer decoder.
  • text_queries (torch.Tensor, opsional dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri teks yang diturunkan dari daftar teks input yang digunakan untuk menghitung kerugian kontras (contrastive loss) selama pelatihan.
  • task_token (torch.Tensor dengan bentuk (batch_size, hidden_dim)) — token tugas 1D untuk mengondisikan query.
  • attentions (tuple(tuple(torch.Tensor)), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari tuple(torch.Tensor) (satu untuk setiap lapisan) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length). Bobot Self dan Cross Attentions dari decoder transformer.

Kelas untuk output dari OneFormerForUniversalSegmentationOutput.

Output ini dapat langsung diteruskan ke post_process_semantic_segmentation() atau post_process_instance_segmentation() atau post_process_panoptic_segmentation() tergantung pada tugasnya. Silakan lihat [`~OneFormerImageProcessor] untuk detail mengenai penggunaan.

OneFormerConfig

kelas transformers.OneFormerConfig

< >

( 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 = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneignore_value: int = 255num_queries: int = 150no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0contrastive_weight: float = 0.5contrastive_temperature: float = 0.07train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75init_std: float = 0.02init_xavier_std: float = 1.0layer_norm_eps: float = 1e-05is_training: bool = Falseuse_auxiliary_loss: bool = Trueoutput_auxiliary_logits: bool = Truestrides: list[int] | tuple[int, ...] = (4, 8, 16, 32)task_seq_len: int = 77text_encoder_width: int = 256text_encoder_context_length: int = 77text_encoder_num_layers: int = 6text_encoder_vocab_size: int = 49408text_encoder_proj_layers: int = 2text_encoder_n_ctx: int = 16conv_dim: int = 256mask_dim: int = 256hidden_dim: int = 256encoder_feedforward_dim: int = 1024norm: str = 'GN'encoder_layers: int = 6decoder_layers: int = 10use_task_norm: bool = Truenum_attention_heads: int = 8dropout: float | int = 0.1dim_feedforward: int = 2048pre_norm: bool = Falseenforce_input_proj: bool = Falsequery_dec_layers: int = 2common_stride: int = 4 )

Parameter

  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Konfigurasi dari model backbone.
  • ignore_value (int, opsional, default 255) — Nilai yang diabaikan pada label GT saat menghitung loss.
  • num_queries (int, opsional, default 150) — Jumlah query objek.
  • no_object_weight (float, opsional, default 0.1) — Bobot klasifikasi relatif untuk kelas no-object dalam loss deteksi objek.
  • class_weight (float, opsional, default 2.0) — Bobot relatif dari kesalahan klasifikasi dalam biaya pencocokan Hungaria.
  • mask_weight (float, opsional, default 5.0) — Bobot relatif dari focal loss dalam loss segmentasi panoptik.
  • dice_weight (float, opsional, default 5.0) — Bobot relatif dari dice loss dalam loss segmentasi panoptik.
  • contrastive_weight (float, opsional, default 0.5) — Bobot untuk kerugian kontrastif.
  • contrastive_temperature (float, opsional, default 0.07) — Nilai awal untuk penskalaan logits kontras.
  • train_num_points (int, opsional, default 12544) — Jumlah titik yang diambil saat menghitung kerugian pada prediksi mask.
  • oversample_ratio (float, opsional, default 3.0) — Rasio untuk menentukan berapa banyak titik yang akan di-oversample.
  • importance_sample_ratio (float, opsional, default 0,75) — Rasio titik yang diambil melalui importance sampling.
  • init_std (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • init_xavier_std (float, opsional, defaultnya 1.0) — Faktor penskalaan yang digunakan untuk inisialisasi Xavier pada bobot cross-attention.
  • layer_norm_eps (float, opsional, defaultnya 1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan.
  • is_training (bool, opsional, default False) — Apakah akan dijalankan dalam mode pelatihan atau inferensi.
  • use_auxiliary_loss (bool, opsional, default True) — Apakah akan menghitung loss menggunakan prediksi perantara dari transformer decoder.
  • output_auxiliary_logits (bool, opsional, defaultnya True) — Apakah akan mengembalikan prediksi perantara dari decoder transformer.
  • strides (list, opsional, default [4, 8, 16, 32]) — Daftar yang berisi strides untuk feature maps di encoder.
  • task_seq_len (int, opsional, default 77) — Panjang sekuens untuk tokenisasi input daftar teks.
  • text_encoder_width (int, opsional, default 256) — Ukuran tersembunyi untuk text encoder.
  • text_encoder_context_length (int, opsional, default 77) — Panjang urutan input untuk text encoder.
  • text_encoder_num_layers (int, opsional, defaultnya 6) — Jumlah lapisan untuk transformer di text encoder.
  • text_encoder_vocab_size (int, opsional, default 49408) — Ukuran kosakata untuk tokenizer.
  • text_encoder_proj_layers (int, opsional, default 2) — Jumlah lapisan dalam MLP untuk memproyeksikan kueri teks.
  • text_encoder_n_ctx (int, opsional, default 16) — Jumlah query konteks teks yang dapat dipelajari.
  • conv_dim (int, opsional, default 256) — Dimensi feature map untuk memetakan output dari backbone.
  • mask_dim (int, opsional, default 256) — Dimensi untuk peta fitur di pixel decoder.
  • hidden_dim (int, opsional, default 256) — Dimensi untuk hidden states di transformer decoder.
  • encoder_feedforward_dim (int, opsional, default 1024) — Dimensi untuk lapisan FFN dalam pixel decoder.
  • norm (str, opsional, default "GN") — Jenis normalisasi.
  • encoder_layers (int, opsional, default 6) — Jumlah lapisan tersembunyi dalam encoder Transformer. Akan menggunakan nilai yang sama dengan num_layers jika tidak diatur.
  • decoder_layers (int, opsional, default 10) — Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengan num_layers jika tidak diatur.
  • use_task_norm (bool, opsional, defaultnya True) — Apakah akan menormalisasi token tugas.
  • num_attention_heads (int, opsional, default 8) — Jumlah attention heads untuk setiap lapisan attention di decoder Transformer.
  • dropout (Union[float, int], opsional, default 0.1) — Rasio untuk semua lapisan dropout.
  • dim_feedforward (int, opsional, default 2048) — Dimensi untuk lapisan FFN dalam decoder transformer.
  • pre_norm (bool, opsional, default False) — Apakah menormalisasi hidden states sebelum lapisan attention dalam transformer decoder.
  • enforce_input_proj (bool, opsional, default False) — Apakah akan memproyeksikan hidden states di transformer decoder.
  • query_dec_layers (int, opsional, defaultnya 2) — Jumlah lapisan dalam transformer query.
  • common_stride (int, opsional, default 4) — Stride umum yang digunakan untuk fitur dalam pixel decoder.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari OneFormerModel. Kelas ini digunakan untuk membuat instans model Oneformer sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari shi-labs/oneformer_ade20k_swin_tiny

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

Contoh:

>>> from transformers import OneFormerConfig, OneFormerModel

>>> # Initializing a OneFormer shi-labs/oneformer_ade20k_swin_tiny configuration
>>> configuration = OneFormerConfig()
>>> # Initializing a model (with random weights) from the shi-labs/oneformer_ade20k_swin_tiny style configuration
>>> model = OneFormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

OneFormerImageProcessor

kelas transformers.OneFormerImageProcessor

< >

( **kwargs: *<class 'transformers.models.oneformer.image_processing_oneformer.OneFormerImageProcessorKwargs'> )

Parameter

  • do_convert_rgb (bool, kwargs, opsional, default True) — Apakah akan mengkonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional, default True) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya {'shortest_edge' -- 800, 'longest_edge': 1333}): Menggambarkan dimensi input maksimum ke model.
  • default_to_square (bool, kwargs, opsional, defaultnya False) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya 2) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional, default True) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional, default 0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional, default True) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.485, 0.456, 0.406]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.229, 0.224, 0.225]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • repo_path (str, kwargs, opsional, defaultnya shi-labs/oneformer_demo) — Path ke direktori lokal atau repositori HuggingFace Hub yang berisi metadata model.
  • class_info_file (str, kwargs, opsional) — Path ke file JSON di dalam repositori yang berisi metadata kelas.
  • num_text (int, kwargs, opsional) — Jumlah kueri teks untuk pengkode teks, digunakan sebagai prompt pemandu tugas.
  • num_labels (int, kwargs, opsional) — Jumlah kelas semantik untuk segmentasi, yang menentukan ukuran lapisan output.
  • ignore_index (int, kwargs, opsional) — Label yang diabaikan pada peta segmentasi, sering digunakan untuk padding.
  • do_reduce_labels (bool, kwargs, opsional, default False) — Apakah akan mengurangi semua nilai label sebesar 1, memetakan kelas latar belakang ke ignore_index.

Membangun pemroses gambar OneFormerImageProcessor.

praproses

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]task_inputs: list[str] | None = Nonesegmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.oneformer.image_processing_oneformer.OneFormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

Parameter

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • task_inputs (list[str], opsional) — Daftar tugas ("panoptic", "instance", "semantic") untuk setiap gambar dalam batch.
  • segmentation_maps (ImageInput, opsional) — Peta segmentasi.
  • instance_id_to_semantic_id (Union[list[dict[int, int]], dict[int, int]], opsional) — Pemetaan dari ID instance ke ID semantik.
  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model.
  • default_to_square (bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • repo_path (str, kwargs, opsional, defaultnya shi-labs/oneformer_demo) — Path ke direktori lokal atau repositori HuggingFace Hub yang berisi metadata model.
  • class_info_file (str, kwargs, opsional) — Path ke file JSON di dalam repositori yang berisi metadata kelas.
  • num_text (int, kwargs, opsional) — Jumlah kueri teks untuk pengkode teks, digunakan sebagai prompt pemandu tugas.
  • num_labels (int, kwargs, opsional) — Jumlah kelas semantik untuk segmentasi, yang menentukan ukuran lapisan output.
  • ignore_index (int, kwargs, opsional) — Label yang diabaikan pada peta segmentasi, sering digunakan untuk padding.
  • do_reduce_labels (bool, kwargs, opsional, default False) — Apakah akan mengurangi semua nilai label sebesar 1, memetakan kelas latar belakang ke ignore_index.

Mengembalikan

~image_processing_base.BatchFeature

  • data (dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.).
  • tensor_type (Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.

post_process_semantic_segmentation

< >

( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

Parameter

  • outputs (OneFormerForUniversalSegmentation) — Output mentah dari model.
  • target_sizes (list[tuple[int, int]], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (Tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize.
  • return_segmentation_scores (bool, opsional, default False) — Apakah akan mengembalikan skor segmentasi bersama peta segmentasi. Ketika True, setiap elemen dari daftar yang dikembalikan adalah SemanticSegmentationPostProcessorOutput dengan field segmentation (ID kelas, bentuk (height, width)) dan segmentation_scores (bentuk (num_classes, height, width)).

Mengembalikan

list[torch.Tensor] atau list[SemanticSegmentationPostProcessorOutput]

Ketika return_segmentation_scores=False (default), sebuah daftar dengan panjang batch_size di mana setiap item adalah peta segmentasi dengan bentuk (height, width) berisi ID kelas. Ketika return_segmentation_scores=True, sebuah daftar SemanticSegmentationPostProcessorOutput dengan field segmentation (ID kelas, bentuk (height, width)) dan segmentation_scores (bentuk (num_classes, height, width)). Dalam kedua kasus, (height, width) sesuai dengan ukuran target (jika target_sizes ditentukan).

Mengonversi output dari OneFormerForUniversalSegmentation menjadi peta segmentasi semantik. Hanya mendukung PyTorch.

post_process_instance_segmentation

< >

( outputstask_type: str = 'instance'is_demo: bool = Truethreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = False ) → List[Dict]

Parameter

  • outputs (OneFormerForUniversalSegmentationOutput) — Output dari OneFormerForUniversalSegmentationOutput.
  • task_type (str, opsional, default “instance”) — Pemrosesan pasca (post processing) bergantung pada token tugas input. Jika task_type adalah “panoptic”, kita perlu mengabaikan prediksi stuff.
  • is_demo (bool, opsional, defaultnya True) — Apakah model berada dalam mode demo. Jika true, gunakan threshold untuk memprediksi mask akhir.
  • threshold (float, opsional, default 0.5) — Ambang batas skor probabilitas untuk mempertahankan mask instance yang diprediksi.
  • mask_threshold (float, opsional, default 0.5) — Ambang batas yang digunakan saat mengubah mask prediksi menjadi nilai biner.
  • overlap_mask_area_threshold (float, opsional, default 0.8) — Ambang batas area mask overlap untuk menggabungkan atau membuang bagian kecil yang terputus di dalam setiap mask instance biner.
  • target_sizes (List[Tuple], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (Tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi dalam batch. Jika dibiarkan None, prediksi tidak akan di-resize.
  • return_coco_annotation (bool, opsional, default False) — Apakah akan mengembalikan prediksi dalam format COCO.

Mengembalikan

List[Dict]

Daftar kamus, satu per gambar, di mana setiap kamus berisi dua kunci:

  • segmentation — tensor dengan bentuk (height, width) di mana setiap piksel mewakili segment_id, diatur ke None jika tidak ada mask yang ditemukan di atas threshold. Jika target_sizes ditentukan, segmentation di-resize ke entri target_sizes yang sesuai.
  • segments_info — Kamus yang berisi informasi tambahan untuk setiap segmen.
    • id — bilangan bulat yang merepresentasikan segment_id.
    • label_id — Bilangan bulat yang mewakili id label/kelas semantik yang sesuai dengan segment_id.
    • was_fused — sebuah boolean, True jika label_id ada di dalam label_ids_to_fuse, False jika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satu segment_id.
    • score — Skor prediksi segmen dengan segment_id.

Mengonversi output dari OneFormerForUniversalSegmentationOutput menjadi prediksi segmentasi instance gambar. Hanya mendukung PyTorch.

post_process_panoptic_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → list[Dict]

Parameter

  • outputs (MaskFormerForInstanceSegmentationOutput) — Output dari MaskFormerForInstanceSegmentation.
  • threshold (float, opsional, default 0.5) — Ambang batas skor probabilitas untuk mempertahankan mask instance yang diprediksi.
  • mask_threshold (float, opsional, default 0.5) — Ambang batas yang digunakan saat mengubah mask prediksi menjadi nilai biner.
  • overlap_mask_area_threshold (float, opsional, default 0.8) — Ambang batas area mask overlap untuk menggabungkan atau membuang bagian kecil yang terputus di dalam setiap mask instance biner.
  • label_ids_to_fuse (Set[int], opsional) — Label dalam state ini akan memiliki semua instansnya yang dilebur menjadi satu. Misalnya, kita bisa mengatakan bahwa hanya bisa ada satu langit dalam sebuah gambar, tetapi beberapa orang, sehingga ID label untuk langit akan ada dalam set tersebut, tetapi bukan untuk orang.
  • target_sizes (list[Tuple], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi dalam batch. Jika dibiarkan None, prediksi tidak akan di-resize.

Mengembalikan

list[Dict]

Daftar kamus, satu per gambar, di mana setiap kamus berisi dua kunci:

  • segmentation — tensor dengan bentuk (height, width) di mana setiap piksel mewakili segment_id, diatur ke None jika tidak ada mask yang ditemukan di atas threshold. Jika target_sizes ditentukan, segmentation di-resize ke entri target_sizes yang sesuai.
  • segments_info — Kamus yang berisi informasi tambahan untuk setiap segmen.
    • id — bilangan bulat yang merepresentasikan segment_id.
    • label_id — Bilangan bulat yang mewakili id label/kelas semantik yang sesuai dengan segment_id.
    • was_fused — sebuah boolean, True jika label_id ada di dalam label_ids_to_fuse, False jika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satu segment_id.
    • score — Skor prediksi segmen dengan segment_id.

Mengonversi output dari MaskFormerForInstanceSegmentationOutput menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.

OneFormerImageProcessorPil

kelas transformers.OneFormerImageProcessorPil

< >

( **kwargs: *<class 'transformers.models.oneformer.image_processing_pil_oneformer.OneFormerImageProcessorKwargs'> )

Parameter

  • do_convert_rgb (bool, kwargs, opsional, default True) — Apakah akan mengkonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional, default True) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya {'shortest_edge' -- 800, 'longest_edge': 1333}): Menggambarkan dimensi input maksimum ke model.
  • default_to_square (bool, kwargs, opsional, defaultnya False) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya 2) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional, default True) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional, default 0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional, default True) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.485, 0.456, 0.406]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0.229, 0.224, 0.225]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • repo_path (str, kwargs, opsional, defaultnya shi-labs/oneformer_demo) — Path ke direktori lokal atau repositori HuggingFace Hub yang berisi metadata model.
  • class_info_file (str, kwargs, opsional) — Path ke file JSON di dalam repositori yang berisi metadata kelas.
  • num_text (int, kwargs, opsional) — Jumlah kueri teks untuk pengkode teks, digunakan sebagai prompt pemandu tugas.
  • num_labels (int, kwargs, opsional) — Jumlah kelas semantik untuk segmentasi, yang menentukan ukuran lapisan output.
  • ignore_index (int, kwargs, opsional) — Label yang diabaikan pada peta segmentasi, sering digunakan untuk padding.
  • do_reduce_labels (bool, kwargs, opsional, default False) — Apakah akan mengurangi semua nilai label sebesar 1, memetakan kelas latar belakang ke ignore_index.

Membangun pemroses gambar OneFormerImageProcessor.

praproses

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]task_inputs: list[str] | None = Nonesegmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.oneformer.image_processing_pil_oneformer.OneFormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

Parameter

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • task_inputs (list[str], opsional) — Daftar tugas ("panoptic", "instance", "semantic") untuk setiap gambar dalam batch.
  • segmentation_maps (ImageInput, opsional) — Peta segmentasi.
  • instance_id_to_semantic_id (Union[list[dict[int, int]], dict[int, int]], opsional) — Pemetaan dari ID instance ke ID semantik.
  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model.
  • default_to_square (bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
  • repo_path (str, kwargs, opsional, defaultnya shi-labs/oneformer_demo) — Path ke direktori lokal atau repositori HuggingFace Hub yang berisi metadata model.
  • class_info_file (str, kwargs, opsional) — Path ke file JSON di dalam repositori yang berisi metadata kelas.
  • num_text (int, kwargs, opsional) — Jumlah kueri teks untuk pengkode teks, digunakan sebagai prompt pemandu tugas.
  • num_labels (int, kwargs, opsional) — Jumlah kelas semantik untuk segmentasi, yang menentukan ukuran lapisan output.
  • ignore_index (int, kwargs, opsional) — Label yang diabaikan pada peta segmentasi, sering digunakan untuk padding.
  • do_reduce_labels (bool, kwargs, opsional, default False) — Apakah akan mengurangi semua nilai label sebesar 1, memetakan kelas latar belakang ke ignore_index.

Mengembalikan

~image_processing_base.BatchFeature

  • data (dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.).
  • tensor_type (Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.

post_process_semantic_segmentation

< >

( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

Parameter

  • outputs (OneFormerForUniversalSegmentation) — Output mentah dari model.
  • target_sizes (list[tuple[int, int]], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (Tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize.
  • return_segmentation_scores (bool, opsional, default False) — Apakah akan mengembalikan skor segmentasi bersama peta segmentasi. Ketika True, setiap elemen dari daftar yang dikembalikan adalah SemanticSegmentationPostProcessorOutput dengan field segmentation (ID kelas, bentuk (height, width)) dan segmentation_scores (bentuk (num_classes, height, width)).

Mengembalikan

list[torch.Tensor] atau list[SemanticSegmentationPostProcessorOutput]

Ketika return_segmentation_scores=False (default), sebuah daftar dengan panjang batch_size di mana setiap item adalah peta segmentasi dengan bentuk (height, width) berisi ID kelas. Ketika return_segmentation_scores=True, sebuah daftar SemanticSegmentationPostProcessorOutput dengan field segmentation (ID kelas, bentuk (height, width)) dan segmentation_scores (bentuk (num_classes, height, width)). Dalam kedua kasus, (height, width) sesuai dengan ukuran target (jika target_sizes ditentukan).

Mengonversi output dari OneFormerForUniversalSegmentation menjadi peta segmentasi semantik. Hanya mendukung PyTorch.

post_process_instance_segmentation

< >

( outputstask_type: str = 'instance'is_demo: bool = Truethreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = False ) → List[Dict]

Parameter

  • outputs (OneFormerForUniversalSegmentationOutput) — Output dari OneFormerForUniversalSegmentationOutput.
  • task_type (str, opsional, default “instance”) — Pemrosesan pasca (post processing) bergantung pada token tugas input. Jika task_type adalah “panoptic”, kita perlu mengabaikan prediksi stuff.
  • is_demo (bool, opsional, defaultnya True) — Apakah model berada dalam mode demo. Jika true, gunakan threshold untuk memprediksi mask akhir.
  • threshold (float, opsional, default 0.5) — Ambang batas skor probabilitas untuk mempertahankan mask instance yang diprediksi.
  • mask_threshold (float, opsional, default 0.5) — Ambang batas yang digunakan saat mengubah mask prediksi menjadi nilai biner.
  • overlap_mask_area_threshold (float, opsional, default 0.8) — Ambang batas area mask overlap untuk menggabungkan atau membuang bagian kecil yang terputus di dalam setiap mask instance biner.
  • target_sizes (List[Tuple], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (Tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi dalam batch. Jika dibiarkan None, prediksi tidak akan di-resize.
  • return_coco_annotation (bool, opsional, default False) — Apakah akan mengembalikan prediksi dalam format COCO.

Mengembalikan

List[Dict]

Daftar kamus, satu per gambar, di mana setiap kamus berisi dua kunci:

  • segmentation — tensor dengan bentuk (height, width) di mana setiap piksel mewakili segment_id, diatur ke None jika tidak ada mask yang ditemukan di atas threshold. Jika target_sizes ditentukan, segmentation di-resize ke entri target_sizes yang sesuai.
  • segments_info — Kamus yang berisi informasi tambahan untuk setiap segmen.
    • id — bilangan bulat yang merepresentasikan segment_id.
    • label_id — Bilangan bulat yang mewakili id label/kelas semantik yang sesuai dengan segment_id.
    • was_fused — sebuah boolean, True jika label_id ada di dalam label_ids_to_fuse, False jika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satu segment_id.
    • score — Skor prediksi segmen dengan segment_id.

Mengonversi output dari OneFormerForUniversalSegmentationOutput menjadi prediksi segmentasi instance gambar. Hanya mendukung PyTorch.

post_process_panoptic_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → list[Dict]

Parameter

  • outputs (MaskFormerForInstanceSegmentationOutput) — Output dari MaskFormerForInstanceSegmentation.
  • threshold (float, opsional, default 0.5) — Ambang batas skor probabilitas untuk mempertahankan mask instance yang diprediksi.
  • mask_threshold (float, opsional, default 0.5) — Ambang batas yang digunakan saat mengubah mask prediksi menjadi nilai biner.
  • overlap_mask_area_threshold (float, opsional, default 0.8) — Ambang batas area mask overlap untuk menggabungkan atau membuang bagian kecil yang terputus di dalam setiap mask instance biner.
  • label_ids_to_fuse (Set[int], opsional) — Label dalam state ini akan memiliki semua instansnya yang dilebur menjadi satu. Misalnya, kita bisa mengatakan bahwa hanya bisa ada satu langit dalam sebuah gambar, tetapi beberapa orang, sehingga ID label untuk langit akan ada dalam set tersebut, tetapi bukan untuk orang.
  • target_sizes (list[Tuple], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi dalam batch. Jika dibiarkan None, prediksi tidak akan di-resize.

Mengembalikan

list[Dict]

Daftar kamus, satu per gambar, di mana setiap kamus berisi dua kunci:

  • segmentation — tensor dengan bentuk (height, width) di mana setiap piksel mewakili segment_id, diatur ke None jika tidak ada mask yang ditemukan di atas threshold. Jika target_sizes ditentukan, segmentation di-resize ke entri target_sizes yang sesuai.
  • segments_info — Kamus yang berisi informasi tambahan untuk setiap segmen.
    • id — bilangan bulat yang merepresentasikan segment_id.
    • label_id — Bilangan bulat yang mewakili id label/kelas semantik yang sesuai dengan segment_id.
    • was_fused — sebuah boolean, True jika label_id ada di dalam label_ids_to_fuse, False jika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satu segment_id.
    • score — Skor prediksi segmen dengan segment_id.

Mengonversi output dari MaskFormerForInstanceSegmentationOutput menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.

OneFormerProcessor

kelas transformers.OneFormerProcessor

< >

( image_processor = Nonetokenizer = Nonemax_seq_length: int = 77task_seq_length: int = 77**kwargs )

Parameter

  • image_processor (OneFormerImageProcessor) — Prosesor gambar adalah input yang wajib.
  • tokenizer (CLIPTokenizer) — Tokenizer adalah input yang wajib.
  • max_seq_length (int, opsional, default 77) — Panjang maksimum urutan untuk mengkodekan nama kelas dan input teks. Parameter ini mengontrol jumlah token maksimum yang digunakan saat melakukan tokenisasi nama kelas dan input teks lainnya untuk model.
  • task_seq_length (int, opsional, default 77) — Panjang maksimum urutan secara khusus untuk pengkodean deskripsi tugas. Deskripsi tugas (misalnya, “tugasnya adalah semantik”) ditokenisasi dengan batas panjang ini, yang mungkin berbeda dari panjang urutan teks umum.

Membangun OneFormerProcessor yang membungkus image processor dan tokenizer menjadi satu processor.

OneFormerProcessor menyediakan semua fungsionalitas dari OneFormerImageProcessor dan CLIPTokenizer. Lihat ~OneFormerImageProcessor dan ~CLIPTokenizer untuk informasi lebih lanjut.

__call__

< >

( images = Nonetask_inputs = Nonesegmentation_maps = None**kwargs ) → BatchFeature

Parameter

  • images (`) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, set do_rescale=False`.
  • task_inputs (str atau list[str], wajib) — Jenis tugas untuk segmentasi. Harus berupa satu atau lebih dari "semantic", "instance", atau "panoptic". Dapat berupa satu string untuk satu gambar, atau daftar string (satu per gambar) untuk pemrosesan batch. Jenis tugas menentukan jenis segmentasi apa yang akan dilakukan model pada gambar input.
  • segmentation_maps (ImageInput, opsional) — Peta segmentasi semantik yang sesuai dengan anotasi per piksel.

    (bool, opsional, defaultnya True): Apakah akan melakukan padding gambar hingga ukuran gambar terbesar dalam batch dan membuat mask piksel.

    Jika dibiarkan pada nilai default, akan mengembalikan mask piksel yang:

    • 1 untuk piksel yang asli (yaitu tidak dimasker),
    • 0 untuk piksel yang merupakan padding (yaitu masked).
  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek NumPy np.ndarray.

Mengembalikan

BatchFeature

BatchFeature dengan bidang berikut:

  • task_inputs — Daftar token id yang akan diberikan ke model. Dikembalikan ketika text bukan None.
  • pixel_values — Nilai piksel yang akan diberikan ke model. Dikembalikan ketika images bukan None.

OneFormerModel

kelas transformers.OneFormerModel

< >

( config: OneFormerConfig )

Parameter

  • config (OneFormerConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Oneformer polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( pixel_values: Tensortask_inputs: Tensortext_inputs: typing.Optional[torch.Tensor] = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → OneFormerModelOutput or tuple(torch.Tensor)

Parameter

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan OneFormerImageProcessor. Lihat OneFormerImageProcessor.call() untuk detailnya (OneFormerProcessor menggunakan OneFormerImageProcessor untuk memproses gambar).
  • task_inputs (torch.Tensor dengan bentuk (batch_size, sequence_length)) — Input tugas. Input tugas dapat diperoleh menggunakan AutoImageProcessor. Lihat OneFormerProcessor.call() untuk detailnya.
  • text_inputs (list[torch.Tensor], opsional) — Tensor dengan bentuk (num_queries, sequence_length) untuk diberikan ke model
  • pixel_mask (torch.Tensor dengan bentuk (batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask yang dipilih dalam [0, 1]:
    • 1 untuk piksel yang asli (yaitu tidak dimasker),
    • 0 untuk piksel yang merupakan padding (yaitu masked).

    Apa itu attention mask?

  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

OneFormerModelOutput atau tuple(torch.Tensor)

A OneFormerModelOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (OneFormerConfig) dan input.

Metode forward dari OneFormerModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • encoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model encoder pada output setiap tahap.
  • pixel_decoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model pixel decoder pada output setiap tahap.
  • transformer_decoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari transformer decoder pada output setiap tahap.
  • transformer_decoder_object_queries (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri objek keluaran dari lapisan terakhir di transformer decoder.
  • transformer_decoder_contrastive_queries (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_dim)) — Query kontrastif dari transformer decoder.
  • transformer_decoder_mask_predictions (torch.Tensor dengan bentuk (batch_size, num_queries, height, width)) — Prediksi Mask dari lapisan terakhir di transformer decoder.
  • transformer_decoder_class_predictions (torch.Tensor dengan bentuk (batch_size, num_queries, num_classes+1)) — Prediksi kelas dari lapisan terakhir di transformer decoder.
  • transformer_decoder_auxiliary_predictions (Tuple of Dict of str, torch.Tensor, opsional) — Tuple dari prediksi kelas dan mask dari setiap lapisan transformer decoder.
  • text_queries (torch.Tensor, opsional dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri teks yang diturunkan dari daftar teks input yang digunakan untuk menghitung kerugian kontras selama pelatihan.
  • task_token (torch.Tensor dengan bentuk (batch_size, hidden_dim)) — token tugas 1D untuk mengondisikan query.
  • attentions (tuple(tuple(torch.Tensor)), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari tuple(torch.Tensor) (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length). Bobot Self dan Cross Attentions dari decoder transformer.

Contoh:

>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import OneFormerProcessor, OneFormerModel

>>> # download test image
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> # load processor for preprocessing the inputs
>>> processor = OneFormerProcessor.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> model = OneFormerModel.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> inputs = processor(image, ["semantic"], return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> mask_predictions = outputs.transformer_decoder_mask_predictions
>>> class_predictions = outputs.transformer_decoder_class_predictions

>>> f"👉 Mask Predictions Shape: {list(mask_predictions.shape)}, Class Predictions Shape: {list(class_predictions.shape)}"
'👉 Mask Predictions Shape: [1, 150, 128, 171], Class Predictions Shape: [1, 150, 151]'

OneFormerForUniversalSegmentation

kelas transformers.OneFormerForUniversalSegmentation

< >

( config: OneFormerConfig )

Parameter

  • config (OneFormerConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model OneFormer untuk segmentasi gambar instance, semantik, dan panoptik.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( pixel_values: Tensortask_inputs: Tensortext_inputs: typing.Optional[torch.Tensor] = Nonemask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_auxiliary_logits: bool | None = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → OneFormerForUniversalSegmentationOutput or tuple(torch.Tensor)

Parameter

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan OneFormerImageProcessor. Lihat OneFormerImageProcessor.call() untuk detailnya (OneFormerProcessor menggunakan OneFormerImageProcessor untuk memproses gambar).
  • task_inputs (torch.Tensor dengan bentuk (batch_size, sequence_length)) — Input tugas. Input tugas dapat diperoleh menggunakan AutoImageProcessor. Lihat OneFormerProcessor.call() untuk detailnya.
  • text_inputs (list[torch.Tensor], opsional) — Tensor dengan bentuk (num_queries, sequence_length) untuk diberikan ke model
  • mask_labels (list[torch.Tensor], opsional) — Daftar label mask dengan bentuk (num_labels, height, width) untuk diberikan ke model
  • class_labels (list[torch.LongTensor], opsional) — daftar label kelas target dengan bentuk (num_labels, height, width) untuk diberikan ke model. Label ini mengidentifikasi label dari mask_labels, misalnya label dari mask_labels[i][j] jika class_labels[i][j].
  • pixel_mask (torch.Tensor dengan bentuk (batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask yang dipilih dalam [0, 1]:
    • 1 untuk piksel yang asli (yaitu tidak dimasker),
    • 0 untuk piksel yang merupakan padding (yaitu masked).

    Apa itu attention mask?

  • output_auxiliary_logits (bool, opsional) — Apakah akan mengeluarkan auxiliary logits atau tidak.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

OneFormerForUniversalSegmentationOutput atau tuple(torch.Tensor)

Sebuah OneFormerForUniversalSegmentationOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (OneFormerConfig) dan input.

Metode forward dari OneFormerForUniversalSegmentation menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor, opsional) — Loss yang dihitung, dikembalikan saat label ada.
  • class_queries_logits (torch.Tensor, opsional) — Tensor dengan bentuk (batch_size, num_queries, num_labels + 1) yang mewakili kelas yang diusulkan untuk setiap query. Perhatikan bahwa + 1 diperlukan karena kami mengintegrasikan kelas null.
  • masks_queries_logits (torch.Tensor, opsional) — Tensor dengan bentuk (batch_size, num_queries, height, width) yang merepresentasikan mask yang diusulkan untuk setiap query.
  • auxiliary_predictions (List of Dict of str, torch.Tensor, opsional) — Daftar prediksi kelas dan mask dari setiap lapisan decoder transformer.
  • encoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model encoder pada output setiap tahap.
  • pixel_decoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model pixel decoder pada output setiap tahap.
  • transformer_decoder_hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk (batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari transformer decoder pada output setiap tahap.
  • transformer_decoder_object_queries (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri objek keluaran dari lapisan terakhir di transformer decoder.
  • transformer_decoder_contrastive_queries (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_dim)) — Query kontrastif dari transformer decoder.
  • transformer_decoder_mask_predictions (torch.Tensor dengan bentuk (batch_size, num_queries, height, width)) — Prediksi Mask dari lapisan terakhir di transformer decoder.
  • transformer_decoder_class_predictions (torch.Tensor dengan bentuk (batch_size, num_queries, num_classes+1)) — Prediksi kelas dari lapisan terakhir di transformer decoder.
  • transformer_decoder_auxiliary_predictions (List of Dict of str, torch.Tensor, opsional) — Daftar prediksi kelas dan mask dari setiap lapisan transformer decoder.
  • text_queries (torch.Tensor, opsional dengan bentuk (batch_size, num_queries, hidden_dim)) — Kueri teks yang diturunkan dari daftar teks input yang digunakan untuk menghitung kerugian kontras selama pelatihan.
  • task_token (torch.Tensor dengan bentuk (batch_size, hidden_dim)) — token tugas 1D untuk mengondisikan query.
  • attentions (tuple(tuple(torch.Tensor)), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari tuple(torch.Tensor) (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length). Bobot Self dan Cross Attentions dari decoder transformer.

Contoh:

Contoh segmentasi universal:

>>> from transformers import OneFormerProcessor, OneFormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # load OneFormer fine-tuned on ADE20k for universal segmentation
>>> processor = OneFormerProcessor.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> model = OneFormerForUniversalSegmentation.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")

>>> url = (
...     "https://huggingface.co/datasets/hf-internal-testing/fixtures_ade20k/resolve/main/ADE_val_00000001.jpg"
... )
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> # Semantic Segmentation
>>> inputs = processor(image, ["semantic"], return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # you can pass them to processor for semantic postprocessing
>>> predicted_semantic_map = processor.post_process_semantic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> f"👉 Semantic Predictions Shape: {list(predicted_semantic_map.shape)}"
'👉 Semantic Predictions Shape: [512, 683]'

>>> # Instance Segmentation
>>> inputs = processor(image, ["instance"], return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # you can pass them to processor for instance postprocessing
>>> predicted_instance_map = processor.post_process_instance_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> f"👉 Instance Predictions Shape: {list(predicted_instance_map.shape)}"
'👉 Instance Predictions Shape: [512, 683]'

>>> # Panoptic Segmentation
>>> inputs = processor(image, ["panoptic"], return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # you can pass them to processor for panoptic postprocessing
>>> predicted_panoptic_map = processor.post_process_panoptic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> f"👉 Panoptic Predictions Shape: {list(predicted_panoptic_map.shape)}"
'👉 Panoptic Predictions Shape: [512, 683]'
Update on GitHub