A quick example that uses Pokemon and their types to teach how to create an image classifier with python's libraries. The idea is to go from simpler algorithms to CNNs.
- At 00_basic_classifier there's a simple exemple using the histogram as a feature vector
- At 01_create_data_augmentation there's a code to create some data augmentation to the original images
- At 02_improved_classifier is an improvement to the first code, since there is now more data and some treatment for feature selection
- At 03_training_a_cnn there's a basic example on how to train a CNN for the given scenario
- At 04_test_the_trained_cnn there's an exemple on how to use the trained CNN to predict images as well as on how to interpret the results using CAMs (Class Activation Maps)
All the scripts use helpers, but mostly from the Pokemon module, where most of the dirty work is done.
Also, the codes here are powered by a lot of libraries and packages. They are:
SciKit v1.1
PyTorch v1.10
Pillow v8.2
Numpy v1.20.2
pandas v1.2.4
Matplotlib v3.4.3
pytorch-grad-cam v1.3.1