# MiniCPM-OCR

MiniCPM-OCR هو نموذج لفهم المستندات من عائلة [MiniCPM-V](https://huggingface.co/papers/2509.18154) الذي طورته [OpenBMB](https://github.com/OpenBMB). يحتفظ ببنية [MiniCPM-V 4.6](./minicpmv4_6) -- وهي مشفّر بصري [SigLIP](./siglip) مع مُدمج انتباه نافذة أمام نموذج لغة [Qwen3.5](./qwen3_5) -- ويُخصصه لقراءة الصور كثيفة النصوص مثل الصفحات الممسوحة ضوئيًا ولقطات الشاشة والفواتير والجداول.

تمت مساهمة هذا النموذج من قِبل [OpenBMB](https://huggingface.co/openbmb). يمكن العثور على الكود الأصلي [هنا](https://github.com/openbmb/MiniCPM-OCR).

## مثال على الاستخدام

```python
from transformers import pipeline

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_receipt.jpeg",
            },
            {"type": "text", "text": "Transcribe all the text in this document."},
        ],
    },
]

pipe = pipeline("image-text-to-text", model="openbmb/MiniCPM-OCR-1.0")
outputs = pipe(text=messages, max_new_tokens=256, return_full_text=False)
print(outputs[0]["generated_text"])
#
#
# Document No : TD01167104
# Date : 25/12/2018 8:13:39 PM
# Cashier : MANIS
# Member :
# CASH BILL
# CODE/DESC PRICE Disc AMOUNT
# QTY RM RM
# 9556939040118 KF MODELLING CLAY KIDDY FISH
# 1 PC * 9.00 0.00 9.00
# Total : 9.00
# Rounding Adjustment : 0.00
# Round-d Total (RM) : 9.00
```

```python
from transformers import AutoModelForImageTextToText, AutoProcessor

model_id = "openbmb/MiniCPM-OCR-1.0"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(model_id, device_map="auto")

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg"},
            {"type": "text", "text": "Convert this page to markdown."},
        ],
    }
]

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt",
).to(model.device, dtype=model.dtype)

output = model.generate(**inputs, max_new_tokens=512)
decoded_output = processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(decoded_output)
# ```markdown
# R&D QUALITY IMPROVEMENT
# SUGGESTION/SOLUTION FORM
#
# Name/Phone Ext.: M. Hamann, P. Harper, P. Martinez Date: 9/3/92
#
# Supervisor/Manager: J. S. Wigand R&D Group: Licensee
# ...
# ```
```

يعمل قالب المحادثة في نقطة التفتيش المُصدَّرة على تعطيل التفكير بشكل افتراضي. مرّر `enable_thinking=True` إلى `apply_chat_template` لتفعيله صراحةً.

يدعم MiniCPM-OCR كلا وضعي التقليل البصري (visual downsampling) لعائلة MiniCPM-V:

- **4x** (الافتراضي): تقليل نسبة التقليل، وزيادة عدد الرموز البصرية، وهو ما تتطلبه عمليات نسخ المستندات ولقطات الشاشة.
- **16x**: نزع عينات أكثر عدوانية، ورموز بصرية أقل، واستدلال أسرع على الصور الطبيعية.

يجب تمرير الوضع إلى المعالج وإلى `model.generate` معًا، لأن المعالج يعدّ العلامات الوهمية البصرية التي يُفترض أن ينتجها برج الرؤية:

```python
from transformers import AutoModelForImageTextToText, AutoProcessor

model_id = "openbmb/MiniCPM-OCR-1.0"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(model_id, device_map="auto")

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg"},
            {"type": "text", "text": "Convert this page to markdown."},
        ],
    }
]

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt",
    processor_kwargs={"downsample_mode": "4x"},
).to(model.device, dtype=model.dtype)

output = model.generate(**inputs, max_new_tokens=512, downsample_mode="4x")
print((inputs["input_ids"] == model.config.image_token_id).sum().item())
# 1260 visual tokens; the same page in `"16x"` mode is 315 instead
```

يطبّق `downsample_mode` الخاص بكل استدعاء على ذلك الاستدعاء فقط دون تغيير المعالج، مما يتيح للمعالج نفسه تقديم كلا الوضعين بشكل متزامن. عند استدعاء المعالج مباشرةً بدلاً من المرور عبر `apply_chat_template`، مرّره كحجة كلمة مفتاحية عادية:

```python
inputs = processor(images=[image], text=[text], return_tensors="pt", downsample_mode="4x")
```

لجعل وضع ما هو الوضع الافتراضي بدلاً من ذلك، قم بتعيينه عند تحميل المعالج:

```python
processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-OCR-1.0", downsample_mode="4x")
```

تُكبَّر الصور التي تكون صغيرة جدًا بحيث لا يمكن تقطيعها إلى `scale_resolution` افتراضيًا، وهو الإعداد الذي تم تدريب نقطة التفتيش المنشورة به. غالبًا ما يكون من الأفضل إبقاء لقطات الشاشة والمقتطفات على دقتها الأصلية، حيث أن التكبير لا يؤدي إلا إلى تشويه الرموز، لذا يختار `small_image_upsize` بين الخيارين:

- `"always"` (الافتراضي): تكبيرها إلى `scale_resolution`.
- `"never"`: إبقائهم عند دقة العرض الأصلية، مع محاذاة الشبكة فقط.
- `"adaptive"`: يُحدَّد لكل صورة ولكل شريحة على حدة، بناءً على حجم الرموز وكثافتها.

```python
from transformers import AutoProcessor
from transformers.image_utils import load_image

url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_receipt.jpeg"
image = load_image(url).resize((224, 224))

processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-OCR-1.0")
messages = [{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": "Read the text."}]}]
text = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)

print(processor(images=[image], text=[text], return_tensors="pt")["target_sizes"].tolist())
# [[32, 32]] -- upscaled to `scale_resolution`

processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-OCR-1.0", small_image_upsize="never")
print(processor(images=[image], text=[text], return_tensors="pt")["target_sizes"].tolist())
# [[16, 16]] -- 224 / 14 patches per side, no upscaling
```

`"adaptive"` يُكبّر النص الكثيف الصغير إلى `scale_resolution`، والصور التي يقل حجمها عن 6272 بكسل إلى 84، ويُبقي الباقي بحجمه الأصلي؛ وفي أي مقطع، لا يستهلك عددًا من الرموز يتجاوز ما كان سيستهلكه البلاطة الأساسية. تُقاس ارتفاع الحروف وكثافتها باستخدام عتبة أوتسو تليها تحليل المكونات المتصلة، لذا يتطلب الأمر [OpenCV](https://pypi.org/project/opencv-python/) ويرفع خطأً في حال عدم توفره، بدلاً من التراجع بصمت إلى قاعدة مختلفة.

```python
processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-OCR-1.0", small_image_upsize="adaptive")
print(processor(images=[image], text=[text], return_tensors="pt")["target_sizes"].tolist())
# [[32, 32]] -- dense text detected, so this one is upscaled anyway
```

على غرار `downsample_mode`، يمكن تجاوزها في كل استدعاء على حدة، مما يحافظ على استلام 224x224 بدقة الأصلية دون إعادة تحميل المعالج:

```python
inputs = processor(images=[image], text=[text], return_tensors="pt", small_image_upsize="never")
print(inputs["target_sizes"].tolist())
# [[16, 16]] -- 224 / 14 patches per side, no upscaling
```

```python
from transformers import AutoModelForImageTextToText, AutoProcessor

model_id = "openbmb/MiniCPM-OCR-1.0"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(model_id, device_map="auto")

messages = [
    [
        {
            "role": "user",
            "content": [
                {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_receipt.jpeg"},
                {"type": "text", "text": "Transcribe all the text in this document."},
            ],
        }
    ],
    [
        {
            "role": "user",
            "content": [
                {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg"},
                {"type": "text", "text": "Transcribe all the text in this document."},
            ],
        }
    ],
]

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt",
    processor_kwargs={"padding": True},
).to(model.device, dtype=model.dtype)

output = model.generate(**inputs, max_new_tokens=256)
decoded_outputs = processor.batch_decode(output[:, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(decoded_outputs[0])
# Document No : TD01167104
# Date : 25/12/2018 8:13:39 PM
# Cashier : MANIS
# ...
print(decoded_outputs[1])
# R&D QUALITY IMPROVEMENT
# SUGGESTION/SOLUTION FORM
#
# Name/Phone Ext.: M. Hamann P. Harper P. Martinez Date: 9/3/92
# Supervisor/Manager: J. S. Wigand R&D Group: Licensee
# ...
```

تُعاد تصغير الصفحتين بشكل مستقل، لذا فإن تدرجاتهما (prompts) لها أطوال مختلفة. يجب طلب `padding` عبر `processor_kwargs` حتى يقوم `apply_chat_template` بتحويله إلى المعالج (processor)، ويقوم المعالج بتعبئة المساحة من اليسار حتى يستمر `generate` في الإنتاج من نهاية كل تدرج.

## MiniCPMOcrConfig[[transformers.MiniCPMOcrConfig]]

#### transformers.MiniCPMOcrConfig[[transformers.MiniCPMOcrConfig]]

```python
transformers.MiniCPMOcrConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, text_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, vision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, insert_layer_id: int = 6, image_token_id: int | None = None, video_token_id: int | None = None, tie_word_embeddings: bool = True, downsample_mode: str = '4x', merge_kernel_size: tuple[int, int] | list[int] = (2, 2), merger_times: int = 1)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/configuration_minicpm_ocr.py#L66)

**المعاملات:**

text_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`، *اختياري*) : كائن الإعداد أو قاموس العمود الفقري النصي.

vision_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`، *اختياري*) : كائن الإعداد أو قاموس العمود الفقري البصري.

insert_layer_id (`int`، *اختياري*، القيمة الافتراضية 6) : فهرس طبقة مُشفِّر الرؤية الذي يُطبَّق بعده مُدمج الانتباه النافذي.

image_token_id (`int`, *اختياري*) : مؤشر رمز الصورة المستخدم كعنصر نائب للصور المدخلة.

video_token_id (`int`، *اختياري*) : فهرس رمز الفيديو المستخدم كعنصر نائب لفيديوهات الإدخال.

tie_word_embeddings (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب ربط ترميزات الأوزان وفقاً لخريطة `tied_weights_keys` الخاصة بالنموذج.

downsample_mode (`str`، *اختياري*، القيمة الافتراضية `"4x"`) : نسبة تقليل حجم الرموز البصرية. يحافظ `"4x"` على عدد أكبر من الرموز بمقدار 4× مقارنةً بـ`"16x"`، وهو ما تُقرأ به صور المستندات الكثيفة بالنص.

merge_kernel_size (`tuple[int, int]`، *اختياري*، القيمة الافتراضية `(2, 2)`) : حجم النواة `(h, w)` لدمج البقع البصرية المجاورة في المدمج (Merger).

merger_times (`int`، *اختياري*، القيمة الافتراضية 1) : عدد جولات الدمج التكراري في Merger.

هذه فئة الإعدادات المخزنة لإعدادات نموذج MiniCPMOcrModel. تُستخدم لاستحداث نموذج Minicpm Ocr وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [openbmb/MiniCPM-OCR-1.0](https://huggingface.co/openbmb/MiniCPM-OCR-1.0)

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

## MiniCPMOcrVisionConfig[[transformers.MiniCPMOcrVisionConfig]]

#### transformers.MiniCPMOcrVisionConfig[[transformers.MiniCPMOcrVisionConfig]]

```python
transformers.MiniCPMOcrVisionConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, hidden_size: int = 768, intermediate_size: int = 3072, num_hidden_layers: int = 12, num_attention_heads: int = 12, num_channels: int = 3, image_size: int | list[int] | tuple[int, int] = 224, patch_size: int | list[int] | tuple[int, int] = 16, hidden_act: str = 'gelu_pytorch_tanh', layer_norm_eps: float = 1e-06, attention_dropout: float | int = 0.0, insert_layer_id: int = 6, window_kernel_size: tuple[int, int] | list[int] = (2, 2))
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/configuration_minicpm_ocr.py#L31)

**المعاملات:**

hidden_size (`int`، *اختياري*، القيمة الافتراضية `768`) : بُعد التمثيلات المخفية.

intermediate_size (`int`، *اختياري*، القيمة الافتراضية `3072`) : بُعد تمثيلات MLP.

num_hidden_layers (`int`، *اختياري*، القيمة الافتراضية `12`) : عدد الطبقات المخفية في مُفكِّك Transformer.

num_attention_heads (`int`، *اختياري*، القيمة الافتراضية `12`) : عدد رؤوس الانتباه في كل طبقة انتباه داخل مُفكِّك Transformer.

num_channels (`int`، *اختياري*، القيمة الافتراضية `3`) : عدد قنوات الإدخال.

image_size (`Union[int, list[int], tuple[int, int]]`، *اختياري*، القيمة الافتراضية `224`) : حجم (دقة) كل صورة.

patch_size (`Union[int, list[int], tuple[int, int]]`، *اختياري*، القيمة الافتراضية `16`) : حجم (دقة) كل رقعة.

hidden_act (`str`، *اختياري*، القيمة الافتراضية `gelu_pytorch_tanh`) : دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، `"gelu"`، `"relu"`، `"silu"`، وما إلى ذلك.

layer_norm_eps (`float`, *اختياري*, الافتراضي هو `1e-06`) : قيمة إيبسلون المستخدمة في طبقات تطبيع الطبقة.

attention_dropout (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : نسبة الإسقاط (dropout) لاحتمالات الانتباه.

insert_layer_id (`int`، *اختياري*، القيمة الافتراضية 6) : فهرس طبقة مُشفِّر الرؤية الذي يُطبَّق بعده مُدمج الانتباه النافذي.

window_kernel_size (`tuple[int, int]`، *اختياري*، القيمة الافتراضية `(2, 2)`) : حجم النافذة `(h, w)` لمدمج الانتباه النافذي الوسيط.

هذه فئة الإعدادات المخزنة لإعدادات نموذج MiniCPMOcrModel. تُستخدم لاستحداث نموذج Minicpm Ocr وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [openbmb/MiniCPM-OCR-1.0](https://huggingface.co/openbmb/MiniCPM-OCR-1.0)

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

## MiniCPMOcrVisionPreTrainedModel[[transformers.MiniCPMOcrVisionPreTrainedModel]]

#### transformers.MiniCPMOcrVisionPreTrainedModel[[transformers.MiniCPMOcrVisionPreTrainedModel]]

```python
transformers.MiniCPMOcrVisionPreTrainedModel(config: PreTrainedConfig, *inputs, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L396)

#### forward[[transformers.MiniCPMOcrVisionPreTrainedModel.forward]]

```python
forward(*args, **kwargs)
```

قيمة وهمية لمسار منقّط (مثل `torch.float32`): سلاسل الوصول إلى السمات، والاستدعاءات تتصرف كمُزيّنات مُمرِّرة، و`repr` هو المسار المنقّط، وعند استخدامه كصنف أساسي يُستبدل بصنف أساسي من نوع `type` عادي (بموجب `__mro_entries__` في PEP 560)، بحيث تحتفظ الأصناف الفرعية الحقيقية بفئة ميتا عادية، وتقرأ `inspect.signature` دالة `__init__` الحقيقية الخاصة بها بدلاً من تلك الموجودة في القيمة الوهمية.

## MiniCPMOcrVisionModel[[transformers.MiniCPMOcrVisionModel]]

#### transformers.MiniCPMOcrVisionModel[[transformers.MiniCPMOcrVisionModel]]

```python
transformers.MiniCPMOcrVisionModel(config: MiniCPMOcrVisionConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L410)

#### forward[[transformers.MiniCPMOcrVisionModel.forward]]

```python
forward(pixel_values, target_sizes: typing.Optional[torch.IntTensor] = None, use_vit_merger: bool = True, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L442)

**المعاملات:**

pixel_values (`` of shape `(batch_size, num_channels, image_size, image_size)`) : الموترات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [MiniCPMOcrImageProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrImageProcessor). راجع [MiniCPMOcrImageProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل ([MiniCPMOcrProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrProcessor) يستخدم [MiniCPMOcrImageProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrImageProcessor) لمعالجة الصور).

target_sizes (`torch.IntTensor` من الشكل `(batch_size, 2)`، *اختياري*) : أحجام شبكة الباتشات `(h, w)` لحساب تضمينات المواقع.

use_vit_merger (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم تطبيق دمج انتباه النافذة الخاص بـ ViT بعد المُشفِّر.

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([MiniCPMOcrConfig](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrConfig)) والمدخلات.

تتجاوز طريقة [MiniCPMOcrVisionModel](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrVisionModel) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **pooler_output** (`torch.Tensor` من الشكل `(batch_size, hidden_size)`) -- حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. يتم تدريب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

## MiniCPMOcrModel[[transformers.MiniCPMOcrModel]]

#### transformers.MiniCPMOcrModel[[transformers.MiniCPMOcrModel]]

```python
transformers.MiniCPMOcrModel(config: MiniCPMOcrConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L593)

**المعاملات:**

config ([MiniCPMOcrConfig](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج MiniCPMOcr الذي يتكون من هيكل بصري ونموذج لغوي، دون رأس لنمذجة اللغة.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.MiniCPMOcrModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, pixel_values: typing.Optional[torch.Tensor] = None, target_sizes: typing.Optional[torch.IntTensor] = None, pixel_values_videos: typing.Optional[torch.Tensor] = None, target_sizes_videos: typing.Optional[torch.IntTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: list[torch.Tensor] | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, downsample_mode: str | None = None, mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L662)

**المعاملات:**

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

pixel_values (`torch.Tensor`، *اختياري*) : رقعات قيم البكسل للصور، مُجمّعة بواسطة NaViT.

target_sizes (`torch.IntTensor`، *اختياري*) : الارتفاع والعرض (بوحدة البقع) لكل صورة.

pixel_values_videos (`torch.Tensor`، *اختياري*) : رقعات قيم البكسلات لإطارات الفيديو، مُجمّعة وفق NaViT.

target_sizes_videos (`torch.IntTensor`، *اختياري*) : الارتفاع والعرض (بوحدة البقع) لكل إطار في الفيديو.

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

past_key_values (`list[torch.Tensor]`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من `past_key_values` التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون `use_cache=True` أو `config.use_cache=True`. يُسمح فقط بمرجع [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache) كمدخل، راجد دليل [kv cache guide](https://huggingface.co/docs/transformers/en/kv_cache) الخاص بنا. إذا لم يتم تمرير `past_key_values`، فسيتم تهيئة [DynamicCache](/docs/transformers/main/ar/internal/generation_utils#transformers.DynamicCache) افتراضيًا. سيُخرج النموذج نفس تنسيق الكاش الذي يُدخل كمدخل. إذا تم استخدام `past_key_values`، يُتوقع من المستخدم إدخال `input_ids` غير المعالجة فقط (تلك التي لم تُعطَ حالات مفاتيحها وقيمتها السابقة لهذا النموذج) بشكل `(batch_size, unprocessed_length)` بدلاً من جميع `input_ids` بشكل `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

use_cache (`bool`، *اختياري*) : إذا تم ضبطه على `True`، تُعاد حالات المفاتيح والقيم `past_key_values` ويمكن استخدامها لتسريع فك الترميز (انظر `past_key_values`).

downsample_mode (`str`، *اختياري*) : `"4x"` يحافظ على أربعة أضعاف من الرموز البصرية؛ الافتراضي `"16x"` يطبّق الدمج الكامل.

mm_encoder_outputs (`dict[str, ~modeling_outputs.BaseModelOutputWithPooling]`، *اختياري*) : قاموس حيث تكون المفاتيح هي الأنماط المدعومة والقيم هي المخرجات المُرمّزة لذلك النمط. كل مخرَج مُرمّز هو مجموعة (tuple) تتكون من (`pooler_output`، *اختياري*: `last_hidden_states`، *اختياري*: `hidden_states`، *اختياري*: `attentions`) `pooler_output` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) وهو تسلسل من الميزات متعددة الوسائط للمُشفِّر المُدمجة في تضمينات النص.

**يعيد:** [BaseModelOutputWithPast](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPast) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPast](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPast) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([MiniCPMOcrConfig](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrConfig)) والمدخلات.

تتجاوز طريقة [MiniCPMOcrModel](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrModel) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.

  إذا تم استخدام `past_key_values`، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل `(batch_size, 1, hidden_size)` هي التي تُخرج.
- **past_key_values** (`Cache`، *اختياري*، يُعاد عند تمرير `use_cache=True` أو عند تعيين `config.use_cache=True`) -- هو كائن من نوع [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache). لمزيد من التفاصيل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache).

  تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان `config.is_encoder_decoder=True`) يمكن استخدامها (انظر مدخل `past_key_values`) لتسريع فك الترميز التسلسلي.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

#### get_image_features[[transformers.MiniCPMOcrModel.get_image_features]]

```python
get_image_features(pixel_values: Tensor, target_sizes: IntTensor, downsample_mode: str | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L602)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [MiniCPMOcrImageProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrImageProcessor). راجع [MiniCPMOcrImageProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل ([MiniCPMOcrProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrProcessor) يستخدم [MiniCPMOcrImageProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrImageProcessor) لمعالجة الصور).

target_sizes (`torch.IntTensor` من الشكل `(num_images, 2)`) : الارتفاع والعرض (بالوحدات) لكل صورة.

downsample_mode (`str`, *اختياري*) : عند ضبطه على `"4x"` يتم تجاوز `vit_merger` الوسيط بحيث يحتفظ كل صورة بعدد أكبر من الرموز البصرية بمقدار `4×`. الوضع الافتراضي `"16x"` يطبّق خط أنابيب الدمج الكامل.

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([MiniCPMOcrConfig](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrConfig)) والمدخلات.

استخراج ميزات الصورة: مُشفِّر الرؤية، مُدمج الإدراج، ثم مُدمج MLP.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **pooler_output** (`torch.Tensor` من الشكل `(batch_size, hidden_size)`) -- حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. يتم تدريب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

#### get_video_features[[transformers.MiniCPMOcrModel.get_video_features]]

```python
get_video_features(pixel_values_videos: Tensor, target_sizes_videos: IntTensor, downsample_mode: str | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L743)

**المعاملات:**

pixel_values_videos (`torch.Tensor` من الشكل `(1, channels, patch_size, seq_len)`) : بقع بكسل مُجمّعة بواسطة NaViT لجميع إطارات الفيديو. يقوم معالج الفيديو بدمج بقع كل إطار على طول البُعد الأخير في تسلسل واحد حيث البُعد-0 = 1، وهو مطابق تمامًا لتنسيق تجميع الصور.

target_sizes_videos (`torch.IntTensor` من الشكل `(num_patches, 2)`) : الارتفاع والعرض (بوحدة الباتشات) لكل وحدة بصرية.

downsample_mode (`str`, *اختياري*) : عند ضبطه على `"4x"` يتم تجاوز `vit_merger` الوسيط بحيث يحتفظ كل إطار بعدد أكبر من الرموز البصرية بمقدار `4×`. الوضع الافتراضي `"16x"` يطبّق خط أنابيب الدمج الكامل.

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([MiniCPMOcrConfig](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrConfig)) والمدخلات.

استخراج ميزات الفيديو: إعادة تعبئة الإطارات إلى صيغة NaViT، ثم مُشفِّر الرؤية + المُدمج.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **pooler_output** (`torch.Tensor` من الشكل `(batch_size, hidden_size)`) -- حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. يتم تدريب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

## MiniCPMOcrForConditionalGeneration[[transformers.MiniCPMOcrForConditionalGeneration]]

#### transformers.MiniCPMOcrForConditionalGeneration[[transformers.MiniCPMOcrForConditionalGeneration]]

```python
transformers.MiniCPMOcrForConditionalGeneration(config: MiniCPMOcrConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L779)

**المعاملات:**

config ([MiniCPMOcrConfig](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Minicpm Ocr لتوليد الرموز المشروطة على أنماط أخرى (مثل توليد النص من صورة ونص).

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.MiniCPMOcrForConditionalGeneration.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, pixel_values: typing.Optional[torch.Tensor] = None, target_sizes: typing.Optional[torch.IntTensor] = None, pixel_values_videos: typing.Optional[torch.Tensor] = None, target_sizes_videos: typing.Optional[torch.IntTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: list[torch.Tensor] | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, downsample_mode: str | None = None, mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L790)

**المعاملات:**

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

pixel_values (`torch.Tensor`، *اختياري*) : رقعات قيم البكسل للصور، مُجمّعة بواسطة NaViT.

target_sizes (`torch.IntTensor`، *اختياري*) : الارتفاع والعرض (بوحدة البقع) لكل صورة.

pixel_values_videos (`torch.Tensor`، *اختياري*) : رقعات قيم البكسلات لإطارات الفيديو، مُجمّعة وفق NaViT.

target_sizes_videos (`torch.IntTensor`، *اختياري*) : الارتفاع والعرض (بوحدة البقع) لكل إطار في الفيديو.

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

past_key_values (`list[torch.Tensor]`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من `past_key_values` التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون `use_cache=True` أو `config.use_cache=True`. يُسمح فقط بمرجع [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache) كمدخل، راجد دليل [kv cache guide](https://huggingface.co/docs/transformers/en/kv_cache) الخاص بنا. إذا لم يتم تمرير `past_key_values`، فسيتم تهيئة [DynamicCache](/docs/transformers/main/ar/internal/generation_utils#transformers.DynamicCache) افتراضيًا. سيُخرج النموذج نفس تنسيق الكاش الذي يُدخل كمدخل. إذا تم استخدام `past_key_values`، يُتوقع من المستخدم إدخال `input_ids` غير المعالجة فقط (تلك التي لم تُعطَ حالات مفاتيحها وقيمتها السابقة لهذا النموذج) بشكل `(batch_size, unprocessed_length)` بدلاً من جميع `input_ids` بشكل `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

labels (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس إما ضمن `[0, ..., config.vocab_size]` أو -100 (انظر `input_ids` docstring). يتم تجاهل الرموز التي تكون فهارسها مضبوطة على `-100` (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن `[0, ..., config.vocab_size]`.

use_cache (`bool`، *اختياري*) : إذا تم ضبطه على `True`، تُعاد حالات المفاتيح والقيم `past_key_values` ويمكن استخدامها لتسريع فك الترميز (انظر `past_key_values`).

downsample_mode (`str`، *اختياري*) : `"4x"` يحافظ على أربعة أضعاف من الرموز البصرية؛ الافتراضي `"16x"` يطبّق الدمج الكامل.

mm_encoder_outputs (`dict[str, ~modeling_outputs.BaseModelOutputWithPooling]`، *اختياري*) : قاموس حيث تكون المفاتيح هي الأنماط المدعومة والقيم هي المخرجات المُرمّزة لذلك النمط. كل مخرَج مُرمّز هو مجموعة (tuple) تتكون من (`pooler_output`، *اختياري*: `last_hidden_states`، *اختياري*: `hidden_states`، *اختياري*: `attentions`) `pooler_output` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) وهو تسلسل من الميزات متعددة الوسائط للمُشفِّر المُدمجة في تضمينات النص.

**يعيد:** [CausalLMOutputWithPast](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.CausalLMOutputWithPast) أو `tuple(torch.Tensor)`

[CausalLMOutputWithPast](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.CausalLMOutputWithPast) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([MiniCPMOcrConfig](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrConfig)) والمدخلات.

تتجاوز طريقة [MiniCPMOcrForConditionalGeneration](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrForConditionalGeneration) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **loss** (`torch.Tensor` من الشكل `(1,)`، *اختياري*، يُعاد عند توفير `labels`) -- خسارة نمذجة اللغة (لتوقع الرمز التالي).
- **logits** (`torch.Tensor` من الشكل `(batch_size, sequence_length, config.vocab_size)`) -- درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).
- **past_key_values** (`Cache`، *اختياري*، يُعاد عند تمرير `use_cache=True` أو عند تعيين `config.use_cache=True`) -- هو كائن من نوع [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache). لمزيد من التفاصيل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache).

  تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل `past_key_values`) لتسريع فك الترميز التسلسلي.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
