일본어 특화 OCR — 만화, 세로쓰기, 후리가나, 고문서까지
manga-ocr, Sarashina2.2-OCR, PaddleOCR, KuroNet — 일본어 OCR의 모든 선택지
일본어 OCR이 어려운 이유
영어 OCR과 달리 일본어에는 특수한 문제가 있다:
- 세로쓰기(縦書き) — 오른쪽에서 왼쪽으로, 위에서 아래로 읽는다. 일반 OCR은 가로쓰기 전제
- 후리가나(ふりがな) — 한자 옆/위에 작은 히라가나가 붙는다. 본문과 분리해야 한다
- 3종 문자 혼용 — ひらがな + カタカナ + 漢字 + ABC가 한 문장에 섞인다
- 만화 폰트 — 손글씨풍, 효과음, 말풍선 안의 불규칙 배치
- 고문서(くずし字) — 메이지 이전 문서는 현대 일본인도 못 읽는 서체
도구별 비교
| 도구 | 용도 | 세로쓰기 | 후리가나 | 크기 | 난이도 |
|---|---|---|---|---|---|
| manga-ocr | 만화 | ✅ | ✅ | 400MB | ★☆☆☆☆ |
| Sarashina2.2-OCR | 문서 (최고 정밀도) | ✅ | ✅ | 3B | ★★★☆☆ |
| PaddleOCR | 범용 CJK | ✅ | △ | 10~150MB | ★★☆☆☆ |
| EasyOCR | 범용 | △ | ❌ | 100MB | ★☆☆☆☆ |
| KuroNet | 고문서(くずし字) | ✅ | — | 웹API | ★★☆☆☆ |
manga-ocr — 만화 최강
ViT(인코더) + GPT-2(디코더) 구조. 만화의 말풍선 텍스트에 특화.
pip install manga-ocr
from manga_ocr import MangaOcr
mocr = MangaOcr() # 첫 실행 시 ~400MB 모델 다운로드
# 만화 말풍선 이미지 → 텍스트
text = mocr("speech_bubble.png")
print(text) # → "お前はもう死んでいる"
특장점:
세로쓰기, 가로쓰기 둘 다 처리
후리가나가 있어도 본문만 추출
다양한 만화 폰트(효과음, 손글씨) 대응
저품질 이미지에서도 작동
소설, 게임 텍스트에도 사용 가능
Sarashina2.2-OCR — 일본어 문서 최고 정밀도
SB Intuitions(소프트뱅크 계열)이 만든 3B 파라미터 End-to-End OCR 모델.
from transformers import AutoProcessor, AutoModelForVision2Seq
from PIL import Image
processor = AutoProcessor.from_pretrained("sbintuitions/sarashina2.2-ocr")
model = AutoModelForVision2Seq.from_pretrained("sbintuitions/sarashina2.2-ocr")
image = Image.open("japanese_document.png")
inputs = processor(images=image, return_tensors="pt")
output = model.generate(**inputs, max_new_tokens=1024)
text = processor.decode(output[0], skip_special_tokens=True)
print(text) # Markdown 형식 (표→HTML, 수식→LaTeX)
특장점:
VJRODa 벤치마크(세로쓰기 일본어) 최고 점수
표를 HTML로, 수식을 LaTeX로 자동 변환
자연스러운 읽기 순서 (세로→가로 혼재 문서도 OK)
3B 파라미터지만 olmOCR-bench에서 경쟁력 있음
PaddleOCR — 범용 CJK
from paddleocr import PaddleOCR
ocr = PaddleOCR(lang='japan', use_textline_orientation=True) # 세로쓰기 감지
result = ocr.ocr('japanese_doc.png')
for line in result[0]:
bbox, (text, conf) = line
print(f"{text} ({conf:.0%})")
use_textline_orientation=True가 핵심 — 세로쓰기 텍스트를 자동 감지한다.
KuroNet — 고문서 OCR
메이지 이전(~1868) 일본 고문서의 くずし字(草書)를 현대 문자로 변환.
くずし字 (초서체, 현대인이 읽기 불가)
↓ KuroNet
現代日本語 (현대 일본어)
CODH(인문학 오픈데이터 센터)에서 개발. "miwo" 모바일 앱으로도 사용 가능 — 스마트폰으로 고문서를 찍으면 현대 문자로 변환.
이 분야의 유일한 프로덕션 도구다.
용도별 추천
| 용도 | 추천 |
|---|---|
| 만화 텍스트 | manga-ocr (가장 쉽고 정확) |
| 일본어 비즈니스 문서 | Sarashina2.2-OCR (최고 정밀도) |
| 한중일 혼재 문서 | PaddleOCR (범용 CJK) |
| 가볍게 시작 | EasyOCR (3줄, GPU 불필요) |
| 고문서/くずし字 | KuroNet (유일한 선택지) |
| 클라우드 OK | Google Cloud Vision (일본어 최고 정확도) |
핵심 개념
manga-ocr (★☆☆☆☆) — pip install manga-ocr + 2줄. 만화 텍스트 최강
Sarashina2.2-OCR (★★★☆☆) — 3B 모델. 일본어 문서 최고 정밀도. GPU 필요
PaddleOCR (★★☆☆☆) — use_textline_orientation=True로 세로쓰기 자동 감지
KuroNet (★★☆☆☆) — くずし字(고문서) → 현대 일본어. 유일한 도구