/FaceImageClaassification

Age, Gender, and Race Classification with Convolutional Neural Networks

Primary LanguageJupyter Notebook

FaceImageClaassification

logoWall2

Age, Gender, and Race Classification with Convolutional Neural Networks

Dataset

UTKFace dataset is a large-scale face dataset with long age span (range from 0 to 116 years old). The dataset consists of over 20,000 face images with annotations of age, gender, and ethnicity. The images cover large variation in pose, facial expression, illumination, occlusion, resolution, etc. This dataset could be used on a variety of tasks, e.g., face detection, age estimation, age progression/regression, landmark localization, etc. Some sample images are shown as following

Link: https://www.kaggle.com/datasets/jangedoo/utkface-new Link: https://susanqq.github.io/UTKFace/

image

Distribution of Gender, Age, and Race in the dataset

Gender graphic

image

Age graphic

image

Label

The labels of each face image is embedded in the file name, formated like [age][gender][race]_[date&time].jpg

[age] is an integer from 0 to 116, indicating the age
[gender] is either 0 (male) or 1 (female)
[race] is an integer from 0 to 4, denoting White, Black, Asian, Indian, and Others (like Hispanic, Latino, Middle Eastern).
[date&time] is in the format of yyyymmddHHMMSSFFF, showing the date and time an image was collected to UTKFace 

Some Layers

Max-pooling

When the training dataset is not large enough to contain all the features in the whole dataset, overfitting happens. By adding max-pooling layer, the size of spatial size and the number of parameters will be reduced (et. only a subset of features which has the max value will be selected), as a result the model is less likely to learn false patterns.

Dropout

One of the major challenges in training Deep Neural Network is deciding when to stop the training. With too short time of training, underfitting occurs, while with too long time of training, overfitting occurs. This project will also apply early stopping to reduce overfitting – stop training when performance on the validation dataset starts to degrade

Result

Gender

image image image

Age

image image image image

Race

image