Transformers documentation

PP-DocLayoutV4

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

and get access to the augmented documentation experience

to get started

Model ini disumbangkan ke Hugging Face Transformers pada 2026-10-08.

PP-DocLayoutV4

Ikhtisar

PP-DocLayoutV4 adalah model analisis tata letak dokumen end-to-end yang memprediksi, dalam satu langkah maju, apa elemen tata letak masing-masing, kuadrilateral yang mengelilinginya, dan logits yang digunakan untuk mendekode urutan baca.

Arsitektur Model

PP-DocLayoutV4 mempertahankan kerangka RT-DETR dari pendahulunya — backbone HGNetV2, encoder hibrida AIFI, dan decoder deformable — dan mengubah tiga hal:

  • Bentuk segiempat alih-alih mask. PPDocLayoutV3ForObjectDetection memprediksi mask segmentasi per query dan menyesuaikan poligon ke mask tersebut. PP-DocLayoutV4 menghapus cabang mask sepenuhnya dan langsung meregresi quad empat titik, yang dikodekan sebagai [center_x, center_y, dx1, dy1, ..., dx4, dy4] dalam ruang sigmoid. Pendekatan ini menangani dokumen yang miring dan terdistorsi perspektif tanpa perlu membayar biaya head mask, dan fitur backbone dengan stride 4 tidak lagi diperlukan.
  • Head per-lapisan yang tidak terikat. Setiap lapisan decoder memiliki head box dan klasifikasinya sendiri, bukan berbagi satu head tunggal dengan encoder.
  • Dua kepala urutan baca plus langkah fusi. Di samping kepala urutan relatif dari V3 (antisimetris: “apakah i dibaca sebelum j?”), terdapat kepala suksesor (ROOR: “apakah j langsung mengikuti i?”). PPDocLayoutV4S2RFusion melipat penutupan transitif yang diredam dari matriks suksesor kembali ke dalam logit urutan relatif.

Urutan baca tidak didekode di dalam model. PPDocLayoutV4ForObjectDetection mengembalikan relative_order_logits dan successor_order_logits mentah, dan post_process_object_detection() mengubahnya menjadi peringkat dengan melakukan thresholding matriks successor menjadi directed acyclic graph (DAG), memutus siklus, mengurutkan setiap komponen terhubung secara topologis, dan mengurutkan komponen-komponen tersebut berdasarkan suara urutan relatif mereka.

Penggunaan

Hasil yang dikembalikan oleh post_process_object_detection() sudah diurutkan berdasarkan urutan baca. Setiap hasil membawa polygon_points — tensor (num_boxes, 4, 2) dari sudut yang diregresi dalam urutan kiri-atas, kanan-atas, kanan-bawah, kiri-bawah — ditambah boxes, persegi panjang sejajar sumbu yang membungkus setiap kuad, dan order_seq, peringkat berbasis 0 dari setiap kotak. Contoh AutoModel di bawah ini mencetak order_seq secara langsung, sedangkan yang lainnya mencetak posisi berbasis 1 dalam daftar terurut, yaitu order_seq + 1 kecuali satu query dipertahankan di bawah beberapa label.

Pipeline
AutoModel

Pipeline mempertahankan urutan baca sesuai urutan daftar yang dikembalikan, tetapi meratakan setiap deteksi menjadi skor, label, dan kotak pembatas bilangan bulat. Gunakan jalur AutoModel di bawah untuk mendapatkan segi empat dan order_seq.

from transformers import pipeline
from transformers.image_utils import load_image


image = load_image("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg")
layout_detector = pipeline("object-detection", model="PaddlePaddle/PP-DocLayoutV4_safetensors")
results = layout_detector(image)
for idx, res in enumerate(results):
    print(f"Order {idx + 1}: {res}")

Inferensi berbatch

Lewatkan daftar gambar dan satu ukuran target per gambar. Urutan pembacaan didekodekan per gambar.

from transformers import AutoImageProcessor, AutoModelForObjectDetection
from transformers.image_utils import load_image


model_path = "PaddlePaddle/PP-DocLayoutV4_safetensors"
model = AutoModelForObjectDetection.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)

image = load_image("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg")
inputs = image_processor(images=[image, image], return_tensors="pt").to(device=model.device, dtype=model.dtype)

