Построение модели, которая по фотографии определяет приблизительный возраст человека
-
Pandas, Numpy, Matplotlib, Seaborn, PIL, Tensorflow, Keras
-
Yandex Compute Cloud
Сетевой супермаркет внедряет систему компьютерного зрения для обработки фотографий покупателей. Фотофиксация в прикассовой зоне поможет определять возраст клиентов, чтобы:
-
анализировать покупки и предлагать товары, которые могут заинтересовать покупателей этой возрастной группы;
-
контролировать добросовестность кассиров при продаже алкоголя.
Для обучения модели в наличии имеется размеченный набор фотографий людей с указанием возраста.
Цель - построить модель, которая по фотографии определит приблизительный возраст человека.
Для достижения цели выполнены следующие задачи:
-
исследовательский анализ набора фотографий;
-
подготовка данных для обучения нейросети;
-
обучение нейросети;
-
анализ качества обучения.
Исходные данные взяты с сайта ChaLearn Looking at People (https://chalearnlap.cvc.uab.es/dataset/26/description/).
Целевая метрика обучения модели, – 'mean_absolute_error', – должна быть меньше 8.
В качестве функции потерь использована 'mean_squared_error'.
Решаемая в проекте задача является задачей регрессии.
(1) В результате выполнения проекта построена модель нейронной сети, которая по фотографии определяет приблизительный возраст людей. Для обучения модели нейронной сети подготовлены функции, обеспечивающие загрузку обучающего и тестового комплектов, создание модели нейронной сети, обучение нейронной сети.
(2) Для обучения был использован датасет, включающий 7591 фотографию людей в возрасте от 1 года до 100 лет. Наибольшее количество фотографий из имеющегося в наличии датасета принадлежит людям в возрасте от 20 до 30 лет. Чем старше возраст, тем меньше фотографий людей соответствующего возраста есть в обучающем наборе. Для ряда возрастов с интервалом примерно в 10 лет (для юбилейных возрастов) прослеживается резкое увеличение количества фотографий в сравнении с 'соседним' возрастом, что, очевидно, связано с особенностями процедуры сбора фотографий и недостаточно качественной разметкой. Чем старше возраст людей, тем меньше фотографий представлено в базе.
(3) Для решения задачи определения приблизительного возраста людей применена нейронная сеть, в частности принадлежащая к семейству архитектур ResNet сеть ResNet50. В архитектуре ResNet используются Shortcut Connections – дополнительные связи внутри сети, которые позволяют избежать проблемы затухающего градиента. С целью повышения качества обучения модели при компиляции модели применен алгоритм оптимизации Adam.
Лучшее значение метрики МАЕ = 5.3389 и соответствует целевому ограничению MAE < 8.0.