EasyOCR 사용 방법
1. OCR?
- OCR(Optical Character Recognition)은 광학 문자 인식의 약자로 이미지에서 문자 위치를 인식 하고 추출 하는 것을 말한다.
- 한글 지원이 되지 않는 스팀게임을 하려다 보니 좀 더 수월하게 진행하기 위해서 실시간으로 게임으로부터 자막이 나오는 영역의 이미지에서 문자의 위치를 인식하고 추출하기 위해서 필요한 기능이다.
2. 현재기술
- 사실 예전에는 OCR 기술이라고 하면 굉장히 난이도 높은 기술에 속했다. 당연히 산업용이나 시장성 있는 인식 기술은 99.99% 라는 높은 인식률을 요구하지만 이를 만족시키기 위해 기존 이미지처리나 인식기술 만으로는 거의 불가능에 가까운 인식률 이였다.
(환경에 따라 다르겠지만…) - 인공지능 AI 기술인 딥러닝에 기반한 인식 기술로 기존에 사용하던 이미지처리, 인식기술의 패러다임 자체를 변경했고 심지어 사용법 조차도 어마무시하게 쉬운 기술이 되어 버린 것!
- 게임에서 영어 자막을 인식하기 위해 오픈소스 기반 OCR 기술을 알아봤는데 가장 유명한 몇 가지가 있었다.
- Tesseract : 구글에서 유지보수하고 있는 오픈 소스 OCR, GPU 지원이 안되는 크리티컬한 문제가 있음, https://github.com/whoareyouwhoami/tess4korean
- EasyOCR : GPU 사용이 가능하고 현재도 많은 업데이트가 이루어지고 있음(아파치2.0 라이선스), https://github.com/JaidedAI/EasyOCR
- Keras-ocr : Tensorflow Keras 기반으로 CRNN 구현 및 CRAFT 모델, https://github.com/faustomorales/keras-ocr
- 성능은 Keras-ocr이 가장 좋지만 임베디드용으로 TPU 또는 CoralAI를 사용할 수 없는 버전이기에 어짜피 임베디드 안되는거면 GPU 지원하고 사용하기 간편한 EasyOCR 을 사용해 보기로 했다. EasyOCR은 PyTorch 기반이다.
3-1. CPU 설치
- 설치는 두 가지 방법으로 나뉘는데 GPU 사용 여부에 따라 달라진다.
- 일반 사용자나 추후 Burndori 를 배포하게 되면 GPU는 환경설정이 어려우므로 CPU 설정 방법 먼저 확인해 보자.
-
사용 환경
: 윈도우10, Python 3.8을 기준
: 환경이 구축되어야 있으므로 이 포스팅에서 Python 설치와 venv 환경까지 구축
https://maduinos.blogspot.com/2023/03/openai-api.html -
설치
: 너무 간단해서 미안할 정도
pip install easyocr
: 간단한 코드로 동작이 잘 되는지 확인해 본다.
import easyocr
# 이미지 파일 경로 설정
image_path = "test.jpg"
# EasyOCR 객체 생성 및 설정
reader = easyocr.Reader(['en'], gpu=False)
# 이미지에서 문자 추출
result = reader.readtext(image_path)
#print(result)
# 추출된 문자 출력
for item in result:
print(item[1])
: test.jpg 이미지에서 정상적으로 문자추출이 잘 된다면 성공!
3-2. GPU 설치
- GPU 설치는 꽤 까다로운 편이다. 여러가지 제약조건들을 확인하고 맞춰줘야 한다.
-
Python 3.8 버전과 venv 가상 환경 구축(Python 버전에 따라 조건이 달라지므로 반드시 확인 필요)
-
CUDA Toolkit 설치
: CUDA가 엔비디아 그래픽카드만 지원하므로 당연히 그래픽카드도 최신(?) 엔비디아 그래픽 카드여야 한다.
: CUDA Compute Capability 3.5 이상 지원하는 GPU여야하고 3.0 이상이라면 CUDA 10.2 까지만 적용 가능
: CUDA Compute Capability 3.0 이하는 PyTorch GPU를 사용할 수 없음
GPU 사양 확인
NVIDIA 드라이버 업데이트
PyTorch의 CUDA Toolkit 버전 확인하기
: INSTALL PYTORCH 에서 현재 본인이 사용하고 있는 환경으로 클릭하면 Run this Command: 를 통해 간단히 설치가 가능하다.
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
: 2023년 3월 기준 PyTorch GPU 에서 지원하는 CUDA Toolkit은 11.7, 11.8 이므로 CUDA Compute Capability에 맞는
CUDA Toolkit 설치
-
cuDNN 설치
: cuDNN은 CUDA 심층 신경망 라이브러리 이므로 CUDA 버전에 맞게 설치 해줘야 한다.
cuDNN 설치 -
환경변수 설정
: Python 에서 GPU 가속기 라이브러리를 사용할 수 있도록 환경변수 설정을 해준다.
: CMD 콘솔 에서 버전에 맞는 폴더명으로 수정하여 실행 한다.
setx path "%PATH%;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\버전\bin"
setx path "%PATH%;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\버전\extras\CUPTI\libx64"
setx path "%PATH%;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\버전\include"
- EasyOCR 설치
pip install easyocr
- EasyOCR 테스트
import easyocr
# 이미지 파일 경로 설정
image_path = "test.jpg"
# EasyOCR 객체 생성 및 설정
reader = easyocr.Reader(['en'], gpu=True)
# 이미지에서 문자 추출
result = reader.readtext(image_path)
#print(result)
# 추출된 문자 출력
for item in result:
print(item[1])
- GPU 사용이 안될 경우?
: GPU 사용이 활성화 되지 않는다면 우선 CUDA와 cuDNN 설치와 환경변수가 잘 되었는지 확인한다.
: PyTorch가 충돌나는 경우도 있으므로 재설치 해준다.
pip install --upgrade --force-reinstall torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
- GPU 동작 확인 코드
: 아래 명령어를 통해 GPU 동작을 확인 한다.
import torch
torch.cuda.get_device_name(0)
torch.cuda.is_available()
print(torch.__version__)
도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)
0 댓글