자동차 번호판 문자열 인식을 위한 Tesseract_OCTR 라이브러리 설치

댓글 0

머신러닝

2020. 8. 1.

아나콘다 Envirinment를 열어 가상공간을 지정 후 콘다 창을 열어 “pip install ∙∙∙명령을 사용하여 설치하는 것이 통례이지만 Tesseract-OCR 의 경우에는 적용이 도지 않는다. 아나콘다 이전부터 사용되던 라이브러리로서 특수성이 있으므로 아래의 절차를 참고하자.

 

차량에서 번호판만을 OpenCV Contour 명령을 사용하여 추출하여 strings.png 로 저장 후 이 png 이미지 파일을 읽어서 Tesseract-OCR 코드를 사용하여 문자열 정보를 추출해보자. OpeCV imutils 는 이미 설치되어 있으므로 Tesseract-OCR 폴더 및 이 폴더 내에 tesseract.exe 실행파일을 설치하도록 하자.

 

Tesseract-OCR 라이브러리는 아래의 url 주소에서 찾을 수 있다. https://github.com/UB-Mannheim/tesseract/wiki

사이트의 설명을 간략히 읽어 보자. 만하임대학 라이브러리 즉 UB Mannheim은 역사 깊은 독일 신문들의 OCR 판독을 가능하게 할 수 있도록 Tesseract를 사용하고 있으며 36만 이상의 스캔으로부터 최신 결과들을 온라인으로 이용할 수 있다.

대체로 DEbian GNU Linux 상에서 Tesseract 르 사용하지만 윈도우즈에서도 사용해야 할 필요가 있을 수 있어 Windows 설치를 위한 installer를 제공하는 바이다.

아래 하이퍼링크에서 클릭하면 최신 installer를 사용할 수 있다.

tesseract-ocr-w32-setup-v5.0.0-alpha.20200328.exe (32 bit) (https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w32-setup-v5.0.0-alpha.20200328.exe)

tesseract-ocr-w64-setup-v5.0.0-alpha.20200328.exe (64 bit) resp (https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.0.0-alpha.20200328.exe)

 

64비트를 선택하여 설치해 보도록 하자. 다운로드에 어느 정도 충분한 시간이 필요할 수도 있다.

 

Next를 클릭하고 나타나는 새창들을 처리하면 마지막에 Tesseract-OCR 폴더 위치를 설정하는 단계가 나타난다. 사용자가 그 위치를 설정할 수 있으며 이 위치를 OpenCV 코드에 경로를 반영해 줘야 한다. Default 위치는 바탕화면 사용자 폴더 내부의 C:\Users\Ysc\AppData\Local\Tesseract-OCR 폴더가 된다.

아래의 파이선 코드 예제를 살펴보면 pytesseract.pytesseract.tesseract_cmd = ‘C∙∙∙와 같은 이상한 명령이 있는데 반드시 넣어야 할 필요가 있다.

이 실행 코드와 함께 strings.png 그림파일을 함께 두고 실행하면 문자열이 추출된다.

만약 한글이 섞여 있다면 어떻게 처리되는지 살펴보자.

한글을 제외한 숫자만 정확히 따냄을 알 수 있다. 이미 국내에서도 번호판 감시 카메라가 활성화 되어 있으므로 한글 처리가 가능한 Tesseract-OCR 라이브러리가 개발되어 사용되고 있을 것이다.

 

한글 처리를 가능케 하려면 pytesseract.image_to_string(img, config=’‘)에서 language 파라메터를 사용하도록 하자. Default 용법은 lang=’eng’ 이며 한글 사용을 위해서는 lang=’kor’을 사용하면 된다.

 

#car_plate_01.py
import cv2
import imutils
import numpy as np
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = 'C:/Users/Ysc/AppData/Local/Tesseract-OCR/tesseract.exe'

img =Image.open ('carplate.png')
text = pytesseract.image_to_string(img, config='')
print (text)