加载中…
加载中…
손글씨도 읽는 PP-OCRv5.
제조, 운송, 의료, 민원 업무처럼 컴퓨터 사용이 적거나 서면 기록이 중요한 현장에서는 지금도 서식에 손으로 적은 문서가 오갑니다.
이런 문서는 스캔본이나 휴대폰 사진처럼 상태가 고르지 않은 이미지로 들어오고, 그 안의 거친 손글씨를 읽어 내야 합니다.
하지만 기존 OCR 모델은 인쇄체 위주로 학습되어 이런 글씨를 제대로 읽지 못합니다. 이 문제를 풀려고 만들어 공개합니다.
PP-OCRv5 한국어 인식 모델을 AI Hub 손글씨·공문서 데이터 460만 단어로 파인튜닝한 모델입니다. 이미 PP-OCRv5를 쓰고 있다면 모델 파일만 바꾸면 됩니다.
RapidOCR 3.x에서 인식 모델과 사전 경로만 바꿉니다.
from huggingface_hub import hf_hub_download
from rapidocr import RapidOCR
repo = "Rebeccaaaaaaaa/korean-handwriting-rec"
engine = RapidOCR(params={
"Rec.model_path": hf_hub_download(repo, "model/rec_korean_hw.onnx"),
"Rec.rec_keys_path": hf_hub_download(repo, "model/ppocrv5_korean_dict.txt"),
})
result = engine("scan.png")
학습 코드는 GitHub에 있습니다.
AS-IS는 기존 PP-OCRv5 한국어 인식 모델(PaddleOCR korean_PP-OCRv5_mobile_rec), TO-BE는 이 모델입니다. 모두 학습에 쓰지 않은 평가 세트로 쟀고, 단어 정확도는 단어 전체가 맞아야 정답으로 칩니다.
| 평가 세트 | AS-IS | TO-BE |
|---|---|---|
| 손글씨 단어 2만 개 (대용량 손글씨 OCR 데이터) | 67.2% | 97.4% |
| 그중 종이에 쓴 서식 | 66.8% | 98.1% |
| 그중 종이에 쓴 자유 글씨 | 73.9% | 96.9% |
| 그중 태블릿에 쓴 서식 | 55.8% | 97.1% |
| 그중 태블릿에 쓴 자유 글씨 | 55.0% | 93.8% |
| 그중 학습에 없던 단어 | 66.7% | 96.3% |
| 그중 AS-IS가 틀린 단어 6,550개 | 0% | 92.9% |
| 학습에 없던 필자의 손글씨 6천 단어 (다양한 형태의 한글 문자 OCR) | 56.7% | 99.1% |
| 학습에 없던 정부 서식 5종의 인쇄 글자 6천 단어 (다양한 형태의 한글 문자 OCR) | 88.7% | 99.2% |
| 그중 숫자가 든 단어 | 95.7% | 99.3% |
| 그중 서식에 미리 인쇄된 항목명 | 92.9% | 97.8% |
| 그중 서식에 기재한 값 | 88.4% | 99.3% |
| 흘림체 문장 1,300개의 CER, 낮을수록 좋음 (한국어 글자체 이미지) | 30.0% | 7.8% |
같은 이미지를 두 모델에 읽힌 결과입니다.
| 종류 | 정답 | AS-IS | TO-BE |
|---|---|---|---|
| 손글씨 | 체납처분유예 | 제납처분예 | 체납처분유예 |
| 손글씨 | 등록면허세 | 등록면해세 | 등록면허세 |
| 손글씨 금액 | 3235원 | 2 | 3235원 |
| 처음 보는 필자의 손글씨 | 이력서 | 이 령서 | 이력서 |
| 처음 보는 필자의 손글씨 | 환율 | 화을 | 환율 |
| 서식 인쇄 금액 | 59,470,000 | 59.470.000 | 59,470,000 |
| 서식 인쇄 날짜 | 2017.10.28 | 201710.28 | 2017.10.28 |
PaddleOCR의 사전학습 모델을 PyTorch로 옮겨 Mac GPU(MPS)에서 두 단계로 파인튜닝했습니다.
글자 사전(11,945자)은 기존 모델 것을 그대로 써서 호환성을 지켰습니다.
학습 데이터는 AI Hub에서 신청해 받을 수 있습니다.
이 모델은 과학기술정보통신부의 재원으로 한국지능정보사회진흥원의 지원을 받아 구축된 "대용량 손글씨 OCR 데이터"와 "다양한 형태의 한글 문자 OCR"을 활용하여 학습했고, "한국어 글자체 이미지"로 평가했습니다. 이 데이터는 AI 허브(aihub.or.kr)에서 다운로드할 수 있습니다.
This model was trained using datasets from The Open AI Dataset Project (AI-Hub, S. Korea), "대용량 손글씨 OCR 데이터" and "다양한 형태의 한글 문자 OCR", and evaluated with "한국어 글자체 이미지". All data information can be accessed through AI-Hub (www.aihub.or.kr).
기반 모델과 글자 사전은 PaddleOCR, PyTorch 변환은 PaddleOCR2Pytorch를 사용했습니다(둘 다 Apache-2.0). 이 저장소도 Apache-2.0 라이선스입니다.