Image classification projects
This project aims to utilize EfficientNet (CNN) for creating custom-trained image classification models for 3 different applications.
• Able to predict up to 100 different classes of sports.
• Able to predict up to 53 different classes of playing cards including the joker.
• Able to predict up to 120 different dog breeds.
NOTE: Other CNNs models such as ResNet or mobilenet are applicable as well. You can find these modelshere.
1. Label images:
• For image classification tasks, the labeling process involves assigning a class label to each image and organizing them into folders based on their classes. Tools like RoboFlow or CVAT simplify this process.2. Split Data:
• Divide dataset into training and validation sets. The training set is used to train the model, while the validation set is used to evaluate its performance during training.3. Pre-process the images: (Resize images and batching dataset)
• Resize images into appropriate sizes, each pre-trained model has a different image size. For EfficientNet, the image size used was 128x128 for the smallest model.4. Augment Images (if needed):
• Data augmentation techniques can be applied to artificially increase the diversity5. Train the model:
• The models were trained using PyTorch, feel free to use tensorflow if you want. Monitor metrics such as train loss and val loss during training.6. Validate the Model:
• Evaluate the trained model on the validation set to ensure it generalizes well7. Inference on Test Set:
• After training, perform inference on a separate test set to assess the model's performance on completely unseen data.Model | Accuracy |
---|---|
Playing cards classifier | 97% |
Sports Classifier | 93% |
Dog Classifier | 75% |
Check out my image classifier apps below:
Hi! How can I help you today?