Transformers documentation
OneFormer
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_masksdi dalam kelasOneFormerLosspadamodeling_oneformer.pyharus 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 opsionallabel_ids_to_fuseuntuk 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
< source >( 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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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.Tensordengan bentuk(batch_size, num_queries, hidden_dim)) — Kueri objek keluaran dari lapisan terakhir pada transformer decoder. - transformer_decoder_contrastive_queries (
torch.Tensordengan bentuk(batch_size, num_queries, hidden_dim)) — Kueri kontras dari transformer decoder. - transformer_decoder_mask_predictions (
torch.Tensordengan bentuk(batch_size, num_queries, height, width)) — Prediksi Mask dari lapisan terakhir di transformer decoder. - transformer_decoder_class_predictions (
torch.Tensordengan bentuk(batch_size, num_queries, num_classes+1)) — Prediksi kelas dari lapisan terakhir di transformer decoder. - transformer_decoder_auxiliary_predictions (
Tupleof Dict ofstr, 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.Tensordengan bentuk(batch_size, hidden_dim)) — token tugas 1D untuk mengondisikan query. - attentions (
tuple(tuple(torch.Tensor)), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple darituple(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
< source >( 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+ 1diperlukan 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 (
Listof Dict ofstr, torch.Tensor, opsional) — Daftar prediksi kelas dan mask dari setiap lapisan decoder transformer. - encoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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.Tensordengan bentuk(batch_size, num_queries, hidden_dim)) — Kueri objek keluaran dari lapisan terakhir pada transformer decoder. - transformer_decoder_contrastive_queries (
torch.Tensordengan bentuk(batch_size, num_queries, hidden_dim)) — Kueri kontras dari transformer decoder. - transformer_decoder_mask_predictions (
torch.Tensordengan bentuk(batch_size, num_queries, height, width)) — Prediksi Mask dari lapisan terakhir di transformer decoder. - transformer_decoder_class_predictions (
torch.Tensordengan bentuk(batch_size, num_queries, num_classes+1)) — Prediksi kelas dari lapisan terakhir di transformer decoder. - transformer_decoder_auxiliary_predictions (
Listof Dict ofstr, 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.Tensordengan bentuk(batch_size, hidden_dim)) — token tugas 1D untuk mengondisikan query. - attentions (
tuple(tuple(torch.Tensor)), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple darituple(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
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = 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, default0.1) — Bobot klasifikasi relatif untuk kelas no-object dalam loss deteksi objek. - class_weight (
float, opsional, default2.0) — Bobot relatif dari kesalahan klasifikasi dalam biaya pencocokan Hungaria. - mask_weight (
float, opsional, default5.0) — Bobot relatif dari focal loss dalam loss segmentasi panoptik. - dice_weight (
float, opsional, default5.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, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - init_xavier_std (
float, opsional, defaultnya1.0) — Faktor penskalaan yang digunakan untuk inisialisasi Xavier pada bobot cross-attention. - layer_norm_eps (
float, opsional, defaultnya1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - is_training (
bool, opsional, defaultFalse) — Apakah akan dijalankan dalam mode pelatihan atau inferensi. - use_auxiliary_loss (
bool, opsional, defaultTrue) — Apakah akan menghitung loss menggunakan prediksi perantara dari transformer decoder. - output_auxiliary_logits (
bool, opsional, defaultnyaTrue) — 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, default6) — Jumlah lapisan tersembunyi dalam encoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - decoder_layers (
int, opsional, default10) — Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - use_task_norm (
bool, opsional, defaultnyaTrue) — Apakah akan menormalisasi token tugas. - num_attention_heads (
int, opsional, default8) — Jumlah attention heads untuk setiap lapisan attention di decoder Transformer. - dropout (
Union[float, int], opsional, default0.1) — Rasio untuk semua lapisan dropout. - dim_feedforward (
int, opsional, default 2048) — Dimensi untuk lapisan FFN dalam decoder transformer. - pre_norm (
bool, opsional, defaultFalse) — Apakah menormalisasi hidden states sebelum lapisan attention dalam transformer decoder. - enforce_input_proj (
bool, opsional, defaultFalse) — 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.configOneFormerImageProcessor
kelas transformers.OneFormerImageProcessor
< source >( **kwargs: *<class 'transformers.models.oneformer.image_processing_oneformer.OneFormerImageProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengkonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — 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, defaultnyaFalse) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya2) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultTrue) — 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 jikado_normalizediatur keTrue. - 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 jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - repo_path (
str, kwargs, opsional, defaultnyashi-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, defaultFalse) — Apakah akan mengurangi semua nilai label sebesar 1, memetakan kelas latar belakang keignore_index.
Membangun pemroses gambar OneFormerImageProcessor.
praproses
< source >( 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, aturdo_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 menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - repo_path (
str, kwargs, opsional, defaultnyashi-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, defaultFalse) — Apakah akan mengurangi semua nilai label sebesar 1, memetakan kelas latar belakang keignore_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
< source >( 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, defaultFalse) — Apakah akan mengembalikan skor segmentasi bersama peta segmentasi. KetikaTrue, setiap elemen dari daftar yang dikembalikan adalahSemanticSegmentationPostProcessorOutputdengan fieldsegmentation(ID kelas, bentuk(height, width)) dansegmentation_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
< source >( 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 dariOneFormerForUniversalSegmentationOutput. - task_type (
str, opsional, default “instance”) — Pemrosesan pasca (post processing) bergantung pada token tugas input. Jikatask_typeadalah “panoptic”, kita perlu mengabaikan prediksi stuff. - is_demo (
bool, opsional, defaultnyaTrue) — 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, defaultFalse) — 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 mewakilisegment_id, diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. Jikatarget_sizesditentukan, segmentation di-resize ke entritarget_sizesyang 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,
Truejikalabel_idada di dalamlabel_ids_to_fuse,Falsejika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satusegment_id. - score — Skor prediksi segmen dengan
segment_id.
- id — bilangan bulat yang merepresentasikan
Mengonversi output dari OneFormerForUniversalSegmentationOutput menjadi prediksi segmentasi instance gambar. Hanya mendukung PyTorch.
post_process_panoptic_segmentation
< source >( 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 mewakilisegment_id, diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. Jikatarget_sizesditentukan, segmentation di-resize ke entritarget_sizesyang 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,
Truejikalabel_idada di dalamlabel_ids_to_fuse,Falsejika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satusegment_id. - score — Skor prediksi segmen dengan
segment_id.
- id — bilangan bulat yang merepresentasikan
Mengonversi output dari MaskFormerForInstanceSegmentationOutput menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.
OneFormerImageProcessorPil
kelas transformers.OneFormerImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.oneformer.image_processing_pil_oneformer.OneFormerImageProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengkonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — 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, defaultnyaFalse) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya2) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultTrue) — 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 jikado_normalizediatur keTrue. - 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 jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - repo_path (
str, kwargs, opsional, defaultnyashi-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, defaultFalse) — Apakah akan mengurangi semua nilai label sebesar 1, memetakan kelas latar belakang keignore_index.
Membangun pemroses gambar OneFormerImageProcessor.
praproses
< source >( 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, aturdo_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 menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - repo_path (
str, kwargs, opsional, defaultnyashi-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, defaultFalse) — Apakah akan mengurangi semua nilai label sebesar 1, memetakan kelas latar belakang keignore_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
< source >( 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, defaultFalse) — Apakah akan mengembalikan skor segmentasi bersama peta segmentasi. KetikaTrue, setiap elemen dari daftar yang dikembalikan adalahSemanticSegmentationPostProcessorOutputdengan fieldsegmentation(ID kelas, bentuk(height, width)) dansegmentation_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
< source >( 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 dariOneFormerForUniversalSegmentationOutput. - task_type (
str, opsional, default “instance”) — Pemrosesan pasca (post processing) bergantung pada token tugas input. Jikatask_typeadalah “panoptic”, kita perlu mengabaikan prediksi stuff. - is_demo (
bool, opsional, defaultnyaTrue) — 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, defaultFalse) — 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 mewakilisegment_id, diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. Jikatarget_sizesditentukan, segmentation di-resize ke entritarget_sizesyang 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,
Truejikalabel_idada di dalamlabel_ids_to_fuse,Falsejika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satusegment_id. - score — Skor prediksi segmen dengan
segment_id.
- id — bilangan bulat yang merepresentasikan
Mengonversi output dari OneFormerForUniversalSegmentationOutput menjadi prediksi segmentasi instance gambar. Hanya mendukung PyTorch.
post_process_panoptic_segmentation
< source >( 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 mewakilisegment_id, diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. Jikatarget_sizesditentukan, segmentation di-resize ke entritarget_sizesyang 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,
Truejikalabel_idada di dalamlabel_ids_to_fuse,Falsejika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satusegment_id. - score — Skor prediksi segmen dengan
segment_id.
- id — bilangan bulat yang merepresentasikan
Mengonversi output dari MaskFormerForInstanceSegmentationOutput menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.
OneFormerProcessor
kelas transformers.OneFormerProcessor
< source >( 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, default77) — 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, default77) — 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__
< source >( 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, setdo_rescale=False`. - task_inputs (
strataulist[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, defaultnyaTrue): 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 (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek NumPynp.ndarray.
Mengembalikan
BatchFeature dengan bidang berikut:
- task_inputs — Daftar token id yang akan diberikan ke model. Dikembalikan ketika
textbukanNone. - pixel_values — Nilai piksel yang akan diberikan ke model. Dikembalikan ketika
imagesbukanNone.
OneFormerModel
kelas transformers.OneFormerModel
< source >( 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
< source >( 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.Tensordengan 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.Tensordengan 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.Tensordengan 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).
- output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi 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
Modulesetelahnya 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 ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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.Tensordengan bentuk(batch_size, num_queries, hidden_dim)) — Kueri objek keluaran dari lapisan terakhir di transformer decoder. - transformer_decoder_contrastive_queries (
torch.Tensordengan bentuk(batch_size, num_queries, hidden_dim)) — Query kontrastif dari transformer decoder. - transformer_decoder_mask_predictions (
torch.Tensordengan bentuk(batch_size, num_queries, height, width)) — Prediksi Mask dari lapisan terakhir di transformer decoder. - transformer_decoder_class_predictions (
torch.Tensordengan bentuk(batch_size, num_queries, num_classes+1)) — Prediksi kelas dari lapisan terakhir di transformer decoder. - transformer_decoder_auxiliary_predictions (
Tupleof Dict ofstr, 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.Tensordengan bentuk(batch_size, hidden_dim)) — token tugas 1D untuk mengondisikan query. - attentions (
tuple(tuple(torch.Tensor)), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple darituple(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
< source >( 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
< source >( 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.Tensordengan 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.Tensordengan 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 darimask_labels, misalnya label darimask_labels[i][j]jikaclass_labels[i][j]. - pixel_mask (
torch.Tensordengan 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).
- 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. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi 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
Modulesetelahnya 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+ 1diperlukan 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 (
Listof Dict ofstr, torch.Tensor, opsional) — Daftar prediksi kelas dan mask dari setiap lapisan decoder transformer. - encoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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.Tensordengan bentuk(batch_size, num_queries, hidden_dim)) — Kueri objek keluaran dari lapisan terakhir di transformer decoder. - transformer_decoder_contrastive_queries (
torch.Tensordengan bentuk(batch_size, num_queries, hidden_dim)) — Query kontrastif dari transformer decoder. - transformer_decoder_mask_predictions (
torch.Tensordengan bentuk(batch_size, num_queries, height, width)) — Prediksi Mask dari lapisan terakhir di transformer decoder. - transformer_decoder_class_predictions (
torch.Tensordengan bentuk(batch_size, num_queries, num_classes+1)) — Prediksi kelas dari lapisan terakhir di transformer decoder. - transformer_decoder_auxiliary_predictions (
Listof Dict ofstr, 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.Tensordengan bentuk(batch_size, hidden_dim)) — token tugas 1D untuk mengondisikan query. - attentions (
tuple(tuple(torch.Tensor)), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple darituple(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]'