распознавание пола по лицу

Как мы научили нейронку распознавать пол и возраст

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

Директор по науке Neuromation

Cергей Николенко, директор по науке Neuromation, и Рауф Курбанов, старший научный сотрудник компании, рассказывают, как шла разработка технологии и почему это не так просто, как кажется на первый взгляд.

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

Интуитивно? Не думаю.

Исследователи искусственного интеллекта склонны подвергать сомнению природу интуитивного. Как только вы зададитесь вопросом, как компьютер может повторить то, что кажется простым для людей, вы заметите: то, что кажется «интуитивно понятным» для нас, может быть очень сложно формализовать. Наше визуальное восприятие человеческого возраста и пола — хороший пример такого тонкого качества.

Элиезер Юдковский — один из важнейших современных авторов для нас, AI-гиков. Юдковский известен как исследователь безопасности сильного искусственного интеллекта и автор самого популярного фанфика к «Гарри Поттеру», «Гарри Поттер и методы рационального мышления». Любопытно, что именно в Гарри Поттере появляется прекрасный пример для нашего тезиса, артефакт, который кажется интуитивно понятным:

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

Альбус Дамблдор провёл «Линию Возраста» вокруг «Кубка огня», чтобы к нему не смог приблизиться никто младше семнадцати лет. Магия Линии Возраста была настолько сильной, что даже зелье старения не могло обмануть её. Даже Юдковский не особенно вникал в механику Линии Возраста в свойственной ему дотошной манере, но сегодня мы попробуем, а заодно ещё и решим задачу определения пола по фотографии. Как обычно в компьютерном зрении, мы начнём со сверточных нейронных сетей.

Свёрточные нейронные сети

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

В настоящее время практически всё компьютерное зрение основано на свёрточных нейронных сетях (convolutional neural networks, CNN). CNN — это многослойные (глубокие) нейронные сети, в которых каждый нейрон «видит» только очень маленькое «окно» выходов предыдущего уровня. Постепенно, слой за слоем, локальные функции становятся глобальными, и нейроны высоких уровней уже способны «видеть» большую часть исходного изображения. Вот как это работает в очень простой свёрточной архитектуре (см. этот пост, который мы всецело рекомендуем прочитать полностью):

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

В конце концов, после нескольких (иногда нескольких сотен) слоёв мы получаем глобальные функции, которые «смотрят» на всё исходное изображение, и теперь их можно комбинировать относительно просто, чтобы получить метки классов (например понять, является ли изображение собакой, кошкой, самосвалом или Гарри Поттером).

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

Рассмотрим простой пример фильтра: обнаружение краёв в изображениях. В этом случае вход для такого фильтра — это изображение, где каждый пиксель определяется тремя числами: интенсивностью красного, зелёного и синего цветов. Мы строим специальное ядро, которое будет применяться к каждому пикселю изображения; выход представляет собой новый «образ», который показывает результаты этого ядра. В принципе, ядро здесь представляет собой небольшую матрицу. Вот как это работает:

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

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

Если идея фильтров и ядер стала немного понятной, свёрточные слои в нейронных сетях тоже легко объяснить. Свёрточный слой — это по сути свёртка, как в примере обнаружения края выше, но теперь мы не задаём матрицу сами, а настраиваем, «натаскиваем» её в процессе обучения сети. Нам больше не нужно изобретать эти маленькие матрицы, потому что сети могут автоматически подбирать матрицы, которые извлекают признаки, важные для конкретной задачи.

Этапы работы модели

Оценка пола и возраста звучит как самая классическая задача машинного обучения: бинарная классификация для полов (боюсь углубляться в дискуссии на эту тему, но да, наши модели живут в бинарном мире) и регрессия для возраста. Но прежде чем мы сможем решить эти задачи, нам нужно найти лица на фотографии! Классификация не будет работать на картинке в целом, потому что на фотографии может быть, например, сразу несколько лиц. А значит, проблема оценки возраста и пола обычно разбивается на два этапа: сначала поиск лиц на фотографии, а затем оценка пола и возраста для каждого из них:

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

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

Поиск лиц

Поиск лица на фотографии — классическая задача в компьютерном зрении. Её решали вполне успешно ещё до революции глубокого обучения, в начале 2000-х годов, так называемым алгоритмом Виола-Джонса. Это было одно из самых известных применений каскадов Хаара в качестве признаков; но эти дни давно прошли.

