TRENDSHIFT 딥다이브 · PaddleOCR 분석

PaddleOCR 딥다이브
— 종이 문서를 AI가 읽게 만드는 오픈소스 OCR 엔진

사진 한 장에서 글자·표·수식·도장·차트까지 구조를 파악해 컴퓨터가 다룰 수 있는 데이터로 바꿔주는 OCR 툴킷. ⭐79,600+ · 약 109~111개 언어 지원, ChatGPT·Claude 같은 LLM이 문서를 읽기 전 거치는 "관문". (저장소: PaddlePaddle/PaddleOCR · Apache 2.0 라이선스 · Python 핵심)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 하드웨어 / 시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

PaddleOCR이 정확히 무엇을 하는 도구인가

PaddleOCR은 중국 바이두(Baidu)가 만들어 오픈소스로 공개한 OCR(광학 문자 인식) 툴킷이다. 사진이나 PDF를 입력하면 그 안의 글자를 텍스트로 뽑아내고, 더 나아가 표·수식·도장·차트까지 구조를 파악해 LLM이 바로 먹을 수 있는 데이터(Markdown / JSON)로 바꿔준다.

용어
OCR (Optical Character Recognition, 광학 문자 인식)
"빛(Optical)으로 글자(Character)를 알아본다(Recognition)"는 뜻. 카메라나 스캐너로 찍은 이미지 안의 글자를 컴퓨터가 검색·복사·계산할 수 있는 텍스트로 바꾸는 기술. 스마트폰으로 명함을 찍으면 자동으로 연락처에 들어가는 그 기능이 OCR이다.
한 컷 비유

"AI가 세상의 모든 종이 문서를 읽으려면, 그 앞에 PaddleOCR이 서 있어야 한다"

ChatGPT나 Claude 같은 거대 언어 모델은 글자만 다룬다. 회사 계약서, 의료 기록, 옛날 신문 같은 종이 문서를 다루려면 누군가 먼저 그 사진을 글자로 바꿔줘야 한다. PaddleOCR은 그 "관문" 역할을 무료로, 정확하게, 약 109~111개 언어로 해준다.

핵심은 파이프라인 설계다. 한 거대한 신경망이 "사진 → 글자"를 한 번에 처리하는 게 아니라, 작은 모델 여럿이 차례로 한 가지씩만 잘한다. 그래서 한 단계만 교체하거나, 필요 없는 단계는 꺼버릴 수 있다.

2왜 주목받는가

LLM 시대의 첫 번째 관문 · 경쟁 도구 대비 강점
기존 방식의 불편함
유료 클라우드 OCR은 비싸고, 영어용 오픈소스는 한국어가 처참하다

구글 비전·AWS Textract는 호출당 과금이라 대량 문서엔 비용이 폭발한다. 무료 대안 Tesseract로 한국어 영수증을 찍으면 받침이 빠지고 자음이 엉뚱하게 바뀐다 — 알파벳 26자 위주로 학습됐기 때문이다.

PaddleOCR의 해법
무료 + 동아시아 문자 특화 + 표·수식·도장까지 구조 파악

처음부터 중국어·한국어·일본어 같은 CJK 문자를 가정해 설계됐고, 표·수식·차트·도장까지 한 번에 파악한다. 2026년형 PaddleOCR-VL-1.5는 0.9B 파라미터 비전-언어 모델로 OmniDocBench에서 94.5%, 후속 VL-1.6은 96.3% 정확도를 기록했다(공식 README 수치).

왜 지금 뜨는가? 모든 회사가 "사내 문서를 ChatGPT로 검색하게 해줘"라는 요구를 받고 있어서다. 회의록·계약서·매뉴얼이 대부분 PDF/스캔 이미지로 쌓여 있고, 이걸 AI가 다루려면 ① 문서 사진을 글자로 바꾸고(OCR) → ② 검색 가능한 형태로 정리(임베딩+벡터DB) → ③ 질문 시 관련 문서를 찾아 LLM에 넘긴다. 이 전체 파이프라인이 RAG(검색 증강 생성)이고, 그 맨 앞 관문이 OCR이다.

