FaceNet — пример простой системы распознавания лиц с открытым кодом Github

16 ноября 2018

FaceNet — пример простой системы распознавания лиц с открытым кодом Github

Распознавание лица — последний тренд в авторизации пользователя. Apple использует Face ID, OnePlus — технологию Face Unlock. Baidu использует распознавание лица вместо ID-карт для обеспечения доступа в офис, а при…

Распознавание лица — последний тренд в авторизации пользователя. Apple использует Face ID, OnePlus — технологию Face Unlock. Baidu использует распознавание лица вместо ID-карт для обеспечения доступа в офис, а при повторном пересечении границы в ОАЭ вам нужно только посмотреть в камеру.

В статье разбираемся, как сделать простейшую сеть распознавания лиц самостоятельно с помощью FaceNet.

Ссылка на Гитхаб, кому нужен только код

Немного о FaceNet

FaceNet — нейронная сеть, которая учится преобразовывать изображения лица в компактное евклидово пространство, где дистанция соответствует мере схожести лиц. Проще говоря, чем более похожи лица, тем они ближе.

Триплет потерь

FaceNet использует особую функцию потерь называемую TripletLoss. Она минимизирует дистанцию между якорем и изображениями, которые содержат похожую внешность, и максимизирует дистанцую между разными.

  • f(a) это энкодинг якоря
  • f(p) это энкодинг похожих лиц (positive)
  • f(n) это энкодинг непохожих лиц (negative)
  • Альфа — это константа, которая позволяет быть уверенным, что сеть не будет пытаться оптимизировать напрямую f(a) — f(p) = f(a) — f(n) = 0
  • […]+ экиввалентено max(0, sum)

Сиамские сети

FaceNet — сиамская сеть. Сиамская сеть — тип архитектуры нейросети, который обучается диффиренцированию входных данных. То есть, позволяет научиться понимать какие изображения похожи, а какие нет.

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

В FaceNet это делается путем вычисления расстояния между двумя выходами.

Реализация

Переходим к практике.

В реализации мы будем использовать Keras и Tensorflow. Кроме того, мы используем два файла утилиты из репозитория deeplayning.ai, чтобы абстрагироваться от взаимодействий с сетью FaceNet.

  • fr_utils.py содержит функции для подачи изображений в сеть и получения кодирования изображений;
  • inception_blocks_v2.py содержит функции для подготовки и компиляции сети FaceNet.

Компиляция сети FaceNet

Первое, что нам нужно сделать, это собрать сеть FaceNet для нашей системы распознавания лиц.

import os
import glob
import numpy as np
import cv2
import tensorflow as tf
from fr_utils import *
from inception_blocks_v2 import *
from keras import backend as K
K.set_image_data_format('channels_first')
FRmodel = faceRecoModel(input_shape=(3, 96, 96))
def triplet_loss(y_true, y_pred, alpha = 0.3):
    anchor, positive, negative = y_pred[0], y_pred[1], y_pred[2]

    pos_dist = tf.reduce_sum(tf.square(tf.subtract(anchor,
               positive)), axis=-1)
    neg_dist = tf.reduce_sum(tf.square(tf.subtract(anchor, 
               negative)), axis=-1)
    basic_loss = tf.add(tf.subtract(pos_dist, neg_dist), alpha)
    loss = tf.reduce_sum(tf.maximum(basic_loss, 0.0))
   
    return loss
FRmodel.compile(optimizer = 'adam', loss = triplet_loss, metrics = ['accuracy'])
load_weights_from_FaceNet(FRmodel)

Мы начнем инициализпцию нашей сети со входа размерности (3, 96, 96). Это означает, что картинка передается в виде трех каналов RGB и размерности 96×96 пикселей.

Теперь давайте определим Triplet Loss функцию. Функция в сниппете кода выше удовлетворяет уравнению Triplet Loss, которое мы определили в предыдущей секции.

Если вы не знакомы с фреймворком TensorFlow, ознакомьтесь с документацией.

Сразу после того, как мы определили функцию потерь, мы можем скомпилировать нашу систему распознавания лиц с помощью Keras. Мы будем использовать Adam optimizer для минимизации потерь, подсчитанных с помощью функции Triplet Loss.

Подготовка базы данных

Теперь когда мы скомпилировали FaceNet, нужно подготовить базу данных личностей, которых сеть будет распознавать. Мы будем использовать все изображения, которые лежат в директории images.

Замечание: мы будем использовать по одному изображения на человека в нашей реализации.  FaceNet достаточно мощна, чтобы распознать человека по одной фотографии.

def prepare_database():
    database = {}
    for file in glob.glob("images/*"):
        identity = os.path.splitext(os.path.basename(file))[0]
        database[identity] = img_path_to_encoding(file, FRmodel)
    return database

Для каждого изображения мы преобразуем данные изображения в 128 float чисел. Этим занимается функция img_path_to_encoding. Функция принимает на вход путь до изображения и «скармливает» изображение нашей распознающей сети, после чего возвращают результаты работы сети.