Сегодня распознавание лиц не рассматривается как отдельная задача, требующая индивидуального подхода. Оно точно так же решается свёрточными нейронными сетями. Уже давно стало ясно, что CNN хорошо подходят для обнаружения объектов вообще, и поэтому современное решение классической задачи тоже, скорее всего, будет основано на CNN; так и получается.

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

Если более простой подход работает достаточно хорошо, возможно, не стоит вводить очень сложные модели, чтобы выиграть несколько процентных пунктов (напомните мне потом рассказать вам о результатах конкурса рекомендательных систем Netflix Prize Challenge). Поэтому в демо на NeuroPlatform мы используем более классический подход к обнаружению лиц, а свёрточные сети работают только для основной задачи распознавания возраста и пола. Но и в классическом компьютерном зрении есть о чём рассказать.

Наша модель обнаружения лица использует метод опорных векторов (SVM, классический метод машинного обучения; пожалуй, поля этой статьи слишком узки, так что просто оставим ссылку), который запускается на HOG + SIFT представлении изображения. Представления HOG и SIFT — это тщательно вручную подобранные функции, ставшие результатом многолетнего опыта в создании систем распознавания образов. Оказалось, что это представление хорошо работает с ядерными методами, в том числе и с методом опорных векторов.

Оценка возраста

Итак, предположим, что лицо мы на картинке нашли. Чтобы оценить возраст, мы применяем глубокую свёрточную нейронную сеть к этому самому лицу. Метод в нашем демо использует архитектуру так называемых «широких остаточных сетей» (Wide Residual Networks, WRN), одну из последних разработок в области распознавания образов, которая достигает лучших результатов быстрее, чем другие ведущие архитектуры. Давайте посмотрим, что такое остаточные сети и почему они так хорошо работают.

Проект ImageNet представляет собой большую базу данных изображений, предназначенную для использования в моделях компьютерного зрения. Революция глубокого обучения в приложении к компьютерному зрению началась в 2010 году именно с резкого продвижения в решении ImageNet Challenge. Результаты на ImageNet были признаны не только в академическом сообществе, но и на практике, а ImageNet стал и до сих пор остаётся самым популярным датасетом общего назначения в компьютерном зрении. Не вдаваясь в подробности, давайте просто посмотрим на график, сравнивающий победителей нескольких последних лет:

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

На графике горизонтальная ось показывает, насколько вычислительно сложна модель, круг указывает число параметров, а по вертикали показан собственно результат. Как видно, архитектуры ResNet (это и есть остаточные сети, residual networks) показывают отличные результаты, но при этом ещё и очень эффективны. В чём же их секрет?

Известно, что более глубокие нейронные сети теоретически могут работать лучше, чем более мелкие модели, они более выразительны. Но оптимизация в глубоких моделях — большая проблема: более глубокие модели труднее оптимизировать из-за особенностей того, как градиенты распространяются от верхних слоёв к нижним (надеюсь, в один прекрасный день мы подробно объясним всё это). Остаточные соединения — отличное решение этой проблемы: они добавляют «обходные» соединения, и поток градиента теперь способен «пропускать» лишние слои во время обратного распространения ошибки, что приводит к гораздо более быстрой сходимости и более качественному обучению:

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

А WRN, широкие остаточные сети, делают следующий шаг: их авторы тщательно изучили соотношение между шириной и глубиной нейросетевой архитектуры и подобрали максимально эффективную архитектуру с самой быстрой сходимостью.

Источник

Половая ориентация оказалась закодирована в общих чертах лица

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

Ученые установили, что мгновенное распознавание половой ориентации человека по чертам его лица зависит прежде всего от пропорций лица, а не его отдельных особенностей. Статья исследователей из Корнельского университета и Университета Вашингтона опубликована в журнале PLoS ONE.

Исследователи демонстрировали добровольцам изображения лиц гетеро- и гомосексуалистов мужского и женского пола на протяжении 50 миллисекунд (1/20 секунды), после чего испытуемым нужно было очень быстро угадать половую ориентацию изображенных на фотографиях людей. Изображения показывались блоками по 112 штук, паузы между показами составляли не более секунды, непосредственно после демонстрации фотографии демонстрировали синтетическое псевдослучайное изображение.

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

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