번역사 비유

외국어 문서가 산더미고 사장님(LLM)이 한국어밖에 못 읽는다 치자. 그 앞에 번역사(OCR)가 먼저 서야 한다. 번역사가 숫자 0과 알파벳 O를 헷갈리면 사장님은 잘못된 정보로 보고서를 쓴다. PaddleOCR의 정확도가 중요한 이유가 여기 있다.

경쟁 도구 비교

비교 대상PaddleOCR의 위치
구글 Vision / AWS Textract유료 클라우드 API. PaddleOCR은 무료·온프레미스(내 서버에서 실행)라 비용·보안에서 우위
Tesseract가장 오래된 오픈소스지만 CJK 정확도가 낮음. PaddleOCR은 동아시아 문자에 특화
EasyOCR설치는 쉽지만 표·수식·문서 파싱 같은 구조 분석이 약함. PaddleOCR은 PP-StructureV3로 구조까지
대형 멀티모달 LLM(예: GPT-4o 직접 입력)호출 비용·지연이 큼. PaddleOCR-VL은 0.9B로 가볍게 같은 문서 파싱을 로컬에서 수행

3기술 스택 전체 지도

언어 구성 · 딥러닝 프레임워크 · 모델 · 배포

언어 구성 (근사치 — 정확 비율은 저장소 언어 통계 참고)

Python ████████████████████████████ 90%± ← 학습·추론·파이프라인 전부 C++ ███ 6%± ← 고속 추론 엔진 / 배포(deploy) Shell/기타 ██ 4%± ← 빌드·스크립트·도구

※ 위 비율은 일반적인 구성에 근거한 근사치다. PaddleOCR은 사실상 Python 중심 프로젝트이며, 고속 배포 경로에 C++가 섞인다.

딥러닝 프레임워크 / 핵심 런타임

기술역할상세
PaddlePaddle딥러닝 프레임워크바이두의 자체 프레임워크. PyTorch·TensorFlow의 바이두판. 3.1.0+ 권장
Python 3.8~3.12주 언어학습·추론·파이프라인이 전부 Python
PP-OCRv6경량 텍스트 인식 (현행)DBNet 검출 + SVTR 인식. tiny(1.5M)/small(7.7M)/medium(34.5M) 3단계, 단일 모델로 50개 언어 지원 (2026-06-11 릴리스, PaddleOCR 3.7.0). PP-OCRv5는 이전 버전
PaddleOCR-VL문서 파싱 VLM0.9B 비전-언어 모델(ERNIE-4.5-0.3B 언어부). 표·수식·차트까지
PP-StructureV3문서 구조 분석레이아웃 분석 → Markdown/JSON 출력. 페이지 넘는 표 병합까지

배포 / 가속 (Deploy)

기술역할상세
ONNX모델 변환PaddlePaddle 모델을 표준 포맷으로 변환해 타 런타임에서 실행
ONNX Runtime / OpenVINOCPU 가속GPU 없이도 빠른 추론. 인텔 CPU 최적화(OpenVINO)
TensorRTNVIDIA GPU 가속엔비디아 GPU에서 추론 속도 극대화
MCP ServerAI 에이전트 연동mcp_server/ — Claude Code 등이 PaddleOCR을 직접 호출
LangChain / PaddleOCR.js생태계 통합RAG 파이프라인 연동, 브라우저(JS) SDK

4아키텍처 심화 분석

5단계 파이프라인 · 모듈 재사용 · 모바일/서버 두 버전

시스템 구조도 — 조립 라인처럼 흐른다

