
구즈시지는 메이지 이전 일본 문헌에 널리 쓰인 흘림글자다. 글자 모양이 다양하고 서로 이어져 있어 현대 일본어 독자도 바로 읽기 어렵다.1 따라서 구즈시지 인식 모델은 단순한 OCR 도구를 넘어, 역사문서에 접근하고 해석하는 비용을 낮추는 기술에 가깝다.
최근 구즈시지 인식 모델 개선 논의에서 주목할 지점도 여기에 있다. 중요한 질문은 “모델이 얼마나 정확한가”만이 아니다. 실제 자료를 다루려면 검출, 인식, 경량화, 배포 환경까지 하나의 파이프라인으로 봐야 한다.
구즈시지 인식은 하나의 모델이 아니라 파이프라인이다
구즈시지 인식은 보통 두 단계로 나뉜다. 먼저 이미지에서 글자나 행의 위치를 찾고, 그다음 해당 영역의 문자를 읽는다. 최근 구현 사례에서는 nakamura196/yolov11x-codh-char 모델로 글자 박스를 검출하고, NDL koten-OCR-Lite로 행 검출과 문자 인식을 처리했다.2
이때 nakamura196/yolov11x-codh-char는 MIT 라이선스이며, NDL koten-OCR-Lite는 RTMDet-s 라인 검출과 PARSeq 문자 인식을 포함하고 CC BY 4.0 라이선스를 따른다.2 실제 서비스나 연구 도구로 확장하려면 성능뿐 아니라 라이선스 조건도 함께 확인해야 하는 이유다.
더 흥미로운 변화는 실행 환경이다. 해당 파이프라인은 Python 기반 Gradio/Hugging Face Space에서 JS/Node 기반 Next.js 환경으로 포팅됐다.2 YOLOv11x 문자 검출 모델은 ONNX로 내보내 Next.js API Route에서 제공할 수 있고, Ultralytics YOLO는 ONNX 내보내기를 기본 지원한다.2
이 변화의 의미는 분명하다. 구즈시지 인식은 연구용 데모에 머물지 않고 웹 서비스 구조에 가까워지고 있다. 그만큼 모델 자체의 성능뿐 아니라 전처리, 후처리, 타일링, 추론 방식, 배포 환경을 함께 설계해야 한다.
경량화는 속도를 주지만, 누락 위험도 만든다
ONNX 변환은 배포를 쉽게 만들지만, 모델 크기와 실행 시간은 곧바로 현실적인 문제가 된다. 해당 사례에서 fp32 ONNX 모델은 약 217MB였고, int8 동적 양자화를 적용하면 크기가 58MB로 줄어 CPU 추론도 빨라졌다.3
하지만 경량화가 항상 좋은 선택은 아니다. 역사문서 샘플에서는 recall 저하가 크게 나타났고, 검출 수가 319개에서 252개로 줄었다.3 단순히 위치가 조금 흔들린 것이 아니라, 낮은 확신도의 글자를 놓친 것이다.
따라서 판단 기준은 “빠른가”가 아니라 “무엇을 놓쳐도 되는가”에 가깝다. 교육용 데모나 빠른 탐색 도구라면 경량 모델이 유용할 수 있다. 반대로 연구용 전사 보조처럼 누락이 치명적인 작업이라면 fp32 모델을 유지하는 편이 더 안전할 수 있다.
배포 환경은 모델 선택의 일부다
구즈시지 OCR을 실제로 쓰려면 어디에서 실행할지도 중요하다. 서버리스 환경은 편리하지만, 무거운 OCR 파이프라인에는 제약이 따른다. Vercel Serverless Function은 용량과 실행 시간 제한이 있어 200MB급 모델이나 SAHI 같은 고해상도 타일 추론에는 부담이 크다.4
반면 컨테이너나 일반 Node 서버에서는 같은 모델을 더 안정적으로 운용할 수 있다.4 즉 구즈시지 인식 모델의 개선은 알고리즘만의 문제가 아니다. 어떤 문서를 대상으로 할지, 어느 정도의 속도와 누락을 허용할지, 어떤 환경에 배포할지를 함께 결정해야 한다.
구즈시지 OCR을 볼 때 확인할 것
구즈시지 인식 모델을 평가할 때는 다음 질문이 실용적이다.
글자 검출과 문자 인식이 어떻게 분리되어 있는가?
역사문서에서 낮은 확신도의 글자를 얼마나 놓치는가?
ONNX 변환이나 int8 양자화 후 recall이 유지되는가?
모델과 OCR 구성요소의 라이선스는 사용 목적에 맞는가?
서버리스, 컨테이너, 일반 서버 중 어느 환경에 배포할 것인가?
결국 구즈시지 OCR의 다음 과제는 “더 잘 읽는 모델”만이 아니다. 실제 역사자료를 다루는 사람에게 필요한 것은 정확도, 재현율, 속도, 라이선스, 배포 가능성을 함께 보는 균형감이다. 구즈시지 인식 모델의 가치는 이 균형을 얼마나 잘 맞추느냐에 달려 있다.
1Restoration-Guided Kuzushiji Character Recognition Framework under Seal Interference
2Porting Kuzushiji Character Detection and Classical-Japanese OCR to JS/Next.js Without Python
3Porting Kuzushiji Character Detection and Classical-Japanese OCR to JS/Next.js Without Python
4Porting Kuzushiji Character Detection and Classical-Japanese OCR to JS/Next.js Without Python
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
