Распознавание лиц при помощи видеонаблюдения — автоматизированная безопасность. Охранные системы с функцией распознавания лиц: принцип работы, установка и сферы применения

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

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

  • подтверждение личности студента во время онлайн-экзаменов;
  • определение людей из «черного списка» на входе на стадионы и ночные клубы;
  • оплата товаров;
  • сохранение вашего места в очереди при посещении парка аттракционов;
  • разблокировка телефона или компьютера.

Что говорить, если в одной только Москве уже работает сеть из более 150 000 камер наружного видеонаблюдения. От них никуда не скрыться, и это заставляет людей задумываться, но масштабы «слежки» не настолько велики. Сеть использует мощную систему распознавания лиц, но для ее работы необходимо много энергии, поэтому в режиме реального времени работают всего 2-4 тысячи камер. Массовым слежением за населением пока только пугают, поэтому стоит сосредоточиться на реальных плюсах работы данной технологии. Но обо всем по порядку.

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

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

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

Пол Хоуи из NEC говорит, что их система распознавания лиц сканирует лица на предмет индивидуальных идентификаторов:

«К примеру, многие считают расстояние между глазами уникальной характеристикой. Или же это может быть расстояние от подбородка до лба и другие компоненты. Мы, в частности, учитываем 15-20 факторов, которые считаются важными, а также другие факторы, уже не настолько значимые. Создается трехмерное изображение головы человека, поэтому даже если она частично будет закрыта, мы все равно сможем получить точное соответствие. Затем система берет сигнатуру лица и пропускает ее через базу данных».

Стоит ли переживать о программах, распознающих лица?

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

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

Говоря о программном обеспечении, все они работают по-разному, но в основе своей используют похожие методы и нейросети. У каждого лица есть множество отличительных признаков (в мире невозможно найти два идентичных лица, а ведь сколько их было за всю историю человечества!). К примеру, программное обеспечение FaceIt определяет эти признаки как узловые точки. Каждое лицо содержит примерно 80 узловых точек, схожих с теми, что мы упоминали прежде: расстояние между глазами, ширина носа, глубина глазных впадин, форма подбородка, длина челюсти. Эти точки измеряются и создают числовой код - «отпечаток лица» - который затем попадает в базу данных.

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

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

На смену 2D пришло 3D-распознавание. Эта недавно появившаяся тенденция в программном обеспечении использует 3D-модель, обеспечивающую высокую точность распознавания лица. Запечатлевая трехмерное изображение поверхности лица человека в реальном времени, ПО выделяет отличительные черты - где больше всего выдаются жесткие ткани и кость, например, кривые глазного гнезда, носа и подбородка - для идентификации субъекта. Эти области уникальны и не меняются со временем.

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

  • Обнаружение: получение снимка при помощи цифрового сканирования существующей фотографии (2D) или видео для получения живой картинки субъекта (3D).
  • Центровка: определив лицо, система отмечает положение головы, размер и позу.
  • Измерение: система измеряет кривые на лице с точностью до миллиметра и создает шаблон.
  • Репрезентация: система переводит шаблон в уникальный код. Этот код задает каждому шаблону набор чисел, представляющих особенности и черты лица.
  • Сопоставление: если снимок в 3D и база данных содержит трехмерные изображения, сопоставление пройдет без изменений снимка. Но если же база данных состоит из двумерных снимков, трехмерное изображение раскладывается на разные составляющие (словно сделанные под разными углами двумерные снимки одних и тех же черт лица), и они конвертируются в 2D-изображения. И затем находится соответствие в базе данных.
  • Верификация или идентификация: в процессе верификации снимок сравнивается только с одним снимков в базе данных (1:1). Если целью же стоит идентификация, снимок сравнивается со всеми снимками в базе данных, что приводит к ряду возможных совпадений (1:N). Применяется тот или иной другой метод по необходимости.

Где используются системы распознавания лиц?

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

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

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

Волшебство? Технологии!

