Age Predictor: How Old Do You Appear?

Input an Image:

Images with one or more front facing faces in them will work.

No file chosen

How does this work?

I have trained a Convolutional Neural Network (CNN) on a cleaned version of the IMDB-WIKI face dataset consisting of over 300,000 face age pairs. Data preprocessing first extracts the face from the image with 20% margin using a Multi Task CNN. The face is further rotated so that the eyes are horizontal to enhance stability.

The model building process involved significant data preparation. About 1/3 of the images in the dataset were not helpful to train on due to errors such as:

Images with the first 5 errors were removed before training an initial CNN. The CNN was trained using a weighted sampler for equal representation of age. Only ages 10 through 70 were used in training due to sparsity in the very young or old ages. The initial CNN was then used to filter out the incorrectly labeled images where the predicted age was off by more than 20 years. All of these data cleaning steps increased performance of the final CNN on an independent and manually cleaned test set.

A classification style approach to the regression problem is used for stability and interpretability. The expectation of the resulting probability distribution is taken for the prediction.

The final result is an age prediction system that usually predicts within 5 years of the true age. This is near human level performance for the task. Higher resolution images usually perform better.