Tutorial Lengkap Finetuning EasyOCR untuk Dataset Custom

# Tutorial Lengkap Finetuning EasyOCR untuk Dataset Custom EasyOCR adalah library OCR (Optical Character Recognition) open-source yang powerful dan mendukung lebih dari 80 bahasa. Namun, untuk kasus...

By Ruby Abdullah · · tutorial
EasyOCROCRComputer VisionDeep LearningFinetuning

Tutorial Lengkap Finetuning EasyOCR untuk Dataset Custom

EasyOCR adalah library OCR (Optical Character Recognition) open-source yang powerful dan mendukung lebih dari 80 bahasa. Namun, untuk kasus penggunaan spesifik seperti font khusus, dokumen historis, handwriting, atau format dokumen yang unik, finetuning model EasyOCR bisa meningkatkan akurasi secara signifikan.

Dalam tutorial ini, kita akan mempelajari cara melakukan finetuning EasyOCR dari awal hingga evaluasi model.

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Python 3.7+ (disarankan Python 3.8 atau 3.9)
  • GPU dengan CUDA support (sangat direkomendasikan, minimal 8GB VRAM)
  • Minimal 16GB RAM sistem
  • Dataset gambar teks dengan label ground truth (minimal 1000 samples untuk hasil baik)
  • Disk space minimal 10GB untuk model dan dataset

Instalasi dan Setup Environment

1. Clone Repository EasyOCR

# Clone repository

git clone https://github.com/JaidedAI/EasyOCR.git

cd EasyOCR

Checkout ke branch stable (opsional)

git checkout v1.7.0

2. Setup Virtual Environment

# Buat virtual environment

python -m venv easyocrenv

Aktivasi

Untuk Linux/Mac:

source easyocrenv/bin/activate

Untuk Windows:

easyocrenv\Scripts\activate

3. Install Dependencies

# Install PyTorch dengan CUDA support

Sesuaikan versi CUDA dengan sistem Anda

pip install torch==2.0.1 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu118

Install requirements EasyOCR

pip install -r requirements.txt

Install dependencies tambahan untuk training

pip install tensorboard

pip install lmdb

pip install pillow

pip install opencv-python

pip install albumentations

pip install python-Levenshtein

4. Verifikasi Instalasi

import torch

print(f"PyTorch version: {torch.version}")

print(f"CUDA available: {torch.cuda.isavailable()}")

print(f"CUDA version: {torch.version.cuda}")

print(f"GPU count: {torch.cuda.devicecount()}")

if torch.cuda.isavailable():

print(f"GPU name: {torch.cuda.getdevicename(0)}")

Persiapan Dataset

Dataset adalah komponen paling penting dalam finetuning. Kualitas dan kuantitas dataset sangat mempengaruhi hasil akhir.

1. Struktur Folder Dataset

Buat struktur folder seperti ini:

dataset/

├── raw/

│ ├── train/

│ │ ├── img001.jpg

│ │ ├── img002.jpg

│ │ └── ...

│ ├── validation/

│ │ ├── img001.jpg

│ │ └── ...

│ └── test/

│ ├── img001.jpg

│ └── ...

├── labels/

│ ├── trainlabels.txt

│ ├── vallabels.txt

│ └── testlabels.txt

└── lmdb/

├── train/

└── validation/

2. Format Label File

File label menggunakan format TSV (Tab-Separated Values):

train
labels.txt:
img001.jpg	Hello World

img002.jpg Invoice #12345

img003.jpg Total: $1,250.00

img004.jpg PT Rubythalib Data Konsulta

Setiap baris berisi:

  • Nama file gambar
  • Tab character (\t)
  • Teks ground truth

Tips untuk Dataset Berkualitas:
  • Gambar harus jelas dan readable
  • Minimal resolusi 64x256 pixels
  • Variasi font, ukuran, dan style
  • Berbagai kondisi pencahayaan
  • Include noise dan distorsi realistis
  • Balanced character distribution

3. Script Preprocessing Dataset

Buat file preparedataset.py:

import os

import cv2

import numpy as np

from PIL import Image

from pathlib import Path

def preprocessimage(imagepath, outputpath):

"""

Preprocessing gambar untuk training OCR

"""

# Baca gambar

img = cv2.imread(str(imagepath))

if img is None:

print(f"Error reading {imagepath}")

return False

# Convert ke grayscale

gray = cv2.cvtColor(img, cv2.COLORBGR2GRAY)

# Noise reduction

Artikel Terkait

Tutorial OpenCV + Deep Learning: Image Processing Modern dengan Python

OpenCV + Deep Learning: Tutorial Komprehensif Daftar Isi Pendahuluan Prasyarat Dasar-Dasar Preprocessing Gambar [T...

Tutorial Lengkap Ultralytics: Object Detection dengan YOLO

Tutorial Lengkap Ultralytics: Object Detection dengan YOLO Ultralytics adalah framework Python yang menyediakan implemen...

Florence-2: Model Vision Multi-Task dari Microsoft

Florence-2: Model Vision Multi-Task dari Microsoft Daftar Isi Pendahuluan Prasyarat Instalasi Memuat Model Florence-2

Supervision: Toolkit Computer Vision dari Roboflow

Supervision: Toolkit Computer Vision dari Roboflow Dalam proyek computer vision, setelah model mendeteksi objek, Anda ma...