>>> from PIL import Image
>>> from transformers import AutoProcessor, MiniCPMOcrForConditionalGeneration

>>> model = MiniCPMOcrForConditionalGeneration.from_pretrained("openbmb/MiniCPM-OCR-1.0")
>>> processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-OCR-1.0")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]
```

#### get_image_features[[transformers.MiniCPMOcrForConditionalGeneration.get_image_features]]

```python
get_image_features(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L854)

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([MiniCPMOcrConfig](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrConfig)) والمدخلات.

استخراج ميزات الصورة: مُشفِّر الرؤية، مُدمج الإدراج، ثم مُدمج MLP.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **pooler_output** (`torch.Tensor` من الشكل `(batch_size, hidden_size)`) -- حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. يتم تدريب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
>>> from PIL import Image
>>> from transformers import AutoProcessor, MiniCPMOcrForConditionalGeneration

>>> model = MiniCPMOcrForConditionalGeneration.from_pretrained("openbmb/MiniCPM-OCR-1.0")
>>> processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-OCR-1.0")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]
```

#### get_video_features[[transformers.MiniCPMOcrForConditionalGeneration.get_video_features]]

```python
get_video_features(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/modeling_minicpm_ocr.py#L858)

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([MiniCPMOcrConfig](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrConfig)) والمدخلات.

استخراج ميزات الفيديو: إعادة تعبئة الإطارات إلى صيغة NaViT، ثم مُشفِّر الرؤية + المُدمج.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **pooler_output** (`torch.Tensor` من الشكل `(batch_size, hidden_size)`) -- حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. يتم تدريب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
>>> from PIL import Image
>>> from transformers import AutoProcessor, MiniCPMOcrForConditionalGeneration

>>> model = MiniCPMOcrForConditionalGeneration.from_pretrained("openbmb/MiniCPM-OCR-1.0")
>>> processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-OCR-1.0")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]
```

## MiniCPMOcrProcessor[[transformers.MiniCPMOcrProcessor]]

#### transformers.MiniCPMOcrProcessor[[transformers.MiniCPMOcrProcessor]]

```python
transformers.MiniCPMOcrProcessor(image_processor = None, video_processor = None, tokenizer = None, chat_template = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/processing_minicpm_ocr.py#L47)

**المعاملات:**

image_processor (`MiniCPMOcrImageProcessor`) : مُعالج الصور هو مدخل مطلوب.

video_processor (`MiniCPMOcrVideoProcessor`) : معالج الفيديو هو مدخل مطلوب.

tokenizer (`TokenizersBackend`) : مُجزِّئ الرموز (tokenizer) هو مدخل مطلوب.

chat_template (`str`) : قالب Jinja لتحويل قوائم الرسائل في المحادثة إلى نص قابل للتحويم.

ينشئ MiniCPMOcrProcessor الذي يجمع معالج الصور ومعالج الفيديو ومجزئ الرموز في معالج واحد.

يوفر [MiniCPMOcrProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrProcessor) جميع وظائف [MiniCPMOcrImageProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrImageProcessor) و[MiniCPMOcrVideoProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrVideoProcessor) و[TokenizersBackend](/docs/transformers/main/ar/main_classes/tokenizer#transformers.TokenizersBackend). راجع [~MiniCPMOcrImageProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrImageProcessor) و[~MiniCPMOcrVideoProcessor](/docs/transformers/main/ar/model_doc/minicpm_ocr#transformers.MiniCPMOcrVideoProcessor) و[~TokenizersBackend](/docs/transformers/main/ar/main_classes/tokenizer#transformers.TokenizersBackend) لمزيد من المعلومات.

#### __call__[[transformers.MiniCPMOcrProcessor.__call__]]

```python
__call__(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, text: str | list[str] | list[list[str]] | None = None, videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = None, **kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/processing_minicpm_ocr.py#L70)

**المعاملات:**

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

text (`Union[str, list[str], list[list[str]]]`، *اختياري*) : التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نص مُجزَّأ مسبقًا). إذا مررت مدخلات مُجزَّأة مسبقًا، فاضبط `is_split_into_words=True` لتجنب الغموض مع المدخلات المُجمَّعة في دفعات.

videos (`Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]`، *اختياري*) : الفيديو المراد معالجته مسبقًا. يتوقع إدخال فيديو واحد أو دفعة من الفيديوهات بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر فيديوهات بقيم بكسل بين 0 و1، فاضبط `do_rescale=False`.

return_tensors (`str` أو [TensorType](/docs/transformers/main/ar/internal/file_utils#transformers.TensorType)، *اختياري*) : إذا تم تعيينه، فسيُرجع تينسورات من إطار عمل محدد. القيم المقبولة هي:  - `'pt'`: يُرجع كائنات `torch.Tensor` من PyTorch. - `'np'`: يُرجع كائنات `np.ndarray` من NumPy.

- ****kwargs** ([ProcessingKwargs](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessingKwargs)، *اختياري*) : خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

## MiniCPMOcrImageProcessor[[transformers.MiniCPMOcrImageProcessor]]

#### transformers.MiniCPMOcrImageProcessor[[transformers.MiniCPMOcrImageProcessor]]

```python
transformers.MiniCPMOcrImageProcessor(**kwargs: *<class 'transformers.models.minicpm_ocr.image_processing_minicpm_ocr.MiniCPMOcrImageProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/image_processing_minicpm_ocr.py#L139)

**المعاملات:**

do_convert_rgb (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب تغيير حجم الصورة.

size (*Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]*، *kwargs*) : يصف الأبعاد القصوى للمدخلات إلى النموذج.

default_to_square (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان size عددًا صحيحًا.

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*) : مرشح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد *PILImageResampling*. لا يؤثر إلا إذا كانت قيمة *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.5, 0.5, 0.5]*) : متوسط الصورة المستخدم للتطبيع. لا يؤثر إلا إذا تم تعيين *do_normalize* إلى *True*.

image_std (*Union[float, list[float], tuple[float, ...]]*، *kwargs*، *اختياري*، القيمة الافتراضية *[0.5, 0.5, 0.5]*) : الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيين *do_normalize* إلى *True*.

do_pad (*bool*، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة حشوة (padding) إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة (batch) أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

pad_size (*Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]*, *kwargs*) : الحجم في *&amp;lcub;"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*: صورة بتنسيق (height, width, num_channels). - *"none"* أو *ChannelDimension.NONE*: صورة بتنسيق (height, width).

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*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

max_slice_nums (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 9) : الحد الأقصى لعدد الشرائح عند تقسيم صورة عالية الدقة.

scale_resolution (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 448) : الدقة المستهدفة للشرائح الفردية.

patch_size (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 14) : حجم البقعة المكانية لمشفّر الرؤية.

slice_mode (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان سيتم تقسيم الصور إلى شرائح متعددة للحصول على دقة أعلى.

downsample_mode (*str*، *kwargs*، *اختياري*، القيمة الافتراضية *"4x"*) : وضع تقليل حجم الرموز البصرية. يحافظ *"4x"* على أربعة أضعاف عدد الرموز مقارنةً بـ *"16x"* الذي يطبّق الدمج الكامل. يُدعم تجاوز هذا الإعداد لكل استدعاء.

use_image_id (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب إضافة وسم معرّف صورة (`<image_id>N</image_id>`) قبل كل موضع محجوز للصورة. يُستهلك بواسطة المعالج (Processor) لتوليد المواضع المحجوزة، وليس بواسطة خط معالجة الصور نفسه.

small_image_upsize (*str*، *kwargs*، *اختياري*، القيمة الافتراضية هي *"always"*) : كيفية إعادة تحجيم الصور والمقاطع التي لا يتجاوز حجمها مربع *scale_resolution*. يقوم *"always"* برفع دقتها إلى *scale_resolution*، بينما يحافظ *"never"* على دقتها الأصلية مع محاذاة الشبكة، ويختار *"adaptive"* لكل صورة ومقطع على حدة بناءً على حجم الرموز وكثافتها (يتطلب OpenCV، راجع [*adaptive_upsize_resolution*]).

ينشئ معالج صور MiniCPMOcrImageProcessor.

#### preprocess[[transformers.MiniCPMOcrImageProcessor.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], **kwargs: *<class 'transformers.models.minicpm_ocr.image_processing_minicpm_ocr.MiniCPMOcrImageProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/image_processing_minicpm_ocr.py#L246)

**المعاملات:**

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

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*، *اختياري*) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان size عددًا صحيحًا.

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*، *اختياري*) : ما إذا كان يجب إضافة حشوة (padding) إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة (batch) أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

pad_size (*Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]*, *kwargs*) : الحجم في *&amp;lcub;"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*: صورة بتنسيق (height, width, num_channels). - *"none"* أو *ChannelDimension.NONE*: صورة بتنسيق (height, width).

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*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

