OCR은 어떻게 작동하나요?(전문 용어 없는 단계별 가이드)

광학 문자 인식(OCR)은 이미지 정리, 텍스트 감지, 문자 인식, 출력 정제의 순차적 과정을 통해 텍스트 이미지를 기계가 읽을 수 있는 문자로 변환하는 기술입니다. 스캔한 문서를 보고 컴퓨터가 어떻게 인쇄된 단어를 "읽는지", 또는 때로는 우스꽝스럽게 잘못 읽는 이유가 궁금했다면, 이 글에서 각 단계를 평이한 언어로 설명합니다.

수작업 입력은 그만 — AI가 대신 읽어드립니다
이미지나 PDF를 업로드하세요 — 10초 만에 정형 데이터로
지금 체험하기
회원가입 불필요 · 카드 불필요 · 10초 내 결과
광학 문자 인식(OCR) 기술이 스캔한 문서와 이미지를 단계별 과정을 통해 기계가 읽을 수 있는 텍스트로 변환합니다

핵심 요약

  1. OCR은 읽는 것이 아니라 정밀한 매칭 게임을 합니다. 알 수 없는 픽셀 덩어리를 저장된 문자 모양 라이브러리와 비교합니다. 'T'가 'Total'의 첫 글자여서가 아니라 획으로 인식합니다.
  2. OCR의 가장 위험한 오류는 눈에 보이지 않습니다. 인접한 문자가 하나로 합쳐져도("rn"이 "m"이 됨) 출력은 여전히 유효한 영어 단어처럼 보이며, 이후 모든 단계에서 이 오류를 진실로 받아들입니다.
  3. 99%의 문자 인식 정확도는 여전히 데이터 필드의 15~40%에 오류가 있음을 의미합니다. OCR은 "이 페이지에 어떤 문자가 있나요?"에 답할 뿐, "이 숫자 중 어느 것이 청구서 합계인가요?"에는 답하지 않기 때문입니다.

OCR이 실제로 하는 일(과 하지 않는 일)

OCR은 단일 마법 같은 단계가 아닙니다. 픽셀을 텍스트로 변환하는 4단계 조립 라인입니다. 한 번도 문자를 본 적 없는 사람에게 읽기를 가르친다고 상상해보세요. 먼저 페이지의 어떤 표시가 글자이고 어떤 것이 얼룩이나 종이 질감인지 구별하도록 도와야 합니다. 그런 다음 각 글자가 인식 가능한 모양을 가지고 있다는 것을 가르쳐야 합니다. 대문자 A는 어떤 글꼴에서든 대략 삼각형 모양에 가로선이 있다는 식입니다. 그 후에야 글자를 단어로, 단어를 문장으로 조합할 수 있습니다. 이것이 바로 OCR 엔진이 작동하는 방식입니다. 문서를 계층적으로 처리하여 한 번에 한 단계씩 기초부터 이해를 구축합니다.

하지만 중요한 한계가 있습니다. OCR은 모양을 읽을 뿐 의미를 이해하지는 못합니다. 엔진은 일련의 획이 문자 'T'를 형성한다는 것은 알지만, 'T'가 'Total'이나 'Tax'의 첫 글자라는 것은 전혀 모릅니다. 문서를 디지털화할 뿐, 이해하지는 못합니다. 이러한 차이 때문에 OCR 출력은 검색 가능한 PDF에는 유용하지만 스프레드시트에 구조화된 데이터가 필요할 때는 부족합니다. OCR이 무엇이고 세 가지 기술 세대가 어떻게 생겼는지에 대한 전체 개요는 OCR이 무엇이며 어떻게 발전해왔는지에 대한 가이드를 참조하세요.

한눈에 보는 4단계 OCR 파이프라인

무료 Tesseract부터 상용 시스템까지 모든 OCR 엔진은 동일한 4단계 워크플로를 따릅니다. 각 스테이션이 하나의 특정 작업을 수행하는 공장 조립 라인이라고 생각하세요. 한 스테이션의 출력이 다음 스테이션의 입력이 됩니다. 어떤 스테이션이라도 제대로 작동하지 않으면 이후 모든 스테이션의 결과가 나빠집니다.

1

전처리

이미지를 정리합니다. 노이즈를 제거하고, 기울기를 보정하며, 대비를 조정합니다. 엔진은 명확히 볼 수 없는 것은 읽을 수 없습니다.

2

텍스트 감지

텍스트를 찾습니다. 이미지의 어떤 부분에 문자가 있고 어떤 부분에 사진, 로고 또는 빈 공간이 있는지 식별합니다. 그런 다음 텍스트를 줄, 단어, 개별 문자로 나눕니다.

3

문자 인식

각 문자의 모양을 알려진 문자, 숫자, 기호 라이브러리와 대조하여 식별합니다. 이것이 OCR의 핵심 단계이며, 다른 모든 단계는 이를 지원합니다.

4

후처리

출력을 다듬습니다. 단어를 사전과 대조하고, 문맥을 사용하여 모호한 문자를 해결하며, 출력 파일에 맞게 텍스트 형식을 지정합니다.

이제 각 단계를 자세히 살펴보겠습니다. 엔진이 실제로 무엇을 하는지, 왜 중요한지, 그리고 이해를 돕기 위한 구체적인 비유와 함께 설명합니다.

1단계 — 전처리: 이미지 읽기 전 정리하기

엔진이 글자 하나를 인식하기 전에, 먼저 인식 단계를 방해할 요소를 없애기 위해 이미지를 정리해야 합니다. 이는 책을 읽기 전에 안경을 닦는 것과 같습니다. 렌즈가 더럽거나 기울어져 있거나 흠집이 있으면 글자를 또렷이 읽을 수 없습니다.

OCR 엔진에 도착하는 스캔 문서는 완벽한 상태인 경우가 드뭅니다. 페이지가 스캐너에 약간 비뚤게 놓였을 수 있고(이를 기울어짐이라고 합니다), 스캔본에 먼지 얼룩, 팩스 아티팩트, 또는 책등 그림자가 포함될 수 있습니다. 잉크와 종이 사이의 대비가 낮을 수도 있습니다. 특히 오래된 문서, 카본 사본, 또는 바랜 영수증의 경우가 그렇습니다. 전처리 단계에서는 실제 판독이 시작되기 전에 이 모든 문제를 해결합니다.

가장 중요한 전처리 단계는 이진화입니다. 텍스트와 배경을 분리하는 임계값을 사용하여 이미지를 순수한 흑백으로 변환하는 과정입니다. 오츠(Otsu) 방법이라는 일반적인 기법은 픽셀 강도의 히스토그램을 분석하여 최적의 임계값을 자동으로 선택합니다. 선명한 검은색 텍스트가 밝은 흰색 페이지 위에 있는 스캔 문서를 본 적이 있다면, 그것이 바로 이진화의 결과입니다.

다른 전처리 작업으로는 기울기 보정(비뚤어진 텍스트를 바로잡기 위해 이미지 회전), 노이즈 제거(먼지 얼룩과 스캐너 아티팩트 필터링), 잡티 제거(구두점이나 발음 구별 부호로 오인될 수 있는 불필요한 자국 제거), 그리고 대비 정규화(희미한 텍스트를 읽을 수 있도록 밝기 조정)가 있습니다.

이 단계에서 많은 OCR 실패의 원인이 이미 만들어집니다. 이진화 과정에서 소문자의 꼬리가 잘리거나 인접한 문자가 덩어리로 합쳐지면, 아무리 정교한 알고리즘을 가진 인식 단계라도 이를 올바르게 처리할 수 없습니다. 쓰레기를 넣으면 쓰레기가 나옵니다. OCR에서는 이 말이 모든 단일 픽셀에 적용됩니다.

전처리가 제대로 이루어지지 않으면 인식도 제대로 될 수 없습니다. 아무리 뛰어난 문자 매칭 엔진이라도 정리 단계에서 손실된 것을 복구할 수는 없습니다.

2단계 — 텍스트 감지: 단어가 있는 위치 찾기

이제 이미지가 깨끗해졌으면, 엔진은 페이지의 어떤 부분에 실제로 텍스트가 있는지 파악해야 합니다. 이것이 레이아웃 분석 단계입니다. 신문 페이지를 보는 것과 같다고 생각하면 됩니다. 헤드라인, 사진 캡션, 사이드바, 인용문의 차이를 즉시 알 수 있지만, OCR 엔진은 이 차이를 픽셀 단위로 학습해야 합니다.

