티스토리 뷰

정확도는 더 높고 속도는 50% 더 빠릅니다. 실제 PDF 환경에 맞춰 설계되었습니다.
PyMuPDF4LLM은 PDF 페이지의 전체 텍스트를 추출해야 할 경우에만 OCR을 적용합니다. 페이지에 이미 추출 가능한 텍스트가 충분히 포함되어 있는 경우 OCR은 완전히 건너뛰어 불필요한 작업을 방지하고 고품질 디지털 텍스트의 품질 저하 위험을 제거합니다.
OCR이 필요한 경우 , PyMuPDF4LLM은 런타임 환경에서 사용 가능한 OCR 플러그인 중 가장 적합한 것을 자동으로 선택하여 감지 정확도와 처리 속도 사이의 균형을 유지합니다.
내장된 OCR 플러그인은 하이브리드 OCR 전략을 구현합니다. 즉, 추출 가능하고 읽을 수 있는 텍스트가 없는 영역만 OCR 엔진으로 전달합니다. 이러한 선택적 접근 방식은 일반적으로 OCR 처리 시간을 약 50% 단축하는 동시에 인식 정확도를 향상시킵니다. 엔진이 문제가 있는 영역에만 집중하기 때문입니다. 인식된 텍스트는 원래 페이지에 다시 병합되어 기존 디지털 콘텐츠를 손상시키지 않고 페이지를 풍부하게 만듭니다.
하이브리드 OCR은 어떤 문제를 해결하나요?
최신 PDF 파일은 순수한 디지털 파일이나 스캔 파일인 경우가 드뭅니다. 대개 디지털 텍스트, 내장 이미지, 벡터화된 텍스트, 손상된 인코딩, 내장된 OCR 레이어 등 모든 것이 한 페이지에 혼합된 문서 입니다 .
기존 OCR 방식은 모든 페이지를 새로운 텍스트 레이어가 추가된 이미지로 변환합니다. 이로 인해 다음과 같은 문제가 발생합니다.
- 처리 속도 저하
- 원본 텍스트 품질 손실
- 레이아웃 왜곡
- 이미 읽을 수 있는 텍스트에 불필요한 OCR 처리
하이브리드 OCR은 읽을 수 있는 추출 가능한 텍스트가 없는 부분에만 OCR을 적용함으로써 이 문제를 해결합니다 .
하이브리드 OCR은 전체 페이지 OCR과 어떻게 다른가
| OCR이 페이지 전체를 인식합니다. | OCR은 추출 가능한 텍스트가 없는 영역만 인식합니다. |
| 원문을 대체합니다. | 읽을 수 있는 모든 텍스트를 보존합니다. |
| 더 느리게 | 더 빠름 (OCR 작업량 감소) |
| 레이아웃이 왜곡될 수 있습니다 | 원래 레이아웃을 그대로 유지합니다. |
| 모든 콘텐츠를 픽셀로 변환합니다. | 원본 콘텐츠를 모두 보존합니다. |
하이브리드 OCR은 원본 텍스트와 기타 콘텐츠를 보존하는 것이 필수적인 혼합 PDF 에 맞게 설계되었습니다.
전체 페이지 OCR과 하이브리드 OCR 벤치마킹
전체 페이지 OCR과 하이브리드 OCR의 차이점에 대한 일반적인 고려 사항.
| 혼합 PDF | 느린 | 빠른 |
| 스캔 영역이 작은 디지털 PDF 파일입니다. | 매우 느림 | 매우 빠름 |
| 추출 가능한 텍스트, 전체 페이지 이미지 등은 없습니다. | 속도나 품질에 차이가 없습니다. | 속도나 품질에 차이가 없습니다. |
| 정확성 | 아래로 (텍스트를 덮어씁니다) | 더 높은 등급 (텍스트를 보존함) |
속도 향상을 이해하기 위해 미국 양식 10K 보고서의 예시 페이지(19)에 대한 측정값을 아래에 제시합니다.

