A Convolutional Neural Network designed from scratch trained using Keras framework that categorizes images of people based on their ages. The model categorizes the input image based on three categories- Young , Middle and Old.
The following preprocessing was applied to each image:
- Have trained the network on frontal faces images
- Random crops of 64 × 64 pixels from the input image of random sizes
- Randomly mirror images in each forward-backward training pass
- Data Augmentation is used
For Age Classification, following are the details of the model:
- 3x3 filter shape, 32 feature maps. Stride of 1 and 0 padding. Followed by: ReLU,Batch-Normalization,Max-Pool,Dropout of 0.25
- 3x3 filter shape, 64 feature maps. Followed by: Batch-Normalization
- 3x3 filter shape, 64 feature maps,stride 1 and padding 1. ReLU, Batch-Normalization,Max-Pool of size 2,Dropout of 0.25.
- 3x3 filter shape, 128 feature maps. Followed by: Batch-Normalization
- 3x3 filter shape, 128 feature maps. Followed by: Batch-Normalization
- 3x3 filter shape, 128 feature maps,stride 1 and padding 1. ReLU, Batch-Normalization,Max-Pool of size 2,Dropout of 0.25.
- Fully connected layer of 512 neurons. Followed by : ReLU,Batch Normalization, Dropout = 0.5.
- Last layer maps to the 3 classes for age
Trained with a learning rate of 0.01,Batch Size of 32 and with 75 to 100 epochs. Used Stochastic Gradient Descent (SGD) optimizer and 70% split of train and validation data. Used OpenCV library for image processing along with data visualization and augmentation.
1.OpenCV
2.Keras
3.Numpy
4.Pandas
5.Seaborn
6.Matplotlib
7.Pickle
8.sklearn
Training Accuracy : 85.48% Validation Accuracy : 84.29%
-Rohan Limaye: https://github.com/rylp
-Rohan Naik: https://github.com/rohan-naik07