outputs = model(**inputs)
results = image_processor.post_process_object_detection(outputs, target_sizes=[image.size[::-1]] * 2)
for result in results:
    print("result:")
    for idx, (score, label_id, box) in enumerate(zip(result["scores"], result["labels"], result["boxes"])):
        box = [round(i, 2) for i in box.tolist()]
        print(f"Order {idx + 1}: {model.config.id2label[label_id.item()]}, score: {score.item():.2f}, box: {box}")

PPDocLayoutV4ForObjectDetection

kelas transformers.PPDocLayoutV4ForObjectDetection

< >

( config: PPDocLayoutV4Config )

Parameter

  • config (PPDocLayoutV4Config) — 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 PP-DocLayoutV4 (terdiri dari backbone dan encoder-decoder) yang menghasilkan kuadrilateral, class logits, dan reading order logits, untuk tugas seperti analisis tata letak dokumen.

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

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

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PPDocLayoutV4ForObjectDetectionOutput or tuple(torch.Tensor)

Parameter

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan image_processor_class. Lihat image_processor_class.__call__ untuk detailnya (processor_class menggunakan image_processor_class untuk memproses gambar).
  • pixel_mask (torch.LongTensor dengan 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).

    Apa itu attention mask?

  • encoder_outputs (torch.Tensor, opsional) — Tuple terdiri dari (last_hidden_state, opsional: hidden_states, opsional: attentions) last_hidden_state dengan bentuk (batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder.
  • labels (list[Dict] dengan panjang (batch_size,), opsional) — Tidak didukung: PP-DocLayoutV4 hanya untuk inferensi di Transformers.

Mengembalikan

PPDocLayoutV4ForObjectDetectionOutput atau tuple(torch.Tensor)

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

Metode forward dari PPDocLayoutV4ForObjectDetection menimpa metode khusus __call__.

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

  • logits (torch.Tensor dengan bentuk (batch_size, num_queries, config.num_labels)) — Logit klasifikasi (tanpa no-object) untuk semua query.

  • pred_boxes (torch.Tensor dengan bentuk (batch_size, num_queries, config.num_coords)) — Quad ternormalisasi untuk semua query, dikodekan sebagai [center_x, center_y, dx1, dy1, ..., dx4, dy4] di mana offset sudut digeser sebesar +0.5. Gunakan post_process_object_detection() untuk mengambil sudut yang tidak ternormalisasi beserta kotak pembatasnya.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.

  • intermediate_hidden_states (torch.Tensor dengan bentuk (batch_size, config.decoder_layers, num_queries, hidden_size)) — State tersembunyi antara yang ditumpuk (output dari setiap layer decoder).

  • intermediate_reference_points (torch.Tensor dengan bentuk (batch_size, config.decoder_layers, num_queries, config.num_coords)) — Titik referensi antara yang ditumpuk (kuadra yang disempurnakan dari setiap lapisan decoder).

  • decoder_hidden_states (tuple[torch.Tensor], opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output 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 ketika output_attentions=True dilewatkan atau ketika config.output_attentions=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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.Tensor dengan 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 ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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.

  • init_reference_points (torch.Tensor dengan bentuk (batch_size, num_queries, config.num_coords)) — Titik referensi awal berbentuk kuad yang dikirim melalui decoder Transformer.

  • enc_topk_logits (torch.Tensor dengan bentuk (batch_size, num_queries, config.num_labels)) — Logits kelas dari proposal encoder yang dipilih sebagai query decoder.

  • enc_topk_bboxes (torch.Tensor dengan bentuk (batch_size, num_queries, config.num_coords)) — Quad dari proposal encoder yang dipilih sebagai query decoder.

  • enc_outputs_class (torch.Tensor dengan bentuk (batch_size, sequence_length, config.num_labels)) — Logit kelas untuk setiap proposal encoder.

  • enc_outputs_coord_logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.num_coords)) — Logit kuad untuk setiap proposal encoder.

  • denoising_meta_values (dict, opsional) — Kamus tambahan untuk nilai-nilai yang terkait dengan denoising.

  • relative_order_logits (torch.Tensor dengan bentuk (batch_size, config.num_queries, config.num_queries)) — Logit urutan baca relatif pairwise, setelah fusi S2R opsional. Nilai positif pada relative_order_logits[i, j] berarti query i dibaca sebelum query j.

  • successor_order_logits (torch.Tensor dengan bentuk (batch_size, config.num_queries, config.num_queries)) — Logit penerus langsung pairwise (ROOR). Nilai positif pada successor_order_logits[i, j] berarti query j langsung mengikuti query i.

Contoh:

>>> from transformers import AutoImageProcessor, AutoModelForObjectDetection
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO

