# PP-OCRv5_server_rec

## Обзор

**PP-OCRv5_server_rec** — это специализированная легковесная модель для распознавания текста, ориентированная на эффективное распознавание и понимание текстовых элементов в многоязычных документах и естественных сценах.

## Архитектура модели

PP-OCRv5_server_rec — одна из моделей серии PP-OCRv5_rec, последнего поколения моделей распознавания текста, разработанных командой PaddleOCR. Она предназначена для эффективного и точного распознавания упрощённого китайского, традиционного китайского, английского и японского языков, а также сложных сценариев, таких как рукописный текст, вертикальная запись, пиньинь и редкие иероглифы, с использованием одной модели. Сохраняя качество распознавания, модель обеспечивает баланс между скоростью инференса и устойчивостью, предоставляя эффективную и точную техническую поддержку для понимания документов в различных сценариях.

## Использование

### Вывод для одного входа

Приведённый ниже пример показывает, как обнаруживать текст с помощью PP-OCRv5_server_rec, используя [AutoModel](/docs/transformers/main/ru/model_doc/auto#transformers.AutoModel).

```python
import requests
from PIL import Image

from transformers import AutoImageProcessor, AutoModelForTextRecognition

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

image = Image.open(requests.get("https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/paddle_general_ocr_rec_001.png", stream=True).raw).convert("RGB")
inputs = image_processor(images=image, return_tensors="pt").to(model.device)
outputs = model(**inputs)

results = image_processor.post_process_text_recognition(outputs)

for result in results:
    print(result)
```

### Пакетный вывод

Вот как это можно сделать с помощью PP-OCRv5_server_rec, используя [AutoModel](/docs/transformers/main/ru/model_doc/auto#transformers.AutoModel):

```python
import requests
from PIL import Image

from transformers import AutoImageProcessor, AutoModelForTextRecognition

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

image = Image.open(requests.get("https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/paddle_general_ocr_rec_001.png", stream=True).raw).convert("RGB")
inputs = image_processor(images=[image, image], return_tensors="pt").to(model.device)
outputs = model(**inputs)

results = image_processor.post_process_text_recognition(outputs)
for result in results:
    print(result)
```

## PPOCRV5ServerRecForTextRecognition[[transformers.PPOCRV5ServerRecForTextRecognition]]

#### transformers.PPOCRV5ServerRecForTextRecognition[[transformers.PPOCRV5ServerRecForTextRecognition]]

```python
transformers.PPOCRV5ServerRecForTextRecognition(config: PPOCRV5ServerRecConfig)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_server_rec/modeling_pp_ocrv5_server_rec.py#L357)

**Параметры:**

config ([PPOCRV5ServerRecConfig](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecConfig)) : Класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

Модель PPOCRV5ServerRec для задач распознавания текста.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.PPOCRV5ServerRecForTextRecognition.forward]]

```python
forward(pixel_values: Tensor, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_server_rec/modeling_pp_ocrv5_server_rec.py#L367)

**Параметры:**

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [PPOCRV5ServerRecImageProcessor](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecImageProcessor). Подробности см. в [PPOCRV5ServerRecImageProcessor.__call__()](/docs/transformers/main/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) (`processor_class` использует [PPOCRV5ServerRecImageProcessor](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecImageProcessor) для обработки изображений).

**Возвращает:** `BaseModelOutputWithNoAttention` или `tuple(torch.Tensor)`

`BaseModelOutputWithNoAttention` или кортеж `torch.Tensor` (если передано `return_dict=False` или когда `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([PPOCRV5ServerRecConfig](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecConfig)) и входных данных.

Метод forward класса [PPOCRV5ServerRecForTextRecognition](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecForTextRecognition) переопределяет специальный метод `__call__`.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр `Module`, а не эту функцию, поскольку первый выполняет шаги предварительной и постобработки, тогда как второй молча их игнорирует.

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, num_channels, height, width)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, num_channels, height, width)`.

  Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.

## PPOCRV5ServerRecConfig[[transformers.PPOCRV5ServerRecConfig]]

#### transformers.PPOCRV5ServerRecConfig[[transformers.PPOCRV5ServerRecConfig]]

```python
transformers.PPOCRV5ServerRecConfig(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_act: str = 'silu', backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, hidden_size: int = 120, mlp_ratio: float = 2.0, depth: int = 2, head_out_channels: int = 18385, conv_kernel_size: list | None = None, qkv_bias: bool = True, num_attention_heads: int = 8, attention_dropout: float | int = 0.0, layer_norm_eps: float = 1e-06)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_server_rec/configuration_pp_ocrv5_server_rec.py#L30)

**Параметры:**

hidden_act (`str`, *необязательный*, по умолчанию `silu`) : Нелинейная функция активации (функция или строка) в декодере. Например, `"gelu"`, `"relu"`, `"silu"` и т. д.

backbone_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *необязательный*) : Конфигурация базовой модели.

hidden_size (`int`, *optional*, по умолчанию `120`) : Размерность скрытых представлений.

mlp_ratio (`float`, *необязательный*, по умолчанию `2.0`) : Соотношение скрытого размера MLP к размеру эмбеддинга.

depth (`int`, *необязательный*, по умолчанию `2`) : Количество слоев Transformer в визуальном энкодере.

head_out_channels (`int`, *optional*, по умолчанию 18385) : Количество выходных каналов в PPOCRV5ServerRecHead, отвечающих за финальную классификацию.

conv_kernel_size (`list`, *необязательный*) : Размер свёрточного ядра.

qkv_bias (`bool`, *необязательный*, по умолчанию `True`) : Добавлять ли смещение (bias) к запросам, ключам и значениям.

num_attention_heads (`int`, *необязательный*, по умолчанию `8`) : Количество головок внимания для каждого слоя внимания в декодере Transformer.

attention_dropout (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Коэффициент dropout для вероятностей внимания.

layer_norm_eps (`float`, *необязательный*, по умолчанию `1e-06`) : Значение epsilon, используемое слоями нормализации.

Это класс конфигурации для хранения настроек модели PPOCRV5ServerRecModel. Он используется для создания модели Pp Ocrv5 Server Rec в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [PaddlePaddle/PP-OCRv5_server_rec_safetensors](https://huggingface.co/PaddlePaddle/PP-OCRv5_server_rec_safetensors)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig).

## PPOCRV5ServerRecModel[[transformers.PPOCRV5ServerRecModel]]

#### transformers.PPOCRV5ServerRecModel[[transformers.PPOCRV5ServerRecModel]]

```python
transformers.PPOCRV5ServerRecModel(config: PPOCRV5ServerRecConfig)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_server_rec/modeling_pp_ocrv5_server_rec.py#L320)

**Параметры:**

config ([PPOCRV5ServerRecConfig](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecConfig)) : Класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

Модель PPOCRV5ServerRec, состоящая из сетей Backbone и Head.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.PPOCRV5ServerRecModel.forward]]

```python
forward(pixel_values: Tensor, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_server_rec/modeling_pp_ocrv5_server_rec.py#L328)

**Параметры:**

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [PPOCRV5ServerRecImageProcessor](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecImageProcessor). Подробности см. в [PPOCRV5ServerRecImageProcessor.__call__()](/docs/transformers/main/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) (`processor_class` использует [PPOCRV5ServerRecImageProcessor](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecImageProcessor) для обработки изображений).

**Возвращает:** `BaseModelOutputWithNoAttention` или `tuple(torch.Tensor)`

`BaseModelOutputWithNoAttention` или кортеж `torch.Tensor` (если передано `return_dict=False` или когда `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([PPOCRV5ServerRecConfig](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecConfig)) и входных данных.

Метод forward модели [PPOCRV5ServerRecModel](/docs/transformers/main/ru/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecModel) переопределяет специальный метод `__call__`.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр `Module`, а не эту функцию, поскольку первый выполняет шаги предварительной и постобработки, тогда как второй молча их игнорирует.

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, num_channels, height, width)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, num_channels, height, width)`.

  Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.

## PPOCRV5ServerRecEncoderWithSVTR[[transformers.PPOCRV5ServerRecEncoderWithSVTR]]

#### transformers.PPOCRV5ServerRecEncoderWithSVTR[[transformers.PPOCRV5ServerRecEncoderWithSVTR]]

```python
transformers.PPOCRV5ServerRecEncoderWithSVTR(config: PPOCRV5ServerRecConfig)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_server_rec/modeling_pp_ocrv5_server_rec.py#L258)

