카테고리 없음

colab + easyocr

사리생성 2025. 11. 8. 15:09

삽입 > 코드셀

 

# @title 마운트
from google.colab import drive
drive.mount('/content/drive')

 

 

EasyOCR

# 2. EasyOCR 리포지토리 클론 (학습용 스크립트 포함)
!git clone https://github.com/JaidedAI/EasyOCR.git

# 3. 클론한 폴더로 이동
%cd EasyOCR

# 4. 학습에 필요한 라이브러리 설치
!pip install -r requirements.txt

 

!mkdir -p /content/drive/MyDrive/my_ocr_data/lmdb/train
!mkdir -p /content/drive/MyDrive/my_ocr_data/lmdb/val

 

import

!sed -i "s/from torch._utils import _accumulate/from itertools import accumulate as _accumulate/g" /content/EasyOCR/trainer/dataset.py

 

 

trainer

# 현재 위치가 /content/EasyOCR/trainer 인지 확인
%cd /content/EasyOCR/trainer

# --config 뒤에 YAML 파일의 '전체 경로'를 지정합니다.
!python3 train.py --config /content/drive/MyDrive/my_ocr_data/my_custom_config.yaml

 

 

===============

 

# 1. EasyOCR 리포지토리 클론
!git clone https://github.com/JaidedAI/EasyOCR.git

# 2. 리포지토리 폴더로 이동
%cd EasyOCR

# 3. 훈련에 필요한 라이브러리 설치
!pip install -r requirements.txt
!pip install easyocr

 

from google.colab import drive
drive.mount('/content/drive')

# 예시: Drive에 'easyocr_data'라는 폴더를 만들었다고 가정
# Colab 내부로 데이터 복사 (I/O 속도 향상)
!mkdir -p /content/data
!cp -r /content/drive/MyDrive/easyocr_data/train /content/data/
!cp -r /content/drive/MyDrive/easyocr_data/val /content/data/

 

!cp config/ko.yaml config/custom_ko.yaml

 

 

# EasyOCR 루트 폴더(/content/EasyOCR)에서 실행
!python trainer/train.py --config config/custom_ko.yaml

 

 

 

---

 

사전 준비
1. Google 드라이브에 프로젝트 업로드:
  * 본인 Google 드라이브의 최상위 경로에 로컬의 EasyOCR 프로젝트 폴더 전체를 업로드합니다.
  * 이때, EasyOCR/trainer/all_data/ 안에는 korean_test_train과 korean_test_val 데이터 폴더가, EasyOCR/trainer/config_files/ 안에는 ko_filtered_config.yaml 파일이 모두 포함되어 있어야 합니다.

작업내용
1. Colab 노트북 설정
   Google Colab (https://colab.research.google.com/)에서 새 노트북을 엽니다.
   GPU 런타임으로 변경합니다. (메뉴: 런타임 > 런타임 유형 변경 > GPU)

2. Google 드라이브 마운트
   Colab 노트북에서 Google 드라이브에 접근할 수 있도록 연결합니다. 아래 코드를 셀에 입력하고 실행하세요. 실행하면 인증 절차를 안내하는 링크가 나타납니다.
   from google.colab import drive
   drive.mount('/content/drive')

3. 프로젝트 파일을 Colab 환경으로 복사
  드라이브에서 직접 파일을 읽고 쓰는 것은 매우 느리므로, 학습 전에 프로젝트 전체를 Colab의 빠른 로컬 저장소로 복사합니다.
  아래 코드를 실행하여 드라이브에 있는 EasyOCR 폴더를 Colab의 /content/ 디렉토리로 복사하세요. (약 1~2분 소요될 수 있습니다)
  # Google 드라이브에서 Colab 로컬 환경으로 프로젝트 복사
  !cp -r /content/drive/MyDrive/EasyOCR /content/

4. 필요 라이브러리 설치
  복사된 프로젝트 폴더로 이동하여 학습에 필요한 라이브러리를 설치합니다.
  # 작업 디렉토리 변경
  %cd /content/EasyOCR/
    
  # 라이브러리 설치
  !pip install -r requirements.txt
  !pip install ninja pyyaml

5. 학습 코드 실행
  이제 모든 준비가 끝났습니다. 아래 코드를 새 셀에 복사하여 실행하면, Colab 환경에 복사된 파일을 이용해 학습이 시작됩니다.

import os
# 작업 디렉토리를 trainer 폴더로 변경
os.chdir('/content/EasyOCR/trainer')

import torch.backends.cudnn as cudnn
import yaml
from train import train
from utils import AttrDict
import pandas as pd

cudnn.benchmark = True
cudnn.deterministic = False

def get_config(file_path):
    with open(file_path, 'r', encoding="utf8") as stream:
        opt = yaml.safe_load(stream)
    opt = AttrDict(opt)
    if opt.lang_char == 'None':
        characters = ''
        for data in opt['select_data'].split('-'):
            csv_path = os.path.join(opt['train_data'], data, 'labels.csv')
            df = pd.read_csv(csv_path, sep='^([^,]+),', engine='python', usecols=['filename', 'words'], keep_default_na=False)
            all_char = ''.join(df['words'])
            characters += ''.join(set(all_char))
        characters = sorted(set(characters))
        opt.character= ''.join(characters)
    else:
        opt.character = opt.number + opt.symbol + opt.lang_char
    os.makedirs(f'./saved_models/{opt.experiment_name}', exist_ok=True)
    return opt

# 설정 파일을 불러와 학습 시작
opt = get_config("config_files/ko_filtered_config.yaml")
train(opt, amp=False)



6. 학습 결과물을 Google 드라이브에 저장 (권장)

학습이 완료되면 결과물(학습된 모델)이 Colab의 /content/EasyOCR/trainer/saved_models/korean_test_16/ 폴더에 저장됩니다. Colab 세션이 종료되면 이 파일들은 사라지므로, Google 드라이브에 다시
복사하여 영구적으로 보관하는 것이 좋습니다.

아래 코드를 실행하여 결과 폴더를 Google 드라이브 최상위 경로로 복사.

# 학습된 모델을 Google 드라이브로 복사
!cp -r /content/EasyOCR/trainer/saved_models/korean_test_16 /content/drive/MyDrive/

이제 Google 드라이브에서 korean_test_16 폴더를 확인하여 학습된 모델을 다운로드하거나 관리할 수 있습니다.

ℹ Citations:
  https://github.com/BismarckBamfo/ocr-paper