스캔한 PDF를 검색 가능하게 — OCR 원리부터 한글 전처리·검수까지

OCR스캔 PDF검색 가능 PDF한글 인식문서 디지털화

스캔으로 만든 PDF는 화면에는 분명히 글자가 보이지만, 컴퓨터에게는 한 장의 사진에 지나지 않습니다. 검색창에 단어를 넣어도 잡히지 않고, 텍스트를 드래그해 복사할 수도 없으며, 번역기나 요약 도구에도 넣을 수 없습니다. 이 사진 위에 보이지 않는 '텍스트 레이어'를 한 겹 입혀 일반 문서처럼 다룰 수 있게 만드는 작업이 OCR(광학 문자 인식)입니다. 이 글에서는 OCR이 실제로 어떻게 동작하는지, 한글 인식률을 떨어뜨리는 원인은 무엇이며 어떻게 전처리로 끌어올리는지, 그리고 결과를 어떻게 검수하고 마무리하는지까지 한국어 문서를 다루는 사람의 입장에서 정리합니다.

검색 가능한 PDF란 정확히 무엇인가

많은 사람이 'OCR = 텍스트 추출'이라고 생각하지만, 검색 가능한 PDF를 만드는 과정은 그보다 한 단계 더 들어갑니다. 핵심은 원본 스캔 이미지는 그대로 두면서, 그 위에 글자의 위치 좌표에 맞춰 '투명한 텍스트'를 깔아두는 것입니다. 화면에 보이는 것은 여전히 원본 스캔 이미지이지만, 그 자리에 보이지 않는 텍스트가 정확히 겹쳐 있기 때문에 검색하면 단어가 잡히고, 드래그하면 글자가 선택됩니다. 이런 PDF를 흔히 'searchable PDF' 또는 'PDF/A 텍스트 레이어'라고 부릅니다.

이 구조를 이해하면 두 가지가 분명해집니다. 첫째, 원본 이미지가 손상되지 않으므로 인쇄물의 모양·도장·서명 같은 시각 정보는 그대로 보존됩니다. 둘째, 보이는 이미지와 깔려 있는 텍스트가 서로 다를 수 있다는 점입니다. OCR이 '회사'를 '회시'로 잘못 읽으면, 화면에는 '회사'로 보이지만 검색은 '회시'로 해야 잡히는 어긋남이 생깁니다. 그래서 검수가 중요합니다.

OCR 엔진은 어떻게 글자를 읽는가

현대 OCR은 대체로 세 단계로 동작합니다. 먼저 페이지에서 글자가 있는 영역과 그림·표·여백을 구분하는 레이아웃 분석을 합니다. 그다음 텍스트 영역을 줄 단위, 다시 글자 단위로 쪼개는 분할(segmentation)을 거칩니다. 마지막으로 잘라낸 각 글자 이미지를 학습된 모델이 어떤 문자인지 추정합니다. 과거의 Tesseract 같은 엔진은 글자 모양 패턴을 비교했지만, 최근 엔진은 딥러닝 기반으로 줄 전체의 맥락을 함께 보고 추론합니다.

한글이 영어보다 어려운 이유가 여기서 드러납니다. 한글은 자음과 모음이 모여 하나의 음절 블록을 이루기 때문에, 분할 단계에서 'ㅎ'과 'ㅏ'와 'ㄴ'을 따로 떼면 안 되고 '한'이라는 한 글자로 묶어야 합니다. 받침 유무, 좌우 조합과 상하 조합이 섞이면서 글자 폭이 일정하지 않아 분할이 까다롭습니다. 게다가 한글은 표현 가능한 음절 수가 수천 자에 이르러, 자주 안 쓰이는 글자일수록 학습 데이터가 적어 오인식이 늘어납니다. 따라서 엔진 설정에서 인식 언어를 반드시 한국어(필요하면 한국어+영어)로 지정하는 것이 첫 출발점입니다.