SVTR: Распознавание текста на изображениях с использованием одной визуальной модели https://www.paddleocr.ai/v2.10.0/en/algorithm/text_recognition/algorithm_rec_svtr.html

## PPOCRV5MobileRecEncoderWithSVTR[[transformers.PPOCRV5MobileRecEncoderWithSVTR]]

#### transformers.PPOCRV5MobileRecEncoderWithSVTR[[transformers.PPOCRV5MobileRecEncoderWithSVTR]]

```python
transformers.PPOCRV5MobileRecEncoderWithSVTR(config: PPOCRV5MobileRecConfig)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_mobile_rec/modeling_pp_ocrv5_mobile_rec.py#L257)

SVTR: Распознавание текста на изображениях с использованием одной визуальной модели https://www.paddleocr.ai/v2.10.0/en/algorithm/text_recognition/algorithm_rec_svtr.html

## PPOCRV5ServerRecImageProcessor[[transformers.PPOCRV5ServerRecImageProcessor]]

#### transformers.PPOCRV5ServerRecImageProcessor[[transformers.PPOCRV5ServerRecImageProcessor]]

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

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_server_rec/image_processing_pp_ocrv5_server_rec.py#L50)

**Параметры:**

do_convert_rgb (`bool`, *kwargs*, *необязательный*, по умолчанию `True`) : Преобразовать ли изображение в RGB.

do_resize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли изменять размер изображения.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, по умолчанию `{'height' : 48, 'width': 320}`): Описывает максимальные размеры входных данных для модели.

default_to_square (`bool`, *kwargs*, *optional*, по умолчанию `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*, по умолчанию `2`) : Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления `PILImageResampling`. Действует только если `do_resize` установлено в `True`.