Как только мы получили закодированное изображения в базе данных, сеть наконец готова приступить к распознаванию!

Распознавание лиц

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

def who_is_it(image, database, model):
    encoding = img_to_encoding(image, model)
    
    min_dist = 100
    identity = None
    
    # Loop over the database dictionary's names and encodings.
    for (name, db_enc) in database.items():
        dist = np.linalg.norm(db_enc - encoding)
        print('distance for %s is %s' %(name, dist))
        if dist < min_dist:
            min_dist = dist
            identity = name
    
    if min_dist > 0.52:
        return None
    else:
        return identity

Загружаем новое изображение в функцию img_to_encoding. Функция обрабатывает изображения, используя FaceNet и возвращает закодированное изображение. Теперь мы можем сделать предположение о наиболее вероятной личности этого человека.

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

Наконец, мы должны определить действительно ли совпадают личности на картинке и в базе. Следующий кусок кода как раз для этого:

 if min_dist > 0.52: 
     return None 
 else:
     return identity

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

На GitHub есть демо работы полученной сети, с входом от простой вебкамеры.

Заключение

Теперь вы знаете, как работают технологии распознавания лиц и можете сделать собственную упрощенную сеть распознавания, используя предварительно подготовленную версию алгоритма FaceNet на python.


Интересные статьи:

Датасеты для распознавания лиц в сложных условиях — в масках, очках, с макияжем

11 октября 2018
Датасеты для распознавания лиц в сложных условиях — в масках, очках, с макияжем, в старости

Датасеты для распознавания лиц в сложных условиях — в масках, очках, с макияжем

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

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

Но является ли данная задача решенной? Что делать, если изображение сбивает с толку? Что, если человек выдает себя за кого-то другого? Может ли большое количество макияжа обмануть нейронную сеть? Насколько легко распознать человека, который носит очки?

Распознавание замаскированных лиц по-прежнему представляет собой довольно сложную задачу для нейронных сетей, в первую очередь из-за отсутствия подходящих датасетов. В этой статье мы представим несколько собранных в последнее время датасетов. Каждый из них отражает различные типы искажений лиц, но их цель одна и та же — помочь разработчикам создавать лучшие модели для распознавания замаскированных лиц.

Disguised Faces in the Wild

Количество изображений: 11 157

Количество лиц: 1 000

Год: 2018

Изображения: истинное, изображение-подтверждение, замаскированное, изображение-имитатор.

Начнем с самого нового датасета, представленного ранее в этом году – Disguised Faces in the Wild (DFW). В основном он состоит из изображений знаменитостей индийского или европейского происхождения. В датасете основное внимание уделяется задаче распознавания замаскированных лиц.

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

В датасете есть четыре типа изображений:

  • Истинное изображение лица: для каждого человека есть фотография, на котором его лицо не скрыто.
  • Изображение-подтверждение: для 903 человек имеются изображения, на котором их лица не скрыты и могут быть использованы для установления соответствия.
  • Замаскированное изображение лица: для каждого человека имеется от 1 до 12 изображений с преднамеренно или непреднамеренно замаскированным лицом.
  • Изображение имитатора: для 874 человек имеется от 1 до 21 изображений их имитаторов. Имитатор —  любой другой человек, намеренно или непреднамеренно претендующий на то, чтобы выдать себя за другого.
Пример изображений трех человек из датасета DFW. Каждая строка соответствует одному человеку и содержит истинное изображение (серая рамка), изображение-подтверждение (желтая), замаскированное изображение (зеленая) и изображение имитатора (синяя).

Суммарно датасет DFW содержит 1 000 обычных изображений, 903 изображений-подтверждений, 4 814 замаскированных изображений и 4 440 изображений имитаторов.

Makeup Induced Face Spoofing

Количество изображений: 642

Количество лиц: 107 + 107 знаменитостей

Год: 2017

Попытка человека выдать себя за знаменитостей.

Makeup Induced Face Spoofing dataset (MIFS) также используется для распознавания лиц имитаторов, но с упором на макияж. Исследователи извлекли изображения из видео на YouTube, на которых бьюти-блоггеры использовали макияж для того, чтобы стать похожими на знаменитостей. Следует отметить, однако, что они не пытались обмануть автоматизированную систему распознавания лиц сознательно, а лишь хотели добиться зрительного сходства со знаменитостями.

Датасет состоит из 107 наборов из четырех фотографий: 2 до макияжа и 2 — после. Кроме того, в каждый набор включено по два изображения знаменитостей. Тем не менее, важно указать, что эти изображения не обязательно используются как опорные: знаменитости иногда сильно меняют внешность, и поэтому исследователи пытались выбрать такие их фотографии, которые были бы наиболее схожи с фотографиями имитаторов после макияжа.

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

Примеры изображений в датасете MIFS: до макияжа/после макияжа/изображение знаменитости.