Оказалось, что при демонстрации лиц в перевернутом положении испытуемые хуже угадывают половую ориентацию изображенных: точность угадывания у женщин падает с 65 до 61 процента, у мужчин с 57 до 53 процента (оба падения статистически значимы). По мнению авторов, это говорит о том, что угадывание половой ориентации в существенной степени основано на распознавании общих черт лица, а не их отдельных особенностей.

В нескольких предыдущих работах уже было показано, что люди способны за очень короткое время (40-50 миллисекунд) распознавать половую ориентацию по чертам лица с точностью, достоверно отличающейся от случайной. Однако механизмы этого распознания и черты, на которое оно опирается до настоящего момента были в целом неизвестны.

Источник

Распознавание пола в изображениях и видео

В данной статье представлен алгоритм распознавания пола, обладающий точностью 93.1% [1]. Статья не требует каких-либо предварительных знаний в области обработки изображений или машинного обучения. После прочтения статьи читатель будет в состоянии выполнить рассмотренный алгоритм самостоятельно.

Введение

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

Часто мы используем некоторый контекст. Так, например, для автора статьи цвет одежды иногда является самым значимым признаком при попытке идентифицировать пол ребенка до 1-2 лет.

Перейдем к задаче определения пола по изображению лица. Каждое изображение лица мы хотим отнести либо к классу мужчин, либо к классу женщин. Нужен некий механизм, который будет решать, к какому классу отнести фотографию. В такой постановке проблема выглядит как типичная задача машинного обучения: есть набор маркированных примеров двух классов: М и Ж. «Маркированных» значит, что каждой фотографии поставлен в соответствие пол изображенного на ней человека. Таким образом, нам нужен некоторый классификатор.

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

Другим подходом является использование некоторых отношений пикселей. Разработано огромное количество таких отношений или характеристик (features). Исследование применимости конкретного типа характеристик является ключевым этапом многих задач компьютерного зрения.

Характеристики

Для простоты пронумеруем все пиксели в изображении: распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу– означает яркость пикселя с порядковым номером Рассмотрим следующий набор характеристик

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

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

Данная задача эффективно решается с помощью алгоритма AdaBoost[2][3], целью которого является выбор небольшого набора ценных характеристик из очень большого начального массива.

Подготовка данных и обучение классификатора

Начнем с подготовки данных. Для обучения и тестирования мы будем использовать базу лиц FERET[4][5]. Она содержит различные фотографии 994 человек (591 мужчин, 403 женщины), причем, для каждого человека приводится несколько фотографий, сделанных в разных позах.

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

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

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

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

В результате предварительной обработки имеем два набора картинок:

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

Отметим, что для наглядности каждое лицо на рисунке выше имеет размеры распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицупикселей, в действительности в рассмотренном подходе используются изображения размером распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицупикселей. Обучающая выборка будет использоваться для обучения классификатора, как это следует из названия. Проверочная выборка «неизвестна» классификатору, поэтому с ее помощью можно объективно измерить показатели точности.

Таким образом, необходимо

Теперь попытаемся разобраться с алгоритмом обучения «на словах». Немногим ниже приведена формальная схема алгоритма AdaBoost.

Напомним, что нашей задачей является выбор таких характеристик, которые наилучшим образом могут разделить классы М и Ж. Предположим, что мы уже проанализировали распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицутаких характеристик по порядку, и приступаем к анализу

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

Значения распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицухарактеристики для первых трех обучающих примеров распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицузначение вектора меток для этих примеров распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Если принять значения распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицухарактеристики как прогноз пола, то вектор ошибки в этом случае составит распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Если рассмотреть характеристику распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу, то распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Таким образом, выбирая между характеристикам распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицуи распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу, следует предпочесть характеристику распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу, так как распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Перебрав все характеристики, мы найдем T лучших, которые и будем использовать для классификации.

А теперь формальная процедура обучения.

Обучающие примеры: распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу, где распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу— изображение, распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицув случае женского пола, распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицув случае мужского.

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

Для распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу(где T – количество характеристик, которое мы хотим выбрать)

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

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

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

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

Результирующий классификатор представлен формулой:

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

