Хабрахабр

Распознавание лиц на стройке

Он прошёл мимо проходной, помахал рукой охраннику, который знал его в лицо (но не знал, что он уволен), и зашёл внутрь. В один яркий солнечный день, когда на стройке работа просто кипит, всё вокруг ярко и позитивно, и прямо хочется вечерком пожарить шашлык, на объект проник бывший сотрудник одного из подрядчиков. Через полчаса они уже жарили шашлык и наслаждались жизнью. Там он пошёл к своим друзьям из Центральной Азии.

Нюанс в том, что костёр они развели между двух газовых баллонов.

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

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

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

А это кончается очень, очень печально для генподрядчика и заказчика. За одного такого родственника на стройке накладывается штраф от 500 тысяч рублей и выше, и стройка может быть приостановлена от 14 до 90 дней.

Именно после этого инцидента позвали нас решить задачу ИТ-средствами.

Да-да, это продолжение истории про кота-терминатора

Первые опыты были в виде турникетов с проекторами инфракрасной сетки, они делали 3D-сканирование лица (за счёт восстановления геометрии) и пропускали тех, кто в базе данных.

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

Это грязные лица, фингалы, махание руками перед лицом, перекрытия, каски, очки и всё прочее. Тогда система распознавания давала достаточно высокий процент ложноотрицательных случаев — до 2,5% было с нашей стороны. Мы не могли проконтролировать часть факторов, поскольку в той части проекта собирали данные с обычной камеры видеонаблюдения, чтобы сначала оценить масштабы проблемы.

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

На этом строительном объекте нужно было:

  1. Впускать на объект только тех, у кого есть пропуск. Если у бригады подрядчика пропуска на месяц — то ровно через месяц система перестанет их впускать. Железно.
  2. Впускать на объект только тех, у кого лицо соответствует образцу в базе данных. При выдаче пропуска сотрудник безопасности объекта проверяет документы и фотографирует человека на веб-камеру на терминале (примерно как при получении пропуска в Ленинскую библиотеку в Москве), и лицо почти сразу появляется в базе на сервере ядра распознавания.

Типовые ситуации:

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

Ещё каждый вечер руководителям отправляется отчёт о том, сколько было заявлено людей на работы и сколько пришло по факту. Это очень важно, потому что одно из самых больших мошенничеств подрядчиков — это заявить 50 человек, а по факту прислать на стройку 30. А после отчитаться про 50.

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

Что было до этого

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

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

В общем, остались только лица и радужки глаза.

А утром на стройку приходят автобусы, и с 7 до 8 нужно впустить примерно 600 человек. Радужки медленнее и чуть дороже.

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

Решение

На каждый турникет устанавливаются две камеры: одна смотрит на входящих, другая — на выходящих.


Место установки камеры.

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

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

Под нашу задачу вендор заявил 1 ошибку (ложноположительное и ложноотрицательное срабатывание) раз в 4 месяца. Вот их тесты. Мы знаем, что система отличает близнецов последние лет пять (тесты для сотрудников ФСБ, они же спрашивали, можно ли пройти по отрубленной голове — нет, нельзя, мышцы «обвиснут» и потеряют форму, и вообще там много интересных тестов). Понятно, что вендор заявляет данные для «тепличных» условий, но если закопаться в таблицы, видно, что там используются изображения хорошего качества.

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

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

Параллельно охрана выставила очень жёсткий режим проверки: теперь никаких «ну мне просто спросить», всё через пропуск, а любой пропуск — через занесение лица в базу данных.

Результаты

На практике обнаружилось, что поскольку отделка ещё не началась, «зелёные человечки» с объекта не выходят. Максимум — грязь, но это мы уже проходили на Чемпионате мира по футболу, там была фанатская раскраска. Распознавание лиц теперь больше ориентируется на геометрию лица и строит объёмную модель внутри ядра. Проблем с грязью не было. Небольшие синяки тоже не влияли: основные опорные точки — вокруг носа. Один пришёл вообще весь в солидоле, кажется, и мы ждали, что он не распознается. Но ничего, прошёл.

Раньше там скапливалась большая толпа, а теперь два турникета запускают 700 человек за час с учётом разбирательств с охраной и махания руками «ну мне же надо, там бригада ждёт». Очереди утром почти пропали.

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

Заказчик начал получать отчёты о фактическом количестве людей на стройке, что кого-то из подрядчиков очень сильно огорчило.

Система стоит дешевле этого штрафа, но проверки случаются нерегулярно, поэтому экономический эффект рассчитать сложно. Про окупаемость системы я ничего сказать не могу, поскольку основной коммерческий случай — предотвращение штрафа ФМС в 500 тысяч и закрытия строительства на 14-90 дней. Но старожилы говорят, оно того полностью стоит.

Собственно, конец рассказа.

Ссылки

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть