OCR(Optical Character Recognition)
은 광학 문자 인식. 즉 2차원 이미지에서 텍스트를 추출해서 변환하는 것을 말한다. OCR은 정확한 작동을 위한 다음과 같은 하위 프로세스를 갖는다.
Tesseract
는 Apache 2.0 라이센스로 제공되는 구글의 광학 문자 인식 엔진이다.
설치는 여기 (윈도우 기준)
tesseract 설치가 끝났다면
pytesseract
와 Pillow
를 설치해야 한다.
pip install pytesseract
pip install Pillow
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'tesseract 설치경로'
''안에 설치한 경로값을 넣으면 된다.
보통 아무 설정값도 건드리지 않았다면 C:\Program Files\Tesseract-OCR\tesseract.exe
요거일 것이다.
나는 위 이미지로 테스트해볼 것이다.
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
img = Image.open('이미지 경로')
# 사진 속 글자를 텍스트로 변환
result = pytesseract.image_to_string(img)
print(result)
테서렉트는 타밀어, 우즈벡어, 태국어 등등 웬만한 언어는 다 지원한다.
추출해야 하는 글자가 한글일 경우 pytesseract.image_to_string(img, lang='kor')
이렇게 lang='kor'
를 붙여주면 된다.
underweight
thick extellagvapeene vastness,
ickness immensity
~' spanfoyer, diameteg| ted
diophonous *fongey po pices one
bottleneck densewithered wiry) gangly_
slende , thick
scale size spread
poky Gi thin swath
acked / sweep
° extent \slice breadthcrampedscope
narrow
a
taperexpansiveness_ skinny
Immenseness
streamlined
Um... 나름 글자 추출은 잘 되지만
너무 중구난방으로 글자가 모여있는 이미지를 선택한 것 같다.
위 이미지로 변경해서 추출해 보았다.
H23. 3308
원래 자동차 번호판 같은 걸 텍스트로 변환할 때 쓰이는 기술이라 그런지
번호판으로 변환하니 깔끔하게 잘 된다.