엔진은 전처리된 이미지를 스캔하여 텍스트 영역(문자가 밀집된 영역)을 식별하고, 이미지, 로고, 장식 테두리, 빈 공간과 분리합니다. 그런 다음 각 텍스트 영역을 점진적으로 더 작은 단위로 나눕니다:

1. 블록 — 관련 콘텐츠(텍스트 열, 표, 헤더)를 포함할 가능성이 큰 큰 직사각형 영역입니다.

2. 줄 — 각 블록 내에서 엔진은 문자를 포함하는 가로 픽셀 띠를 찾아 개별 텍스트 줄을 식별합니다.

3. 단어 — 각 줄 내에서 문자 모양 사이의 간격을 측정하여 문자를 단어로 그룹화합니다.

4. 문자 — 마지막으로 각 단어는 인식 엔진으로 전달될 개별 문자 세그먼트로 분할됩니다.

이 단순해 보이는 단계에는 상당한 어려움이 숨어 있습니다: 비례 폰트입니다. 비례 폰트에서는 두 글자(예: "r"과 "n") 사이의 간격이 압축된 서체로 설정된 두 단어 사이의 간격보다 더 넓을 수 있습니다. 엔진은 간격이 같은 단어 내의 두 글자를 분리하는지, 아니면 두 단어를 분리하는지 결정해야 합니다. 일반적인 문자 너비, 공백 임계값, 언어별 패턴 같은 휴리스틱을 사용하지만, 이 휴리스틱이 항상 옳은 것은 아닙니다. 추측이 틀리면 단어가 잘못 합쳐지거나 분할되고, 이후 모든 단계가 그 오류를 이어받습니다.

감지 오류는 오류처럼 보이지 않기 때문에 가장 교활한 유형의 OCR 실패입니다. 합쳐진 단어는 사람 검토자에게는 합법적인(익숙하지 않더라도) 단어처럼 보입니다. 엔진이 "rn"을 "m"으로 읽으면 "commercial"이 "commeicial"이 됩니다. 맞춤법 검사기가 잡아낼 오류이지만, 출력이 맞춤법 검사를 거치는 경우에만 그렇습니다.

3단계 — 문자 인식: OCR의 핵심

사람들이 "OCR"이라고 말할 때 실제로 의미하는 단계가 바로 이것입니다. 엔진은 분리된 각 문자 이미지를 분석하여 그것이 어떤 글자, 숫자, 또는 기호인지 결정합니다. 아이가 낱말 카드로 알파벳을 배우는 모습을 상상해보세요. Arial체 A, Times New Roman체 A, 손글씨 A 등 다양한 서체의 문자 A 그림을 보여주면서 스타일에 관계없이 인식할 수 있도록 가르칩니다. OCR 엔진도 똑같은 일을 하지만, 수백만 장의 낱말 카드를 가지고 있으며 이를 밀리초 단위로 처리합니다.

문자 인식에는 두 가지 기본적인 접근 방식이 있습니다:

패턴 매칭(템플릿 OCR) — 엔진은 알려진 서체와 크기의 문자 이미지(글리프) 데이터베이스를 유지합니다. 새로운 문자를 만나면 픽셀 패턴을 저장된 각 글리프와 비교하여 가장 일치하는 것을 선택합니다. 이 접근 방식은 수십 년간 표준이었으며, 1974년 HP 연구소에서 처음 개발되어 현재 Google이 유지 관리하는 오픈소스 OCR 엔진인 Tesseract를 구동합니다. 패턴 매칭은 문서가 엔진이 이전에 본 서체를 사용할 때 잘 작동합니다. 서체가 드물거나, 텍스트가 손글씨이거나, 이미지 품질이 저하되면 입력이 저장된 템플릿과 더 이상 유사하지 않기 때문에 실패합니다.

