г.Бишкек, 2009г. открывается новое казино.
Хозяева россияне. Управляющий грузный мужик - Прилежаев.
Начальник СБ - Маркин.
Служебный вход - вниз в подвал, там у нас все служебные помещения.
Прошло 2-3 дня с открытия, внизу возле служебного входа толпятся СБшники, а мимо них проходят люди туда-сюда, а им пофиг кто идет, откуда и зачем идет.
Увидел это управляющий и как начал орать при всех на начальника СБ:
- Я за что тебе плачу?! Это что за бардак на входе?! Почему они никого не проверяют?!
Да тут кто угодно может пройти, хоть Конь в пальто! и т.д."
Со следующего дня был жесткий контроль на входе!
Вспомнил эту историю, прочитав почти такую же историю из https://habrahabr.ru:
Началось всё с кота-терминатора. На начало операции мы знали следующее:
При строительстве здания с крупным продуктовым рабочая бригада завела кота, чтобы он ловил крыс.
После приёмки кот незнамо где заныкался, и уже три или четыре года его никто не видел.
Какая-то сволочь показала ему прямую взаимосвязь между открытым мешком кошачьего корма из торгового зала и появлением корма.
Появлялся он только на камерах — приходил ночью охотиться на мешки, причём как настоящий матёрый охотник, детей и самок не трогал, а брал только жирных самцов, то есть выбирал самые крупные мешки, неожиданно на них прыгал и вскрывал им брюхо.
Ему пробовали на ночь накладывать отдельную миску с кормом, но он был уже далеко не домашним, и отказаться от охоты не мог.
Кроме этого, кот любил крайне дорогой алкоголь: сотрудники догадались списывать на кота бутылки. Мол, уронил, уборщица уже осколки убрала.
Суммарный убыток он приносил примерно на 50–100 тысяч в месяц (да, это будет покруче, чем в нашумевшей истории про единоразовый обед кота на 1000 долларов в аэропорту Владивостока).
За поимку кота уже 4 месяца была награда в 5 тысяч рублей.
Мысль про алкоголь навела нас на идею о том, что стоит для начала проверить, насколько честны сотрудники. Так, слово за слово, мы поставили свою камеру на пункт пропусков в задней части магазина и начали смотреть на тех, кто заходит в здание.
Здесь и нас и операционного директора ждало несколько открытий, согласующихся с русским менталитетом. Когда мы для начала узнали, что происходит, мату главного просто не было предела.
Диспозиция
Итак, служебный вход магазина, на котором стоят две камеры, — одна смотрит на всех входящих, другая на всех выходящих. Турникет там поставить нельзя по требованиям пожарной безопасности, поэтому просто коридор, где стоит стойка для СКУДа. Сотрудники по логике должны проходить мимо будки охраны, прикладывать пропуск к стойке, а затем следовать внутрь.
Владельцу магазина было интересно считать перекуры, проверять всякие злоупотребления и фиксировать точное время прихода на работу. С этого момента и начался квест.
Итак, мы поставили свою камеру (обычную охранную) и снабдили её длиннофокусным объективом. Поставили далеко дальше по коридору, чтобы не смущала и позволила сохранить чистоту эксперимента. Сотрудники ещё двум камерам не удивились и событию значения даже не придали, чтобы было нам явно на руку.
Освещение внутри было стабильным, но нам поначалу в распознавании очень мешала дверь (сильно бликовала) — её мы попросили заклеить тёмной плёнкой.
И собрались снимать всех тех, кто заходил внутрь. Охота началась!
Дивные открытия
Через 2 недели мы сели с кадровиком магазина и начали разбирать по шагам, кто, сколько и как прошёл. Нашей задачей было сопоставить пропуска с лицами, чтобы потом спокойно распознавать людей. То есть мы собрали базу данных фотографий, а кадровик должен был назвать каждого по фамилии для обогащения этой базы.
Проходило так:
— Этого знаю, Алмазов… Этого знаю, Бокаев. Таааак, а это что за хрен вообще? Кто его пустил? Отметь, надо охране сказать. Оппа! Да это ж Иванов, он у нас три месяца уже не работает. Что он тут забыл? А это кто?
— Вот данные по СКУД. Погоди, тут четыре человека вообще.
— Да, это Петров. А ещё кто трое с ним?
В общем, выяснилось, что:
На объект каждый день проходят левые люди, иногда по несколько человек.
Сотрудники выходят обедать иногда пачкой в 4–8 человек, а затем один из них (самый молодой), возвращаясь с обеда, прикладывает всю пачку пропусков, чтобы они зачекинились обратно на работу. Бригада же приходит по факту часа на 2–3 позже.
Эти же молодые иногда утром (особенно по понедельникам) проделывали ту же операцию с пачкой пропусков.
Мимо охраны спокойно ходили уже уволенные люди, пользуясь тем, что охрана их запомнила (что они делали на своём бывшем месте работы, рассказывать, думаю, не нужно).
При этом сама охрана малоэффективно отсеивала левых — 300 человек собственного персонала, подрядные организации, поставщики (водители, экспедиторы и т. д.), лица не всегда «местной» наружности, то есть трудные для распознавания нашим отечественным неокортексом.
Средний показатель для сотрудника — обман компании на 2 часа в день. 2 часа на человека в день… 2 часа, Карл! Наш рекордсмен за две недели — один парень, который обманул компанию на 26 часов. На первые 16 его зачекинил коллега — он просто два дня не приходил, а потом он опаздывал с обеда.
Результатом наших посиделок стал вот такой отчёт (пример — статистика за неделю по сотруднику):
"На примере сотрудник отработал 3 дня по 4-5 часов!"
На каждую запись можно кликнуть и получить такой отчёт за сутки:
"Сотрудник за день прошел 3 раза - отработал 3-4 часа за день"
Директор посмотрел на всё это, помолчал, задумался, а потом вдруг посчитал сумму и начал долго, витиевато и очень громко материться. В итоге система, даже при всей кажущейся на первый взгляд дороговизне, окупается крайне быстро (максимум за 1,5 года), и это притом что мы сократим потери времени на 70% (100% было бы слишком амбициозным заявлением), без всякого учёта посторонних и прочего.
Техника
Камеры Cisco 6000P (хотя мы могли бы обойтись куда более «простыми» камерами, но циски уже были на месте). Всё это соединяется с сервером, где стоит софт для распознавания — VisionLabs Luna. Важно было выставить высокую скорость затвора (низкую выдержку), чтобы картинку не размазывало.
Из ручного режима мы сейчас переходим в автоматический, то есть делаем интеграцию со СКУДом и их кадровой подсистемой SAP, чтобы сразу лица заносить. Сейчас лица заносятся по первому проходу одного человека по одному новому пропуску и проверяются раз в неделю вручную эйчаром. В новом процессе они будут фотографировать людей на приёмке в штат.
Эмпирически мы установили, что для хорошего распознавания лиц нужно минимум 40 пикселей между бровями. Софту всё равно, кого распознавать, — отлично различает близнецов, китайцев и другие нерусские лица (в отличие от охранника, заточенного на европейскую внешность).
Ложноположительных срабатываний 0,5 процента. Это больше, чем в банках на веб-камерах их на стойках (там одна миллионная считается за норму). Но у нас реальный объект и далеко не тепличные условия. Уменьшить раза в два за счёт подбора дорогой техники можно, но это некритично.
Для корректного распознавания нужно также учитывать, что наши пассажиры очень любят махать руками, тусить и вообще тепло друг друга приветствовать в зоне проходной, поэтому нужно ставить небольшую задержку, иначе будут ложные распознавания вроде ситуации, когда человек почти вышел, потом увидел знакомого, обернулся, сделал несколько шагов к нему и поздоровался, а потом всё же ушёл.
Общие ошибки сравнения ручного контроля с кадровиком ещё через 2 недели и автоматического распознавания — 6,5%. Наших ошибок там около 2–3%, остальные ситуации чисто бытовые, которые должна фиксировать охрана: например, человек прошёл, но не приложил карточку (мы видим два входа, один выход). 2,6% приходятся на случаи, когда лица нет, а СКУД есть — это как раз наши (если не считать выбросы вроде парней в респираторах и закрывающих лицо так или иначе случайно, плюс пару человек с огромными фингалами после выходных).
За день до 2 тысяч проходов.
Почему нельзя биометрию по руке
Про то, как отпечаток пальца переносится скотчем или мимимишкой, наверное, рассказывать не надо. Желейный мишка позволяет даже пульс передавать и обладает нужной структурой для хитрых датчиков.
Биометрия по ладони неприменима даже в крупных офисах — если человек съест хоть что-нибудь жирное, то весь венозный рисунок поменяется, пока организм будет побеждать еду (это 7–8 часов другой руки).
Итог
Внедряем в боевую. Сейчас на левых людей делаем тревоги для охранника. Следующий шаг — наверное, распознавание известных магазинных воров на входе, чтобы потом всех их по всей сети распознавать, благо собрать картинки постфактум довольно легко.
К нашему некоторому неудовольствию, владелец магазина показал систему своим европейским коллегам (неготовую), и теперь они просят рассмотреть внедрение такой системы и у них. Мы-то хотели показать уже после 2–3 месяцев боевых испытаний — но нет. Кстати, у них забавная проблема: они не различают своих мигрантов с Ближнего Востока, которые у них основная дешёвая рабочая сила.
Кота ещё не поймали. Мы тут за него все переживаем.