>>> url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> model_path = "PaddlePaddle/PP-DocLayoutV4_safetensors"
>>> image_processor = AutoImageProcessor.from_pretrained(model_path)
>>> model = AutoModelForObjectDetection.from_pretrained(model_path)

>>> inputs = image_processor(images=[image], return_tensors="pt")
>>> outputs = model(**inputs)

>>> # results are already sorted by reading order
>>> results = image_processor.post_process_object_detection(outputs, target_sizes=[image.size[::-1]])
>>> for result in results:
...     for idx, (score, label_id, box) in enumerate(zip(result["scores"], result["labels"], result["boxes"])):
...         box = [round(i, 2) for i in box.tolist()]
...         print(f"Order {idx + 1}: {model.config.id2label[label_id.item()]}: {score.item():.2f} {box}")
Order 1: text: 0.99 [336.07, 182.04, 894.17, 652.62]
Order 2: paragraph_title: 0.98 [336.45, 681.88, 868.78, 796.91]
Order 3: text: 0.99 [334.01, 840.84, 889.11, 1452.29]
Order 4: text: 0.99 [920.65, 183.62, 1476.75, 462.75]
Order 5: text: 0.99 [919.55, 482.55, 1479.85, 763.41]
Order 6: text: 0.98 [919.34, 844.48, 1481.28, 1219.44]
Order 7: text: 0.98 [920.84, 1238.61, 1467.66, 1374.54]
Order 8: text: 0.90 [334.24, 1612.85, 1478.79, 1730.92]
Order 9: text: 0.95 [334.25, 1755.98, 1467.34, 1845.6]
Order 10: text: 0.65 [337.14, 1909.47, 659.78, 1938.2]
Order 11: footnote: 0.78 [338.73, 2114.87, 1448.16, 2172.06]
Order 12: number: 0.98 [106.08, 2257.42, 134.76, 2281.3]
Order 13: footer: 0.93 [339.27, 2255.7, 984.16, 2282.81]

PPDocLayoutV4Model

kelas transformers.PPDocLayoutV4Model

< >

( config: PPDocLayoutV4Config )

Parameter

  • config (PPDocLayoutV4Config) — 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 PP-DocLayoutV4 (terdiri dari backbone dan encoder-decoder) yang menghasilkan raw hidden states tanpa head di atasnya.

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

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

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PPDocLayoutV4ModelOutput or tuple(torch.Tensor)

Parameter

  • pixel_values (torch.Tensor dengan bentuk (batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan image_processor_class. Lihat image_processor_class.__call__ untuk detailnya (processor_class menggunakan image_processor_class untuk memproses gambar).
  • pixel_mask (torch.LongTensor dengan 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).

    Apa itu attention mask?

  • encoder_outputs (torch.Tensor, opsional) — Tuple terdiri dari (last_hidden_state, opsional: hidden_states, opsional: attentions) last_hidden_state dengan bentuk (batch_size, sequence_length, hidden_size), opsional) adalah rangkaian hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder.
  • labels (list[Dict] dengan panjang (batch_size,), opsional) — Tidak didukung: PP-DocLayoutV4 hanya untuk inferensi di Transformers.

Mengembalikan

PPDocLayoutV4ModelOutput atau tuple(torch.Tensor)

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

Metode forward dari PPDocLayoutV4Model menimpa metode khusus __call__.

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

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, num_queries, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir dari decoder model.

  • intermediate_hidden_states (torch.Tensor dengan bentuk (batch_size, config.decoder_layers, num_queries, hidden_size)) — State tersembunyi antara yang ditumpuk (output dari setiap layer decoder).

  • intermediate_reference_points (torch.Tensor dengan bentuk (batch_size, config.decoder_layers, num_queries, config.num_coords)) — Titik referensi antara yang ditumpuk (kuadra yang disempurnakan dari setiap lapisan decoder).

  • decoder_hidden_states (tuple[torch.Tensor], opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output 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 ketika output_attentions=True dilewatkan atau ketika config.output_attentions=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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.Tensor dengan 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 ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.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 saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.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.

  • init_reference_points (torch.Tensor dengan bentuk (batch_size, num_queries, config.num_coords)) — Titik referensi awal berbentuk kuad yang dikirim melalui decoder Transformer.

  • enc_topk_logits (torch.Tensor dengan bentuk (batch_size, num_queries, config.num_labels)) — Logits kelas dari proposal encoder yang dipilih sebagai query decoder.

  • enc_topk_bboxes (torch.Tensor dengan bentuk (batch_size, num_queries, config.num_coords)) — Quad dari proposal encoder yang dipilih sebagai query decoder.

  • enc_outputs_class (torch.Tensor dengan bentuk (batch_size, sequence_length, config.num_labels)) — Logit kelas untuk setiap proposal encoder.

  • enc_outputs_coord_logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.num_coords)) — Logit kuad untuk setiap proposal encoder.

  • denoising_meta_values (dict, opsional) — Kamus tambahan untuk nilai-nilai yang terkait dengan denoising.

  • logits (torch.Tensor dengan bentuk (batch_size, num_queries, config.num_labels)) — Logits klasifikasi dari lapisan decoder terakhir.

  • relative_order_logits (torch.Tensor dengan bentuk (batch_size, config.num_queries, config.num_queries)) — Logit urutan baca relatif pairwise, setelah fusi S2R opsional.

  • successor_order_logits (torch.Tensor dengan bentuk (batch_size, config.num_queries, config.num_queries)) — Logit penerus langsung berpasangan (ROOR).

