В один яркий солнечный день, когда на стройке работа просто кипит, всё вокруг ярко и позитивно, и прямо хочется вечерком пожарить шашлык, на объект проник бывший сотрудник одного из подрядчиков. Он прошёл мимо проходной, помахал рукой охраннику, который знал его в лицо (но не знал, что он уволен), и зашёл внутрь. Там он пошёл к своим друзьям из Центральной Азии. Через полчаса они уже жарили шашлык и наслаждались жизнью.
Нюанс в том, что костёр они развели между двух газовых баллонов.
Один из баллонов почему-то взорвался. Как говорится, ничего не предвещало, и вот баллон почему-то повёл себя нетипично. Если вы видели, как с этими баллонами обращаются в родных для героев рассказа регионах, то можете представить себе и их искреннее недоумение от произошедшего.
Все остались живы и даже более-менее целы (ничего необратимого). Шашлык улетел, но на орбиту не вышел. Шампуры не проткнули никого внизу и сбоку. А вот к неудавшимся космонавтам приехала полиция, скорая и чуть ли не Спортлото.
Пришлось побеспокоиться, но не так сильно, как в тот день, когда на стройку приезжала проверка от ФМС. Тогда выяснилось, что очень многие работают по документам братьев. То есть один в семье делает себе комплект бумаг, устраивается на стройку — а дальше вместо него ходит брат. Не близнец, но для отечественного неокортекса почти неотличимый.
За одного такого родственника на стройке накладывается штраф от 500 тысяч рублей и выше, и стройка может быть приостановлена от 14 до 90 дней. А это кончается очень, очень печально для генподрядчика и заказчика.
Именно после этого инцидента позвали нас решить задачу ИТ-средствами.
Да-да, это продолжение истории про кота-терминатора
Первые опыты были в виде турникетов с проекторами инфракрасной сетки, они делали 3D-сканирование лица (за счёт восстановления геометрии) и пропускали тех, кто в базе данных.
Возможно, вы уже читали наш пост про первые внедрения системы распознавания лиц на проходных по видео. Краткий сюжет: большой магазин, несколько сотен человек персонала и ещё примерно треть от этого количества — грузчики, подрядчики, уборщики и прочие люди из аутстаффа, которые постоянно меняются. Задача была пропускать только своих и следить за тем, чтобы сколько людей прошло по турникету, столько пропусков и было. Многие уходили на обед вчетвером, а возвращался один с четырьмя пропусками. В среднем рабочий обманывал работодателя на 4 часа в неделю.
Тогда система распознавания давала достаточно высокий процент ложноотрицательных случаев — до 2,5% было с нашей стороны. Это грязные лица, фингалы, махание руками перед лицом, перекрытия, каски, очки и всё прочее. Мы не могли проконтролировать часть факторов, поскольку в той части проекта собирали данные с обычной камеры видеонаблюдения, чтобы сначала оценить масштабы проблемы.
С тех пор технологии шагнули далеко вперёд, и появилась возможность распознавать лица точно при большом перекрытии. Главное — иметь камеры достаточного разрешения и несколько кадров с лицом, из которых можно выбрать лучшие без перекрытий. Так мы начали ловить магазинных воров — вот этот детектив.
На этом строительном объекте нужно было:
- Впускать на объект только тех, у кого есть пропуск. Если у бригады подрядчика пропуска на месяц — то ровно через месяц система перестанет их впускать. Железно.
- Впускать на объект только тех, у кого лицо соответствует образцу в базе данных. При выдаче пропуска сотрудник безопасности объекта проверяет документы и фотографирует человека на веб-камеру на терминале (примерно как при получении пропуска в Ленинскую библиотеку в Москве), и лицо почти сразу появляется в базе на сервере ядра распознавания.
Типовые ситуации:
- По чужому пропуску пытается пройти другой человек. Тревога, охрана останавливает его и разбирается вручную.
- На объект пытается пройти бывший сотрудник. Охрана не пускает его.
- На объект пытается прийти сотрудник, которого не должно быть: охрана просит получить пропуск и приходить с ним.
Ещё каждый вечер руководителям отправляется отчёт о том, сколько было заявлено людей на работы и сколько пришло по факту. Это очень важно, потому что одно из самых больших мошенничеств подрядчиков — это заявить 50 человек, а по факту прислать на стройку 30. А после отчитаться про 50.
Ещё эти данные по фактическому количеству людей в духе «Сегодня должно было быть 600 человек, а пришло 450» помогают понять, что сроки уже срываются. Сразу, а не через неделю-две-три-месяц.
Что было до этого
До этого была система идентификации по капиллярному рисунку руки. Это прямо классический случай, и мы уже в который раз приходим переделывать за такими системами. Они плохо работают даже в стерильных офисах, куда сотрудники умудряются пронести чебурек. После контаминации чебуреком или любой другой жирной пищей этот самый рисунок меняется.
На нашей стройке было много рядовых людей с жирной пищей в организме, героев с грязными руками и один супергерой. Нет, у него не было проблем с аутентификацией из-за потери рук. Это было бы меньшей из его проблем. Всё гораздо интереснее: у электрика с точки зрения системы просто не было этого самого рисунка. Мы не знаем, как он добился такого уровня анонимизации, но сыграл один из двух факторов: либо то, что он постоянно скручивал провода голыми руками, либо то, что эти самые скрутки довольно регулярно били его током в пальцы в ответ.
В общем, остались только лица и радужки глаза.
Радужки медленнее и чуть дороже. А утром на стройку приходят автобусы, и с 7 до 8 нужно впустить примерно 600 человек.
Мы посидели пару дней на охране и записали всё то, что могло пригодиться для внедрения. Как ведут себя рабочие при приходе и уходе. Как быстро ходят через проходную. Что делают в момент прихода и ухода, идут ли друг за другом, носят ли каски, какая бывает погода на объекте и как влияет на их вид, перекрывают ли друг друга на турникете, как часто возвращаются разноцветными после лакокрасочных работ и так далее.
Решение
На каждый турникет устанавливаются две камеры: одна смотрит на входящих, другая — на выходящих.
Место установки камеры.
На территории объекта внутри периметра стоит небольшая охлаждаемая кондиционером серверная, у нас там стойка. В стойке — два сервера и коммутатор. Первый сервер принимает видеопоток камер и выделяет из него наиболее удачные кадры с лицами. Второй сервер получает «чистые» кадры с лицами и запускает на них ядро распознавания, сравнивая эти лица с базой людей.
Бизнес-логика крутится на первом сервере, там же рядом запущен софт управления турникетом. Если в кадре было только одно лицо, и оно имеет право прохода — турникет открывается. Если что-то не так — оповещается охранник.
№ п.п. |
Наименование |
Кол-во |
---|---|---|
1 |
IP камера, 2Мп, WDR, PoE |
4 |
2 |
Сервер видеобработки и Сервер приложений. Портативный компьютер на базе процессора Intel i7, 16 Гб RAM, 250 Гб SSD |
1 |
3 |
Сервер видеораспознавания. Портативный компьютер на базе процессора Intel i7, 16 Гб RAM, 250 Гб SSD |
1 |
4 |
Коммутатор 4-8 портов с поддержкой PoE, 100-1000 Мбит/с |
1 |
5 |
Web-камера, FullHD |
1 |
Вендор заявил 1 ошибку (ложноположительное и ложноотрицательное) срабатывание раз в 4 месяца. Вот их тесты. Мы знаем, что система отличает близнецов последние лет пять (тесты для сотрудников ФСБ, они же спрашивали, можно ли пройти по отрубленной голове — нет, нельзя, мышцы «обвиснут» и потеряют форму, и вообще там много интересных тестов). Понятно, что вендор заявляет данные для «тепличных» условий, но если закопаться в таблицы, видно, что там очень хорошая работа с конкретными камерами.
Мы создали почти «тепличные» условия внутри бытовки с проходной.
Ядро распознавания Luna, вся интеграция, управляющий софт и подготовка изображений — наша разработка. Интернет решению не нужен, вся связь по обычному медному кабелю внутри объекта. Но если его подключить — будет постоянный мониторинг, отчёты через электронную почту и удалённая помощь-поддержка для операторов второй линии.
Параллельно охрана выставила очень жёсткий режим проверки: теперь никаких «ну мне просто спросить», всё через пропуск, а любой пропуск — через занесение лица в базу данных.
Результаты
На практике обнаружилось, что поскольку отделка ещё не началась, «зелёные человечки» с объекта не выходят. Максимум — грязь, но это мы уже проходили на Чемпионате мира по футболу, там была фанатская раскраска. Распознавание лиц теперь больше ориентируется на геометрию лица и строит объёмную модель внутри ядра. Проблем с грязью не было. Небольшие синяки тоже не влияли: основные опорные точки — вокруг носа. Один пришёл вообще весь в солидоле, кажется, и мы ждали, что он не распознается. Но ничего, прошёл.
Очереди утром почти пропали. Раньше там скапливалась большая толпа, а теперь два турникета запускают 700 человек за час с учётом разбирательств с охраной и махания руками «ну мне же надо, там бригада ждёт».
Помещение пришлось чуть доработать, чтобы не было лишних засветок лица, камеры расставить так, чтобы не было перекрытий. Головные уборы (каски) и очки реально представляли проблему, но было введено правило, что всё это надо снимать перед проходом через турникет. Повесили таблички с рисунками.
Заказчик начал получать отчёты о фактическом количестве людей на стройке, что кого-то из подрядчиков очень сильно огорчило.
Про окупаемость системы я ничего сказать не могу, поскольку основной коммерческий случай — предотвращение штрафа ФМС в 500 тысяч и закрытия строительства на 14-90 дней. Система стоит дешевле этого штрафа, но проверки случаются нерегулярно, поэтому экономический эффект рассчитать сложно. Но старожилы говорят, оно того полностью стоит.
Собственно, конец рассказа.
Ссылки
- Турникеты с распознаванием лиц (очень старый пост)
- Распознавание номеров (очень старый пост)
- Кот-терминатор и приключения на проходной
- Как мы распознавали прорабов и тележки
- Разные детекторы видеоаналитики
- Поиск магазинных воров по лицам
- Большой Брат на производствах: детекция ношения касок, перчаток и котов на станке
- Моя почта — INedelskiy@croc.ru.
Автор: Игорь Недельский