Всего датасет MIFS содержит 214 изображений лиц до макияжа, 214 — после, и 214 изображений знаменитостей, с которыми блоггеры хотели добиться сходства. Следует отметить, что если один человек пытался добиться сходства с несколькими знаменитостями, или же несколько человек пытались повторить внешность одной знаменитости, то все изображения дублируются соответствующее число раз.

Датасет Specs on Faces

Количество изображений: 42 592

Количество лиц: 112

Год: 2017

Примеры изображений из датасета SoF: метаданные для каждого изображения включают 17 меток лица, прямоугольник, выделяющий очки, и прямоугольник, выделяющий лицо.

Считается, что очки, как пример естественной окклюзии, нарушают работу многих алгоритмов распознавания лиц. Вот почему датасет изображений людей в очках имеет особое значение. Specs on Faces dataset (SoF) включают в себя 2 662 изображения размером 640 × 480 пикселей, на которых изображены 112 человек (66 мужчин и 46 женщин) разных возрастов. На всех из них надеты очки. Датасет состоит из двух частей:

  • 757 фотографий лиц, снятых в разных условиях (время, место, естественное/искусственное освещение);
  • 1905 фотографий лиц, снятых специально в плохих условиях освещения: 12 человек были сфотографированы под светом одной лампой, расположенной под разными углами, чтобы получить разные направления тени.
Фотографии, снятые в разных условиях освещения.

Также для каждого из исходных изображений имеются:

  • 6 дополнительных изображений с искусственной окклюзией — нос и рот закрыты белым прямоугольником;
  • 9 дополнительных изображений с наложенными фильтрами: гауссовским шумом, гауссовским размытием и изогелией с использованием нечеткой логики.

Таким образом, SoF включает в себя 42 592 изображения 112 человек и огромный бонус — расставленные вручную метки, которые содержат идентификатор человека, ориентацию фото (фронтальная или нет), 17 меток лица, прямоугольники, выделяющие лицо и очки, а также метки пола, возраста, эмоции на лице человека и качество освещения.

Large Age-Gap Face Verification

Количество изображений: 3 828

Количество лиц: 1 010 знаменитостей

Год: 2017

Примеры пар изображений одного человека в датасете LAG.

Еще одной проблемой является большая разница в возрасте одного и того же человека на разных фотографиях. Может ли алгоритм распознать личность по детской фотографии? Датасет Large-age gap (LAG) был создан для того, чтобы помочь разработчикам решить эту сложную задачу.

Датасет состоит из фотографий знаменитостей, найденных в поиске Google по картинкам и в видео на YouTube. Есть два случая: большая разница в возрасте на фотографиях (например, 0 и 80 лет) и значительное изменение внешности вследствие взросления. Как говорит автор датасета, «от 0 до 15 лет — относительно небольшая разница в возрасте, приводящая к большой разнице во внешности».

Датасет LAG учитывает оба варианта. Он содержит 3 828 изображений 1 010 знаменитостей. Для каждого из них есть хотя бы одно изображение в детстве (молодости) и одно изображение в среднем (пожилом) возрасте. Всего было сгенерировано 5 051 пар изображений.

Еще примеры пар изображений одного человека в датасете LAG.

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

Тепловые карты компонент помогают восстановить лица на фотографиях с низким разрешением

8 октября 2018
face-resolution-upscaling-facial-component-heatmap

Тепловые карты компонент помогают восстановить лица на фотографиях с низким разрешением

Результаты многих техник анализа лица полагаются на соответствующее разрешение изображения. Например, распознавание лица не будет работать корректно, если разрешение лица на фотографии низкое. Что такое Super-Resolution Face super-resolution (FSR) или…

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

Что такое Super-Resolution

Face super-resolution (FSR) или лицевая галлюцинация (face hallucination) восстанавливает изображение лица в высоком разрешении (HR) из картинки низкого разрешения (LR). Эта область исследований привлекает к себе интерес в последние годы, однако даже современные методы часто выдают изображения с искаженной лицевой структурой и только частичным восстановлением деталей лица. Методы глубокого обучения для FSR не справляются с восстановление LR-лиц во некоторых позах, причем количество таких поз велико.

Как же решить данную проблему? Есть два варианта:

  • Изменение тренировочных данных с большим количеством поз. Но это все еще приводит к субоптимальным результатам: детали лица размыты или вовсе отсутствуют
  • Напрямую находить лицевые компоненты на LR изображениях. Это может привести к фантомным артефактам в финальном результате.

Но что насчет метода, который восстанавливает изображения учитывая предсказание лицевой структуры? Можем ли мы использовать тепловые карты для представления вероятности возникновения лицевого компонента?

Вскоре мы узнаем об этом, а пока обратимся к предыдущим подходам.

Связанные работы