Особенно важным и интересным может быть развитие технологии распознавания лиц в сфере банковских переводов. На днях российский банк «Открытие» представил собственное уникальное решение, разработанное под технологическим брендом Open Garage: перевод денег по фотографии в мобильном приложении «Открытие.Переводы». Вместо того чтобы вбивать номер карты или телефона, достаточно просто сфотографировать человека, которому нужно сделать перевод. Система распознавания лиц сравнит фото с эталонным (делается, когда банк выдает карту) и подскажет имя и фамилию. Останется только выбрать карту и ввести сумму. Что особенно важно, клиенты сторонних банков также могут использовать эту функцию для переводов клиентам «Открытия» - отправитель переводов может пользоваться картой любого российского банка.

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

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

Если вы использовали в последние 10 лет какую-либо фотографию, то вы, вероятно, видели, как действует обнаружение лиц:

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

Обнаружение лица стало господствующей тенденцией в начале 2000-х годов, когда Пол Виола и Майкл Джонс изобрели способ обнаруживать лица , который был достаточно быстрым, чтобы работать на дешёвых камерах. Однако сейчас существуют намного более надёжные решения. Мы собираемся использовать метод, открытый в 2005 году , - гистограмма направленных градиентов (коротко, HOG ).

Для обнаружения лиц на изображении мы сделаем наше изображение чёрно-белым, т.к. данные о цвете не нужны для обнаружения лиц:

Затем мы рассмотрим каждый отдельный пиксель на нашем изображении последовательно. Для каждого отдельного пикселя следует рассмотреть его непосредственное окружение:

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


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

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

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

Но сохранение градиента для каждого отдельного пикселя даёт нам способ, несущий слишком много подробностей. Мы, в конечном счёте, не видим леса из-за деревьев . Было бы лучше, если бы мы могли просто видеть основной поток светлого/тёмного на более высоком уровне, рассматривая таким образом базовую структуру изображения.

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

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


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

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

Используя этот метод, можно легко находить лица на любом изображении:

Если есть желание выполнить этот этап самостоятельно, используя Python и dlib, то имеется программа , показывающая, как создавать и просматривать HOG-представления изображений.

Шаг 2. Расположение и отображение лиц

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


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

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

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

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


68 антропометрических точек мы располагаем на каждом лице

Ниже показан результат расположения 68 антропометрических точек на нашем тестовом изображении:


СОВЕТ ПРОФЕССИОНАЛА НОВИЧКУ: этот же метод можно использовать для ввода вашей собственной версии 3D-фильтров лица реального времени в Snapchat!

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

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

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

Шаг 3. Кодирование лиц

Теперь мы подошли к сути проблемы - само различение лиц. Здесь-то и начинается самое интересное!

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

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

Нам требуется научиться извлекать некоторые базовые характеристики из каждого лица. Затем мы могли бы получить такие характеристики с неизвестного лица и сравнить с характеристиками известными лиц. Например, можно обмерить каждое ухо, определить расстояние между глазами, длину носа и т.д. Если вы когда-либо смотрели телесериал о работе сотрудников криминалистической лаборатории Лас-Вегаса («C.S.I.: место преступления»), то вы знаете, о чём идёт речь:


Как в кино! Так похоже на правду!

Самый надёжный метод обмерить лицо

Хорошо, но какие характеристики надо получить с каждого лица, чтобы построить базу данных известных лиц? Размеры уха? Длина носа? Цвет глаз? Что-нибудь ещё?

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

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

Процесс обучения действует при рассмотрении 3-х изображений лица одновременно:

1. Загрузите обучающее изображение лица известного человека

2. Загрузите другое изображение лица того же человека

3. Загрузите изображение лица какого-то другого человека

Затем алгоритм рассматривает характеристики, которые он в данный момент создаёт для каждого из указанных трёх изображений. Он слегка корректирует нейронную сеть так, чтобы характеристики, созданные ею для изображений 1 и 2, оказались немного ближе друг к другу, а для изображений 2 и 3 - немного дальше.

Единый «строенный» шаг обучения:

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

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

Кодировка нашего изображения лица

Процесс обучения свёрточной нейронной сети с целью вывода наборов характеристик лица требует большого объёма данных и большой производительности компьютера. Даже на дорогой видеокарте NVidia Telsa требуется примерно 24 часа непрерывного обучения для получения хорошей точности.

