Transformers documentation
DETR
Model ini dipublikasikan di HF papers pada 2020-05-26 dan disumbangkan ke Hugging Face Transformers pada 2021-06-09.
DETR
DETR terdiri dari backbone konvolusional yang diikuti oleh Transformer encoder-decoder yang dapat dilatih end-to-end untuk deteksi objek. Model ini sangat menyederhanakan banyak kompleksitas pada model seperti Faster-R-CNN dan Mask-R-CNN, yang menggunakan hal-hal seperti region proposals, prosedur non-maximum suppression, dan anchor generation. Selain itu, DETR juga dapat diperluas secara alami untuk melakukan panoptic segmentation, dengan cukup menambahkan mask head di atas output decoder.
Anda dapat menemukan semua checkpoint DETR asli di bawah organisasi AI at Meta.
Model ini disumbangkan oleh nielsr.
Klik pada model DETR di bilah sisi kanan untuk melihat lebih banyak contoh cara menerapkan DETR ke berbagai tugas deteksi objek dan segmentasi.
Setel
use_kernels=Truedi from_pretrained() untuk mengganti lapisan yang didukung dengan kernel yang dioptimalkan dari Hub. Lihat Memuat kernel untuk mempelajari lebih lanjut.
Contoh di bawah ini menunjukkan cara melakukan deteksi objek dengan kelas Pipeline atau kelas AutoModel.
from transformers import pipeline
pipeline = pipeline(
"object-detection",
model="facebook/detr-resnet-50",
device_map=0
)
pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForObjectDetection
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50")
model = AutoModelForObjectDetection.from_pretrained("facebook/detr-resnet-50", device_map="auto")
# prepare image for the model
inputs = image_processor(images=image, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
results = image_processor.post_process_object_detection(outputs, target_sizes=torch.tensor([image.size[::-1]]), threshold=0.3)
for result in results:
for score, label_id, box in zip(result["scores"], result["labels"], result["boxes"]):
score, label = score.item(), label_id.item()
box = [round(i, 2) for i in box.tolist()]
print(f"{model.config.id2label[label]}: {score:.2f} {box}")How DETR works
Berikut adalah TLDR yang menjelaskan cara kerja DetrForObjectDetection:
Pertama, sebuah gambar dikirim melalui convolutional backbone yang telah dilatih sebelumnya (dalam makalah tersebut, para penulis menggunakan ResNet-50/ResNet-101). Mari kita asumsikan kita juga menambahkan dimensi batch. Ini berarti bahwa input ke backbone adalah tensor dengan bentuk (batch_size, 3, height, width), dengan asumsi gambar memiliki 3 kanal warna (RGB). Backbone CNN menghasilkan peta fitur baru dengan resolusi yang lebih rendah, biasanya dengan bentuk (batch_size, 2048, height/32, width/32). Peta ini kemudian diproyeksikan agar sesuai dengan dimensi tersembunyi dari Transformer pada DETR, yang secara default adalah 256, menggunakan lapisan nn.Conv2D. Jadi sekarang, kita memiliki tensor dengan bentuk (batch_size, 256, height/32, width/32). Selanjutnya, peta fitur diratakan dan ditranspos untuk mendapatkan tensor dengan bentuk (batch_size, seq_len, d_model) = (batch_size, width/32*height/32, 256). Jadi, perbedaan dengan model NLP adalah bahwa panjang sekuens sebenarnya lebih panjang dari biasanya, tetapi dengan d_model yang lebih kecil (yang dalam NLP biasanya 768 atau lebih tinggi).
Selanjutnya, data ini dikirimkan melalui encoder, menghasilkan encoder_hidden_states dengan bentuk yang sama (Anda dapat menganggapnya sebagai fitur gambar). Berikutnya, yang disebut object queries dikirimkan melalui decoder. Ini adalah tensor dengan bentuk (batch_size, num_queries, d_model), di mana num_queries biasanya diatur ke 100 dan diinisialisasi dengan nol. Embedding input ini adalah positional encoding yang dipelajari, yang disebut sebagai object queries oleh para penulis, dan serupa dengan encoder, mereka ditambahkan ke input dari setiap lapisan attention. Setiap object query akan mencari objek tertentu dalam gambar. Decoder memperbarui embedding ini melalui beberapa lapisan self-attention dan encoder-decoder attention untuk menghasilkan decoder_hidden_states dengan bentuk yang sama: (batch_size, num_queries, d_model). Selanjutnya, dua head ditambahkan di atasnya untuk deteksi objek: lapisan linear untuk mengklasifikasikan setiap object query menjadi salah satu dari objek atau “no object”, dan MLP untuk memprediksi bounding box untuk setiap query.
Model dilatih menggunakan bipartite matching loss: jadi yang sebenarnya kami lakukan adalah membandingkan kelas + bounding box yang diprediksi dari masing-masing dari N = 100 object query dengan anotasi ground truth, yang di-pad hingga panjang yang sama N (jadi jika sebuah gambar hanya berisi 4 objek, 96 anotasi sisanya akan memiliki kelas “no object” dan bounding box “no bounding box”). Hungarian matching algorithm digunakan untuk menemukan pemetaan satu-ke-satu yang optimal dari masing-masing dari N query ke masing-masing dari N anotasi. Selanjutnya, cross-entropy standar (untuk kelas) dan kombinasi linear dari L1 dan generalized IoU loss (untuk bounding box) digunakan untuk mengoptimalkan parameter model.
DETR dapat secara alami diperluas untuk melakukan segmentasi panoptik (yang menyatukan segmentasi semantik dan segmentasi instance). DetrForSegmentation menambahkan kepala mask segmentasi di atas DetrForObjectDetection. Kepala mask ini dapat dilatih secara bersama-sama, atau melalui proses dua langkah, di mana pertama-tama sebuah model DetrForObjectDetection dilatih untuk mendeteksi kotak pembatas di sekitar “things” (instance) dan “stuff” (hal-hal latar belakang seperti pohon, jalan, langit), kemudian semua bobot dibekukan dan hanya kepala mask yang dilatih selama 25 epoch. Secara eksperimental, kedua pendekatan ini memberikan hasil yang serupa. Perlu dicatat bahwa prediksi kotak diperlukan agar pelatihan dapat dilakukan, karena pencocokan Hungaria dihitung menggunakan jarak antar kotak.
Catatan
- DETR menggunakan object queries yang disebut untuk mendeteksi objek dalam sebuah gambar. Jumlah query menentukan jumlah maksimum objek yang dapat dideteksi dalam satu gambar, dan secara default diatur ke 100 (lihat parameter
num_queriesdari DetrConfig). Perhatikan bahwa baik untuk memiliki sedikit ruang cadangan (di COCO, para penulis menggunakan 100, sementara jumlah maksimum objek dalam gambar COCO adalah ~70). - Decoder dari DETR memperbarui query embeddings secara paralel. Ini berbeda dari model bahasa seperti GPT-2, yang menggunakan decoding autoregressive alih-alih paralel. Oleh karena itu, tidak ada causal attention mask yang digunakan.
- DETR menambahkan position embeddings ke hidden states pada setiap lapisan self-attention dan cross-attention sebelum diproyeksikan ke queries dan keys. Untuk position embeddings dari gambar, Anda dapat memilih antara fixed sinusoidal atau learned absolute position embeddings. Secara default, parameter
position_embedding_typedari DetrConfig diatur ke"sine". - Selama pelatihan, para penulis DETR menemukan bahwa penggunaan kerugian bantu (auxiliary losses) di decoder sangat membantu, terutama untuk membantu model menghasilkan jumlah objek yang benar untuk setiap kelas. Jika Anda mengatur parameter
auxiliary_lossdari DetrConfig menjadiTrue, maka jaringan saraf feedforward prediksi dan kerugian Hungarian akan ditambahkan setelah setiap lapisan decoder (dengan FFN yang berbagi parameter). - Jika Anda ingin melatih model dalam lingkungan terdistribusi di beberapa node, maka variabel num_boxes di kelas DetrLoss pada modeling_detr.py harus diperbarui. Saat melatih di beberapa node, nilai ini harus diatur ke jumlah rata-rata kotak target di semua node, seperti yang dapat dilihat pada implementasi asli di sini.
- DetrForObjectDetection dan DetrForSegmentation dapat diinisialisasi dengan backbone konvolusional apa pun yang tersedia di timm library. Sebagai contoh, inisialisasi dengan backbone MobileNet dapat dilakukan dengan mengatur atribut
backbonedari DetrConfig menjadi"tf_mobilenetv3_small_075", lalu menginisialisasi model dengan config tersebut. - DER mengubah ukuran gambar input sehingga sisi terpendek setidaknya memiliki jumlah piksel tertentu, sementara sisi terpanjang maksimal 1333 piksel. Saat pelatihan, augmentasi skala digunakan sehingga sisi terpendek diatur secara acak minimal 480 dan maksimal 800 piksel. Saat inferensi, sisi terpendek diatur ke 800. Anda dapat menggunakan DetrImageProcessor untuk menyiapkan gambar (dan anotasi opsional dalam format COCO) untuk model. Karena pengubahan ukuran ini, gambar dalam satu batch dapat memiliki ukuran yang berbeda. DETR menyelesaikan hal ini dengan melakukan padding gambar hingga ukuran terbesar dalam batch, dan dengan membuat pixel mask yang menunjukkan piksel mana yang asli dan mana yang padding. Sebagai alternatif, Anda juga dapat mendefinisikan
collate_fnkustom untuk mem-batch gambar bersama, menggunakan~transformers.DetrImageProcessor.pad_and_create_pixel_mask. - Ukuran gambar akan menentukan jumlah memori yang digunakan, dan dengan demikian menentukan
batch_size. Disarankan untuk menggunakan ukuran batch 2 per GPU. Lihat thread Github ini untuk informasi lebih lanjut.
Ada tiga cara lain untuk menginstansiasi model DETR (tergantung pada preferensi Anda):
- Opsi 1: Instansiasi DETR dengan bobot terlatih untuk seluruh model
from transformers import DetrForObjectDetection
model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", device_map="auto")- Opsi 2: Instansiasi DETR dengan bobot yang diinisialisasi secara acak untuk Transformer, tetapi bobot yang telah dilatih sebelumnya untuk backbone
from transformers import DetrConfig, DetrForObjectDetection
config = DetrConfig()
model = DetrForObjectDetection(config)- Opsi 3: Instansiasi DETR dengan bobot yang diinisialisasi secara acak untuk backbone + Transformer
config = DetrConfig() model = DetrForObjectDetection(config)
Sebagai ringkasan, perhatikan tabel berikut:
| Tugas | Deteksi objek | Segmentasi instance | Segmentasi panoptik |
|---|---|---|---|
| Deskripsi | Memprediksi kotak pembatas dan label kelas di sekitar objek dalam gambar | Memprediksi mask di sekitar objek (yaitu, instans) dalam gambar | Memprediksi mask di sekitar kedua objek (yaitu instance) serta “stuff” (yaitu hal-hal latar belakang seperti pohon dan jalan) dalam sebuah gambar |
| Model | DetrForObjectDetection | DetrForSegmentation | DetrForSegmentation |
| Contoh dataset | Deteksi COCO | Deteksi COCO, panoptik COCO | COCO panoptic |
| Format anotasi yang diberikan ke DetrImageProcessor | {‘image_id’: int, ‘annotations’: list[Dict]} di mana setiap Dict adalah anotasi objek COCO | {‘image_id’: int, ‘annotations’: list[Dict]} (untuk deteksi COCO) atau {‘file_name’: str, ‘image_id’: int, ‘segments_info’: list[Dict]} (untuk panoptic COCO) | {‘file_name’: str, ‘image_id’: int, ‘segments_info’: list[Dict]} dan masks_path (path ke direktori yang berisi file PNG dari mask) |
| Postprocessing (yaitu mengonversi output model ke format Pascal VOC) | ~transformers.DetrImageProcessor.post_process | ~transformers.DetrImageProcessor.post_process_segmentation | ~transformers.DetrImageProcessor.post_process_segmentation, ~transformers.DetrImageProcessor.post_process_panoptic |
| evaluators | CocoEvaluator dengan iou_types="bbox" | CocoEvaluator dengan iou_types="bbox" atau "segm" | CocoEvaluator dengan iou_types="bbox" atau "segm", PanopticEvaluator |
- Singkatnya, data harus disiapkan dalam format deteksi COCO atau panoptik COCO, kemudian gunakan DetrImageProcessor untuk membuat
pixel_values,pixel_mask, danlabelsopsional, yang kemudian dapat digunakan untuk melatih (atau fine-tune) model. - Untuk evaluasi, pertama-tama konversi keluaran model menggunakan salah satu metode pascaproses dari DetrImageProcessor. Hasilnya dapat diberikan ke
CocoEvaluatoratauPanopticEvaluator, yang memungkinkan Anda menghitung metrik seperti mean Average Precision (mAP) dan Panoptic Quality (PQ). Objek terakhir diimplementasikan di repositori asli. Lihat notebook contoh untuk informasi lebih lanjut mengenai evaluasi.
Sumber daya
- Lihat notebook ini untuk contoh fine-tuning DetrForObjectDetection dan DetrForSegmentation pada dataset kustom.
DetrConfig
kelas transformers.DetrConfig
< 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_channels: int = 3num_queries: int = 100encoder_layers: int = 6encoder_ffn_dim: int = 2048encoder_attention_heads: int = 8decoder_layers: int = 6decoder_ffn_dim: int = 2048decoder_attention_heads: int = 8encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0activation_function: str = 'relu'd_model: int = 256dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02init_xavier_std: float = 1.0auxiliary_loss: bool = Falseposition_embedding_type: str = 'sine'dilation: bool = Falseclass_cost: int = 1bbox_cost: int = 5giou_cost: int = 2mask_loss_coefficient: int = 1dice_loss_coefficient: int = 1bbox_loss_coefficient: int = 5giou_loss_coefficient: int = 2eos_coefficient: float = 0.1 )
Parameter
- is_encoder_decoder (
bool, opsional, defaultnyaTrue) — Apakah model digunakan sebagai encoder/decoder atau tidak. - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Konfigurasi dari model backbone. - num_channels (
int, opsional, defaultnya3) — Jumlah saluran input. - num_queries (
int, opsional, default 100) — Jumlah query objek, yaitu slot deteksi. Ini adalah jumlah maksimal objek yang dapat dideteksi oleh ConditionalDetrModel dalam satu gambar. Untuk COCO, kami merekomendasikan 100 query. - encoder_layers (
int, opsional, default6) — Jumlah lapisan tersembunyi dalam encoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - encoder_ffn_dim (
int, opsional, defaultnya2048) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) di encoder. - encoder_attention_heads (
int, opsional, default8) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam encoder Transformer. - decoder_layers (
int, opsional, default6) — Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - decoder_ffn_dim (
int, opsional, defaultnya2048) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) di decoder. - decoder_attention_heads (
int, opsional, default8) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer. - encoder_layerdrop (
Union[float, int], opsional, default0.0) — Probabilitas LayerDrop untuk encoder. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut. - decoder_layerdrop (
Union[float, int], opsional, default0.0) — Probabilitas LayerDrop untuk decoder. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut. - activation_function (
str, opsional, defaultnyarelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - d_model (
int, opsional, default256) — Ukuran lapisan encoder dan lapisan pooler. - dropout (
Union[float, int], opsional, default0.1) — Rasio untuk semua lapisan dropout. - attention_dropout (
Union[float, int], opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - activation_dropout (
Union[float, int], opsional, defaultnya0.0) — Rasio dropout untuk aktivasi di dalam lapisan fully connected. - 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. - auxiliary_loss (
bool, opsional, defaultFalse) — Apakah kerugian dekode bantu (kerugian pada setiap lapisan decoder) akan digunakan. - position_embedding_type (
str, opsional, default"sine") — Jenis position embedding yang akan digunakan di atas fitur gambar. Salah satu dari"sine"atau"learned". - dilation (
bool, opsional, defaultFalse) — Apakah akan mengganti stride dengan dilation pada blok konvolusional terakhir (DC5). Hanya didukung ketikause_timm_backbone=True. - class_cost (
int, opsional, default1) — Bobot relatif dari kesalahan klasifikasi dalam biaya pencocokan Hungarian. - bbox_cost (
int, opsional, default5) — Bobot relatif dari kesalahan kotak pembatas L1 dalam biaya pencocokan Hungaria. - giou_cost (
int, opsional, default2) — Bobot relatif dari kerugian generalized IoU dalam biaya pencocokan Hungarian. - mask_loss_coefficient (
int, opsional, defaultnya1) — Bobot relatif dari focal loss dalam loss segmentasi panoptik. - dice_loss_coefficient (
int, opsional, defaultnya1) — Bobot relatif dari dice loss dalam loss segmentasi panoptik. - bbox_loss_coefficient (
int, opsional, defaultnya5) — Bobot relatif dari kerugian kotak batas L1 dalam kerugian segmentasi panoptik. - giou_loss_coefficient (
int, opsional, defaultnya2) — Bobot relatif dari kerugian generalized IoU dalam kerugian segmentasi panoptik. - eos_coefficient (
float, opsional, default0.1) — Bobot klasifikasi relatif untuk kelas ‘no-object’ dalam loss deteksi objek.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari DetrModel. Kelas ini digunakan untuk membuat instans model Detr berdasarkan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari facebook/detr-resnet-50
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import DetrConfig, DetrModel
>>> # Initializing a DETR facebook/detr-resnet-50 style configuration
>>> configuration = DetrConfig()
>>> # Initializing a model (with random weights) from the facebook/detr-resnet-50 style configuration
>>> model = DetrModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configDetrImageProcessor
kelas transformers.DetrImageProcessor
< source >( **kwargs: *<class 'transformers.models.detr.image_processing_detr.DetrImageProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi 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, defaultTrue) — 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. - format (
str, kwargs, opsional, defaultnyaAnnotationFormat.COCO_DETECTION) — Format data dari anotasi. Salah satu dari “coco_detection” atau “coco_panoptic”. - do_convert_annotations (
bool, kwargs, opsional, defaultTrue) — Mengontrol apakah anotasi akan dikonversi ke format yang diharapkan oleh model DETR. Mengonversi kotak pembatas ke format(center_x, center_y, width, height)dan dalam rentang[0, 1]. Dapat ditimpa oleh parameterdo_convert_annotationspada metodepreprocess.
Membangun pemroses gambar DetrImageProcessor.
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = Nonereturn_segmentation_masks: bool | None = Nonemasks_path: str | pathlib.Path | None = None**kwargs: *<class 'transformers.models.detr.image_processing_detr.DetrImageProcessorKwargs'> ) → ~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. - annotations (
AnnotationTypeataulist[AnnotationType], opsional) — Anotasi yang akan ditransformasikan sesuai dengan padding yang diterapkan pada gambar. - return_segmentation_masks (
bool, opsional, defaultnyaself.return_segmentation_masks) — Apakah akan mengembalikan masker segmentasi. - masks_path (
strataupathlib.Path, opsional) — Path ke direktori yang berisi mask segmentasi. - 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. - format (
str, kwargs, opsional, defaultnyaAnnotationFormat.COCO_DETECTION) — Format data dari anotasi. Salah satu dari “coco_detection” atau “coco_panoptic”. - do_convert_annotations (
bool, kwargs, opsional, defaultTrue) — Mengontrol apakah anotasi akan dikonversi ke format yang diharapkan oleh model DETR. Mengonversi kotak pembatas ke format(center_x, center_y, width, height)dan dalam rentang[0, 1]. Dapat ditimpa oleh parameterdo_convert_annotationspada metodepreprocess.
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_object_detection
< source >( outputsthreshold: float = 0.5target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None ) → list[Dict]
Parameter
- outputs (
DetrObjectDetectionOutput) — Output mentah dari model. - threshold (
float, opsional) — Ambang batas skor untuk mempertahankan prediksi deteksi objek. - target_sizes (
torch.Tensorataulist[tuple[int, int]], opsional) — Tensor dengan bentuk(batch_size, 2)atau daftar tuple (tuple[int, int]) yang berisi ukuran target(height, width)dari setiap gambar dalam batch. Jika tidak diset, prediksi tidak akan di-resize.
Mengembalikan
list[Dict]
Daftar kamus, di mana setiap kamus berisi skor, label, dan kotak untuk sebuah gambar dalam batch seperti yang diprediksi oleh model.
Mengonversi output mentah dari DetrForObjectDetection menjadi kotak batas akhir dalam format (top_left_x, top_left_y, bottom_right_x, bottom_right_y). Hanya mendukung PyTorch.
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 (DetrForSegmentation) — Output mentah dari model.
- target_sizes (
list[tuple[int, int]], opsional) — Daftar tuple (tuple[int, int]) yang berisi ukuran target (tinggi, lebar) dari setiap gambar dalam batch. Jika tidak disetel, 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 DetrForSegmentation menjadi peta segmentasi semantik. Hanya mendukung PyTorch.
post_process_instance_segmentation
< source >( outputsthreshold: 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 (DetrForSegmentation) — Output mentah dari model.
- 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. Jika tidak disetel, prediksi tidak akan di-resize. - return_coco_annotation (
bool, opsional) — Nilai defaultnya adalahFalse. Jika diatur keTrue, peta segmentasi dikembalikan dalam format COCO run-length encoding (RLE).
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 merepresentasikansegment_idataulist[List]run-length encoding (RLE) dari peta segmentasi jika return_coco_annotation diatur keTrue. Diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. - 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. - score — Skor prediksi segmen dengan
segment_id.
- id — Bilangan bulat yang merepresentasikan
Mengonversi output dari DetrForSegmentation menjadi prediksi segmentasi instance. 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 (DetrForSegmentation) — Output dari DetrForSegmentation.
- 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 tidak disetel, 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 merepresentasikansegment_idatauNonejika tidak ada mask yang ditemukan di atasthreshold. Jikatarget_sizesditentukan, segmentation akan 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 DetrForSegmentation menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.
DetrImageProcessorPil
kelas transformers.DetrImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.detr.image_processing_pil_detr.DetrImageProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi 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, defaultTrue) — 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. - format (
str, kwargs, opsional, defaultnyaAnnotationFormat.COCO_DETECTION) — Format data dari anotasi. Salah satu dari “coco_detection” atau “coco_panoptic”. - do_convert_annotations (
bool, kwargs, opsional, defaultTrue) — Mengontrol apakah anotasi akan dikonversi ke format yang diharapkan oleh model DETR. Mengonversi kotak pembatas ke format(center_x, center_y, width, height)dan dalam rentang[0, 1]. Dapat ditimpa oleh parameterdo_convert_annotationspada metodepreprocess.
Membangun pemroses gambar DetrImageProcessor.
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = Nonereturn_segmentation_masks: bool | None = Nonemasks_path: str | pathlib.Path | None = None**kwargs: *<class 'transformers.models.detr.image_processing_pil_detr.DetrImageProcessorKwargs'> ) → ~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. - annotations (
AnnotationTypeataulist[AnnotationType], opsional) — Anotasi yang akan ditransformasikan sesuai dengan padding yang diterapkan pada gambar. - return_segmentation_masks (
bool, opsional, defaultnyaself.return_segmentation_masks) — Apakah akan mengembalikan masker segmentasi. - masks_path (
strataupathlib.Path, opsional) — Path ke direktori yang berisi mask segmentasi. - 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. - format (
str, kwargs, opsional, defaultnyaAnnotationFormat.COCO_DETECTION) — Format data dari anotasi. Salah satu dari “coco_detection” atau “coco_panoptic”. - do_convert_annotations (
bool, kwargs, opsional, defaultTrue) — Mengontrol apakah anotasi akan dikonversi ke format yang diharapkan oleh model DETR. Mengonversi kotak pembatas ke format(center_x, center_y, width, height)dan dalam rentang[0, 1]. Dapat ditimpa oleh parameterdo_convert_annotationspada metodepreprocess.
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_object_detection
< source >( outputsthreshold: float = 0.5target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None ) → list[Dict]
Parameter
- outputs (
DetrObjectDetectionOutput) — Output mentah dari model. - threshold (
float, opsional) — Ambang batas skor untuk mempertahankan prediksi deteksi objek. - target_sizes (
torch.Tensorataulist[tuple[int, int]], opsional) — Tensor dengan bentuk(batch_size, 2)atau daftar tuple (tuple[int, int]) yang berisi ukuran target(height, width)dari setiap gambar dalam batch. Jika tidak diset, prediksi tidak akan di-resize.
Mengembalikan
list[Dict]
Daftar kamus, di mana setiap kamus berisi skor, label, dan kotak untuk sebuah gambar dalam batch seperti yang diprediksi oleh model.
Mengonversi output mentah dari DetrForObjectDetection menjadi kotak batas akhir dalam format (top_left_x, top_left_y, bottom_right_x, bottom_right_y). Hanya mendukung PyTorch.
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 (DetrForSegmentation) — Output mentah dari model.
- target_sizes (
list[tuple[int, int]], opsional) — Daftar tuple (tuple[int, int]) yang berisi ukuran target (tinggi, lebar) dari setiap gambar dalam batch. Jika tidak disetel, 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 DetrForSegmentation menjadi peta segmentasi semantik. Hanya mendukung PyTorch.
post_process_instance_segmentation
< source >( outputsthreshold: 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 (DetrForSegmentation) — Output mentah dari model.
- 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. Jika tidak disetel, prediksi tidak akan di-resize. - return_coco_annotation (
bool, opsional) — Nilai defaultnya adalahFalse. Jika diatur keTrue, peta segmentasi dikembalikan dalam format COCO run-length encoding (RLE).
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 merepresentasikansegment_idataulist[List]run-length encoding (RLE) dari peta segmentasi jika return_coco_annotation diatur keTrue. Diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. - 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. - score — Skor prediksi segmen dengan
segment_id.
- id — Bilangan bulat yang merepresentasikan
Mengonversi output dari DetrForSegmentation menjadi prediksi segmentasi instance. 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 (DetrForSegmentation) — Output dari DetrForSegmentation.
- 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 tidak disetel, 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 merepresentasikansegment_idatauNonejika tidak ada mask yang ditemukan di atasthreshold. Jikatarget_sizesditentukan, segmentation akan 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 DetrForSegmentation menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.
Output khusus DETR
kelas transformers.models.detr.modeling_detr.DetrModelOutput
< source >( last_hidden_state: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.EncoderDecoderCache | None = Nonedecoder_hidden_states: tuple[torch.Tensor, ...] | None = Nonedecoder_attentions: tuple[torch.Tensor, ...] | None = Nonecross_attentions: tuple[torch.Tensor, ...] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor, ...] | None = Noneencoder_attentions: tuple[torch.Tensor, ...] | None = Noneintermediate_hidden_states: typing.Optional[torch.Tensor] = None )
Parameter
- last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-state pada output lapisan terakhir decoder model. Jika past_key_values digunakan, hanya hidden-state terakhir dari urutan dengan bentuk (batch_size, 1, hidden_size) yang dioutput.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput. - past_key_values (
EncoderDecoderCache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah EncoderDecoderCache instance. Untuk detail lebih lanjut, lihat panduan kv cache.Mengandung hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan (lihat input
past_key_values) untuk mempercepat decoding berurutan. - decoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal yang opsional.
- decoder_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
- cross_attentions (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
- encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-state pada keluaran lapisan terakhir dari encoder model. - 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, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal yang opsional.
- encoder_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
- intermediate_hidden_states (
torch.Tensordengan bentuk(config.decoder_layers, batch_size, sequence_length, hidden_size), opsional, dikembalikan ketikaconfig.auxiliary_loss=True) — Aktivasi dekode perantara, yaitu keluaran dari setiap lapisan dekode, masing-masing telah melewati layernorm.
Kelas dasar untuk keluaran model encoder-decoder DETR. Kelas ini menambahkan satu atribut ke Seq2SeqModelOutput, yaitu tumpukan opsional dari aktivasi decoder antara, yaitu keluaran dari setiap lapisan decoder, masing-masing telah melewati layernorm. Hal ini berguna saat melatih model dengan kerugian decoding tambahan.
kelas transformers.models.detr.modeling_detr.DetrObjectDetectionOutput
< source >( loss: typing.Optional[torch.Tensor] = Noneloss_dict: dict | None = Nonelogits: typing.Optional[torch.Tensor] = Nonepred_boxes: typing.Optional[torch.Tensor] = Noneauxiliary_outputs: list[dict] | None = Nonelast_hidden_state: typing.Optional[torch.Tensor] = Nonedecoder_hidden_states: tuple[torch.Tensor] | None = Nonedecoder_attentions: tuple[torch.Tensor] | None = Nonecross_attentions: tuple[torch.Tensor] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Noneencoder_attentions: tuple[torch.Tensor] | None = None )
Parameter
- loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan)) — Total loss sebagai kombinasi linear dari negative log-likelihood (cross-entropy) untuk prediksi kelas dan loss bounding box. Yang terakhir didefinisikan sebagai kombinasi linear dari L1 loss dan generalized scale-invariant IoU loss. - loss_dict (
Dict, opsional) — Kamus yang berisi kerugian individual. Berguna untuk pencatatan. - logits (
torch.Tensordengan bentuk(batch_size, num_queries, num_classes + 1)) — Logits klasifikasi (termasuk no-object) untuk semua query. - pred_boxes (
torch.Tensordengan bentuk(batch_size, num_queries, 4)) — Koordinat kotak yang dinormalisasi untuk semua query, direpresentasikan sebagai (center_x, center_y, width, height). Nilai-nilai ini dinormalisasi dalam [0, 1], relatif terhadap ukuran masing-masing gambar individual dalam batch (mengabaikan padding yang mungkin ada). Anda dapat menggunakan post_process_object_detection() untuk mengambil kotak pembatas yang tidak dinormalisasi. - auxiliary_outputs (
list[Dict], opsional) — Opsional, hanya dikembalikan ketika auxiliary losses diaktifkan (yaituconfig.auxiliary_lossdiatur keTrue) dan label disediakan. Ini adalah daftar kamus yang berisi dua kunci di atas (logitsdanpred_boxes) untuk setiap lapisan decoder. - last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model. - decoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
- decoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
- cross_attentions (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
- encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-state pada keluaran lapisan terakhir dari encoder model. - 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, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
- encoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
Jenis output dari DetrForObjectDetection.
kelas transformers.models.detr.modeling_detr.DetrSegmentationOutput
< source >( loss: typing.Optional[torch.Tensor] = Noneloss_dict: dict | None = Nonelogits: typing.Optional[torch.Tensor] = Nonepred_boxes: typing.Optional[torch.Tensor] = Nonepred_masks: typing.Optional[torch.Tensor] = Noneauxiliary_outputs: list[dict] | None = Nonelast_hidden_state: typing.Optional[torch.Tensor] = Nonedecoder_hidden_states: tuple[torch.Tensor] | None = Nonedecoder_attentions: tuple[torch.Tensor] | None = Nonecross_attentions: tuple[torch.Tensor] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Noneencoder_attentions: tuple[torch.Tensor] | None = None )
Parameter
- loss (
torch.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan)) — Total loss sebagai kombinasi linear dari negative log-likelihood (cross-entropy) untuk prediksi kelas dan loss bounding box. Yang terakhir didefinisikan sebagai kombinasi linear dari L1 loss dan generalized scale-invariant IoU loss. - loss_dict (
Dict, opsional) — Kamus yang berisi kerugian individual. Berguna untuk pencatatan. - logits (
torch.Tensordengan bentuk(batch_size, num_queries, num_classes + 1)) — Logits klasifikasi (termasuk no-object) untuk semua query. - pred_boxes (
torch.Tensordengan bentuk(batch_size, num_queries, 4)) — Koordinat kotak yang dinormalisasi untuk semua query, direpresentasikan sebagai (center_x, center_y, width, height). Nilai-nilai ini dinormalisasi dalam [0, 1], relatif terhadap ukuran masing-masing gambar individual dalam batch (mengabaikan padding yang mungkin ada). Anda dapat menggunakan post_process_object_detection() untuk mengambil kotak pembatas yang tidak dinormalisasi. - pred_masks (
torch.Tensordengan bentuk(batch_size, num_queries, height/4, width/4)) — Logits masker segmentasi untuk semua query. Lihat juga post_process_semantic_segmentation() atau post_process_instance_segmentation() post_process_panoptic_segmentation() untuk mengevaluasi masker segmentasi semantik, instance, dan panoptik secara masing-masing. - auxiliary_outputs (
list[Dict], opsional) — Opsional, hanya dikembalikan ketika auxiliary losses diaktifkan (yaituconfig.auxiliary_lossdiatur keTrue) dan label disediakan. Ini adalah daftar kamus yang berisi dua kunci di atas (logitsdanpred_boxes) untuk setiap lapisan decoder. - last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model. - decoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
- decoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
- cross_attentions (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
- encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-state pada keluaran lapisan terakhir dari encoder model. - 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, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
- encoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
Jenis output dari DetrForSegmentation.
DetrModel
kelas transformers.DetrModel
< source >( config: DetrConfig )
Parameter
- config (DetrConfig) — 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 DETR polos (terdiri dari backbone dan Transformer encoder-decoder) 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: typing.Optional[torch.Tensor] = Nonepixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DetrModelOutput or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakanimage_processor_class. Lihatimage_processor_class.__call__untuk detailnya (processor_classmenggunakanimage_processor_classuntuk memproses gambar). - pixel_mask (
torch.LongTensordengan bentuk(batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask dipilih dari[0, 1]:- 1 untuk piksel yang asli (yaitu tidak dimasker),
- 0 untuk piksel yang merupakan padding (yaitu masked).
- decoder_attention_mask (
torch.Tensordengan bentuk(batch_size, num_queries), opsional) — Mask untuk menghindari eksekusi attention pada query objek tertentu di decoder. Nilai mask yang dipilih dalam[0, 1]:- 1 untuk query yang tidak dimasker,
- 0 untuk query yang dimasker.
- encoder_outputs (
torch.Tensor, opsional) — Tuple terdiri dari (last_hidden_state, opsional:hidden_states, opsional:attentions)last_hidden_statedengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan peta fitur yang telah diratakan (output dari backbone + lapisan proyeksi), Anda dapat memilih untuk langsung meneruskan representasi ratakan dari sebuah gambar. Berguna untuk melewati vision backbone. - decoder_inputs_embeds (
torch.Tensordengan bentuk(batch_size, num_queries, hidden_size), opsional) — Secara opsional, alih-alih menginisialisasi query dengan tensor nol, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Berguna untuk tugas yang memerlukan inisialisasi query kustom.
Mengembalikan
DetrModelOutput atau tuple(torch.Tensor)
A DetrModelOutput atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (None) dan input.
Metode forward dari DetrModel 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.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.past_key_values (
EncoderDecoderCache, opsional, dikembalikan ketikause_cache=Truediteruskan atau ketikaconfig.use_cache=True) — Ini adalah instance EncoderDecoderCache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Mengandung hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan (lihat input
past_key_values) untuk mempercepat decoding berurutan.decoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal yang opsional.
decoder_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
cross_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.encoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal yang opsional.
encoder_attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
intermediate_hidden_states (
torch.Tensordengan bentuk(config.decoder_layers, batch_size, sequence_length, hidden_size), opsional, dikembalikan ketikaconfig.auxiliary_loss=True) — Aktivasi decoder antara, yaitu output dari setiap lapisan decoder, masing-masing telah melewati layernorm.
Contoh:
>>> from transformers import AutoImageProcessor, DetrModel
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50")
>>> model = DetrModel.from_pretrained("facebook/detr-resnet-50")
>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> # forward pass
>>> outputs = model(**inputs)
>>> # the last hidden states are the final query embeddings of the Transformer decoder
>>> # these are of shape (batch_size, num_queries, hidden_size)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 100, 256]DetrForObjectDetection
kelas transformers.DetrForObjectDetection
< source >( config: DetrConfig )
Parameter
- config (DetrConfig) — 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 DETR (terdiri dari backbone dan Transformer encoder-decoder) dengan kepala deteksi objek di atasnya, untuk tugas-tugas seperti deteksi COCO.
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: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DetrObjectDetectionOutput 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 menggunakanimage_processor_class. Lihatimage_processor_class.__call__untuk detailnya (processor_classmenggunakanimage_processor_classuntuk memproses gambar). - pixel_mask (
torch.LongTensordengan bentuk(batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask dipilih dari[0, 1]:- 1 untuk piksel yang asli (yaitu tidak dimasker),
- 0 untuk piksel yang merupakan padding (yaitu masked).
- decoder_attention_mask (
torch.Tensordengan bentuk(batch_size, num_queries), opsional) — Mask untuk menghindari eksekusi attention pada query objek tertentu di decoder. Nilai mask yang dipilih dalam[0, 1]:- 1 untuk query yang tidak dimasker,
- 0 untuk query yang dimasker.
- encoder_outputs (
torch.Tensor, opsional) — Tuple terdiri dari (last_hidden_state, opsional:hidden_states, opsional:attentions)last_hidden_statedengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan peta fitur yang telah diratakan (output dari backbone + lapisan proyeksi), Anda dapat memilih untuk langsung meneruskan representasi ratakan dari sebuah gambar. Berguna untuk melewati vision backbone. - decoder_inputs_embeds (
torch.Tensordengan bentuk(batch_size, num_queries, hidden_size), opsional) — Secara opsional, alih-alih menginisialisasi query dengan tensor nol, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Berguna untuk tugas yang memerlukan inisialisasi query kustom. - labels (
list[Dict]of len(batch_size,), opsional) — Label untuk menghitung bipartite matching loss. Daftar dict, di mana setiap dictionary mengandung setidaknya 2 kunci berikut: ‘class_labels’ dan ‘boxes’ (masing-masing label kelas dan bounding box dari sebuah gambar dalam batch). Label kelas itu sendiri harus berupatorch.LongTensorof len(number of bounding boxes in the image,)dan boxes berupatorch.Tensorof shape(number of bounding boxes in the image, 4).
Mengembalikan
DetrObjectDetectionOutput atau tuple(torch.Tensor)
DetrObjectDetectionOutput atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (None) dan input.
Metode forward dari DetrForObjectDetection 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.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan)) — Total loss sebagai kombinasi linear dari negative log-likelihood (cross-entropy) untuk prediksi kelas dan loss bounding box. Yang terakhir didefinisikan sebagai kombinasi linear dari L1 loss dan generalized scale-invariant IoU loss.loss_dict (
Dict, opsional) — Kamus yang berisi kerugian individual. Berguna untuk pencatatan.logits (
torch.Tensordengan bentuk(batch_size, num_queries, num_classes + 1)) — Logit klasifikasi (termasuk no-object) untuk semua query.pred_boxes (
torch.Tensordengan bentuk(batch_size, num_queries, 4)) — Koordinat kotak yang dinormalisasi untuk semua query, direpresentasikan sebagai (center_x, center_y, width, height). Nilai-nilai ini dinormalisasi dalam [0, 1], relatif terhadap ukuran masing-masing gambar individual dalam batch (mengabaikan padding yang mungkin ada). Anda dapat menggunakan post_process_object_detection() untuk mengambil kotak pembatas yang tidak dinormalisasi.auxiliary_outputs (
list[Dict], opsional) — Opsional, hanya dikembalikan ketika auxiliary losses diaktifkan (yaituconfig.auxiliary_lossdiatur keTrue) dan label disediakan. Ini adalah daftar kamus yang berisi dua kunci di atas (logitsdanpred_boxes) untuk setiap lapisan decoder.last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.decoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
decoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
cross_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.encoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
encoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
Contoh:
>>> from transformers import AutoImageProcessor, DetrForObjectDetection
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50")
>>> model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50")
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> # convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> target_sizes = torch.tensor([image.size[::-1]])
>>> results = image_processor.post_process_object_detection(outputs, threshold=0.9, target_sizes=target_sizes)[
... 0
... ]
>>> for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
... box = [round(i, 2) for i in box.tolist()]
... print(
... f"Detected {model.config.id2label[label.item()]} with confidence "
... f"{round(score.item(), 3)} at location {box}"
... )
Detected remote with confidence 0.998 at location [40.16, 70.81, 175.55, 117.98]
Detected remote with confidence 0.996 at location [333.24, 72.55, 368.33, 187.66]
Detected couch with confidence 0.995 at location [-0.02, 1.15, 639.73, 473.76]
Detected cat with confidence 0.999 at location [13.24, 52.05, 314.02, 470.93]
Detected cat with confidence 0.999 at location [345.4, 23.85, 640.37, 368.72]DetrForSegmentation
kelas transformers.DetrForSegmentation
< source >( config: DetrConfig )
Parameter
- config (DetrConfig) — 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 DETR (terdiri dari backbone dan Transformer encoder-decoder) dengan head segmentasi di atasnya, untuk tugas-tugas seperti COCO panoptic.
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: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DetrSegmentationOutput 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 menggunakanimage_processor_class. Lihatimage_processor_class.__call__untuk detailnya (processor_classmenggunakanimage_processor_classuntuk memproses gambar). - pixel_mask (
torch.LongTensordengan bentuk(batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask dipilih dari[0, 1]:- 1 untuk piksel yang asli (yaitu tidak dimasker),
- 0 untuk piksel yang merupakan padding (yaitu masked).
- decoder_attention_mask (
torch.Tensordengan bentuk(batch_size, num_queries), opsional) — Mask untuk menghindari eksekusi attention pada query objek tertentu di decoder. Nilai mask yang dipilih dalam[0, 1]:- 1 untuk query yang tidak dimasker,
- 0 untuk query yang dimasker.
- encoder_outputs (
torch.Tensor, opsional) — Tuple terdiri dari (last_hidden_state, opsional:hidden_states, opsional:attentions)last_hidden_statedengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder. - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Dipertahankan untuk kompatibilitas mundur, tetapi tidak dapat digunakan untuk segmentasi, karena segmentasi memerlukan fitur multi-skala dari backbone yang tidak tersedia saat melewati backbone dengan inputs_embeds. - decoder_inputs_embeds (
torch.Tensordengan bentuk(batch_size, num_queries, hidden_size), opsional) — Secara opsional, alih-alih menginisialisasi query dengan tensor nol, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Berguna untuk tugas yang memerlukan inisialisasi query kustom. - labels (
list[Dict]dengan panjang(batch_size,), opsional) — Label untuk menghitung bipartite matching loss, DICE/F-1 loss, dan Focal loss. Daftar dari dict, di mana setiap dictionary mengandung setidaknya 3 kunci berikut: ‘class_labels’, ‘boxes’, dan ‘masks’ (masing-masing merupakan class labels, bounding boxes, dan segmentation masks dari sebuah gambar dalam batch). Class labels sendiri harus berupatorch.LongTensordengan panjang(number of bounding boxes in the image,), boxes berupatorch.Tensordengan bentuk(number of bounding boxes in the image, 4), dan masks berupatorch.Tensordengan bentuk(number of bounding boxes in the image, height, width).
Mengembalikan
DetrSegmentationOutput atau tuple(torch.Tensor)
DetrSegmentationOutput atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (None) dan input.
Metode forward dari DetrForSegmentation 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.Tensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan)) — Total loss sebagai kombinasi linear dari negative log-likelihood (cross-entropy) untuk prediksi kelas dan loss bounding box. Yang terakhir didefinisikan sebagai kombinasi linear dari L1 loss dan generalized scale-invariant IoU loss.loss_dict (
Dict, opsional) — Kamus yang berisi kerugian individual. Berguna untuk pencatatan.logits (
torch.Tensordengan bentuk(batch_size, num_queries, num_classes + 1)) — Logit klasifikasi (termasuk no-object) untuk semua query.pred_boxes (
torch.Tensordengan bentuk(batch_size, num_queries, 4)) — Koordinat kotak yang dinormalisasi untuk semua query, direpresentasikan sebagai (center_x, center_y, width, height). Nilai-nilai ini dinormalisasi dalam [0, 1], relatif terhadap ukuran masing-masing gambar individual dalam batch (mengabaikan padding yang mungkin ada). Anda dapat menggunakan post_process_object_detection() untuk mengambil kotak pembatas yang tidak dinormalisasi.pred_masks (
torch.Tensordengan bentuk(batch_size, num_queries, height/4, width/4)) — Logits masker segmentasi untuk semua query. Lihat juga post_process_semantic_segmentation() atau post_process_instance_segmentation() post_process_panoptic_segmentation() untuk mengevaluasi masker segmentasi semantik, instance, dan panoptik secara masing-masing.auxiliary_outputs (
list[Dict], opsional) — Opsional, hanya dikembalikan ketika auxiliary losses diaktifkan (yaituconfig.auxiliary_lossdiatur keTrue) dan label disediakan. Ini adalah daftar kamus yang berisi dua kunci di atas (logitsdanpred_boxes) untuk setiap lapisan decoder.last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.decoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
decoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
cross_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.encoder_hidden_states (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
encoder_attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
Contoh:
>>> import io
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from PIL import Image
>>> import torch
>>> import numpy
>>> from transformers import AutoImageProcessor, DetrForSegmentation
>>> from transformers.image_transforms import rgb_to_id
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50-panoptic")
>>> model = DetrForSegmentation.from_pretrained("facebook/detr-resnet-50-panoptic")
>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> # forward pass
>>> outputs = model(**inputs)
>>> # Use the `post_process_panoptic_segmentation` method of the `image_processor` to retrieve post-processed panoptic segmentation maps
>>> # Segmentation results are returned as a list of dictionaries
>>> result = image_processor.post_process_panoptic_segmentation(outputs, target_sizes=[(300, 500)])
>>> # A tensor of shape (height, width) where each value denotes a segment id, filled with -1 if no segment is found
>>> panoptic_seg = result[0]["segmentation"]
>>> panoptic_seg.shape
torch.Size([300, 500])
>>> # Get prediction score and segment_id to class_id mapping of each segment
>>> panoptic_segments_info = result[0]["segments_info"]
>>> len(panoptic_segments_info)
5