이번에는 오픈소스 OCR 엔진으로 유명한 Tesseract OCR에 대해서 알아보고자 한다.
참고로 또 다른 OCR 엔진에 대한 내용은 다음을 참고하기 바란다.
2021.04.12 - [Development/Machine Learning] - Naver CLOVA API - OCR 사용하기 (1)
2021.04.07 - [Development/Machine Learning] - Google Cloud Vision API - OCR 사용하기 (1)
1. Tesseract Pre-Built Binary Package 설치
Python 패키지 설치에 앞서 우선 설치해야 하는 패키지이다. 다음 링크에서 다운로드 받을 수 있으며, OS환경에 맞게 선택해 설치하면 된다. 여기서는 Windows 64비트 버전으로 설치해 진행한다.
github.com/UB-Mannheim/tesseract/wiki
참고로, 이 Pre-Built Binary는 현재까진 Windows와 Linux에 한해 제공되는 것으로 보인다. 따라서, Mac에서 사용하고자 할 경우 아래 GitHub 링크에서 소스를 직접 내려받아 빌드해야 하는 과정을 거쳐야 할 것이다. (아마도 될 것이다. 직접 빌드해 보진 않았다.....)
github.com/tesseract-ocr/tesseract
다운로드 받은 파일을 실행한다.
한국어 언어팩도 같이 설치하기 위해 'Additional script data', 'Additional language data' 를 체크한다. (아... 한국어 데이터만 선택해서 설치할 걸 그랬다. 언어팩 다운로드 및 설치 시간이 생각보다 꽤 걸린다)
이렇게 설치를 완료했다. (한국어 언어팩만 설치하는 걸 추천한다. 겁나 오래 걸린다ㅠ)
2. 시스템 환경 변수 등록
이제 실행 위치와 무관하게 언제든 사용할 수 있도록 시스템 환경 변수를 등록하기 위해 터미널에서 다음 명령 구문을 사용했다. (흔히 알고 있는 JAVA 설치 후 환경 변수 등록하는 방법과 동일하다)
# 시스템 환경 변수 'PATH'에 Tesseract OCR 설치경로 추가
> setx PATH "%PATH%;C:\Program Files\Tesseract-OCR"
터미널을 다시 열어 다음 구문을 통해 설치 및 환경 변수 등록이 제대로 된 것을 확인할 수 있다.
# Tesseract OCR 설치 및 환경 변수 등록 확인
> Tesseract
3. Python 패키지 설치 및 샘플코드 구현
3.1 Python 패키지 설치
이제 Python에서 코드를 구현하기 위해 필요한 Python 패키지를 설치하며, 필요한 패키지는 다음과 같다.
- pillow
- pytesseract
- jupyter
# 가상환경 만들기
> mkvirtualenv tesseract-ocr
# 가상환경 활성화(진입)
> workon tesseract-ocr
# Tesseract OCR 샘플코드 구현에 필요한 Python 패키지 설치
(tesseract-ocr) > pip install pillow
(tesseract-ocr) > pip install pytesseract
(tesseract-ocr) > pip install jupyter
참고로, Python 가상환경과 관련된 내용은 아래 링크를 확인하기 바란다.
2021.04.15 - [Development/Python] - Python 개발환경구축하기 (for Windows 10)
3.2 샘플코드 구현
이제 다음과 같이 샘플코드를 구현한다. (여기서는 위에서 설치한 Jupyter Notebook을 이용했다)
from PIL import Image
from pytesseract import *
filename = 'images/picture3.png'
image = Image.open(filename)
text = image_to_string(image, lang='kor+eng')
print(text)
아래는 입력이미지와 샘플코드를 실행해 얻은 결과이다.
Tesseract OCR을 사용하는 방법에 대한 설명은 여기까지이다.
생각보다 간단하고 쉽게 사용할 수 있는데 반해, 이미지에 대한 전처리 작업은 반드시 필요할 것으로 보인다.
이어서, 또다른 오픈소스 엔진인 EasyOCR에 대해서는 다음 포스트를 참고하기 바란다.
2021.04.15 - [Development/OCR] - EasyOCR 사용하기
'Development > OCR' 카테고리의 다른 글
Tesseract OCR 4.x 모델 학습하기 (1) (2) | 2021.05.04 |
---|---|
EasyOCR 사용하기 (0) | 2021.04.15 |
Naver CLOVA AI - OCR 사용하기 (3) - Template 도메인 (0) | 2021.04.12 |
Naver CLOVA AI - OCR 사용하기 (2) - General 도메인 (0) | 2021.04.12 |
Naver CLOVA AI - OCR 사용하기 (1) - NCP 가입하기 (0) | 2021.04.12 |