Методы построения галлюцинации лица могут быть грубо разделены на три категории

  • Подходы основанные на “глобальных моделях”, главная цель которых восстановить низкокачественное изображение путем обучения целостного отображения, например PCA. В частности  Wang и Tang реконструируют HR изображения по коэффициентам PCA от LR — входа. Liu и др. разработали Марковское случайное поле (Markov Random Field (MRF) для уменьшения фантомных артефактов порожденных неправильной оценкой LR-изображения.
  • Kolouri и  Rohde используют оптимальные техники переноса, чтобы преобразовать HR-результат путем интерполяции образцовых HR лиц.
  • Предлагаются “частичные методы” для восстановления отдельных участков лица по отдельности. Например, Tappen и Liu восстанавливают детали лица, деформируя опорные изображения HR;
  • Yang и др. локализуют компоненты лица в изображениях LR с помощью детектора ключевых точек лица, а затем реконструируют отсутствующие HR детали из аналогичных компонентов HR.
  • Глубокое обучение: Xu и др. используют фреймворк GAN для восстановления размытого изображения лица;
  • Zhu и коллеги представили каскадную bi-сеть, названную CBN, которая сначала локализует LR лицевые компоненты, а затем увеличивает разрешения деталей лица.

State-of-the-art идея

Xin Yu и его коллеги предлагают многозадачную глубокую нейронную сеть, которая не только восстанавливает LR-изображения, но и оценивает пространственные положения лицевых компонентов. Их сверточная нейронная сеть (CNN) имеет две ветви: одну для восстановления изображений лица, а другую — для прогнозирования характерных областей лица по тепловыми картам.

Целиком процесс выглядеть следующим образом:

  1. Распознавание признаков (фич) по входящему LR изображению.
  2. Использование пространственного преобразования для выравнивнивания фич-карт.
  3. Оценка тепловых карт лицевых компонентов по улучшенным фич-картам.
  4. Конкатенация оценочных тепловых карт с фич-картами.

Метод позволяет улучшить крошечное выровненное изображение лица (16х16 пикселей) с множителем 8х с сохранением структуры лица.

улучшение качества фотографий с лицами
(a) изображение LR; (б) изображение HR; c) ближайшие соседи; (d) CBN, (e) TDAE, (f) TDAE обучается лучшему набору данных, (g) предлагаемый подход

Обзор модели

Нейросеть имеет следующую структуру:

  1. Многозадачная улучшающая нейросеть (MTUN):
    • Ветка улучшения ( состоит из автоэнкодера, разверточных слоев и сети пространственное трансформации)
    • Ветка оценки теплокарт лица (HEB)
  2. Дискриминационная сеть, которая состоит из сверточных слоев и полносвязных слоев.

архитектура модели

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

2D-фотографии могут иметь широкий диапазон поз. Таким образом, чтобы уменьшить количество обучающих образов, необходимых для обучения HEB, они предлагают использовать сеть пространственных трансформаторов (STN) для выравнивания характеристик с улучшенной дискретизацией перед оценкой тепловых карт.

По оценкам, четыре карты представляют четыре компонента лица: глаза, нос, рот и подбородок (см. Изображение ниже).

Визуализация оценочных тепловых карт лицевого компонента: (a) невыровненное изображение LR; (б) изображение HR; c) карты теплоты; d) результат; (e) Предполагаемые тепловые карты, лежащие в основе результатов
Визуализация оценочных тепловых карт лицевого компонента: (a) невыровненное изображение LR; (б) изображение HR; c) карты теплоты; d) результат; (e) Предполагаемые тепловые карты, лежащие в основе результатов

Функция потерь. Результат использования различных комбинации функции потерь показаны ниже

a. невыровненное изображение LR, b. оригинальное изображение HR, c. только пиксельные потери, d. пиксельные и многофункциональные потери, e. пиксельные, функциональные и дискриминационные потери, f. пиксельные и лицевой структуры потери, g. пиксельные, функциональные и потери структуры h. пиксельные, функциональные, дискриминационные и структурные потери.
a. невыровненное изображение LR, b. оригинальное изображение HR, c. только пиксельные потери, d. пиксельные и многофункциональные потери, e. пиксельные, функциональные и дискриминационные потери, f. пиксельные и лицевой структуры потери, g. пиксельные, функциональные и потери структуры h. пиксельные, функциональные, дискриминационные и структурные потери.

При обучении своей многозадачной улучшающей сети исследователи выбрали последний вариант (h).

Качественные и количественные сравнения

Качественное сравнение предлагаемого подхода с использованием самых современных методов:

Сравнение с самыми современными методами: (a) LR image; (б) изображение HR; c) бикубическая интерполяция; d) VDSR; e) SRGAN; (f) метод Ma и др.; g) CBN; h) TDAE; (i) Предлагаемый подход
Сравнение с самыми современными методами: (a) LR image; (б) изображение HR; c) бикубическая интерполяция; d) VDSR; e) SRGAN; (f) метод Ma и др.; g) CBN; h) TDAE; (i) Предлагаемый подход

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

