Update README.md
Browse files
README.md
CHANGED
@@ -1,3 +1,140 @@
|
|
1 |
-
---
|
2 |
-
license: cc
|
3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
license: cc-by-nc-4.0
|
3 |
+
tags:
|
4 |
+
- image-classification
|
5 |
+
- pytorch
|
6 |
+
- defect-detection
|
7 |
+
- manufacturing
|
8 |
+
- quality-control
|
9 |
+
language:
|
10 |
+
- ko
|
11 |
+
datasets:
|
12 |
+
- custom
|
13 |
+
metrics:
|
14 |
+
- accuracy
|
15 |
+
library_name: pytorch
|
16 |
+
pipeline_tag: image-classification
|
17 |
+
---
|
18 |
+
|
19 |
+
# 의장공정 불량품 분류 모델 (Assembly Process Defect Classification)
|
20 |
+
|
21 |
+
이 모델은 의장공정에서 발생하는 다양한 불량 유형을 분류하기 위해 ResNet50 아키텍처를 기반으로 파인튜닝된 모델입니다.
|
22 |
+
|
23 |
+
## 모델 정보
|
24 |
+
|
25 |
+
- **아키텍처**: ResNet50
|
26 |
+
- **클래스 수**: 24개
|
27 |
+
- **입력 크기**: 224x224 RGB 이미지
|
28 |
+
- **분류 카테고리**: 12가지 불량 유형 × 2가지 품질 상태 (불량품/양품)
|
29 |
+
|
30 |
+
## 분류 클래스
|
31 |
+
|
32 |
+
### 불량 유형별 분류
|
33 |
+
- **고정 불량**: 불량품(0), 양품(1)
|
34 |
+
- **고정핀 불량**: 불량품(2), 양품(3)
|
35 |
+
- **단차**: 불량품(4), 양품(5)
|
36 |
+
- **스크래치**: 불량품(6), 양품(7)
|
37 |
+
- **실링 불량**: 불량품(8), 양품(9)
|
38 |
+
- **연계 불량**: 불량품(10), 양품(11)
|
39 |
+
- **외관 손상**: 불량품(12), 양품(13)
|
40 |
+
- **유격 불량**: 불량품(14), 양품(15)
|
41 |
+
- **장착 불량**: 불량품(16), 양품(17)
|
42 |
+
- **체결 불량**: 불량품(18), 양품(19)
|
43 |
+
- **헤밍 불량**: 불량품(20), 양품(21)
|
44 |
+
- **홀 변형**: 불량품(22), 양품(23)
|
45 |
+
|
46 |
+
## 사용법
|
47 |
+
|
48 |
+
### 모델 로드 및 추론
|
49 |
+
|
50 |
+
```python
|
51 |
+
import torch
|
52 |
+
from torchvision import models, transforms
|
53 |
+
from PIL import Image
|
54 |
+
|
55 |
+
# 모델 로드
|
56 |
+
model = models.resnet50(num_classes=24)
|
57 |
+
model.fc = torch.nn.Linear(model.fc.in_features, 24)
|
58 |
+
model.load_state_dict(torch.load('pytorch_model.bin', map_location='cpu'))
|
59 |
+
model.eval()
|
60 |
+
|
61 |
+
# 이미지 전처리
|
62 |
+
transform = transforms.Compose([
|
63 |
+
transforms.Resize((224, 224)),
|
64 |
+
transforms.ToTensor(),
|
65 |
+
transforms.Normalize(mean=[0.485, 0.456, 0.406],
|
66 |
+
std=[0.229, 0.224, 0.225])
|
67 |
+
])
|
68 |
+
|
69 |
+
# 추론
|
70 |
+
img = Image.open('your_image.jpg').convert('RGB')
|
71 |
+
input_tensor = transform(img).unsqueeze(0)
|
72 |
+
|
73 |
+
with torch.no_grad():
|
74 |
+
outputs = model(input_tensor)
|
75 |
+
predicted_class = torch.argmax(outputs, dim=1).item()
|
76 |
+
|
77 |
+
# 클래스명 매핑
|
78 |
+
class_names = {
|
79 |
+
0: '고정 불량_불량품', 1: '고정 불량_양품',
|
80 |
+
2: '고정핀 불량_불량품', 3: '고정핀 불량_양품',
|
81 |
+
4: '단차_불량품', 5: '단차_양품',
|
82 |
+
6: '스크래치_불량품', 7: '스크래치_양품',
|
83 |
+
8: '실링 불량_불량품', 9: '실링 불량_양품',
|
84 |
+
10: '연계 불량_불량품', 11: '연계 불량_양품',
|
85 |
+
12: '외관 손상_불량품', 13: '외관 손상_양품',
|
86 |
+
14: '유격 불량_불량품', 15: '유격 불량_양품',
|
87 |
+
16: '장착 불량_불량품', 17: '장착 불량_양품',
|
88 |
+
18: '체결 불량_불량품', 19: '체결 불량_양품',
|
89 |
+
20: '헤밍 불량_불량품', 21: '헤밍 불량_양품',
|
90 |
+
22: '홀 변형_불량품', 23: '홀 변형_양품'
|
91 |
+
}
|
92 |
+
|
93 |
+
print(f"예측 결과: {class_names[predicted_class]}")
|
94 |
+
```
|
95 |
+
|
96 |
+
### 허깅페이스 Transformers 라이브러리 사용
|
97 |
+
|
98 |
+
```python
|
99 |
+
from transformers import AutoConfig
|
100 |
+
import torch
|
101 |
+
from torchvision import models
|
102 |
+
|
103 |
+
# 설정 로드
|
104 |
+
config = AutoConfig.from_pretrained('your-username/defect-classification-resnet50')
|
105 |
+
|
106 |
+
# 모델 로드
|
107 |
+
model = models.resnet50(num_classes=config.num_classes)
|
108 |
+
model.fc = torch.nn.Linear(model.fc.in_features, config.num_classes)
|
109 |
+
model.load_state_dict(torch.hub.load_state_dict_from_url(
|
110 |
+
'https://huggingface.co/your-username/defect-classification-resnet50/resolve/main/pytorch_model.bin',
|
111 |
+
map_location='cpu'
|
112 |
+
))
|
113 |
+
```
|
114 |
+
|
115 |
+
## 모델 성능
|
116 |
+
|
117 |
+
- **정확도**: 0.7509
|
118 |
+
- **검증 데이터셋**: [데이터셋 정보 입력]
|
119 |
+
|
120 |
+
## 제한사항
|
121 |
+
|
122 |
+
- 이 모델은 특정 제조 환경에서 수집된 데이터로 학습되었으므로, 다른 환경에서는 성능이 달라질 수 있습니다.
|
123 |
+
- 실제 운영 환경에서 사용하기 전에 충분한 테스트를 권장합니다.
|
124 |
+
|
125 |
+
## 라이선스
|
126 |
+
|
127 |
+
CC BY-NC
|
128 |
+
|
129 |
+
## 인용
|
130 |
+
|
131 |
+
이 모델을 사용하신다면 다음과 같이 인용해주세요:
|
132 |
+
|
133 |
+
```
|
134 |
+
@misc{vehicle-assembly-process-defect-detection-model,
|
135 |
+
title={Assembly Process Defect Classification with ResNet50},
|
136 |
+
author={doyoon kwon},
|
137 |
+
year={2025},
|
138 |
+
url={https://huggingface.co/23smartfactory/vehicle-assembly-process-defect-detection-model}
|
139 |
+
}
|
140 |
+
```
|