Transformers documentation
PP-OCRv6_small_det
このモデルは2026年5月19日に Hugging Face Transformers に貢献されました。
PP-OCRv6_small_det
概要
PP-OCRv6_small_det は、PaddleOCR チームが開発した PP-OCRv6 検出シリーズの小型モデルです。バックボーンに LCNetV4、特徴ピラミッドネックに RepLKFPN を採用しており、手書き、印刷、回転、曲線、装飾的なテキストなど、多様なシナリオにおける正確なテキスト位置特定を実現します。また、多言語に対応しています。モデルのパラメータ数は 248 万です。
モデルアーキテクチャ
使用方法
単一入力推論
以下の例では、AutoModelを使用してPP-OCRv6_small_detでテキストを検出する方法を示しています。
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 でこれを行う方法を示します。
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
< source >( config: PPOCRV6SmallDetConfig )
パラメータ
- config (PPOCRV6SmallDetConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
テキスト認識タスク用のPPOCR6SmallRecモデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
PPOCRV6SmallDetConfig
class transformers.PPOCRV6SmallDetConfig
< source >( 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) — neck ネットワークからの出力チャネル数です。neck ネットワークは、特徴量を head ネットワークに渡す前に、特徴量の融合と洗練を行う役割を担います。 - 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
< source >( config: PPOCRV6SmallDetConfig )
パラメータ
- config (PPOCRV6SmallDetConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
特定のヘッドを付加せずに生のhidden-statesを出力する、素のPp Ocrv6 Small Det Model。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( pixel_values: FloatTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithNoAttention or tuple(torch.FloatTensor)
パラメータ
- pixel_values (
torch.FloatTensor、shape(batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は PPOCRV5ServerDetImageProcessor を使用して取得できます。詳細は PPOCRV5ServerDetImageProcessor.call() を参照してください(processor_classは画像の処理に PPOCRV5ServerDetImageProcessor を使用します)。
戻り値
BaseModelOutputWithNoAttention または tuple(torch.FloatTensor)
BaseModelOutputWithNoAttention または、return_dict=False が渡された場合、または config.return_dict=False の場合、torch.FloatTensor のタプル。設定(PPOCRV6SmallDetConfig)や入力に応じて、さまざまな要素で構成されます。
PPOCRV6SmallDetModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, num_channels, height, width)) — モデルの最終層の出力における隠れ状態のシーケンス。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, num_channels, height, width)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。