무료 OCR로 한국어 이미지 글자, 얼마나 읽나 — CPU만으로 정확도 실측 (2026)

무료 OCR로 한국어를 읽히면 한글에서 많이 틀릴 거라 여기기 쉽습니다. 받침도 많고 글자 모양도 복잡하니까요. 그런데 이건 흔한 오해였어요. 공짜 오픈소스 OCR을 그래픽카드도 없이 CPU로 직접 돌려보니, 의외로 한글은 거의 다 맞았고 엉뚱하게 '섞여 있던 영어'에서 틀렸습니다. '한글이 어려울 것'이라던 착각이 깨진 거죠. 깨끗한 인쇄체 기준 글자 오류율(CER)은 약 4%, 100자 중 96자를 맞힌 셈인데 — 정작 그 틀린 4%의 정체가 이 글의 핵심이에요. 유료 스캔·OCR 앱 구독료가 아까운 입장이라, 공짜 글자추출 일꾼이 정말 대체되는지 월급 안 나가는 CPU로 굴려봤습니다.

쓴 도구는 Tesseract(무료·오픈소스·오프라인). 매번 그럴듯한 주장만 늘어놓지 않으려고, 같은 한국어 문장(한글 + 숫자 1,234 + 영문 OCR·AI 섞음)을 6가지 화질(깨끗·작은글씨·저해상·흐림·노이즈·기울기)로 만들어 정답과 한 글자씩 대조했습니다. 미리 정직하게 밝히면 — 이건 깨끗하게 렌더한 인쇄체라, 실제 사진·손글씨·복잡한 배경은 이보다 더 어렵습니다. 그래도 "스캔본·스크린샷의 한국어 뽑기"엔 딱 맞는 조건이라, 결과가 꽤 실용적이었어요.

깨끗한 한국어는 거의 완벽 — 그런데 그 오류가 한글이 아니었다

먼저 기준(깨끗한 인쇄체)에서 CER 약 4.1%. 한글은 사실상 다 맞혔습니다. 재밌는 건 그 4% 오류의 대부분이 한글이 아니라 문장에 섞인 영문 단어였다는 점이에요. -l kor(한국어만)로 돌리니 깨끗한 원본에서도 OCR이라는 글자를 "00"으로, AI를 "시"로 읽어버리더군요. 게다가 숫자 1,234쉼표를 아예 흘렸습니다(1234). 화질 탓이 아니라 언어팩 탓이라는 뜻이에요. 공짜 일꾼한테 한글만 시키면 야무지게 해내는데, 중간에 영어 몇 자가 끼면 거기서 헛발을 짚어요. 이 일꾼을 부려먹기 전에 '무슨 언어가 섞였나'부터 봐야 한다는 뜻이죠. 즉 깨끗한 한국어 문서라면 무료 OCR로도 충분하고, 진짜 실수는 '한글 실력'이 아니라 '섞인 외국어'에서 나옵니다.

무료 OCR(Tesseract)의 한국어 글자오류율(CER)을 화질 6조건과 언어설정 2가지(-l kor 대 -l kor+eng)로 나란히 비교한 막대그래프 — 깨끗한 원본은 두 설정 모두 약 4%지만, 저해상·흐림에서 kor+eng가 각각 13.9%·15.6%로 kor 단독(9.0%·9.8%)보다 크게 나빠지는 반전을 보여줌

화질이 나빠지면 — 흐림과 저해상도가 진짜 적

화질을 떨어뜨리자 성격이 드러났습니다. 노이즈(σ48)·기울기(11°)엔 6~7%로 잘 버텼어요 — 웬만한 촬영 잡티나 삐뚤어진 스캔 정도는 이 일꾼이 거뜬히 넘깁니다. 반면 저해상도(0.28배로 줄였다 키움)와 흐림(가우시안 2.8)에서 CER이 9~10%로 껑충 뛰었습니다. 글자 윤곽이 뭉개지는 순간 무료 OCR은 급격히 흔들린다는 뜻이에요. 무료 OCR을 굴릴 때 월급값을 갈라놓는 건 '노이즈·기울기'가 아니라 '해상도와 초점' — 스캔·촬영할 때 흐릿함부터 잡아야 합니다.

반전 — '영어도 같이 켜면' 오히려 더 틀린다

깨끗한 이미지에서 영문을 잘 읽히려면 -l kor+eng(한국어+영어)로 켜면 되겠다 싶었는데, 여기서 반전이 나왔습니다. 깨끗·작은글씨에선 kor+eng가 영문을 살려 조금 나았지만(작은글씨 3.3% 대 4.9%), 흐림·저해상 같은 나쁜 화질에선 오히려 크게 나빠졌어요(흐림 15.6% 대 9.8%, 저해상 13.9% 대 9.0%). 화질이 무너진 한글을 tesseract가 라틴 문자로 오독(예: "글자를" → "SAS")하기 때문입니다. 영어를 켜준 게 되레 발목을 잡은 거죠.

6조건을 한 판에 놓으면 이렇습니다(숫자는 글자오류율 CER — 낮을수록 좋음).

화질 조건 -l kor -l kor+eng 어느 쪽이 유리
깨끗한 인쇄체(기준) 4.1% 4.1% 무승부
작은 글씨(13px) 4.9% 3.3% kor+eng
픽셀 노이즈(σ48) 6.6% 5.7% kor+eng
기울기(11°) 6.6% 4.9% kor+eng
저해상도(0.28× 왕복) 9.0% 13.9% kor
흐림(가우시안 2.8) 9.8% 15.6% kor
6조건 평균 6.8% 7.9% kor
6조건 중앙값 6.6% 5.3% kor+eng

여기서 평균과 중앙값이 서로 반대를 가리킨다는 걸 보셔야 합니다. 조건별로 세면 kor+eng가 3승 1무 2패로 앞서고 중앙값도 더 좋아요(5.3% 대 6.6%). 그런데 지는 두 판에서 크게 지는 바람에(흐림 +5.8%p·저해상 +4.9%p) 평균이 뒤집힙니다. "대체로 조금 낫고, 드물게 크게 망한다" — 도구 고를 때 가장 위험한 성격이 정확히 이거예요.

그리고 잘 안 알려진 값이 하나 더 있습니다. 언어팩을 두 개 켜면 시간도 두 배입니다 — 이미지당 0.17초 → 0.34초. 정확도가 나빠질 수 있는데 속도까지 절반이 되는 거죠. 참고로 어절 기준(WER)은 두 설정 다 13.3%로 같았습니다.

언어팩은 콘텐츠에 맞춰야 합니다. 한국어가 대부분이면 영어까지 욕심내지 말고 -l kor이 평균적으로 더 안전하고(무엇보다 두 배 빠르고), 영문이 실제로 많이 섞였고 원본 화질이 확실히 좋을 때만 kor+eng를 고려하는 게 낫습니다. 이 일꾼한테 "이것저것 다 굴릴 줄 알지?" 하고 다 떠맡기면 월급값도 못 하고 오히려 서툴러지는 셈이에요.

글자 오류율 6.8%인데 왜 '어절 기준'은 13.3%일까

한 가지 숫자 함정도 짚고 갑니다. 같은 결과인데 글자 단위 오류율(CER)은 6.8%인데 어절 단위(WER)는 13.3%로 거의 두 배였어요. 한국어는 띄어쓰기 규칙이 들쭉날쭉해서, OCR이 글자를 다 맞혀도 띄어쓰기 하나만 어긋나면 그 어절 전체가 '틀린 것'으로 계산되거든요. 그래서 한국어 OCR·받아쓰기 성능은 어절(WER)보다 글자(CER)로 보는 게 체감에 가깝습니다. 이 공짜 일꾼을 어절 점수만 보고 "쓸 만해요?" 하며 내치면 억울한 셈이에요 — "정확도 86.7%"(어절)라는 수치에 겁먹기 전에 글자 기준(93.2%)을 같이 봐야, 부려먹을 만한지 제대로 보입니다. (이 CER≪WER 현상은 음성 받아쓰기에서도 똑같이 나타나는데, 무료 Whisper로 한국어 받아쓰기를 CPU로 실측한 글에서도 같은 함정을 확인했습니다.)

틀린 글자를 눈으로 — 원출력 그대로

숫자만 보면 "9.8%면 괜찮네" 싶은데, 실제로 뭐가 틀렸는지 봐야 감이 옵니다. 정답 문장은 이렇게 시작합니다.

누구나 무료로 쓸 수 있는 OCR 도구가 이미지 속 한국어 글자를 얼마나 정확하게 읽어내는지 우리가 직접 측정해 보았다. 테스트 문장에는 숫자 1,234와 영문 단어 AI, 그리고 여러 문장 부호가…

같은 문장을 흐림(가우시안 2.8) 이미지에서 -l kor로 읽힌 원출력이 이겁니다(손대지 않았습니다).

