
책 페이지 사진이 OCR에 실패하는 이유 (그리고 몇 도의 기울기가 정확도를 무너뜨리는 방식)
게시일 2026년 7월 24일
책 페이지 사진을 온라인에서 텍스트로 변환하려다 온통 깨진 헛소리만 돌려받은 적이 있다면, 아마 엉뚱한 것을 탓하고 있었을 겁니다. 누렇게 바랜 종이나 나쁜 조명이 범인이라고 짐작하기 쉽지만, 테스트해 보니 둘 다 결과에 거의 영향을 주지 않았습니다. 진짜 원인은 거의 언제나 사진을 봐서는 알아챌 수 없는 것, 바로 작은 카메라 기울기입니다.
테스트: 같은 페이지, 네 가지 조건
실제 책 사진에서 OCR(광학 문자 인식)을 무너뜨리는 게 정말 무엇인지 알아보기 위해, 같은 텍스트 블록을 오픈소스 OCR 엔진인 Tesseract에 네 가지 조건으로 돌려 봤습니다. 깨끗한 평평한 스캔, 누렇게 바랜 페이지, 약 12도 기울인 사진, 그리고 기울기에 반사광 하이라이트까지 더한 사진입니다.
| 조건 | 단어 정확도 |
|---|---|
| 깨끗한 평평한 스캔 | 100% |
| 누렇게 바랜 페이지 (기울기 없음) | 100% |
| 약 12° 기울임 (변색 없음) | 67.7% |
| 약 8° 기울임 + 반사광 | 71.0% |
누렇게 바랜 페이지는 새것 같은 페이지와 똑같이 만점을 받았습니다. 그런데 기울기가 들어가는 순간 정확도가 3분의 1이나 무너지며, “scan textbook to word” 류의 도구를 써 본 사람이라면 누구나 봤을 바로 그런 출력이 나왔습니다. “brown” 대신 "brow,", “Chapter.” 대신 "Chapte,.", “hidden” 대신 "hidde,," 같은 것들이죠.
아주 작은 기울기가 이렇게 큰 피해를 주는 이유
OCR 엔진은 이미지의 행을 훑으며 잉크가 일관되게 이어지는 수평 띠를 찾는 방식으로 텍스트를 읽습니다. 한 줄과 다음 줄을 구별하는 메커니즘이 바로 이것입니다. 완벽하게 수평인 스캔에서는 각 텍스트 줄이 깔끔한 수평 띠 안에 놓여, 엔진이 1행, 2행, 3행을 깨끗하게 분리합니다.
페이지를 10도만 기울여도 그 깔끔한 수평 띠는 수십 픽셀 행에 걸친 대각선 얼룩이 됩니다. 엔진의 줄 분할 로직은 별개의 두 줄이어야 할 곳의 문자들을 합쳐 버리거나, 한 글자를 서로 다른 두 줄이라고 생각하는 곳에 걸쳐 쪼개 버립니다. 결과는 “약간 덜 정확한” 게 아니라 범주 자체가 다른 출력입니다. 엔진이 읽는 기본 단위(줄)가 이미지에 실제로 있는 것과 더 이상 대응하지 않기 때문입니다.
여러분 눈에는 완벽하게 읽히는 사진이 여전히 읽을 수 없는 OCR 출력을 내는 이유도 이것입니다. 사람의 시각 체계는 10도 기울기를 아무 의식적 노력 없이 보정합니다. 기울었다는 것 자체를 인지하지 못하죠. 단순한 OCR 파이프라인에는 그런 보정이 내장돼 있지 않고, 주어진 픽셀을 있는 그대로 읽습니다.
해결책: 인식 후가 아니라 인식 전에 똑바로 세우기
실용적인 교훈은 “폰을 더 조심해서 들라”가 아닙니다. 펼친 책을 촬영할 때 약간의 기울기는 거의 피할 수 없습니다. 스캐너처럼 페이지를 평평하게 눌러 놓은 게 아니니까요. 해결책은 자동화입니다. 기울기 각도를 감지해서 텍스트 인식을 돌리기 전에 보정하는 것이죠. 후가 아니라요.
무거운 머신러닝 모델 없이 각도를 안정적으로 감지하는 한 가지 방법이 투영 프로파일(projection profile) 기법입니다. 이미지를 후보 각도 범위에 걸쳐 회전시키면서, 각 각도마다 행별 잉크 분포가 얼마나 “뾰족한지”를 측정합니다. 올바른 각도에서는 텍스트 줄들이 선명한 띠로 정렬되고(행 간 분산이 높음), 다른 각도에서는 잉크가 행에 걸쳐 번집니다(분산이 낮음). 분산이 가장 높은 각도가 바로 기울기 보정 각도입니다.
이 보정을 먼저 실행하고 그다음 텍스트를 인식하자, 기울어진 테스트 케이스가 전부 100% 단어 정확도로 돌아왔습니다. 같은 페이지, 같은 OCR 엔진에서 유일한 차이는 먼저 똑바로 세웠다는 것뿐이었습니다.
책을 디지털화한다면 이런 의미입니다
- 종이 상태는 걱정하지 마세요. 누렇게 바램, 가벼운 퇴색, 노화로 인한 약간의 대비 손실은 그 자체로는 정확도에 거의 영향이 없습니다. 오래된 문고본도 새 책만큼 잘 디지털화됩니다.
- 각도는 걱정하세요. 눈으로는 알아채지 못할 기울기조차 쓸 만한 텍스트와 쓰레기의 차이 전부일 수 있습니다.
- 플래시 반사광은 기울기보다 덜하지만 여전히 해롭습니다. 광택지 위의 밝은 반점은 그 아래의 텍스트를 지워 버릴 수 있습니다. 각도 보정은 애초에 읽을 잉크가 없는 지점을 고쳐 주지 못합니다.
- 기울기를 자동으로 보정하는 도구가 진짜 문제를 해결합니다. 저희 책 페이지 텍스트 변환 도구는 인식 전에 바로 이 감지-보정 단계를 브라우저 안에서 실행합니다. 업로드도, 서버도 없고, 평평한 스캔을 넣어 줄 거라 가정하는 대신 기울기 문제를 중심에 두고 만들어졌습니다.
전에 책 사진 OCR을 시도했다가 결과를 읽을 수 없어서 포기했다면, 문제는 아마 페이지가 아니었을 겁니다. 거의 확실히 카메라 각도 몇 도였습니다.