PPDocLayoutV4Config

kelas transformers.PPDocLayoutV4Config

< >

( 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 = Trueinitializer_range: float = 0.01initializer_bias_prior_prob: float | None = Nonelayer_norm_eps: float = 1e-05batch_norm_eps: float = 1e-05tie_word_embeddings: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonefreeze_backbone_batch_norms: bool = Trueencoder_hidden_dim: int = 256encoder_in_channels: list[int] | tuple[int, ...] = (512, 1024, 2048)feat_strides: list[int] | tuple[int, ...] = (8, 16, 32)encoder_layers: int = 1encoder_ffn_dim: int = 1024encoder_attention_heads: int = 8dropout: float | int = 0.0activation_dropout: float | int = 0.0encode_proj_layers: list[int] | tuple[int, ...] = (2,)positional_encoding_temperature: int = 10000encoder_activation_function: str = 'gelu'activation_function: str = 'silu'eval_size: list[int] | tuple[int, int] | None = Nonenormalize_before: bool = Falsehidden_expansion: float = 1.0num_queries: int = 300decoder_in_channels: list[int] | tuple[int, ...] = (256, 256, 256)decoder_ffn_dim: int = 1024num_feature_levels: int = 3decoder_n_points: int = 4decoder_layers: int = 6decoder_attention_heads: int = 8decoder_activation_function: str = 'relu'attention_dropout: float | int = 0.0num_denoising: int = 100anchor_image_size: list[int] | tuple[int, int] | None = Nonedisable_custom_kernels: bool = Trueglobal_pointer_head_size: int = 64gp_dropout_value: float | int = 0.1hidden_size: int = 256num_coords: int = 10s2r_steps: int = 3s2r_damping: float = 0.5s2r_closure_weight_init: float = 0.0 )