max_slice_nums (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 9) : الحد الأقصى لعدد الشرائح عند تقسيم صورة عالية الدقة.

scale_resolution (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 448) : الدقة المستهدفة للشرائح الفردية.

patch_size (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 14) : حجم البقعة المكانية لمشفّر الرؤية.

slice_mode (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان سيتم تقسيم الصور إلى شرائح متعددة للحصول على دقة أعلى.

downsample_mode (*str*، *kwargs*، *اختياري*، القيمة الافتراضية *"4x"*) : وضع تقليل حجم الرموز البصرية. يحافظ *"4x"* على أربعة أضعاف عدد الرموز مقارنةً بـ *"16x"* الذي يطبّق الدمج الكامل. يُدعم تجاوز هذا الإعداد لكل استدعاء.

use_image_id (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب إضافة وسم معرّف صورة (`<image_id>N</image_id>`) قبل كل موضع محجوز للصورة. يُستهلك بواسطة المعالج (Processor) لتوليد المواضع المحجوزة، وليس بواسطة خط معالجة الصور نفسه.

small_image_upsize (*str*، *kwargs*، *اختياري*، القيمة الافتراضية هي *"always"*) : كيفية إعادة تحجيم الصور والمقاطع التي لا يتجاوز حجمها مربع *scale_resolution*. يقوم *"always"* برفع دقتها إلى *scale_resolution*، بينما يحافظ *"never"* على دقتها الأصلية مع محاذاة الشبكة، ويختار *"adaptive"* لكل صورة ومقطع على حدة بناءً على حجم الرموز وكثافتها (يتطلب OpenCV، راجع [*adaptive_upsize_resolution*]).

**يعيد:** `*~feature_extraction_utils.BatchFeature*`

- **data** (*dict*، *اختياري*) -- قاموس من القوائم/المصفوفات/الموترات التي تُعاد بواسطة طريقتي __call__/pad ('input_values'، 'attention_mask'، إلخ).
- **tensor_type** (*Union[None, str, TensorType]*، *اختياري*) -- يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
- **skip_tensor_conversion** (*list[str]* أو *set[str]*، *اختياري*) -- قائمة أو مجموعة من المفاتيح التي يجب ألا يتم تحويلها إلى متجهات، حتى عند تحديد *tensor_type*.

## MiniCPMOcrVideoProcessor[[transformers.MiniCPMOcrVideoProcessor]]

#### transformers.MiniCPMOcrVideoProcessor[[transformers.MiniCPMOcrVideoProcessor]]

```python
transformers.MiniCPMOcrVideoProcessor(**kwargs: *<class 'transformers.models.minicpm_ocr.video_processing_minicpm_ocr.MiniCPMOcrVideoProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/video_processing_minicpm_ocr.py#L77)

**المعاملات:**

do_convert_rgb (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب تغيير حجم الصورة.

size (*Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]*، *kwargs*) : يصف الأبعاد القصوى للمدخلات إلى النموذج.

default_to_square (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان size عددًا صحيحًا.

resample (*Annotated[Union[int, PILImageResampling, NoneType], None]*، *kwargs*، القيمة الافتراضية *3*) : مرشح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد *PILImageResampling*. لا يؤثر إلا إذا كانت قيمة *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.5, 0.5, 0.5]*) : متوسط الصورة المستخدم للتطبيع. لا يؤثر إلا إذا تم تعيين *do_normalize* إلى *True*.

image_std (*Union[float, list[float], tuple[float, ...]]*، *kwargs*، *اختياري*، القيمة الافتراضية *[0.5, 0.5, 0.5]*) : الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيين *do_normalize* إلى *True*.

do_center_crop (*bool*، *kwargs*، *اختياري*) : ما إذا كان يجب قص الصورة من المنتصف.

do_pad (*bool*، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة حشوة (padding) إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة (batch) أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

crop_size (*Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]*، *kwargs*) : حجم الصورة الناتجة بعد تطبيق *center_crop*.

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*: صورة بتنسيق (height, width, num_channels). - *"none"* أو *ChannelDimension.NONE*: صورة بتنسيق (height, width).

device (*Annotated[Union[str, torch.device, NoneType], None]*, *kwargs*) : الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.

do_sample_frames (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب أخذ عينات من الإطارات من الفيديو قبل المعالجة أم معالجة الفيديو بالكامل.

video_metadata (*Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None]*, *kwargs*) : بيانات وصفية للفيديو تتضمن معلومات عن المدة الإجمالية، ومعدل الإطارات في الثانية (fps)، وإجمالي عدد الإطارات. ستُستخدم هذه البيانات لاختيار إطارات من الفيديو أو لحساب الطوابع الزمنية. لا تقم بتمرير أي بيانات وصفية ما لم تكن تحاول فك ترميز الفيديو يدويًا قبل المعالجة

fps (*Annotated[int | float | None, None]*، *kwargs*) : الإطارات المستهدفة التي يجب أخذ عينات منها في الثانية الواحدة عندما يكون *do_sample_frames=True*.

num_frames (*Annotated[int | None, None]*، *kwargs*) : الحد الأقصى لعدد الإطارات التي يجب أخذها كعينة عند تعيين *do_sample_frames=True*.

return_metadata (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *False*) : ما إذا كان يجب إرجاع بيانات وصفية للفيديو أم لا. بيانات الوصفية للفيديو هي كائن يحتوي على معلومات حول مدة الفيديو، ومعدل الإطارات، وخلفية فك الترميز، وما إلى ذلك.

return_tensors (*Annotated[str | ~utils.generic.TensorType | None, None]*, *kwargs*) : إذا تم ضبطه، فسيُرجع تينسورات (tensors) لإطار عمل (framework) محدد. القيم المقبولة هي: - *'pt'*: يُرجع كائنات *torch.Tensor* من PyTorch. - *'np'*: يُرجع كائنات *np.ndarray* من NumPy.

max_num_frames (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 128) : الحد الأقصى لعدد الإطارات الرئيسية التي يتم أخذ عينات منها لكل فيديو.

stack_frames (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 1) : عدد الإطارات الفرعية لكل ثانية تُرصّ. تعطيل الرصّ عند `1`.

max_slice_nums (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 9) : الحد الأقصى لعدد الشرائح عند تقسيم صورة عالية الدقة.

scale_resolution (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 448) : الدقة المستهدفة للشرائح الفردية.

patch_size (*int*، *kwargs*، *اختياري*، القيمة الافتراضية 14) : حجم البقعة المكانية لمشفّر الرؤية.

slice_mode (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان سيتم تقسيم الصور إلى شرائح متعددة للحصول على دقة أعلى.

downsample_mode (*str*، *kwargs*، *اختياري*، القيمة الافتراضية *"4x"*) : وضع تقليل حجم الرموز البصرية. يحافظ *"4x"* على أربعة أضعاف عدد الرموز مقارنةً بـ *"16x"*، الذي يطبّق الدمج الكامل.

use_image_id (*bool*، *kwargs*، *اختياري*، القيمة الافتراضية *True*) : ما إذا كان يجب إضافة وسم معرّف صورة (`<image_id>N</image_id>`) قبل كل موضع محجوز للصورة. يُستهلك بواسطة المعالج (Processor) لتوليد المواضع المحجوزة، وليس بواسطة خط معالجة الصور نفسه.

- ****kwargs** ([*ProcessingKwargs*], *اختياري*) : خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

ينشئ معالج فيديو MiniCPMOcrVideoProcessor.

#### preprocess[[transformers.MiniCPMOcrVideoProcessor.preprocess]]

```python
preprocess(videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]]], **kwargs: *<class 'transformers.processing_utils.VideosKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/minicpm_ocr/video_processing_minicpm_ocr.py#L292)