Но если сеть обучена, то можно создавать характеристики для любого лица, даже для того, которое ни разу не видели раньше! Таким образом, этот шаг требуется сделать лишь один раз. К счастью для нас, добрые люди на OpenFace уже сделали это и предоставили доступ к нескольким прошедшим обучение сетям , которые мы можем сразу же использовать. Спасибо Брендону Амосу и команде!

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

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

Если есть желание попробовать выполнить этот шаг самостоятельно, то OpenFace предоставляет Lua-скрипт , создающий наборы характеристик всех изображений в папке и записывающий их в csv-файл. Можно запустить его так, как показано .

Шаг 4. Нахождение имени человека после кодировки лица

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

Это можно сделать, используя любой базовый алгоритм классификации обучения машин. Какие-либо особые приёмы глубинного обучения не требуются. Мы будем использовать простой линейный SVM-классификатор , но могут быть применены и многие другие алгоритмы классификации.

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

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


О, эти восхитительные картинки для обучения!

Затем я прогнал классификатор на каждом кадре знаменитого видеоролика на Youtube, где на шоу Джимми Фэлона Уилл Феррелл и Чед Смит прикидываются друг другом :

Сработало! И смотрите, как великолепно это сработало для лиц с самых разных направлений - даже в профиль!

Самостоятельное выполнение всего процесса

Рассмотрим требуемые шаги:

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

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

3. Пропустите отцентрованное изображение лица через нейронную сеть, обученную определению характеристик лица. Сохраните полученные 128 характеристик.

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

Теперь, когда вы знаете, как всё это работает, просмотрите инструкции с самого начала до конца, как провести весь процесс распознавания лица на вашем собственном компьютере, используя OpenFace :

Прежде чем начать

Убедитесь, что Python, OpenFace и dlib у вас установлены. Их можно установить вручную или использовать предварительно сконфигурированное контейнерное изображение, в котором это всё уже установлено:

Docker pull bamos/openface docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash cd /root/openface

Совет профессионала новичку: если вы используете Docker на OSX, то можно сделать папку OSX/Users/ видимой внутри контейнерного изображения, как показано ниже:

Docker run -v /Users:/host/Users -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash cd /root/openface

Затем можно выйти на все ваши OSX-файлы внутри контейнерного изображения на /host/Users/…

Ls /host/Users/

Шаг 1

Создайте папку с названием./training-images/ в папке openface.

Mkdir training-images

Шаг 2

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

Mkdir ./training-images/will-ferrell/ mkdir ./training-images/chad-smith/ mkdir ./training-images/jimmy-fallon/

Шаг 3

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

Шаг 4

Выполните скрипты openface из корневого директория openface:

Сначала должны быть выполнены обнаружение положения и выравнивание:

./util/align-dlib.py ./training-images/ align outerEyesAndNose ./aligned-images/ --size 96

В результате будет создана новая подпапка./aligned-images/ с обрезанной и выровненной версией каждого из ваших тестовых изображений.

Затем создайте представления из выровненных изображений:

./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/

Подпапка./generated-embeddings/ будет содержать csv-файл с наборами характеристик для каждого изображения.

Проведите обучение вашей модели обнаружения лица:

./demos/classifier.py train ./generated-embeddings/

Будет создан новый файл с именем./generated-embeddings/classifier.pk . Этот файл содержит SVM-модель, которая будет использоваться для распознавания новых лиц.

С этого момента у вас появляется работающий распознаватель лиц!

Шаг 5. Распознаём лица!

Возьмите новую картинку с неизвестным лицом. Пропустите её через скрипт классификатора, типа нижеследующего:

./demos/classifier.py infer ./generated-embeddings/classifier.pkl your_test_image.jpg

Вы должны получить примерно такое предупреждение:

=== /test-images/will-ferrel-1.jpg === Predict will-ferrell with 0.73 confidence.

Здесь, если пожелаете, можете настроить python-скрипт./demos/classifier.py .

Важные замечания:

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

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

