티스토리 뷰

이 포스팅에서는 PyMuPDF-Layout이 DocLayNet 데이터셋에서 어느 정도 성능을 보여주는지, 그리고 Docling과 비교했을 때 어떤 특징을 가지는지를 정리했습니다.
레이아웃 감지는 IoU 기반 정확도로 평가했고, 모델 효율성도 함께 비교했습니다.


🔍 Methodology — 어떻게 평가했을까?

Dataset: DocLayNet (Pfitzmann et al., 2022)

우리가 사용한 데이터는 DocLayNet이라는 대규모 문서 레이아웃 데이터셋입니다.

  • 훈련 데이터: 69,000 페이지
  • 검증 데이터: 6,480 페이지
  • 문서 종류: 재무 보고서, 논문, 특허, 매뉴얼, 법률 문서, 입찰 문서 등
  • 레이블 종류: 총 11개
    • caption, footnote, formula, list-item, page-footer, page-header, picture, section-header, table, text, title
  • 비교 기준 모델: Docling v2 (RT-DETR 기반)

평가 방식

레이아웃 박스가 얼마나 정확히 맞는지를
**IoU 0.6 기준 F1 score(precision + recall)**로 평가했습니다.

클래스 맞추기(Harmonization)

Docling과 DocLayNet은 클래스 체계가 달라서, 비교 가능하게 아래처럼 통일했습니다.

  • Docling document-index, form → DocLayNet table
  • Docling key-value-region, code, checkbox-* → DocLayNet text
💡 참고
Docling은 title 클래스가 따로 없어서 title을 전부 section-header로 넣기 때문에
DocLayNet의 title 클래스는 baseline에서 F1이 사실상 0입니다.

🧪 Experiment 1 — PDF 내부 정보만으로 학습한 모델

첫 번째 실험은 이미지 렌더링 없이 PDF 내부 구조만으로 레이아웃을 예측하는 모델입니다.

Class Docling F1 PyMuPDF-Layout F1 Δ
caption 0.8594 0.8157 -0.0437
footnote 0.4827 0.7217 +0.2390
formula 0.7416 0.7370 -0.0046
list-item 0.7955 0.8737 +0.0782
page-footer 0.7937 0.7973 +0.0036
page-header 0.8218 0.8387 +0.0169
picture 0.6314 0.2462 -0.3852
section-header 0.8732 0.7823 -0.0909
table 0.7977 0.6886 -0.1091
text 0.8146 0.8675 +0.0529
title 0.0000 0.7672 +0.7672
Overall 0.8102 0.8270 +0.0168

모델 특성:
20M 파라미터(Docling RT-DETR) vs. 1.3M 파라미터(PyMuPDF-Layout)

관찰된 성능 패턴:

  • 구조적 요소에서 강한 성능: footnotes(+0.239), list-items(+0.078), text blocks(+0.053)
  • 시각적 요소에서는 성능 저하: pictures(-0.385)
  • 문서 단위의 문맥이 필요한 요소에서는 중간 정도의 성능 저하: tables(-0.109), section-headers(-0.091)
  • baseline 대비 title 탐지에서 큰 폭의 향상: +0.767

🧪 Experiment 2: Fusion features (PDF + global image context)


두 번째 모델은 PDF 정보에 더해, 저해상도 페이지 이미지를 간단한 CNN으로 분석한 전역 특징을 추가한 버전입니다.
파라미터는 약 0.5M 증가.

Class Docling F1 PyMuPDF-Layout F1 Δ
caption 0.8594 0.8613 +0.0019
footnote 0.4827 0.7584 +0.2757
formula 0.7416 0.7666 +0.0250
list-item 0.7955 0.8676 +0.0721
page-footer 0.7937 0.9277 +0.1340
page-header 0.8218 0.7953 -0.0265
picture 0.6314 0.2885 -0.3429
section-header 0.8732 0.8389 -0.0343
table 0.7977 0.7966 -0.0011
text 0.8146 0.8489 +0.0343
title 0.0000 0.7189 +0.7189
Overall 0.8102 0.8356 +0.0254

모델 특성: 20M 파라미터(Docling RT-DETR) vs. 1.8M 파라미터(PyMuPDF-Layout with fusion)

컨텍스트 추가 효과

  • page-footer 탐지가 크게 좋아짐 (+0.134)
  • table 탐지는 baseline 수준까지 올라옴
  • picture는 여전히 어려운 요소지만 감소폭은 줄어듦
  • 전체 F1 점수도 소폭 상승: +0.025

⚡ Computational Efficiency — 얼마나 빠르고 가벼운가?

Model Parameters F1 GPU
Docling (RT-DETR) 20M 0.8102 필요함
PyMuPDF-Layout (PDF-only) 1.3M 0.8270 필요 없음
PyMuPDF-Layout (Fusion) 1.8M 0.8356 필요 없음

요약하자면:

  • PDF-only 모델 → 파라미터 15.4배 감소!
  • Fusion 모델 → 11배 더 가벼우면서 F1은 더 높음
  • 둘 다 GPU 없이 CPU만으로도 충분히 동작

이건 문서 AI 엔진에서 꽤 중요한 장점입니다.


💬 시사점

이번 결과는 다음을 보여줍니다:

  • PDF 구조 기반 특징만으로도, Vision 모델과 매우 비슷한 정확도를 낼 수 있다.
  • 시각적 요소는 약하지만, 텍스트와 구조 중심 문서에서는 매우 뛰어나다.
  • Fusion 방식은 전역 문맥을 보완해주는 효과가 있고, 계산 비용도 여전히 낮다.
  • 다만 picture 분류는 PDF 구조만으로 해결하기 어렵기 때문에 한계로 남는다.

앞으로 업로드될 포스팅으로는 이런 것들이 있어요 

  • 다른 데이터셋에서도 동일한 평가를 진행할 예정
  • 새로운 baseline이 나오면 비교 지표를 계속 업데이트
  • 구현 방법과 사용법은 PyMuPDF-Layout 튜토리얼 참고 가능

🎉 Happy Coding! 🙂

앞으로, 다양하고 유익한 PyMuPDF Pro 튜토리얼로 찾아오겠습니다. 기대해주세요! 감사합니다 :)
PyMuPDF Pro 제품소개페이지 바로가기 >