OCR이 표를 인식하지 못하나요?
열 정렬을 망치는 6가지 근본 원인
추출된 스프레드시트를 열어보면 텍스트는 분명히 있습니다. 인보이스 번호, 날짜, 합계까지 — 하지만 열은 엉망입니다. 설명이 수량 열로 흘러 들어가고, 헤더는 하나의 덩어리로 뭉쳐 있습니다. 당신만 그런 게 아닙니다. 이는 OCR 표 추출에서 가장 흔한 불만이며, 근본 원인은 거의 항상 이미지 품질이 아닙니다.

핵심 요점
- OCR은 텍스트를 줄 단위로 읽습니다. 단어의 흐름으로 볼 뿐 행과 열로 보지 못하기 때문에, 아무리 스캔 품질이 좋아도 추출된 표에는 값이 밀리고 셀이 뭉개져 나타납니다.
- 병합된 셀, 보이지 않는 테두리, 다단 레이아웃, 기울어진 각도, 일관성 없는 헤더 등 여섯 가지 문서 특징이 순차 스캔의 각기 다른 약점을 파고듭니다. 배치당 수동 수정을 세 번 이상 적용해야 한다면 그 도구 자체가 병목입니다.
- 해답은 전체 페이지를 먼저 시각적 레이아웃으로 분석하는 추출 방식입니다. 사람의 눈처럼 표 구조를 맥락적으로 이해하는 것이지, 공백 간격이나 픽셀 투영으로 열 경계를 추측하는 방식이 아닙니다.
근본 원인: OCR은 표가 아닌 줄 단위로 읽습니다

OCR 엔진은 문서를 스캔하여 개별 문자를 식별합니다 — 한 번에 한 글자, 한 숫자씩. 이를 단어로, 그다음 읽기 순서에 따라 텍스트 줄로 조합합니다. 이는 근본적으로 선형적이고 줄 단위로 진행되는 프로세스로, 스프레드시트가 아닌 문단을 위해 설계되었습니다.
표는 2차원 구조입니다. "$450.00"이라는 값은 그 자체로는 아무 의미가 없습니다 — "Widget B" 행의 "Total" 열 아래에 있기 때문에 의미가 생깁니다. 셀과 열 머리글 사이의 관계는 공간적이지 순차적이지 않습니다. OCR은 "$450.00"을 텍스트로 읽지만, 이 숫자가 3열 2행에 속한다는 것을 이해할 메커니즘이 없습니다. 일부 도구는 OCR 완료 후 간격과 정렬에서 표 구조를 추론하려 하지만, 추론은 레이아웃이 완벽하지 않으면 실패하는 추측에 불과합니다. 아래 여섯 가지 원인은 그 추측이 무너지는 시나리오입니다.
원인 #1 — 줄 단위 스캔 vs. 2D 표

증상: 표가 하나의 연속된 문단으로 추출됩니다. "Item Qty Price Widget A 2 100 Widget B 1 200 Total 400" — 열 구분 없이 모두 한 줄로 표시됩니다.
근본 원인: 엔진이 첫 줄의 "Item"을 읽은 후 "Qty," "Price," 줄 바꿈, "Widget A," "2," "100" 순서로 이동합니다 — 모두 평평한 시퀀스로 처리합니다. "Item," "Widget A," "Widget B"가 같은 열에 속한다는 것을 알지 못합니다. 열을 전혀 보지 않기 때문입니다 — 줄 바꿈으로 끊긴 단어의 흐름만 볼 뿐입니다.
해결 방법:
- 도구에 "표" 또는 "스프레드시트" 모드가 있는지 확인하세요. 일부 OCR 엔진은 문서 유형 토글을 제공합니다. "문서"에서 "표"로 전환하면 엔진이 그리드 레이아웃을 기대하도록 지시하고 내부 처리 경로가 변경됩니다.
- 표를 2D 구조로 처리하는 도구를 사용하세요. ImageToTable.ai와 같은 최신 비전 기반 추출 도구는 줄 단위로 읽지 않습니다. 한 번에 전체 페이지 레이아웃을 분석하여 텍스트를 추출하기 전에 열, 행, 셀 경계를 식별합니다. 이것이 기존 OCR과 비전 AI의 차이입니다. 하나는 문자를 순차적으로 읽고, 다른 하나는 페이지를 공간 지도로 이해합니다.
- 임시 해결책으로 영역 OCR을 사용하세요. 도구에서 각 열에 대한 사각형 영역을 정의할 수 있다면 독립적으로 추출하세요 — 하지만 표 레이아웃이 바뀌면 바로 깨집니다.
원인 #2 — 병합된 셀이 구조를 무너뜨립니다