Parameter

  • is_encoder_decoder (bool, opsional, defaultnya True) — Apakah model digunakan sebagai encoder/decoder atau tidak.
  • initializer_range (float, opsional, defaultnya 0.01) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • initializer_bias_prior_prob (float, opsional) — Probabilitas prior yang digunakan oleh bias initializer untuk menginisialisasi bias pada enc_score_head dan class_embed. Jika None, nilainya secara default adalah 1 / (num_labels + 1).
  • layer_norm_eps (float, opsional, defaultnya 1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan.
  • batch_norm_eps (float, opsional, defaultnya 1e-05) — Epsilon yang digunakan oleh lapisan normalisasi batch.
  • tie_word_embeddings (bool, opsional, default True) — Apakah akan mengikat bobot embedding sesuai dengan pemetaan tied_weights_keys model.
  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Konfigurasi dari model backbone.
  • freeze_backbone_batch_norms (bool, opsional, default True) — Apakah akan membekukan lapisan batch normalization di backbone.
  • encoder_hidden_dim (int, opsional, defaultnya 256) — Dimensi dari representasi tersembunyi.
  • encoder_in_channels (list, opsional, defaultnya [512, 1024, 2048]) — Input fitur multi-level untuk encoder.
  • feat_strides (list[int], opsional, default [8, 16, 32]) — Strides yang digunakan pada setiap feature map.
  • encoder_layers (int, opsional, default 1) — Jumlah lapisan tersembunyi pada encoder Transformer. Akan menggunakan nilai yang sama dengan num_layers jika tidak diatur.
  • encoder_ffn_dim (int, opsional, defaultnya 1024) — Dimensi dari lapisan “intermediate” (sering disebut feed-forward) di encoder.
  • encoder_attention_heads (int, opsional, default 8) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam encoder Transformer.
  • dropout (Union[float, int], opsional, default 0.0) — Rasio untuk semua lapisan dropout.
  • activation_dropout (Union[float, int], opsional, defaultnya 0.0) — Rasio dropout untuk aktivasi di dalam lapisan fully connected.
  • encode_proj_layers (list[int], opsional, default [2]) — Indeks dari lapisan proyeksi yang akan digunakan dalam encoder.
  • positional_encoding_temperature (int, opsional, default 10000) — Parameter suhu yang digunakan untuk membuat positional encoding.
  • encoder_activation_function (str, opsional, defaultnya "gelu") — Fungsi aktivasi non-linear (fungsi atau string) di encoder dan pooler. Jika string, "gelu", "relu", "silu" dan "gelu_new" didukung.
  • activation_function (str, opsional, defaultnya silu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • eval_size (tuple[int, int], opsional) — Tinggi dan lebar yang digunakan untuk menghitung tinggi dan lebar efektif dari position embeddings setelah memperhitungkan stride. Harus dibiarkan sebagai None untuk mereproduksi implementasi referensi, yang menghitung position embeddings secara dinamis.
  • normalize_before (bool, opsional, default False) — Menentukan apakah layer normalization diterapkan pada lapisan encoder transformer sebelum modul self-attention dan feed-forward.
  • hidden_expansion (float, opsional, default 1.0) — Rasio ekspansi untuk memperbesar ukuran dimensi RepVGGBlock dan CSPRepLayer.
  • num_queries (int, opsional, default 300) — Jumlah query objek.
  • decoder_in_channels (list, opsional, default [256, 256, 256]) — Dimensi fitur multi-level untuk decoder
  • decoder_ffn_dim (int, opsional, default 1024) — Dimensi lapisan “intermediate” (sering disebut feed-forward) dalam decoder.
  • num_feature_levels (int, opsional, defaultnya 3) — Jumlah level fitur input.
  • decoder_n_points (int, opsional, defaultnya 4) — Jumlah kunci yang disampelkan di setiap tingkat fitur untuk setiap kepala perhatian dalam decoder.
  • decoder_layers (int, opsional, default 6) — Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengan num_layers jika tidak diatur.
  • decoder_attention_heads (int, opsional, default 8) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.
  • decoder_activation_function (str, opsional, defaultnya "relu") — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Jika string, "gelu", "relu", "silu" dan "gelu_new" didukung.
  • attention_dropout (Union[float, int], opsional, default 0.0) — Rasio dropout untuk probabilitas perhatian.
  • num_denoising (int, opsional, default 100) — Jumlah total tugas atau kueri denoising yang akan digunakan untuk denoising kontrastif.
  • anchor_image_size (tuple[int, int], opsional) — Tinggi dan lebar gambar input yang digunakan selama evaluasi untuk menghasilkan anchor kotak pembatas. Jika None, generasi anchor otomatis diterapkan.
  • disable_custom_kernels (bool, opsional, default True) — Apakah akan menonaktifkan custom kernels.
  • global_pointer_head_size (int, opsional, defaultnya 64) — Ukuran kepala pointer global.
  • gp_dropout_value (float, opsional, default 0.1) — Probabilitas dropout pada kepala pointer global.
  • hidden_size (int, opsional, default 256) — Dimensi dari lapisan decoder, tidak termasuk encoder hibrida. Dapat juga dibaca sebagai d_model, nama yang digunakan oleh garis keturunan RT-DETR yang menjadi asal model ini.
  • num_coords (int, opsional, default 10) — Ukuran parameterisasi kotak yang diprediksi oleh bbox heads. PP-DocLayoutV4 meregreskan kuadrilateral empat titik yang dikodekan sebagai [center_x, center_y, dx1, dy1, dx2, dy2, dx3, dy3, dx4, dy4] dalam ruang sigmoid, di mana offset sudut digeser sebesar +0.5. Hanya 10 yang didukung.
  • s2r_steps (int, opsional, default 3) — Jumlah langkah propagasi yang digunakan untuk mengaproksimasi penutupan transitif dari matriks penerus.
  • s2r_damping (float, opsional, default 0.5) — Faktor peredaman yang diterapkan pada setiap langkah propagasi tambahan dari penutupan transitif.
  • s2r_closure_weight_init (float, opsional, default 0.0) — Nilai awal dari gerbang yang dapat dipelajari (learnable gate) yang menimbang istilah closure. Default-nya adalah 0.0 sehingga modul fusion yang belum dilatih secara numerik identik dengan penggunaan logits urutan relatif saja.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari PPDocLayoutV4Model. Kelas ini digunakan untuk membuat instans model Pp Doclayout V4 sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari PaddlePaddle/PP-DocLayoutV4_safetensors

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

Contoh:

>>> from transformers import PPDocLayoutV4Config, PPDocLayoutV4ForObjectDetection

>>> # Initializing a PP-DocLayoutV4 configuration
>>> configuration = PPDocLayoutV4Config()

>>> # Initializing a model (with random weights) from the configuration
>>> model = PPDocLayoutV4ForObjectDetection(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

PPDocLayoutV4ImageProcessor

kelas transformers.PPDocLayoutV4ImageProcessor

< >

( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )

Parameter

  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional, default True) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya {'height' -- 800, 'width': 800}): Menggambarkan dimensi input maksimum untuk model.
  • default_to_square (bool, kwargs, opsional, defaultnya True) — Apakah akan menggunakan gambar persegi sebagai default saat melakukan resize, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya 3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional, default True) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional, default 0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional, default True) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [0, 0, 0]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya [1, 1, 1]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. Mengembalikan tensor bertumpuk jika diatur 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. Mengembalikan tensor bertumpuk jika diatur 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.
  • Returns tensor bertumpuk jika disetel ke 'pt', selain itu mengembalikan daftar tensor. —