특징 추출(지능형 OCR) — 엔진은 전체 픽셀 패턴을 비교하는 대신 각 문자를 구성하는 특징(선, 곡선, 루프, 교차점, 끝점, 각도)으로 분해합니다. 문자 "A"는 한 점에서 만나는 두 개의 대각선과 하나의 가로 막대를 가지고 있습니다. 문자 "O"는 하나의 닫힌 루프를 가지고 있습니다. 서체나 크기에 관계없이 이러한 특징을 식별함으로써 엔진은 한 번도 본 적 없는 문자도 인식할 수 있습니다. 대부분의 최신 OCR 엔진은 이 접근 방식을 사용하며, 종종 814,255개의 레이블이 지정된 문자 이미지(숫자와 대소문자 포함)로 구성된 EMNIST(Extended MNIST)와 같은 데이터 세트로 훈련된 신경망으로 강화됩니다.

두 접근 방식의 중요한 한계는 동일합니다. 즉, 모양은 식별하지만 의미는 식별하지 못한다는 것입니다. 엔진은 픽셀 그룹이 문자 "5"라고 99% 확신할 수 있지만, 그 "5"가 수량인지, 가격인지, 날짜인지, 방 번호인지, 모델 코드인지는 알려줄 수 없습니다. 문자를 일관된 문서의 일부가 아닌 분리된 기호로 읽습니다. 이것이 바로 전통적인 OCR 엔진이 깨끗한 송장에서 99%의 문자 정확도를 달성하면서도 송장 합계를 찾을 수 없는 출력을 생성하는 이유입니다. 모든 문자는 정확하지만, 그중 어느 것도 레이블이 지정되지 않았습니다.

이 단계가 전통적인 OCR과 최신 AI 기반 접근 방식 간에 어떻게 다른지, 문서 유형별 정확도 벤치마크를 포함한 자세한 비교는 AI OCR과 전통적인 OCR 정확도 비교 분석을 참조하세요.

4단계 — 후처리: 출력 결과를 읽기 쉽게 만들기

문자 인식 단계의 원시 출력은 추측된 문자들의 문자열입니다. 일부는 맞고 일부는 틀리며, 모든 문맥이 빠져 있습니다. 후처리는 엔진이 자신의 실수를 스스로 수정하려고 시도하는 단계입니다. 단순한 사전 조회가 아니라 주변 문맥을 기반으로 "there", "their", "they're"의 차이를 구분할 수 있는 매우 적극적인 자동 수정 시스템이라고 생각하면 됩니다.

가장 일반적인 후처리 기술은 다음과 같습니다:

사전 기반 교정

엔진이 인식된 각 단어를 언어 사전과 대조합니다. "reciept"가 나타나면 "receipt"로 수정됩니다. "m0del"이라는 단어에서 중간 문자가 "O"인지 "0"인지 확실하지 않은 경우 사전을 통해 "model"이어야 함을 확인합니다.

문맥 기반 모호성 해소

숫자 "1"과 소문자 "l"처럼 문자가 모호할 때 엔진은 주변 문자를 검사하여 결정합니다. "C1ient"는 "Client"로 수정되고("C1ient"는 단어가 아니므로), "Page 1"은 숫자를 유지합니다("Page l"은 말이 안 되므로).

신뢰도 점수

인식된 모든 문자에는 신뢰도 점수가 부여됩니다. 신뢰도가 낮은 영역은 사람의 검토를 위해 표시되거나, 다른 인식 매개변수로 재처리되거나, 다른 알고리즘을 사용한 2차 인식 과정을 거칠 수 있습니다.

서식 재구성

엔진이 인식된 텍스트를 문서의 원래 레이아웃으로 재조립합니다. 줄 바꿈, 단락 간격, 표 정렬 및 읽기 순서를 유지합니다. 이 단계를 통해 원본 스캔 페이지처럼 보이는 검색 가능한 PDF가 생성됩니다.

이 모든 지능에도 불구하고 후처리에는 근본적인 한계가 있습니다. 맞춤법 오류는 수정할 수 있지만 의미론적 의미를 추가할 수는 없습니다. 출력 $1,234.56은 이제 유효한 통화 금액임을 알 수 있지만, 엔진은 여전히 이것이 송장 총액인지, 라인 항목 소계인지, 세금 금액인지, 참조 번호인지 알지 못합니다. 후처리는 텍스트를 읽을 수 있게 만들 뿐, 데이터로 사용 가능하게 만들지는 않습니다.

