OCR용 이미지 전처리 방법
더 나은 OCR 인식을 위한 6단계 파이프라인
사용할 수 있는 OCR 출력과 다시 입력해야 하는 출력의 차이는 종종 엔진 자체와는 무관합니다. 그 차이는 OCR 엔진이 이미지를 보기 전에 이미지에 어떤 처리가 이루어졌는지에서 비롯됩니다. 스마트폰 카메라로 찍은 인보이스, 150 DPI로 팩스된 계약서, 구겨진 영수증 — 이러한 실제 입력값이 바로 전처리가 해결하려는 대상입니다. 잘 설계된 6단계 파이프라인은 노이즈가 많고 기울어지며 대비가 낮은 이미지를 엔진이 깨끗한 인쇄 페이지처럼 읽을 수 있게 만들어 줍니다.

전처리가 OCR 엔진보다 더 중요한 이유

전통적인 OCR 엔진인 Tesseract, ABBYY FineReader, Google Cloud Vision은 300 DPI 평판 스캐너에서 얻은 깨끗하고 대비가 높은 스캔 이미지를 위해 설계되었습니다. 하지만 실제 현장의 이미지는 전혀 그렇지 않습니다. 휴대폰으로 촬영한 인보이스에는 촬영자의 손 그림자, 기울어진 원근, 렌즈 왜곡이 있습니다. 팩스로 받은 구매 주문서는 200 DPI에 모아레 패턴이 나타납니다. 구겨진 영수증은 접힌 자국으로 인위적인 가장자리가 생기고, 글자의 일부는 그림자에 가려지고 다른 부분은 색이 바래 보입니다.
전처리는 이러한 격차를 해소합니다. 문서 이미지 이진화 경진대회(DIBCO)의 벤치마크 결과는 동일한 OCR 엔진과 동일한 문서를 사용할 때 전처리 기법의 선택이 문자 단위 정확도를 15~40퍼센트 포인트까지 좌우할 수 있음을 일관되게 보여줍니다. 변질된 문서에서는 그 격차가 더욱 벌어집니다.
아래의 6단계는 완전한 전처리 파이프라인을 구성합니다. 각 단계는 이전 단계가 적용되었다는 전제하에 순서대로 구성되어 있습니다. 원본 이미지가 이미 깨끗하다면 일부 단계를 건너뛸 수 있지만, 순서는 변경하지 않는 것이 좋습니다.
1단계: 회색조 변환 — 신호 손실 없이 색상 제거
컬러 이미지는 빨강, 초록, 파랑의 세 채널을 저장하며, 각 채널은 고유한 조명 특성을 지닙니다. 혼합 조명 아래에서는 한 채널이 과다 노출되는 동안 다른 채널은 디테일을 유지할 수 있습니다. 세 채널을 모두 독립적으로 처리하면 계산 부하가 늘어나고 OCR에 필요 없는 채널별 노이즈가 발생합니다. 회색조 변환은 휘도 가중치(Y = 0.299R + 0.587G + 0.114B)를 사용하여 세 채널을 단일 휘도 채널로 축소함으로써 OCR이 의존하는 대비 정보를 보존하면서 색상 기반 노이즈를 제거합니다. 그 결과 밝기만 중요한 단일 채널 이미지가 되어 노이즈 제거 단계를 준비하게 됩니다.
2단계: 노이즈 제거 — 가우시안과 미디언 중 선택
노이즈는 여러 원인에서 발생합니다: 휴대폰 카메라의 센서 노이즈, JPEG 압축 아티팩트, 인쇄물의 하프톤 디더링, 스캐너 유리의 먼지 등이 있습니다. 두 가지 필터링 접근 방식이 주로 사용되며, 각각 다른 노이즈 유형에 적합합니다.
가우시안 블러는 각 픽셀을 주변 픽셀과 평균화하여 카메라 센서에서 일반적으로 나타나는 정규 분포 밝기 변동에 효과적입니다. 단점은 가장자리가 부드러워져 9pt 글꼴의 가는 획을 OCR이 분리하기 어려워진다는 점입니다. 3×3 또는 5×5 커널이 일반적으로 충분합니다.
미디언 필터링은 각 픽셀을 주변 픽셀의 중앙값으로 대체하여 스캔 또는 팩스 문서에서 흔히 볼 수 있는 산재된 흰색과 검은색 픽셀인 소금-후추 노이즈에 훨씬 더 효과적입니다. 고립된 노이즈 픽셀을 제거하면서 가장자리는 거의 그대로 보존합니다. 표준 창 크기는 3×3이며, 심하게 손상된 스캔의 경우 5×5를 사용합니다.
실용적인 규칙: 산재된 얼룩은 미디언 필터링을, 전반적인 입자감은 가우시안 블러를 사용합니다. 두 필터 모두 노이즈와 함께 실제 콘텐츠도 제거하므로 신중하게 적용해야 합니다.
3단계: 이진화 — 가장 영향력이 큰 단계

