Transformers documentation
PP-OCRv6_medium_det
이 모델은 2026-05-19에 Hugging Face Transformers에 기여되었습니다.
PP-OCRv6_medium_det
개요
PP-OCRv6_medium_det는 PaddleOCR 팀이 개발한 PP-OCRv6 검출 시리즈 중 가장 큰 모델입니다. 이 모델은 LCNetV4를 backbone으로, RepLKFPN을 feature pyramid neck으로 사용하여, 여러 언어의 손글씨, 인쇄체, 회전된, 곡선형, 예술적 텍스트를 포함한 다양한 시나리오에서 정확한 텍스트 위치 파악을 제공합니다. 모델에는 15.5M개의 파라미터가 포함되어 있습니다.
모델 아키텍처
사용
단일 입력 추론
아래 예제는 AutoModel을 사용하여 PP-OCRv6_medium_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_medium_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)배치 추론
PP-OCRv6_medium_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_medium_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)PPOCRV6MediumDetForObjectDetection
클래스 transformers.PPOCRV6MediumDetForObjectDetection
< source >( config: PPOCRV6MediumDetConfig )
매개변수
- config (PPOCRV6MediumDetConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
텍스트 감지 작업을 위한 PPOCRV6MediumDet 모델.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
PPOCRV6MediumDetConfig
클래스 transformers.PPOCRV6MediumDetConfig
< 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 = Falselabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneid2label: dict[int, str] | dict[str, str] | None = Noneinterpolate_mode: str = 'nearest'backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneneck_out_channels: int = 256reduce_factor: int = 2intraclass_block_number: int = 4intraclass_block_config: dict | None = Nonescale_factor: int = 2scale_factor_list: list | None = Nonekernel_list: list | None = None )
매개변수
- id2label (
Union[dict[int, str], dict[str, str]], 선택) — 인덱스(예: 예측 인덱스 또는 대상 인덱스)에서 라벨로 매핑하는 맵입니다. - interpolate_mode (
str, 선택 사항, 기본값"nearest") — neck 네트워크에서 feature map을 업샘플링 또는 다운샘플링할 때 사용하는 보간 모드입니다. - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], 선택) — backbone 모델의 설정입니다. - neck_out_channels (
int, 선택 사항, 기본값 256) — neck 네트워크의 출력 채널 수입니다. 특징 융합 및 정제에 책임이 있습니다. - reduce_factor (
int, 선택 사항, 기본값 2) — neck 블록에서 성능과 복잡도를 균형 있게 조절하기 위해 사용되는 채널 축소 계수입니다. - intraclass_block_number (
int, 선택 사항, 기본값 4) — 기능 표현을 강화하는 데 사용되는 Intra-Class Block 모듈의 수입니다. - intraclass_block_config (
dict, 선택, 기본값None) — 기능 표현을 강화하기 위해 사용되는 Intra-Class Block 모듈(있는 경우)의 설정입니다. - scale_factor (
int, 선택 사항, 기본값 2) — 피처 맵의 공간 해상도 조정 시 사용되는 스케일링 계수입니다. - scale_factor_list (
list[int], 선택 사항, 기본값None) — 피처 맵의 공간 해상도 조정에 사용되는 스케일링 계수의 목록입니다. - kernel_list (
list[int], 선택 사항, 기본값[3, 2, 2]) — 멀티 스케일 특징 추출을 위한 헤드 네트워크의 합성곱 계층에 사용할 커널 크기 목록입니다.
이것은 PPOCRV6MediumDetModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Pp Ocrv6 Medium Det 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 PaddlePaddle/PP-OCRv6_medium_det_safetensors와 유사한 설정이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
PPOCRV6MediumDetModel
class transformers.PPOCRV6MediumDetModel
< source >( config: PPOCRV6MediumDetConfig )
매개변수
- config (PPOCRV6MediumDetConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
head가 없는 Pp Ocrv6 Medium Det Model의 원시 hidden-states 출력
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithNoAttention or tuple(torch.Tensor)
매개변수
- pixel_values (
torch.Tensor, shape(batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 PPOCRV5ServerDetImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 PPOCRV5ServerDetImageProcessor.call()를 참조하세요 (processor_class는 이미지 처리에 PPOCRV5ServerDetImageProcessor를 사용합니다).
반환값
BaseModelOutputWithNoAttention 또는 tuple(torch.Tensor)
BaseModelOutputWithNoAttention 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(PPOCRV6MediumDetConfig)과 입력에 따라 다양한 요소를 포함합니다.
PPOCRV6MediumDetModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.Tensor, shape(batch_size, num_channels, height, width)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 레이어의 출력에 대한 것 1개)로, 모양은(batch_size, num_channels, height, width)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.