우리는 Tesseract 와 RapidOCR이라는 OCR 엔진을 사용하여 전체 페이지 OCR 모드와 하이브리드 OCR 모드로 페이지를 처리했습니다.
또한 두 엔진을 결합하여 RapidOCR은 텍스트 감지에만 사용하고 (이를 통해 높은 정밀도의 텍스트 줄 경계 상자를 얻을 수 있음) Tesseract 는 각 경계 상자 내에서 텍스트를 인식하는 데 사용했습니다 . 이 접근 방식은 RapidOCR만 사용하는 것보다 두 가지 장점이 있습니다. 성능이 더 우수 하고 속도가 더 빠릅니다.
- Tesseract의 텍스트 인식 기능은 RapidOCR보다 성능이 뛰어나고 속도도 훨씬 빠릅니다.
- RapidOCR의 텍스트 인식 과정이 가장 느린 부분이므로 전반적인 속도가 향상됩니다.
| 테서랙트 | 1.50초 | 0.81초 | ↑ 46.0% |
| RapidOCR | 7.24초 | 3.70초 | ↑ 48.9% |
| 결합 | 5.48초 | 2.80초 | ↑ 48.9% |
| 평균 | 4.74초 | 2.44초 | 약 48% |
PyMuPDF4LLM은 속도와 품질을 고려하여 RapidOCR과 Tesseract 엔진을 모두 사용할 수 있는 경우 자동으로 두 엔진을 결합합니다.
PyMuPDF4LLM의 OCR 엔진 호출은 PyMuPDF와의 인터페이스에 필요한 코드를 포함하는 "플러그인"(또는 "어댑터")으로 래핑됩니다.
OCR이 자동으로 실행될 때
PyMuPDF4LLM은 각 페이지를 분석하고 표준 텍스트 추출이 불완전할 경우에만 OCR을 실행합니다. 감지 신호는 네 가지가 있습니다 .
이미지 속 텍스트
텍스트는 사람이 읽을 수 있지만, 실제로는 픽셀로 구성되어 있습니다. 위 페이지의 이미지가 대표적인 예입니다.

추출 결과: 없음.
페이지 분석기는 "이미지 텍스트"라는 신호를 보냅니다 .
읽을 수 없는 텍스트: 대체 유니코드
텍스트는 사람이 읽을 수 있고, PDF 뷰어에서 마우스를 사용하여 복사 붙여넣기가 가능하며 추출도 가능하지만, 추출 결과는 "����"로 나타납니다.
이는 글꼴이 손상되었거나 글꼴의 역변환 테이블("글리프 → 유니코드")이 실수로든 의도적으로든 누락되거나 불완전한 경우에 발생할 수 있습니다.
예를 들어, 이 텍스트를 복사하는 경우,

…그리고 이를 편집기에 붙여넣으면 다음과 같은 결과가 나타납니다.

페이지 분석기가 "잘못된 문자"를 표시합니다 .
텍스트처럼 보이는 벡터
텍스트는 사람이 읽을 수 있는 형태로 보이지만, 실제로는 문자를 모방한 벡터로 구성됩니다 . 간단히 설명하자면, "/-\|_|_" 와 같은 선을 정교하게 그리면 "ALL"이라는 단어처럼 보일 수 있습니다. 예를 들어, 일부 미기재 양식(예: 송장 양식)의 수정 불가능한 텍스트, 텍스트 복사 붙여넣기 방지 등에 사용할 수 있습니다.
이것은 이미지와 마찬가지로 텍스트를 추출하거나 마우스로 선택할 수 없지만, 확대해도 픽셀 단위로 이미지가 깨지는 현상은 나타나지 않습니다.
다음 예시 페이지에서 텍스트를 추출하면 선택된 부분(노란색)만 반환됩니다. "Lorem ipsum ..." 텍스트는 모두 벡터입니다.