이진화는 그레이스케일 이미지를 순수한 흑백 이미지로 변환합니다. 각 픽셀은 잉크 또는 종이가 됩니다. 이 단계에서 가장 큰 정확도 향상과 가장 큰 정확도 손실이 모두 발생합니다. 지난 10년간 DIBCO 경진대회 결과에 따르면, 최고의 이진화 방법과 단순한 전역 임계값 간의 격차는 손상된 문서에서 평균 30~40퍼센트 포인트에 달합니다. 잘못된 이진화 방법을 선택하는 것은 가장 흔한 전처리 실수입니다.
Otsu 방법은 대부분의 OCR 라이브러리에서 기본 이진화 방식입니다. 검은색과 흰색 픽셀 클래스 간의 분산을 최대화하여 단일 전역 임계값을 계산합니다. 깨끗하고 조명이 고른 스캔 — 균일한 조명 아래 흰 페이지에 검은 텍스트 — 에서 Otsu는 한 번의 패스로 거의 완벽한 이진화를 생성합니다. 문제는 대부분의 실제 문서가 조명이 고르지 않다는 것입니다. 책상에서 촬영한 페이지는 밝은 창 쪽에서 그늘진 쪽으로 그라데이션이 있습니다. Otsu는 전체 이미지에 대해 하나의 임계값을 선택하므로, 그늘진 텍스트는 배경으로 사라지고 밝은 쪽 텍스트는 과다 노출됩니다.
적응형 임계값 처리는 주변 이웃 — 일반적으로 15×15~51×51 픽셀 창 — 을 기반으로 각 픽셀에 대한 로컬 임계값을 계산하여 이 문제를 해결합니다. 각 영역은 자체 임계값을 가지므로, 절반은 그림자에 절반은 햇빛에 있는 문서도 전체 페이지에서 읽을 수 있는 텍스트로 변환됩니다. 적응형 임계값 처리의 개선판인 Sauvola 방법은 다양한 획 두께 — 탄소 복사본과 역사적 문서에서 흔함 — 에서 성능을 향상시키는 편향 항을 추가합니다.
단점은 속도와 매개변수 민감성입니다. 적응형 임계값 처리는 Otsu보다 5~10배 느리며, 창 크기는 출력에 큰 영향을 미칩니다. 너무 작으면 큰 문자가 배경으로 처리되고, 너무 크면 Otsu의 동작에 가까워집니다. 좋은 시작점은 이미지 너비의 약 1/20 크기의 창입니다.
4단계: 기울기 보정 — 텍스트 줄이 잘못 읽히기 전에 회전 교정
기울기는 카메라로 촬영한 문서에서 거의 항상 발생하며, 스캔 문서에서도 흔합니다. 작은 기울기라도 OCR 엔진의 분할 알고리즘이 수평 기준선을 가정하기 때문에 OCR 정확도에 불균형적으로 큰 영향을 미칩니다. Pattern Recognition 저널에 발표된 연구는 그 효과를 정확히 측정했습니다: 5°에서 문자 수준 정확도가 15–20% 감소합니다. 10°에서는 줄이 행 경계와 정렬되지 않아 오류율이 40%를 초과합니다. 15°에서는 대부분의 OCR 엔진이 텍스트를 줄 바꿈 경계 없이 단일 병합된 문자 스트림으로 출력합니다.
표준 기울기 보정 방법은 허프 변환을 사용합니다. 이는 직선을 감지하고 지배적인 각도를 계산한 다음 이미지를 해당 각도의 음수만큼 회전시킵니다. 더 간단한 대안은 투영 프로파일을 계산하는 것입니다. 두 방법 모두 깨끗한 문서에서 0.1° 이내로 수렴합니다. 노이즈가 있는 이미지에서는 허프 변환이 이상치 선을 버리고 지배적인 텍스트 방향에 집중할 수 있으므로 더 강력합니다.
5단계: 테두리 제거 — 가장자리 아티팩트가 레이아웃 분석을 방해하지 않도록 차단
스캔 문서와 휴대폰으로 촬영한 이미지에는 거의 항상 문서 자체 외부의 시각적 콘텐츠가 포함됩니다. 이러한 요소는 OCR 알고리즘이 연결 구성 요소를 식별하여 페이지 영역을 감지하기 때문에 레이아웃 분석 단계를 손상시킵니다. 두꺼운 검은색 테두리는 이미지 전체 너비에 걸친 연결 구성 요소를 생성하며, 알고리즘은 이를 페이지 경계로 해석하여 실제 문서 콘텐츠 안으로 잘라 들어가거나 근처 헤더 텍스트를 잘못된 읽기 순서에 할당합니다. 가장자리의 문서 날짜, 페이지 번호 및 공급업체 이름이 일반적으로 가장 먼저 누락됩니다.
자동 테두리 제거는 윤곽선 감지를 사용하여 문서 콘텐츠의 가장 바깥쪽 직사각형 경계를 찾고 그에 맞게 자릅니다. 알고리즘은 각 가장자리에서 안쪽으로 스캔하여 어두운 테두리에서 밝은 페이지로의 전환을 찾습니다. 자르기는 보수적이어야 합니다: 너무 공격적으로 자르면 여백 텍스트가 손실되는 반면, 얇은 여백을 남겨도 다운스트림 처리에 영향을 미치지 않습니다.
6단계: 해상도 향상 — 더 많은 픽셀이 실제로 도움이 되는 경우
OCR 정확도는 이미지 해상도와 밀접한 관계가 있습니다. 200 DPI 미만에서는 문자 가장자리가 픽셀화되어 유사한 글자가 구분되지 않게 됩니다. "O"와 숫자 0, 소문자 "l"과 대문자 "I"가 그 예입니다. 표준 300 DPI는 8–12pt 글꼴에 충분한 디테일을 제공하면서도 파일 크기를 관리 가능한 수준으로 유지합니다. 600 DPI에서는 정확도가 2–5%만 향상되는 반면 파일 크기는 4배로 늘어납니다.
문제는 입력 이미지가 항상 통제 가능한 것은 아니라는 점입니다. 모바일로 촬영한 영수증 사진의 실효 해상도는 150 DPI일 수 있고, 팩스는 200 DPI로 고정되어 있습니다. 이러한 경우 초해상도(super-resolution) 기법 — 신경망을 사용해 고해상도 디테일을 추론하는 방식 — 을 통해 잃어버린 정보 중 일부를 복구할 수 있으며, 200 DPI 미만에서 5–8% 포인트의 작지만 측정 가능한 향상을 얻을 수 있습니다. 전통적인 바이큐빅 업샘플링은 동일한 효과를 내지 못합니다. 부드러운 가장자리를 만들 뿐 실제 디테일을 추가하지 않습니다. 수백만 개의 문서 이미지로 학습된 초해상도만이 흐릿한 패치에서 선명한 문자 가장자리를 재구성할 수 있습니다.
전처리를 건너뛸 수 있는 경우

