распознавание пола и возраста

Нейросети для предсказания возраста и пола

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

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

Импортируем необходимые библиотеки

Ниже представлен код для проверки работы алгоритмов

Проведем серию экспериментов для проверки качество работы алгоритмов.

— одиночная фотография человека

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

— Несколько людей на фотографии

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

— Несколько людей на фотографии, в случае когда взгляд устремлен не в кадр

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

— Несколько людей на фотографии, когда часть их лица скрыта, например, масками

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

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

Теперь, когда разобрались с выбором метода обнаружения лиц на фотографии перейдем непосредственно к самой задаче. Для определения возраста и пола использовались две разные модели, обученные на огромном количестве данных. Обе модели были обучены Леви и Хасснером, первая их работа вышла в 2015 году под названием «Age and Gender Classification Using Convolutional Neural Networks». В своей работе они продемонстрировали, что при обучении с использованием глубоких сверточных нейронных сетей (CNN) можно добиться значительного повышения производительности при выполнении задач предсказывания возраста и пола.

Для определения гендерной принадлежности была взята модель с репозитория, посвященному статье «Understanding and Comparing Deep Neural Networks for Age and Gender Classification».Скачать модели можно по ссылке 1 (*.caffemodel) и по ссылке 2 (*.prototxt). Модель использует архитектуру сети GoogleNet и была предобучена на ImageNet dataset.

Как можно было заметить, каждая модель представлена двумя файлами, это значит что она была обучена с помощью Caffe (фреймворк глубокого машинного обучения нацеленный на простое использование, высокую скорость и модульность).Файл с расширением prototxt отвечает за архитектуру сети, а файл с расширением caffemodel за веса модели.

Ниже кратко представлен основной код, в качестве аргумента в модель передаем определённое выше лицо.

Результаты полученные в ходе отработки алгоритма

Источник

Как по фото определить сколько лет человеку (узнаем возраст при помощи камеры смартфона!)

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возрастаПриветствую всех! ✌

Ваша подруга (друг) скрывает свой реальный возраст? У вас есть фото, которые вы забыли подписать и не помните кому-сколько на них, и когда был сделан снимок? А возможно вы просто хотите узнать, насколько вы выглядите? Собственно, сегодняшняя заметка будет как раз об этом!

Вообще, еще каких-то лет 20 назад анализом фотографий занимались спец. эксперты — они могли по снимку лица человека (на котором заметны лобные и глазные морщинки, ямочки, складки и пр.) примерно назвать его возраст: ± 3-4 года.

Сейчас же для определения возраста по снимку — достаточно перейти на нужный сайт и сделать пару кликов. А учитывая, что у каждого в кармане лежит смартфон (с интернетом) — то узнать сколько вам лет может любой ваш знакомый 😢.

Хотя, возможно, заметка вам пригодиться и в другом плане. Например, многие кто хочет себя «омолодить» (казаться хоть немного младше) могут поиграться с прической, аксессуарами, косметикой — а приложение им поможет оценить, насколько они хорошо провели все эти операции.

Как бы там ни было, ниже приведу несколько сервисов и приложений, которые помогут вам решить сию задачу. 👌

У меня на блоге есть еще парочка достаточно интересных заметок:

Источник

Определяем пол и возраст по фото

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

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

К примеру, имеется следующая информация: пол, возраст и ссылка на фото. Для проверки соответствия воспользуемся библиотекой py-agender языка Python.

Работа библиотеки осуществляется в два этапа. На первом, opencv определяет расположение лица на фото. На втором, нейронная сеть архитектуры EfficientNetB3, которая обучена на наборе данных UTKFace DataSet, определяет пол и возраст обладателя лица на фото.

Для начала импортируем необходимые библиотеки:

Создадим объект детектора пола и возраста:

С помощью opencv загрузим фото:

Далее определим характеристики лица с помощью метода detect_genders_ages объекта agender:

где переменная face_info содержит следующую информацию:

