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

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

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

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

Если вам интересны такие темы и вы хотите и дальше видеть новые публикации и развитие данного модуля, то просим вас поставить нам звездочку ⭐ на 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 – интересный инструмент, который может помочь автоматизировать ряд рутинных задач или по крайней мере уменьшить размер выборки для ручного анализа. В статье представлена оценка для специфичного набора данных, возможно в вашем случае алгоритм сработает более результативно.

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

К примеру, имеется следующая информация: пол, возраст и ссылка на фото. Для проверки соответствия воспользуемся библиотекой 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 – интересный инструмент, который может помочь автоматизировать ряд рутинных задач или по крайней мере уменьшить размер выборки для ручного анализа. В статье представлена оценка для специфичного набора данных, возможно в вашем случае алгоритм сработает более результативно.

Источник

FaceMatica определит пол, возраст и схожесть по фото

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

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

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

Компания «Вокорд» запустила на своем сайте облачный сервис распознавания лиц FaceMatica, который может определить степень похожести фотографий, а также определить с высокой долей точности пол и возраст человека, изображенного на фотографии

Сервис FaceMatica доступен во всех браузерах. Интерфейс сервиса прост и понятен. Пользователю доступна загрузка как отдельных изображений, так и массовая загрузка до 500 фотографий одновременно. После загрузки фотографий, сервис определяет пол и возраст лиц. Групповые фотографии выделяются в отдельную статистику.

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

Разработчики приложений могут в тестовом режиме on-line проверить возможности VOCORD FaceMatica, чтобы в дальнейшем интегрировать сервис распознавания лиц в собственные внешние приложения на основе интерфейса программирования API (Application Programming Interface). Платформа унифицирована для интеграции.

Источник

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

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