**المعاملات:**

videos (`Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]`) : الفيديو الذي سيتم معالجته مسبقًا. يتوقع إدخال فيديو واحد أو دفعة من الفيديوهات بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر فيديوهات بقيم بكسل بين 0 و1، فاضبط `do_rescale=False`.

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*، *اختياري*) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان الحجم عددًا صحيحًا.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum `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_center_crop (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب قص الصورة من المنتصف.

do_pad (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة حشوة إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*) : حجم الصورة الناتجة بعد تطبيق `center_crop`.

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`: صورة بتنسيق (height, width, num_channels). - `"none"` أو `ChannelDimension.NONE`: صورة بتنسيق (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم ضبطه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.

do_sample_frames (`bool`، *kwargs*، *اختياري*) : ما إذا كان سيتم أخذ عينات من الإطارات من الفيديو قبل المعالجة أم معالجة الفيديو بالكامل.

video_metadata (`Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None]`, *kwargs*) : بيانات وصفية للفيديو تتضمن معلومات عن المدة الإجمالية، ومعدل الإطارات في الثانية (fps)، وإجمالي عدد الإطارات. تُستخدم هذه البيانات لاختيار إطارات من الفيديو أو لحساب الطوابع الزمنية. لا تقم بتمرير أي بيانات وصفية إلا إذا كنت تحاول فك ترميز الفيديو يدوياً قبل المعالجة.

fps (`Annotated[int | float | None, None]`، *kwargs*) : عدد الإطارات المستهدفة التي يجب أخذ عينات منها في الثانية الواحدة عندما يكون `do_sample_frames=True`.

num_frames (`Annotated[int | None, None]`، *kwargs*) : الحد الأقصى لعدد الإطارات التي يجب أخذها كعينة عند تعيين `do_sample_frames=True`.

return_metadata (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إرجاع بيانات وصفية للفيديو أم لا. بيانات الوصفية للفيديو هي كائن يحتوي على معلومات حول مدة الفيديو، ومعدل الإطارات، وخلفية فك الترميز، وما إلى ذلك.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : تُرجع توتنرات مكدّسة إذا كان الإعداد `'pt'`، وإلا تُرجع قائمة من التوتنرات.

**يعيد:** `~feature_extraction_utils.BatchFeature`

- **data** (`dict`، *اختياري*) -- قاموس من القوائم/المصفوفات/الموترات التي تُعاد بواسطة طرائق __call__/pad ('input_values'، 'attention_mask'، وما إلى ذلك).
- **tensor_type** (`Union[None, str, TensorType]`، *اختياري*) -- يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
- **skip_tensor_conversion** (`list[str]` أو `set[str]`، *اختياري*) -- قائمة أو مجموعة من المفاتيح التي يجب ألا يتم تحويلها إلى متجهات، حتى عند تحديد `tensor_type`.

