[Python, Программирование, Машинное обучение] Определяем пол и возраст по фото
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В практике внутреннего аудита встречаются задачи, при которых необходимо осуществить проверку по выявлению некорректного ввода данных о клиенте. Одной из таких проблем может быть несоответствие введенных данных и фото клиента, в момент оформления продукта.
К примеру, имеется следующая информация: пол, возраст и ссылка на фото. Для проверки соответствия воспользуемся библиотекой py-agender языка Python.
Работа библиотеки осуществляется в два этапа. На первом, opencv определяет расположение лица на фото. На втором, нейронная сеть архитектуры EfficientNetB3, которая обучена на наборе данных UTKFace DataSet, определяет пол и возраст обладателя лица на фото.
Для начала импортируем необходимые библиотеки:
import cv2
from pyagender import PyAgender
Создадим объект детектора пола и возраста:
agender = PyAgender()
С помощью opencv загрузим фото:
img = cv2.imread("habensky.jpeg")
Далее определим характеристики лица с помощью метода detect_genders_ages объекта agender:
face_info = agender.detect_genders_ages(img)
где переменная face_info содержит следующую информацию:
[{'left': 0,
'top': 5,
'right': 299,
'bottom': 299,
'width': 299,
'height': 294,
'gender': 0.0075379927,
'age': 41.585840644804094}]
Здесь параметры (‘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 – интересный инструмент, который может помочь автоматизировать ряд рутинных задач или по крайней мере уменьшить размер выборки для ручного анализа. В статье представлена оценка для специфичного набора данных, возможно в вашем случае алгоритм сработает более результативно.
===========
Источник:
habr.com
===========
Похожие новости:
- [Математика, Машинное обучение, Исследования и прогнозы в IT, Софт] Российские разработчики представили конструктор FEDOT для создания математических моделей
- [Разработка веб-сайтов, PHP, Программирование, Проектирование и рефакторинг] Сейчас я буду убеждать вас использовать статический анализ в PHP
- [Разработка веб-сайтов, Разработка под e-commerce, Управление e-commerce, Бизнес-модели, IT-компании] Организация маркетплейса
- [Разработка веб-сайтов, Разработка под e-commerce, Управление e-commerce, Бизнес-модели, IT-компании] Архитектура маркетплейса
- [Машинное обучение, Искусственный интеллект] В МТИ разработали когнитивную модель SSUP, которая учится пользоваться инструментами, как человек
- [Разработка веб-сайтов, Программирование, Dart, Flutter] DartUP 2020: архитектура Dart VM, non-nullability в действии и Flutter для бизнеса
- [PHP, Программирование] Состоялся релиз языка программирования PHP 8.0
- [Python, GitHub, Машинное обучение, Читальный зал, Natural Language Processing] Ваш pet-project будет доволен. Как вдохнуть жизнь в свои наработки
- [Программирование, Go] Шаблоны проектирования в Go — Абстрактная Фабрика (перевод)
- [Программирование, Разработка под Android, Kotlin] Koin — библиотека для внедрения зависимостей, написанная на чистом Kotlin (перевод)
Теги для поиска: #_python, #_programmirovanie (Программирование), #_mashinnoe_obuchenie (Машинное обучение), #_programmirovanie (программирование), #_python, #_python, #_programmirovanie (
Программирование
), #_mashinnoe_obuchenie (
Машинное обучение
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:30
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В практике внутреннего аудита встречаются задачи, при которых необходимо осуществить проверку по выявлению некорректного ввода данных о клиенте. Одной из таких проблем может быть несоответствие введенных данных и фото клиента, в момент оформления продукта. К примеру, имеется следующая информация: пол, возраст и ссылка на фото. Для проверки соответствия воспользуемся библиотекой py-agender языка Python. Работа библиотеки осуществляется в два этапа. На первом, opencv определяет расположение лица на фото. На втором, нейронная сеть архитектуры EfficientNetB3, которая обучена на наборе данных UTKFace DataSet, определяет пол и возраст обладателя лица на фото. Для начала импортируем необходимые библиотеки: import cv2
from pyagender import PyAgender Создадим объект детектора пола и возраста: agender = PyAgender()
С помощью opencv загрузим фото: img = cv2.imread("habensky.jpeg")
Далее определим характеристики лица с помощью метода detect_genders_ages объекта agender: face_info = agender.detect_genders_ages(img)
где переменная face_info содержит следующую информацию: [{'left': 0,
'top': 5, 'right': 299, 'bottom': 299, 'width': 299, 'height': 294, 'gender': 0.0075379927, 'age': 41.585840644804094}] Здесь параметры (‘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 – интересный инструмент, который может помочь автоматизировать ряд рутинных задач или по крайней мере уменьшить размер выборки для ручного анализа. В статье представлена оценка для специфичного набора данных, возможно в вашем случае алгоритм сработает более результативно. =========== Источник: habr.com =========== Похожие новости:
Программирование ), #_mashinnoe_obuchenie ( Машинное обучение ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:30
Часовой пояс: UTC + 5