Transformers documentation

PP-OCRv6_small_det

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