πŸ›οΈ Hanja Swin Transformer V2 (ANSEONGMIN/hanja-swinv2)

Project Award Top-1 Accuracy Top-5 Accuracy GitHub Core NLP Partner

ANSEONGMIN/hanja-swinv2λŠ” 였랜 μ„Έμ›” 풍화와 마λͺ¨λ‘œ ν›Όμ†λœ ν•œκ΅­ κΈˆμ„λ¬Έ/κ³ λ¬Έμ„œ 탁본 이미지λ₯Ό λ³΅μ›ν•˜κ³  μžλ™ νŒλ…ν•˜κΈ° μœ„ν•΄ ν•™μŠ΅λœ Swin Transformer V2 기반 13,974μ’… ν•œμž λΉ„μ „ λΆ„λ₯˜ λͺ¨λΈμž…λ‹ˆλ‹€. κ³ λ €λŒ€ν•™κ΅ μ§€λŠ₯정보 SW아카데미 μ΅œμ’… ν”„λ‘œμ νŠΈ κ²½μ§„λŒ€νšŒμ—μ„œ **λŒ€μƒ(μ •λ³΄ν†΅μ‹ κΈ°νšν‰κ°€μ›μž₯상)**을 μˆ˜μƒν•œ EpiText ν”„λ‘œμ νŠΈμ˜ 핡심 λΉ„μ „ AI μ—”μ§„μž…λ‹ˆλ‹€.


🌐 EpiText ν”„λ‘œμ νŠΈ μƒνƒœκ³„ (Ecosystem & Models)

EpiText μ‹œμŠ€ν…œμ€ **λΉ„μ „ λͺ¨λΈ(Swin V2)**κ³Ό **κ³ μ „ ν•œλ¬Έ λ¬Έλ§₯ μ–Έμ–΄ λͺ¨λΈ(SikuRoBERTa)**의 λ©€ν‹°λͺ¨λ‹¬ μ•™μƒλΈ”λ‘œ κ΅¬λ™λ©λ‹ˆλ‹€.

λͺ¨λΈ / μ €μž₯μ†Œ 링크 μ„€λͺ… 및 λ‹΄λ‹Ή μ—­ν• 
πŸ‘οΈ Vision AI Model ANSEONGMIN/hanja-swinv2 (ν˜„μž¬ λͺ¨λΈ) 13,974μ’… κ³ λ¬Έμ„œ ν•œμž λΉ„μ „ 인식 (Swin V2 Small)
πŸ“– NLP Context Model jhangyejin/epitext-sikuroberta μ‚¬κ³ μ „μ„œ(ε››εΊ«ε…¨ζ›Έ) 기반 κ³ μ „λ¬Έλ§₯ μΆ”λ‘  및 ꡬ두점/μ˜€μΈμ‹ 보정 (SikuRoBERTa MLM)
πŸ”¬ Core Research Repo rntqkdl/Epitext_Project 데이터 μ •μ œ, λ‘±ν…ŒμΌ 손싀 ν•¨μˆ˜ 섀계, λͺ¨λΈ ν•™μŠ΅ 및 평가 μ•„μΉ΄μ΄λΈŒ
βš™οΈ Production Backend jincerity/Epitext_Back FastAPI 비동기 인퍼런슀 μ„œλ²„ 및 Docker μ»¨ν…Œμ΄λ„ˆ μ„œλΉ™
πŸ’» Production Frontend jincerity/Epitext_Front 탁본 이미지 μ—…λ‘œλ“œ 및 Grad-CAM 히트맡 μ‹œκ°ν™” UI

πŸ“Š λͺ¨λΈ μ„±λŠ₯ μ§€ν‘œ (Model Performance)

ν‰κ°€μ§€ν‘œ 수치 (Metrics) λΉ„κ³ 
Top-1 Classification Accuracy 96.63% 13,974μ’… 극단적 λ‘±ν…ŒμΌ λΆˆκ· ν˜• ν™˜κ²½
Top-5 Classification Accuracy 99.38% μƒμœ„ 5개 후보 λ‚΄ μ •λ‹΅ 포함λ₯ 
Rare Class Detection Rate 92.40% μƒ˜ν”Œ 수 1~2개 희귀 ν•œμž νƒμ§€μœ¨
Baseline λŒ€λΉ„ ν–₯상도 +38.23%p κΈ°μ‘΄ ResNet50(58.40%) λŒ€λΉ„ μ„±λŠ₯ 비약적 μƒμŠΉ

