Технология распознавания лиц: принцип работы и актуальность
Актуальность технологии распознавания лиц
Технологии распознавания лиц в том или ином виде развиваются уже достаточно давно, однако за последний примерно десяток лет или около того произошел существенный скачок в области разработки и обучения нейронных сетей. Это направление уже является одним из наиболее актуальных и перспективных, наряду с развитием технологий передачи информации, разного рода облачных сервисов и осмысленного анализа больших объемов данных. Сегодня можно уже с уверенностью сказать, что в некоторых прикладных кейсах системы на основе нейронных сетей и распознавания эффективны. Но, далеко не во всех.
Попробуем разобраться, что системы face recognition умеют уже сегодня с точки зрения анализа видео и изображений и где наступает предел.
Развитие технологии
И архитектура, и методики обучения нейросетей продолжают активно развиваться и открывать новые применения на практике. Например, сегодня уже используются так называемые рекуррентные нейронные сети, что позволило существенно повысить качество работы систем face recognition на их основе.
Попробуем объяснить, что стоит за этим понятием. Долгое время логика работы нейронных сетей предусматривала работу с каждым кадром по-отдельности и, соответственно, их отдельный анализ. В результате система достаточно часто принимала ошибочные решения. Логика работы рекуррентных сетей в полной мере позволяет учитывать контекст, когда последовательность кадров рассматривается, как общая совокупность и результат обработки предыдущих кадров влияет на обработку последующих кадров. Таким образом достигается очень высокое качество распознавания. А это, свою очередь, расширяет возможности практического применения.
Развивается и подход к использованию вычислительных ресурсов с целью максимально эффективной их утилизации. В системах распознавания лиц задействованы мощности и CPU, и GPU. Перераспределяя различные типы вычислительных задач между ними, а также оптимизируя общий work flow процесса распознавания, можно добиться хороших результатов, когда один условный сервер может “переварить” существенно больше видеопотоков.
Как работает распознавание лиц
Верхнеуровнево принцип работы систем распознавания лиц можно описать так. Под системой мы будем понимать не только саму нейронную сеть, а весь набор компонентов до и после нее, которые задействованы в процессе. На вход системы поступает закодированный видеопоток с камеры, представляющий из себя последовательность кадров, на которых могут быть лица. Данные поступают в так называемый декодер, который декодирует видеопоток в отдельные кадры для их дальнейшей обработки детектором. Далее детектор на каждом кадре определяет наличие в принципе каких-либо объектов в кадре, похожих на лицо.
После этого происходит скоринг детектированных объектов, определяются ключевые точки, позволяющие определить угол поворота лица и его качество. На основе этого лицам проставляются оценки. Объекты, оцененные, как не лица, выкидываются полностью. На дететктированных лицах с набора последовательных кадров строится треклет одного лица (например, когда один и тот же человек прошел в кадре из одного конца помещения в другой и попал в систему сразу на 100 кадрах), исключается дублирование и определяется несколько наилучших из треклета лиц (наивысшая оценка), которые будут участвовать в распознавании. Объекты, отнесенные к лицам, но плохо подходящие для распознавания (например, система понимает, что в кадре лицо, но оно сильно повернуто и для качественного распознавания видимой части лица не хватит) получают низкую оценку.
Отобранные лица из треклета обрабатываются нейронной сетью, с них определяется так называемый вектор фич — извлеченный нейросетью уникальный набор признаков, характерный только этой персоне, по сути формирующий уникальный код лица. Произошло распознавание лица.
Далее распознанные лица через тот самый уникальный код лица, сравниваются с базой данных персон в системе. И, если разница не превышает заданного порогового значения, система связывает распознанное в кадре лицо с персоной из базы данных. Если превышает — формируется новая отдельная персона. Произошла персонификация лица.
Таким образом, нейронная сеть является только частью системы распознавания лиц. Чаще всего сетей в системе бывает несколько и каждая важна для достижения качественного результата. Скажем, хорошая сеть извлечения вектора фич и плохая сеть детектора не дадут хороший результат. А все качественно обученные сети в совокупности и позволяют получить высокий уровень распознавания лиц.
Можно ли обмануть систему
И да, и нет. Ответ на этот вопрос сильно зависит от контекста задачи. Есть два крайних случая. Если лицо закрыто полностью или почти полностью, то система его не распознает (даже не детектирует), что логично. Если лицо полностью открыто (и еще имеет высокую оценку), то система точно распознает его корректно. Между ними есть множество разных состояний лица в кадре.
Нейросеть, как уже отмечалось выше, извлекает целый набор значений, формирующих вектор фич одного лица. Их может быть несколько десятков или даже сотен. Если часть лица не видна хорошо (например, чем-то закрыта или на лицо нанесен необычный рисунок, призванный спутать сеть), то анализ все равно будет произведен по оставшимся частям. Хотя, вероятность ошибки возрастает, но чаще всего некритично.
Например, если взять какую-то готовую систему распознавания лиц, с конкретным набором сетей (каждая из которых выполняет свою функцию) и логикой работы, то изображение лица с нанесенными на него артефактами может привести к некорректному определению ключевых точек. Система на выходе даст плохой результат, потому что на одном из этапов был сбой (выше мы писали, как важно, чтобы каждый из этапов работал корректно). Однако, если в той же самой системе распознавания “отключить” проблемный этап, то скорее всего она корректно распознает то же самое лицо с артефактами. И таких примеров много. Поэтому, универсального способа обманывать системы face recognition скорее всего нет. Тот, который обманет одну систему, не обманет другую, и наоборот. Чтобы обмануть конкретную систему нужно очень детально понимать именно ее логику работы, а это сильно усложняет задачу.
Чем технология полезна бизнесу
Системы распознавания лиц могут помочь бизнесу автоматизировать некоторые процессы в компаниях, которые сейчас выполняются живыми людьми. Тем самым, сократив участие людей в них или (в будущем) вообще заменив людей на таких участках. Например, такие системы могут быть вспомогательными в вопросах безопасности магазинов, проводя автоматический анализ входящих посетителей и сравнивая их с “черным списком” для более оперативной реакции персонала. Или в вопросах маркетинга, когда алгоритм позволяет распознавать эмоции клиента, анализируя жесты, мимику, глаза и т.д. Это позволит персоналу лучше реагировать на целевые ситуации, делать точечные предложения. Или проводить ретроспективный анализ количества уникальных и лояльных посетителей ресторанов или кафе, также учет рабочего времени своих сотрудников.
Практические реализации в отраслях
Области применения решений на основе распознавания лиц неуклонно расширяются. Сегодня среди них и банковская сфера с транспортом, и ритейл с промышленностью, и даже медицина.
Например, установив такое решение, скажем, на банкомате, можно с одном стороны упростить взаимодействие с клиентом, а с другой стороны даже повысить его эффективность. Клиента банка можно идентифицировать как только он подошел к банкомату. Причем, к этому моменту банк уже много знает про клиента: о его остатках, предпочтениях, подключенных услугах и т.п. Все это в совокупности со вторичным факторами, такими как место, время или день месяца, можно предложить клиенту что-то существенно более подходящее. Такие решения еще не нашли массового применения, но уже проходят пилотные тестирования.
Камеры видеонаблюдения с функцией распознавания лиц уже установлены и на турникетах метро в Москве. Конечно, изначально основной задачей было обеспечение безопасности на транспорте и помощь в поиске правонарушителей (когда система сравнивает лица пассажиров с базой данных). Однако сейчас проводятся пилотные тестирования по оплате проезда с применением данной технологии. Надо сказать, что камеры на турникетах метро работают в условиях, близких к идеальным для распознавания. Однако, и в таких условиях вероятность ошибок все еще достаточно большая (например, у сегодняшних систем есть ощутимые ограничения по качественному распознаванию лиц в большой толпе — это отдельное усложняющее условие), а цена такой ошибки в случаях с оплатой высока. Поэтому, такие сервисы появятся, но несколько позже.
Или взять те же домофоны. Уже никого не удивить современными домофонами, которые управляются через приложение на смартфоне из любой точки мира (нужен только доступ в Интернет). А самые продвинутые компании уже тестируют домофонные решения с функцией распознавания лиц, позволяющие открывать дверь по лицу, как только человек подходит к ней. Такие модели еще не готовы для массового применения (в частности, помимо самой технологии нужно подобрать и оптимальный сценарий для пользователя — достаточно ли просто подойти к двери или удобнее будет нажать на любую кнопку без ключа), но пилотные зоны уже есть.
Выводы
За последние годы технологии в области распознавания лиц продвинулись сильно вперед как с точки зрения качества, так и с точки зрения используемых ресурсов (а это означает, что они становятся дешевле). Тем не менее, до уровня живого человека им еще достаточно далеко, поэтому на сегодняшний день такие решения целесообразны в бизнесе лишь для решения каких-то узких точечных задач, но они есть уже сегодня. Однако, общий тренд все же говорит о том, что со временем решения на базе таких технологий все больше будут становиться помощником людей в самых разных задачах. В первую очередь это будет касаться простых и рутинных задач, чтобы люди могли сфокусировать свои усилия на более сложных или творческих.