반응형

오늘은 테서랙트(Tesseract)를 활용한 파이썬(python) OCR 분석을 알아보겠습니다.

파이썬(python)에서 테서랙트(Tesseract)를 사용하기 위해서 pytesseract 패키지를 설치합니다.

또한 이미지 및 open cv를 사용하기 위해서 추가 패키지를 설치합니다.

패키지 설치는 pip 명령어를 사용하거나, 파이참에서 패키지를 바로 설치할 수 있습니다.

pip install pillow 
pip install pytesseract 
pip install opencv-python

정상적으로 패키지가 설치되면 import를 사용해서 패키지를 로드할 수 있습니다.

지난 시간에 사용한 영문 이미지를 동일하게 OCR을 적용하겠습니다.

먼저 tesseract_cmd에 테서랙트(Tesseract) 경로를 선언해주세요.

Image 클래스를 사용해서 영어 이미지를 로드합니다.

마지막으로 image_to_string 함수를 사용해서 영어 문자를 추출합니다.

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'
img = Image.open(r'd:\en.jpg')
print(pytesseract.image_to_string(img))

tesseract_cmd 경로가 틀릴 경우 경로를 찾을 수 없다는 오류를 확인할 수 있습니다.

정확하게 테서랙트(Tesseract)가 설치된 경로를 입력해주세요.

실행 결과 출력 창에 정상적으로 영어 텍스트 추출 정보를 확인할 수 있습니다.

한글 텍스트를 추출하기 위해서는 lang를 사용해서 옵션을 추가합니다.

img2 = Image.open(r'd:\kor.jpg')
print(pytesseract.image_to_string(img2, lang='kor'))

pytesseract는 다양한 옵션을 사용해서 테서랙트(Tesseract)를 제어할 수 있습니다.

https://pypi.org/project/pytesseract/

 

pytesseract

Python-tesseract is a python wrapper for Google's Tesseract-OCR

pypi.org

한글 텍스트도 정확하게 추출됩니다.

OCR은 다양한 이미지 정보를 사용하기 때문에 눈으로 이미지를 확인하거나, 이미지를 변경할 수 있어야 합니다.

파이썬(python)에서는 opencv를 사용해서 이미지를 출력하거나, 이미지 프로세싱을 적용할 수 있습니다.

이미지를 확인하기 위해서 cv2 클래스를 사용해서 이미지를 출력할 수 있습니다.

imread 함수는 이미지를 로드해서 객체에 저장할 수 있습니다.

또한 다양한 옵션을 사용해서 이미지 로드 시점에 기본 색상 변경이 가능합니다.

cv2.IMREAD_UNCHANGED 원본 이미지 사용
cv2.IMREAD_GRAYSCALE 1개 채널 그레이스케일 사용
cv2.IMREAD_COLOR 3개 채널, BGR 이미지 사용
cv2.IMREAD_ANYDEPTH 선택 이미지에 따라 정밀도를 16/32비트, 8비트로 적용
cv2.IMREAD_ANYCOLOR 3개 채널, 색상 이미지 사용
cv2.IMREAD_REDUCED_GRAYSCALE_2 1개 채널, 1/2 크기, 그레이스케일 적용
cv2.IMREAD_REDUCED_GRAYSCALE_4 1개 채널, 1/4 크기, 그레이스케일 적용
cv2.IMREAD_REDUCED_GRAYSCALE_8 1개 채널, 1/8 크기, 그레이스케일 적용
cv2.IMREAD_REDUCED_COLOR_2 3개 채널, 1/2크기, BGR 이미지 사용
cv2.IMREAD_REDUCED_COLOR_4 3개 채널, 1/4크기, BGR 이미지 사용
cv2.IMREAD_REDUCED_COLOR_8 3개 채널, 1/8크기, BGR 이미지 사용

imshow 함수를 사용해서 이미지를 모니터 화면에 출력하고 waitKey 함수를 사용해서 키 입력할 때까지 무한 대기합니다.

실행 결과 로드된 이미지가 화면에 출력됩니다.

opencv는 다양한 이미지를 변환할 수 있어 OCR 텍스트 추출 시 인식률을 높일 수 있습니다.

파이썬(python)은 테서랙트(Tesseract) 래퍼 클래스(Wrapper Class) pytesseract와 opencv를 사용해서 다양한 이미지 텍스트 추출을 쉽게 진행할 수 있어 매우 편리합니다

다음 시간에는 opencv를 사용해서 이미지를 변경하는 방법을 알아보겠습니다.

감사합니다.

https://believecom.tistory.com/726

 

[python] 파이썬 Tesseract OCR 활용 설치하기

오늘은 파이썬(python)을 활용해서 OCR를 사용하는 방법을 알아보겠습니다. OCR(optical character recognition)은 이미지에 포함된 텍스트 정보를 추출하는 기술입니다. 요즘은 텍스트 정보 추출 기술이 발

believecom.tistory.com

반응형
  1. 파이썬 2021.05.30 21:53

    안녕하세요
    이미지를 추출후 텍스트로 돌리고 나서 "빗방울 떨어지겠습니다" 를 첨부하신 이미지 맨 마지막줄에
    네모하고 슬레시 쳐져있는 기호는 못 없애나요??

    • BelieveIT 2021.06.04 13:51 신고

      태서랙터에서 OCR 적용한 내용이기 때문에 문자열을 변수에 저장 후 스플리트를 사용해서 삭제 가능할 것 같습니다.

+ Recent posts