증상: "Widget A — 10 pcs — $45.99"로 표시되어야 할 행이 "Widget A 10 pcs $45.99"로 출력되어 어떤 값이 어떤 열에 속하는지 알 수 없습니다. 또는 두 열에 걸쳐 있는 헤더 셀 때문에 이후 모든 행이 한 열씩 오른쪽으로 밀립니다.
근본 원인: 병합된 셀은 시각적 모양과 실제 데이터 구조 사이에 차이를 만듭니다. 셀이 시각적으로 세 열에 걸쳐 있어도 실제 데이터는 한 위치에만 있습니다. OCR 엔진은 병합된 라벨을 한 번 읽지만 그 아래 세 열에 값을 어떻게 분배할지 결정해야 합니다. 대부분의 엔진은 모든 병합 열에 값을 중복하거나, 모두 왼쪽 정렬로 압축하거나, 병합 영역을 비워 두는데 — 모두 출력을 손상시킵니다.
해결 방법:
- 출력 메타데이터를 확인하세요. 일부 도구는 원시 JSON 출력에
rowSpan또는colSpan을 반환합니다. 도구에서 JSON 내보내기를 지원한다면 이 값을 검사해 보세요 — 엔진이 병합을 감지했는지 여부를 알 수 있습니다. - 문서를 사전 처리하세요. 원본 파일을 제어할 수 있다면 OCR 실행 전에 병합된 셀을 라벨이 반복된 개별 셀로 변환하세요. 일부 PDF 편집기에는 "셀 병합 해제" 기능이 있습니다.
- 의미 기반 추출로 전환하세요. 위치 기반 매핑에 의존하는 대신 맞춤 열 추출을 사용하는 도구는 원하는 항목을 정의할 수 있게 해 주며, AI가 각 값의 의미를 이해하여 위치를 찾습니다 — 병합된 셀은 이 방식에 영향을 주지 않습니다. AI가 눈금선이 아닌 내용을 읽기 때문입니다.
원인 #3 — 눈금선이 없으면 엔진이 추측에 의존하게 됩니다
증상: 표에 눈에 보이는 테두리가 없습니다. 단지 공백으로 열을 암시하는 텍스트만 있을 뿐입니다. OCR 출력이 모든 것을 하나의 덩어리로 합치거나, 존재하지 않는 임의의 열 구분을 만들어냅니다.
근본 원인: 많은 OCR 엔진은 셀 사이의 눈에 보이는 테두리인 눈금선을 기준점으로 사용하여 표 구조를 감지합니다. 알고리즘은 연속적인 세로 및 가로선을 찾아 셀 경계를 정의하고 각 영역 내의 텍스트를 읽습니다. 이러한 선이 없는 경우 엔진은 공백 패턴에서 열을 추론하는 방식으로 대체됩니다. "Item"과 "Description" 사이의 단일 공백은 OCR 엔진에게 의도적인 열 간격과 동일하게 보입니다.
해결 방법:
- 최소 300 DPI로 스캔하세요. 더 높은 해상도는 공백 경계를 선명하게 만들어 위치 기반 휴리스틱이 약간 더 잘 작동하게 합니다. 눈금선을 만들지는 않지만 엔진에 더 많은 신호를 제공합니다.
- "테두리 없는 표" 모드를 활성화하세요. 일부 OCR 엔진에는 선이 없는 표를 위한 전용 모드가 있어 선 감지에서 정렬 기반 추론으로 전환됩니다.
- 레이아웃 인식 추출을 사용하세요. 비전 모델은 공간 관계를 의미론적으로 이해합니다. "Qty" 아래의 숫자 열은 세로선이 아닌 문맥으로 인식됩니다. 이것이 OCR 정확도가 문서 유형에 따라 달라지는 이유입니다. 전통적인 OCR은 모든 문서가 제공하지 않는 시각적 특징에 의존합니다.
원인 #4 — 다중 열 레이아웃이 잘못된 행을 만듭니다
증상: 문서에 두 개의 독립적인 표가 나란히 있거나, 오른쪽에 요약 패널이 있는 기본 표가 있습니다. 추출된 출력이 두 표의 행을 서로 섞어 의미 없는 데이터를 만듭니다.
근본 원인: OCR은 읽기 순서로 스캔합니다. 페이지에 여러 콘텐츠 열이 포함된 경우 엔진은 왼쪽 열의 첫 번째 줄을 읽고, 오른쪽 열로 이동한 다음, 다시 왼쪽의 두 번째 줄로 돌아갑니다. 엔진은 "이것은 별도의 표다"라는 개념이 없습니다. 단지 다양한 위치에 텍스트가 존재한다는 것만 알 뿐입니다.
해결 방법:
- 영역 선택으로 한 번에 하나의 표를 추출하세요. 각 표 주변의 경계를 개별적으로 정의하고 별도의 업로드 또는 영역으로 처리하세요.
- 페이지 수준 레이아웃 분석을 사용하세요. 비전 기반 도구는 먼저 전체 페이지를 분석하여 별도의 콘텐츠 블록을 식별한 다음 각각에서 독립적으로 텍스트를 추출합니다. 이렇게 하면 기본 표와 측면 요약 간의 분리가 유지됩니다.
- 읽기 순서를 단일 영역으로 제한하세요. 일부 엔진은 섹션 간 점프를 방지할 수 있습니다.
원인 #5 — 회전 또는 기울어진 표가 열 연결을 깨뜨립니다
증상: 표가 약간 기울어진 각도로 촬영되었거나, 페이지가 비뚤게 급지되었습니다. 추출된 데이터에는 올바른 텍스트가 있지만 값이 밀려 있습니다 — "Total" 열에 있어야 할 숫자가 "Tax" 열에 나타납니다.
근본 원인: OCR 엔진은 읽기 전에 페이지를 바로 세우는 기울기 보정 단계를 포함합니다. 하지만 기울기 보정은 텍스트 각도만 수정할 뿐 열 정렬은 수정하지 않습니다. 기울기 보정 후에도 엔진은 열 경계를 결정하기 위해 수직 투영 프로파일을 계속 사용합니다. 3도 회전은 투영을 압축하여 경계를 서로 뭉개버립니다. 엔진은 "$12,450.00"을 4열이 아닌 3열에 배치하며, 2행부터 모든 셀이 동일한 정렬 오류를 따릅니다.
해결 방법:
- OCR 전에 더 강력한 기울기 보정으로 전처리하세요. 소스 파일 준비에 대한 자세한 내용은 전처리 가이드를 참조하세요.
- 문서 프레임을 안내하는 캡처 앱을 사용하여 원천적으로 카메라 기울기를 줄이세요.
- 픽셀 투영에 의존하지 않는 도구를 선택하세요. 비전-언어 모델은 전체 이미지를 전체적으로 처리합니다 — 기울어진 각도로 촬영된 표도 사람의 눈에는 여전히 이해 가능하며, VLM 기반 추출도 같은 방식으로 작동합니다.
원인 #6 — 일관되지 않은 열 머리글이 잘못 매핑된 데이터를 생성합니다
증상: 추출된 스프레드시트에 데이터는 있지만 머리글이 중복되거나 불일치합니다. "Invoice Date"가 한 파일에서는 "Date"가 되고 다른 파일에서는 "Issued"가 됩니다 — 병합된 출력은 날짜를 두 열에 흩뿌립니다.
근본 원인: OCR은 의미를 이해하지 못합니다. "Invoice Date," "Date Issued," "Issued On"이 같은 뜻이라는 것을 알 수 없습니다. 각 머리글을 문자 그대로의 문자열로 읽고 열 키로 사용합니다. 여러 공급업체의 문서를 처리하면 엔진은 각 표현 변형에 대해 별도의 열을 만듭니다 — "Qty"와 "Quantity"가 하나의 열이 아닌 두 개의 열이 됩니다.
해결 방법:
- 머리글을 사전에 정규화하세요. 도구가 지원한다면 표준 열 매핑을 정의하세요 — 예: "Date," "Description," "Qty," "Unit Price," "Total" — 그리고 엔진이 발견한 모든 것을 이러한 표준 이름에 매핑하도록 지시하세요.
- 의미 기반 열 정의로 추출하는 도구를 사용하세요. 기존 머리글을 읽는 대신, 맞춤 열 추출을 사용하면 원하는 출력 열을 정의할 수 있고, AI는 문서에서 각 필드를 무엇이라고 부르든 관계없이 해당 데이터를 찾습니다. 이것이 AI 기반 Excel 표 추출이 작동하는 방식입니다: 원하는 것을 지정하면 도구가 머리글 텍스트 일치가 아닌 의미로 찾아냅니다.
- 후처리 매핑 테이블을 적용하세요. Excel이나 Google Sheets에서 머리글 변형을 표준 이름으로 통합하는 조회 테이블을 만들고 각 추출 실행에 적용하세요.
언제 업그레이드해야 할까요? 도구가 문제인가요?
위의 해결 방법으로 결과를 개선할 수 있습니다 — 더 나은 전처리, 더 높은 DPI, 영역 선택. 하지만 이 모든 것은 동일한 한계에 대한 임시방편입니다: 기존 OCR은 표를 읽도록 설계되지 않았습니다. 매 배치마다 세 가지 이상의 방법을 적용해야 한다면, 도구가 병목 지점입니다.
문서에 병합된 셀, 테두리 없는 표, 다단 레이아웃, 또는 일관되지 않은 헤더가 포함되어 있다면 — 실제 비즈니스 문서 대부분이 그렇습니다 — 주당 20-30개 이상 처리할 경우, 수동 정리에 드는 시간이 OCR로 절약한 시간보다 많아집니다. 이 시점에서 표를 2차원 구조로 처리하는 비전 기반 추출 도구로 업그레이드하는 것은 사치가 아니라 수학적으로 더 저렴한 선택입니다.
자주 묻는 질문
기존 OCR 중 표를 잘 처리하는 것이 있나요?
일부는 단순한 표를 처리할 수 있습니다 — ABBYY FineReader와 표 확장 기능이 있는 Tesseract는 열 너비가 일관된 기본적인 테두리 표를 관리할 수 있습니다. 그러나 병합된 셀, 테두리 없는 레이아웃, 여러 페이지에 걸친 표, 회전된 콘텐츠에는 모두 어려움을 겪습니다. 한계는 구조적입니다: 엔진이 문자를 순차적으로 읽는 한, 2차원 구조는 항상 추측에 불과합니다.
더 나은 스캔으로 표 추출 문제를 해결할 수 있나요?
더 나은 스캔은 일부 도움이 됩니다 — 300 DPI, 곧은 급지, 균일한 조명 — 하지만 구조적 문제를 해결하지는 못합니다. 완벽하게 스캔된 테두리 없는 표에도 여전히 눈금선이 없습니다. 완벽하게 곧은 병합된 셀도 여전히 여러 열에 걸쳐 있습니다. 이미지 품질은 문자 오류를 해결하지, 구조 오류를 해결하지 않습니다.
텍스트는 올바르게 표시되는데 왜 잘못된 열에 나타나나요?
이것은 투영 오류입니다. OCR 엔진은 각 단어를 수평 위치에 따라 열에 할당합니다. 문서가 기울어져 있거나 열 너비가 불규칙하면 투영 경계가 이동합니다. 단어는 올바르게 인식되지만 잘못된 열에 할당됩니다. 데이터가 합계를 확인하기 전까지는 올바르게 보이기 때문에 가장 좌절스러운 실패 모드입니다.
표 OCR과 AI 표 추출의 차이점은 무엇인가요?
표 OCR은 문자 인식과 위치 기반 휴리스틱을 사용하여 문자를 읽은 후 구조를 추측합니다. AI 표 추출은 전체 페이지를 시각적 장면으로 분석하고, 표를 레이아웃 객체로 이해하며, 구조적 맥락 내에서 콘텐츠를 추출합니다. AI는 열 경계를 "찾을" 필요가 없습니다 — 셀 간의 시각적 관계를 보기 때문에 표가 표라는 것을 이미 알고 있습니다. 이는 근본적으로 다른 기술적 접근 방식입니다.
AI 기반 추출이 표에서 100% 정확할까요?
모든 문서에서 100% 정확한 도구는 없습니다. 매우 조밀한 표, 심하게 변형된 스캔, 일부 손글씨 항목은 여전히 검토가 필요합니다. 하지만 오류 유형은 다릅니다. 전통적인 OCR은 구조적 오류를 만들지만, AI 추출은 개별 셀에서 문자 수준 오류를 만들며 이는 발견하고 수정하기 더 쉽습니다. OCR에서 한 열이 밀리면 모든 행이 손상될 수 있지만, AI 추출에서 한 셀을 잘못 읽는 것은 개별 수정으로 끝납니다.
추출 도구와의 싸움을 멈추세요
위의 여섯 가지 원인은 여러분의 작업 흐름 문제가 아니라, 문단이 아닌 스프레드시트를 위해 만들어진 기술의 구조적 한계입니다. ImageToTable.ai는 모든 표를 2차원 시각적 구조로 처리합니다. 줄 단위로 읽지 않으며, 눈금선도 필요하지 않습니다. "Invoice Number," "Line Items," "Total"처럼 원하는 열을 정의하면 AI가 데이터가 페이지에서 어디에 있는지가 아니라 무엇을 의미하는지 이해하고 찾아냅니다.
샘플 인보이스를 업로드하고 필요한 열 이름을 지정한 다음, 사람처럼 표를 읽는 도구가 어떤 결과를 만드는지 확인해 보세요. 문자만이 아니라 페이지를 이해하는 방식입니다.