이미지 텍스트 추출이란
이미지에서 텍스트를 추출하는 기술을 OCR(광학 문자 인식, optical character recognition)이라고 합니다. 컴퓨터가 그림 속 모양을 보고 어느 것이 글자인지 알아낸 뒤, 선택하고 편집하고 검색하고 복사할 수 있는 텍스트로 바꿉니다. 이 페이지에서는 사진 글자 추출을 브라우저 안에서 무료로 할 수 있습니다.
오류 메시지 스크린샷, 표지판 사진, 스캔한 편지, 발표 슬라이드, 받은 이미지 속 인용문처럼 글자가 그림에 갇혀 있을 때마다 쓸모가 있습니다. 직접 타이핑하는 대신 컴퓨터가 읽게 하면 됩니다.
한국어 지원 안내: 이 도구는 한글을 읽을 수 있습니다. 한국어 페이지에서는 이미지 속 언어가 처음부터 한국어로 선택되어 있어서, 한국어 문서 캡처나 안내문 사진을 바로 넣으면 됩니다. 그 밖에 영어, 일본어, 중국어 (간체), 중국어 (번체), 스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 네덜란드어, 힌디어도 고를 수 있습니다. 한국어를 고르면 한글과 함께 섞인 영문자와 숫자도 대부분 읽지만, 영어로만 된 이미지라면 영어를 고르는 편이 더 정확합니다.
사용 방법
- 이미지 속 언어를 확인합니다. 이 페이지의 기본값은 한국어입니다. 영어, 일본어, 중국어 (간체), 중국어 (번체), 스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 네덜란드어, 힌디어로 된 이미지라면 해당 언어로 바꿉니다.
- 세 가지 방법 중 하나로 이미지를 넣습니다.
- 여기에 이미지를 끌어다 놓거나 파일을 선택하세요라고 적힌 상자에 이미지 파일을 끌어다 놓습니다.
- 이미지 선택을 누르고 파일을 하나 이상 고릅니다.
- 스크린샷을 복사한 뒤 페이지 아무 곳에서나 Ctrl+V(Mac에서는 Cmd+V)를 누르거나 이미지 붙여넣기를 누릅니다.
- 진행 막대를 지켜봅니다. 처음에는 인식 엔진과 언어 데이터를 내려받아야 해서 시간이 더 걸립니다. 그 뒤로는 이미지 한 장에 몇 초면 됩니다.
- 추출된 텍스트에서 결과를 읽습니다. 그 자리에서 바로 고칠 수 있습니다.
- 복사를 누르거나, 다운로드를 눌러 image-text.txt로 저장합니다.
여러 이미지를 한 번에 고르면 순서대로 읽고, 각 이미지의 텍스트를 빈 줄로 구분해 앞의 결과 아래에 이어 붙입니다. 텍스트 아래에는 단어 수와 글자 수, 그리고 전체 이미지의 평균 신뢰도가 표시됩니다.
잘 되는 경우와 안 되는 경우
| 이미지 | 예상 결과 |
|---|---|
| 웹 페이지, 앱, 문서의 스크린샷 | 매우 좋음. 깨끗하고 선명하며 대비가 강한 글자가 가장 읽기 쉽습니다. |
| 밝은 곳에서 정면으로 찍은 인쇄물 사진 | 좋음. 숫자와 문장 부호를 확인하세요. |
| 스캔한 편지나 서식 | 입력된 글자는 좋음. 서식의 칸과 선 때문에 엉뚱한 문자가 섞일 수 있습니다. |
| 비스듬히, 그늘에서, 초점이 나간 채 찍은 사진 | 들쑥날쑥함. 가능하면 잘라 내거나 다시 찍으세요. |
| 복잡한 사진이나 무늬 위의 글자 | 나쁨. 배경이 엔진을 헷갈리게 합니다. |
| 손글씨 | 아주 반듯한 인쇄체를 빼면 나쁨. 한글 손글씨는 특히 정확도가 낮습니다. |
| 작은 스크린샷 속 한 페이지 전체처럼 아주 작은 글자 | 나쁨. 확대해서 더 가까이 스크린샷을 찍으세요. |
| 한글 문서나 화면 캡처 | 좋음. 이미지 속 언어를 한국어로 두세요. 글자가 작거나 해상도가 낮으면 받침이 빠지거나 비슷한 글자로 잘못 읽힐 수 있습니다. |
작동 원리
이 페이지는 휴렛팩커드(Hewlett-Packard)에서 처음 개발한 뒤 공개된, 널리 알려진 오픈 소스 OCR 엔진 Tesseract를 사용합니다. 웹 브라우저용으로 만든 Tesseract.js를 통해 실행됩니다.
첫 인식을 시작하면 브라우저가 cdn.jsdelivr.net에서 세 가지를 내려받습니다. 작은 보조 스크립트, 엔진 자체, 그리고 고른 언어의 데이터 파일입니다. 모두 프로그램 파일과 언어 파일일 뿐입니다. 브라우저가 이를 캐시에 보관하므로 다음 인식부터는 훨씬 빨리 시작됩니다. 다른 언어를 고르면 그 언어의 데이터 파일을 내려받습니다.
엔진은 이미지에서 글줄을 찾아 단어와 글자로 나누고, 그 모양을 학습 데이터에서 익힌 것과 비교합니다. 이 모든 일이 사용자의 컴퓨터나 휴대폰에서 일어납니다. 이미지는 기기 메모리에서 읽힐 뿐 업로드되지 않으므로, 개인 정보가 담긴 스크린샷에도 안심하고 쓸 수 있습니다.
더 나은 결과를 위한 팁
- 글자 부분만 잘라 내세요. 이미지를 넣기 전에 글자 주변의 테두리, 사진, 아이콘을 지우세요.
- 클수록 좋습니다. 크고 선명한 글자가 작은 글자보다 훨씬 잘 읽힙니다. 스크린샷을 찍기 전에 화면을 확대하세요.
- 알맞은 언어를 고르세요. 한글은 한국어를, 일본어 가나와 한자는 일본어를 골라야 제대로 읽힙니다. é, ñ, ü 같은 악센트 글자도 해당 언어를 골랐을 때 훨씬 정확하게 읽힙니다.
- 한글은 해상도가 중요합니다. 한글은 받침과 획이 촘촘해서 작은 글자나 흐린 캡처에서 실수가 늘어납니다. 화면을 확대해 글자를 크게 캡처하면 결과가 눈에 띄게 좋아집니다.
- 사진은 반듯하게 찍으세요. 카메라를 문서 바로 위에 두고, 화면을 글자로 채우고, 그림자를 피하세요.
- 결과를 정리하세요. 사진에서 뽑은 글은 문장 중간에 줄바꿈이 들어가는 일이 많습니다. 줄바꿈 제거에 붙여넣어 줄을 잇고, 일반 텍스트 변환으로 이상한 따옴표와 공백을 고치세요.
- 교정하세요. OCR 실수는 진짜 단어처럼 보입니다. 예를 들어 “rn”을 “m”으로, “0”을 “O”로 읽습니다. 숫자, 이름, 이메일 주소는 두 번 읽으세요.
HEIC 형식으로 저장된 휴대폰 사진은 대부분의 브라우저에서 읽을 수 없습니다. 먼저 JPG로 저장하거나 공유하세요.
이미지에서 텍스트를 얻는 다른 방법
손글씨가 많거나 결과를 한 번 더 확인하고 싶다면 아래 방법도 쓸 수 있습니다.
Google Docs. 이미지를 Google Drive에 올린 뒤 마우스 오른쪽 버튼으로 클릭하고, 연결 앱(Open with)에서 Google Docs를 고릅니다. 새 문서의 이미지 아래에 텍스트가 나타납니다. 이 방법은 이미지를 Google에 업로드합니다.
Microsoft OneNote와 Word. Windows용 OneNote에서 이미지를 붙여넣고 마우스 오른쪽 버튼으로 클릭한 뒤 그림에서 텍스트 복사(Copy Text from Picture)를 고릅니다. Word는 PDF를 열어 편집 가능한 문서로 바꿀 수 있는데, 깨끗한 스캔본일수록 잘 됩니다.
휴대폰. 최신 iOS와 Android에서는 사진과 스크린샷 속 글자를 바로 선택할 수 있습니다. 사진 앱이나 갤러리 앱에서 글자를 길게 누르세요.
코드. Tesseract는 Windows, macOS, Linux에 설치해 명령줄에서 tesseract image.png output으로 실행할 수 있으며, 텍스트가 output.txt에 저장됩니다. 이 페이지가 쓰는 것과 같은 한국어 데이터를 설치한 뒤 -l kor 옵션을 붙이면 한글을 읽을 수 있습니다. Python 프로그램에서는 흔히 pytesseract 패키지로 사용합니다.