Transformers documentation
PP-DocLayoutV4
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-10-08.
PP-DocLayoutV4
نظرة عامة
PP-DocLayoutV4 هو نموذج لتحليل تخطيط المستندات من البداية إلى النهاية، يتنبأ في تمريرة أمامية واحدة بما هو عليه كل عنصر من عناصر التخطيط، والمربع الرباعي الذي يحيط به، والقيم الاحتمالية (logits) التي يُفكَّك منها ترتيب القراءة.
بنية النموذج
يحافظ PP-DocLayoutV4 على هيكل RT-DETR الخاص بسلفه — وهو عمود فقري HGNetV2، ومشفّر هجين AIFI، ومفكّك قابل للتشوه — ويغيّر ثلاثة أشياء:
- أرباع بدل الأقنعة. PPDocLayoutV3ForObjectDetection كان يتنبأ بقناع تجزئة لكل استعلام ويلائم مضلّعًا عليه. تخلت PP-DocLayoutV4 عن فرع القناع بالكامل وتعيد الانحدار مباشرةً على رباعي من أربع نقاط، مشفَّرًا على شكل
[center_x, center_y, dx1, dy1, ..., dx4, dy4]في فضاء sigmoid. يتعامل هذا مع المستندات المائلة والمُشوَّهة منظوريًا دون الحاجة إلى رأس قناع، ولم تعد هناك حاجة إلى ميزة العمود الفقري ذات الخطوة 4. - رؤوس غير مشتركة لكل طبقة. تمتلك كل طبقة من طبقات المُفكِّك (decoder) صندوقها ورأس تصنيفها الخاص بدلاً من مشاركة رأس واحد مع المُرمِّز (encoder).
- رأسان لترتيب القراءة بالإضافة إلى خطوة دمج. إلى جانب رأس الترتيب النسبي من V3 (غير متماثل: «هل يُقرأ
iقبلj؟») يوجد رأس المتتالي (ROOR: «هل يتبعjمباشرةًi؟»). يقومPPDocLayoutV4S2RFusionبدمج الإغلاق الانتقالي المخفَّض لمصفوفة المتتالي في قيم الاحتمال (logits) الخاصة بالترتيب النسبي.
لا يتم فك ترميز ترتيب القراءة داخل النموذج. يعيد PPDocLayoutV4ForObjectDetection القيم الخام لـ relative_order_logits وsuccessor_order_logits، ثم تحوّلها post_process_object_detection() إلى رتب عن طريق تحديد عتبة لمصفوفة اللاحق لتحويلها إلى رسم بياني موجّه غير دائري (DAG)، وكسر الدورات، وفرز كل مكوّن متصل ترتيبياً، وترتيب المكوّنات وفقاً لأصوات ترتيبها النسبي.
الاستخدام
تكون النتائج التي تُرجعها post_process_object_detection() مرتبة مسبقاً حسب ترتيب القراءة. تحمل كل نتيجة polygon_points — وهو متجه (num_boxes, 4, 2) يحتوي على الزوايا المُعاد تقديرها بالترتيب: أعلى اليسار، أعلى اليمين، أسفل اليمين، أسفل اليسار — بالإضافة إلى boxes، وهو المستطيل المحاذي للمحاور الذي يحيط بكل شكل رباعي، وorder_seq، وهو الترتيب الصفر الأساس لكل صندوق. يطبع المثال أدناه باستخدام AutoModel قيمة order_seq مباشرة، بينما تطبع الأمثلة الأخرى الموضع ذي الأساس الواحد في القائمة المرتبة، وهو order_seq + 1 ما لم يُحتفظ باستعلام واحد تحت عدة تسميات.
يحافظ Pipeline على ترتيب القراءة في ترتيب القائمة المُعادَة، لكنه يسطّح كل كشف إلى درجة، وتسمية، وصندوق إحاطة صحيح. استخدم مسار AutoModel أدناه للحصول على الأشكال الرباعية و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}")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, 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]])
for result in results:
for score, label_id, box, quad, rank in zip(
result["scores"], result["labels"], result["boxes"], result["polygon_points"], result["order_seq"]
):
box = [round(i, 2) for i in box.tolist()]
print(f"Order {rank.item()}: {model.config.id2label[label_id.item()]}, score: {score.item():.2f}, box: {box}")
print(f" corners: {[[round(x, 2) for x in point] for point in quad.tolist()]}")الاستدلال المجمّع
مرر قائمة من الصور وحجمًا مستهدفًا واحدًا لكل صورة. يتم فك ترميز ترتيب القراءة لكل صورة على حدة.
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
فئة transformers.PPDocLayoutV4ForObjectDetection
< source >( config: PPDocLayoutV4Config )
المعاملات
- config (PPDocLayoutV4Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج PP-DocLayoutV4 (المكوّن من هيكل أساسي ومشفّر-فكّاش) الذي يُخرج أرباع الأضلاع، وقيم الاحتمالات للفئات، وقيم الاحتمالات لترتيب القراءة، لمهام مثل تحليل تخطيط المستندات.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المتناظرة مع الصور المدخلة. يمكن الحصول على قيم البكسلات باستخدامimage_processor_class. راجعimage_processor_class.__call__للتفاصيل (processor_classيستخدمimage_processor_classلمعالجة الصور). - pixel_mask (
torch.LongTensorبشكل(batch_size, height, width), اختياري) — قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة من [0, 1]: 1 للبكسلات الحقيقية (أي غير المقنعة)، و0 للبكسلات المعبأة (أي المقنعة). ما هي أقنعة الانتباه؟[0, 1]:- 1 للبيكسلات الحقيقية (أي غير المقنّعة)،
- 0 للبيكسلات التي تمثل حشواً (أي مقنّعة).
- encoder_outputs (
torch.Tensor، اختياري) — مجموعة مرتبة تتكون من (last_hidden_state، اختياري:hidden_states، اختياري:attentions)last_hidden_stateمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك. - labels (
list[Dict]بطول(batch_size,)، اختياري) — غير مدعوم: PP-DocLayoutV4 للاستدلال فقط في Transformers.
يعيد
PPDocLayoutV4ForObjectDetectionOutput أو tuple(torch.Tensor)
PPDocLayoutV4ForObjectDetectionOutput أو مجموعة مرتبة من
torch.Tensor (في حال تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر
مختلفة اعتماداً على الإعداد (None) والمدخلات.
تتجاوز طريقة PPDocLayoutV4ForObjectDetection الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
logits (
torch.Tensorمن الشكل(batch_size, num_queries, config.num_labels)) — قيم التصنيف (logits) (بدون عنصر "لا يوجد كائن") لجميع الاستعلامات.pred_boxes (
torch.Tensorمن الشكل(batch_size, num_queries, config.num_coords)) — أرباع مُعايرة لجميع الاستعلامات، مُرمّزة على شكل[center_x, center_y, dx1, dy1, ..., dx4, dy4]حيث تُزاح إزاحات الزوايا بمقدار+0.5. استخدم post_process_object_detection() لاسترجاع الزوايا غير المعايرة وصناديقها المحيطة.last_hidden_state (
torch.Tensorمن الشكل(batch_size, num_queries, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من فاحص النموذج.intermediate_hidden_states (
torch.Tensorمن الشكل(batch_size, config.decoder_layers, num_queries, hidden_size)) — حالات مخفية وسيطة مكدسة (مخرجات كل طبقة من فاحم الشيفر).intermediate_reference_points (
torch.Tensorof shape(batch_size, config.decoder_layers, num_queries, config.num_coords)) — نقاط مرجعية وسيطة مكدّسة (أشكال رباعية محسّنة لكل طبقة من طبقات المُفكِّك).decoder_hidden_states (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).
decoder_attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
cross_attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.
encoder_last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.encoder_hidden_states (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.
encoder_attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
init_reference_points (
torch.Tensorمن الشكل(batch_size, num_queries, config.num_coords)) — نقاط مرجعية رباعية أولية تُرسل عبر مُفكِّك Transformer.enc_topk_logits (
torch.Tensorمن الشكل(batch_size, num_queries, config.num_labels)) — قيم logits لفئات مقترحات المُشفِّر التي تم اختيارها كاستعلامات للمُفكِّك.enc_topk_bboxes (
torch.Tensorمن الشكل(batch_size, num_queries, config.num_coords)) — رباعيات مقترحات المُشفِّر التي تم اختيارها كاستعلامات للمُفكِّك.enc_outputs_class (
torch.Tensorمن الشكل(batch_size, sequence_length, config.num_labels)) — قيم التصنيف (logits) لكل اقتراح من مقترحات المُشفِّر.enc_outputs_coord_logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.num_coords)) — قيم logits الرباعية لكل اقتراح من مقترحات المُشفِّر.denoising_meta_values (
dict، اختياري) — قاموس إضافي للقيم المتعلقة بإزالة الضوضاء.relative_order_logits (
torch.Tensorمن الشكل(batch_size, config.num_queries, config.num_queries)) — قيم الاحتمال (Logits) لترتيب القراءة النسبي بين كل زوج، بعد دمج S2R الاختياري. القيمة الموجبة لـrelative_order_logits[i, j]تعني أن الاستعلامiيُقرأ قبل الاستعلامj.successor_order_logits (
torch.Tensorمن الشكل(batch_size, config.num_queries, config.num_queries)) — قيم الاحتمال (logits) المباشرة للأزواج المتعاقبة (ROOR). القيمة الموجبة لـsuccessor_order_logits[i, j]تعني أن الاستعلامjيتبع مباشرةً الاستعلامi.
أمثلة:
>>> 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
فئة transformers.PPDocLayoutV4Model
< source >( config: PPDocLayoutV4Config )
المعاملات
- config (PPDocLayoutV4Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج PP-DocLayoutV4 (المكوّن من هيكل أساسي ومشفّر-فكّاش) الذي يُخرج حالات مخفية خام دون أي رأس في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المتناظرة مع الصور المدخلة. يمكن الحصول على قيم البكسلات باستخدامimage_processor_class. راجعimage_processor_class.__call__للتفاصيل (processor_classيستخدمimage_processor_classلمعالجة الصور). - pixel_mask (
torch.LongTensorبشكل(batch_size, height, width), اختياري) — قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة من [0, 1]: 1 للبكسلات الحقيقية (أي غير المقنعة)، و0 للبكسلات المعبأة (أي المقنعة). ما هي أقنعة الانتباه؟[0, 1]:- 1 للبيكسلات الحقيقية (أي غير المقنّعة)،
- 0 للبيكسلات التي تمثل حشواً (أي مقنّعة).
- encoder_outputs (
torch.Tensor، اختياري) — مجموعة مرتبة تتكون من (last_hidden_state، اختياري:hidden_states، اختياري:attentions)last_hidden_stateمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك. - labels (
list[Dict]بطول(batch_size,)، اختياري) — غير مدعوم: PP-DocLayoutV4 للاستدلال فقط في Transformers.
يعيد
PPDocLayoutV4ModelOutput أو tuple(torch.Tensor)
PPDocLayoutV4ModelOutput أو مجموعة مرتبة من
torch.Tensor (في حال تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (None) والمدخلات.
تتجاوز طريقة PPDocLayoutV4Model الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, num_queries, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من فاحص النموذج.intermediate_hidden_states (
torch.Tensorمن الشكل(batch_size, config.decoder_layers, num_queries, hidden_size)) — حالات مخفية وسيطة مكدسة (مخرجات كل طبقة من فاحم الشيفر).intermediate_reference_points (
torch.Tensorof shape(batch_size, config.decoder_layers, num_queries, config.num_coords)) — نقاط مرجعية وسيطة مكدّسة (أشكال رباعية محسّنة لكل طبقة من طبقات المُفكِّك).decoder_hidden_states (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).
decoder_attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
cross_attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.
encoder_last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.encoder_hidden_states (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.
encoder_attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
init_reference_points (
torch.Tensorمن الشكل(batch_size, num_queries, config.num_coords)) — نقاط مرجعية رباعية أولية تُرسل عبر مُفكِّك Transformer.enc_topk_logits (
torch.Tensorمن الشكل(batch_size, num_queries, config.num_labels)) — قيم logits لفئات مقترحات المُشفِّر التي تم اختيارها كاستعلامات للمُفكِّك.enc_topk_bboxes (
torch.Tensorمن الشكل(batch_size, num_queries, config.num_coords)) — رباعيات مقترحات المُشفِّر التي تم اختيارها كاستعلامات للمُفكِّك.enc_outputs_class (
torch.Tensorمن الشكل(batch_size, sequence_length, config.num_labels)) — قيم التصنيف (logits) لكل اقتراح من مقترحات المُشفِّر.enc_outputs_coord_logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.num_coords)) — قيم logits الرباعية لكل اقتراح من مقترحات المُشفِّر.denoising_meta_values (
dict، اختياري) — قاموس إضافي للقيم المتعلقة بإزالة الضوضاء.logits (
torch.Tensorمن الشكل(batch_size, num_queries, config.num_labels)) — قيم التصنيف (logits) لطبقة المُفكِّك (decoder) الأخيرة.relative_order_logits (
torch.Tensorمن الشكل(batch_size, config.num_queries, config.num_queries)) — قيم الاحتمال (Logits) لترتيب القراءة النسبي بين كل زوج، بعد دمج S2R الاختياري.successor_order_logits (
torch.Tensorمن الشكل(batch_size, config.num_queries, config.num_queries)) — قيم الاحتمال (logits) المباشرة للأزواج للخلف (ROOR).
PPDocLayoutV4Config
فئة transformers.PPDocLayoutV4Config
< 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 = 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 )
المعاملات
- is_encoder_decoder (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا. - initializer_range (
float، اختياري، القيمة الافتراضية0.01) — انحراف معياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - initializer_bias_prior_prob (
float, اختياري) — الاحتمال المسبق الذي يستخدمه مُهيّئ الانحياز (bias initializer) لتهيئة الانحيازات الخاصة بـenc_score_headوclass_embed. إذا كانNone، فإن القيمة الافتراضية هي1 / (num_labels + 1). - layer_norm_eps (
float, اختياري، القيمة الافتراضية1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - batch_norm_eps (
float، اختياري، القيمة الافتراضية1e-05) — قيمة إيبسلون المستخدمة في طبقات تطبيع الدفعة. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطةtied_weights_keysالخاصة بالنموذج. - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — إعدادات نموذج الهيكل العظمي. - freeze_backbone_batch_norms (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تجميد طبقات تطبيع الدفعة (batch normalization) في الهيكل الأساسي (backbone). - encoder_hidden_dim (
int، اختياري، القيمة الافتراضية256) — أبعاد التمثيلات المخفية. - encoder_in_channels (
list، اختياري، القيمة الافتراضية[512, 1024, 2048]) — مدخلات ميزات متعددة المستويات للمُشفِّر. - feat_strides (
list[int]، اختياري، القيمة الافتراضية[8, 16, 32]) — خطوات (Strides) المستخدمة في كل خريطة ميزات. - encoder_layers (
int, اختياري، القيمة الافتراضية1) — عدد الطبقات المخفية في مُشفِّر Transformer. سيستخدم نفس قيمةnum_layersإذا لم يتم تعيينه. - encoder_ffn_dim (
int، اختياري، القيمة الافتراضية1024) — أبعاد طبقة "الوسط" (المعروفة غالباً باسم طبقة التغذية الأمامية) في المُشفِّر. - encoder_attention_heads (
int، اختياري، القيمة الافتراضية8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُشفِّر Transformer. - dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — النسبة لجميع طبقات dropout. - activation_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل. - encode_proj_layers (
list[int]، اختياري، القيمة الافتراضية[2]) — فهارس الطبقات المُساقطة التي سيتم استخدامها في المُشفِّر. - positional_encoding_temperature (
int، اختياري، القيمة الافتراضية 10000) — معامل الحرارة المستخدم لإنشاء الترميزات الموضعية. - encoder_activation_function (
str, اختياري، القيمة الافتراضية"gelu") — دالة التنشيط غير الخطية (دالة أو نص) في المُشفِّر (encoder) والمُجمِّع (pooler). إذا كان نصًا، فالدوال المدعومة هي"gelu"،"relu"،"silu"و"gelu_new". - activation_function (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - eval_size (
tuple[int, int]، اختياري) — الارتفاع والعرض المستخدمان لحساب الارتفاع والعرض الفعليين لتضمينات المواقع بعد مراعاة الخطوة (stride). يجب تركهNoneلإعادة إنتاج التنفيذ المرجعي، الذي يحسب تضمينات المواقع ديناميكيًا. - normalize_before (
bool, اختياري، القيمة الافتراضيةFalse) — يحدد ما إذا كان سيتم تطبيق تطبيع الطبقة في طبقة مُشفِّر الترانسفورمر قبل وحدات الانتباه الذاتي والتغذية الأمامية. - hidden_expansion (
float، اختياري، القيمة الافتراضية 1.0) — نسبة التوسيع لتكبير حجم الأبعاد في RepVGGBlock و CSPRepLayer. - num_queries (
int، اختياري، القيمة الافتراضية 300) — عدد استعلامات الكائنات. - decoder_in_channels (
list، اختياري، القيمة الافتراضية[256, 256, 256]) — أبعاد الميزات متعددة المستويات لمفك الترميز - decoder_ffn_dim (
int, اختياري، القيمة الافتراضية 1024) — أبعاد طبقة "الوسط" (التي تُسمّى غالبًا بطبقة التغذية الأمامية) في المُفكِّك. - num_feature_levels (
int، اختياري، القيمة الافتراضية 3) — عدد مستويات الميزات المدخلة. - decoder_n_points (
int، اختياري، القيمة الافتراضية 4) — عدد المفاتيح المُعَيَّنَة في كل مستوى من مستويات الميزات لكل رأس انتباه في المُفَكِّك. - decoder_layers (
int, اختياري، القيمة الافتراضية6) — عدد الطبقات المخفية في مُفكِّك Transformer. سيُستخدم نفس قيمةnum_layersإذا لم يتم تعيينه. - decoder_attention_heads (
int، اختياري، القيمة الافتراضية8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - decoder_activation_function (
str، اختياري، القيمة الافتراضية"relu") — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. إذا كان نصاً، فالدوال المدعومة هي"gelu"،"relu"،"silu"و"gelu_new". - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - num_denoising (
int، اختياري، القيمة الافتراضية 100) — إجمالي عدد مهام إزالة الضوضاء أو الاستعلامات التي سيتم استخدامها لإزالة الضوضاء التباينية. - anchor_image_size (
tuple[int, int]، اختياري) — الارتفاع والعرض لصورة الإدخال المستخدمة أثناء التقييم لتوليد مرساة صناديق الحدود. إذا كانت القيمة None، يتم تطبيق توليد المرساة تلقائيًا. - disable_custom_kernels (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تعطيل النوى المخصصة. - global_pointer_head_size (
int، اختياري، القيمة الافتراضية 64) — حجم رأس المؤشر العام. - gp_dropout_value (
float، اختياري، القيمة الافتراضية 0.1) — احتمالية الإسقاط (dropout) في رأس المؤشر العام. - hidden_size (
int, اختياري، القيمة الافتراضية 256) — بعد طبقات المُفكِّك، باستثناء المُشفِّر الهجين. يمكن قراءته أيضاً باسمd_model، وهو الاسم المستخدم في سلالة RT-DETR التي ينحدر منها هذا النموذج. - num_coords (
int، اختياري، القيمة الافتراضية 10) — حجم معلمات الصندوق التي تتنبأ بها رؤوس bbox. يعيد PP-DocLayoutV4 رباعي الأضلاع المكوّن من أربع نقاط مشفّرًا على شكل[center_x, center_y, dx1, dy1, dx2, dy2, dx3, dy3, dx4, dy4]في فضاء sigmoid، حيث تُزاح إزاحات الزوايا بمقدار+0.5. القيمة10هي الوحيدة المدعومة. - s2r_steps (
int، اختياري، القيمة الافتراضية 3) — عدد خطوات الانتشار المستخدمة لتقريب الإغلاق الانتقالي لمصفوفة اللاحق. - s2r_damping (
float, اختياري، القيمة الافتراضية 0.5) — معامل التخميد المطبَّق على كل خطوة انتشار إضافية في الإغلاق الانتقالي. - s2r_closure_weight_init (
float، اختياري، القيمة الافتراضية 0.0) — القيمة الأولية للبوابة القابلة للتعلم التي تُضبط على حدّ المصطلح الإغلق. القيمة الافتراضية هي0.0بحيث تكون وحدة الدمج غير المدرّبة مطابقةً عددياً لاستخدام سجلات الترتيب النسبي وحدها.
هذه فئة الإعدادات المخزنة لإعدادات نموذج PPDocLayoutV4Model. تُستخدم لاستحداث نموذج Pp Doclayout V4 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ PaddlePaddle/PP-DocLayoutV4_safetensors
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
أمثلة:
>>> 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.configPPDocLayoutV4ImageProcessor
فئة transformers.PPDocLayoutV4ImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
المعاملات
- do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'height' -- 800, 'width': 800}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية3) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enumPILImageResampling. لا يؤثر إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0, 0, 0]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[1, 1, 1]) — انحراف الصورة المعياري المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. يعيد توتورات مكدسة إذا تم ضبطه على'pt'، وإلا فعاد قائمة من التوتورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. يعيد توتورات مكدسة إذا تم ضبطه على'pt'، وإلا فعاد قائمة من التوتورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - Returns تُعاد كمتجهات مكدّسة إذا كان الإعداد
'pt'، وإلا تُعاد قائمة من المتجهات. —
ينشئ معالج صور PPDocLayoutV4ImageProcessor.
disable_grouping (bool, kwargs, اختياري):
ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات.
إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى
ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 image_seq_length (int, kwargs, اختياري):
عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات.
تمت إضافتها من أجل التوافق مع الإصدارات السابقة، لكن ينبغي تعيينها كخاصية للمعالج في النماذج المستقبلية.
preprocess
< source >( 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
المعاملات
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبطdo_rescale=False. - image_like_kwargs (
dict[str, Any], اختياري) — علامة مخصّصة للمطوّرين لإدخال مدخلات إضافية مشابهة للصور ستخضع أيضاً للمعالجة المسبقة. استخدم هذا الخيار فقط إذا لم يعمل تمرير المدخلات كحجج اسمية (kwargs). على سبيل المثال،preprocess(images, masks=masks)هو الخيار المفضّل، لكنه قد يسبّب مشاكل في أولوية الحُجج لبعض النماذج. في تلك الحالات يمكن استخدامpreprocess(images, image_like_inputs={"masks": masks})بدلاً منه. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
معالجة صورة أو دفعة من الصور مسبقًا.
post_process_object_detection
< source >( outputsthreshold: float = 0.5target_sizes = None ) → list[Dict]
المعاملات
- outputs (
PPDocLayoutV4ForObjectDetectionOutput) — المخرجات الخام للنموذج. - threshold (
float، اختياري، القيمة الافتراضية 0.5) — حدّ الدرجة الذي يُحتفظ به للتنبؤات الخاصة بكشف الكائنات. - target_sizes (
torch.Tensorأوlist[tuple[int, int]]) — مصفوفة (Tensor) بأبعاد(batch_size, 2)أو قائمة من الأزواج ((height, width)) تحدد الحجم المستهدف لكل صورة في الدفعة.
يعيد
list[Dict]
قائمة من القواميس، واحدة لكل صورة، تحتوي كل منها على scores وlabels وboxes
وpolygon_points وorder_seq التي يتنبأ بها النموذج. يتم فرز التنبؤات حسب ترتيب القراءة، لذا
فإن order_seq غير متناقص (فالموجّه المحدد تحت عدة تسميات يحتفظ بترتيب واحد).
يحوّل المخرجات الخام لـ PPDocLayoutV4ForObjectDetection إلى مضلعات نهائية، وصناديق محيطة بصيغة (top_left_x, top_left_y, bottom_right_x, bottom_right_y)، وترتيبات ترتيب القراءة. يدعم PyTorch فقط.