Intro

OCR(Optical Character Recognition)은 이미지 속의 글자를 읽는 기술이다. 조금 생소할 수도 있는 이름인 OCR은 생각보다 [우리의 일상 속 깊숙이 자리하고 있다](https://medium.com/naver-cloud-platform/이렇게-사용하세요-ocr을-어떻게-활용할까요-ada22fb3c3ca#:~:text=문서를 인식하고 사용자,다양하게 활용되고 있습니다.&text=네이버 클로바의 OCR 기술,하여 정확도를 높이고 있습니다.). OCR은 신용카드, 사업자등록증이나 주민등록증, 또는 영수증 등 필요한 서류 정보를 촬영만 하면 전자 정보로 변환 가능하게 해준다. 또, 차량번호판 정보를 추출해서 불법 주차나 속도 위반 차량을 파악하기도 한다. 그리고 아직 종이 문서에서 전자 문서로의 전환이 진행중인 기업들이 한 장씩 문서 내용을 직접 체크해야하는 부담을 줄여 업무 자동화를 가속화해준다. 유입되는 데이터의 크기가 커지고 있는 빅데이터 시대에 사는 우리에게 '사람의 눈을 일일히 거치지 않고 이미지에서 필요한 텍스트 정보만을 추출할 수 있게 되었다'라는 것은 빅데이터를 우리의 편의에 맞게 더 잘 활용할 수 있는 옵션이 생겼음을 의미한다.

신용카드 등록

신용카드 등록

차량 번호판 인식

차량 번호판 인식

사업자등록증 인식

사업자등록증 인식

2019년, AI 자동차수리비 산출시스템 프로젝트를 진행중이였을 때였다. 파손된 차량의 사진을 휴대폰 촬영해서 앱에 업로드하면 수리 금액이 얼마가 나올지 예측하는 이미지 딥러닝 모델을 개발 중이였다. 여느때처럼 퇴근하고 집에 돌아가는 길, 같은 지하철을 타는 팀장님에게 이런 질문을 했었다.

'저희 프로젝트처럼 사물 자체가 아닌 사물의 손상 심도까지 파악할 정도로 이미지 모델의 성능이 좋다면, 글자들을 인식하는 것도 상품화가 가능하지 않을까요?'

그 때 팀장님의 답변은 아직도 기억에 남는다.

"이미지 모델의 형태가 점점 발전하고 있기는 하지만, 결국 이미지 안의 물체의 영역을 탐지하고, 해당 물체가 미리 정의해놓은 클래스의 범주 내에서 분류되는 이미지 모델의 틀은 쉽게 변하기 힘들어요. 한글로 나올 수 있는 한 글자짜리 조합만 생각해도 대략 6, 7천개(링크)쯤은 될 거고, ****거기다 종이 한장에 보통 글자가 못해도 300개 400개 쯤은 될 거예요. 그럼 그 문서 한 장에 나오는 글자들을 모두 올바르게 맞출 확률은 얼마나 될까요? 그리고 이 글자 읽는 태스크를 컴퓨터로 대체하려면 적어도 100장 이상, 아니 10,000장 정도는 거뜬히 처리할 줄 알아야 현장에 사용이 가능할 텐데, 그렇게 된다면 정확도는 얼마 정도가 보장될까요? 그런데 또 모르죠. 나중에는 그 정확도를 확 올릴 수 있는 기술들이 나올수도..."

이미지 분류 모델(image classification model)의 기본 구조이다. 오른쪽 끝에 4개의 박스(행렬)에는 각 클래스에 대한 확률이 담기고, 모델은 가장 높은 확률의 값을 가진 클래스를 예측값으로 뱉는다. 만약 저 행렬의 길이가 6,7천이라면? 올바른 클래스 예측을 위해서 모델 훈련 시키는 시간은 더 길어지고 까다로워질 것이다.

이미지 분류 모델(image classification model)의 기본 구조이다. 오른쪽 끝에 4개의 박스(행렬)에는 각 클래스에 대한 확률이 담기고, 모델은 가장 높은 확률의 값을 가진 클래스를 예측값으로 뱉는다. 만약 저 행렬의 길이가 6,7천이라면? 올바른 클래스 예측을 위해서 모델 훈련 시키는 시간은 더 길어지고 까다로워질 것이다.

문서 예시. 못해도 300자 정도는 될 것이다. 이 글자들을 하나도 틀리지 않고 맞출 확률은? 그리고 글자 몇 개 틀렸을 때 그로 인한 영향은?

문서 예시. 못해도 300자 정도는 될 것이다. 이 글자들을 하나도 틀리지 않고 맞출 확률은? 그리고 글자 몇 개 틀렸을 때 그로 인한 영향은?