스캔한 PDF에서 글자를 뽑는 방법 — OCR이 하는 일
계약서를 스캔해서 PDF로 받았습니다. 열어 보면 글자가 또렷하게 보입니다. 그런데 드래그해서 복사하려 하면 아무것도 잡히지 않습니다. 검색도 안 됩니다.
이 PDF 안에 든 것은 글자가 아니라 사진 한 장이기 때문입니다.
PDF에는 두 종류가 있다
| 글자 레이어 있는 PDF | 스캔 PDF | |
|---|---|---|
| 만들어진 방식 | 워드·한글에서 "PDF로 저장" | 종이를 스캐너로 찍음 |
| 안에 든 것 | 글자 코드 + 글꼴 정보 | 픽셀 이미지 |
| 복사·검색 | 됩니다 | 안 됩니다 |
| 용량 | 작음 | 큼 |
| 확대했을 때 | 선명함 | 뭉개짐 |
겉보기로 구분하는 방법은 간단합니다. 글자를 드래그해 보세요. 파란 선택 영역이 글자를 따라가면 글자 레이어가 있는 것이고, 사각형으로 뭉텅이 선택되거나 아무것도 안 잡히면 스캔본입니다.
OCR이 하는 일
OCR(Optical Character Recognition, 광학 문자 인식)은 이미지 안의 글자 모양을 알아보고 문자 코드로 바꿉니다. 대략 이런 순서입니다.
- 기울어진 스캔을 바로 세웁니다.
- 배경 얼룩을 걷어내고 흑백으로 정리합니다.
- 글자 덩어리와 그림 영역을 나눕니다.
- 줄과 단어와 글자로 쪼갭니다.
- 각 글자를 학습된 모형에 넣어 후보를 뽑습니다.
- 앞뒤 문맥과 사전으로 후보를 고릅니다.
마지막 단계 때문에 언어 설정이 중요합니다. 한국어 문서에 영어 모형을 쓰면 "회의록"이 "SPP|9"처럼 나옵니다.
인식률을 올리는 방법
- 해상도: 300dpi가 기준입니다. 200dpi 아래로 내려가면 급격히 나빠지고, 600dpi 위로 올려도 크게 좋아지지 않습니다.
- 똑바로: 1도만 기울어도 줄 인식이 흔들립니다. 자동 보정 기능을 켜 두세요.
- 대비: 형광펜으로 칠한 부분, 도장이 겹친 글자는 잘 안 됩니다.
- 글꼴: 명조·고딕 같은 인쇄체는 잘 되고, 손글씨는 어렵습니다.
- 색 배경: 무늬가 있는 종이는 배경 제거를 한 번 거치는 게 낫습니다.
원본 모양을 지키면서 글자만 넣기
스캔 PDF를 그냥 텍스트 파일로 뽑으면 표와 도장과 서명이 전부 사라집니다. 계약서라면 곤란합니다.
그래서 보통은 검색 가능한 PDF를 만듭니다. 원본 이미지는 그대로 두고, 그 위에 보이지 않는 글자 레이어를 겹쳐 놓는 방식입니다. 눈에 보이는 건 원래 스캔본 그대로인데 복사와 검색이 됩니다.
OmniDesk의 검색 가능한 PDF 도구가 이 일을 합니다.
자동으로 골라 주기
가장 흔한 사고는, 스캔 PDF에 그냥 텍스트 추출을 돌려서 빈 파일을 받는 것입니다. 실패한 것도 아니라서 오류 메시지도 안 뜹니다.
OmniDesk는 PDF를 받으면 먼저 글자 레이어가 있는지 확인합니다. 있으면 바로 뽑고, 없으면 OCR 경로로 돌립니다. 사용자가 판단하지 않아도 됩니다.