반응형

파이썬을 이용해서 글자를 인식하는 프로그램이다.

아래 블로거님을 참고해서 제작 했다. 

 

(참고 링크)

junyoung-jamong.github.io/computer/vision,/ocr/2019/01/30/Python%EC%97%90%EC%84%9C-Tesseract%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-OCR-%EC%88%98%ED%96%89%ED%95%98%EA%B8%B0.html

 

Python에서 Tesseract 사용하기 for OCR

Tesseract 이미지로부터 텍스트를 인식하고, 추출하는 소프트웨어를 일반적으로 OCR이라고 한다. Tesseract는 1984~1994년에 HP 연구소에서 개발된 오픈 소스 OCR 엔진이며, 현재까지도 LSTM과 같은 딥러닝

junyoung-jamong.github.io

 

글자 인식을 위해서는 별도의 tesseract 프로그램이 필요하다. 설치방법은 위에 블로그를 참고 바란다.

아래 아이콘같은 파일이 다운로드 된다. 

 

1. tesseract 설치하기

기본적으로 영어만 인식하게 되어있으며, 다른언어를 인식하게 끔 하려면 옵션선택을 해야 한다.

한국어 인식을 위해 korean 선택

2. tesseract 환경변수 등록하기

    2-1. 단축키 Window + S 키를 누르고 환경 이라고 쓴다.

    2-2. 환경변수 - path를 편집

    2-3. 프로그램 다운로드 위치인 C:\Program Files\Tesseract-ORC 를 등록한다. (필자는 62비트)

          32비트인 사람들은 C:\Program Files (x86)\Tesseract-ORC 에 있을 것이다.

환경변수를 등록하고 저장

    2-4. cmd로 tesseract 라고 치면 아래와 같이 나와야 설치 및 설정이 된것이다.

반응형

3. 필요한 라이브러리 패키지 설치

 

해당 코드를 사용하기 위해서는 아래 라이브러리가 필요하다.

필자는 opencv만 있으므로 나머지 2개를 추가로 설치했다.

 

- 패키지 설치
pip install pillow
pip install pytesseract
pip install opencv-python

pip install pillow
pip install pytesseract
pip install opencv-python

pillow 설치
pytesseract 설치

파이썬 코드

'''
    reference link : https://junyoung-jamong.github.io/computer/vision,/ocr/2019/01/30/Python%EC%97%90%EC%84%9C-Tesseract%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-OCR-%EC%88%98%ED%96%89%ED%95%98%EA%B8%B0.html
    Have to download OCR program firstly.
    Link : https://github.com/UB-Mannheim/tesseract/wiki
    environment    : Window 10, python 3.6
    tesseract ver  : v5.0.0.20190526.exe

    - 이미지 글자 추출 테스트
    cmd > tesseract path\name.png stdout

    - 패키지 설치
    pip install pillow
    pip install pytesseract
    pip install opencv-python
'''

import cv2
import os
try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract

# 설치한 tesseract 프로그램 경로 (64비트)
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'
# 32비트인 경우 => r'C:\Program Files (x86)\Tesseract-OCR\tesseract'

# 이미지 불러오기, Gray 프로세싱
image = cv2.imread("digit.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# write the grayscale image to disk as a temporary file so we can
# 글자 프로세싱을 위해 Gray 이미지 임시파일 형태로 저장.
filename = "{}.png".format(os.getpid())
cv2.imwrite(filename, gray)

# Simple image to string
text = pytesseract.image_to_string(Image.open(filename), lang=None)
os.remove(filename)

print(text)

cv2.imshow("Image", image)
cv2.waitKey(0)

위 코드는 이미지파일에서 글자(숫자, 영어)를 추출해서 text로 출력한다.

 

(테스트 1 - 숫자 출력 ) digit.png 파일

원본 이미지
출력 결과, 숫자가 잘 출력 되었다.

(테스트 2 - 영어와 숫자 출력 ) eng_digit.png 파일

원본 이미지
약간 이상한 특수문자가 끼어있지만, 대체로 출력 되었다.

(테스트 3 - 긴 영어문장 출력 ) sentences.png 파일

원본 이미지

(테스트 4 - 코드에 한글 옵션을 추가해서 한글도 출력해본다.)

아래 옵션을 'kor' 로 변경
원본이미지
안타깝게도 일부 잘 보이는 글자들만 인식되고 나머지는 생략되었다.

 

글자가 명확할 수록 더 잘 인식이 된다.

여러가지 테스트를 해보길 바란다.

 

 

 

<영상처리 관련 독특한 직업 스마트시티CCTV 관제사 자격증>

https://ansan-survivor.tistory.com/921

 

독특한 자격증, 스마트시티 CCTV 관제사 자격증! (스마트시티 자격증, 4차산업 자격증)

4차산업 혁명과 AI 빅데이터가 발전하고 있는 요즘에는 다양한 독특한 자격증들이 생겼다. 이중 아주 특이한 CCTV관제사 자격증이란 것이 있다. 큰 장점은 다양한 업종에서 종사할 수 있다. 요즘

ansan-survivor.tistory.com

 

반응형

+ Recent posts