모든 것을 바꾸는 차이점 — 기존 OCR과 AI 추출의 비교

위에서 설명한 4단계 파이프라인은 기존 OCR 방식이며, 1990년대 이후 근본적으로 변하지 않았습니다. 현대 AI 기반 추출은 모든 단계에서 다르게 작동합니다.

이 차이를 이해하면 기존 OCR이 검색 가능한 PDF나 텍스트 아카이브 같은 작업에는 적합하지만, 스프레드시트나 데이터베이스, 회계 시스템 같은 구조화된 데이터가 필요할 때는 부족한 이유가 명확해집니다. 아래 표는 각 파이프라인 단계가 기존 방식과 ImageToTable.ai 같은 현대 AI 추출 도구에서 어떻게 다른지 보여줍니다.

파이프라인 단계기존 OCRAI 추출 (비전 모델)
전처리매우 중요 — 정리가 불량하면 인식 실패가 보장됨. 이진화, 기울기 보정, 잡음 제거 등 무거운 알고리즘 전처리가 필수.덜 중요 — 비전 모델은 적당한 노이즈, 낮은 대비, 기울어진 각도에서도 읽을 수 있음. 기본적인 정리는 여전히 도움이 되지만 필수 조건은 아님.
텍스트 감지줄/단어/문자 분할을 위한 규칙 기반 휴리스틱. 복잡한 레이아웃, 다단 문서, 혼합 콘텐츠(텍스트+표+이미지)에서 작동 실패.전체 페이지 이해 — 모델이 문자 경계를 먼저 감지하지 않고 시각적 맥락으로 헤더, 표, 바닥글, 필드 레이블을 식별.
문자 인식고정된 문자 데이터베이스에 대한 패턴 매칭 또는 특징 추출. 각 문자가 개별적으로 식별됨.모델이 시각적 맥락에서 전체 단어, 구문, 값을 읽음. 글리프 템플릿과 일치시켜서가 아니라 위치와 주변 정보를 바탕으로 "INV-2026-001"을 송장 번호로 인식.
후처리사전 기반 보정 + 형식 재구성. 출력은 필드 레이블이나 데이터 구조 없이 일반 텍스트 또는 서식 문서.의미론적 필드 매핑 — 모델이 각 값을 필드 이름과 쌍으로 출력(예: "송장 번호: INV-2026-001"). 수동 레이블링이나 재구성 불필요.
최종 결과텍스트 파일 또는 검색 가능한 PDF. 모든 문자가 있지만, 각 필드를 읽고 복사해서 올바른 스프레드시트 열에 붙여넣어야 함.구조화된 표 또는 JSON 객체. 값이 이미 레이블링되고 정리되어 스프레드시트나 회계 시스템에 바로 사용 가능. 복사-붙여넣기 단계 불필요.

근본적인 차이는 기존 OCR이 픽셀을 문자로 변환하는 반면, AI 추출은 픽셀을 의미로 변환한다는 점입니다. 하나는 검색 가능한 문서를 제공하고, 다른 하나는 사용 가능한 데이터를 제공합니다. AI 추출 범주가 어떻게 작동하고, 언제 적합하며, 다른 접근 방식과 어떻게 비교되는지에 대한 완전한 분석은 허브 문서인 AI 문서 추출이란 무엇인가를 참조하세요.

또한 AI 버전이 문자 하나하나가 아닌 페이지 전체를 한 번에 처리하는 비전-언어 모델로 읽기 단계를 어떻게 처리하는지 정확히 이해하려면 AI OCR이란 무엇인가 문서에서 기술을 자세히 다루고 있습니다.

자주 묻는 질문

OCR로 필기체를 읽을 수 있나요?

기존 OCR은 필기체 인식에 어려움을 겪습니다. 인쇄체의 경우 정확도가 50~70% 수준이며, 필기체는 50% 미만입니다. 그 이유는 구조적인 한계 때문입니다. 문자 인식 단계에서 알려진 글리프 데이터베이스와 모양을 대조하여 문자를 식별하는데, 필기체는 템플릿 라이브러리로 커버할 수 있는 것보다 훨씬 다양한 변형을 보이기 때문입니다. 최신 AI 기반 OCR은 개별 문자 모양을 대조하는 대신 문맥상 단어를 읽기 때문에 인쇄체 필기의 경우 75~93%로 훨씬 뛰어난 성능을 보입니다. 하지만 완전한 자유형 필기체는 여전히 모든 시스템에 어려운 과제입니다.

