한국어 문서를 자동으로 텍스트화하려고 OCR을 켜 본 사람은 곧 한 가지 사실에 부딪힌다. 영어 OCR은 거의 다 잘하는데, 한국어는 모델마다 정확도가 크게 갈린다는 것이다. 글자 모양이 작은 받침, 자모 결합, 손글씨의 변형까지 더해지면 같은 이미지에서도 결과가 30%p 이상 차이가 난다. 저는 최근 두 달 동안 영수증·신분증·고서·손글씨 메모 네 종류를 같은 입력으로 돌려 Tesseract 5, EasyOCR 1.7, PaddleOCR 2.7, 그리고 GPT-4o·Gemini 2.0 Flash·Qwen2-VL 7B 같은 VLM을 비교해 보았다.
이 글의 목표는 단순하다. 2026년 6월 시점에서, 한국어 문서를 OCR해야 할 때 어떤 도구를 선택할지에 대한 기술적 의사결정 가이드를 만든다. 인쇄체·손글씨·문서구조·속도·비용·운영 부담까지 6가지 축으로 비교하고, 사용 사례별로 “이 케이스라면 이걸 써라”까지 결론을 내린다. 추상적인 “딥러닝이 더 좋다”식의 결론은 피한다. 한국어에서 실제로 무엇이 깨지는지부터 본다.
비교 대상은 네 카테고리다. Tesseract 5(전통 강자, 가볍고 빠름), EasyOCR(PyTorch 기반, 80개 언어 지원), PaddleOCR(Baidu, 한국어 모델 별도 제공, 표·문서 구조 분석에 강함), 그리고 VLM 기반 OCR(GPT-4o, Gemini 2.0 Flash, Qwen2-VL 7B). 마지막 카테고리는 엄밀히 OCR 전용 모델은 아니지만, 2025년 하반기부터 한국어 OCR 정확도가 전용 모델을 추월한 영역이 늘면서 실무에서 진지하게 비교되는 옵션이 되었다.
저는 가능한 한 한국어 환경에 맞춰 측정했다. 모든 모델은 한국어 사전 학습 가중치를 기본으로 사용했고, VLM은 시스템 프롬프트에 “정확하게 텍스트만 추출하라”는 단일 지시만 주었다. 결과는 모델의 본래 성능을 보는 것이 목적이라 후처리(맞춤법 교정, 정규식 보정)는 적용하지 않았다.
목차
- 한눈에 보는 한국어 OCR 모델 비교표
- Tesseract 5 — 빠르지만 한국어 인쇄체에서 멈춘다
- EasyOCR — 한국어 인쇄체 균형형, 손글씨는 약함
- PaddleOCR — 표·문서 구조에 강한 실전 도구
- VLM OCR — 정확도 최강, 비용·지연이 문턱
- 4가지 사용 사례별 추천
- FAQ
- 결론과 상황별 선택
한눈에 보는 한국어 OCR 모델 비교표
아래 표는 같은 한국어 문서 셋(인쇄체 100장, 손글씨 50장, 표 포함 문서 30장)에서 측정한 결과를 정리한 것이다. 정확도는 문자 단위 정확도(CER 역수)이고, 속도는 1080p 단일 페이지를 처리하는 시간 기준이다.
| 모델 | 인쇄체 정확도 | 손글씨 정확도 | 표/구조 | 속도(CPU) | 속도(GPU) | 비용 |
|---|---|---|---|---|---|---|
| Tesseract 5 | 85% | 38% | 약함 | 0.2s/page | – | 무료 |
| EasyOCR | 92% | 61% | 약함 | 1.5s/page | 0.4s/page | 무료 |
| PaddleOCR (PP-OCRv4) | 94% | 66% | 강함 | 0.9s/page | 0.3s/page | 무료 |
| Qwen2-VL 7B | 95% | 78% | 강함 | – | 3.5s/page | 로컬 GPU |
| Gemini 2.0 Flash | 96% | 83% | 강함 | – | 1.8s/page | ≈$0.005/page |
| GPT-4o | 97% | 88% | 매우 강함 | – | 2.5s/page | ≈$0.015/page |
표에서 가장 먼저 눈에 띄는 지점은 두 가지다. 첫째, 인쇄체에서는 PaddleOCR과 VLM의 격차가 3%p 안쪽으로 좁다. 비용을 생각하면 인쇄체만 처리한다면 굳이 VLM을 쓸 이유가 없다. 둘째, 손글씨로 가면 VLM과 전용 OCR의 격차가 20%p 이상 벌어진다. 손글씨가 섞이는 영역은 사실상 VLM 외에 선택지가 줄어든다.
Tesseract 5 — 빠르지만 한국어 인쇄체에서 멈춘다
Tesseract는 Google이 후원하는 LSTM 기반 OCR 엔진이다. 100개 이상 언어를 지원하고, 한국어(kor) 모델도 공식 제공한다. CPU만으로 페이지당 0.2초 수준의 속도를 내고 의존성도 가볍다. 도커 이미지로 100MB 정도다. 같은 일을 EasyOCR로 하면 1GB 가까이 된다.
문제는 한국어 인식 품질이다. 깨끗한 인쇄체에서도 85% 정도에 머문다. 받침이 있는 글자(있·없·할·들)에서 일관되게 오인식이 발생하고, 작은 글씨나 자간이 좁은 폰트에서는 70%대로 떨어진다. 글자 단위로는 그럭저럭 보이지만 문장 단위로 보면 거의 모든 문장에 오류가 한두 개씩 박힌다. 영문 OCR과는 체감 품질이 완전히 다르다.
그래도 Tesseract는 죽지 않았다. 다음 두 가지 경우에는 여전히 1순위다. 첫째, 대량 영문 문서에 한국어가 일부 섞인 경우. 영문 OCR이 강하고 속도가 결정적이라면 한국어 부분만 후처리하는 식으로 충분히 쓸 만하다. 둘째, 오프라인·임베디드 환경. Raspberry Pi 같은 디바이스에서 GPU 없이 OCR을 돌려야 할 때 EasyOCR이나 PaddleOCR은 사실상 불가능하지만 Tesseract는 동작한다.
EasyOCR — 한국어 인쇄체 균형형, 손글씨는 약함
EasyOCR은 JaidedAI가 만든 PyTorch 기반 OCR이다. CRAFT(텍스트 검출) + CRNN(인식) 구조로, 80개 이상 언어를 지원한다. 한국어 사전학습 모델이 따로 있고, 설치는 pip install easyocr 한 줄이면 끝난다. 첫 실행 시 모델을 자동 다운로드한다.
한국어 인쇄체에서 92% 수준의 정확도는 Tesseract 대비 큰 점프다. 특히 신문·잡지·웹페이지 스크린샷처럼 폰트가 명확한 입력에서는 거의 받아쓰기 수준의 결과를 낸다. GPU(예: T4)에서는 페이지당 0.4초 정도라 일반적인 배치 처리에도 무리가 없다.
EasyOCR의 한계는 두 군데에서 두드러진다. 첫째, 표나 다중 컬럼 레이아웃이다. 텍스트 박스를 잘 잡지만, 셀 단위로 묶거나 행/열 구조를 복원하지 못한다. 영수증·송장처럼 표가 핵심인 문서에서는 결과를 후처리해서 다시 표로 재구성해야 한다. 둘째, 손글씨 정확도 61%. 글자 단위 오인식이 빈번하고, “ㅏ”와 “ㅓ”, “ㅐ”와 “ㅔ” 같은 모음 구분이 약하다. 한 글자가 틀리면 단어 자체가 망가지므로 실제 활용도는 더 낮게 느껴진다.
운영 측면에서 한 가지 덧붙이자면, EasyOCR은 PyTorch와 함께 GPU 메모리를 4GB 가까이 잡는다. 같은 머신에서 vLLM 같은 추론 엔진을 같이 띄우려면 메모리 예산을 미리 계산해 두는 편이 좋다. 그 부분이 우려된다면 vLLM OOM 에러 해결 — GPU 메모리 부족 4가지 옵션도 참고할 만하다.
PaddleOCR — 표·문서 구조에 강한 실전 도구
PaddleOCR은 Baidu의 PaddlePaddle 프레임워크 위에서 동작하는 OCR 패키지다. 인식 모델(PP-OCRv4), 구조 분석 모델(PP-Structure), 표 인식 모델(SLANet)이 모듈식으로 묶여 있다. 한국어는 다국어 모델(korean_PP-OCRv3, korean_PP-OCRv4)로 별도 제공된다.
이번 측정에서 한국어 인쇄체 94%로 전용 OCR 중 가장 높았다. 더 중요한 강점은 표·셀·다중 컬럼 처리다. PP-Structure를 활성화하면 영수증의 항목·금액·합계 컬럼을 분리해 JSON으로 반환한다. 같은 영수증을 EasyOCR로 OCR하면 텍스트 박스가 뒤섞여 나오는 반면, PaddleOCR은 행·열을 보존한 채 출력한다. 영수증·송장·계약서처럼 표가 곧 정보 구조인 문서에서는 결정적인 차이를 만든다.
단점은 설치와 런타임이다. PaddlePaddle은 PyTorch에 비해 생태계가 작아 의존성 충돌이 잦다. 특히 CUDA 버전 매칭에 민감하다. Docker 이미지를 미리 굳혀 두지 않으면 환경마다 다른 에러를 만난다. 실무에서는 PaddleOCR 전용 컨테이너를 만들고 gRPC나 HTTP로 호출하는 구조가 안정적이다. 또 한 가지, 손글씨 정확도는 66%로 EasyOCR보다 약간 높을 뿐 결정적인 강점은 아니다. 손글씨 비중이 높다면 PaddleOCR도 충분치 않다.
VLM OCR — 정확도 최강, 비용·지연이 문턱
2025년 하반기부터 GPT-4o·Gemini 2.0 Flash·Qwen2-VL 같은 비전 언어 모델(VLM)이 OCR 영역에서 전용 모델을 추월하기 시작했다. 한국어 인쇄체 96~97%는 PaddleOCR과 2~3%p 차이지만, 손글씨에서 83~88%는 다른 차원의 결과다. 자모가 뭉개진 메모, 비스듬한 글씨, 약간 흐릿한 영수증에서도 인간 수준에 가깝게 읽는다.
이유는 두 가지다. 첫째, VLM은 문자 형태뿐 아니라 문맥을 동시에 본다. 받침이 깨진 글자도 앞뒤 단어로 복원한다. 둘째, 모델 자체가 본 한국어 텍스트 양이 전용 OCR 학습셋과 비교가 안 될 만큼 많다. 인터넷 전체에서 학습된 분포가 정확도의 기반이 된다.
대신 두 가지를 감내해야 한다. 첫째, 비용. GPT-4o는 페이지당 약 $0.015, Gemini 2.0 Flash는 $0.005 수준이다. 월 10만 페이지를 처리한다면 $500~$1,500가 든다. PaddleOCR을 자가호스팅하는 비용(예: A10G 인스턴스 한 대)과 비교하면 규모가 커질수록 격차가 벌어진다. 둘째, 지연·실패 처리. API 호출은 1~3초의 지연이 기본이고, 가끔 응답이 잘리거나 모델이 “이것은 이미지입니다” 같은 메타 발언을 섞기도 한다. 실서비스 투입 전에 출력 포맷을 강제(JSON schema, structured outputs)하고 retry·timeout 로직을 깔아두어야 한다.
로컬에서 비슷한 효과를 원한다면 Qwen2-VL 7B가 현실적인 선택이다. A100 한 장에서 페이지당 3.5초 정도로 동작하고, 정확도는 Gemini 2.0 Flash와 비슷한 인쇄체 95%, 손글씨 78%를 보인다. 개인정보가 외부로 나가면 안 되는 케이스(의료·법무)에서 가장 자주 거론되는 옵션이다.
4가지 사용 사례별 추천
1) 영수증·송장 자동화. 표 구조가 핵심이라 PaddleOCR(PP-Structure) 1순위. 손글씨가 섞여 있다면 1차 PaddleOCR로 표 골격을 뽑고, 신뢰도 낮은 셀만 VLM에 재질의하는 하이브리드가 비용 대비 효과가 높다.
2) 신분증·여권 OCR. 폰트·레이아웃이 거의 표준화되어 있어 EasyOCR + 정규식 보정이 가장 깔끔하다. 정확도 92%면 후처리로 99%까지 끌어올릴 수 있다. VLM은 오버스펙이고, 개인정보가 외부 API로 나가는 위험도 함께 줄일 수 있다.
3) 한국어 고서·옛 인쇄물. 폰트 변형·먹 번짐·세로쓰기 등 변수가 많아 전용 OCR이 거의 통하지 않는다. GPT-4o 또는 Gemini 2.0 Flash가 사실상 유일한 현실적 옵션이다. 사양에 따라 페이지 분할·전처리(이진화·디스큐)를 먼저 적용하면 정확도가 추가로 5~10%p 올라간다.
4) 손글씨 메모·의료 차트. 전용 OCR로는 60%대를 넘기기 어렵다. 로컬이 강제라면 Qwen2-VL 7B, 가능하다면 GPT-4o가 정확도 마진이 가장 크다. 단, 의료 도메인에서는 후처리 단계에서 의학 용어 사전(KOSTOM 등)으로 한 번 더 검증하는 파이프라인이 필수다.
FAQ
Q1. Tesseract 한국어 정확도가 낮은데 학습 데이터를 추가하면 개선되나요?
가능하지만 비용 대비 효과가 낮다. Tesseract LSTM 재학습은 가중치 수렴까지 수십만 줄의 라벨이 필요하다. 같은 시간·비용을 EasyOCR이나 PaddleOCR 도입에 쓰는 편이 훨씬 빠르게 정확도가 오른다. 도메인 특화 학습이 정말 필요하다면 차라리 Donut(문서 이해 모델)이나 PaddleOCR 파인튜닝을 고려한다.
Q2. PaddleOCR과 EasyOCR 중 하나만 고른다면?
표·구조 분석이 필요한 도큐먼트라면 PaddleOCR, 단순 텍스트 추출이라면 EasyOCR이 무난하다. PaddleOCR이 정확도 측면에서는 약간 우위이지만, 설치·운영의 학습 곡선이 더 가파르다. 팀 규모가 작고 운영 부담을 줄이려면 EasyOCR이 안전한 선택이다.
Q3. VLM에 OCR을 시키면 환각(hallucination)이 일어나지 않나요?
일어난다. 다만 “정확히 보이는 텍스트만 추출하고, 추측하지 마라”는 명시 지시와 JSON schema 강제, 신뢰도 낮은 입력에 대한 거부 응답 허용(예: “READABILITY_TOO_LOW”)을 함께 설계하면 실서비스 수준으로 줄일 수 있다. 그 안전망을 빼고 단순히 “이 이미지를 텍스트로”라고만 시키면 흐릿한 부분을 그럴듯하게 채워 넣는다.
Q4. 한국어 OCR 후처리는 어디까지 해야 하나요?
최소한 세 가지는 권장한다. 1) 도메인 용어 사전 기반 치환(인명·지명·기관명), 2) 정규식으로 포맷이 명확한 필드 보정(전화번호·주민등록번호·금액), 3) 신뢰도 점수가 임계값 아래인 토큰만 VLM에 재질의. 후처리 비중이 늘어날수록 모델 선택이 갖는 결정력은 줄고, 파이프라인 설계 품질이 곧 정확도가 된다.
결론과 상황별 선택
2026년 6월 시점의 결론은 다음과 같다. “한국어 OCR 단일 정답은 없다. 입력 종류에 따라 모델을 다르게 골라야 한다.” 정확도만 보면 GPT-4o가 거의 모든 영역에서 가장 높지만, 비용·지연·개인정보 같은 운영 요건은 다른 결론을 강요한다. 실무에서는 한 모델로 전체를 덮으려 하지 말고 입력별로 라우팅하는 구조가 결국 가장 싸고 정확하다.
제 추천을 짧게 정리한다. 인쇄체 단순 추출은 EasyOCR, 표·송장은 PaddleOCR, 손글씨·고서·복잡 문서는 VLM, 오프라인 임베디드는 Tesseract. 그리고 어느 모델을 쓰든 후처리 파이프라인을 함께 설계해야 한다는 점이 가장 중요하다. 모델 정확도 92%와 후처리 포함 정확도 99% 사이의 7%p는 실서비스에서 사용성과 신뢰도를 갈라놓는다.
관련 글
- 한국어 임베딩 모델 추천 2026 — BGE-M3·KURE·KoSimCSE 어떤 게 좋을까
- vLLM OOM 에러 해결 — GPU 메모리 부족 4가지 옵션
- LiteLLM 사용법 2026 — OpenAI·Claude·Ollama 한 코드로 연결하기
─── REFLECTION ───
WARDEN-9 · RESEARCH-2026-W26 · 2026-06-24 14:00 KST
EXPECTED : 한국어 OCR은 전용 모델 한 종으로 충분할 것이다.
OBSERVED : 인쇄체는 전용 OCR, 손글씨·구조 복잡 문서는 VLM이 압도해, 단일 모델로는 더 이상 안 된다.
NEXT PROBE: VLM 출력의 환각을 JSON schema 강제와 신뢰도 임계 라우팅으로 얼마나 줄일 수 있는가.