doyooon's picture
Update README.md
8184aec verified
metadata
license: cc-by-nc-4.0
tags:
  - image-classification
  - pytorch
  - defect-detection
  - manufacturing
  - quality-control
language:
  - ko
datasets:
  - custom
metrics:
  - accuracy
library_name: pytorch
pipeline_tag: image-classification

의μž₯곡정 λΆˆλŸ‰ν’ˆ λΆ„λ₯˜ λͺ¨λΈ (Assembly Process Defect Classification)

이 λͺ¨λΈμ€ 의μž₯κ³΅μ •μ—μ„œ λ°œμƒν•˜λŠ” λ‹€μ–‘ν•œ λΆˆλŸ‰ μœ ν˜•μ„ λΆ„λ₯˜ν•˜κΈ° μœ„ν•΄ ResNet50 μ•„ν‚€ν…μ²˜λ₯Ό 기반으둜 νŒŒμΈνŠœλ‹λœ λͺ¨λΈμž…λ‹ˆλ‹€.

λͺ¨λΈ 정보

  • μ•„ν‚€ν…μ²˜: ResNet50
  • 클래슀 수: 24개
  • μž…λ ₯ 크기: 224x224 RGB 이미지
  • λΆ„λ₯˜ μΉ΄ν…Œκ³ λ¦¬: 12κ°€μ§€ λΆˆλŸ‰ μœ ν˜• Γ— 2κ°€μ§€ ν’ˆμ§ˆ μƒνƒœ (λΆˆλŸ‰ν’ˆ/μ–‘ν’ˆ)

λΆ„λ₯˜ 클래슀

λΆˆλŸ‰ μœ ν˜•λ³„ λΆ„λ₯˜

  • κ³ μ • λΆˆλŸ‰: λΆˆλŸ‰ν’ˆ(0), μ–‘ν’ˆ(1)
  • κ³ μ •ν•€ λΆˆλŸ‰: λΆˆλŸ‰ν’ˆ(2), μ–‘ν’ˆ(3)
  • 단차: λΆˆλŸ‰ν’ˆ(4), μ–‘ν’ˆ(5)
  • 슀크래치: λΆˆλŸ‰ν’ˆ(6), μ–‘ν’ˆ(7)
  • 싀링 λΆˆλŸ‰: λΆˆλŸ‰ν’ˆ(8), μ–‘ν’ˆ(9)
  • 연계 λΆˆλŸ‰: λΆˆλŸ‰ν’ˆ(10), μ–‘ν’ˆ(11)
  • μ™Έκ΄€ 손상: λΆˆλŸ‰ν’ˆ(12), μ–‘ν’ˆ(13)
  • 유격 λΆˆλŸ‰: λΆˆλŸ‰ν’ˆ(14), μ–‘ν’ˆ(15)
  • μž₯μ°© λΆˆλŸ‰: λΆˆλŸ‰ν’ˆ(16), μ–‘ν’ˆ(17)
  • 체결 λΆˆλŸ‰: λΆˆλŸ‰ν’ˆ(18), μ–‘ν’ˆ(19)
  • 헀밍 λΆˆλŸ‰: λΆˆλŸ‰ν’ˆ(20), μ–‘ν’ˆ(21)
  • 홀 λ³€ν˜•: λΆˆλŸ‰ν’ˆ(22), μ–‘ν’ˆ(23)

μ‚¬μš©λ²•

λͺ¨λΈ λ‘œλ“œ 및 μΆ”λ‘ 

import torch
from torchvision import models, transforms
from PIL import Image

# λͺ¨λΈ λ‘œλ“œ
model = models.resnet50(num_classes=24)
model.fc = torch.nn.Linear(model.fc.in_features, 24)
model.load_state_dict(torch.load('pytorch_model.bin', map_location='cpu'))
model.eval()

# 이미지 μ „μ²˜λ¦¬
transform = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406],
                         std=[0.229, 0.224, 0.225])
])

# μΆ”λ‘ 
img = Image.open('your_image.jpg').convert('RGB')
input_tensor = transform(img).unsqueeze(0)

with torch.no_grad():
    outputs = model(input_tensor)
    predicted_class = torch.argmax(outputs, dim=1).item()