Добавить метки

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

Комплексные системы безопасности

Единая платформа включает в себя модули охранно-пожарного оборудования, контроля и управления доступом, видеонаблюдения или охранного телевидения (СОТ). Функции последнего до недавнего времени ограничивались видеомониторингом и регистрацией ситуации на объекте и прилегающей территории, архивацией и хранением данных. Классические видеосистемы обладают целым рядом существенных недостатков:

  • Человеческий фактор. Неэффективная работа оператора при трансляции большого объема информации.
  • Невозможность оперативного вмешательства, несвоевременный анализ.
  • Значительные временные затраты для поиска и идентификации события.

Развитие цифровых технологий привели к созданию "умных" автоматизированных систем.

Сила в интеллекте

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

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

Программно-аппаратные средства

Для эффективной работы системы используют несколько типов IP-видеокамер с различными эксплуатационными характеристиками. Обнаружение объекта на подконтрольной территории фиксируют камеры панорамного обзора с разрешением от 1 Мп и фокусным расстоянием от 1 мм и наводят на него сканирующие устройства. Это более совершенные камеры (от 2Мп, от 2 мм), производящие распознавание по простым методикам (3-4 параметра). Для идентификации объекта используют камеры с хорошим качеством изображения, достаточным для применения сложных алгоритмов (от 5 Мп, 8-12 мм).

Наиболее популярные программные продукты для распознавания лиц "Face Интеллект" (разработчик - компания House Control), Face director (компания "Синезис) и VOCORD FaceControl (VOCORD) демонстрируют:

  • Высокую вероятность идентификации объекта (до 99 %).
  • Поддержку широкого диапазона углов поворота видеокамер.
  • Возможность выделения лиц даже в плотной пешеходной массе.
  • Вариативность составления аналитических отчетов.

Основы распознавания образов

Любые биометрические системы распознавания базируются на выявлении соответствия считываемых физиологических характеристик личности определенному заданному шаблону.

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

Алгоритм поиска лиц

Самая распространенная методика детектирования лиц - с использованием каскадов Хаара (наборов масок).

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

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

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

Технологии распознавания

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

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

Трехмерные технологии устойчивы к изменению светового потока, допустимое отклонение от фронтального ракурса - до 45 градусов. Здесь анализу подвергаются не только точки и линии, но и свойства поверхностей (кривизна, профиль), метрика расстояний между ними. Для работы таких алгоритмов необходимо максимальное качество видеозаписи с частотой до 200 кадров/с. Основу системы составляют стереовидеокамеры с матрицей от 5 мегапикселей, высоким оптическим разрешением и сведенной до минимума погрешностью синхронизации. Дополнительно они соединяются специальным тактирующим кабелем для передачи синхроимпульсов.

Состояние современного рынка систем

Первые ввиду их высокой стоимости, разрабатывались только для государственных военных объектов и лишь в середине 90-х годов стали доступны коммерческим организациям. Стремительное развитие технологий и позволило увеличить точность систем и расширить сферу их применения. На рынке нашей страны ведущие позиции принадлежат американским и западноевропейским производителям охранных систем. Лидером продаж является оборудование корпораций ZN Vision Technologies и Visionics. Наиболее перспективными среди отечественных разработчиков выглядят исследования и продукты компаний "Вокорд", NTechLab, "Солинг", ООО "ВижнЛабс" и группы "ЦРТ", которые, кроме прочего, занимаются еще и адаптацией зарубежных комплексов к российским условиям.

Компьютерный фейсконтроль

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

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

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

Тенденции и перспективы развития

Очень востребованы системы распознавания лиц в банковском секторе.

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

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

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

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

Московскую систему видеонаблюдения научили распознавать лица. Благодаря алгоритму, основанному на использовании нейросетей, видеозаписи с городских камер проходят анализ в режиме реального времени. Лица на записях сканируются, чтобы их при необходимости можно было сравнить с информацией в различных базах данных — например, в фотобазах правоохранительных органов, когда речь идет о поиске правонарушителя. Кроме того, такая аналитическая система может помочь правоохранительным органам при поимке преступника выстроить маршрут его передвижения по городу. Система сама подберет нужные видеозаписи с разных камер наблюдения, идентифицировав подозреваемого на видео. Столичная сеть состоит из 160 тысяч видеокамер и охватывает 95 процентов подъездов жилых домов. До конца года горожане смогут самостоятельно устанавливать на своих домах камеры и подключать их к единой системе видеонаблюдения.

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

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

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

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

Москвичи смогут подключать свои камеры наблюдения к общей городской сети. Эту опцию реализуют до конца года. Видео с таких камер будет передаваться в единый центр хранения и обработки данных (ЕЦХД), а записи с них могут быть использованы в качестве юридически значимого доказательства в суде.

В этом году к единому центру хранения и обработки данных дополнительно подключили более 3,5 тысячи камер. К единой системе подключены подъездные видеокамеры, камеры, установленные на территории и в зданиях школ и детских садов, на станциях МЦК, стадионах, остановках общественного транспорта и автовокзалах, а также в парках. Кроме того, до июня 2018 года в 25 подземных пешеходных переходах столицы появятся камеры видеонаблюдения. Записывающие устройства установят в подземных переходах, не связанных со станциями метрополитена и находящихся в ведении ГБУ «Гормост».

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

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

Итак. В статье я отвечу на несколько простых вопросов:

Как вы думаете, откуда создатели алгоритмов взяли эти базы?

Маленькая подсказка. Первый продукт NTech, который они сейчас - Find Face, поиск людей по вконтакту. Думаю пояснения не нужны. Конечно, вконтакт борется с ботами, которые выкачивают все открытые профили. Но, насколько я слышал, народ до сих пор качает. И одноклассников. И инстаграмм.

Вроде как с Facebook - там всё сложнее. Но почти уверен, что что-то тоже придумали.
Так что да, если ваш профиль открыт - то можете гордиться, он использовался для обучения алгоритмов;)