인식률을 좌우하는 것은 사실 전처리다

OCR 결과가 엉망일 때 사람들은 엔진을 탓하지만, 대부분의 문제는 입력 이미지의 품질에서 비롯됩니다. 같은 엔진이라도 깨끗하게 전처리한 이미지를 넣으면 결과가 눈에 띄게 달라집니다. 실무에서 효과가 큰 순서대로 정리하면 다음과 같습니다.

해상도와 명암

스캔 해상도는 300dpi를 기준으로 삼으세요. 그보다 낮으면 작은 글자의 획이 뭉개져 받침이 사라지거나 비슷한 글자끼리 헷갈립니다. 반대로 600dpi를 넘어가면 처리만 느려질 뿐 정확도 향상은 거의 없습니다. 명암은 글자(검정)와 배경(흰색)의 대비가 또렷할수록 좋습니다. 누렇게 변색된 종이나 형광등 반사로 회색빛이 도는 스캔은 이진화(흑백 변환) 과정에서 글자 일부가 배경으로 사라지기 쉽습니다.

기울기와 왜곡

OCR은 글자가 수평으로 놓여 있다고 가정하고 줄을 찾습니다. 페이지가 1~2도만 기울어도 줄 분할이 어긋나 인식률이 떨어집니다. 스캐너 유리에 비뚤게 올렸거나 휴대폰으로 비스듬히 찍은 문서라면 기울기 보정(deskew)을 먼저 거치세요. 책을 펼쳐 찍어 가운데가 휘어진 경우(곡면 왜곡)는 평탄화가 필요한데, 이건 일반 도구로는 한계가 있어 가능하면 평평하게 다시 스캔하는 편이 낫습니다.

색상과 노이즈

컬러 스캔의 미세한 색 얼룩, 도장 자국, 형광펜 표시, 종이 접힌 자국 같은 노이즈는 OCR이 글자로 오인할 수 있는 요소입니다. 본문 가독성이 목적이라면 그레이스케일이나 흑백으로 변환하고 가벼운 노이즈 제거를 거치는 편이 안정적입니다. 다만 색이 의미를 가지는 문서(색으로 구분한 표 등)는 무작정 흑백화하면 정보가 사라지니 상황을 보고 판단하세요.

전처리에서 가장 비용 대비 효과가 큰 한 가지를 꼽으라면 '똑바로 세우기(deskew)'입니다. 해상도를 올리는 것보다 기울기를 잡는 쪽이 결과 차이가 더 클 때가 많습니다.

상황별 도구 선택: 웹·오피스·명령줄

OCR을 돌리는 길은 크게 세 가지이며, 각자 맞는 상황이 다릅니다. 무엇이 절대적으로 낫다기보다, 문서의 민감도와 분량, 반복 여부에 따라 고르는 것이 맞습니다.

  • 웹 도구: 설치 없이 브라우저에서 바로 처리합니다. 가끔 한두 개 문서를 빠르게 검색 가능하게 만들 때 가장 간편합니다. 단, 파일을 외부 서버로 보내는 방식이라면 민감 문서에는 주의가 필요하니, 브라우저 안에서 처리되는지 서버 업로드인지 확인하세요.
  • 오피스·전용 프로그램: Adobe Acrobat 같은 프로그램은 '스캔본을 검색 가능한 PDF로'를 메뉴 한 번으로 처리하고 텍스트 보정 UI도 제공합니다. 정기적으로 많은 문서를 다루고 검수까지 한 화면에서 하고 싶다면 유리합니다.
  • 명령줄(오픈소스): Tesseract와 OCRmyPDF 조합은 무료이고 자동화에 강합니다. 폴더 단위로 수백 장을 일괄 처리하거나, 회사 내부 서버에서 외부 유출 없이 돌려야 할 때 적합합니다. 초기 설정과 옵션 학습이 필요한 대신 통제력이 가장 큽니다.