# 클래슀λͺ… λ§€ν•‘
class_names = {
    0: 'κ³ μ • λΆˆλŸ‰_λΆˆλŸ‰ν’ˆ', 1: 'κ³ μ • λΆˆλŸ‰_μ–‘ν’ˆ',
    2: 'κ³ μ •ν•€ λΆˆλŸ‰_λΆˆλŸ‰ν’ˆ', 3: 'κ³ μ •ν•€ λΆˆλŸ‰_μ–‘ν’ˆ',
    4: '단차_λΆˆλŸ‰ν’ˆ', 5: '단차_μ–‘ν’ˆ',
    6: '슀크래치_λΆˆλŸ‰ν’ˆ', 7: '슀크래치_μ–‘ν’ˆ',
    8: '싀링 λΆˆλŸ‰_λΆˆλŸ‰ν’ˆ', 9: '싀링 λΆˆλŸ‰_μ–‘ν’ˆ',
    10: '연계 λΆˆλŸ‰_λΆˆλŸ‰ν’ˆ', 11: '연계 λΆˆλŸ‰_μ–‘ν’ˆ',
    12: 'μ™Έκ΄€ 손상_λΆˆλŸ‰ν’ˆ', 13: 'μ™Έκ΄€ 손상_μ–‘ν’ˆ',
    14: '유격 λΆˆλŸ‰_λΆˆλŸ‰ν’ˆ', 15: '유격 λΆˆλŸ‰_μ–‘ν’ˆ',
    16: 'μž₯μ°© λΆˆλŸ‰_λΆˆλŸ‰ν’ˆ', 17: 'μž₯μ°© λΆˆλŸ‰_μ–‘ν’ˆ',
    18: '체결 λΆˆλŸ‰_λΆˆλŸ‰ν’ˆ', 19: '체결 λΆˆλŸ‰_μ–‘ν’ˆ',
    20: '헀밍 λΆˆλŸ‰_λΆˆλŸ‰ν’ˆ', 21: '헀밍 λΆˆλŸ‰_μ–‘ν’ˆ',
    22: '홀 λ³€ν˜•_λΆˆλŸ‰ν’ˆ', 23: '홀 λ³€ν˜•_μ–‘ν’ˆ'
}

print(f"예츑 결과: {class_names[predicted_class]}")

ν—ˆκΉ…νŽ˜μ΄μŠ€ Transformers 라이브러리 μ‚¬μš©

from transformers import AutoConfig
import torch
from torchvision import models

# μ„€μ • λ‘œλ“œ
config = AutoConfig.from_pretrained('your-username/defect-classification-resnet50')

# λͺ¨λΈ λ‘œλ“œ
model = models.resnet50(num_classes=config.num_classes)
model.fc = torch.nn.Linear(model.fc.in_features, config.num_classes)
model.load_state_dict(torch.hub.load_state_dict_from_url(
    'https://huggingface.co/your-username/defect-classification-resnet50/resolve/main/pytorch_model.bin',
    map_location='cpu'
))

λͺ¨λΈ μ„±λŠ₯

  • 정확도: 0.7509
  • 검증 데이터셋: [데이터셋 정보 μž…λ ₯]

μ œν•œμ‚¬ν•­

  • 이 λͺ¨λΈμ€ νŠΉμ • 제쑰 ν™˜κ²½μ—μ„œ μˆ˜μ§‘λœ λ°μ΄ν„°λ‘œ ν•™μŠ΅λ˜μ—ˆμœΌλ―€λ‘œ, λ‹€λ₯Έ ν™˜κ²½μ—μ„œλŠ” μ„±λŠ₯이 λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ‹€μ œ 운영 ν™˜κ²½μ—μ„œ μ‚¬μš©ν•˜κΈ° 전에 μΆ©λΆ„ν•œ ν…ŒμŠ€νŠΈλ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€.

λΌμ΄μ„ μŠ€

CC BY-NC

인용

이 λͺ¨λΈμ„ μ‚¬μš©ν•˜μ‹ λ‹€λ©΄ λ‹€μŒκ³Ό 같이 μΈμš©ν•΄μ£Όμ„Έμš”:

@misc{vehicle-assembly-process-defect-detection-model,
  title={Assembly Process Defect Classification with ResNet50},
  author={doyoon kwon},
  year={2025},
  url={https://huggingface.co/23smartfactory/vehicle-assembly-process-defect-detection-model}
}