PaddleOCR
무엇인가
PaddleOCR은 이미지와 PDF에서 텍스트·표·수식·레이아웃을 검출·인식해 Markdown이나 JSON으로 출력하는 Python OCR 툴킷이다. 문서 수집 단계에서 RAG 파이프라인과 LLM 에이전트에 넣을 구조 데이터를 만드는 자리에 놓인다. 단순 텍스트 추출이 아니라 문서 파싱과 장면 텍스트 인식 두 계열을 한 저장소에서 다룬다.
어떻게 동작하나
구성은 세 축이다. PP-OCRv6가 텍스트 검출·인식을 맡고, PaddleOCR-VL-1.6(0.9B)이 문서 전체를 파싱하는 비전-언어 모델이며, PP-StructureV3가 표 셀 좌표와 텍스트 좌표를 포함한 구조 정보를 낸다. 출력은 Markdown·JSON이고 PaddleOCR-VL·PP-StructureV3·PP-DocTranslation은 DOCX 내보내기도 한다. 추론 백엔드는 Paddle 정적 그래프, Paddle 동적 그래프, Transformers 중에서 고르며 주요 모델 20종이 Transformers 백엔드로 동작한다. 하드웨어는 NVIDIA GPU, Intel CPU, Kunlunxin XPU와 기타 AI 가속기를 받는다. 고처리량 파싱용 HPD-Parsing은 계층 병렬 디코딩과 P-MTP를 쓰고 vLLM 런타임 위에서 OpenAI 호환 서빙과 로컬 추론을 제공한다.
무엇과 다른가
대체 대상은 클라우드 OCR API와 독점 문서 AI 서비스다. PaddleOCR-VL-1.6은 0.9B 파라미터로 OmniDocBench v1.6에서 96.3%를 기록해 같은 벤치마크의 폐쇄형 모델과 겨루는 크기다. PP-OCRv6는 단일 모델로 중국어·영어·일본어와 라틴 문자 46개 언어를 포함한 50개 언어를 처리하므로 언어별 모델을 갈아끼울 필요가 없다. PP-StructureV3는 VLM 계열과 달리 표 셀 단위 좌표까지 주므로 좌표 기반 후처리가 필요한 파이프라인에 쓴다.
어떻게 쓰나
Python 패키지로 설치하고 CLI와 Python API 양쪽으로 호출한다. 문서 파싱은 PaddleOCR-VL 또는 PP-StructureV3 파이프라인을 골라 실행하고 결과를 Markdown·JSON·DOCX로 저장한다. Word·Excel·PowerPoint 같은 오피스 문서를 Markdown으로 바꾸는 경로도 있다. 서빙이 필요하면 HPD-Parsing을 OpenAI 호환 엔드포인트로 띄워 HTTP로 호출한다. Dify, RAGFlow, Pathway, Cherry Studio에 통합되어 있고 PaddleOCR.js로 브라우저에서 PP-OCRv5를 직접 실행할 수 있다.
전제와 한계
전제는 Python 환경과 PaddlePaddle 런타임이다. 모델은 tiny(1.5M)·small(7.7M)·medium(34.5M) 세 티어로 나뉘어 엣지·모바일·서버 배포를 구분한다. Transformers 백엔드는 주요 모델 20종에만 적용되므로 나머지는 Paddle 백엔드를 쓴다. 언어 범위는 PP-OCRv6 단일 모델 기준 50개이고 전체 지원 언어는 100개 이상이다. PaddleOCR-VL 계열은 좌표 정보가 PP-StructureV3보다 거칠다.
관련 논문 1
유사 도구
- doclingPDF·DOCX·PPTX 등 여러 문서 형식을 레이아웃과 표 구조까지 해석해 Markdown·JSON으로 내보내는 Python 라이브러리 겸 CLI다.
- markerPDF·이미지·오피스 문서를 마크다운·JSON·HTML로 변환하는 Python CLI다. 레이아웃 검출과 OCR을 로컬 VLM 서버로 처리하고 LLM으로 정확도를 보강한다.
- synthadocPDF·스프레드시트·영상 등 원본 문서를 LLM으로 컴파일해 출처 인용이 붙은 로컬 Markdown 위키로 만드는 Python CLI다.
- readerURL 앞에 https://r.jina.ai/ 를 붙이면 웹 페이지·PDF·오피스 문서를 LLM이 읽는 마크다운으로 변환하는 TypeScript 서비스다.