┌──────────────────────────────────────────────────────────────┐ │ 입력: 사진 / PDF 한 장 │ └───────────────────────────┬──────────────────────────────────┘ ▼ ┌──────────────────────────────────────────────────────────────┐ │ ① 방향 분류 사진이 거꾸로/90도 돌아갔는지 → 똑바로 회전 │ │ ② 왜곡 보정 곡면·원근으로 휜 글자를 평평하게 폄(dewarp) │ │ ③ 텍스트 검출 글자가 "어디"에 있는지 박스로 표시 (DBNet) │ │ ④ 행 방향 분류 박스 안 글자가 어느 방향으로 흐르는지 판단 │ │ ⑤ 텍스트 인식 박스 안 픽셀 → 실제 글자로 변환 (SVTR) │ └───────────────────────────┬──────────────────────────────────┘ ▼ ┌──────────────────────────────────────────────────────────────┐ │ (선택) 구조 분석 — PP-StructureV3 / PaddleOCR-VL │ │ 레이아웃 분석 · 표 인식 · 수식 인식 · 도장 인식 · 차트→표 │ └───────────────────────────┬──────────────────────────────────┘ ▼ 출력: 글자+좌표+신뢰도 / Markdown · JSON
우편물 분류 비유

우체국에 편지가 쏟아질 때, 한 사람이 "주소 읽기·우편번호 분류·지역 배달·수령 확인"을 다 하면 끔찍하다. 실제론 단계마다 다른 직원이 한 가지씩만 한다. PaddleOCR도 작은 모델 다섯이 차례로 한 가지씩 잘한다 — 약한 단계만 교체하면 되고, 필요 없는 단계는 끌 수 있다.

핵심 설계 패턴 ①: 모듈식 파이프라인

용어
파이프라인 (pipeline)
데이터가 한 단계씩 처리되며 흘러가는 구조. 수돗물이 정수기→필터→살균기를 차례로 거치듯이. 각 단계가 독립 모듈이라 교체·제거·추가가 자유롭다.

같은 "텍스트 검출" 모듈이 일반 OCR에도, 표 인식·도장 인식 파이프라인에도 그대로 재사용된다. 사용자는 use_seal_recognition=True 같은 불리언 플래그만 켜고 끄면 된다.

핵심 설계 패턴 ②: 검출(DBNet) + 인식(SVTR) 분리

[검출] DBNet — "글자가 어디에 있나" Differentiable Binarization. 이미지에서 텍스트 영역의 경계를 미분 가능한 방식으로 학습 → 박스 좌표 출력 │ ▼ (박스 잘라서 한 줄씩) [인식] SVTR — "이 박스 안 글자가 뭔가" Scene-text Visual Transformer. 트랜스포머 기반이라 복잡한 2D 한글 조합(자음+모음+받침)도 잘 잡음 (구버전 CRNN → v5에서 SVTR로 전환, 더 빠르고 정확)

검출과 인식을 분리하니, 검출 모델은 그대로 두고 인식 모델만 한국어 데이터로 추가 학습할 수 있다. lang='korean'으로 전환하면 한국어 가중치가 로드된다.

핵심 설계 패턴 ③: 모바일 / 서버 두 버전

같은 기능 모델을 두 가지 크기로 제공한다. 스마트폰 앱엔 작은 mobile, 정확도가 1%라도 더 필요한 서버엔 큰 server. 무게-정확도를 트레이드오프로 고를 수 있게 한 설계다.

구분mobileserver
용도스마트폰·엣지 기기고성능 서버
크기/파라미터작음(검출 모델 수 MB대, mobile 약 5M 파라미터급)큼(server 모델 수십 MB대)
강점가벼움·빠른 시작정확도 우위

※ 구체적 MB 수치는 PP-OCRv5 버전·모듈에 따라 달라진다. mobile 인식 모델이 약 10MB 안팎으로 보고된 사례가 있으나, 정확한 값은 모델 다운로드 페이지에서 확인할 것.

핵심 설계 패턴 ④: 양자화로 더 가볍게