인쇄된 텍스트에 대한 OCR 정확도는 어느 정도인가요?

300 DPI로 스캔한 깨끗한 타자 문서의 경우, 최신 OCR 엔진은 95~99%의 문자 정확도를 달성합니다. 이 수치는 품질이 낮은 스캔, 특이한 글꼴, 대비가 낮은 원본 또는 복잡한 레이아웃의 문서에서는 떨어집니다. 중요한 점은 문자 정확도가 필드 정확도와 같지 않다는 것입니다. 99%의 문자 정확도에서도 관심 있는 개별 데이터 필드의 15~40%에 오류가 포함될 수 있습니다. 이는 발생하는 문자 오류가 숫자 필드(한 자리 숫자가 잘못되면 전체 값이 변경됨)와 필드 경계(인접 필드의 문자가 병합됨)에 집중되는 경향이 있기 때문입니다.

OCR과 문서 추출은 같은 것인가요?

아닙니다. OCR은 텍스트 이미지를 기계가 읽을 수 있는 문자로 변환합니다. 즉, 텍스트를 디지털화합니다. 문서 추출은 한 단계 더 나아갑니다. 어떤 문자가 어떤 데이터 필드(송장 번호, 날짜, 합계, 공급업체 이름)에 속하는지 식별하고 레이블이 지정된 열에 구조화된 데이터로 출력합니다. OCR은 "이 페이지에 어떤 문자가 있습니까?"라는 질문에 답합니다. 문서 추출은 "이 문서에 어떤 데이터가 포함되어 있습니까?"라는 질문에 답합니다. 이 두 질문의 차이는 여전히 분류해야 하는 텍스트 파일과 즉시 사용할 수 있는 스프레드시트의 차이입니다.

OCR은 이미지뿐만 아니라 PDF에서도 작동하나요?

OCR은 모든 이미지 기반 입력에서 작동합니다. 스캔된 PDF(기본적으로 PDF 컨테이너에 담긴 이미지), 순수 디지털 PDF(이미지로 처리될 때), JPG, PNG, TIFF 등이 해당됩니다. 중요한 차이점은 스캔된 PDF(텍스트 레이어가 없는 페이지 이미지)와 네이티브 PDF(선택 가능한 텍스트 포함) 사이에 있습니다. 스캔된 PDF는 검색 가능해지기 위해 OCR을 거쳐야 합니다. 네이티브 PDF는 이미 텍스트를 포함하고 있으므로 OCR이 필요하지 않지만, 특정 데이터 필드를 스프레드시트로 추출하려면 여전히 추출 과정이 필요할 수 있습니다.

OCR과 OMR의 차이점은 무엇인가요?

OCR(광학 문자 인식)은 이미지에서 텍스트(문자, 숫자, 구두점)를 읽습니다. OMR(광학 마크 인식)은 페이지의 마크(설문지의 채워진 동그라미, 양식의 체크박스, 투표용지의 체크 표시)를 읽습니다. OMR은 미리 정의된 위치에 마크가 있는지 없는지만 감지하면 되고, 마크가 나타내는 문자가 무엇인지 식별할 필요가 없기 때문에 더 간단합니다. 많은 최신 문서 처리 도구는 텍스트 필드용 OCR과 체크박스 및 선택 표시용 OMR을 결합하여 사용합니다.

OCR의 작동 방식을 이해하는 것은 언제면 충분하고, 언제 더 많은 것이 필요한지 알기 위한 첫걸음입니다. 4단계 파이프라인은 수십 년간 문서 디지털화에 효과적으로 사용되어 왔지만, '읽을 수 있는 텍스트'와 '사용 가능한 데이터' 사이의 간극은 기존 OCR이 설계상 메우지 못한 부분입니다. AI 문서 추출이 단순한 문자 인식을 넘어 의미를 읽어내어 그 간극을 어떻게 메우는지 알아보세요.

📮 contact email: [email protected]