--- tags: - image-classification - Birds - Kaggle - MobileNetV3Large metrics: - accuracy model-index: - name: MobileNetV3Large-Bird-Classification-Kaggle results: - task: name: Image Classification type: image-classification metrics: - name: Accuracy type: accuracy value: 0.9336 --- # 500 Species Bird Classification by Daniel Glownia ## Data - Size: 224 x 224 x 3 ​ - 500 different bird species with at least 130 train images per species​ - 80% male birds (more colorful) and only 20% female (sex is not labeled)​ - One bird per image​ - Bird takes up 50%+ of pixels​ - Some images include noise like watermarks | Dataset | Image count​ | | ------------- | ------------- | | Train | 85,085 | | Test | 2,500 | | Validation | 2,500 | ## CNN Implementation - MobileNetV3 as base model(transfer learning) - Trained on 100 epochs - Optimizer: Adam - Loss: Categorical Cross Entropy ```python epochs = 100 batch_size = 256 inputs = pretrained_model.input x = processing_layers(inputs) x = Dense(256, activation='relu')(pretrained_model.output) x = Dropout(0.2)(x) x = Dense(128, activation='relu')(x) x = Dropout(0.2)(x) x = Dense(64, activation='relu')(x) x = Dropout(0.2)(x) outputs = Dense(500, activation='softmax')(x) model = Model(inputs=inputs, outputs=outputs) ``` ## Results The following confusion matrix represents the lowest performing classes. Classes with perfect scores were removed. ![plot](conf.png) | Dataset | Accuracy | | ------------- | ------------- | | Train | 84.87% | | Test | 92.20% | | Validation | 93.36% | ![plot](loss.png)