용어
양자화 (quantization)
모델 속 숫자를 더 적은 비트로 저장하는 기법. 32비트 소수(0.1234567…)를 8비트 정수로 근사하면 크기가 약 1/4, 계산도 빨라진다. 너무 줄이면 정확도가 떨어져, 양자화 후 미세조정하는 게 일반적이다.

5디렉토리 구조 해부

ppocr/ 가 엔진, ppstructure/ 가 문서 분석, deploy/ 가 배포
PaddlePaddle/PaddleOCR/ ├── ppocr/ # ⭐ 핵심 OCR 파이프라인 (검출·인식·후처리) │ ├── modeling/ # 모델 구조 정의 (DBNet, SVTR 등) │ ├── data/ # 데이터 로더·전처리 │ └── postprocess/ # 박스 디코딩 등 후처리 ├── ppstructure/ # 문서 구조 분석 (레이아웃·표·수식·도장) ├── configs/ # 학습·추론 설정 파일(YAML) ├── tools/ # 학습/추론/평가 유틸 스크립트 │ ├── train.py # 학습 진입점 │ └── infer/ # 추론 스크립트 ├── deploy/ # 배포 (C++/서빙/ONNX/모바일) ├── mcp_server/ # ⭐ MCP 서버 — AI 에이전트가 직접 호출 ├── api_sdk/ # API/SDK 래퍼 ├── langchain-paddleocr/ # LangChain 통합 (RAG 연동) ├── paddleocr-js/ # 브라우저용 JS SDK ├── benchmark/ # 성능 벤치마크 ├── docs/ # 설치·사용·배포 문서 └── tests/ # 테스트

처음 코드를 열면 ppocr/부터 보면 된다 — 검출·인식 모델 정의가 여기 있다. 문서 파싱(표·수식)이 궁금하면 ppstructure/, AI 에이전트 연동이 궁금하면 mcp_server/를 본다. 직접 학습은 tools/train.py + configs/의 YAML 조합으로 돌린다.

6학습 포인트 (기술별)

이 레포에서 무엇을 배울 수 있는가

A. 모듈식 파이프라인 설계

배울 것: 거대한 단일 모델 대신 작은 모델을 직렬로 잇는 사고. 각 단계가 독립 모듈이라 교체·제거가 자유로운 구조가 왜 유지보수에 강한지. ppstructure/에서 같은 검출 모듈이 여러 파이프라인에 재사용되는 패턴을 직접 본다.

B. 검출-인식 2단계 OCR 아키텍처

배울 것: DBNet(검출)이 "글자 위치"를, SVTR(인식)이 "글자 내용"을 맡는 분업. 왜 한 모델로 다 하지 않는지, 트랜스포머 기반 인식이 CRNN 대비 CJK에서 유리한 이유.

C. 모델 경량화 — mobile/server, 양자화, ONNX

배울 것: 같은 모델을 환경별 두 버전으로 내보내는 전략. 32→8비트 양자화의 정확도-속도 트레이드오프. PaddlePaddle 모델을 ONNX로 변환해 OpenVINO·TensorRT로 가속하는 실전 배포 경로.

D. 비전-언어 모델(VLM)로의 진화

배울 것: 전통적 OCR(검출+인식)에서 PaddleOCR-VL 같은 0.9B VLM으로 넘어가는 흐름. 작은 비전-언어 모델이 어떻게 표·수식·차트까지 한 번에 구조화하는지, 큰 멀티모달 LLM 대비 비용 우위.

E. MCP — AI 에이전트 생태계 연동

배울 것: 전통적 라이브러리를 MCP 서버로 감싸 Claude·Cursor·Dify 등 어떤 에이전트에서도 호출 가능하게 만드는 방법. "도구를 표준 콘센트로 만드는" 설계 사고.

F. 도메인 특화 파인튜닝

배울 것: 일반 모델 정확도가 부족한 특수 문서(의료 차트·건설 도면·회사 양식)에 대해 tools/train.py + configs/ YAML로 직접 재학습하는 전체 흐름. 데이터 라벨링 → 학습 → 평가 → 배포 사이클.

7하드웨어 / 시스템 요구사항

CPU만으로도 동작 · GPU는 선택
항목최소권장
Python3.83.10~3.12
프레임워크PaddlePaddle 3.1.0+최신 안정 버전
OSLinux / Windows / macOSLinux(서버 배포 시)
CPU일반 CPU로 충분(가벼운 추론)다중 코어 + OpenVINO 가속
GPU불필요(CPU 추론 가능)NVIDIA + CUDA 12 (대량/학습 시)
RAM4GB(기본 OCR)8GB+ (문서 파싱·VLM)
가속기(선택)XPU / NPU도 지원
설치 방법명령비고
기본pip install paddleocr텍스트 검출+인식. 대부분 여기서 시작
문서 파싱pip install "paddleocr[doc-parser]"표·수식·레이아웃 등 구조 분석 추가
전체pip install "paddleocr[all]"모든 모듈. 다운로드 수 GB — 필요할 때만

※ extras 이름(doc-parser 등)은 버전에 따라 다를 수 있으니 설치 전 공식 문서 확인. GPU 사용 시 paddlepaddle-gpu를 CUDA 버전에 맞춰 별도 설치해야 한다.

8직접 해볼 수 있는 실습 과제

난이도별 5가지 과제
과제 1

한국어 영수증 30분 미니 실험 ★ 초급 30분

스마트폰으로 영수증 한 장 찍어 한글 인식 정확도를 직접 확인한다. GPU 없이 CPU만으로 동작한다.

# 설치
pip install paddleocr

# 3줄 인식
from paddleocr import PaddleOCR
ocr = PaddleOCR(lang='korean')
result = ocr.ocr('영수증.jpg')  # 박스+글자+신뢰도 반환
과제 2

mobile vs server 모델 비교 ★ 초급 1시간

같은 이미지를 mobile과 server 두 버전으로 돌려 처리 시간·정확도 차이를 표로 정리한다. 본인 환경에 맞는 트레이드오프 감각이 생긴다.

측정 항목: (1) 추론 시간(초) (2) 인식된 글자 수 (3) 틀린 글자 수 (4) 모델 크기(MB). 두 버전을 같은 표에 나란히 놓고 비교.
과제 3

PDF → Markdown 자동화 스크립트 ★★ 중급 2시간

CLI 한 줄로 PDF를 마크다운으로 변환하고, 폴더 일괄 처리로 확장한다.

# 단일 파일
paddleocr --input sample.pdf --output result.md --lang korean

