OCR을 사용해야 하는 상황에서 만약 장비와 시간의 여유가 있다면 Python으로 EasyOCR을 한 번쯤 사용해보는 것도 좋을 것 같습니다.
위 주소는 EasyOCR 공식github 주소입니다.
1. 그래서 EasyOCR이 뭔데?
우선 EasyOCR에 대해서 설명을 적어봅니다
- EasyOCR은 OCR 오픈소스로 Detection부분과 Recognition부분으로 나누어져 있으며 Text Detection은 CRAFT를 사용하고 Recognition은 CRNN사용합니다.
- Framework는 모든 소스가 pytorch로 작성되어있습니다. pytorch는 tensorflow처럼 딥러닝을 위한 프레임워크로 tensorflow보다 좀 더 pythonic하게 코드를 작성할 수 있습니다.
- OCR 결과, 검출된 텍스트의 바운딩 박스 좌표를 얻을 수 있습니다.
- 80종 이상이 지원됩니다.(refer : https://www.jaided.ai/easyocr/), 한번 실행에 여러 언어 인식 제공합니다.
2. 설치하기
설치 방법은 2가지가 있습니다.
저는 Windows10, Anaconda Python3.7, CUDA가 없는 환경에서 진행했습니다.
1. 아래 명령어를 통해 설치합니다. 근데 저는 이렇게 하면 정상적으로 설치가 되지 않아 2번 방법을 택했습니다.
pip install easyocr
2. 아래 명령어를 입력합니다. git이 설치되어있다는 전제입니다.
pip install git+git://github.com/jaidedai/easyocr.git
근데 의존성 에러가 발생하는 경우가 있습니다. 아래 명령어를 입력해 설치하면 해결되었습니다.
conda install pytorch==1.4.0
설치가 다 끝났으면 이제 사용을 하기 위해 코드를 작성합니다.
3. 간단한 실행
아래 코드는 EasyOCR github에서 제공해주는 예제 코드입니다.
import easyocr
reader = easyocr.Reader(['ch_sim','en']) # need to run only once to load model into memory
result = reader.readtext('chinese.jpg')
맨 처음 모델을 load하기 위한 시간이 필요합니다. 그 이후 일정 시간이 지나면 끝납니다.
위 예제가 동작한 이후 모든 결과는 result객체가 가지고 있습니다.
그러면 현실에 맞게 코드를 수정해보겠습니다.
import easyocr
reader = easyocr.Reader(['ko', 'en'], gpu=False) )
result = reader.readtext("INPUT_IMAGE_PATH")
print(result)
언어는 영어와 한국어를 대상으로 하고 gpu는 없지만 명시적으로 사용하지 않을 것이라 했습니다.
readtext()의 파라미터에는 이미지 경로를 주면 됩니다.
이후 result를 print하면 아래와 같이 나옵니다. 참고로 저는 도비 짤을 대상으로 진행했습니다.
정말 정확하게 잘 나오는 걸 볼 수 있습니다.
다음 글에서는 제가 EasyOCR을 어떻게 사용했는지 코드와 함께 작성하도록 하겠습니다.
'Python > 딥러닝 (Deep-Learning)' 카테고리의 다른 글
LeNet-5 Pytorch 코드 구현(이라 쓰고 질문이라고 읽는다.) (6) | 2021.08.28 |
---|---|
우리 EasyOCR로 한번 가자(2) (6) | 2021.04.18 |
Tensorlfow Object Detection API 사용 중 발생한 에러 정리 (0) | 2021.03.25 |
눈물없이는 볼 수 없는 회사 딥러닝 프레임워크 업데이트 모험기(3) (0) | 2021.03.17 |
눈물없이는 볼 수 없는 회사 딥러닝 프레임워크 업데이트 모험기(2) (0) | 2021.02.21 |