doyooon's picture
Update README.md
8184aec verified
---
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)
## μ‚¬μš©λ²•
### λͺ¨λΈ λ‘œλ“œ 및 μΆ”λ‘ 
```python
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 라이브러리 μ‚¬μš©
```python
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}
}
```