본문 바로가기
Programming/Python

[OCR] OpenCV, Pytesseract 를 이용해 이미지에서 텍스트 추출

by chaloalto 2021. 6. 20.

수백장의 스크린샷으로부터 특정 위치의 텍스트를 추출해야 할 일이 생겼다. 

이를 위해 간단한 OCR 코드 및 과정을 적고자 한다. 

텍스트를 추출할 이미지

About OCR (Optical character recognition)

이미지로부터 문자 검출 기술을 OCR (Optical Character Recognition), 광학문자인식 이라고 하며 Pytesseract 라이브러리를 이용해 쉽게 가능했다. 

스크린샷마다 위치가 고정되어 있기 때문에 ROI 를 수동으로 찾으면 됐기에 비교적 쉬운 문제가 되었다. 

Ubuntu 20.04 환경 (VM)에 OpenCV 4.4 , Pytesseract 를 설치하여 이미지에서 숫자, 문자 추출 과정을 정리한다. 

이미 작성되어 있는 타 블로그글을 참조했으며 출처를 명시했다.

 

목차 

  1. 환경
  2. OpenCV & pyter설치
  3. Trouble Shooting
  4. 코드 작성

1. 환경

실행 환경은 다음과 같다. 

  • Ubuntu 20.04 - Oracle VM VirtualBox
  • OpenCV 4.4.0
  • Python 3.8.5

2. OpenCV & pytesseract 설치

OpenCV 설치는 매번 애먹는 문제. 두줄의 코드 실행으로 설치가 완료됐다. 

# opencv 설치
pip install opencv-python
pip install opencv-contrib-python

# Tesseract 설치
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-kor
pip install pytesseract

아래와 같이 정상 설치 됐는지 확인. 

import cv2
cv2.__version__
>>'4.4.0'

3. ** Trouble Shooting

1. Pytesseract 쓸때는 가상환경(anaconda, venv) 을 사용하지 말것.

- Anaconda 가상환경을 먼저 설치했어서 Python Library Path 에 문제 발생

2. 아래 포스트의 OpenCV 설치를 시도했는데, 결국 Python Library Path 문제로 실패했다

(아래 포스트와 위에 pip install opencv-python 차이점을 잘 모르겠음) 

https://webnautes.tistory.com/1433

 

Ubuntu 20.04에 OpenCV 4.4.0 설치하는 방법

OpenCV 4.4.0과 opencv_contrib(extra modules)를 컴파일하여 Ubuntu 20.04에 설치하는 방법을 다룹니다. 1. 설치된 OpenCV 제거 2. 기존 설치된 패키지 업그레이드 3. OpenCV 컴파일 전 필요한 패키지 설치 4. Op..

webnautes.tistory.com

 

- Ubuntu에 visual Studio Code 다운방법은 아래 블로그 참조

https://webnautes.tistory.com/1197

 

Visual Studio Code 설치하는 방법( Windows / Ubuntu )

Visual Studio Code를 Windows와 Ubuntu에 각각 설치하는 방법을 설명합니다. 설치를 진행해본 운영체제 버전은 Windows 10과 Ubuntu 20.04 /Ubuntu 18.04 입니다.           1. 윈도우에 설치하는 방법..

webnautes.tistory.com

4. 코드 작성

아래와 같이 자동차 번호판 영역 추출에 관한 블로그가 있어 코드를 가져와 사용했다. 

다만, 아래는 영역을 자동 추출하는 반면, 나의 경우 ROI 를 수동으로 잡는 것이 가능하여 훨씬 더 쉬운 문제가 되었다. https://emaru.tistory.com/15

 

Python+OpenCV로 자동차 번호판 영역 추출 및 인식하기

안녕하세요~ 마루입니다. 오늘은 Python에 설치한 OpenCV를 활용하여 자동차가 찍힌 사진에서 번호판 영역을 추출하고 pytesseract를 통해 인식하는 과정까지 포스팅할려고 합니다. OpenCV(Open Source Comput

emaru.tistory.com

소스코드는 아래에서 확인 할 수 있다. 

https://github.com/changhwanjoe/Simple_OCR

ROI 추출 과정은 아래 블로그 참조

https://bkshin.tistory.com/entry/OpenCV-6-dd

 

OpenCV - 6. 이미지 내 관심영역(Region of Interest, ROI) 표시

이번 포스팅에서는 이미지 내에서 관심 영역(Region of Interest, ROI)을 표시하는 방법에 대해 알아보겠습니다. 이번 포스팅 역시 '파이썬으로 만드는 OpenCV 프로젝트(이세우 저)'를 정리한 것임을 밝

bkshin.tistory.com

 

'Programming > Python' 카테고리의 다른 글

[Python] 경로 안의 파일 리스트 가져오기  (0) 2021.09.01