Здесь параметры (‘left’, ‘top’, ‘right’, ‘bottom’, ‘width’, ‘height’) характеризуют расположение лица на фото. Параметр gender характеризует принадлежность к определенному полу, где 0 – соответствует мужчине, 1 – женщине. Т.е. после обработки изображений, по порогу 0.5 разделяем обработанную выборку на мужчин и женщин.

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

Алгоритм определил, что на данном изображении представлен мужчина (значение пола очень близко к нулю: 0.0075379927), а также, что на этом фото ему 41 с половинкой годика (41.5858), не знаю сколько Константину Хабенскому лет на этом фото, но думаю алгоритм близок к истине.

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

В моем случае это был набор из 1542 изображений с разрешением 300х300. Для 64 изображений алгоритм не смог определить характеристики лица. Основная причина – плохая освещенность в момент фотофиксации (лиц почти не видно). Для 1478 изображений медианное значение ошибки определения возраста составило 4,96 года. На рисунке ниже представлено распределение ошибки:

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

Для 8.5% изображений (125 из 1478) алгоритм совершил ошибку в определении пола человека. Из них в 122 случаях алгоритм ошибочно принял женщину за мужчину. Повторюсь, не стоит винить алгоритм во всех случаях. В большинстве ошибочных примеров встречалось много лиц в очках, которые могут скрывать некоторые особенности лица. На рисунке ниже представлено распределение возраста для набора данных UTKFace DataSet:

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

Можно заметить, что большая часть набора данных содержит изображения людей c возрастом 20-40 лет. Несмотря на это алгоритм чаще всего ошибался именно для указанного интервала, т.е скорее всего ошибки связаны с особенностью набора данных, для которого был применен алгоритм. На рисунке ниже представлено распределение возраста людей, на которых алгоритм ошибся:

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

Py-Agender – интересный инструмент, который может помочь автоматизировать ряд рутинных задач или по крайней мере уменьшить размер выборки для ручного анализа. В статье представлена оценка для специфичного набора данных, возможно в вашем случае алгоритм сработает более результативно.

Источник

Определяем возраст и пол человека используя нейронную сеть

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

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

Если вам интересны такие темы и вы хотите и дальше видеть новые публикации и развитие данного модуля, то просим вас поставить нам звездочку ⭐ на Github!

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

После анализа доступных библиотек, мы нашли интересный репозиторий на Github: https://github.com/davisking/dlib-models

Автор Davis E. King @davisking, он же создатель замечательной библиотеки dlib, предоставил уже натренированную модель на несколько тысяч лиц людей. Но, вот беда… код написан на C++ а рабочей альтернативы на Python мы не нашли.

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

Модель для определения формы лица (shape_predictor_5_face_landmarks.dat)

Это 5-точечная модель, которая определяет уголки глаз и дно носа. Она обучена на наборе данных из 5-точечных ориентиров от 7198 лиц людей. Автор @davisking создал этот набор данных, загружая изображения из Интернета и комментируя их с помощью инструмента imglab от dlib.

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

Модель для предсказывания возраста (dnn_age_predictor_v1.dat)

Первоначальный источник для создания модели пришел из документа Z. Qawaqneh: «Глубокая сверточная нейронная сеть для оценки возраста на основе модели VGG-Face». Тем не менее, наши исследования привели нас к значительным улучшениям в CNN модели, что позволило нам оценить возраст человека, превосходящего существующие результаты, с точки зрения точности результата.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Таким образом, эта модель является определителем возраста, использующим архитектуру ResNet-10, и обучается с использованием частного набора данных из примерно 110 тыс. различных изображений людей с комментарием в виде их возраста.

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

Эта модель прогнозирования возраста предоставляется компанией Cydral Technology бесплатно и распространяется по лицензии Creative Commons Zero v1.0 Universal.

распознавание пола и возраста. Смотреть фото распознавание пола и возраста. Смотреть картинку распознавание пола и возраста. Картинка про распознавание пола и возраста. Фото распознавание пола и возраста