누구나 무료로 을 수 있는 068 도구가 이미지 속 한국어 글자을 / 얼마나 정확하게 위어내는지 우리가 직접 축정해 보았다. / 테스트 문장에는 숫자 1.234와 영문 단어 시, 그리고 여러

패턴이 보이시죠. 같은 OCR을 깨끗한 원본에선 00으로 읽었는데 흐림에선 068로 읽습니다. 은 아예 사라지고, AI는 시, 읽어내는지는 위어내는지, 측정해는 축정해, 그리고 숫자 1,234의 쉼표가 소수점(1.234)으로 바뀌었습니다. 금액·수량을 다루는 문서라면 이 한 글자가 천 배 차이예요.

저해상도 이미지는 또 다르게 틀렸습니다 — 기술이를 기울이, 빠르게를 뽀르게, 보았다.를 보있다,(마침표가 쉼표로), 영문을 영운으로 읽었어요. 즉 CER 9%는 "글자 스무 개 중 두 개쯤 틀린다"가 아니라, 숫자와 문장부호가 조용히 어긋난다는 뜻입니다. 그래서 무료 OCR 결과를 그대로 쓰지 말고, 숫자가 든 줄은 사람이 눈으로 대조해야 합니다.

그래서 무료 OCR, 쓸 만한가

직접 굴려보니 이렇게 갈립니다.

  • 깨끗한 스캔·스크린샷·PDF 캡처의 한국어 뽑기 → 충분히 쓸 만하다. 무료·오프라인에 이미지당 약 0.17초로 빠르고, 깨끗하면 오류율 4%대라 가벼운 문서 디지털화엔 이 공짜 일꾼으로 족합니다.
  • 사진·손글씨·심하게 흐린 원본 → 기대 낮추거나 상용 도구 고려. 초점·해상도가 무너지면 오류율이 배로 뛰니, 이럴 땐 유료 OCR의 월급값이 나오는 지점입니다.
  • 설정 한 줄 팁 → 한국어 위주면 -l kor. 영어까지 무심코 켜면 나쁜 화질에서 되레 손해예요.

한 줄로, "깨끗한 한국어 문서면 무료 OCR로 충분하고, 발목은 한글 실력이 아니라 화질과 섞인 영어가 잡는다" — 이 선을 알고 쓰면 구독료 굳히면서 꽤 멀리 갑니다.

어떻게 쟀나 — 재현 방법

수치는 주장이 아니라 재현물에서 나왔습니다. make_ocr_corpus.py(난수 seed 고정)가 같은 문장을 6화질로 렌더하고, 실측 하네스가 Tesseract를 호출해 원출력을 그대로 기록한 뒤, 채점 스크립트가 정답과 대조해 CER·WER을 계산합니다(지표는 자체검증을 통과한 뒤 산출). 같은 코드를 돌리면 같은 표가 나와요 — 이 공짜 일꾼의 성적표를 누구든 다시 굴려 확인할 수 있게, 손으로 고른 숫자가 아니라 코드가 뱉은 숫자만 실었습니다.

참고자료

  • test_runs/tesseract-kor-20260704/ (이 저장소) — run.yaml · 6조건 원출력 6건 · 호출 로그
  • corpus/ocr/refs.json · clip-01~06.png — 고정 입력 이미지와 정답 문장(seed 고정 렌더)
  • 재채점 스크립트 ocr_score.py — CER/WER 자체검증 통과 후 산출(python3 ocr_score.py 2026-07-04)
  • 같은 CER≪WER 함정을 음성에서 확인한 글 — Whisper 한국어 받아쓰기 CPU 실측

이 글의 정확도 수치는 cinevyze 운영자가 무료 오픈소스 Tesseract를 CPU에서 직접 돌려 얻은 실측값입니다. 테스트 이미지는 우리가 렌더한 한국어 문장(정답을 아는 상태)이라 채점이 자명하며, 실제 사진·손글씨·복잡한 배경은 이보다 어렵다는 점을 밝힙니다. 도구·수치는 2026년 7월 기준이고, 판단·해석은 직접 했으며 글 다듬기 일부에 AI 도구의 도움을 받았습니다.

댓글

이 블로그의 인기 게시물

ChatGPT 글쓰기, 무료로 어디까지 뽑아먹나 — 돈 새는 지점이랑 Go $8 함정까지

AI한테 일 제대로 시키는 법 — 프롬프트 4칸 공식(같은 모델에 18번 넣어 재봤습니다)

챗GPT·클로드·제미나이 요금 비교 — '셋 다 20달러'가 아니었습니다 (2026.07)