Алгоритм программы распознавания лиц

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

Роман Фишман

Алгоритмы (технологии)

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

0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

1. Найти

Попытки научить компьютер находить лицо на фотографиях проводились еще с начала 1970-х годов. Было испробовано множество подходов, но важнейший прорыв произошел существенно позднее – с созданием в 2001 году Полом Виолой и Майклом Джонсом метода каскадного бустинга, то есть цепочки слабых классификаторов.

Хотя сейчас есть и более хитрые алгоритмы, можно поспорить, что и в вашем сотовом телефоне, и в фотоаппарате работает именно старый добрый Виола – Джонс. Все дело в замечательной быстроте и надежности: даже в далеком 2001 году средний компьютер с помощью этого метода мог обрабатывать по 15 снимков в секунду. Сегодня эффективность алгоритма удовлетворяет всем разумным требованиям. Главное, что нужно знать об этом методе, – он устроен удивительно просто. Вы даже не поверите насколько.

Как работает РАСПОЗНАВАНИЕ ЛИЦ? | РАЗБОР

РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

  1. Шаг 1. Убираем цвет и превращаем изображение в матрицу яркости.
  2. Шаг 2. Накладываем на нее одну из квадратных масок – они называются признаками Хаара. Проходимся с ней по всему изображению, меняя положение и размер.
  3. Шаг 3. Складываем цифровые значения яркости из тех ячеек матрицы, которые попали под белую часть маски, и вычитаем из них те значения, что попали под черную часть. Если хотя бы в одном из случаев разность белых и черных областей оказалась выше определенного порога, берем эту область изображения в дальнейшую работу. Если нет – забываем про нее, здесь лица нет.
  4. Шаг 4. Повторяем с шага 2 уже с новой маской – но только в той области изображения, которая прошла первое испытание.

0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ
0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

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

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

Урок #1 Python / Распознавание лиц OpenCV

Как собрать каскад? Хотя каждый этап наложения маски дает очень большую ошибку (реальная точность ненамного превышает 50%), сила алгоритма – в каскадной организации процесса. Это позволяет быстро выкидывать из анализа области, где лица точно нет, и тратить усилия только на те области, которые могут дать результат. Такой принцип сборки слабых классификаторов в последовательности называется бустингом (подробнее о нем можно прочитать в октябрьском номере «ПМ» или здесь). Общий принцип такой: даже большие ошибки, будучи перемножены друг на друга, станут невелики.

2. Упростить

Найти особенности лица, которые позволили бы идентифицировать его владельца, означает свести реальность к формуле. Речь идет об упрощении, причем весьма радикальном. Например, различных комбинаций пикселей даже на миниатюрном фото 64 × 64 пикселя может быть огромное количество – (2 8 ) 64 × 64 = 2 32768 штук.

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

Читайте также:
Рейтинг программ древо жизни

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

0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ
0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

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

Сдвигаем маску на фиксированный шаг, снова перемножаем и снова записываем среднее в карту признаков.
0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ
Пройдясь по всему изображению с одной маской, повторяем с другой – получаем новую карту признаков.
0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

Уменьшаем размер наших карт: берем несколько соседних пикселей (например, квадрат 2×2 или 3×3) и переносим на следующий уровень только одно максимальное значение. То же самое проводим для карт, полученных со всеми другими масками.

0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

В целях математической гигиены заменяем все отрицательные значения нулями. Повторяем с шага 2 столько раз, сколько мы хотим получить слоев в нейросети.

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

0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ
0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

3. Опознать

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

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

0 РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

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

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

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

Например, по информации конкурса MegaFace, в настоящее время лучшую точность показывает российский алгоритм deepVo V3 компании «Вокорд» с результатом в 92%. Гугловский FaceNet v8 в этом же конкурсе показывает всего 70%, а DeepFace от Facebook (Социальная сеть признана экстремистской и запрещена на территории Российской Федерации) с заявленной точностью в 97% в конкурсе вовсе не участвовал. Интерпретировать такие цифры нужно с осторожностью, но уже сейчас понятно, что лучшие алгоритмы почти достигли человеческой точности распознавания лиц.

Источник: www.techinsider.ru

Как работает распознавание лиц

У вас в телефоне наверняка уже есть технология распознавания лиц. Ещё она есть в городских камерах наблюдения, на заводах и военных объектах, в лабораториях и даже в автомобилях. Посмотрим, как они устроены.

Читайте также:
Какие есть программы для ретуши фотографий

Из чего состоит распознавание лиц

Чтобы машина узнала лицо с помощью камеры, нужны такие компоненты:

  1. Оптическая камера или лидар, чтобы получить изображение или объёмную карту лица.
  2. База данных с заранее проанализированными лицами.
  3. Алгоритм, который находит в кадре лицо.
  4. Алгоритм приведения лица к какому-то набору векторов.
  5. Алгоритм сравнения векторов с эталонами.

Теперь посмотрим детали.

Получаем изображение с камеры

Это самая простая часть, которая может даже не зависеть от алгоритма распознавания лиц. Задача компьютера — взять видеопоток с камеры, в реальном времени нарезать его на несколько кадров и эти кадры отправить в алгоритм.

