피드로 돌아가기
Dev.toAI/ML
원문 읽기
Tesseract 기반 API를 통한 Arabic RTL OCR 및 Searchable PDF 구현
Arabic OCR with an API: Make Scanned Arabic PDFs Searchable (Python)
AI 요약
Context
Arabic 텍스트의 Right-to-Left(RTL) 특성, 연결 문자(Ligatures), Diacritics로 인해 일반적인 OCR 도구의 레이아웃 분석 및 텍스트 추출 시 심각한 데이터 손실 발생. 특히 단순 텍스트 추출을 넘어 원본 레이아웃을 유지하며 텍스트 레이어를 삽입하는 Searchable PDF 구현의 기술적 난이도가 높음.
Technical Solution
- Tesseract OCR 엔진에 ara 및 eng 언어 모델을 결합하여 혼용 문서 인식률을 높인 lang=eng+ara 옵션 적용
- 단순 String 추출이 아닌 이미지 하단에 투명 텍스트 레이어를 삽입하는 PDF Rebuild 파이프라인 구축
- 서버 측에서 Rasterize → OCR → Text Layer Embedding으로 이어지는 복잡한 처리 과정을 단일 HTTP API로 추상화
- 300 DPI 이상의 고해상도 스캔 및 Deskew 전처리를 통해 RTL 인식률 저하 및 문자 뭉침 현상 해결
- 15페이지 단위의 Request 분할 처리를 통한 메모리 과부하 방지 및 처리 안정성 확보
- Self-hosting 시 발생하는 폰트 인코딩 및 RTL 레이어 정렬 문제를 API 기반의 Managed Service로 대체하여 유지보수 비용 제거
실천 포인트
- Arabic OCR 적용 시 반드시 eng+ara 혼용 옵션을 사용하여 Latin 문자 및 숫자 인식률 확보 - 인식률 향상을 위해 입력 이미지의 300 DPI 유지 및 Deskew 처리 여부 확인 - 대용량 PDF 처리 시 /split 엔드포인트를 활용해 15페이지 이하 단위로 청크 분할 - 인쇄체 외의 필기체(Handwritten)나 서예(Calligraphy) 데이터는 Tesseract 기반 OCR의 한계임을 인지하고 별도의 Vision Model 검토