페이지 분석기는 "벡터 텍스트" 라고 표시합니다 .
품질이 의심스러운 기존 OCR 텍스트
PDF 파일에 이미 OCR로 인식된 텍스트가 포함되어 있을 수 있지만, 해당 텍스트가 부정확하거나 손상되었거나 품질이 의심스럽거나 알 수 없는 경우입니다. 다음은 예시 이미지에서 OCR 품질이 좋지 않은 경우를 보여주는 예입니다. 터무니없는 경계 상자와 수많은 비텍스트성 아티팩트가 나타납니다.

페이지 분석기가 "OCR 텍스트" 라고 알립니다 .
보존되는 것과 새로 생성되는 것은 무엇인가?
하이브리드 OCR은 다음을 보장합니다:
보존됨
- 모든 읽기 쉬운 디지털 텍스트
- 원래 레이아웃
- 텍스트 글꼴, 크기, 스타일, 색상
- 텍스트 장식(밑줄, 취소선)
- 기타 콘텐츠(이미지, 벡터)
새로 생성된
- 읽을 수 없는 영역과 판독 불가능한 텍스트에 대한 OCR 텍스트
- 바람직하지 않거나 품질이 낮은 OCR 레이어를 대체합니다.
병합 단계는 원본 텍스트가 OCR 버전으로 대체되는 일이 절대 없도록 보장합니다 .
하이브리드 OCR 파이프라인
다음은 저희 페이지 예시를 사용한 단계별 안내입니다.
1단계 — 페이지 분석
이 페이지에는 텍스트, 이미지 및 일부 벡터가 포함되어 있으며, 이 벡터들은 표의 격자선과 행 배경 음영을 형성합니다.
페이지 분석 결과 추출 가능한 텍스트(가시성을 높이기 위해 빨간색으로 표시됨), 텍스트가 많이 포함된 이미지, 그리고 텍스트 모방 의심을 불러일으키지 않는 몇 가지 벡터가 감지되었습니다.
분석기는 "이미지 텍스트" 신호를 사용하여 "OCR"을 권장합니다 .

2단계 — 페이지의 임시 작업 복사본 만들기
선택한 플러그인/어댑터는 페이지의 임시 "스크래치패드" 복사본을 만들고 읽을 수 있는 모든 디지털 텍스트(기존 OCR 텍스트 포함)를 제거합니다. 이미지와 벡터는 그대로 유지됩니다. 표의 격자선과 행 음영을 확인하세요.
그런 다음 정리된 페이지의 이미지를 생성하고 이를 선택된 OCR 엔진에 전달합니다.

3단계 — 정리된 페이지 사본에 OCR 실행
OCR 엔진은 이미지 영역(녹색으로 표시됨)의 텍스트를 인식합니다.
플러그인은 다음 단계를 위해 해당 정보를 추출하고 임시 페이지를 삭제합니다.

4단계 — 원본 페이지에 OCR 텍스트 삽입
플러그인은 최종적으로 감지된 좌표에 OCR 텍스트를 삽입합니다.
원본 페이지의 읽을 수 있는 텍스트는 그대로 유지됩니다. 특히 표는 전혀 영향을 받지 않았습니다(격자선, 행 배경 및 텍스트는 이전과 동일). 따라서 표 찾기 알고리즘이 표를 완벽하게 인식할 수 있습니다.

