글로벌 서비스의 문서 자동화 기능을 개발하던 엔지니어가 한국어와 일본어가 섞인 PDF 파일을 업로드한다. 하지만 결과물은 깨진 글자와 엉뚱한 위치의 텍스트 박스로 가득하다. 영어 전용 모델을 다국어로 확장하기 위해 단순히 지원 문자 수를 늘려보았지만, 실제 인식률은 거의 나아지지 않는 상황에 직면한다.
Nemotron OCR v2의 성능 지표와 데이터 구성
Nvidia가 공개한 Nemotron OCR v2(다국어 광학 문자 인식 모델)는 6개 언어에 대해 1200만 장의 합성 학습 이미지를 사용했다. 이를 통해 비영어권 언어의 NED(Normalized Edit Distance, 텍스트 오차를 측정하는 지표) 점수를 기존 0.56-0.92 수준에서 0.035-0.069까지 낮췄다. 처리 속도는 A100(고성능 AI 연산용 GPU) 한 장당 초당 34.7페이지를 처리하는 수준이다.
학습 데이터의 텍스트 소스로는 163개 언어 하위 집합을 포함하는 mOSCAR(다국어 웹 말뭉치 데이터셋)를 활용했다. 폰트 풀은 Google Fonts와 Noto 패밀리를 포함해 언어당 165개에서 1,258개의 고유 폰트를 확보했다. 모델과 데이터셋은 각각 nvidia/nemotron-ocr-v2와 nvidia/OCR-Synthetic-Multilingual-v1 경로로 공개되었다.
합성 데이터 기반의 구조적 인식 최적화
이전 버전인 v1의 실패 원인은 단순한 문자 집합의 부족이 아니었다. 지원 문자를 855개에서 14,244개로 늘렸음에도 성능 향상이 미미했던 이유는 해당 문자들이 실제 이미지에서 어떻게 보이는지에 대한 학습 데이터가 없었기 때문이다. 데이터 수집과 라벨링 비용 문제를 해결하기 위해 선택한 방법이 합성 데이터 생성이다.
단순한 텍스트 렌더링을 넘어 SynthDoG(문서 이미지 합성 생성기)를 수정해 세 가지 수준의 Bounding box(텍스트 영역을 감싸는 사각형 틀)를 동시에 생성했다. 단어, 줄, 문단 단위의 정밀한 주석을 생성하고 이를 Relation graph(텍스트 간의 읽기 순서를 정의한 연결망)로 연결했다. 이는 다단 레이아웃이나 표 구조에서 텍스트가 섞이는 문제를 해결하는 핵심 장치가 된다.
합성 파이프라인에는 다단 텍스트, 흩어진 텍스트, 일본어와 중국어에 필수적인 세로 쓰기, 헤더와 테두리가 있는 표, 점선이 포함된 목차, 파워포인트 슬라이드 및 워드 문서 스타일 등 다양한 레이아웃 템플릿이 적용되었다. 이러한 무작위 레이아웃 학습을 통해 모델은 실제 세계의 복잡한 문서 구조에 대한 불변성을 확보했다.
특히 CJK(한중일 언어군)의 특성을 반영해 인식 단위를 단어에서 줄 단위로 변경했다. 띄어쓰기가 없거나 불분명한 언어 특성상 단어 분리 단계 없이 줄 전체를 인식하는 것이 더 효율적이라는 판단이다. 아키텍처 측면에서는 탐지 백본(특징 추출 신경망)을 공유하여 인식기와 관계 모델이 중복 계산을 하지 않도록 설계함으로써 연산 효율을 극대화했다.
다국어 OCR의 성능 한계는 이제 모델 구조의 정교함보다 실제 문서의 시각적 다양성을 얼마나 정밀하게 프로그래밍하여 합성할 수 있느냐의 문제로 옮겨갔다.




