# PP-OCRv5_server_rec

## 概述

**PP-OCRv5_server_rec** 是一款专为文本识别打造的轻量级模型，专注于在多语言文档和自然场景中对文本元素进行高效识别与理解。

## 模型架构

PP-OCRv5_server_rec 是 PP-OCRv5_rec 系列中的一员，该系列是 PaddleOCR 团队开发的最新一代文本识别模型。它旨在通过单一模型高效且准确地支持简体中文、繁体中文、英文、日文，以及手写、竖排文本、拼音和生僻字等复杂文本场景的识别。在保持识别性能的同时，它还兼顾了推理速度和模型鲁棒性，为各种场景下的文档理解提供高效且精准的技术支持。

## 用法

### 单输入推理

以下示例演示了如何使用 [AutoModel](/docs/transformers/v5.23.0/zh/model_doc/auto#transformers.AutoModel) 和 PP-OCRv5_server_rec 来检测文本。

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

### 批量推理

以下是使用 [AutoModel](/docs/transformers/v5.23.0/zh/model_doc/auto#transformers.AutoModel) 和 PP-OCRv5_server_rec 实现此操作的方法：

```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/v5.23.0/src/transformers/models/pp_ocrv5_server_rec/modeling_pp_ocrv5_server_rec.py#L357)

**参数：**

config ([PPOCRV5ServerRecConfig](/docs/transformers/v5.23.0/zh/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecConfig))：模型配置类，包含模型的所有参数。通过配置文件进行初始化并不会加载与模型关联的权重，仅加载配置。请查看 [from_pretrained()](/docs/transformers/v5.23.0/zh/main_classes/model#transformers.PreTrainedModel.from_pretrained) 方法以加载模型权重。

用于文本识别任务的 PPOCRV5ServerRec 模型。

该模型继承自 [PreTrainedModel](/docs/transformers/v5.23.0/zh/main_classes/model#transformers.PreTrainedModel)。请查阅父类文档，了解该库为所有模型实现的通用方法（例如下载或保存、调整输入嵌入大小、剪枝头等）。

该模型也是 PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) 的子类。请将其作为常规的 PyTorch Module 使用，有关通用用法和行为的所有事项，请参阅 PyTorch 文档。

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

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

[来源](https://github.com/huggingface/transformers/blob/v5.23.0/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/v5.23.0/zh/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecImageProcessor) 获取像素值。有关详细信息，请参阅 [PPOCRV5ServerRecImageProcessor.__call__()](/docs/transformers/v5.23.0/zh/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__)（`processor_class` 使用 [PPOCRV5ServerRecImageProcessor](/docs/transformers/v5.23.0/zh/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/v5.23.0/zh/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecConfig)）和输入而定的各种元素。

[PPOCRV5ServerRecForTextRecognition](/docs/transformers/v5.23.0/zh/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecForTextRecognition) 的 forward 方法重写了 `__call__` 特殊方法。

尽管前向传播的实现需要在此函数中定义，但之后应调用 `Module` 实例，而不是直接调用此函数，因为前者会负责执行预处理和后处理步骤，而后者会静默地忽略这些步骤。

- **last_hidden_state**（形状为 `(batch_size, num_channels, height, width)` 的 `torch.Tensor`）-- 模型最后一层输出的隐藏状态序列。
- **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/v5.23.0/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`，*可选*，默认为 `120`)：隐藏表示的维度。

mlp_ratio (`float`, *可选*, 默认为 `2.0`) : MLP 隐藏维度与嵌入维度的比率。

depth (`int`，*可选*，默认为 `2`)：视觉编码器中 Transformer 层的数量。

head_out_channels (`int`, *可选*，默认为 18385) : PPOCRV5ServerRecHead 的输出通道数，负责最终分类。

conv_kernel_size (`list`, *可选*) : 卷积核的大小。

qkv_bias (`bool`，*可选*，默认为 `True`)：是否向查询、键和值添加偏置。

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/v5.23.0/zh/main_classes/configuration#transformers.PreTrainedConfig)，可用于控制模型输出。有关更多信息，请参阅 [PreTrainedConfig](/docs/transformers/v5.23.0/zh/main_classes/configuration#transformers.PreTrainedConfig) 的文档。

## PPOCRV5ServerRecModel[[transformers.PPOCRV5ServerRecModel]]

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

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

[来源](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/pp_ocrv5_server_rec/modeling_pp_ocrv5_server_rec.py#L320)

**参数：**

config ([PPOCRV5ServerRecConfig](/docs/transformers/v5.23.0/zh/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecConfig))：模型配置类，包含模型的所有参数。通过配置文件进行初始化并不会加载与模型关联的权重，仅加载配置。请查看 [from_pretrained()](/docs/transformers/v5.23.0/zh/main_classes/model#transformers.PreTrainedModel.from_pretrained) 方法以加载模型权重。

PPOCRV5ServerRec 模型，由 Backbone 和 Head 网络组成。

该模型继承自 [PreTrainedModel](/docs/transformers/v5.23.0/zh/main_classes/model#transformers.PreTrainedModel)。请查阅父类文档，了解该库为所有模型实现的通用方法（例如下载或保存、调整输入嵌入大小、剪枝头等）。

该模型也是 PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) 的子类。请将其作为常规的 PyTorch Module 使用，有关通用用法和行为的所有事项，请参阅 PyTorch 文档。

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

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

[来源](https://github.com/huggingface/transformers/blob/v5.23.0/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/v5.23.0/zh/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecImageProcessor) 获取像素值。有关详细信息，请参阅 [PPOCRV5ServerRecImageProcessor.__call__()](/docs/transformers/v5.23.0/zh/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__)（`processor_class` 使用 [PPOCRV5ServerRecImageProcessor](/docs/transformers/v5.23.0/zh/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/v5.23.0/zh/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecConfig)）和输入而定的各种元素。

[PPOCRV5ServerRecModel](/docs/transformers/v5.23.0/zh/model_doc/pp_ocrv5_server_rec#transformers.PPOCRV5ServerRecModel) 的 forward 方法重写了 `__call__` 特殊方法。

尽管前向传播的实现需要在此函数中定义，但之后应调用 `Module` 实例，而不是直接调用此函数，因为前者会负责执行预处理和后处理步骤，而后者会静默地忽略这些步骤。

- **last_hidden_state**（形状为 `(batch_size, num_channels, height, width)` 的 `torch.Tensor`）-- 模型最后一层输出的隐藏状态序列。
- **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/v5.23.0/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/v5.23.0/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/v5.23.0/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*, *可选*, 默认为 `True`) : 是否调整图像大小。

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*，默认为 `{'height' : 48, 'width': 320}`)：描述输入到模型的最大尺寸。

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*，默认为 `2`) : 如果调整图像大小，则使用的重采样滤波器。它可以是枚举 `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*, *可选*，默认为 `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*, *可选*) : 是否对图像进行居中裁剪。

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，则当图像位于 CPU 上时设置为 True，否则设置为 False。此选择基于经验观察，详见此处：https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *可选*) : 输入中每张图片所使用的图像标记数量。为向后兼容而添加，但在未来的模型中应将其设置为处理器属性。如果设置为 `'pt'`，则返回堆叠的张量，否则返回张量列表。

