Skip to content

work / multi-output-cnn · 2025-09

Age, Gender & Race Estimation with a Multi-Output CNN

[computer-vision][cnn][tensorflow][multi-task]

Abstract

One shared feature extractor, three specialized heads — simultaneous demographic estimation from facial images on UTKFace.

§1Problem

Age, gender, and race manifest as subtle, entangled variations in facial features — harder than standard object classification, and training three separate models wastes shared structure.

§2Approach

Multi-output CNN on UTKFace (20k+ images): shared convolutional trunk with separable convolutions, batch norm, and dropout; three output branches (age regression, gender and race classification); data augmentation throughout. Model kept to ~15 MB.

§3Impact

Age MAE ≈ 6.8 years (R² = 0.814), gender accuracy ≈ 94.2%, race accuracy ≈ 87.1% — production-quality multi-task results in a deployable model size.

Multi-output CNN architecture: a face image feeds a shared convolutional trunk which splits into three heads — age regression, gender classification, and race classification face image (UTKFace) conv conv conv shared trunk — separable conv · batch norm · dropout age regression gender classification race classification MAE ≈ 6.8 yr acc ≈ 94.2% acc ≈ 87.1%
Fig. 1 — shared convolutional trunk splitting into three heads: age regression, gender and race classification

Keywords: Python, TensorFlow/Keras, CNNs, UTKFace

[github]

@misc{ammar2025multioutputcnn,
  author = {Ammar, Md. Abu},
  title  = {Age, Gender & Race Estimation with a Multi-Output CNN},
  year   = {2025},
  url    = {https://github.com/abuammarsami/Age-Gender-and-Race-Estimation-with-Multi-Output-CNN-Architecture},
  note   = {Research project}
}