Количественное сравнение с самыми современными методами приводит нас к тем же выводам. Все методы оценивались по всему тестовому набору данных по среднему значению PSNR и по шкале структурного сходства (SSIM).

Количественные сравнения по всему набору тестовых данных
Количественные сравнения по всему набору тестовых данных

Выводы

Подведем итог вкладу этой работы:

  • Он представляет собой новую многозадачную сеть с повышающей дискретизацией, которая может обрабатывать очень маленькие изображения лица LR (16 x 16 пикселей) с помощью коэффициента масштабирования 8x.
  • Метод не только использует сходство интенсивности изображения, но и оценивает структуру лица с помощью тепловых карт лицевых компонент.
  • Оцененные тепловые карты лицевых компонент обеспечивают не только пространственную информацию о компонентах лица, но также информацию о видимости.
  • Благодаря выравниванию карт функций перед оценкой тепловой карты количество изображений, необходимых для обучения модели, в значительной степени сокращается.

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

UFDD — датасет для обнаружения лиц в условиях дождя, снега, тумана и в движении

21 сентября 2018
UFFD face detection dataset

UFDD — датасет для обнаружения лиц в условиях дождя, снега, тумана и в движении

Решение задачи распознавания лица на изображении подразумевает, что сначала нужно обнаружить это лицо. Механизмы детекции лиц улучшилось за последние годы, алгоритмы работают при  различающихся масштабах и позах. Тем не менее, некоторые проблемы…

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

Группа исследователей, возглавляемя Hajime Nada из Fujitsu, выявила ряд проблем при обнаружении лиц и собрала UFDD датасет, чтобы решить эти проблемы. Датасет включает в себя фотографии в дождь, снег, туман, при слабом освещении и сильно размытые. Кроме того, он также содержит набор дистракторов — изображений, на которых нет лиц, но есть объекты, которые ошибочно принимаются за лица.

Проверим, как современные подходы к обнаружению лиц работают с этим новым сложным датасетом. Виден ли разрыв между качеством работы алгоритмов и требованиями, предъявляемыми к ним? Узнаем прямо сейчас!

Датасеты для обнаружения лиц

Для распознавания лиц было разработано несколько датасетов. В таблице представлены параметры самых популярных используемых из них:

face detection datasets

Давайте кратко обсудим некоторые преимущества и недостатки этих датасетов:

  • AFW состоит из 205 изображений, собранных на сервисе Flickr. Он содержит 473 вида пометок, включая лицевые лендмарки и ярлыки для разных людей. Различия в стилях и условиях съемки незначительны.
  • PASCAL FACE содержит 851 изображение с 1 341 пометкой. Как и в предыдущем датасете, различия в условиях съемки незначительны.
  • FDDB — 2 845 изображений с 5 171 пометок. Авторы датасета старались сделать его разнообразным. Однако изображения были взяты из Yahoo! и, в основном, содержат лица знаменитостей.
  • MALF — датасет из 5250 изображений и 11 900 пометок. Разработан специально для обработки мелкозернистых изображений.
  • IJB-C — большой датасет, содержащий 138 000 изображений с лицами, 11 000 видео и 10 000 изображений без лиц. IJB-C разработан специально для обнаруженияи распознавания лиц.
  • WIDER FACE — недавно представленный датасет с более чем 32 300 изображениями. Он включает фотографии с сильно различающимися условиями съемки (масштабом, позой, углом обзора), но не предназначен для учета деградаций, связанных с погодными условиями.
  • Датасет UCCS позволяет работать со снимками, сделанными в сложных погодных условиях. Однако изображения собраны с помощью одной камеры наблюдения. Следовательно, этот датасет не представляет многообразие условий съемки.

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

Датасет UFDD

UFDD включает в себя 6,424 изображения с 10 895 метками. Изображения в нем обладают большой вариабельностью погодных условий (дождь, снег, туман), размытости движений, фокуса, освещения и препятствий на объективе. Количество изображений в группах различных ухудшений приведено в таблице:

face detection in the wild

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

UFDD собран из изображений с Google, Bing, Yahoo, Creative Commons Search, Pixabay, Pixels, Wikimedia commons, Flickr, Unsplash, Vimeo и Baidu. После cбора и удаления дубликатов, изображения были сжаты/растянуты до 1024 пикселей по ширине при сохранении их исходных пропорций.

Для создания пометок изображения загружались в AMT (Amazon Mechanical turk). Для каждого изображения назначалось 5-9 сотрудников, которым было предложено поставить метки распознаваемым лицам. По завершении работы пометки окончательно утверждались и при необходимости объединялись.

Оценка и анализ

