Transformers documentation

PP-OCRv6_small_det

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

and get access to the augmented documentation experience

to get started

该模型于 2026-05-19 贡献至 Hugging Face Transformers。

PP-OCRv6_small_det

PyTorch

概述

PP-OCRv6_small_det 是 PaddleOCR 团队开发的 PP-OCRv6 检测系列中的小型模型。它采用 LCNetV4 作为骨干网络,RepLKFPN 作为特征金字塔颈部,能够在多种场景下提供精确的文本定位,包括手写、印刷、旋转、弯曲以及多语言的艺术字。该模型包含 248 万个参数。

模型架构

用法

单输入推理

以下示例演示了如何使用 AutoModel 通过 PP-OCRv6_small_det 检测文本。

AutoModel
from io import BytesIO

from huggingface_hub.utils import httpx
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForObjectDetection
from transformers.image_utils import load_image

model_path = "PaddlePaddle/PP-OCRv6_small_det_safetensors" # or "PaddlePaddle/PP-OCRv6_tiny_det_safetensors"
model = AutoModelForObjectDetection.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)

image_url = "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/paddle_general_ocr_001.png"
image = load_image(image_url)
inputs = image_processor(images=image, return_tensors="pt").to(model.device)
outputs = model(**inputs)

results = image_processor.post_process_object_detection(
    outputs, 
    target_sizes=inputs["target_sizes"],
    threshold=0.2,
    box_threshold=0.45,
    max_candidates=3000,
    unclip_ratio=1.4,
)

for result in results:
    print(result)

批量推理

以下是使用 AutoModel 和 PP-OCRv6_small_det 实现此操作的方法:

AutoModel
from io import BytesIO

from huggingface_hub.utils import httpx
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForObjectDetection
from transformers.image_utils import load_image

model_path = "PaddlePaddle/PP-OCRv6_small_det_safetensors" # or "PaddlePaddle/PP-OCRv6_tiny_det_safetensors"
model = AutoModelForObjectDetection.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)

image_url = "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/paddle_general_ocr_001.png"
image = load_image(image_url)
inputs = image_processor(images=[image, image], return_tensors="pt").to(model.device)
outputs = model(**inputs)

results = image_processor.post_process_object_detection(
    outputs, 
    target_sizes=inputs["target_sizes"],
    threshold=0.2,
    box_threshold=0.45,
    max_candidates=3000,
    unclip_ratio=1.4,
)

for result in results:
    print(result)

PPOCRV6SmallDetForObjectDetection

class transformers.PPOCRV6SmallDetForObjectDetection

< >

( config: PPOCRV6SmallDetConfig )

参数

  • config (PPOCRV6SmallDetConfig) — 模型的配置类,包含模型的所有参数。通过配置文件进行初始化时,不会加载与模型关联的权重,仅加载配置。请查看 from_pretrained() 方法以加载模型权重。

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

该模型继承自 PreTrainedModel。请查阅父类文档,了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头等)。

该模型也是 PyTorch torch.nn.Module 的子类。 请将其作为常规的 PyTorch Module 使用,有关通用用法和行为的所有事项,请参阅 PyTorch 文档。

PPOCRV6SmallDetConfig

class transformers.PPOCRV6SmallDetConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonereduction: int = 4neck_out_channels: int = 96interpolate_mode: str = 'nearest'kernel_list: list[int] | tuple[int, ...] = (3, 2, 2)layer_list_out_channels: list[int] | tuple[int, ...] = (12, 18, 42, 360)dilated_kernel_size: int = 7 )

参数

  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig],可选) — 主干模型的配置。
  • reduction (int,可选,默认为 4) — 用于特征通道维度的缩减因子,在保持特征表示能力的同时,减少模型参数数量和计算复杂度。
  • neck_out_channels (int,可选,默认为 96) — 颈部网络的输出通道数。该网络负责在将特征传递到头部网络之前进行特征融合与细化。
  • interpolate_mode (str,可选,默认为 "nearest") — 在 neck 网络中对特征图进行上采样或下采样时使用的插值模式。支持的模式包括 "nearest"(最近邻插值)和 "bilinear"(双线性插值)。
  • kernel_list (List[int],可选,默认为 [3, 2, 2]) — 头网络中卷积层的核大小列表,用于多尺度特征提取,以检测不同大小的文本区域。
  • layer_list_out_channels (List[int],可选,默认为 [12, 18, 42, 360]) — 骨干网络各阶段的输出通道数列表,用于配置颈部网络中 RSE 层的输入通道,以实现多尺度特征融合。
  • dilated_kernel_size (int,可选,默认为 7) — 输入卷积路径中膨胀卷积层的核大小,用于捕获特征图中的长程依赖关系。

这是用于存储 PPOCRV6SmallDetModel 配置的类。它根据指定的参数实例化 Pp Ocrv6 Small Det 模型,并定义模型架构。使用默认值实例化配置将生成与 PaddlePaddle/PP-OCRv6_small_det_safetensors 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请参阅 PreTrainedConfig 的文档。

PPOCRV6SmallDetModel

class transformers.PPOCRV6SmallDetModel

< >

( config: PPOCRV6SmallDetConfig )

参数

  • config (PPOCRV6SmallDetConfig) — 模型的配置类,包含模型的所有参数。通过配置文件进行初始化时,不会加载与模型关联的权重,仅加载配置。请查看 from_pretrained() 方法以加载模型权重。

未添加任何特定头部的裸 Pp Ocrv6 Small Det 模型,直接输出原始隐藏状态。

该模型继承自 PreTrainedModel。请查阅父类文档,了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头等)。

该模型也是 PyTorch torch.nn.Module 的子类。 请将其作为常规的 PyTorch Module 使用,有关通用用法和行为的所有事项,请参阅 PyTorch 文档。

forward

< >

( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithNoAttention or tuple(torch.Tensor)

参数

返回值

BaseModelOutputWithNoAttention 或 tuple(torch.Tensor)

BaseModelOutputWithNoAttention 或 torch.Tensor 元组(如果传入 return_dict=False 或 config.return_dict=False),包含根据配置(PPOCRV6SmallDetConfig)和输入而定的各种元素。

PPOCRV6SmallDetModel 的 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)。

    模型在每一层输出处的隐藏状态,以及可选的初始嵌入输出。

Update on GitHub