Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/egorumaev/2023-determining-customers-age
Построение модели, которая по фотографии определяет приблизительный возраст человека
https://github.com/egorumaev/2023-determining-customers-age
computer-vision keras pandas pil regression tensorflow
Last synced: 3 days ago
JSON representation
Построение модели, которая по фотографии определяет приблизительный возраст человека
- Host: GitHub
- URL: https://github.com/egorumaev/2023-determining-customers-age
- Owner: egorumaev
- Created: 2023-09-26T05:06:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-26T05:08:31.000Z (over 1 year ago)
- Last Synced: 2025-01-04T19:15:56.905Z (6 days ago)
- Topics: computer-vision, keras, pandas, pil, regression, tensorflow
- Language: Jupyter Notebook
- Homepage:
- Size: 8.95 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 2023-determining-customers-age
Построение модели, которая по фотографии определяет приблизительный возраст человека# **ПРОЕКТ «Определение возраста покупателей»**
---
## **Примененные библиотеки и технологии**
* 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**.