OCR 개요
NHN 클라우드 OCR 연구팀 김명규가 자사 OCR 서비스의 성능 향상 경험을 주제로, OCR이 사람이 쓰거나 인쇄한 문자를 기계가 다시 읽을 수 있게 변환하는 알고리즘임을 설명하며 세션을 연다.
사업자등록증·자동차 번호판·신분증·신용카드처럼 사람이 일일이 옮겨 적어야 하는 문서를 OCR이 1초 안에 처리해 주는 활용 사례와, 페이코 앱의 신용카드 자동 인식 상용화 사례를 소개한다.
OCR이 이미지 속 모든 텍스트의 위치를 찾는 텍스트 디텍션과, 그 결과를 입력으로 받아 기계가 읽는 문자열로 변환하는 텍스트 리코그니션 두 모델로 구성됨을 신용카드 예시로 설명한다.
텍스트 리코그니션이 RNN에서 LSTM·GRU를 거쳐 트랜스포머로 발전해 온 흐름과, 언어 번역용으로 등장한 트랜스포머를 이미지 입력에 맞게 CNN 백본과 함께 OCR에 적용한 과정을 설명한다.
오타를 교정하는 랭귀지 모델이 알파벳 26자인 영어에선 효과적이지만, 자모 조합으로 수천 자에 이르는 한글에선 교정이 어렵고 성능 이득이 작았던 실험 결과와 그 원인을 분석한다.
반응 속도 탓에 파라미터를 무작정 늘리기 어려운 OCR 특성상, CNN 백본·포지셔널 인코딩 최적화, Depthwise·Pointwise 컨볼루션 삽입, Deformable 셀프어텐션 등으로 바닐라 트랜스포머를 최적화한 팁을 공유한다.
강민석이 텍스트 디텍션 모델을 백본(ResNet·ResNeXt·SENet·EfficientNet, ViT·Swin), Neck(FPN), Head(리그레션·세그멘테이션)로 나눠 각 구성요소의 연구 흐름과 아이디어를 설명한다.
학습 데이터를 못 구하는 신용카드 양각형과 신분증 홀로그램 하드케이스를, 엠보싱 렌더링·이미지 하모나이제이션 등 합성 데이터로 만들어 학습시켜 인식 성능을 끌어올린 사례를 공유한다.