disable_grouping (`bool`, *kwargs*, *可选*) : 是否禁用按尺寸对图像进行分组，从而逐个处理图像而非批量处理。如果为 None，则当图像位于 CPU 上时设置为 True，否则设置为 False。此选择基于经验观察，详见此处：https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *可选*) : 输入中每张图片所使用的图像标记数量。为向后兼容而添加，但在未来的模型中应将其设置为处理器属性。如果设置为 `'pt'`，则返回堆叠的张量，否则返回张量列表。

disable_grouping (`bool`, *kwargs*, *可选*) : 是否禁用按尺寸对图像进行分组，从而逐个处理图像而非批量处理。如果为 None，则当图像位于 CPU 上时设置为 True，否则设置为 False。此选择基于经验观察，详见此处：https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *可选*) : 输入中每张图片所使用的图像标记数量。为向后兼容而添加，但在未来的模型中应将其设置为处理器属性。如果设置为 `'pt'`，则返回堆叠的张量，否则返回张量列表。

disable_grouping (`bool`, *kwargs*, *可选*) : 是否禁用按尺寸对图像进行分组，从而逐个处理图像而非批量处理。如果为 None，则当图像位于 CPU 上时设置为 True，否则设置为 False。此选择基于经验观察，详见此处：https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *可选*) : 输入中每张图片所使用的图像标记数量。为向后兼容而添加，但在未来的模型中应将其设置为处理器属性。如果设置为 `'pt'`，则返回堆叠的张量，否则返回张量列表。

disable_grouping (`bool`, *kwargs*, *可选*) : 是否禁用按尺寸对图像进行分组，从而逐个处理图像而非批量处理。如果为 None，则当图像位于 CPU 上时设置为 True，否则设置为 False。此选择基于经验观察，详见此处：https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *可选*) : 输入中每张图片所使用的图像标记数量。为向后兼容而添加，但在未来的模型中应将其设置为处理器属性。如果设置为 `'pt'`，则返回堆叠的张量，否则返回张量列表。

disable_grouping (`bool`, *kwargs*, *可选*) : 是否禁用按尺寸对图像进行分组，从而逐个处理图像而非批量处理。如果为 None，则当图像位于 CPU 上时设置为 True，否则设置为 False。此选择基于经验观察，详见此处：https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *可选*) : 输入中每张图片所使用的图像标记数量。为向后兼容而添加，但在未来的模型中应将其设置为处理器属性。如果设置为 `'pt'`，则返回堆叠的张量，否则返回张量列表。

disable_grouping (`bool`, *kwargs*, *可选*) : 是否禁用按尺寸对图像进行分组，从而逐个处理图像而非批量处理。如果为 None，则当图像位于 CPU 上时设置为 True，否则设置为 False。此选择基于经验观察，详见此处：https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *可选*) : 输入中每张图片所使用的图像 token 数量。为向后兼容而添加，但在未来的模型中，应将其设置为处理器的属性。

如果设置为 `'pt'`，则返回堆叠的张量，否则返回张量列表。 --

构建一个 PPOCRV5ServerRecImageProcessor 图像处理器。

disable_grouping (`bool`, *kwargs*, *可选*)：是否禁用按大小对图像进行分组，以便单独处理图像而不是批量处理。如果为 None，则当图像位于 CPU 上时设置为 True，否则设置为 False。此选择基于经验观察，详情见此处：https://github.com/huggingface/transformers/pull/38157 image_seq_length (`int`, *kwargs*, *可选*)：输入中每张图像要使用的图像标记数量。为向后兼容而添加，但在未来的模型中应将其设置为处理器的属性。

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

```python
get_target_size(shape_list: list[torch.Size])
```

[来源](https://github.com/huggingface/transformers/blob/v5.23.0/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/v5.23.0/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): 解码文本中字符的平均置信度分数。

对原始模型 logits 进行后处理，以解码识别出的文本及其置信度分数。