πŸ› οΈ λͺ¨λΈ μ•„ν‚€ν…μ²˜ 및 ν•™μŠ΅ μŠ€νŽ™ (Architecture & Training)

  • 기반 μ•„ν‚€ν…μ²˜: swinv2_small_window16_256 (timm 기반, Window Size 16)
  • μž…λ ₯ 해상도: $256 \times 256 \times 3$ (RGB)
  • 총 클래슀 수: 13,974 Classes (char_mapping.json)
  • 데이터셋 규λͺ¨:
    • μ›μ²œ μˆ˜μ§‘ 데이터: 규μž₯각, κ΅­μ‚¬νŽΈμ°¬μœ„μ›νšŒ(κ³ λŒ€μ‚¬λ£Œ, κ³ λ €μ‚¬λ£Œ), κΈˆμ„λ¬Έ μ‘°μ‚¬λ³΄κ³ μ„œ(2018~2023), μ§€μ‹μ΄μŒ λ“± 총 13,966개 탁본 이미지 / 8,759개 νŒλ…λ¬Έ / 6,345개 λ²ˆμ—­λ¬Έ
    • ν’ˆμ§ˆ μ •μ œ: 7κ°€μ§€ ν’ˆμ§ˆ μ§€ν‘œ(μ‘°λͺ…, λͺ…μ•”λΉ„, λΈ”λŸ¬, λ…Έμ΄μ¦ˆ, 마슀크) 기반 IQR 필터링 및 EasyOCR(ch_tra) 필터링을 톡해 κ³ ν’ˆμ§ˆ 데이터셋 확보.
  • ν•™μŠ΅ νŒŒλΌλ―Έν„°:
    • Effective Batch Size: 576 (Batch 192 $\times$ Gradient Accumulation 3), Mixed Precision(AMP)
    • 2-Tier μ°¨λ“± ν•™μŠ΅λ₯ : Backbone (3e-5) / Classification Head (3e-4)
    • μŠ€μΌ€μ€„λŸ¬: Cosine Annealing with Warmup (5 Epochs)
    • λΆˆκ· ν˜• 손싀 ν•¨μˆ˜: λΉˆλ„μˆ˜ 제곱근 μ—­μˆ˜ κ°€μ€‘μΉ˜ ($w_c = (1/N_c)^{0.5}$) Cross-Entropy Loss

πŸš€ λΉ λ₯Έ μ‹œμž‘ (Quick Start / How to Use)

1. νŒ¨ν‚€μ§€ μ„€μΉ˜

pip install torch torchvision timm pillow

2. 파이썬 μΆ”λ‘  예제 μ½”λ“œ (Inference Pipeline)

import torch
import torch.nn as nn
import timm
from torchvision import transforms
from PIL import Image
import json

# 1. λͺ¨λΈ μ•„ν‚€ν…μ²˜ μ •μ˜ (13,974 클래슀)
model = timm.create_model("swinv2_small_window16_256", pretrained=False, num_classes=13974)

# 2. Hugging Face κ°€μ€‘μΉ˜ λ‘œλ“œ (둜컬 체크포인트 λ˜λŠ” HF Hub λ‹€μš΄λ‘œλ“œ)
checkpoint_path = "swin_checkpoint.pth"  # Hugging Face Repo 파일 경둜
checkpoint = torch.load(checkpoint_path, map_location="cpu")
model.load_state_dict(checkpoint["model_state_dict"] if "model_state_dict" in checkpoint else checkpoint)
model.eval()

# 3. 이미지 μ „μ²˜λ¦¬ νŒŒμ΄ν”„λΌμΈ (256x256)
transform = transforms.Compose([
    transforms.Resize((256, 256)),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

# 4. 탁본 이미지 예츑 μˆ˜ν–‰
image_path = "sample_takbon.jpg"
image = Image.open(image_path).convert("RGB")
input_tensor = transform(image).unsqueeze(0)

with torch.no_grad():
    outputs = model(input_tensor)
    probabilities = torch.softmax(outputs, dim=1)
    top5_prob, top5_indices = torch.topk(probabilities, 5)

print("=== Top-5 Hanja Prediction ===")
for i in range(5):
    idx = top5_indices[0][i].item()
    prob = top5_prob[0][i].item()
    print(f"Top-{i+1}: Class Index {idx} (Probability: {prob*100:.2f}%)")

πŸ”¬ NLP 앙상블 연동 (SikuRoBERTa)

λΉ„μ „ λͺ¨λΈμ΄ μ˜ˆμΈ‘ν•œ Top-5 ν•œμž 후보ꡰ은 jhangyejin/epitext-sikuroberta λͺ¨λΈκ³Ό κ²°ν•©λ˜μ–΄, μ•žλ’€ λ¬Έλ§₯(MLM)에 κ°€μž₯ μžμ—°μŠ€λŸ¬μš΄ ν•œμžλ‘œ μ΅œμ’… 보정(Post-Correction)λ©λ‹ˆλ‹€.


πŸ“œ Citation & License

  • License: MIT License
  • Academic Inquiries: κ³ λ €λŒ€ν•™κ΅ μ§€λŠ₯정보 SW아카데미 7κΈ° EpiText Team (μ•ˆμ„±λ―Ό: tjdals2299@gmail.com)
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support