Banknote Classifier
Overview
This repository contains a fine-tuned EfficientNetB0 image classifier for banknote recognition.
The model is designed to classify cropped banknote images into one of nine denomination classes.
Model Card Summary
- Base architecture: EfficientNetB0
- Task: image classification
- Input size: 224 x 224 x 3
- Training framework: TensorFlow / Keras
- Training strategy: transfer learning with a frozen backbone, then fine-tuning of the upper EfficientNet blocks
Labels
The classifier predicts the following denomination labels:
10, 100, 1000, 200, 2000, 5, 50, 500, 5000
Training Data
The training notebook expects a directory structure similar to:
1dataset_rub/
2 train/
3 val/
4 test/
During training, class folders are read from train and val. The notebooks also use a separate test split for visual checks.
Training Procedure
The model was trained in two stages:
- Feature extraction with EfficientNetB0 initialized from ImageNet weights.
- Fine-tuning of the deeper EfficientNet blocks with a lower learning rate.
Preprocessing and augmentation used in the notebook:
preprocess_input from tensorflow.keras.applications.efficientnet
- random rotation, shift, shear, zoom, flips, brightness and channel jitter
- class oversampling during generator creation to reduce imbalance
Important training settings from the notebook:
- loss: categorical crossentropy
- optimizer: Adam
- initial learning rate: 0.001
- fine-tuning learning rate: 1e-5
- early stopping on validation accuracy
- model checkpointing to save the best
.keras model