위의 전처리 파이프라인은 문자 단위로 작동하는 전통적인 OCR 엔진(Tesseract, ABBYY, Google Cloud Vision)을 위해 개발되었습니다. 이러한 엔진은 구조적 한계로 인해 문맥 인식이 부족하기 때문에 깨끗하고 대비가 높은 입력이 필요합니다. 노이즈로 인해 문자 세그먼트가 누락되면 그대로 손실됩니다.
현대의 비전 대형 언어 모델(VLM) 기반 OCR — ImageToTable.ai에서 사용하는 아키텍처 — 은 다르게 작동합니다. VLM은 문자를 하나씩 인식하는 대신 전체 문서 이미지를 시각적 장면으로 읽고 각 영역의 의미를 이해하여 데이터를 추출합니다. 전화 사진, 구겨진 영수증, 기울어진 스캔 등 수백만 개의 실제 문서 이미지로 학습된 VLM은 전처리가 해결하는 종류의 이미지 저하가 이미 학습 데이터에 포함되어 있습니다. 15° 기울기와 혼합 조명에서 촬영된 문서는 모델에게 특수 사례가 아니라 수천 개의 학습 예제와 통계적으로 구별할 수 없는 일반적인 사례입니다.
이것이 전처리가 쓸모없다는 의미는 아닙니다. 완전히 갈색으로 변한 열전사 영수증이나 5세대 복사본처럼 극도로 저하된 이미지에서는 VLM도 적응형 임계값 처리나 대비 향상의 이점을 얻을 수 있습니다. 그러나 일상적인 사용의 90%를 차지하는 중간 수준의 실제 문서 품질에서는 현대적인 VLM 기반 도구가 전체 전처리 파이프라인을 건너뛰고 직접 정확한 추출을 수행할 수 있습니다.
두 접근 방식에 대한 더 자세한 비교는 OCR vs. AI 추출: 전처리가 필요한 경우 및 현대 추출 도구로 OCR 정확도 향상하기 가이드를 참조하세요.
일반적인 전처리 문제 해결
임계값이 너무 높게 설정되어 있습니다. Otsu 대신 이미지 너비의 1/20 크기 창을 사용하는 적응형 임계값 처리로 전환하세요. 깊은 그림자가 남아 있으면 먼저 CLAHE를 적용하세요.
커널 크기가 너무 큽니다. 3×3 커널로 줄이거나, 가는 가장자리를 더 잘 보존하는 가우시안 필터 대신 중간값 필터를 사용하세요. 작은 글씨 문서의 경우 이미지가 이미 깨끗하다면 노이즈 제거를 건너뛰세요.
Hough 변환이 테두리나 표선과 같은 잘못된 지배적인 선을 감지했을 가능성이 높습니다. 기울기 보정 전에 테두리를 제거하거나 이미지의 상하 5%를 마스킹하세요. Hough 임계값을 높여 거의 전체 너비에 해당하는 선만 기준선으로 인식되도록 하세요.
적응형 임계값 처리와 초해상도는 계산 비용이 높습니다. 대량 배치의 경우 페이지당 단일 추론 패스로 이러한 변환을 내부적으로 처리하는 VLM 기반 추출 도구 사용을 고려하세요.
자주 묻는 질문
모든 문서에 전처리가 필요한가요?
아니요. 흰 종이에 검은 글씨로 된 깨끗한 300 DPI 스캔은 전처리가 필요 없습니다. 파이프라인은 입력이 그 이상적인 상태에서 벗어날수록 더 큰 가치를 제공합니다. 휴대폰 사진, 팩스, 감열지 영수증, 바랜 원본이 가장 큰 혜택을 받습니다. VLM 기반 도구를 사용하는 경우 임계값이 훨씬 낮습니다. 모델이 적당한 기울어짐, 고르지 못한 조명, 노이즈를 내부적으로 처리합니다.
전처리가 필기체 인식에 인쇄된 텍스트와 다르게 영향을 미치나요?
네. 인쇄된 텍스트는 획 두께와 간격이 일정하므로 표준 파이프라인이 잘 작동합니다. 필기체는 획이 다양하고 문자가 겹치며 간격이 고르지 않습니다. 과도한 이진화는 필기체의 연결 획을 덩어리로 뭉치게 만듭니다. 필기 문서의 경우 더 큰 적응형 임계값 창과 더 부드러운 노이즈 제거를 사용하세요. 일부 VLM 기반 도구는 필기체에 대해 이진화를 건너뛰고 회색조 이미지를 직접 처리합니다. 자세한 내용은 OCR이 필기체 인식에 어려움을 겪는 이유에 대한 가이드를 참조하세요.
문서 스캔에는 어떤 DPI를 사용해야 하나요?
300 DPI는 대부분의 비즈니스 문서에 표준입니다. 8–12pt 글꼴에 충분한 디테일을 제공하며 컬러 페이지당 약 25 MB입니다. 200 DPI는 큰 글씨 문서에 적합합니다. 600 DPI는 OCR에 거의 필요하지 않습니다. 300 DPI 대비 정확도 향상은 평균 2–5%에 불과하지만 파일 크기는 4배가 됩니다. 예외는 매우 작은 글꼴이 있는 문서입니다.
전처리로 문서의 흐릿한 휴대폰 사진을 고칠 수 있나요?
부분적으로 가능합니다. 가벼운 모션 블러는 Wiener 또는 Richardson-Lucy 디콘볼루션 필터로 보정할 수 있습니다. 중간 정도의 블러는 신경망 디블러링 모델이 필요합니다. 심한 초점 이탈 블러는 일반적으로 복구할 수 없습니다. 고주파 정보가 센서에 포착되지 않았기 때문입니다. 카메라를 안정적으로 잡고 문서를 평평하게 펴서 다시 촬영하는 것이 유일한 확실한 해결책입니다.
전처리 전에 PDF 페이지를 이미지로 변환해야 하나요?
PDF 유형에 따라 다릅니다. 디지털 생성 PDF에는 선택 가능한 텍스트가 포함되어 있어 OCR이 필요 없습니다. 스캔된 PDF는 PDF 래퍼 안의 이미지 모음입니다. Poppler의 pdftoppm 또는 Python의 pdf2image를 사용하여 각 페이지를 300 DPI PNG로 렌더링한 다음 파이프라인을 적용하세요. 전체 워크플로는 스캔된 PDF에서 데이터 추출 가이드를 참조하세요.
어떤 전처리 단계가 문제를 일으키는지 어떻게 알 수 있나요?
각 단계의 출력을 별도의 이미지 파일로 저장하세요. OCR 출력이 형편없다면 이진화된 이미지부터 확인하세요. 이 단계의 정확도 변동이 가장 큽니다. 이진화가 깨끗해 보이는데도 출력이 여전히 잘못된 경우, 기울기 보정된 이미지를 원본 입력과 비교하세요. 눈에 보이지 않는 3°의 잔여 기울기는 정확도를 10%까지 떨어뜨릴 수 있습니다. 저장된 각 중간 결과물은 오류가 어디서 발생했는지 정확히 알려줍니다.
파이프라인이 정답이 아닐 때
6단계 파이프라인은 입력을 직접 제어할 수 있을 때 — 스캐너와 DPI를 직접 선택할 때 — 올바른 접근 방식입니다. 하지만 실제 현장에서는 그렇게 할 수 없는 경우가 많습니다. 수백 개의 공급업체에서 디지털 PDF부터 휴대폰 사진까지 다양한 형식의 인보이스가 도착합니다. 전처리 부담은 도구로 넘어갑니다.
ImageToTable.ai와 같은 VLM 기반 추출 도구는 — 픽셀 좌표가 아닌 의미적 의미로 데이터 필드를 찾는 맞춤 열 추출을 사용합니다 — 전처리 파이프라인이 추론 과정에 내장되어 있습니다. 기울어지고, 그림자가 지고, 저해상도인 문서를 그대로 업로드하면 됩니다. 모델은 문서 전체를 읽고 정의한 열로 구조화된 데이터를 추출합니다.
그렇다고 전처리 지식이 쓸모없어지는 것은 아닙니다. 각 단계를 이해하면 특정 이미지에서 추출 도구가 실패하는 이유를 진단하는 데 도움이 되며, 정확히 무엇을 고쳐야 할지 알려줍니다. 문서 유형별 추출 실패 진단에 대한 자세한 내용은 문서 유형별 OCR 정확도 저하 차이를 참조하세요.
6단계 파이프라인을 적용하기 전과 후의 동일한 문서로 추출 도구를 테스트해 보세요. 그 차이를 통해 워크플로에 필요한 전처리 양을 정확히 알 수 있습니다.