OCR - 광학 문자 인식

PyMuPDF 는 OCR(광학 문자 인식)에 대한 통합 지원을 제공합니다. 이미지(Pixmap 클래스를 통해)와 문서 페이지 모두에 OCR을 사용할 수 있습니다.

이 기능은 현재 Tesseract-OCR을 기반으로 하며 별도의 애플리케이션으로 설치해야 합니다. 자세한 내용은 통합 OCR 지원 활성화 을 참조하세요.

이미지 OCR 방법

지원되는 이미지는 먼저 Pixmap 으로 변환해야 합니다. 그런 다음 Pixmap을 1페이지 PDF로 저장할 수 있습니다. 이 페이지는 원본 이미지와 동일한 너비와 높이를 가집니다. Tesseract가 인식한 텍스트 레이어가 포함됩니다.

PDF는 Pixmap.pdfocr_save() 또는 Pixmap.pdfocr_tobytes() 메서드 중 하나를 통해 디스크의 파일로 또는 메모리의 PDF로 생성할 수 있습니다.

텍스트는 일반적인 텍스트 추출 및 검색 메서드(Page.get_text(), Page.search_for() 등)로 추출하고 검색할 수 있습니다. 다음 중요한 사실과 전제 조건도 참고하세요:

  • 이미지를 Pixmap으로 변환할 때 색 공간이 RGB이고 alpha가 False (투명도 없음)인지 확인하세요. 필요하면 원본 Pixmap을 변환하세요.

  • 모든 텍스트는 Tesseract 자체 GlyphLessFont 로 “숨김”으로 작성되며, Courier와 유사한 메트릭을 가진 고정폭 글꼴입니다.

  • 모든 텍스트는 일반 및 검은색 속성을 가집니다(즉, 굵게, 기울임꼴 없음, 원본 글꼴 정보 없음).

  • Tesseract는 벡터 그래픽을 인식하지 않습니다(즉, 그림/선화 없음).

이 방법은 전체 스캔된 PDF를 OCR하는 데도 권장됩니다:

  • 각 페이지를 원하는 해상도로 Pixmap 에 렌더링

  • 결과 1페이지 PDF를 출력 PDF에 추가

문서 페이지 OCR 방법

지원되는 모든 문서 페이지를 OCR할 수 있습니다. 페이지 전체 또는 해당 페이지의 이미지 영역만 OCR할 수 있습니다.

광학 문자 인식은 표준 텍스트 추출보다 약 1,000배 느리기 때문에, 페이지당 한 번만 OCR을 수행하고 결과를 TextPage 에 저장합니다. 이후 모든 추출 및 텍스트 검색에 이 TextPage를 사용하면 PyMuPDF 의 일반적인 최고 속도로 처리됩니다.

문서 페이지를 OCR하려면 다음 방법을 따르세요:

  1. OCR이 필요한지/유익한지 판단하세요. 다음과 같은 여러 기준을 사용할 수 있습니다:

  • 페이지가 이미지로 완전히 덮여 있음

  • 페이지에 텍스트가 없음

  • 수천 개의 작은 벡터 그래픽(시뮬레이션된 텍스트를 나타냄)

  1. tp = page.get_textpage_ocr(...) 와 같은 명령을 사용하여 페이지를 OCR하고 결과를 TextPage 객체에 저장합니다.

  2. 이후 모든 텍스트 추출 및 검색에서 textpage=tp 매개변수를 통해 생성된 TextPage 를 참조하세요.

This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at artifex.com or contact Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States for further information.