OCR이란 무엇인가: 실제 업무 문서를 읽어 내는 문자 인식 완전 정리
OCR(Optical Character Recognition)이란, 스캔본이나 사진처럼 이미지로만 존재하는 문서에서 사람이 읽는 글자를 찾아내어 컴퓨터가 다룰 수 있는 텍스트로 바꾸고, 각 글자가 놓인 위치까지 함께 돌려주는 기술입니다.
OCR이 여전히 어려운 이유
인쇄체는 이미 풀린 문제입니다.
깨끗하게 인쇄된 문서에서 글자를 읽는 정확도는 오래전에 실용 수준에 도달했습니다. 그래서 OCR은 다 된 기술이라는 인식이 널리 퍼져 있습니다. 그런데 실제 접수함을 열어 보면 이야기가 달라집니다.
한 금융기관의 접수 문서를 보면, 스캔할 때 접힌 상단의 검은 대역이 진위확인 표식을 절반쯤 삼켰습니다. 다른 문서는 복사를 거듭하면서 여백과 본문 일부가 손실됐습니다. 바닥에 놓고 촬영해 구김과 그림자, 왜곡이 함께 들어온 문서도 있고, 네 번 재전송되며 서로 다른 날짜 표기 네 종류가 한 줄에 겹쳐 쌓인 팩스도 있습니다. 여기에 도장이 표를 침범하고 취소선이 글자를 가로지르며 필기체와 체크박스가 섞입니다.
사람은 이런 문서를 자연스럽게 읽습니다. 문자 인식에서 어려운 것은 인쇄체를 읽는 일이 아니라 이런 상태의 문서를 읽는 일입니다.
OCR의 정확한 정의: 텍스트 추출과 무엇이 다른가
텍스트 추출과 OCR, 세 가지 축의 차이
첫째, 대상이 다릅니다. 텍스트 추출은 디지털로 작성된 문서 안에 이미 들어 있는 문자 데이터를 꺼내는 작업입니다. 원본 파일에 글자가 데이터로 저장되어 있으므로 읽어 오기만 하면 됩니다. OCR은 그 데이터가 없는 이미지를 대상으로 삼습니다. 화면에 보이는 것은 픽셀뿐이고, 그 안에서 글자를 찾아내는 일부터 시작해야 합니다.
둘째, 목표가 다릅니다. 텍스트 추출의 목표는 저장된 문자열을 손실 없이 옮기는 것입니다. OCR의 목표는 이미지에서 사람이 읽을 수 있는 모든 글자를 찾아 텍스트로 복원하는 것입니다. 그래서 텍스트 추출에는 정확도라는 개념이 거의 없지만 OCR에는 정확도가 핵심 지표가 됩니다.
셋째, 성과지표가 다릅니다. 텍스트 추출은 누락 여부만 봅니다. OCR은 문자 단위 정확도와 유사도 기반 정확도를 함께 봅니다. 실제 검증 사례를 보면 인쇄체와 필기체 모두 유사도 기준 98% 수준이 확인된 금융 문서군이 있고, 인식 속도는 가속기 기준으로 장당 0.5초가 측정되었습니다. 손글씨가 포함된 문서군에서 98.7%가 확인된 사례도 있습니다.
두 방식은 대체 관계가 아닙니다. 실제 업무에서는 디지털 원본과 스캔본이 한 업무 안에 섞여 들어오므로, 파일의 성격을 판별해 각각 맞는 방식으로 처리하는 구성이 필요합니다. 원본에 텍스트가 있는데 굳이 이미지로 변환해 인식하면 정확도를 스스로 떨어뜨리는 셈이 됩니다.
업무에 투입할 수 있는 OCR의 6가지 조건
실제 운영에 들어가는 OCR의 6가지 조건
첫째, 문서 상태를 보정할 수 있어야 합니다. 기울어진 스캔과 회전된 페이지, 저해상도 팩스본은 인식 전에 바로잡아야 합니다. 기울기 보정과 회전 보정, 초해상화 처리가 앞단에 들어 있는지 확인하십시오.
둘째, 방해 요소를 견뎌야 합니다. 도장과 워터마크, 취소선, 겹친 글씨, 그림자는 글자를 가리거나 왜곡합니다. 이런 요소가 포함된 실제 문서로 검증하지 않으면 도입 후 성능이 크게 달라집니다.
셋째, 필기체를 처리해야 합니다. 신청서의 상당수 항목은 손으로 채워집니다. 인쇄체 정확도만 제시된 자료로는 실제 성능을 가늠할 수 없으므로, 필기체 정확도를 별도로 요구하시기 바랍니다.
넷째, 글자의 위치를 함께 돌려주어야 합니다. 인식된 문자열만으로는 이후 항목 추출과 검수가 불가능합니다. 각 값의 좌표가 함께 와야 화면에서 원문을 짚어 확인할 수 있습니다.
다섯째, 신뢰도를 항목 단위로 제공해야 합니다. 문서 전체에 하나의 점수를 붙이면 어디를 봐야 할지 알 수 없습니다. 확신이 낮은 부분을 따로 표시해 주어야 예외 중심 검수가 가능해집니다.
여섯째, 처리량을 감당해야 합니다. 월평균이 아니라 몰리는 시간대의 집중도를 기준으로 봅니다. 운영 사례에서는 100장에 3.5분, 500장에 17분, 시간당 약 1,800장 규모가 측정되었습니다.
OCR의 실제 적용 방법
인식 앞에 전처리를 둡니다
인식 정확도를 올리는 가장 빠른 방법은 모델을 바꾸는 것이 아니라 입력 이미지를 정리하는 것입니다. 실제 파이프라인은 문서 형식을 이미지로 변환하고, 페이지를 분할해 정규화하고, 기울기와 회전을 바로잡고, 노이즈를 제거한 뒤에 인식으로 넘어갑니다.
이 앞단이 없으면 뒤에서 아무리 좋은 모델을 써도 손실을 회복할 수 없습니다. 특히 팩스본과 휴대전화 촬영본이 많은 업무라면 전처리 품질이 전체 성능을 좌우합니다.
문자 인식과 구조 인식을 함께 설계합니다
글자만 순서대로 뽑아내면 표와 다단 편집에서 읽는 순서가 어긋납니다. 실제 구성에서는 레이아웃을 먼저 분석해 제목과 본문, 표, 그림 영역을 나누고 읽는 순서를 정한 뒤에 각 영역의 문자를 인식합니다.
이렇게 하면 인식 결과가 곧바로 구조화 데이터로 이어집니다. 순수한 문자열 나열보다 이후 항목 추출과 검색에서 활용도가 훨씬 높아집니다.
후처리 규칙을 함께 둡니다
인식 결과에는 반복되는 패턴의 오류가 있습니다. 숫자와 알파벳이 혼동되거나, 천 단위 구분 기호가 잘못 읽히거나, 특정 서식에서 같은 항목이 반복해서 어긋나는 식입니다.
이런 오류는 모델을 다시 학습시키는 대신 후처리 규칙으로 잡는 편이 빠릅니다. 사업자등록번호의 자릿수, 날짜의 형식, 계좌번호의 구분 기호처럼 형태가 정해진 항목은 규칙으로 검증하면 대부분 걸러집니다.
국내 환경에서의 OCR
국내 업무 문서에는 몇 가지 고유한 조건이 있습니다.
먼저 문서 형식입니다. 한글 워드프로세서 문서가 널리 쓰이고, 이 형식은 이미지로 변환하는 단계부터 별도 처리가 필요합니다. 관공서 서식과 세무 신고서에는 원문자로 표기된 항목번호와 다층 구조의 표가 함께 들어갑니다.
다음은 표기 방식입니다. 천 단위를 마침표로 끊은 문서를 그대로 읽으면 금액의 자릿수가 통째로 어긋납니다. 주민등록번호의 구분 기호가 빠진 채 인쇄된 문서도 흔합니다. 이런 표기는 규칙으로 보정하지 않으면 그대로 업무 오류가 됩니다.
마지막은 접수 경로입니다. 팩스가 여전히 쓰이고, 영업점 스캔과 휴대전화 촬영본이 한 업무 안에 섞입니다. 국내 문서로 학습과 검증을 반복한 사업자가 유리한 영역입니다.
자주 묻는 질문
인쇄체 인식은 그렇습니다. 다만 실제 업무 문서에는 도장과 필기체, 저화질 팩스본, 훼손된 스캔이 섞여 들어오므로 여기서 제품 간 차이가 크게 벌어집니다.
문서군에 따라 다릅니다. 금융 문서 검증에서 인쇄체와 필기체 모두 유사도 기준 98% 수준이 확인된 사례가 있고, 손글씨 문서군에서 98.7%가 확인된 사례도 있습니다.
가능합니다. 다만 필기 편차가 큰 항목은 검증 규칙을 함께 두는 편이 안전합니다. 도입 검토 시 필기체 정확도를 인쇄체와 나누어 확인하시기 바랍니다.
가속기 기준으로 장당 0.5초 수준이 측정되었습니다. 배치 처리에서는 시간당 약 1,800장 규모가 확인되었으며, 문서 상태와 하드웨어에 따라 달라집니다.
바로 쓰기는 어렵습니다. 인식 결과는 글자의 나열이므로, 어떤 항목의 값인지 연결하는 단계와 형식을 검증하는 규칙이 뒤에 필요합니다.
필요 없습니다. 원본에 문자 데이터가 있으면 그대로 추출하는 편이 정확합니다. 파일 성격을 판별해 처리 방식을 나누는 구성이 좋습니다.
가능합니다. 고객사 내부 서버에 설치해 운영하는 구축형 방식이면 외부 통신 없이 동작합니다.