귀찮아서가끔하는블로그

[Python] easyocr 사용자 모델 학습하기 - 학습데이터 생성 본문

Python

[Python] easyocr 사용자 모델 학습하기 - 학습데이터 생성

Y-unknow94 2022. 7. 12. 21:47
반응형

easyocr 사용자 모델 학습하기 - 학습데이터 생성


지난 포스팅에서 easyocr을 사용하는 법을 다뤘다.
https://y-unknow94.tistory.com/21

 

[python] easyocr 사용해보기

easyocr 사용해보기 easyocr을 사용하기 전에 OCR이 무엇인지 알아보자 OCR이란? 보통 컴퓨터가 2진법(0/1) 데이터를 폰트를 통해 인간이 인식할 수 있는 형태로 글자를 보여 준다면, OCR은 그 반대로 인

y-unknow94.tistory.com

easyocr의 인식률이 생각보다 좋지 않아 모델 학습을 할 필요성이 있었다.
이번 포스팅에서는 easyocr 학습데이터 생성하는 법을 다뤄보도록 할 것이다.

1. 프로젝트 설치 및 환경 구축

# 소스코드 내려받기
$ git clone https://github.com/Belval/TextRecognitionDataGenerator.git

# 개발환경 구축
$ pip install -r requirements.txt

# 개발환경 구축 (수기 관련 문자열 지원 필요시)
$ pip install -r requirements-hw.txt

2. 학습 데이터 생성하기

# 언어설정(-l ko) 한글 학습데이터 생성
$ python trdg/run.py -c 10 -l ko
* trdg/fonts/ko폴더에 폰트를 다운받아 넣으면 학습데이터 생성 시 폰트가 적용된다.
학습 예시 데이터 (폰트가 다른것을 확인할 수 있다.)

데이터 생성 옵션

No
Arguments
Description
1
-i, --input_file
기본으로 제공되는 학습 단어 모음(dictionaries)이 아닌, 직접 구축한 학습 단어 모음을 사용하고 싶을 때 사용
(단, 학습 단어 모음을 지정하게 되면, 그에 맞게 반드시 -l을 이용해 학습데이터 생성 언어도 변경 필요)
2
--output_dir
생성데이터를 저장하는 위치를 지정할 수 있으며, 기본값은 '/out' 디렉토리이다.
3
-c, --count
생성할 학습 데이터의 개수로, 기본값은 1,000
4
-l, --language
학습데이터의 언어를 변경하고자 할 때 사용
5
-t, --thread_count
학습데이터 생성 시 사용할 CPU 코어의 개수
6
-f, --format
생성되는 이미지 사이즈로, 기본값은 32 pixel
7
-ft, --font
생성할 학습데이터에 사용할 특정 폰트파일 지정 시 사용
(단, 여러 폰트로 생성하고자 할 경우 특정 폰트파일 지정을 할 필요가 없다)

run.py 실행 시 에러 발생 (opencv 버전 문제)

Traceback (most recent call last):
  File "trdg/run.py", line 15, in <module>
    from trdg.data_generator import FakeTextDataGenerator
  File "trdg/../trdg/data_generator.py", line 6, in <module>
    from trdg import computer_text_generator, background_generator, distorsion_generator
  File "trdg/../trdg/background_generator.py", line 1, in <module>
    import cv2
  File "/usr/local/lib/python3.6/dist-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/usr/local/lib/python3.6/dist-packages/cv2/__init__.py", line 175, in bootstrap
    if __load_extra_py_code_for_module("cv2", submodule, DEBUG):
  File "/usr/local/lib/python3.6/dist-packages/cv2/__init__.py", line 28, in __load_extra_py_code_for_module
    py_module = importlib.import_module(module_name)
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/usr/local/lib/python3.6/dist-packages/cv2/gapi/__init__.py", line 290, in <module>
    cv.gapi.wip.GStreamerPipeline = cv.gapi_wip_gst_GStreamerPipeline
AttributeError: module 'cv2' has no attribute 'gapi_wip_gst_GStreamerPipeline'
 

해결

#기존 opencv 삭제
pip uninstall opencv-python
#4.5.5.64 버전 opencv 설치
pip install opencv-python==4.5.5.64
 

다시 실행 시 정상 동작

python trdg/run.py -c 10
/usr/local/lib/python3.6/dist-packages/requests/__init__.py:104: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (2.3.0)/charset_normalizer (2.0.12) doesn't match a supported version!
  RequestsDependencyWarning)
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:00<00:00, 39.81it/s]

python trdg/run.py -c 10 -l ko
/usr/local/lib/python3.6/dist-packages/requests/__init__.py:104: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (2.3.0)/charset_normalizer (2.0.12) doesn't match a supported version!
  RequestsDependencyWarning)
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:00<00:00, 296.89it/s]

python trdg/run.py -c 1000 -l ko
/usr/local/lib/python3.6/dist-packages/requests/__init__.py:104: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (2.3.0)/charset_normalizer (2.0.12) doesn't match a supported version!
  RequestsDependencyWarning)
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [00:02<00:00, 389.66it/s]
 

결과 저장 디렉토리 '/out'에는 임의의 단어로 구성된 영어 문자열 데이터가 생성

참고 사이트 : https://davelogs.tistory.com/70

반응형
Comments