File size: 4,205 Bytes
8184aec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
---
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}
}
```