Ученые отобрали несколько алгоритмов обнаружения лиц для оценки датасета UFDD. Среди них:

  • Faster-RCNN — один из первых сквозных методов обнаружения объектов на основе сверточной нейронной сети. Он был выбран в качестве основного алгоритма, так как в нем впервые были использованы anchor boxes — стандартный подход для большинства методов распознавания лиц.
  • HR-ER работает с существенно различающимися масштабами, распознавание работает на основе ResNet-101.
  • SSH также работает с различными масштабами и состоит из нескольких детекторов на conv-слоях VGG-16.
  • S3FD основан на популярной инфраструктуре распознавания объектов, SSD, с VGG-16 в качестве основной сети.

Перечисленные алгоритмы были протестированы на датасете UFDD в двух различных сценариях:

  • После предварительного обучения на датасете WIDER FACE;
  • После предварительного обучения на датасете WIDER FACE, искусственно дополненном изображениями с ухудшениями, такими как дождь, снег, размытие и препятствия. Пример:
Выборка помеченных изображений из искусственно дополненного датасета WIDER FACE (слева направо и сверху вниз: дождь, снег, размытие в движении, размытие по Гауссу, измененное освещение, препятствия на объективе)
Выборка помеченных изображений из искусственно дополненного датасета WIDER FACE (слева направо и сверху вниз: дождь, снег, размытие в движении, размытие по Гауссу, измененное освещение, препятствия на объективе)

На следующем рисунке приведены зависимости точности алгоритмов от их чувствительности:

обнаружение лиц на фотографиях
Результаты оценки алгоритмов распознавания лиц на новом датасете UFDD, обученных на датасете WIDER FACE (слева) и на искусственно дополненном WIDER FACE (справа)

В таблице 3 приведена средняя точность (mAP) алгоритмов в зависимости от тренировочного датасета:

face detection

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

Анализ по группам

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

UFFD dataset
Результаты распознавания лиц на датасете UFDD

Графики зависимости точности от чувствительности:

Анализ по группам: зависимость точности от чувствительности различных алгоритмов обнаружения лиц для каждого типа ухудшений на новом датасете UFDD
Анализ по группам: зависимость точности от чувствительности различных алгоритмов обнаружения лиц для каждого типа ухудшений на новом датасете UFDD

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

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

Результаты распознавания лиц на новом датасете UFDD с использованием дистракторов и без них
Результаты распознавания лиц на новом датасете UFDD с использованием дистракторов и без них

Несмотря на прогресс в последние несколько лет, алгоритмы обнаружения лиц по-прежнему не справляются с изображениями, сделанными в экстремальных погодных условиях и в движении. Это связано с отсутствием подходящих датасетов для обучения.

Датасет UFDD решает эту проблему. Надеюсь, он будет способствовать дальнейшему развитию техники распознавания лиц, и вскоре мы увидим новые современные подходы, которые могут легко распознавать лица в экстремальных условиях съемки. Датасет доступен по ссылке.


Интересные статьи:

Supervision-by-Registration: метод детекции лицевых лендмарок без учителя

14 августа 2018
supervision-by-registration-compressor

Supervision-by-Registration: метод детекции лицевых лендмарок без учителя

Распознавание лицевых точек — основа для выполнения задач по распознаванию лиц, анимации лиц и создания цифровых копий. Корректное обнаружение лендмарок – все еще не решенная проблема. Несмотря на работу, проведенную…

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

  1. Недостаток обучающих примеров;
  2. Неточные описания,

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

В исследовании описывается подход к обучению без учителя для решения описанной проблемы. Обучение регистрацией (Supervision-by-Registration или SBR) улучшает функцию потерь обучением на данных, автоматически полученных из неразмеченных видео. Для этого предлагается согласовать:

  1. положение точки в смежных кадрах;
  2. регистрацию (оптического потока), как способа обучения.

 Фреймворк

Архитектура метода
Рис. 1. Сеть принимает размеченные изображения и неразмеченные видео в качестве входных данных для обучения основанной на изображениях модели распознавания лицевых точек

SBR представляет собой сквозную обучаемую модель, состоящую из двух компонентов: общего детектора, построенного на сверточных нейронных сетях и дифференциального метода Лукаса – Канаде (LK). Во время прямого прохода LK принимает обнаруженные точки из предыдущего кадра и оценивает их местоположения в текущем кадре. Затем отслеживаемые точки сравниваются с обнаруженными на текущем кадре. Функция регистрационных потерь (registration loss) определяется как смещение между ними. При обратном проходе градиент от функции потерь обратно распространяется через LK для поддержания временной согласованности в детекторе. Конечный результат метода — улучшенная основанная на изображениях модель обнаружения лицевых точек, которая использует большое количество неразмеченных видео для достижения более высокой точности как на изображениях, так и на видео, а также для получения более стабильных прогнозов в случае с видео. SBR вносит более обучающие сигналы из регистрации, что повышает точность детектора. Суммируя, SBR имеет следующие преимущества:

  1. SBR может повысить точность обнаружение лицевых точек на изображениях и видео методом обучения без учителя.
  2. Поскольку обучающий сигнал SBR получен не из аннотаций, SBR может использовать очень большое количество неразмеченного видео для улучшения модели.
  3. SBR может быть обучен c применением широко используемого метода обратного распространения ошибки.

