Предсказание кажущегося возраста и пола по изображению - очень интересная задача с технической точки зрения, но также может быть очень полезной при применении, например, для лучшего понимания потребительских сегментов или пользовательской базы. Его можно использовать для определения возраста или пола пользователя и использования этой информации для создания персонализированных продуктов и возможностей для каждого пользователя.

В этом посте мы научим модель предсказывать эти атрибуты по изображению лица.

Данные :

Мы используем данные из https://www.openu.ac.il/home/hassner/Adience/data.html, которые представляют собой набор данных фотографий лиц в дикой природе, которые разделены на 8 возрастных групп (0–2, 4 –6, 8–13, 15–20, 25–32, 38–43, 48–53, 60-) и на 2 гендерных класса.
Есть около 26 580 изображений (в некоторых случаях без надписей), которые предварительно разделены на 5 складок.

Существующие результаты:

Поскольку этот набор данных обычно используется в качестве эталона для этого типа задач во многих исследовательских работах, мне удалось найти много предварительных результатов точности для предполагаемого возраста и пола = ›

[1] https://www.openu.ac.il/home/hassner/Adience/EidingerEnbarHassner_tifs.pdf
Пол: 76,1 ± 0,9
Возраст: 45,1 ± 2,6

[2] https://www.openu.ac.il/home/hassner/projects/cnn_agegender/CNN_AgeGenderEstimation.pdf
Пол: 86,8 ± 1,4
Возраст: 50,7 ± 5,1

[3] https://arxiv.org/pdf/1702.04280.pdf
Пол: 91
Возраст: 61,3 ± 3,7

Предварительная обработка:

Лица обрезаются и выравниваются с помощью этого инструмента: https://www.openu.ac.il/home/hassner/Adience/code.html#inplanealign

Увеличение данных:

Мы используем случайный сдвиг, масштабирование, горизонтальное отражение как форму увеличения данных для создания синтетических примеров, используемых во время обучения для улучшения обобщения модели.

Модель:

Мы используем архитектуру Resnet, предварительно обученную на ImageNet:

Resnet (Deep Residual Networks) - это архитектура, которая уменьшает проблемы недостаточной подгонки и оптимизации, которые возникают в глубоких нейронных сетях.

Полученные результаты :

Мы обучаем модель по 3 раза для каждой складки, усредняем прогнозы и получаем следующие результаты:
Пол: 89,4 ± 1,4
Возраст: 57,1 ± 5,3
Эти результаты лучше, чем [1] и [2], вероятно, из-за мешков и предварительно обученных весов, но хуже, чем [3], вероятно, потому, что Sighthound Inc использовала более крупный внутренний набор данных Faces для предварительного обучения.

Код для воспроизведения результатов можно найти по адресу: https://github.com/CVxTz/face_age_gender