명령줄을 택한다면 OCRmyPDF가 입문하기 좋습니다. 원본 이미지를 보존한 채 텍스트 레이어만 입혀주고, 기울기 보정·해상도 조정 같은 전처리 옵션을 함께 제공하기 때문입니다. 한국어 문서라면 언어 데이터(kor)를 설치한 뒤 다음처럼 지정합니다.

결과 검수: 끝이 아니라 절반이다

OCR을 돌렸다고 작업이 끝난 것이 아닙니다. 앞서 말했듯 보이는 이미지와 깔린 텍스트가 어긋날 수 있고, 그 오차는 검색·복사·번역 단계에서 그대로 드러납니다. 검수는 다음 순서로 하면 빠짐없이 점검할 수 있습니다.

  1. 문서에 분명히 있는 핵심 단어 두세 개를 PDF 검색으로 찾아봅니다. 잡히지 않으면 그 부분이 오인식된 것입니다.
  2. 본문을 통째로 드래그해 텍스트 편집기에 붙여넣고, 줄바꿈과 글자가 원본과 맞는지 훑습니다. 숫자(금액·날짜·계좌번호)는 특히 꼼꼼히 봅니다. 0과 O, 1과 l, 5와 S 혼동이 잦습니다.
  3. 표가 있다면 셀 경계가 무너지지 않았는지 확인합니다. OCR은 표를 줄글로 풀어버리는 경우가 많아, 열 순서가 뒤섞일 수 있습니다.
  4. 한자나 특수기호가 섞인 문서는 해당 부분만 따로 재확인합니다.

한국어 문서에서 반복적으로 나타나는 함정도 미리 알아두면 검수가 수월합니다. 흘림체나 손글씨는 정자체에 비해 인식률이 급격히 떨어지므로, 정자로 다시 작성된 원본이 있다면 그쪽을 쓰는 편이 낫습니다. 한자 혼용 문서는 일부 엔진이 한자를 엉뚱한 한글로 바꾸기도 합니다. 세로쓰기 문서는 가로쓰기로 회전한 뒤 OCR을 돌려야 줄을 제대로 잡습니다. 그리고 받침이 있는 글자에서 받침이 누락되는 오류(예: '받침'을 '바침')는 해상도가 낮을 때 전형적으로 나타나니, 이런 오류가 잦다면 더 높은 해상도로 다시 스캔하는 것을 검토하세요.

보안과 한글 폰트, 그리고 현실적인 기대치

계약서·의료기록·인사서류처럼 민감한 문서를 OCR할 때는 파일이 어디서 처리되는지부터 확인하세요. 외부 서버로 업로드되는 웹 서비스라면 보관 정책과 삭제 여부를 따져봐야 하고, 민감도가 높다면 브라우저 내 처리 방식이나 로컬 명령줄 도구가 안전합니다. 또 한 가지, 검색 가능한 PDF는 텍스트 레이어가 들어가면서 원본보다 글꼴 정보가 추가되는데, 이때 한글 폰트 임베딩이 제대로 되지 않으면 다른 PC에서 글자가 깨져 보일 수 있습니다. PDF/A 형식으로 저장하면 폰트가 문서 안에 포함되어 이런 호환성 문제를 줄일 수 있습니다.

마지막으로 기대치를 현실적으로 잡는 것이 중요합니다. OCR은 깨끗한 인쇄물이라도 100% 정확하지 않습니다. 법률·의료·회계처럼 한 글자의 오차가 결과를 바꾸는 문서라면, 자동 변환 결과를 그대로 신뢰하지 말고 반드시 사람이 대조 검수해야 합니다. 반대로 '검색해서 대략 찾을 수만 있으면 된다'는 용도라면 약간의 오인식은 감수하고 넘어가도 충분합니다. 도구를 고르고 전처리를 다듬고 검수 범위를 정하는 모든 판단은 결국 '이 문서를 어디에 쓸 것인가'에서 출발합니다.