# 폴더 일괄 (파이썬에서 glob로 순회)
for f in folder/*.pdf: 변환 → .md 저장
과제 4

MCP 서버 연동 — 자연어로 문서 처리 ★★★ 고급 4시간

Claude Code 설정에 PaddleOCR MCP를 등록하고 자연어 명령으로 PDF를 처리한다.

예: "이 폴더의 PDF들에서 표만 뽑아 CSV로 만들어줘". mcp_server/ 문서를 따라 서버를 띄우고, .mcp.json에 등록 → AI 에이전트가 PaddleOCR을 직접 호출하는 워크플로를 체험.
과제 5

도메인 특화 모델 파인튜닝 ★★★ 고급 6시간+

회사 양식·의료 차트처럼 일반 모델 정확도가 떨어지는 문서에 인식 모델을 재학습한다.

흐름: 데이터 라벨링 → configs/에서 인식 YAML 선택 → tools/train.py -c 설정.yml로 학습 → 평가 → 추론에 새 가중치 적용. ppocr/ 학습 코드가 그대로 들어 있다.

9관련 기술 심화 학습 로드맵

4주 학습 플랜

1주차: OCR 기초와 PaddleOCR 체험

요일학습 내용실습
OCR이란 무엇인가검출/인식 개념, PaddleOCR 설치
기본 추론 APIPaddleOCR(lang='korean')로 한글 인식
결과 구조 이해박스 좌표·신뢰도 점수 해석
다국어 인식영어·중국어·일본어 섞인 문서 처리
CLI 사용법paddleocr --input … --output …

2주차: 파이프라인과 모델 구조

요일학습 내용실습
5단계 파이프라인방향·왜곡·검출·인식 단계 끄고 켜기
DBNet 검출 원리ppocr/modeling 검출 코드 읽기
SVTR 인식 원리트랜스포머 인식 vs CRNN 비교
mobile/server 비교두 모델 속도·정확도 측정
양자화 개념INT8 모델로 속도 변화 관찰

3주차: 문서 구조 분석과 배포

요일학습 내용실습
PP-StructureV3표·레이아웃 분석으로 Markdown 추출
수식·도장·차트 인식use_*_recognition 플래그 실험
ONNX 변환모델을 ONNX로 내보내 실행
OpenVINO/TensorRTCPU/GPU 가속 추론 비교
서빙 배포deploy/ 경로로 API 서버 구성

4주차: VLM · RAG · 에이전트 통합

요일학습 내용실습
PaddleOCR-VLVLM으로 복잡 문서 파싱
RAG 파이프라인OCR → 임베딩 → 벡터DB 흐름 설계
LangChain 통합langchain-paddleocr로 RAG 연결
MCP 서버Claude Code에서 PaddleOCR 호출
종합 프로젝트"PDF 폴더 → 검색 가능한 지식베이스" 완성

10핵심 키워드 사전

이 레포를 이해하는 데 꼭 필요한 용어들
키워드설명
OCROptical Character Recognition. 이미지 속 글자를 텍스트로 변환하는 기술
PaddlePaddle바이두의 딥러닝 프레임워크. PaddleOCR이 그 위에서 동작 (PyTorch의 바이두판)
파이프라인데이터가 작은 단계를 차례로 거치며 처리되는 구조. 각 단계가 독립 모듈
DBNetDifferentiable Binarization. 텍스트 "위치"를 박스로 찾는 검출 모델
SVTRScene-text Visual Transformer. 박스 안 글자를 읽는 트랜스포머 인식 모델
CRNN구버전 인식 모델(CNN+RNN). v5에서 SVTR로 대체됨
PP-OCRv5 / PP-OCRv6경량 OCR 모델 세대. PP-OCRv6(2026-06-11, PaddleOCR 3.7.0)이 현행 — tiny(1.5M)/small(7.7M)/medium(34.5M) 3단계. PP-OCRv5는 이전 세대(mobile 약 5M 파라미터급/server)
PaddleOCR-VL0.9B 비전-언어 모델. 표·수식·차트까지 한 번에 구조화 (VL-1.6 96.3%)
PP-StructureV3문서 레이아웃·표를 분석해 Markdown/JSON으로 변환하는 구조 분석기
CJKChinese-Japanese-Korean. 한·중·일 문자. 종류가 많고 모양이 복잡
양자화모델 가중치를 32→8비트로 줄여 크기·속도를 개선하는 경량화 기법
ONNX딥러닝 모델 표준 교환 포맷. 변환하면 여러 런타임에서 실행 가능
TensorRT / OpenVINO각각 NVIDIA GPU / 인텔 CPU용 추론 가속 라이브러리
RAG검색 증강 생성. LLM에 답을 시키기 전 관련 문서를 먼저 찾아 넘기는 패턴
MCPModel Context Protocol. AI 에이전트와 외부 도구를 잇는 표준 약속
파인튜닝사전학습 모델을 특정 도메인 데이터로 추가 학습해 정확도를 끌어올리는 것
OmniDocBench문서 파싱 정확도를 재는 벤치마크. PaddleOCR-VL 성능 보고에 쓰임

11참고 링크

더 깊이 파고들 때 유용한 자료들