마지막 페이지에는 원본 텍스트와 OCR로 인식된 텍스트가 완벽하게 조화되어 있습니다. PyMuPDF4LLM의 레이아웃 모듈과 모든 후속 처리 기능이 이 페이지를 문제없이 사용할 수 있을 것입니다.
OCR 엔진 선택 가이드
PyMuPDF4LLM은 프로그램 초기화 시 내장 플러그인에서 지원하는 OCR 엔진의 사용 가능 여부를 확인하고 가장 적합한 플러그인(어댑터)을 선택합니다.
현재 지원되는 엔진에는 Tesseract-OCR과 RapidOCR이 포함됩니다.
다음은 선정 과정에서 고려되는 기준입니다.
테서랙트 플러그인
- 라틴어 계열 언어에 대한 최상의 인식 정확도
- 텍스트 인식을 위한 강력한 사전 지원
- 라틴어 기반 언어의 경우 RapidOCR이나 PaddleOCR보다 훨씬 빠릅니다.
- 스캔 품질이 낮으면 텍스트 경계 상자의 정확도가 떨어집니다.
고속 스캔이 필요하고 고품질 스캔이 가능한 경우에 사용하십시오 .
RapidOCR 플러그인
- 고품질 텍스트 감지(바운딩 박스)
- 강력한 아시아 언어 지원
- CJK가 많이 포함된 문서도 충분히 빠르게 처리할 수 있습니다.
- 텍스트 인식 (단어 분리) 에 빈번한 문제가 발생합니다.
사용 시점: 속도보다 탐지 정확도가 중요하지만, 인식 품질도 평가해야 할 때
결합 엔진 플러그인
Tesseract가 설치되어 있고 RapidOCR(또는 PaddleOCR) 중 하나가 사용 가능한 경우, 두 프로그램을 함께 사용하면 적절한 속도로 최상의 품질을 얻을 수 있습니다.
- 텍스트 감지 에는 RapidOCR 만 사용하십시오. RapidOCR은 적절한 속도로 텍스트 줄에 대한 높은 정밀도의 경계 상자를 제공합니다.
- 각 경계 상자에 대해 Tesseract를 사용하여 그 안에 있는 텍스트를 인식합니다 .
- 이 방법은 RapidOCR 단독 사용보다 더 나은 품질을 제공하는 동시에 25~50% 더 빠릅니다.
사용 시점: 적절한 속도로 최상의 품질을 얻고자 할 때. 두 가지 PDF 엔진이 모두 설치된 경우 PyMuPDF4LLM에서 이 옵션을 선택합니다.
결론
이 글을 통해 저희 하이브리드 OCR 솔루션이 문서 처리 요구 사항에 속도와 정확성을 모두 제공하는 방법을 보여드렸기를 바랍니다. 저희는 지속적으로 솔루션을 개선하고 발전시켜 나가고 있으니, 여러분의 사용 후기를 기다리겠습니다!
이 내용이 유용했다면 GitHub에서 저희를 찾아주시고 , 별(⭐)이나 트윗(🍴)을 남겨주시면 감사하겠습니다!
'PyMuPDF Pro' 카테고리의 다른 글
| 50% 더 빨라진 OCR과 AI 답변의 '근거'를 찾는 법 (0) | 2026.04.09 |
|---|---|
| C 엔진(C engine)의 유산을 잇고, 파이썬(Python)다운 사용성까지 챙긴 PyMuPDF Pro (0) | 2026.03.26 |
| 왜 데이터 청킹(Data Chunking)이 LLM 처리에서 필수적일까 (0) | 2026.03.03 |
| PyMuPDF Layout 튜토리얼 — 시작하기 (0) | 2026.02.12 |
| DocLayNet 기반 PyMuPDF-Layout 성능 분석 결과: 경쟁 제품과 비교 리포트로 한눈에 확인하세요. (0) | 2026.02.11 |
- Total
- Today
- Yesterday
- 이파피루스
- epapyrus
- PDF변환
- 스마트공장
- 이벤트
- 피터펜
- 아티펙스
- pdf추출
- PDF-Pro
- 모터센스
- 피터팬
- 페이퍼리스
- 전자문서
- 전자서식
- Ai
- ocr
- 파이썬라이브러리
- djvu
- PyMuPDFPro
- paperless
- pdf뷰어
- pdf프로
- PDFpro
- 예지보전
- 인공지능
- PDF편집
- 고장예측
- 문서ai
- pdf프로그램
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
