Transformers documentation
PP-DocLayoutV4
이 모델은 2026-10-08에 Hugging Face Transformers에 기여되었습니다.
PP-DocLayoutV4
개요
PP-DocLayoutV4는 단일 forward pass에서 각 레이아웃 요소의 종류, 해당 요소를 둘러싼 사각형, 그리고 읽기 순서가 디코딩되는 logits를 예측하는 end-to-end 문서 레이아웃 분석 모델입니다.
모델 아키텍처
PP-DocLayoutV4는 이전 버전의 RT-DETR 구조, 즉 HGNetV2 backbone, AIFI hybrid encoder, deformable decoder를 유지하면서 세 가지를 변경합니다:
- 마스크 대신 사각형. PPDocLayoutV3ForObjectDetection는 쿼리별로 분할 마스크를 예측하고 이를 다각형에 적합시켰습니다. PP-DocLayoutV4는 마스크 분기를 완전히 제거하고, sigmoid 공간에서
[center_x, center_y, dx1, dy1, ..., dx4, dy4]로 인코딩된 4점 사각형을 직접 회귀합니다. 이를 통해 마스크 헤드 비용을 들이지 않고도 기울어지거나 원근 왜곡이 있는 문서를 처리할 수 있으며, stride 4 백본 특징도 더 이상 필요하지 않습니다. - 레이어별 독립 헤드. 각 decoder 레이어는 encoder와 단일 헤드를 공유하는 대신 자체 box 및 classification head를 가집니다.
- 두 개의 읽기 순서 헤드와 하나의 융합 단계. V3의 상대 순서 헤드(비대칭: “
i가j보다 먼저 읽히는가?”)와 함께 후속 헤드(ROOR: “j가i의 바로 다음인가?”)가 있습니다.PPDocLayoutV4S2RFusion는 후속 행렬의 감쇠된 전이 폐합을 상대 순서 로짓에 다시 반영합니다.
읽기 순서는 모델 내부에서 디코딩되지 않습니다. PPDocLayoutV4ForObjectDetection은 원본 relative_order_logits과 successor_order_logits를 반환하고, post_process_object_detection()은 successor 행렬을 방향성 비순환 그래프(DAG)로 임계값 처리하여 사이클을 제거하고, 각 연결 성분을 위상 정렬하며, 상대 순서 투표에 따라 성분을 정렬함으로써 이를 랭크로 변환합니다.
사용
post_process_object_detection()가 반환하는 결과는 이미 읽기 순서대로 정렬되어 있습니다. 각 결과에는 polygon_points가 포함되며, 이는 왼쪽 위, 오른쪽 위, 오른쪽 아래, 왼쪽 아래 순서로 회귀된 모서리를 담은 (num_boxes, 4, 2) 텐서입니다. 또한 각 사각형을 둘러싼 축 정렬 직사각형인 boxes와 각 박스의 0 기반 순위인 order_seq도 함께 제공됩니다. 아래 AutoModel 예제는 order_seq를 직접 출력하고, 나머지 예제는 정렬된 목록 내 1 기반 위치를 출력합니다. 이 위치는 하나의 쿼리가 여러 레이블로 유지되는 경우가 아니라면 order_seq + 1입니다.
Pipeline는 반환된 리스트의 순서대로 읽기 순서를 유지하지만, 각 감지 결과를 점수, 라벨, 정수 바운딩 박스로 평탄화합니다. 사각형과 order_seq를 얻으려면 아래 AutoModel 경로를 사용하세요.
from transformers import pipeline
from transformers.image_utils import load_image
image = load_image("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg")
layout_detector = pipeline("object-detection", model="PaddlePaddle/PP-DocLayoutV4_safetensors")
results = layout_detector(image)
for idx, res in enumerate(results):
print(f"Order {idx + 1}: {res}")from transformers import AutoImageProcessor, AutoModelForObjectDetection
from transformers.image_utils import load_image
model_path = "PaddlePaddle/PP-DocLayoutV4_safetensors"
model = AutoModelForObjectDetection.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)
image = load_image("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg")
inputs = image_processor(images=image, return_tensors="pt").to(device=model.device, dtype=model.dtype)
outputs = model(**inputs)
results = image_processor.post_process_object_detection(outputs, target_sizes=[image.size[::-1]])
for result in results:
for score, label_id, box, quad, rank in zip(
result["scores"], result["labels"], result["boxes"], result["polygon_points"], result["order_seq"]
):
box = [round(i, 2) for i in box.tolist()]
print(f"Order {rank.item()}: {model.config.id2label[label_id.item()]}, score: {score.item():.2f}, box: {box}")
print(f" corners: {[[round(x, 2) for x in point] for point in quad.tolist()]}")배치 추론
이미지 목록과 이미지당 하나의 대상 크기를 전달합니다. 읽기 순서는 이미지별로 디코딩됩니다.
from transformers import AutoImageProcessor, AutoModelForObjectDetection
from transformers.image_utils import load_image
model_path = "PaddlePaddle/PP-DocLayoutV4_safetensors"
model = AutoModelForObjectDetection.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)
image = load_image("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg")
inputs = image_processor(images=[image, image], return_tensors="pt").to(device=model.device, dtype=model.dtype)
outputs = model(**inputs)
results = image_processor.post_process_object_detection(outputs, target_sizes=[image.size[::-1]] * 2)
for result in results:
print("result:")
for idx, (score, label_id, box) in enumerate(zip(result["scores"], result["labels"], result["boxes"])):
box = [round(i, 2) for i in box.tolist()]
print(f"Order {idx + 1}: {model.config.id2label[label_id.item()]}, score: {score.item():.2f}, box: {box}")PPDocLayoutV4ForObjectDetection
클래스 transformers.PPDocLayoutV4ForObjectDetection
< source >( config: PPDocLayoutV4Config )
매개변수
- config (PPDocLayoutV4Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
PP-DocLayoutV4 모델(백본과 인코더-디코더로 구성)은 문서 레이아웃 분석과 같은 작업을 위해 사각형, 클래스 로짓, 읽기 순서 로짓을 출력합니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( pixel_values: FloatTensorpixel_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: typing.Optional[torch.FloatTensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PPDocLayoutV4ForObjectDetectionOutput or tuple(torch.FloatTensor)
매개변수
- pixel_values (
torch.FloatTensor, shape(batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은image_processor_class를 사용하여 얻을 수 있습니다. 자세한 내용은image_processor_class.__call__를 참조하세요 (processor_class는 이미지 처리에image_processor_class를 사용합니다). - pixel_mask (
torch.LongTensor다음 형식의(batch_size, height, width), 선택 사항) — 패딩 픽셀 값에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 실제 픽셀(즉, 마스크되지 않은 픽셀)은 1, 패딩 픽셀(즉, 마스크된 픽셀)은 0. attention 마스크란 무엇일까요?[0, 1]:- 실제 픽셀(즉, 마스크가 적용되지 않은 픽셀)에 대해 1
- 패딩(즉, 마스크 처리된) 픽셀은 0
- encoder_outputs (
torch.FloatTensor, 선택 사항) — (last_hidden_state, 선택 사항:hidden_states, 선택 사항:attentions)의 Tuplelast_hidden_state의 shape은(batch_size, sequence_length, hidden_size)이며, 선택 사항)은 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다. - labels (
list[Dict], 길이(batch_size,), 선택 사항) — 지원되지 않음: PP-DocLayoutV4는 Transformers에서 추론만 지원합니다.
반환값
PPDocLayoutV4ForObjectDetectionOutput 또는 tuple(torch.FloatTensor)
PPDocLayoutV4ForObjectDetectionOutput 또는 torch.FloatTensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(None)과 입력에 따라 다양한 요소를 포함합니다.
PPDocLayoutV4ForObjectDetection의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
logits (
torch.FloatTensor, shape(batch_size, num_queries, config.num_labels)) — 모든 쿼리에 대한 분류 logits(no-object 제외).pred_boxes (
torch.FloatTensor, shape(batch_size, num_queries, config.num_coords)) — 모든 query에 대한 정규화된 사각형(quad)으로,[center_x, center_y, dx1, dy1, ..., dx4, dy4]형태로 인코딩되며 각 꼭짓점 오프셋은+0.5만큼 이동되어 있습니다. 정규화되지 않은 꼭짓점과 이를 감싸는 박스를 가져오려면 post_process_object_detection()를 사용하세요.last_hidden_state (
torch.FloatTensor, shape(batch_size, num_queries, hidden_size)) — 모델의 decoder 마지막 레이어 출력의 hidden-state 시퀀스입니다.intermediate_hidden_states (
torch.FloatTensor, shape(batch_size, config.decoder_layers, num_queries, hidden_size)) — 스택된 중간 hidden states(decoder의 각 레이어 출력).intermediate_reference_points (
torch.FloatTensor, shape(batch_size, config.decoder_layers, num_queries, config.num_coords)) — decoder의 각 레이어에서 정제된 intermediate reference points(정사각형)의 스택.decoder_hidden_states (
tuple[torch.FloatTensor], 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.FloatTensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 디코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
decoder_attentions (
tuple[torch.FloatTensor], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.FloatTensor의 튜플로, 형태는(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 decoder의 attention 가중치입니다.
cross_attentions (
tuple[torch.FloatTensor], 선택,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.FloatTensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.decoder의 cross-attention 레이어에서 attention softmax를 적용한 후, cross-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention 가중치입니다.
encoder_last_hidden_state (
torch.FloatTensor, shape(batch_size, sequence_length, hidden_size), 선택 사항) — 모델 인코더의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.encoder_hidden_states (
tuple[torch.FloatTensor], 선택,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.FloatTensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 인코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
encoder_attentions (
tuple[torch.FloatTensor], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.FloatTensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 인코더 attention 가중치입니다.
init_reference_points (
torch.FloatTensor, shape(batch_size, num_queries, config.num_coords)) — Transformer decoder를 통해 전달되는 초기 사각형 참조 점(reference points).enc_topk_logits (
torch.FloatTensor, shape(batch_size, num_queries, config.num_labels)) — decoder query로 선택된 encoder proposal의 class logits입니다.enc_topk_bboxes (
torch.FloatTensor, shape(batch_size, num_queries, config.num_coords)) — decoder query로 선택된 encoder proposal의 사각형(quad)입니다.enc_outputs_class (
torch.FloatTensor, shape(batch_size, sequence_length, config.num_labels)) — 모든 인코더 제안에 대한 클래스 로짓.enc_outputs_coord_logits (
torch.FloatTensor, shape(batch_size, sequence_length, config.num_coords)) — 각 인코더 제안에 대한 사각형 logits.denoising_meta_values (
dict, 선택 사항) — denoising 관련 값에 대한 추가 사전입니다.relative_order_logits (
torch.FloatTensor, shape(batch_size, config.num_queries, config.num_queries)) — 선택적 S2R 융합 이후의 쌍별 상대 읽기 순서 logits입니다.relative_order_logits[i, j]가 양수이면 queryi가 queryj보다 먼저 읽는다는 의미입니다.successor_order_logits (
torch.FloatTensor, shape(batch_size, config.num_queries, config.num_queries)) — 쌍별 직접 후행(ROOR) logits.successor_order_logits[i, j]가 양수이면 쿼리j가 쿼리i의 바로 다음에 위치함을 의미합니다.
예:
>>> from transformers import AutoImageProcessor, AutoModelForObjectDetection
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> model_path = "PaddlePaddle/PP-DocLayoutV4_safetensors"
>>> image_processor = AutoImageProcessor.from_pretrained(model_path)
>>> model = AutoModelForObjectDetection.from_pretrained(model_path)
>>> inputs = image_processor(images=[image], return_tensors="pt")
>>> outputs = model(**inputs)
>>> # results are already sorted by reading order
>>> results = image_processor.post_process_object_detection(outputs, target_sizes=[image.size[::-1]])
>>> for result in results:
... for idx, (score, label_id, box) in enumerate(zip(result["scores"], result["labels"], result["boxes"])):
... box = [round(i, 2) for i in box.tolist()]
... print(f"Order {idx + 1}: {model.config.id2label[label_id.item()]}: {score.item():.2f} {box}")
Order 1: text: 0.99 [336.07, 182.04, 894.17, 652.62]
Order 2: paragraph_title: 0.98 [336.45, 681.88, 868.78, 796.91]
Order 3: text: 0.99 [334.01, 840.84, 889.11, 1452.29]
Order 4: text: 0.99 [920.65, 183.62, 1476.75, 462.75]
Order 5: text: 0.99 [919.55, 482.55, 1479.85, 763.41]
Order 6: text: 0.98 [919.34, 844.48, 1481.28, 1219.44]
Order 7: text: 0.98 [920.84, 1238.61, 1467.66, 1374.54]
Order 8: text: 0.90 [334.24, 1612.85, 1478.79, 1730.92]
Order 9: text: 0.95 [334.25, 1755.98, 1467.34, 1845.6]
Order 10: text: 0.65 [337.14, 1909.47, 659.78, 1938.2]
Order 11: footnote: 0.78 [338.73, 2114.87, 1448.16, 2172.06]
Order 12: number: 0.98 [106.08, 2257.42, 134.76, 2281.3]
Order 13: footer: 0.93 [339.27, 2255.7, 984.16, 2282.81]PPDocLayoutV4Model
클래스 transformers.PPDocLayoutV4Model
< source >( config: PPDocLayoutV4Config )
매개변수
- config (PPDocLayoutV4Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
head가 없는 PP-DocLayoutV4 모델(backbone과 encoder-decoder로 구성)이 raw hidden states를 출력합니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( pixel_values: FloatTensorpixel_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: typing.Optional[torch.FloatTensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PPDocLayoutV4ModelOutput or tuple(torch.FloatTensor)
매개변수
- pixel_values (
torch.FloatTensor, shape(batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은image_processor_class를 사용하여 얻을 수 있습니다. 자세한 내용은image_processor_class.__call__를 참조하세요 (processor_class는 이미지 처리에image_processor_class를 사용합니다). - pixel_mask (
torch.LongTensor다음 형식의(batch_size, height, width), 선택 사항) — 패딩 픽셀 값에 대한 attention을 수행하지 않도록 하는 마스크. [0, 1]에서 선택된 마스크 값: 실제 픽셀(즉, 마스크되지 않은 픽셀)은 1, 패딩 픽셀(즉, 마스크된 픽셀)은 0. attention 마스크란 무엇일까요?[0, 1]:- 실제 픽셀(즉, 마스크가 적용되지 않은 픽셀)에 대해 1
- 패딩(즉, 마스크 처리된) 픽셀은 0
- encoder_outputs (
torch.FloatTensor, 선택 사항) — (last_hidden_state, 선택 사항:hidden_states, 선택 사항:attentions)의 Tuplelast_hidden_state의 shape은(batch_size, sequence_length, hidden_size)이며, 선택 사항)은 인코더의 마지막 레이어 출력에서 생성된 hidden-states의 시퀀스입니다. 디코더의 cross-attention에 사용됩니다. - labels (
list[Dict], 길이(batch_size,), 선택 사항) — 지원되지 않음: PP-DocLayoutV4는 Transformers에서 추론만 지원합니다.
반환값
PPDocLayoutV4ModelOutput 또는 tuple(torch.FloatTensor)
PPDocLayoutV4ModelOutput 또는 torch.FloatTensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(None)과 입력에 따라 다양한 요소를 포함합니다.
PPDocLayoutV4Model의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.FloatTensor, shape(batch_size, num_queries, hidden_size)) — 모델의 decoder 마지막 레이어 출력의 hidden-state 시퀀스입니다.intermediate_hidden_states (
torch.FloatTensor, shape(batch_size, config.decoder_layers, num_queries, hidden_size)) — 스택된 중간 hidden states(decoder의 각 레이어 출력).intermediate_reference_points (
torch.FloatTensor, shape(batch_size, config.decoder_layers, num_queries, config.num_coords)) — decoder의 각 레이어에서 정제된 intermediate reference points(정사각형)의 스택.decoder_hidden_states (
tuple[torch.FloatTensor], 선택 사항,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.FloatTensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 디코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
decoder_attentions (
tuple[torch.FloatTensor], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.FloatTensor의 튜플로, 형태는(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 decoder의 attention 가중치입니다.
cross_attentions (
tuple[torch.FloatTensor], 선택,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.FloatTensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.decoder의 cross-attention 레이어에서 attention softmax를 적용한 후, cross-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention 가중치입니다.
encoder_last_hidden_state (
torch.FloatTensor, shape(batch_size, sequence_length, hidden_size), 선택 사항) — 모델 인코더의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.encoder_hidden_states (
tuple[torch.FloatTensor], 선택,output_hidden_states=True가 전달되었거나config.output_hidden_states=True인 경우 반환됨) —torch.FloatTensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 인코더의 Hidden-states와 초기 임베딩 출력을 더한 값.
encoder_attentions (
tuple[torch.FloatTensor], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.FloatTensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는, attention softmax 이후의 인코더 attention 가중치입니다.
init_reference_points (
torch.FloatTensor, shape(batch_size, num_queries, config.num_coords)) — Transformer decoder를 통해 전달되는 초기 사각형 참조 점(reference points).enc_topk_logits (
torch.FloatTensor, shape(batch_size, num_queries, config.num_labels)) — decoder query로 선택된 encoder proposal의 class logits입니다.enc_topk_bboxes (
torch.FloatTensor, shape(batch_size, num_queries, config.num_coords)) — decoder query로 선택된 encoder proposal의 사각형(quad)입니다.enc_outputs_class (
torch.FloatTensor, shape(batch_size, sequence_length, config.num_labels)) — 모든 인코더 제안에 대한 클래스 로짓.enc_outputs_coord_logits (
torch.FloatTensor, shape(batch_size, sequence_length, config.num_coords)) — 각 인코더 제안에 대한 사각형 logits.denoising_meta_values (
dict, 선택 사항) — denoising 관련 값에 대한 추가 사전입니다.logits (
torch.FloatTensor, shape(batch_size, num_queries, config.num_labels)) — 마지막 decoder layer의 분류 logits.relative_order_logits (
torch.FloatTensor, shape(batch_size, config.num_queries, config.num_queries)) — 선택적 S2R 융합 이후의 쌍별 상대 읽기 순서 logits입니다.successor_order_logits (
torch.FloatTensor, shape(batch_size, config.num_queries, config.num_queries)) — 쌍별 직접 후행(ROOR) logits.
PPDocLayoutV4Config
클래스 transformers.PPDocLayoutV4Config
< 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Trueinitializer_range: float = 0.01initializer_bias_prior_prob: float | None = Nonelayer_norm_eps: float = 1e-05batch_norm_eps: float = 1e-05tie_word_embeddings: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonefreeze_backbone_batch_norms: bool = Trueencoder_hidden_dim: int = 256encoder_in_channels: list[int] | tuple[int, ...] = (512, 1024, 2048)feat_strides: list[int] | tuple[int, ...] = (8, 16, 32)encoder_layers: int = 1encoder_ffn_dim: int = 1024encoder_attention_heads: int = 8dropout: float | int = 0.0activation_dropout: float | int = 0.0encode_proj_layers: list[int] | tuple[int, ...] = (2,)positional_encoding_temperature: int = 10000encoder_activation_function: str = 'gelu'activation_function: str = 'silu'eval_size: list[int] | tuple[int, int] | None = Nonenormalize_before: bool = Falsehidden_expansion: float = 1.0num_queries: int = 300decoder_in_channels: list[int] | tuple[int, ...] = (256, 256, 256)decoder_ffn_dim: int = 1024num_feature_levels: int = 3decoder_n_points: int = 4decoder_layers: int = 6decoder_attention_heads: int = 8decoder_activation_function: str = 'relu'attention_dropout: float | int = 0.0num_denoising: int = 100anchor_image_size: list[int] | tuple[int, int] | None = Nonedisable_custom_kernels: bool = Trueglobal_pointer_head_size: int = 64gp_dropout_value: float | int = 0.1hidden_size: int = 256num_coords: int = 10s2r_steps: int = 3s2r_damping: float = 0.5s2r_closure_weight_init: float = 0.0 )
매개변수
- is_encoder_decoder (
bool, 선택 사항, 기본값True) — 모델이 인코더/디코더로 사용되는지 여부를 나타냅니다. - initializer_range (
float, 선택 사항, 기본값0.01) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - initializer_bias_prior_prob (
float, 선택 사항) —enc_score_head와class_embed의 bias를 초기화하는 데 bias initializer가 사용하는 사전 확률입니다.None인 경우 기본값은1 / (num_labels + 1)입니다. - layer_norm_eps (
float, 선택 사항, 기본값1e-05) — 레이어 정규화 레이어에서 사용되는 epsilon 값입니다. - batch_norm_eps (
float, 선택 사항, 기본값1e-05) — batch normalization 레이어에서 사용되는 epsilon 값입니다. - tie_word_embeddings (
bool, 선택, 기본값True) — 모델의tied_weights_keys매핑에 따라 가중치 임베딩을 묶을지 여부. - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], 선택) — backbone 모델의 설정입니다. - freeze_backbone_batch_norms (
bool, 선택 사항, 기본값True) — backbone의 batch normalization 레이어를 고정할지 여부입니다. - encoder_hidden_dim (
int, 선택 사항, 기본값256) — 숨겨진 표현의 차원입니다. - encoder_in_channels (
list, 선택 사항, 기본값[512, 1024, 2048]) — 인코더에 입력되는 다중 레벨 특징. - feat_strides (
list[int], 선택 사항, 기본값[8, 16, 32]) — 각 feature map에서 사용되는 strides입니다. - encoder_layers (
int, 선택 사항, 기본값1) — Transformer 인코더의 숨겨진 레이어 수입니다. 설정하지 않으면num_layers와 동일한 값을 사용합니다. - encoder_ffn_dim (
int, 선택 사항, 기본값1024) — 인코더의 “중간” 레이어(일반적으로 feed-forward 레이어라고 함)의 차원입니다. - encoder_attention_heads (
int, 선택 사항, 기본값8) — Transformer 인코더의 각 어텐션 레이어에 사용할 어텐션 헤드 수입니다. - dropout (
Union[float, int], 선택 사항, 기본값0.0) — 모든 dropout 레이어에 적용할 비율입니다. - activation_dropout (
Union[float, int], 선택 사항, 기본값0.0) — 완전 연결 레이어 내부 활성화에 적용할 dropout 비율입니다. - encode_proj_layers (
list[int], 선택 사항, 기본값[2]) — 인코더에서 사용할 투영된 레이어의 인덱스입니다. - positional_encoding_temperature (
int, 선택 사항, 기본값 10000) — 위치 인코딩을 생성할 때 사용되는 temperature 파라미터입니다. - encoder_activation_function (
str, 선택 사항, 기본값"gelu") — 인코더와 풀러에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 문자열인 경우"gelu","relu","silu","gelu_new"를 지원합니다. - activation_function (
str, 선택 사항, 기본값silu) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어,"gelu","relu","silu"등이 있습니다. - eval_size (
tuple[int, int], 선택 사항) — stride를 고려한 후 position embeddings의 유효한 높이와 너비를 계산하는 데 사용되는 높이와 너비입니다. position embeddings를 동적으로 계산하는 reference implementation을 재현하려면None으로 두어야 합니다. - normalize_before (
bool, 선택 사항, 기본값False) — transformer encoder layer에서 self-attention 및 feed-forward 모듈을 적용하기 전에 layer normalization을 적용할지 여부를 결정합니다. - hidden_expansion (
float, 선택 사항, 기본값 1.0) — RepVGGBlock과 CSPRepLayer의 차원 크기를 확장하는 비율입니다. - num_queries (
int, 선택 사항, 기본값 300) — 객체 쿼리의 수입니다. - decoder_in_channels (
list, 선택 사항, 기본값[256, 256, 256]) — 디코더의 다중 레벨 특징 차원 - decoder_ffn_dim (
int, 선택 사항, 기본값 1024) — decoder의 “intermediate”(feed-forward라고도 함) 레이어의 차원. - num_feature_levels (
int, 선택 사항, 기본값 3) — 입력 특징 레벨의 수입니다. - decoder_n_points (
int, 선택 사항, 기본값 4) — 디코더의 각 어텐션 헤드에서 각 피처 레벨당 샘플링되는 키의 수입니다. - decoder_layers (
int, 선택 사항, 기본값6) — Transformer decoder의 hidden layer 수입니다. 설정하지 않으면num_layers와 동일한 값을 사용합니다. - decoder_attention_heads (
int, 선택 사항, 기본값8) — Transformer decoder의 각 attention layer에 사용할 attention head 수입니다. - decoder_activation_function (
str, 선택 사항, 기본값"relu") — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 문자열인 경우"gelu","relu","silu","gelu_new"를 지원합니다. - attention_dropout (
Union[float, int], 선택 사항, 기본값0.0) — Attention 확률에 적용할 dropout 비율입니다. - num_denoising (
int, 선택 사항, 기본값 100) — 대조적 노이즈 제거에 사용할 전체 노이즈 제거 작업 또는 쿼리의 수입니다. - anchor_image_size (
tuple[int, int], 선택) — 평가 시 바운딩 박스 앵커를 생성하는 데 사용되는 입력 이미지의 높이와 너비입니다. None인 경우, 앵커가 자동으로 생성됩니다. - disable_custom_kernels (
bool, 선택 사항, 기본값True) — 커스텀 커널을 비활성화할지 여부입니다. - global_pointer_head_size (
int, 선택 사항, 기본값 64) — 글로벌 포인터 헤드의 크기입니다. - gp_dropout_value (
float, 선택 사항, 기본값 0.1) — 글로벌 포인터 헤드에서 사용되는 dropout 확률입니다. - hidden_size (
int, 선택 사항, 기본값 256) — 하이브리드 인코더를 제외한 디코더 레이어의 차원입니다. 또한 이 모델의 계보를 이은 RT-DETR 계열에서 사용된 이름인d_model으로도 읽을 수 있습니다. - num_coords (
int, 선택 사항, 기본값 10) — bbox head가 예측하는 박스 파라미터화의 크기입니다. PP-DocLayoutV4는 sigmoid 공간에서[center_x, center_y, dx1, dy1, dx2, dy2, dx3, dy3, dx4, dy4]로 인코딩된 4점 사각형을 회귀하며, 코너 오프셋은+0.5만큼 이동됩니다.10만 지원됩니다. - s2r_steps (
int, 선택 사항, 기본값 3) — 후행 행렬의 전이 폐합을 근사하는 데 사용되는 전파 단계 수입니다. - s2r_damping (
float, 선택 사항, 기본값 0.5) — 전이 폐쇄의 모든 추가 전파 단계에 적용되는 감쇠 계수입니다. - s2r_closure_weight_init (
float, 선택 사항, 기본값 0.0) — 클로저 항을 가중하는 학습 가능한 게이트의 초기 값입니다. 기본값은0.0이며, 학습되지 않은 fusion 모듈이 상대 순서 로짓만 사용하는 것과 수치적으로 동일하도록 설정됩니다.
PPDocLayoutV4Model의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Pp Doclayout V4 모델을 인스턴스화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 PaddlePaddle/PP-DocLayoutV4_safetensors와 유사한 설정이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
예:
>>> from transformers import PPDocLayoutV4Config, PPDocLayoutV4ForObjectDetection
>>> # Initializing a PP-DocLayoutV4 configuration
>>> configuration = PPDocLayoutV4Config()
>>> # Initializing a model (with random weights) from the configuration
>>> model = PPDocLayoutV4ForObjectDetection(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPPDocLayoutV4ImageProcessor
class transformers.PPDocLayoutV4ImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
매개변수
- do_convert_rgb (
bool, kwargs, 선택 사항) — 이미지를 RGB로 변환할지 여부입니다. - do_resize (
bool, kwargs, 선택 사항, 기본값True) — 이미지를 리사이즈할지 여부. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, 기본값{'height' -- 800, 'width': 800}): 모델에 입력되는 최대 차원을 설명합니다. - default_to_square (
bool, kwargs, 선택 사항, 기본값True) — size가 int인 경우 리사이즈 시 정사각형 이미지로 기본 설정할지 여부입니다. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_crop을 적용한 후 출력 이미지의 크기. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, 기본값3) — 이미지를 리사이즈할 때 사용할 리샘플링 필터입니다.PILImageResamplingenum 중 하나를 사용할 수 있습니다.do_resize가True로 설정된 경우에만 효과가 있습니다. - do_rescale (
bool, kwargs, 선택, 기본값True) — 이미지를 다시 스케일링할지 여부. - rescale_factor (
float, kwargs, 선택 사항, 기본값0.00392156862745098) —do_rescale이True로 설정된 경우 이미지를 재조정(rescale)하는 데 사용할 재조정 계수입니다. - do_normalize (
bool, kwargs, 선택, 기본값True) — 이미지를 정규화할지 여부. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, 선택, 기본값[0, 0, 0]) — 정규화에 사용할 이미지 평균입니다.do_normalize이True로 설정된 경우에만 효과가 있습니다. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, 선택, 기본값[1, 1, 1]) — 정규화에 사용할 이미지 표준 편차.do_normalize가True로 설정된 경우에만 효과가 있습니다. - do_pad (
bool, kwargs, optional) — 이미지를 패딩할지 여부입니다. 패딩은 배치 내 가장 큰 크기로 수행하거나, 이미지마다 고정된 정사각형 크기로 수행합니다. 정확한 패딩 전략은 모델에 따라 달라집니다. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 이미지를 패딩할{"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, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다. - Returns
'pt'로 설정된 경우 스택된 텐서를 반환하고, 그렇지 않으면 텐서 목록을 반환합니다. —
PPDocLayoutV4ImageProcessor 이미지 프로세서를 생성합니다.
disable_grouping (bool, kwargs, 선택):
이미지를 크기로 그룹화하는 것을 비활성화하여 배치 대신 개별적으로 처리할지 여부.
None인 경우, 이미지가 CPU에 있으면 True, 그렇지 않으면 False로 설정됩니다. 이 선택은 https://github.com/huggingface/transformers/pull/38157에 자세히 설명된 경험적 관찰에 기반합니다. image_seq_length (int, kwargs, 선택):
입력에서 각 이미지에 사용할 이미지 토큰의 수.
하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature
매개변수
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — 전처리할 이미지. 픽셀 값이 0에서 255 범위로 이루어진 단일 이미지 또는 배치 이미지를 기대합니다. 픽셀 값이 0에서 1 사이인 이미지를 전달하는 경우do_rescale=False로 설정하세요. - image_like_kwargs (
dict[str, Any], 선택) — 추가 이미지 유사 입력을 전처리할 때 사용하는 개발자용 플래그입니다. 입력을 kwarg로 전달하는 것이 작동하지 않는 경우에만 사용하세요. 예를 들어,preprocess(images, masks=masks)가 권장되는 옵션이지만 일부 모델에서는 인자 우선순위 문제가 발생할 수 있습니다. 이러한 경우 대신preprocess(images, image_like_inputs={"masks": masks})를 사용할 수 있습니다. - do_convert_rgb (
bool, kwargs, 선택 사항) — 이미지를 RGB로 변환할지 여부입니다. - do_resize (
bool, kwargs, 선택) — 이미지를 리사이즈할지 여부. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 모델의 최대 입력 차원을 설명합니다. - default_to_square (
bool, kwargs, 선택 사항) — size가 int인 경우 리사이즈 시 정사각형 이미지로 기본 설정할지 여부. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_crop을 적용한 후 출력 이미지의 크기. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 이미지를 리사이즈할 경우 사용할 리샘플링 필터입니다. 이는PILImageResamplingenum 중 하나일 수 있습니다.do_resize가True로 설정된 경우에만 효과가 있습니다. - do_rescale (
bool, kwargs, 선택 사항) — 이미지를 다시 스케일링할지 여부입니다. - rescale_factor (
float, kwargs, optional) —do_rescale이True로 설정된 경우 이미지를 리스케일하기 위한 리스케일 팩터입니다. - do_normalize (
bool, kwargs, optional) — 이미지를 정규화할지 여부. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, 선택) — 정규화에 사용할 이미지 평균입니다.do_normalize가True로 설정된 경우에만 효과가 있습니다. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, 선택) — 정규화에 사용할 이미지 표준 편차.do_normalize가True로 설정된 경우에만 효과가 있습니다. - do_pad (
bool, kwargs, optional) — 이미지를 패딩할지 여부입니다. 패딩은 배치 내 가장 큰 크기로 수행하거나, 이미지마다 고정된 정사각형 크기로 수행합니다. 정확한 패딩 전략은 모델에 따라 달라집니다. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 이미지를 패딩할{"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, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다.
반환값
~image_processing_base.BatchFeature
- data (
dict) — call 메서드가 반환하는 리스트/배열/텐서 딕셔너리(‘pixel_values’ 등). - tensor_type (
Union[None, str, TensorType], 선택 사항) — 초기화 시 PyTorch/Numpy 텐서에서 정수 목록을 변환하려면 여기에 tensor_type를 지정할 수 있습니다.
이미지 또는 이미지 배치(batch)를 전처리합니다.
post_process_object_detection
< source >( outputsthreshold: float = 0.5target_sizes = None ) → list[Dict]
매개변수
- outputs (
PPDocLayoutV4ForObjectDetectionOutput) — 모델의 원시 출력입니다. - threshold (
float, 선택 사항, 기본값 0.5) — 객체 감지 예측을 유지하기 위한 점수 임계값. - target_sizes (
torch.Tensor또는list[tuple[int, int]]) — 배치 내 각 이미지의 대상 크기를 나타내는(batch_size, 2)형태의 Tensor 또는 ((height, width)) 튜플의 리스트입니다.
반환값
list[Dict]
이미지별로 하나씩 포함된 사전 목록으로, 각 사전에는 모델이 예측한 scores, labels, boxes, polygon_points 및 order_seq가 포함됩니다. 예측 결과는 읽기 순서로 정렬되므로 order_seq는 비감소(non-decreasing)합니다(여러 레이블 아래에서 선택된 쿼리는 단일 랭크를 유지합니다).
PPDocLayoutV4ForObjectDetection의 원시 출력을 (top_left_x, top_left_y, bottom_right_x, bottom_right_y) 형식의 최종 사각형, 둘러싼 박스 및 읽기 순서 랭크로 변환합니다. PyTorch만 지원합니다.