Edit model card

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

Dataset Accuracy
Train 84.87%
Test 92.20%
Validation 93.36%

plot

Downloads last month
11