Модель для определения пола человека по лицу (dnn_gender_classifier_v1.dat)

Эта модель является гендерным классификатором, обученным с использованием частного набора данных из примерно 200 000 различных изображений лиц, и она была сгенерирована в соответствии с определением сети и настройками, заданными в «Минималистической модели на основе CNN для прогнозирования пола по изображениям лиц«. Даже если набор данных, использованный для обучения, отличается от того, который использовался Г. Антиповым, результаты классификации по оценке LFW в целом схожи (± 97,3%).

Эта гендерная модель предоставляется бесплатно компанией Cydral Technology и распространяется по лицензии Creative Commons Zero v1.0 Universal.

Перенос C++ кода на Python

Изначально, @davisking предоставил два C++ файла которые показывали как работать с натренированными им моделями:

Они выводили результат сразу в консоль, но вот использовать код в рабочем проекте даже на C++ было крайне неудобно. Используя pybind11 мы имеем возможность применить код на C++ в нашем коде на Python. Мы не будем акцентироваться долго на pybind11, но если вы хотите ознакомиться с ним, то рекомендуем статью: Создаем С++ Python расширения с помощью pybind11

Источник

Как определить пол и возраст по фото?

Давайте на конкретном примере рассмотрим, как определить пол и возраст человека на фото с помощью трех строчек кода.

К примеру, имеется следующая информация: пол, возраст и ссылка на фото. Для проверки соответствия воспользуемся библиотекой py-agender языка Python.

Работа библиотеки осуществляется в два этапа. На первом, opencv определяет расположение лица на фото. На втором, нейронная сеть архитектуры EfficientNetB3, которая обучена на наборе данных UTKFace DataSet, определяет пол и возраст обладателя лица на фото.

Для начала импортируем необходимые библиотеки:

Создадим объект детектора пола и возраста:

С помощью opencv загрузим фото:

Далее определим характеристики лица с помощью метода detect_genders_ages объекта agender:

где переменная face_info содержит следующую информацию:

Здесь параметры (‘left’, ‘top’, ‘right’, ‘bottom’, ‘width’, ‘height’) характеризуют расположение лица на фото. Параметр gender характеризует принадлежность к определенному полу, где 0 – соответствует мужчине, 1 – женщине. Т.е. после обработки изображений, по порогу 0.5 разделяем обработанную выборку на мужчин и женщин.

Алгоритм определил, что на данном изображении представлен мужчина (значение пола очень близко к нулю: 0.0075379927), а также, что на этом фото ему 41 с половинкой годика (41.5858), не знаю сколько Константину Хабенскому лет на этом фото, но думаю алгоритм близок к истине.

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

В моем случае это был набор из 1542 изображений с разрешением 300х300. Для 64 изображений алгоритм не смог определить характеристики лица. Основная причина – плохая освещенность в момент фотофиксации (лиц почти не видно). Для 1478 изображений медианное значение ошибки определения возраста составило 4,96 года. На рисунке ниже представлено распределение ошибки:

Для 8.5% изображений (125 из 1478) алгоритм совершил ошибку в определении пола человека. Из них в 122 случаях алгоритм ошибочно принял женщину за мужчину. Повторюсь, не стоит винить алгоритм во всех случаях. В большинстве ошибочных примеров встречалось много лиц в очках, которые могут скрывать некоторые особенности лица. На рисунке ниже представлено распределение возраста для набора данных UTKFace DataSet:

Можно заметить, что большая часть набора данных содержит изображения людей c возрастом 20-40 лет. Несмотря на это алгоритм чаще всего ошибался именно для указанного интервала, т.е скорее всего ошибки связаны с особенностью набора данных, для которого был применен алгоритм. На рисунке ниже представлено распределение возраста людей, на которых алгоритм ошибся:

Py-Agender – интересный инструмент, который может помочь автоматизировать ряд рутинных задач или по крайней мере уменьшить размер выборки для ручного анализа. В статье представлена оценка для специфичного набора данных, возможно в вашем случае алгоритм сработает более результативно.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *