Одно из направлений Data Science — системы распознавания лиц. Благодаря им московские камеры признаны одними из самых совершенных в мире. Ловить преступников и входить в приложения с ними проще, а прятаться от правосудия и выдавать себя за другого человека — сложнее. Вместе с экспертом Вадимом Лукмановым разбираемся на базовом уровне, где применяются системы распознавания лиц и как они работают.
Где применяют распознавание лиц и что это такое
Под распознаванием лиц может пониматься одна из двух задач:
- верификация — сравнение двух фотографий для определения, что на них один и тот же человек или нет;
- идентификация — поиск человека в существующей базе или картотеке фотографий.
Объединяет эти задачи то, что их может выполнять одна и та же нейросеть.
Верификация происходит по следующему алгоритму. Когда пользователю надо куда-то зайти по фотографии лица, это может быть банковское приложение с биометрией, то происходит следующее:
- приложение фотографирует пользователя и автоматически извлекает из изображения эмбеддинг — определённый вектор чисел;
- в базе банка берётся фотография человека из прошлого;
- два изображения автоматически сверяются;
- если евклидово расстояние между двумя эмбеддингами меньше определённого показателя, то нейросеть делает вывод, что на фотографиях один и тот же человек, и подтверждает операцию.
Идентификация — это поиск человека по лицу. В некой базе данных или фотогалерее накапливается массив фотографий людей, как это происходит с теми же фотографиями с камер в Москве. В качестве запроса берётся новая фотография человека, точнее, эмбеддинг из неё, и сравнивается с предыдущими изображениями в базе.
Знай! / Как работают системы распознавания лиц?
Если мы ищем на улице человека, подозреваемого в краже товара из магазина, или хотим выявить нарушителя среди болельщиков на футбольном матче, то фотографируем каждого посетителя на входе. И если находится достаточно близкий эмбеддинг в базе, то можно отказать человеку, который запечатлён на фото, во входе на матч или задержать его. Если эмбеддинг недостаточно близкий, значит, человека нет в базе, и органы правопорядка он не интересует.
Распознавание лиц может использоваться везде, где есть камеры: на улице, в помещении, на стадионах, в метро и общественном наземном транспорте, в аэропортах, на вокзалах, в магазинах, банках и других общественных местах. Соответствующие программы и алгоритмы можно устанавливать на стационарные компьютеры и на мобильные устройства, также они используются в системе «Умный город», в некоторых домофонах, в приложениях, банковских или других.
Распознавание лиц используется:
- для безопасности: поиск преступников, подозреваемых и нарушителей общественного порядка, невозможность взлома банковских паролей;
- для поиска пропавших без вести;
- для рекламы: распознавание клиента на входе с персональными предложениями, проверка эмоциональных реакций на товар или услугу, повышение качества сервиса;
- в розничной торговле: бесконтактная оплата лицом на кассе, товарные предложения и скидки с учётом истории покупок, сокращение очередей.
Как устроено распознавание лиц
В основе системы распознавания лиц лежит обученный пайплайн — последовательность взаимосвязанных между собой программ. В нём выделяется несколько составляющих:
Как работает система распознавания лиц
- Детектор лиц. Обучается независимо от остальных частей пайплайна. Для обучения и тестирования детектора лиц необходим датасет, в котором есть размеченные прямоугольники лиц — bounding boxes — и, желательно, размеченные ключевые точки лица: глаза, нос, уголки рта. Если под рукой нет своего датасета, можно использовать публичный датасет WIDER face, в котором более 300 тысяч размеченных лиц.
Обычно никто не придумывает архитектуру детектора, и просто берут публичные, например, MTCNN, Retina Face, SCRFD, Yolov5Face. В зависимости от кейса применения детектор могут дополнительно дообучать на своих данных и ускорять.
- Выравниватель. Эта часть пайплайна наименее важная, и обычно её нет нужды обучать. Сначала детектор лица предсказывает прямоугольник и ключевые точки лица, обычно пять точек. Затем выравниватель с помощью аффинного преобразования поворачивает и сдвигает ключевые точки, а вместе с ними и лицо, до эталонного положения.
- Эмбеддер — распознаватель, извлекатель эмбеддингов и дескрипторов. Это самая важная часть программы: обученная модель больше всего весит и дольше всего работает по времени. Для него нужны три составляющие:
- Хорошая архитектура нейросети. Архитектуру обычно берут из лидеров на Imagenet — одном из самых важных бенчмарков в компьютерном зрении, или ансамбль из нескольких архитектур в связке с дистиляцией знаний (knowledge distillation).
- Объёмный датасет. Датасет обычно состоит из сотен тысяч фото реальных людей в разном ракурсе, разных возрастов, полов и рас. Датасет может быть опенсорны. Сейчас такие почти не найти, но перечислим популярные в прошлом MSCeleb1M, VGG2, UMD faces, MegaFace. Датасет можно собрать самостоятельно, купить у специализированных компаний или получить от клиентов.
- Хорошая функция потерь (loss function). Функция потерь — обычно ArcFace или её улучшения. Обучение модели происходит как задача классификации
От обученной модели отрезают последний полносвязный слой, и получают эмбеддер.
- Трекер. Нужен для отслеживания траекторий людей и используется не в каждой системе. Мобильное приложение банка может работать без трекера, в то время как для распознавания лиц по уличным камерам он необходим, так как дополнительно позволяет не запускать детектор лица на каждом кадре, а в магазине может использоваться для определения наиболее популярных полок. Популярные трекеры базируются на фильтре Калмана и Венгерском алгоритме.
При распознавании лиц на видео обычно эмбединги извлекаются с каждого кадра по отдельности, и потом усредняются в один агрегированный эмбединг. Для того чтобы кадры с плохо видимым лицом давали меньший вклад, часто обучают небольшую нейросеть, которая присваивает веса каждому кадру: чем лучше видно лицо, тем выше вес.
Слабые места современного распознавания лиц
Системы распознавания лиц уже могут многое. Но есть нюансы.
Во-первых, существующим системам свойственна расовая предвзятость — racial bias: людей европеоидной расы они распознают лучше, чем представителей других рас. Это не проблема алгоритмов, а только проблема существующих датасетов, на которых обучали и тестировали большинство подобных программ. Тем не менее этот недостаток зачастую приводит к дискриминации по расовому и национальному признаку: системы, используемые в юриспруденции и криминалистике пока что выделяют темнокожих людей как более вероятных преступников.
Во-вторых, за последние годы люди неоднократно придумывали способы обхода распознавания лиц, осуществляя так называемые состязательные атаки — adversarial attacks. В 2017 году сотрудник Яндекса Григорий Бакунов придумал макияж, обманывавший алгоритмы искусственного интеллекта, и рассказал о нём в СМИ.
В 2019 году сотрудники компании Huawei Moscow предложили свой способ, так сказать, шапку-невидимку. Для этого на обычном цветном принтере распечатывали прямоугольные бумажные наклейки, которые приклеивались человеку на головной убор. Это позволило сильно ухудшить качество распознавания лиц, в основе которого был ArcFace.
В долгосрочной перспективе эти алгоритмы не работают, их легко обойти, и потому систему распознавания лиц «сломать» сложно. Но усложнить работу искусственного интеллекта с помощью тёмных очков, макияжа, волос, маски для лица всё же реально.
Ещё один подводный камень — так называемое определение живого присутствия — liveness detection, когда пользователь хочет войти в систему за кого-то другого. То есть, человек хочет, чтобы его распознали, но определили неправильно. Для этого используются фото, распечатанные на принтере, фото людей на экране гаджетов, реже — силиконовые маски с изображением людей. Чтобы отличить статичное изображение в кадре от живого присутствия человека, необходимо разрабатывать отдельный liveness-детектор.
Плюсы и минусы применения систем распознавания лиц
Возможность отследить человека по лицу значительно облегчает поиск преступников, пропавших без вести и похищенных людей, позволяет входить по лицу куда угодно: в офисы, учебные заведения, общественный транспорт, аэропорты, вокзалы, на мероприятия, оплачивать товары и услуги, не трогая лишних предметов руками и снижая риск передачи инфекций, пользоваться мобильными приложениями без пароля или отпечатка пальца. Без технологий распознавания лиц такая задача, как поиск людей в толпе, не представлялась бы возможной.
Но есть и обратная сторона: именно системы распознавания лиц неоднократно сыграли решающую роль при поиске и задержании участников акций протеста в Москве и Гонконге, а также во время карантинных мер из-за пандемии коронавируса. И что для одних людей станет удобным и облегчающим жизнь нововведением, для других может обернуться возможностью слежки и необоснованного контроля. Юристы и правозащитники не раз предупреждали о возможности возникновения такой опасности и сопутствующих нарушений прав человека — отрицательный пример Китая известен многим.
Эксперты уверены, что в ближайшие годы технология распознавания лиц станет массовой во всём мире, что чревато утратой приватности в повседневной жизни. Технологии будут совершенствоваться, но для их этичного и разумного применения нужна взвешенная законодательная база для защиты данных и неприкосновенности частной жизни.
- распознавание
- распознавание изображений
- распознавание лиц
- распознавание объектов
- Блог компании Нетология
- Big Data
- Машинное обучение
- Искусственный интеллект
- Data Engineering
Источник: habr.com
Программы и стоимость Face Recognition
На сегодняшний день на рынке присутствуют несколько крупных игроков, предлагающих качественные алгоритмы анализа и обработки видеоданных.
1142 просмотров
Программное обеспечение «SecurOS Face».
Стоимость лицензии на модуль захвата лиц — 41 275 рублей на канал. ПО устанавливается на сервер распознавания лиц или на сервер их детекции.
Российский разработчик оборудования и программного обеспечения для систем контроля доступа.
Стоимость лицензии на модуль верификации лиц на одну камеру — 50 000 рублей.
Стоимость лицензии на модуль идентификации лиц на одну камеру — 7 000 рублей.
Программное обеспечение «Интеллект» для распознавания лиц с памятью на 1 000 эталонов лиц в базе — 314 000 рублей.
Ядро системы — 20 300 рублей. Подключение видеоканала — 6 000 рублей.
Модуль распознавания лиц Macroscop Basic с размером базы до 1000 лиц — 240 000 рублей.
Лицензия на работу с одной IP-камерой — 16 500 рублей.
Программное обеспечение стоит 79 000 рублей + 32 000 рублей за регистратор.
Компания разрабатывает и продаёт только специализированное ПО для распознавания лиц. Выбирать конфигурацию серверов для хранения и обработки данных вам придётся самостоятельно.
Облачный сервис видеонаблюдения и видеоаналитики, который предложил услуги бизнесу, ограниченному бюджетом. Сервис работает практически с любыми камерами, стоимость подключения одного устройства – от 3 150 рублей с анализом до 100 уникальных лиц в сутки и базовой записью в облачный архив за 5 суток.
*Jasnasoft профессионально решает проблемы бизнеса с помощью современных технологий. Используя новейшие инструменты и подходы, команда создает кастомные решения, которые трансформируют бизнес и автоматизируют рабочие процессы.
Компания Jasnasoft реализует системы распознавания лиц; стоимость решения — $150.000 без ограничений по количеству камер и лиц.
Также Jasnasoft оказывает полный комплекс услуг по вводу и сопровождению брендов в метавселенную. Компания оказывает поддержку по следующим направлениям: создание краткосрочных и долгосрочных стратегий по вводу брендов в метавселенную; создание цифровой одежды; покупка или аренда земли, строительство объектов и проведение мероприятий в метавселенных; создание NFT-коллекций и написание smart-контрактов;
Jasnasoft проектирует, строит, управляет, продает и монетизирует бизнес в Metaverse. Использует возможности web 3.0 для I.P. компании, создавая потребительский опыт для общения, покупок, поиска друзей и создания продуктов в виртуальном и физическом мире одновременно.
Источник: vc.ru
Распознавание лиц: 8 инструментов с открытым исходным кодом для обнаружения лиц
Распознавание лиц повсюду упрощает сложные задачи. Автоматический вход в свой телефон, более удобный доступ к биометрическим данным, быстрая идентификация у ворот безопасности, покупка типа заплати за курицу или даже поиск пары своей мечты. Сегодня мы можем использовать распознавание лиц во всех возможных случаях.
Как правило, в крупных компаниях есть отдельные команды инженеров для внедрения этой технологии. Но что, если вы одинокий солдат, или у вас нет инженерного образования или нет? Будем надеяться, что существует множество инструментов с открытым исходным кодом, которые позволят каждому увидеть возможности распознавания лиц на практике.
Используя эти инструменты, вы можете установить все необходимые функции и добавить их в свой проект по своему усмотрению. Проанализировав десятки инструментов распознавания лиц, я решил поделиться своими впечатлениями и продемонстрировать самые мощные из них (как мне кажется). Кроме того, я добавил все необходимые ссылки, чтобы вы могли глубже погрузиться в каждый инструмент.
Но сначала давайте разберемся с распознаванием лиц.
Идея технологии распознавания лиц впервые появилась в 2014 году, когда Facebook анонсировал свой DeepFace. Для протокола: эта программа смогла определить, принадлежат ли два сфотографированных лица одному и тому же человеку с точностью 97,25%. Затем, год спустя, в 2015 году, Google пошел еще дальше с FaceNet, установив новый рекорд — 99,63%.
Теперь, в 2021 году, большинство алгоритмов распознавания лиц превосходит самые точные алгоритмы конца 2013 года. Вот почему вы можете легко использовать его без сверхмощной команды инженеров, все, что вам нужно, — это просто подходящие инструменты.
FRT имеет три этапа:
- Обнаружение — процесс обнаружения лица на изображении. Это можно сделать, обучив алгоритм, обычно глубокую нейронную сеть, на огромном количестве фотографий, на которых лица находятся в известных положениях. Благодаря Flickr, Instagram или Facebook у нас есть готовые массивные наборы изображений, которые используются для обучения глубоких нейронных сетей.
- Анализ (атрибуция) — это этап, на котором часто отображаются лица путем измерения расстояния между узловыми точками, которое включает соотношение между глазами, носом, бровями и остальными чертами лица. Затем эти измерения преобразуются в однокодированную модель, которую затем можно сравнить и, возможно, объединить с известными фотографиями в базе данных.
- Распознавание — это попытка подтвердить личность человека на фотографии. Это последний шаг, цель которого — дать окончательный ответ на вопрос — кто изображен на этой картинке?
Чтобы лучше понять, как работает FRT, вот несколько интересных и нескучных статей, которые помогут вам.
Полезные ссылки
- FaceNet: единое вложение для распознавания лиц и кластеризации
- Дьявол распознавания лиц в шуме
- Система распознавания лиц, Википедия
- Распознавание лиц: обзор литературы
- Объяснение технологии распознавания лиц
- Нежное введение в глубокое обучение для распознавания лиц
8 бесплатных программ с открытым исходным кодом для распознавания лиц
Отказ от ответственности: здесь нет партнерских ссылок, все инструменты отсортированы в случайном порядке. Это только мое мнение, поэтому, если вы не согласны, не стесняйтесь добавлять комментарии, буду рад все обсудить.
# 1 OpenFace
Инструмент, с которого вполне логично начать эту статью, потому что на сегодняшний день это одно из самых эффективных программ с открытым исходным кодом наравне с FaceNet от Google или DeepFace от Facebook. Но в отличие от этих двух гигантов, OpenFace имеет бесплатную лицензию и позволяет использовать его в коммерческих целях.
Как это работает:
Алгоритм OpenFace чем-то похож на Deepface и описан в статье FaceNet: унифицированное встраивание для распознавания лиц и кластеризации. Он реализован с использованием Python и Torch, поэтому его можно запускать на процессорах или графических процессорах. Он начинается с обнаружения лица с помощью dlib — специальной библиотеки машинного обучения на основе ИИ и OpenCV — другой библиотеки, которая в основном предлагает обработку изображений с некоторым машинным обучением, доступным, если вы создаете из первоисточника.
Вот простой обзор конвейера распознавания OpenFace:
Ключевым этапом является экстрактор функций CNN, который генерирует 128-мерные вложения лиц. Чтобы лучше понять, вот демонстрация онлайн-обучения в реальном времени, которая обучает одного человека на пограничном устройстве.
Что мне в нем нравится:
Во-первых, в отличие от FaceNet и DeepFace, OpenFace имеет открытый исходный код. Во-вторых, разработка модели была сосредоточена на распознавании лиц в реальном времени на мобильных устройствах, поэтому вы можете обучать модель с высокой точностью с очень небольшим количеством данных на лету. Он не требует много человеческих ресурсов, он показал впечатляющую производительность в тесте Labeled Faces in the Wild (LFW).
Не менее важным преимуществом является то, что есть отличная документация, просто хороший пример хорошо организованного git-проекта.
Полезные ссылки для реализации:
- Настройка — OpenFace
- Документация по API
- OpenFace на GitHub
- Распознавание лиц OpenCV
- Информация о Длибе
- Информация о Факеле
- Код доступен на GitHub по адресу cmusatyalab / openface.
- Присоединяйтесь к cmu-openface group или gitter chat для обсуждения и проблем с установкой.
- Обсуждения разработки и отчеты об ошибках находятся в баг-трекере.
# 2 Kairos API
Еще один отличный бесплатный инструмент, который обещает не только определять лица, но и анализировать эмоции как на изображениях, так и на видео. Кроме того, есть и другие функции, такие как проверка лица, идентификация и распознавание нескольких лиц.
Как это работает:
Чтобы распознавать лица, он использует возможности компьютерного зрения и глубокого обучения. Очень просто использовать. Все, что вам нужно, это просто отправить изображения и / или видео в API, алгоритмы проанализируют найденные лица, а затем API вернет кучу полезных данных о лицах, которые он найдет.
Но есть кое-что, к чему нужно быть готовым. Этот инструмент принимает только несколько параметров: «image», «gallery_name», «subject_id», «selector». Это означает, что мы можем быстро создавать несложные HTTP-запросы. Кроме того, параметр «изображение» принимает общедоступный URL-адрес, загружаемый файл или фотографию в кодировке base64.
Пример того, как работает Кайрос в действии:
Кстати, вы можете попробовать в реальном времени самостоятельно.
Что мне в нем нравится:
Вам не нужно создавать собственную базу данных лиц или разбираться в сложных статистических алгоритмах. Все очень просто.
Полезные ссылки для реализации:
# 3 Лицо ++
Это еще один популярный API, который также имеет автономный SDK для iOS и Android. Однако автономный SDK не обеспечивает распознавание лиц, он может выполнять обнаружение лиц, сравнение, отслеживание и ориентиры.
Как это работает:
Все обнаруженные лица сохраняются в FaceSet. Face_token используется в качестве уникального идентификатора для распознавания лиц в этой системе. Есть 2 конечные точки:
- Распознавание лиц — обнаружение информации на данной фотографии (например, расположение лица, возраст, раса, пол и т. Д.)
- Face Landmark — Получите 1000 ключевых точек лица из загружаемого изображения или метки лица face_token, обнаруженной API обнаружения, и точно определите черты лица и контуры лица.
Что мне в нем нравится:
Обладает отличной точностью, надежной защитой от спуфинга, частым обновлением моделей. Помимо этого, он легкий и минималистичный в использовании.
Полезные ссылки для реализации:
# 4 фландмарк
Хотя это просто библиотека C с открытым исходным кодом, она полностью заслуживает вашего внимания. Все это потому, что он идет с интерфейсом к MATLAB, который можно использовать в Python.
Как это работает:
Каждый кадр обрабатывается отдельно программами Flandmark или Facial Landmark Software. Он основан на моделях деформируемых деталей (DPM) для структурированных выходных классификаторов. Программное обеспечение работает в Windows, Linux и Mac OS и лицензировано согласно GNU / GPL версии 3.
Что мне в нем нравится:
Он легкий и простой в использовании для простых задач, таких как проверка личности и измерение координат лица.
Полезные ссылки для реализации:
# 5 OpenBR
Это одно из новейших программ, поддерживающих разработку открытых алгоритмов и воспроизводимых оценок. Стабильная версия 1.1.0 программного обеспечения была выпущена 29 сентября 2019 года.
Как это работает:
OpenBR — это бесплатное программное обеспечение для обнаружения лиц, которое поддерживает разработку открытых алгоритмов и воспроизводимых оценок. Он работает в операционных системах на базе Windows, Linux, OS X и Raspbian. Кстати, проект лицензирован по Apache 2.0. Кроме того, он реализует алгоритм 4SF2 для распознавания лиц. Программные алгоритмы также работают для оценки возраста и пола.
Что мне в нем нравится:
Это полное программное обеспечение, совместимое с NIST, которое оценивает распознавание лиц, обнаружение и маркировку. OpenBR предоставляет C ++ API, который можно встроить в собственные приложения.
Полезные ссылки для реализации:
# 6 Macgyver API
Еще один хороший инструмент, который поможет вам с задачами, связанными с распознаванием лиц.
Как это работает:
Этот API предоставляет набор инструментов для обнаружения лиц и распознавания на изображениях. Предоставляемые возможности включают сравнение двух лиц (распознавание лиц), обнаружение присутствия лиц на изображении и возврат координат X, Y лиц, обнаруженных на изображениях.
Этот API использует машинное обучение и, в частности, глубокие сверточные нейронные сети, встроенные в TensorFlow.
Что мне в нем нравится:
Широкий выбор алгоритмов. Расширенные функции распознавания лиц и изображений, которые используются в приложениях.
Полезные ссылки для реализации:
# 7 OpenFaceTracker
Одно из самых интересных программ, потому что оно вдохновлено американским телешоу «Person of Interest». Оно обнаруживает одно или несколько лиц на видео или изображении и идентифицирует их через базу данных. Поставляется с лицензией lGPLv3 и стабильной версией 3.0.
Как это работает:
Программное обеспечение OpenFaceTracker разработано в виде модульной библиотеки. Следовательно, он может включать или отключать некоторую часть программного обеспечения. Он может получать и обрабатывать изображения в реальном времени с последующей идентификацией, наличием и доступными данными для печати. Для развертывания требуется Open-API, и он может работать в системе на базе Windows.
Что мне в нем нравится:
Он способен обнаруживать одно или несколько лиц на картинке или видео и идентифицировать их через базу данных. Функции этого программного обеспечения включают, среди прочего, обработку изображений в реальном времени, идентификацию лиц, возможность работы в системе Windows.
Полезные ссылки для реализации:
# 8 Rekognition API
И последнее, но не менее важное API, который предлагает услуги для обнаружения, распознавания, маркировки и поиска лиц и концепций, а также категоризации сцен на любой фотографии через RESTFUL API.
Как это работает:
Он обнаруживает надписи — объекты (например, люди, автомобили, мебель, одежда, домашние животные), сцены (например, лес, пляж, городская улица) или концепции (на открытом воздухе), действия (например, игра в футбол, катание на коньках). Вы можете обнаружить человека на фото или видео, определить ориентиры на лице, выраженные эмоции и сохранить метаданные лица. Кроме того, вы также можете сравнить лицо на изображении с лицами, обнаруженными на другом изображении.
Что мне в нем нравится:
Это многофункциональный инструмент, который можно использовать не только для обнаружения лиц, но и для распознавания сущностей, объектов и даже действий. Кроме того, с помощью ReKognition вы можете смешивать и сопоставлять источники фотографий с идентификаторами пользователей, что может позволить вам, скажем, распознавать объекты на фотографиях Facebook и Flickr.
Полезные ссылки для реализации:
Нижняя линия
Все инструменты по-своему хороши. Некоторые из них совершенно бесплатны, а для некоторых потребуется заплатить деньги за добавление всех пакетов функций. Так или иначе, я надеюсь, что с помощью этой статьи вы сможете выбрать наиболее подходящие инструменты в соответствии с вашими потребностями. Если у вас есть какие-либо вопросы, не стесняйтесь оставлять их ниже в качестве ответа.
Спасибо за чтение, я благодарен за любые отзывы, которые вы могли бы получить. Не стесняйтесь подписываться на меня или читать другие мои статьи в Linkedin.
Добро пожаловать в сообщество Волшебные люди, AI люди.
Источник: digitrain.ru