В один яркий солнечный день, когда на стройке работа просто кипит, всё вокруг ярко и позитивно, и прямо хочется вечерком пожарить шашлык, на объект проник бывший сотрудник одного из подрядчиков. Он прошёл мимо проходной, помахал рукой охраннику, который знал его в лицо (но не знал, что он уволен), и зашёл внутрь. Там он пошёл к своим друзьям из Центральной Азии. Через полчаса они уже жарили шашлык и наслаждались жизнью.
Нюанс в том, что костёр они развели между двух газовых баллонов.
Один из баллонов почему-то взорвался. Как говорится, ничего не предвещало, и вот баллон почему-то повёл себя нетипично. Если вы видели, как с этими баллонами обращаются в родных для героев рассказа регионах, то можете представить себе и их искреннее недоумение от произошедшего.
Все остались живы и даже более-менее целы (ничего необратимого). Шашлык улетел, но на орбиту не вышел. Шампуры не проткнули никого внизу и сбоку. А вот к неудавшимся космонавтам приехала полиция, скорая и чуть ли не Спортлото.
Пришлось побеспокоиться, но не так сильно, как в тот день, когда на стройку приезжала проверка от ФМС. Тогда выяснилось, что очень многие работают по документам братьев. То есть один в семье делает себе комплект бумаг, устраивается на стройку — а дальше вместо него ходит брат. Не близнец, но для отечественного неокортекса почти неотличимый.
За одного такого родственника на стройке накладывается штраф от 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 месяца. Вот их тесты. Мы знаем, что система отличает близнецов последние лет пять (тесты для сотрудников ФСБ, они же спрашивали, можно ли пройти по отрубленной голове — нет, нельзя, мышцы «обвиснут» и потеряют форму, и вообще там много интересных тестов). Понятно, что вендор заявляет данные для «тепличных» условий, но если закопаться в таблицы, видно, что там используются изображения хорошего качества.
На практике получить такие изображения получается не всегда, тем не менее, мы создали почти «тепличные» условия внутри бытовки с проходной.
Вся интеграция, управляющий софт и подготовка изображений — наша разработка. Интернет решению не нужен, вся связь по обычному медному кабелю внутри объекта. Но если его подключить — будет постоянный мониторинг, отчёты через электронную почту и удалённая помощь-поддержка для операторов второй линии.
Параллельно охрана выставила очень жёсткий режим проверки: теперь никаких «ну мне просто спросить», всё через пропуск, а любой пропуск — через занесение лица в базу данных.
Результаты
На практике обнаружилось, что поскольку отделка ещё не началась, «зелёные человечки» с объекта не выходят. Максимум — грязь, но это мы уже проходили на Чемпионате мира по футболу, там была фанатская раскраска. Распознавание лиц теперь больше ориентируется на геометрию лица и строит объёмную модель внутри ядра. Проблем с грязью не было. Небольшие синяки тоже не влияли: основные опорные точки — вокруг носа. Один пришёл вообще весь в солидоле, кажется, и мы ждали, что он не распознается. Но ничего, прошёл.
Очереди утром почти пропали. Раньше там скапливалась большая толпа, а теперь два турникета запускают 700 человек за час с учётом разбирательств с охраной и махания руками «ну мне же надо, там бригада ждёт».
Помещение пришлось чуть доработать, чтобы не было лишних засветок лица, камеры расставить так, чтобы не было перекрытий. Головные уборы (каски) и очки реально представляли проблему, но было введено правило, что всё это надо снимать перед проходом через турникет. Повесили таблички с рисунками.
Заказчик начал получать отчёты о фактическом количестве людей на стройке, что кого-то из подрядчиков очень сильно огорчило.
Про окупаемость системы я ничего сказать не могу, поскольку основной коммерческий случай — предотвращение штрафа ФМС в 500 тысяч и закрытия строительства на 14-90 дней. Система стоит дешевле этого штрафа, но проверки случаются нерегулярно, поэтому экономический эффект рассчитать сложно. Но старожилы говорят, оно того полностью стоит.
Собственно, конец рассказа.
Ссылки
- Турникеты с распознаванием лиц (очень старый пост)
- Распознавание номеров (очень старый пост)
- Кот-терминатор и приключения на проходной
- Как мы распознавали прорабов и тележки
- Разные детекторы видеоаналитики
- Поиск магазинных воров по лицам
- Большой Брат на производствах: детекция ношения касок, перчаток и котов на станке
- Моя почта — CROCVBIACEL@croc.ru.
Комментарии (81)
Disasm
19.08.2019 10:53Возникает резонный вопрос: почему сервера два, а не один? Неужели одна такая машина не способна всё переварить?
INedelskiy Автор
19.08.2019 11:08Можно, но тогда время ожидания значительно возрастет, а в час пик проход человека должен занимать не более 2 секунд, иначе люди на работу вовремя не попадут.
BigBeerman
19.08.2019 12:53Скажите это нашей СБ, время прохода через турникет ~25 секунд, потому что алкотестер, а на работу приезжает пара тысяч. Правда, турникетов 6 штук и приезжают все не одновременно, в течении пары часов, но поначалу бывало опаздывали
namikiri
19.08.2019 17:48С таким-то юзернеймом только алкотестеры и проходить!
BigBeerman
19.08.2019 17:51+1«Пить надо в меру. Д. Неру.»
Про алкотестеры можно отдельный пост писать, может, уважаемый INedelskiy поделится кейсами?
SmileyK
19.08.2019 11:05+1Где же видео, графики, результаты. Читал с ожиданием. ну вот сейчас будет экшен, а его не оказалось…
vassabi
19.08.2019 12:57… еще не делали расчеты для «типовая кпп с распознаванием лиц» (в виде контейнера)?
INedelskiy Автор
19.08.2019 14:40Типовую здесь сложно рассчитать, так как много зависит от схемы интеграции с турникетом, выбором камер под конкретный объект.
Напишите нам на почту свою задачу и мы сможем ее рассчитать.Nalivai
19.08.2019 15:38Так интересна именно вся система под ключ, чтобы можно было привести контейнер, поставить на стройке в случайном месте например, и пропускать, на вход базу сотрудников, на выходе график кто когда куда во сколько.
TimsTims
19.08.2019 22:41+4Ничего вы не понимаете в продажах :) Вы сначала скажите, что вы строите — а мы вам посчитаем. Жилой дом на 3 этажа? Одна цена. Высотный небоскрёб? Другая. Ничего плохого, просто выжимание максимума пользы из ситуации.
Panzerschrek
19.08.2019 14:01А как работники отреагировали на систему распознавания лиц? Есть информация?
INedelskiy Автор
19.08.2019 14:41Охранники поначалу ворчали, что не будет система работать и все останется по-старому: по пропускам и карточкам.
Но когда система сняла с них часть нагрузки и в час пик они только корректировали проход отдельных личностей, они ощутили плюсы решения.
Рабочим подрядчика нужно было объяснить один порядок входа и выхода, а дальше они ее подхватили. Быстро и прикладывать ничего не нужно к турникету.burzooom
19.08.2019 15:38А должны были опасаться снижения зарплаты и сокращения штата
akryukov
20.08.2019 09:54Так ведь система распознавания лиц не будет строить здание вместо рабочих.
General_Failure
20.08.2019 09:56Охранники должны были опасаться, а не строители :)
JesusChristsRaccoon
20.08.2019 10:28Ну в любом случае эта система не заменит живых людей, только упростит процесс и даст больше прозрачности.
Впрочем если вместо охранников установить пару турелей…
kvlsky
19.08.2019 14:26На этом строительном объекте нужно было:
Впускать на объект только тех, у кого есть пропуск.
Интересно было бы посмотреть сравнение false positive срабатываний системы и охранника, потому, что в примере про шашлыки проблема была как раз в этом.
Desavian
19.08.2019 14:37Чего-то я не понял… то есть охранники не распознают двух похожих братьев из южных республик, а проверяющие прям мгновенно? А они это как делают? Учитывая что даже по отпечаткам пальцев не выйдет, ибо у них только один комплект для изучения.
INedelskiy Автор
19.08.2019 15:00Охранники могут его просто пропустить как уже знакомого, так как на потоке глаз замыливается.
А проверяющие на то они и проверяющие, чтобы отлавливать такие расхождения в ходе проверки.
dimas
19.08.2019 16:26Но у проверяющих небось есть тот набор отпечатков, что привязан к документам…
Areso
19.08.2019 19:27А они прямо с мобильными сканерами выезжают на объекты?
Да и потом, не знаю как сейчас, но раньше вахтовики никакие отпечатки не сдавали (по крайней мере, из пределов ЕАЭС/ТС).dimas
19.08.2019 22:08Без понятия, я только предположил. Возить сканер, если идет целевая «охота» несложно, особенно если они «братьев» целенаправленно ловят… Как-то они должны их опознавать, особенно если фотографии несильно отличаются…
Yuriy_krd
20.08.2019 07:43Возить портативный сканер — нет никакой проблемы :) Посмотрите на модель Futronic FS80H — это сканер отпечатков пальцев размером с 2 коробка спичек, поставленных один на другой. Так что ноут с таким сканером привезти — не вижу сложностей.
shure348
19.08.2019 15:24А если я надену футболку на которой будут напечатаны лица, как система справится?
INedelskiy Автор
19.08.2019 15:24Алгоритм включает режим liveness, который отличает лицо живого человека от фотографии человека или его видео на гаджете.
tmin10
19.08.2019 15:35А для распознавания лиц используется нейронка вроде FaceNet?
Как проходит регистрация нового лица, сколько фотографий нужно, как долго переобучать сеть?INedelskiy Автор
19.08.2019 16:25-1Используем нейросеть нашего партнера – одного из лидеров рынка.
Для обучения сети нужны месяцы и миллион фотографий. Новое лицо заносится в базу через интерфейс web-приложения. А в качестве источника для получения фотографии на объекте используется web-камера.
akryukov
19.08.2019 22:59+2Уважаемые минусующие, напишите, пожалуйста, с чем вы не согласны. Я к этим людям никакого отношения не имею, но хочу понять что тут не так.
Gryphon88
19.08.2019 15:54Не было ли заказов от транспортников?
Amistad
19.08.2019 17:38У транспортников есть свои погремушки.
Про общегородскую систему распознавания в Москве и про то, как парня внесли в базу, чтобы просто следить за ним, но менты напутали и задержали его:
zona.media/article/2018/10/10/axelGryphon88
19.08.2019 17:59Я больше про маршруточников и водителей дальних автобусов: типа план отработали, а дальше в карман. Таксистам сейчас вроде сложнее левачить.
o-ranger
19.08.2019 17:18я правильно понимаю, что для распознавания используются алгоритмы американского вендора? российский findface не пригодился?
nuclight
19.08.2019 17:32До этого была система идентификации по рисунку вен на ладони. Это прямо классический случай, и мы уже в который раз приходим переделывать за такими системами… Всё гораздо интереснее: у электрика с точки зрения системы просто не было этого самого рисунка. Мы не знаем, как он добился такого уровня анонимизации, но сыграл один из двух факторов: либо то, что он постоянно скручивал провода голыми руками, либо то, что эти самые скрутки довольно регулярно били его током в пальцы в ответ
Вот тут комментарий врача хотелось бы. Наверняка рисунок вен (вен? не отпечаток пальцев?) таки был, а проблемы в системе или методе их обнаружения.tvr
19.08.2019 18:20Наверняка рисунок вен
По его венам текла уже совсем неMihhaCF
19.08.2019 18:46На сервере видеообработки тоже нейросеточка или без этого обошлись?
INedelskiy Автор
19.08.2019 18:47Тоже нейросеть для поиска и выделения лица.
tmin10
19.08.2019 21:39А насколько алгоритм OpenCV не подходит для этой задачи?
Arseny_Info
20.08.2019 00:42+1Строго говоря, OpenCV — не алгоритм, а библиотека с кучей алгоритмов на все случаи CV жизни. Фейс детекторы там тоже есть, но они сейчас явно проигрывают нейросетевым.
dkurt
20.08.2019 17:06+1И нейросетевые детекторы там тоже есть:
раз: https://github.com/opencv/opencv/tree/master/samples/dnn/face_detector
два-пять: https://github.com/opencv/open_model_zoo/tree/master/intel_modelsArseny_Info
20.08.2019 17:08OpenVINO != OpenCV :)
dkurt
20.08.2019 17:16+1Ну хотя бы раз-два (есть одна в оригинальном формате, чтобы можно было использовать как базу для тренировки: https://github.com/opencv/open_model_zoo/pull/69)
Yuriks111
19.08.2019 18:47Спасибо, интересно. Вопрос про безопасность:
Я так понимаю что храниться хэш сканирования 64 точек лица. Как в этом случае определяется вероятность совпадения? проверка хэш это только «да» или «нет».
Давно интересовал этот вопрос в отношении всех систем сканирования физиономии, например в банках.
INedelskiy Автор
19.08.2019 18:47Хэш хранит векторное описание лица по 64 точкам. Соответствие векторов в описании двух лиц и дает понимание о точности их совпадения.
BansheeRotary
19.08.2019 21:45+5А в какой момент все работники подписывают согласие на обработку своих биометрических данных? И имеют ли они возможность от этого отказаться, не потеряв работу?
Tomasina
19.08.2019 23:12+1В идеале — при отказе от ОБД работник не проходит автоматическую идентификацию и вынужден при каждом проходе удостоверять свою личность у вахтера и безопасника (у двоих — чтобы минимизировать человеческий фактор). Это займет около двух минут вместо двух секунд — думаю, быстро останутся только самые принципиальные.
mk2
20.08.2019 10:38Из прошлой публикации КРОК:
Секрет в одностороннем алгоритме. Нужно сохранить такой перцептивный хэш от лица, чтобы нельзя было по хэшу восстановить человека, но можно было по человеку получить такой же хэш. Там есть ещё пара юридических ухищрений и деталей про то, что нельзя хранить ряд идентификаторов. В итоге законы по ПД соблюдены. ФСТЭК давала нам подтверждение, что система видеораспознавания лиц не хранит персональные данные.
Tomasina
19.08.2019 23:14очень многие работают по документам братьев. То есть один в семье делает себе комплект бумаг, устраивается на стройку — а дальше вместо него ходит брат.
А первый что тогда делает? Не вижу изюминки.o-ranger
19.08.2019 23:29+1человек с документами оформляется на вторую-третюю-четвертую работу, на которых в последующем работают его родственники без документов
Tomasina
19.08.2019 23:37А что мешает им самим оформиться?
vedenin1980
20.08.2019 00:24+1Это вроде дорого и не так просто, нужна прописка, виза, подтверждения знания языка и т.п. Иначе не было бы множества нелегально работающих в России.
Displacer
20.08.2019 08:48Система стоит дешевле штрафа в 500 тыс. Нет ли здесь ошибки, Вы хотите сказать, что система распознавания на нейронной сети с видеокамерами, аппаратурой, отчетами и т.д. стоит меньше полумиллиона рублей?
kshshe
20.08.2019 10:06Думаю, стоит учитывать и остановку строительства, наверняка это выходит недешёвым.
INedelskiy Автор
20.08.2019 10:30В базовом варианте – да. К тому же, можно подключить систему как услугу из расчета на количество установленных камер. Штраф в 500 тыс. — минимальная сумма, их может быть несколько, а если стройку приостановят, то застройщик несет убытки на порядок выше.
ChemodaH
20.08.2019 15:31А что тут удивительного? У того же Ivideon распознавание лиц можно по подписке брать (от 1700 руб/канал). Из капитальных затрат остаются только камеры: ru.ivideon.com/face-recognition
Lsh
22.08.2019 22:49Портативный компьютер на базе процессора Intel i7
Всё считается на CPU? Что-то я не заметил в тексте ничего про видеокарту.
KinsleR
просто интересно — а сильно подбитый и опухший глаз?
INedelskiy Автор
Алгоритм на лице использует 64 точки. На практике фингал под глазом или сильно опухший глаз не оказывает значительного влияния. Точность определения практически не изменяется. Проводили опыт, закрывали глаз рукой. Получали доли процента падения точности распознавания.
saintbyte
Алгоритм или нейронная сеть?
INedelskiy Автор
[del]
GrWizard
подозреваю, что там не одни роботы на проходной работают и если сотрудник изменит внешность или ему её изменят, всегда можно решить вопрос через охрану.
LeshaVH
обкакаться смешная статья)
прямо стенд-ап комеди-клаб на хабре-специфики)
аффтар пиши исчо!
500 000р — это за систему под ключ с установкой и 2 компутерами?
Это очень дешево с учетом гарантийных обязательств и индивидуальности каждой установки — вы там не в убытках?
тут 250тыс только капитальные вложения…
думаю к концу гарантии будет понятно что в убыток)))
а вообще если заставлять снимать каски и очки — то одной камеры более чем достаточно
смотри в камеру нормально — или не пройдешь
вот и вся история
подошел — смотришь — нажал кнопку ПРОЙТИ
никаких видеопотоков и прочего — эти обработки улучшают систему в рамках погрешности
а весь рассказ с перекрытиями и тд — фигня — не работает оно на практике
а если 1 достаточно — то сразу получается достаточно 1 смартфона типа Огрызок XS
в рамках 2 секунд на человека — реально, потому 1000 точно в ОЗУ влезет)
на этот же сматрфон фотографировать, c него же печатать пропуск, в него же смотреться при входе-выходе
смартфон через wifi/cиний зуб может спокойно управлять и турникетом и оповещением охраны и всем чем угодно — даже смывом воды в клозете)
Как вам идея? и бесплатно…
Софт не сложный, никаких серверных и ничего такого, легко БД можно синхронизировать даже если интернета нет (просто симка и все тут)
Условия прохода по строгости — ровно такие же
Вот теперь 500 000 р — это обоснованная цена
Монтаж — на порядок проще
Возьмете на работу в качестве директора?
вот на одном смартфоне + пару ардуинок для управления я поверю в 500 000р
а ваша система фигня — слишком сложная, отказоустойчивоть очень фиговая из за кучи компонент
я могу продолжать бесконечно почему ваш велосипед шило)))
счас собакены с минусами набегут))) детишки)))
site6893
аж жииир с екрана потек! а давай ты еще раз прочитаеш текст, только внимательно:
500 000р єто за ОДНОГО человека, а не на весь объект стройки! Но штраф то еще ладно, а вот остановка работ на 3 месяца, это уже ОЙ!