파이썬 테서렉트(tesseract) 설치 및 사용후기!

2019. 8. 15. 09:34

파이썬에는 좋은 라이브러리들이 많다. 그래서 뭔가 필요한 작업이 있을 때 이미 개발된 라이브러리가 있는지 찾아보게 된다. OCR관련된 라이브러리들도 파이썬에는 많이 있다. 이전 포스팅에서는 클라우드의 API를 이용해서 문자를 인식하는 작업을 해 보았다. ( 참조: 파이썬 AI 라이브러리 zAI 사용기 -문자인식 ) 구글에서 개발한 테서렉트가 한글 인식이 뛰어나고 해서 알려져있다.

오늘은 파이썬 테서렉트(tesseract) 설치 및 사용후기에 대해서 알아보도록 하겠다.


테서텍트



파이썬 라이브러리를 찾아보기 위해서는 pypi(The Python Package Index) 싸이트를 찾게 된다. 여기서 tesseract로 검색하면 생각보다 많은 라이브러리가 검색되는 것을 알 수 있다.


pypi

( 참조: pypi 싸이트 바로가기 )



이 중에 내용을 보고 py-tesseract를 설치하였다. py-tesseract는 테서렉트를 래핑한 라이브러리이다. 테서렉트가 별도로 설치되어 있어야만 사용할 수 있는 라이브러리이다. py-tesseract를 설치하고 라이브러리를 import하였더니, 테서렉트가 설치되어 있지 않다고 에러가 난다.


대부분의 라이브러리들이 그런 것 같다. 테서텍트를 별도로 설치하기 위해 테서렉트 깃허브 페이지에 방문해 보았다.


테서렉트_깃허브

( 참조: 테서렉트 깃허브 페이지 바로가기 )



테서렉트는 C, C++로 개발되었고 중간에 'Install Tesseract via pre-built binary package'를 클릭하면 설치방법을 알 수 있다. 리눅스, MacOS, 윈도우 별로 설치방법이 다르다. 필자는 Mac을 사용하므로 이에 대한 설치 방법을 알아보도록 하겠다.


맥에서 테서렉트를 사용하기 위해서 homebrew를 이용한다. homebrew는 패키지 관리 시스템 중의 하나이다. 테서렉트를 설치하면 기본으로 언어가 영어가 설치된다. 한국어를 사용하기 위해서는 tesseract-lang도 설치해야 한다.


브류




> brew install tesseract 

> brew install tesseract-lang



설치하고 나서 아래와 같은 이미지의 글자를 인식해보았다. pytesseract를 사용하면 아래와 같이 코드를 입력하면 되지만 무슨 이유인지 값이 나오지 않는다. 인식을 못한 것인가 생각했지만 그렇지는 않았다.


항목




> print(pytesseract.image_to_string(Image.open('./image/tesseract_test.png'), lang='kor'))



추천포스트



테서렉트가 설치되면 그냥 터미널(윈도우는 명령프롬프트)에서 실행할 수 있다. 터미널에서 tesseract를 입력하면 아래와 같이 실행 결과를 볼 수 있다.



> tesseract

Usage:

  tesseract --help | --help-extra | --version

  tesseract --list-langs

  tesseract imagename outputbase [options...] [configfile...]


OCR options:

  -l LANG[+LANG]        Specify language(s) used for OCR.


NOTE: These options must occur before any configfile.


Single options:

  --help                Show this help message.

  --help-extra          Show extra help for advanced users.

  --version             Show version information.

  --list-langs          List available languages for tesseract engine.




이미지 주소와 원하는 언어, output파일을 파라미터를 아래와 같이 입력하면 되는 것을 알 수 있다.



tesseract [이미지 주소] [아웃풋파일] -l kor


예시) tesseract test.png output_test -l kor



예시와 같이 실행하니 output_test.txt라는 파일로 아래와 같이 결과가 떨어진다.





<0x0c>



터미널에서 실행이 잘 된다. 파이썬에서 터미널 명령어 실행이 가능하다. 아래와 같이 subprocess 라이브러리를 이용해서 파이썬에서 실행해보았다. 텍스트 파일이 잘 생성된다.



> import subprocess

> subprocess.call("tesseract test.png output_test -l kor", shell=True)



아마 인식하면서 중간에 빈 공간도 인식하는 듯 하다. 한글이 잘 인식되었으니 공백을 삭제하고 정리해 주었다.



> f = open("./output/test.txt")

> text_list = f.readlines()

> word = "".join(text_list)


> word_1 = word.replace('\n', '')

> word_1 = word_1.replace(' ', '')


> print(word_1)


[Output]: 항목



포스팅을 작성하다보니 내용이 생각보다 길어졌다. 더 긴 글이나 문자도 인식이 잘 되는지는 다음에 포스팅하도록 하겠다. 짧은 단어라도 인식이 잘 되니 생각보다 재미있다.


이미지를 편집하고 전처리하기 위해서는 테서렉트 외에 다른 패키지가 필요하다. 이미지 전처리를 위해 많이 사용하는 open-cv를 파이썬에서 설치하는 방법이 궁금하다면, 아래 포스팅을 참조해보자.
( 참조: 파이썬 opencv 설치하기! )



오늘은 이렇게 파이썬에서 테서렉트(tesseract)를 설치하고 사용해보았다. 사실 파이썬에서 했다기보다 그냥 테서렉트를 설치하고 사용한 듯 하다. 그래도 파이썬에서 테서텍트를 이용하고자 하는 사람들에게 도움이 되었으면 좋겠다. 


오픈API를 사용하면 다양한 재미있는 일들을 해 볼 수 있다. 파이썬을 활용한 오픈API 사용이 궁금하다면 아래 글을 참조해보자.

(참조: 오픈API를 활용한 사례는 어떤 것들이 있을까?)


'Python > 이미지 인식' 카테고리의 다른 글

파이썬 테서렉트(tesseract) 설치 및 사용후기!  (2) 2019.08.15
파이썬 opencv 설치하기!  (1) 2019.06.10

댓글()
  1. 분석가꽁냥이 2022.04.22 01:14 신고 댓글주소  수정/삭제  댓글쓰기

    우와 이런 패키지도 있네요. 저도 함 써봐야겠네요.