Про решения и про компании

Тут можно гордиться. Из 5 компаний-лидеров в мире сейчас два - Российские. Это N-Tech и VisionLabs. Пол года назад лидерами был NTech и Vocord, первые сильно лучше работали по повёрнутым лицам, вторые по фронтальным.

Сейчас остальные лидеры - 1-2 китайских компании и 1 американская, Vocord что-то сдал в рейтингах.

Еще российские в рейтинге itmo, 3divi, intellivision. Synesis - белорусская компания, хотя часть когда-то была в Москве, года 3 назад у них был блог на Хабре. Ещё про несколько решений знаю, что они принадлежат зарубежным компаниям, но офисы разработки тоже в России. Ещё есть несколько российских компаний которых нет в конкурсе, но у которых вроде неплохие решения. Например есть у ЦРТ. Очевидно, что у Одноклассников и Вконтакте тоже есть свои хорошие, но они для внутреннего пользования.

Короче да, на лицах сдвинуты в основном мы и китайцы.

NTech вообще первым в миру показал хорошие параметры нового уровня. Где-то в конце 2015 года . VisionLabs догнал NTech только только. В 2015 году они были лидерами рынка. Но их решение было прошлого поколения, а пробовать догнать NTech они стали лишь в конце 2016 года.

Если честно, то мне не нравятся обе этих компании. Очень агрессивный маркетинг. Я видел людей которым было впарено явно неподходящее решение, которое не решало их проблем.

С этой стороны Vocord мне нравился сильно больше. Консультировал как-то ребят кому Вокорд очень честно сказал «у вас проект не получится с такими камерами и точками установки». NTech и VisionLabs радостно попробовали продать. Но что-то Вокорд в последнее время пропал.

Выводы

В выводах хочется сказать следующее. Распознавание лиц это очень хороший и сильный инструмент. Он реально позволяет находить преступников сегодня. Но его внедрение требует очень точного анализа всех параметров. Есть где достаточно OpenSource решения. Есть применения (распознавание на стадионах в толпе), где надо ставить только VisionLabs|Ntech, а ещё держать команду обслуживания, анализа и принятия решения. И OpenSource вам тут не поможет.

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

Добавить метки


Top