Попытаемся оценить диапазон значений, которые может принимать распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Мы уже отмечали, что распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицупринимает значения на отрезке распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Теперь предположим, что распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицудля некоторого классификатора распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Очевидно, что в этом случае распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Однако будет ли выбран такой классификатор алгоритмом, описанным выше? Очевидно, что не будет, потому что в обучающей выборке всегда найдется такой классификатор распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу, полученный с помощью операции отрицания распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу, для которого распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицуи распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Легко видеть, что если пример был классифицирован правильно, то его вес уменьшается умножением на распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу, и таким образом, примеры, классифицированные неправильно (сложные примеры) получают больший вес.

Теперь вернемся к вопросу об избыточности, которым мы задавались ранее. Наличие в выборке классификаторов, полученных отрицанием распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу, ограничивает распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицуна отрезке распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицуи позволяет весам сложных примеров расти.

Учитывая размеры входных матриц, выбор первых 1000 характеристик стандартным алгоритмом AdaBoost занимает около 10 часов (Intel Core i7). Стандартным, значит, пробегая по всем характеристикам. Существуют версии алгоритма, которые работают со случайными характеристиками из всего набора, однако их описание выходит за рамки данной статьи. Время обучения 10 часов является приемлемым результатом для данной задачи, так как это одноразовая операция.

Отметим, что результатом алгоритма являются пары индексов пикселей, которые необходимо сравнивать, одно из пяти правил сравнения и величина распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицудля каждой пары. Фактически для анализа фотографии необходимо только посчитать разности, применить выбранное правило и найти решение по формуле для распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. Поэтому данный алгоритм совершенно не требователен к ресурсам и не замедляет систему распознавания, в которой используется.

Результаты

Теперь самое интересное! Какие же характеристики выбрал AdaBoost?! Ниже представлены первые 50 характеристик, которые выбрал AdaBoost. Красный и белый пиксели это распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицуи распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу. При анализе пикселей около краев изображения необходимо помнить, что лица многих людей не помещаются в рамку. Поэтому краевые пиксели могут, некоторым образом, кодировать размер лица.

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

Рассмотрим зависимость точности классификации от количества использованных характеристик.
распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу
Отметим, что график получен с помощью данных из базы лиц FERET, которые AdaBoost «не видел» на этапе обучения. Максимальная точность в 93.1% достигается при использовании 911 характеристик. Авторы данного подхода сообщают точность 94.3%, что очень близко к полученному показателю. Разница в 1.2% может возникнуть из-за разного разбиения на обучающую и проверочную выборки. Также в данной статье для поиска глаз использовался собственный алгоритм, точность которого отличается от точности расстановки глаз человеком в базе FERET.

Однако что если классификатор обучился распознавать только ту базу, на которой он был обучен?! Похожий эффект возникает, когда ученик, готовясь к экзамену просто заучивает формулы, задачи, примеры, без понимания сути. Такой ученик способен решить только те задачи, которые он уже видел, и не способен распространить свои знания на новые проблемы. Данный эффект в машинном обучении называется overfitting (переобучение) и является серьезной проблемой в распознавании. Противоположный ему эффект носит название generalization (обобщение).

Для проверки способности обобщать воспользуемся еще одной базой лиц — Bosphorus Database [6][7]. Она состоит из фотографий 105 человек. База содержит до 35 различных выражений лица на каждого человека.

График ниже аналогичен графику, представленному чуть выше, с той лишь разницей, что получен с помощью Bosphorus Database (т.е. исключается возможность знакомства с тестовой выборкой).
распознавание пола по лицу. Смотреть фото распознавание пола по лицу. Смотреть картинку распознавание пола по лицу. Картинка про распознавание пола по лицу. Фото распознавание пола по лицу
Тестовая выборка включает 1300 фотографий (727 М и 573 Ж). Максимальная точность в 91% достигается при 954 характеристиках. Отметим, что отметка в 90% достигается уже при 100 характеристиках.

Эти два графика, а также видео, которые присутствуют в статье, демонстрируют высокую точность работы данного подхода на данных, которые он «не видел» на этапе обучения. Именно поэтому он считается state-of-the-art алгоритмом для распознавания пола.

Следующее видео показывает работу алгоритма на фрагментах телепередач. Для достижения такой точности используется «сглаживание» результатов во времени: каждое лицо наблюдается в течение 19 кадров, на каждом из которых определяется пол. В качестве результата выбирается пол, встретившийся наибольшее число раз за последние 19 кадров.

Источник

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

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