...

понедельник, 19 августа 2019 г.

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

Решение


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


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

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

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


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

Мы создали почти «тепличные» условия внутри бытовки с проходной.

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

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

Результаты


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

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

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

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

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

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

Ссылки


Let's block ads! (Why?)

Комментариев нет:

Отправить комментарий