[리원아빠] 파이썬 tesseract pytesseract 이미지 문자 인식

2023. 1. 12. 10:16Python

반응형

 


파이썬 tesseract pytesseract 이미지 문자 인식하기



 

파이썬으로 무엇을 또 만들어볼 수 있을까?

 

고민을하다가 우연히 알게된 pytesseract.

 

pytesseract는 tesseract를 파이썬에서 사용할 수 있도록 일종의 다리 역활을 해주는 모듈이다.

 

그럼 다시tesseract가 무엇인지 알아야하는데

 

tesseract는 쉽게 설명하면 이미지안에 있는 문자를 추출해주는 프로그램이다.

 

이번 포스팅에서 tesseract에 대해 보다 깊은 이야기는 그만하고 간단하게 설치법과 사용법.

 

그리고 파이썬에서 pytesseract를 통해 tesseract를 사용하는 방법을 알아보자.

 

 

URL : https://github.com/UB-Mannheim/tesseract/wiki

 

GitHub - UB-Mannheim/tesseract: Tesseract Open Source OCR Engine (main repository)

Tesseract Open Source OCR Engine (main repository) - GitHub - UB-Mannheim/tesseract: Tesseract Open Source OCR Engine (main repository)

github.com

파이썬에서는 이미지안의 문자 인식을 하기 위해서는 pytesseract 모듈을 사용한다.

 

그런데 이 pytesseract는 tesseract 프로그램이 설치되어 있어야지 정상 작동한다.

 

그래서 우리는 가장 먼저 tesseract 프로그램을 설치해야 한다.

 

위의 링크로 들어가서 자신의 환경에 맞는 인스톨러를 다운받자.

 

작성자는 64비트 인스톨러를 다운 받았다.

 

 

다운 후, 설치를 진행는 다음 순서로 진행한다.

 

English 선택 -> next -> agree -> next -> Korea 추가 후 next -> next -> install -> next -> finish

 

5번째 단계는 추가언어팩을 선택하는 옵션인데 작성자는 한국어를 추가 설치했다.

 

 

tesseract 설치가 끝나다면 자신의 PC에서 tesseract를 사용할 수 있도록 설정을 해줘야 한다.

 

컴퓨터 지식이 조금 있다면 PATH를 잡아줘야 한다는 말이 무슨말인지 금방 이해할텐데

 

tesseract 사용을 위해서는 그 작업을 해줘야 한다.

 

내컴퓨터의 속성에서 고급 시스템 설정, 그리고 다시 환경변수를 선택한다.

 

 

그 후 아래 시스템 변수 항목에서 Path를 선택해 편집을 눌러준다.

 

끝으로 환경 변수 편집 창이 나타나면 새로 만들기를 눌러 tesseract가 설치되어 있는 경로를 입력하면 된다.

 

tesseract 인스톨러가 32비트 / 64비트 존재하므로 경로도 상이하다.

 

기본옵션으로 선택했다면 자신이 설치한 비트에 맞는 설치 경로를 입력하자.

 

  • 32비트 : C:\Program Files (x86)\Tesseract-OCR
  • 64비트 : C:\Program Files\Tesseract-OCR

 

환경변수 설정까지 진행했다면 cmd 창을 열어 tesseract 명령어를 입력해보자.

 

오류 없이 위와 같은 화면이 출력된다면 설치와 설정 모두 잘 따라온 것이다.

 

cmd 창을 실행할 줄 모른다면 윈도우 바탕화면에서 윈도우키 + R 버튼을 누른후

 

cmd 입력 후 엔터를 치면 cmd창이 실행된다.

 

 

참고로 cmd 창에서도 tesseract를 통해 이미지 문자인식이 가능하다.

 

간단하게 아래처람 사용할 수 있다.

 

tesseract [이미지파일경로] [결과저장파일] [-l 언어선택]

 

위는 cmd 창에서 tesseract를 통해 sample.png 이미지 파일안의 문자를 인식한 결과이다.

 

작성자는 sample.png를 네이버 로그인 버튼으로 캡쳐했었다.

 

 

 

이제 tesseract 준비는 모두 끝났다.

 

이제 파이썬에서의 작업만이 남았다.

 

작성자가 tesseract를 사용하기 위해서 파이썬에서는 pytesseract 모듈을 사용한다고 했던것을 기억하는가?

 

pytesseract는 기본 제공 모듈이 아니기때문에 pip를 위해 설치를 해야한다.

 

추가적으로 이미지에서 문자인식을 하는 작업이므로 

 

이미지 모듈과 관련된 opencv-python과 pillow 모듈도 같이 설치하자.

pip install pillow
pip install opencv-python
pip install pytesseract

 

 

import pytesseract
import cv2

img=cv2.imread("c:\\users\\root\\desktop\\sample.png", cv2.IMREAD_COLOR)
result = pytesseract.image_to_string(img, lang='eng+kor')
print(result)

파이썬으로 이미지안의 문자를 인식하는 간단한 예제 소스이다.

 

설치과정에 비하면 너무나 간단하다.

 

이미지를 읽고 그 이미지를 pytesseract 함수에 전달만 하면 된다.

 

image_to_string 함수에 전달되는 인자값은 첫번째는 이미지, 두번째는 어느나라 문자인지를 전달한다.

 

두번째 인자는 + 연산자를 사용해 복합적으로 전달할 수 있다.

 

 

예제 소스를 실행해봤다.

 

image_to_string 함수의 두번째 인자에 kor만 주는 경우와 kor+eng 결과가 차이난다.

 

kor 인자만 전달하는 경우에는 영어로된 naver를 한글로 인식하려고 하기 때문이다.

 

따라서 이미지안에 영어와 한글이 모두 있는 경우라면 반드시 kor+eng로 인자를 전달해야 한다.

 

그럼 끝.

반응형