Membangun pemroses gambar PPDocLayoutV4ImageProcessor.

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 observasi 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.

praproses

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature

Parameter

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, atur do_rescale=False.
  • image_like_kwargs (dict[str, Any], opsional) — Flag pengembang untuk input tambahan yang mirip gambar yang juga akan dipreprocess. Gunakan ini hanya jika melewati input sebagai kwarg tidak berhasil. Misalnya, preprocess(images, masks=masks) adalah opsi yang lebih disukai, tetapi menyebabkan masalah prioritas argumen untuk beberapa model. Dalam kasus tersebut, preprocess(images, image_like_inputs={"masks": masks}) dapat digunakan sebagai gantinya.
  • do_convert_rgb (bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB.
  • do_resize (bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model.
  • default_to_square (bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkan center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enum PILImageResampling. Hanya berpengaruh jika do_resize diatur ke True.
  • do_rescale (bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar.
  • rescale_factor (float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jika do_rescale diatur ke True.
  • do_normalize (bool, kwargs, opsional) — Apakah akan menormalisasi gambar.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika do_normalize diatur ke True.
  • do_pad (bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam {"height": int, "width" int} untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jika pad_size tidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketika do_pad=True.
  • do_center_crop (bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Hanya ChannelDimension.FIRST yang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:
    • "channels_first" atau ChannelDimension.FIRST: gambar dalam format (num_channels, height, width).
    • "channels_last" atau ChannelDimension.LAST: gambar dalam format (height, width, num_channels).
    • "none" atau ChannelDimension.NONE: gambar dalam format (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke 'pt', selain itu mengembalikan daftar tensor.
  • disable_grouping (bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.

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.

Praproses sebuah gambar atau kumpulan gambar.

post_process_object_detection

< >

( outputsthreshold: float = 0.5target_sizes = None ) → list[Dict]

Parameter

  • outputs (PPDocLayoutV4ForObjectDetectionOutput) — Output mentah dari model.
  • threshold (float, opsional, default 0.5) — Ambang batas skor untuk mempertahankan prediksi deteksi objek.
  • target_sizes (torch.Tensor atau list[tuple[int, int]]) — Tensor dengan bentuk (batch_size, 2) atau daftar tuple ((height, width)) yang berisi ukuran target dari setiap gambar dalam batch.

Mengembalikan

list[Dict]

Daftar kamus, satu per gambar, masing-masing berisi scores, labels, boxes, polygon_points dan order_seq yang diprediksi oleh model. Prediksi diurutkan berdasarkan urutan baca, sehingga order_seq tidak menurun (kueri yang dipilih di bawah beberapa label mempertahankan satu peringkat).

Mengonversi output mentah dari PPDocLayoutV4ForObjectDetection menjadi kuadrilateral akhir, kotak pembatas dalam format (top_left_x, top_left_y, bottom_right_x, bottom_right_y), dan peringkat urutan baca. Hanya mendukung PyTorch.

Update on GitHub