์์ฅ๊ณต์ ๋ถ๋ํ ๋ถ๋ฅ ๋ชจ๋ธ (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}
}
- Downloads last month
- 52