--- language: - en tags: - defect-detection - image-classification - machine-learning - quality-control - ensemble-learning - neural-networks license: apache-2.0 datasets: - custom_paper_surface_defect pipeline_tag: image-classification model-index: - name: Paper Defect Detection results: - task: type: image-classification name: Surface Defect Detection metrics: - type: accuracy value: 0.81 name: Ensemble Test Accuracy - type: f1 value: 0.8 name: F1 Score library_name: sklearn --- # Paper Defect Detection ## Model Description This model is designed for automated surface defect detection in manufacturing using a hybrid approach that combines classical machine learning and deep learning techniques. ### Model Architecture The model uses a hybrid architecture combining: - Logistic Regression - SVM - Naive Bayes - CNN - Ensemble Voting Classifier ### Feature Extraction Methods - Histogram of Oriented Gradients (HOG) - Gabor Filters - Canny Edge Detection - Wavelet Transforms ## Performance | Model | Train Accuracy | Test Accuracy | |--------------------|----------------|---------------| | Logistic Regression| 0.99 | 0.79 | | SVM | 0.86 | 0.80 | | Ensemble Model | 0.90 | 0.81 | ## Limitations - Performance may degrade for defect types not represented in the training data - Variations in lighting or textures can affect classification accuracy - This was a university project with room for improvement ## Usage ```python from transformers import AutoModelForImageClassification, AutoFeatureExtractor import torch from PIL import Image from torchvision import transforms model_name = "your-username/surface-defect-detection" model = AutoModelForImageClassification.from_pretrained(model_name) feature_extractor = AutoFeatureExtractor.from_pretrained(model_name) # Preprocess the input image transform = transforms.Compose([ transforms.Resize((128, 128)), transforms.ToTensor() ]) image = Image.open("path/to/sample-image.jpg") inputs = feature_extractor(images=image, return_tensors="pt") # Perform inference with torch.no_grad(): outputs = model(**inputs) predicted_class = outputs.logits.argmax(-1).item() print(f"Predicted Defect Class: {predicted_class}") ```