수백장의 스크린샷으로부터 특정 위치의 텍스트를 추출해야 할 일이 생겼다.
이를 위해 간단한 OCR 코드 및 과정을 적고자 한다.
About OCR (Optical character recognition)
이미지로부터 문자 검출 기술을 OCR (Optical Character Recognition), 광학문자인식 이라고 하며 Pytesseract 라이브러리를 이용해 쉽게 가능했다.
스크린샷마다 위치가 고정되어 있기 때문에 ROI 를 수동으로 찾으면 됐기에 비교적 쉬운 문제가 되었다.
Ubuntu 20.04 환경 (VM)에 OpenCV 4.4 , Pytesseract 를 설치하여 이미지에서 숫자, 문자 추출 과정을 정리한다.
이미 작성되어 있는 타 블로그글을 참조했으며 출처를 명시했다.
목차
- 환경
- OpenCV & pyter설치
- Trouble Shooting
- 코드 작성
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에 visual Studio Code 다운방법은 아래 블로그 참조
https://webnautes.tistory.com/1197
4. 코드 작성
아래와 같이 자동차 번호판 영역 추출에 관한 블로그가 있어 코드를 가져와 사용했다.
다만, 아래는 영역을 자동 추출하는 반면, 나의 경우 ROI 를 수동으로 잡는 것이 가능하여 훨씬 더 쉬운 문제가 되었다. https://emaru.tistory.com/15
소스코드는 아래에서 확인 할 수 있다.
https://github.com/changhwanjoe/Simple_OCR
ROI 추출 과정은 아래 블로그 참조
https://bkshin.tistory.com/entry/OpenCV-6-dd
'Programming > Python' 카테고리의 다른 글
[Python] 경로 안의 파일 리스트 가져오기 (0) | 2021.09.01 |
---|