Некоторые алгоритмы используют плоское изображение с камеры. Другие используют лидары — это когда лазерная пушка быстро-быстро стреляет лазером во все стороны и измеряет скорость возвращения лучей. Получается не слишком точная, но в некоторой степени объёмная картинка. Часто её совмещают с изображением основной камеры, чтобы убедиться, что перед нами действительно человек, а не его фотография.

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

Некоторые алгоритмы вычисляют трёхмерную модель на основании поворота головы. Прямо говорят: посмотрите налево, посмотрите направо, приблизьтесь, отдалитесь. Так они пытаются построить более точную объёмную модель лица. Всё это — для безопасности.

Источник: dzen.ru

Как это работает. Алгоритм распознавания лиц

Как это работает. Алгоритм распознавания лиц

Алгоритм распознавания лиц компании NtechLab, технологического партнера Госкорпорации Ростех, признан лучшим в мире . Технология стала победителем конкурса Face Recognition Vendor Test Национального института стандартов и технологий Министерства торговли США. Это не первая победа NtechLab на международных конкурсах, а разработки компании уже успешно используются для повышения комфорта и безопасности жителей «умных городов» по всему миру. Что такое распознавание лиц, как работают алгоритмы и какое будущее у этой технологии – в нашем материале.

Физиогномика по-научному

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

bfec7ad44e9733103b25a1fb09f3d0e4.jpg

Известно, что новорожденные дети практически с момента своего появления на свет отличают человеческое лицо от других объектов, затем очень быстро запоминают лицо матери и учатся распознавать человеческие эмоции. В течение жизни этот навык сохраняется – мы легко отличаем лица знакомых, по одному выражению лица можем определить настроение человека. Логично предположить, что вслед за другими умениями и эту нашу способность со временем ученые должны были «оцифровать», чтобы наделить ей машины.

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

Где нужно распознавать лица

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

540f8a65e649ec5a0ec7f080fabd8719.jpg

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

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

Читайте также:
Программа postman как пользоваться

Как это работает

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

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

7abccc8c7903c7da24afdb6f1feaf257.jpg

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

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

Лица российского рынка биометрии

Технологии распознавания лиц одновременно вдохновляют и волнуют. По данным экспертов, за последние несколько лет качество идентификации выросло в 50 раз. Растет и мировой рынок услуги: к 2024 году прогнозируется объем доходов в размере 7 млрд долларов. Системы распознавания вышли из академических кругов в большой бизнес и участвуют в мировой конкуренции. Свои технологии сегодня разрабатывают такие гиганты, как Apple, Amazon, Facebook, Google, Microsoft, IBM.

Крупнейшим российским поставщиком и одним из мировых лидеров услуг биометрии является компания NtechLab – технологический партнер Ростеха. За шесть лет из перспективного стартапа компания выросла до международных масштабов. Ее алгоритмы распознавания лиц по результатам независимых тестов многократно признавались лучшими в мире. Сегодня разработки NtechLab применяются более чем в 100 организациях 20 стран.

f389f4e097e367aaeec0ab2122869e9c.jpg

Основатель компании, молодой программист Артем Кухаренко начинал с того, что в качестве хобби создал софт, по фотографии определяющий породу собак. Следующим шагом стало нашумевшее приложение FindFace, появившееся в 2016 году и позволявшее любому желающему найти по фото профиль человека в соцсетях. Затем была первая международная победа распознающих алгоритмов и следующий виток развития NtechLab – взаимодействие с инвесторами и крупными партнерами.

Для создания комфортной и безопасной среды в Москве с 2017 года используется технология FindFace Security, встроенная в столичную систему видеонаблюдения. Интеграция технологии позволила существенно повысить эффективность поиска и задержания преступников правоохранительными органами. Во время проведения Чемпионата мира по футболу в 2018 году система позволила задержать более 180 правонарушителей, находившихся в федеральном розыске, а также предотвратить хищение спонсорского кубка. А с началом пандемии FindFace Security помогала находить нарушителей режима самоизоляции.

В мае этого года NtechLab в очередной раз подтвердила высокий уровень точности своих алгоритмов: компания победила в конкурсе алгоритмов распознавания лиц Face Recognition Vendor Test Национального института стандартов и технологий Министерства торговли США. Это тестирование на сегодняшний день является единственным общепризнанным мировым соревнованием подобного типа. Российская разработка соперничала с более чем ста алгоритмами из других стран и показала лучшие результаты. Победа NtechLab открыла новые возможности для международного развития компании и стала подтверждением высокого уровня отечественной IT-экспертизы. В ближайших планах компании − создание инструментов по выявлению с помощью камер агрессивных людей и детектирование пути человека.

В июне стало известно, что алгоритмы российского разработчика будут применяться на железных дорогах Индии. В течение месяца система распознавания лиц Ntechlab будет внедрена на 30 станциях наиболее загруженного участка Indian Railways. Согласно требованиям заказчика система должна обеспечивать одновременное распознавание до 50 человек в кадре. По словам представителей компании — партнера Ростеха, внедрение компьютерного зрения на объектах с потоком подобной плотности стало технологическим вызовом для системы Ntechlab, и она справляется с задачей.

События, связанные с этим

«Умный цех» для Ростеха

Источник: rostec.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru