python PyOCR 문자 인식 프로그램 작성 DigitBuilder

공유하기

  • Add this entry to Hatena Bookmark
  • 0

대량의 종이 문서를 디지털 데이터로 만들고자 한다면 과거에는 입력 전문 담당자를 고용하는 것이 일반적이었습니다. 지금은 종이 문서를 이미지로 저장하고 문자 인식 프로그램을 사용하여 디지털 데이터로 변환하는 작업을 자동화 하는 시스템을 만들려고 하고 있습니다. 대표적인 광학 문자 인식 OCR(Optical Character Recognition/Reader) 엔진에는 Google가 오픈 소스로 개발 하고 있는 "Tesseract"가 있습니다. 이 글에서는 Python으로 "Tesseract"를 이용하여 OCR을 조작하는 방법에 대해 설명 하겠습니다.

Tesseract 설치하기

다음 글에 따라 Tesseract-ocr를설치 합니다.

"Tesseract"은 Google가 오픈 소스로 개발 하고 있는 광학 문자 인식 OCR(Optical Character R...

PyOCR 설치하기

Tesseract-ocr만 가지고 명령으로 OCR(문자 인식)을 할 수 있는 상태가 됩니다만 Python 추가 패키지 pyocr를 설치하면 더 복잡한 기능의 문자 인식 처리를 프로그램으로 작성할 수 있기 때문에 더 많은 곳에서 사용할 수 있습니다.

여기에서는 PyPI에 등록되어있는 " PyOCR " 라이브러리를 이용합니다. 설치는 다음 pip 명령으로 간단하게 pyocr 추가 패키지를 설치할 수 있습니다. 이미지를 다루기 위해 cv2(opencv-python) 추가 패키지도 설치하시길 추천합니다.

  • pip install pyocr 👓
    (중요) pyocr 의 설치가 끝나자마자 의존 관계가 있는 추가 패키지 Pillow도 자동으로 설치됩니다.
  • pip install opencv-python 👓
    (중요) opencv-python 의 설치가 끝나자마자 의존 관계가 있는 추가 패키지 numpy도 자동으로 설치됩니다.

샘플 프로그램 작성

다음 이미지를 digit.png이름으로 로컬 드라이브 (예: C:¥testocr¥digit.png)에 저장합니다.

다음 소스를 드라이브 (예: C:¥testocr¥testocr_digit.py)에 저장합니다.

소스 내용 설명

  • 9-10행 : testocr_digit.py가 저장되어있는 디렉토리를 현재 작업 디렉토리로 변경합니다. 자세한 설명은 python 확장자 .py파일 실행할 때 현재 작업 디렉토리 변경하기를 참조 하십시오
  • 12-14행 : "C:\\Program Files\\Tesseract-OCR"가 시스템 환경 변수 %PATH%에 등록되어 있지 않다면 추가 합니다.
  • 16-21행 : Tesseract-ocr의 설치에서 문제가 발생했거나 시스템 환경 변수 %PATH%에 설치 경로가 추가 되어있지 않았다면 "OCR tool is not found in path(Tesseract-ocr의 설치 경로)" 메시지를 출력하고 프로그램이 에러 종료됩니다. 그렇지 않다면 OCR tool을 취득해 다음으로 진행합니다.
  • 23-29행 : digit.png 이미지 파일을 읽고 DigitBuilder(숫자,기호 인식)를 사용해 'eng' 문자로 변환합니다.
  • 31행 : 문자 인식으로 취득한 결과를 화면에 출력합니다.
  • 32행 : "Please Enter to Exit" 메시지를 화면에 출력하면서 Enter키 입력을 기다립니다.

실행 및 결과 확인

다음과 같이 python 또는 py 명령을 실행하여 그 결과를 화면에 출력합니다. 숫자와 소수점은 확실하게 인식했습니다만 빨간 소수점은 쉼표를 잘못 인식한 결과입니다. 이처럼 100%의 인식율은 기대하기 어렵습니다.

C:¥testocr>python testocr_digit.py
14.860.793
4.085.102
89.704
0.60
2.20
Please Enter to Exit