do_rescale (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли масштабировать изображение.

rescale_factor (`float`, *kwargs*, *optional*, по умолчанию `0.00392156862745098`) : Коэффициент масштабирования для изменения масштаба изображения, если `do_rescale` установлен в `True`.

do_normalize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли нормализовать изображение.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*, по умолчанию `[0.5, 0.5, 0.5]`) : Средние значения изображения для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*, по умолчанию `[0.5, 0.5, 0.5]`) : Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

do_pad (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли дополнять изображение. Дополнение выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия дополнения зависит от модели.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, по умолчанию `{'height' : 48, 'width': 320}`): размер в формате `{"height": int, "width" int}`, до которого следует дополнить изображения. Должен быть больше любого размера изображения, переданного для предобработки. Если `pad_size` не указан, изображения будут дополнены до наибольшей высоты и ширины в батче. Применяется только при `do_pad=True.`

do_center_crop (`bool`, *kwargs*, *optional*) : Центрировать ли изображение при обрезке.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *необязательный*) : Поддерживается только `ChannelDimension.FIRST`. Добавлено для совместимости с медленными процессорами.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *optional*) : Формат размерности каналов для входного изображения. Если не задано, формат размерности каналов определяется по входному изображению. Может быть одним из: - `"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*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *optional*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора. Если установлено значение `'pt'`, возвращает стопку тензоров, иначе — список тензоров.

disable_grouping (`bool`, *kwargs*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *optional*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора. Если установлено значение `'pt'`, возвращает стопку тензоров, иначе — список тензоров.

disable_grouping (`bool`, *kwargs*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *optional*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора. Если установлено значение `'pt'`, возвращает стопку тензоров, иначе — список тензоров.

disable_grouping (`bool`, *kwargs*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *optional*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора. Если установлено значение `'pt'`, возвращает стопку тензоров, иначе — список тензоров.

disable_grouping (`bool`, *kwargs*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *optional*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора. Если установлено значение `'pt'`, возвращает стопку тензоров, иначе — список тензоров.

disable_grouping (`bool`, *kwargs*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *необязательный*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.

Возвращает стекированные тензоры, если установлено значение `'pt'`, иначе возвращает список тензоров. --

Создает процессор изображений PPOCRV5ServerRecImageProcessor.

disable_grouping (`bool`, *kwargs*, *optional*): Определяет, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробности здесь: https://github.com/huggingface/transformers/pull/38157 image_seq_length (`int`, *kwargs*, *optional*): Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.

#### get_target_size[[transformers.PPOCRV5ServerRecImageProcessor.get_target_size]]

```python
get_target_size(shape_list: list)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_server_rec/image_processing_pp_ocrv5_server_rec.py#L117)

Вычислите ширину и высоту по самому широкому изображению в батче.

#### post_process_text_recognition[[transformers.PPOCRV5ServerRecImageProcessor.post_process_text_recognition]]

```python
post_process_text_recognition(predictions)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_ocrv5_server_rec/image_processing_pp_ocrv5_server_rec.py#L144)

**Параметры:**

predictions : Выходные данные модели с атрибутом `logits` (карты вероятностей формы `(batch_size, height, vocab_size)`).

**Возвращаемое значение:**

Список словарей, где каждый словарь соответствует изображению в батче. Каждый словарь содержит:
- "text" (str): декодированная строка текста.
- "score" (float): средняя оценка уверенности для символов в декодированном тексте.

Выполняет постобработку сырых логитов модели для декодирования распознанного текста и оценки его достоверности.