Архитектура нейросети

SBR состоит из двух дополнительных частей: детектор, распознающий основные точки лица, и алгоритм LK. Обучение SBR с двумя дополнительными функциями потерь выглядит следующим образом. Функция потерь на первом этапе использует информацию из одного изображения для создания разметки и обучения наилучшей версии модели. Все детекторы принимают на вход изображение l и выдают координаты лицевых точек, то есть D(I) = L.  Квадратичная функция потерь (L^2) рассчитывается на полученных координатах L и реальных метках L*.

facial landmarks

Используя метод Лукаса – Канаде (LK), можно оценить временную согласованность при помощи функции регистрационных потерь (registration loss). Эти потери могут быть рассчитаны методом обучения без учителя для усиления детектора. Это реализуется методом обратного распространения ошибки между входными данными и выходными из LK алгоритма. Во время прямого прохода вычисляется функция регистрационных потерь, в то время как во время обратного оценивается надежность работы алгоритма LK. Функция потерь имеет следующий вид:

лэндмарки

Полная функция потерь: Пусть N – число объектов для обучения с реальными метками. Для краткости, предположим, есть только одно неразмеченное видео с T кадрами. Тогда полная функция потерь SBR выглядит следующим образом:

face landmarks

Первым детектором является CPM, который использует предварительно обученные модели ImageNet для извлечения признаков. Для генерации признаков используются первые четыре сверточных слоя VGG- и только три слоя CPM осуществляют прогноз тепловой карты. Изображения лиц обрезаются и изменяются до размеров 256 × 256 для предварительной обработки. Мы обучали CPM с батчами (сериями) размера 8 в течение 40 эпох (циклов) в общей сложности. Скорость обучения начиналась с 0,00005 и уменьшалась на 0,5 в 20-й и 30-й эпохах.

Второй детектор – обычная регрессионная сеть, обозначаемая Reg. VGG-16 используется как базовая модель, она меняет выходные нейроны последнего полносвязного слоя на K × 2, где K – число локаций лицевых точек. Входные изображения обрезаются до размера 224 × 224 для этой регрессии.

Используемые для сравнения наборы данных: 300-W, AFLW, youtube-face, 300-VW и YouTube Celebrities. Результаты SBR, показанные на рисунке ниже, получены как при помощи Reg (на основе регрессии), так и с использованием CPM (на основе тепловой карты) на AFLW и 300-W. Для оценки качества работы алгоритмов на изображениях была выбрана нормализованная средняя ошибка (NME).

Результаты

результаты метода нахождения лэндмарок

results

В сухом остатке

SBR демонстрирует результаты современного уровня на выбранных датасетах со следующими преимуществами:

  1. Модель не полагается на сделанные вручную аннотации, которые могут быть неточными;
  2. Детектор больше не ограничивается количеством и качеством аннотаций.
  3. Метод обратного распространения через слой LK позволяет получать более точные градиентные обновления, чем при самообучении.

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

Робот, который находит Уолли за 4,5 секунды

9 августа 2018
Wheres_Waldo

Робот, который находит Уолли за 4,5 секунды

«Где Уолли?» — серия детских книг, созданная британским художником Мартином Хендфордом. В них нужно найти определённого человека — Уолли — на картинке, где изображено много людей. Redpepper создали робота, который…

«Где Уолли?» — серия детских книг, созданная британским художником Мартином Хендфордом. В них нужно найти определённого человека — Уолли — на картинке, где изображено много людей.

Redpepper создали робота, который находит Уолли за 4,45 секунды и указывает на него. Нейросеть обучили на 107 изображениях Уолли, найденных в Google. Рука робота управляется Raspberry Pi, используя библиотеку PYARM Python для UARM Metal. Встроенная камера фотографирует страницу книги, после чего робот использует OpenCV, чтобы распознать лица на фотографии; затем лица отправляются в Google AutoML Vision, где обученный алгоритм анализирует сходства с Уолли. При совпадении на 95% и больше, роботу даётся указание с координатами. Если на рисунке не один Уолли, рука укажет на каждого из них.

Social Mapper — нейросеть для группировки аккаунтов в соцсетях

8 августа 2018
social mapper

Social Mapper — нейросеть для группировки аккаунтов в соцсетях

Trustwave выпустили новый инструмент с открытым исходным кодом Social Mapper, который использует алгоритмы распознавания лиц, чтобы находить и группировать аккаунты человека в социальных сетях. Нейросеть автоматически находит профили в Facebook, Instagram,…

Trustwave выпустили новый инструмент с открытым исходным кодом Social Mapper, который использует алгоритмы распознавания лиц, чтобы находить и группировать аккаунты человека в социальных сетях. Нейросеть автоматически находит профили в Facebook, Instagram, Twitter, LinkedIn и других сетях, основываясь на имени и фотографии. Результаты выводятся в отчет, который может быстро просмотреть оператор.

