|
--- |
|
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} |
|
} |
|
``` |