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