Social Mapper не требует доступа API к социальным сетям. Вместо этого система выполняет автоматический ручной поиск в окне браузера, используя алгоритм распознавания лиц и сканируя первые 10-20 результатов на соответствие. Инструмент работает медленнее чем API-сканеры. По оценкам разработчиков поиск 1000 человек занимает 15 часов.

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

Систему распознавания лиц используют на Олимпийских играх в Токио в 2020

7 августа 2018
Face recognition Tokyo 2020

Систему распознавания лиц используют на Олимпийских играх в Токио в 2020

Японская телекоммуникационная корпорация NEC разработала технологию распознавания лиц для летних Олимпийских и Паралимпийских игр 2020 года в Токио. Технология будет использоваться для идентификации 300 000 человек на мероприятиях, включая спортсменов, волонтеров…

Японская телекоммуникационная корпорация NEC разработала технологию распознавания лиц для летних Олимпийских и Паралимпийских игр 2020 года в Токио. Технология будет использоваться для идентификации 300 000 человек на мероприятиях, включая спортсменов, волонтеров и СМИ.

Разработка NEC базируется на алгоритме NeoFace, в основе которого лежит обобщённый алгоритм квантования (Generalized Learning Vector Quantization). NeoFace является частью системы биометрической аутентификации Bio-IDiom. Фото человека загружается в систему и связывается с IC-картой, которая будет выдаваться аккредитованным участникам.

NEC представила технологию в Токио. На демонстрации система идентифицировала разных людей, включая участников в  инвалидных креслах и людей ростом от 2 метров. Алгоритм правильно распознаёт лица в 99,7% случаев независимо от расовой принадлежности и физических особенностей.

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

Китай получит данные миллионов африканских лиц для улучшения технологий распознавания

3 августа 2018
Zimbabwean President Robert Mugabe Visits China

Китай получит данные миллионов африканских лиц для улучшения технологий распознавания

В 2015 году китайское правительство запустило план «Made in China 2025». План нацелен на то, чтобы сделать Китай лидером в передовых технологических отраслях. Для этого планируется использовать ресурсы развивающихся стран.…

В 2015 году китайское правительство запустило план «Made in China 2025». План нацелен на то, чтобы сделать Китай лидером в передовых технологических отраслях. Для этого планируется использовать ресурсы развивающихся стран. Китай хочет не только экономически доминировать на развивающихся рынках, но и использовать их для совершенствования собственных технологий наблюдения. Так в Зимбабве планируется разместить и обучать технологию распознавания лиц на темнокожих людях, которая затем перейдет в пользование правительства африканской страны.

В апреле 2018 CloudWalk Technology, стартап из Гуанчжоу, подписал соглашение с правительством Зимбабве о предоставлении технологий для массовой программы распознавания лиц. Согласно докладу «Science and Technology Daily», в договор входят камеры наблюдения, технологии для финансовой системы, технологии безопасности аэропортов, железных дорог и автовокзалов, а также национальная база данных лиц.

В рамках соглашения, стоимость которого CloudWalk отказалась предоставить, Хараре отправит данные о миллионах черных лиц китайской компании, чтобы помочь обучить технологию распознаванию темнокожих людей. Обучение нейронных сетей распознавать лица темнокожих людей — это возможность для CloudWalk и для китайского искусственного интеллекта в целом. Недавнее исследование, проведенное в Массачусетском технологическом институте Media Lab, включало проверку трех основных поставщиков программного обеспечения для распознавания лиц: Microsoft, IBM и Megvii (китайская компания). Исследование показало, что при попытке идентифицировать пол человека частота ошибок для мужчин со светлой кожей составляла менее 1%, тогда как для женщин с темной кожей — до 35 %. Это связано с тем, что точность распознавания зависит от данных, на которых обучается алгоритм, а во всем мире распознавание лиц тестировалось преимущественно на лицах белых мужчин, даже внутри Китая.


Читайте также: Как в Gfycat решали проблему распознавания лиц азиатов и афроамериканцев


Сделка в Зимбабве не уникальна — в 2016 году Пекин пожертвовал аналогичное оборудование на сумму 14 миллионов долларов США, Эквадору, которое, по утверждению правительства Эквадора, помогло снизить уровень преступности на 24%. Но с помощью сделки CloudWalk у китайской компании теперь есть доступ к пулу данных гораздо более разнообразному, чем этнический состав Китая. Лидеры Зимбабве, в свою очередь, получают доступ к технологиям и инструментам, которые они никогда не смогут позволить себе на открытом рынке. Однако кроме усиления правительственного контроля, обычные граждане не будут видеть никакой отдачи от исследования, в котором их данные играют ключевую роль. А Китай сможет сделать ещё один шаг на пути к реализации своих амбиций — стать мировым лидером в области технологий искусственного интеллекта.

Источник: Foreign Policy