Как стать автором
Обновить

Комментарии 48

Эээ, чего-то не увидел результат работы. Работает? Насколько быстро? Ложные срабатывания были?

Да, сейчас работает в тестовом режиме на одном из этажей нашего офиса. Достаточно быстро, соизмеримо с прикладыванием пропуска.

Ложные срабатывания есть. Иногда не узнает, иногда определяет человека неправильно. Отдел компьютерного зрения забирает фэйлы, дотюнивает модель.

А статистика есть? В скольких процентов случаев? Не пробовали добавлять самообучение — т.е. если система неправильно опознала, но человек приложил пропуск — сфотографированный при этом фейс дообучал модель?

Статистику сейчас прикручиваем. Но еще хотим добавить ручную обратную связь — показывать кнопку, на которую можно нажать если система сработала неправильно. Если человек распознался и дверь открылась, но опознался не тот человек, автоматически такую статистику не собрать.

Про статистику будет отдельная статья =)
Если человек распознался и дверь открылась, но опознался не тот человек

Вот это интересный вопрос — как такое происходит? Обыкновенный человек в роли распознавателя тоже бы ошибся в данном случае?

Суть в том, что фотография проходящего человека, грубо говорят, сравнивается с его фотографией в интранете. Я, лично, не всегда могу узнать человека в офисе, которого знаю по записям в интранете.

Это примерно как фотографии знаменитостей в глянце и в жизни.

Но вы же не перепутаете Бреда Пита с Брюсом Виллисом, даже в реальной жизни? Можете ж сказать — да, это актеры, так как видел в кино.


Тут вопрос в том, что если сторож знает обоих в лицо — как он может их перепутать?

Если сторожа познакомить с обоими, то он их не перепутает. А если показать фотографию, да не простую, а студийную, «улучшенную», то может и перепутать.

Это примерно как прийти на свидание в кафе, после знакомства в тиндере =)

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

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

Сейчас в работе несколько идей, как отличать человека от фотографии. К чему в итоге придем — расскажу как-нибудь в следующий раз =)

И как на хэллоуин в офис заходить?

На хэллоуин нужно заходить в бар =)
Не так давно летал с Lufthansa в Германию через Домодедово. На выходе не посадку приготовил посадочный, а оказалось что показывать и прикладывать уже ничего не надо. Подходишь смотришь в камеру, турникет открывается идешь в самолет. И Все.
А вы говорите в офис, тут международные рейсы уже с распознованием лиц.
Правда я не совсем понял, откуда у них данные для сопоставления. Не уверен что данных из биометрического паспорта достаточно.
Несколько лет назад ввели обязательную биометрию для стран Евросоюза. При первой визе после этого введения нужно было сдать отпечатки пальцев и сфотографироваться. Возможно из этой базы подтягивают. А вообще фотография в паспорте достаточно хорошая — можно и ее использовать.
Фотография уже есть в электронных загранпаспортах почти десятилетней давности. Оттуда можно её вытянуть, введя номер паспорта, как пароль. Пробовал через приложение play.google.com/store/apps/details?id=at.mroland.android.apps.imagedecoder&hl=en
Круто! Не знал =)
1. Жаль нет Веб-интерфейса, чтобы в личном кабинете попробовать сервис. Загрузил фото — получил детекцию сцен и объектов…

2. Ну раз Веб-интерфейса нет, есть пример на python.
smarty.py — cli утилита.
Для неё я должен сам составить URL к API.
Надо самому получить токен к сервису, обратившись к другому методу API передав в него данные входа в MCS, и токен поставить в URL…

Бросил это, внутри smarty.py никакого API готового нет, просто делаются HTTP запросы.
Я наверное ленивый.

3. И зачем токен отдельный? Почему как с S3 хранилищем нельзя, настроить токены в интерфейсе MCS? И не надо свои данные авторизации ко всему MCS…
1. Демо есть на странице лендинга для корпоративных пользователей biz.mail.ru/vision

2. Да, это просто обертка на http api для более удобного использования.

3. Тут не могу ответить, но ответственным людям комментарий показал.
А как СКУД в серверной узнает, какую именно дверь открывать?
У каждой двери один контроллер скуд на два считывателя: на вход и на выход. Ардуина проксирует эти считыватели через себя. Айпад посылает кроме кода пропуска еще и свое расположение, таким образом эмулируется проход с нужной стороны.
А, у вас там в серверную сходятся просто провода со всем считывателей, что ли?
Да, со всех 4х считывателей на этаже.
А кто формирует импульс на открытие двери, тот же болид? Это делается локально для каждого этажа? Где база пропусков, которым разрешен доступ хранится — на болидах или они ходят куда-то на центральный сервер за ней?
Есть центральный сервер, в который добавлюятся и удаляются пропуска. Новый список рассылается по болидам. При прикладывании пропуска болид сравнивает со своим списком — это сокращает время реакции.

И вообще, Влад, мы же это обсуждали в пятницу, когда ты приезжал =)
Вопрос: а распознавание лиц на основе OpenCV на чем работает (Haar, LBP, HOG, DNN)?
На это, наверное, лучше ответит документация по OpenCV
На сколько я помню, в OpenCV реализованы все эти методы. Вопрос — какой из них использовали конкретно вы?
Мы использовали OpenCV в наших первых стендах для детектирования лица, не для распознавания. Т.е. на видеопотоке мы искали лицо с помощью OpenCV, а после этого для распознавания отправляли в свою систему. Сейчас для детектирования лица используется механизм встроенный в iOS на iPad.
Понятно. Вы такими тонкостями не заморачиваетесь. Ладно, вопрос снимается.
Ходил на конференцию SmartMail Conf в марте. К сожалению, нейросеть обнаружила меня на 3-4 фотографиях, вместо 10+ (один и тот же фотограф был).
Это возможно. Когда нет эталонной фотографии, то Vision объединяет похожие фотографии в группы. Что было меньше ложных срабатываний там ставится достаточно высокий порог. Вам присылают фотографии, где вы наиболее похожи на ту, которую снял iPad в стойке.

Эту же особенность можно увидеть в приложении Облако. Оно может фотографии одного человека разделить на несколько персон. В Облаке эта проблема решена — там можно вручную выбрать несоколько персон и нажать «Объединить».
Немного непрофильный вопрос: а как вы списываете время на этот проект? У вас заведена какая-то специальная активность или в свободное время занимаетесь?
Я лично занимаюсь в свободное время в качестве хобби и ничего за это не получаю, кроме удовольствия =) Для ребят из Vision распознавание лиц это часть основной деятельности, они занимаются ею в рабочее время.
Спасибо, у нас в компании просто тоже есть активность по созданию разных итересных железок, в том числе думали о распознавании лиц, правда не для доступа (нет доверия к безопасности), а для мелочей вроде приветствия командированных коллег.
Было интересно, как такие активности строятся у других.

Зачем кодировать и отправлять весь поток с первой на вторую Raspberry Pi?
Почему бы на первой не делать OpenCV детект лица, делать crop и посылать в Vision?

Это было временное решение. Сначала сделали малину, которая распознавала поток с сетевых камер, а потом, когда поняли, что у них есть существенная задержка, заменили камеру на малину с камерой. Потом от этого ушли.
Так что, во втором варианте — достаточно подменить айпад на свою железку, просто присылающую айди/номер двери — и вперёд?
Это примерно так же, как подменить ридер пропусков, висящий около двери на свою железку, которая присылает айди и вперед.
Сначала мы попробовали сгенерировать писк на Raspberry Pi через gpio. Получилось крайне плохо. Поэтому решили вынести эту функцию отдельно от Raspberry Pi, подключив маленькую ардуино (на самом деле Iskra mini), к которой были припаяны пищалка и светодиод, через TTL прямо к колодке.

facetable Вот и пришли времена, когда вместо мультивибратора на двух транзисторах для генерации писка используется целый отдельный компьютер...


Здесь девочка отвернулась и прищурилась, а мальчик вообще в фуражке с тенью на половину лица. Но при этом нейронная сеть точно их распознала

Насколько спорим, что мальчика сеть распознала по тёмно-синей курточке с расплывчатым пятном над ней, а девочку — по двум белым пятнам (бантам) над головой?


Все нейросетевые/эволюционные алгоритмы имеют свойство находить требуемый от них результат неортодоксальными способами — но отнюдь не теми, которые от них ожидаются.


Так что скоро злоумышленники начнут наносить на лица пару-тройку полосок и проходить себе спокойно.


В общем, продолжайте, пожалуйста. Хакерам (которые с мозгами) ещё одна цель для взлома всегда пригодится.

Вот и пришли времена, когда вместо мультивибратора на двух транзисторах для генерации писка используется целый отдельный компьютер..

мультивибратор на двух транзисторах, 3х цветный светодиод, самодельная плата под все этом и минимум 4 ноги gpio от распбери. Кажется это будет сложнее и дороже, чем использовать готовый распаяный контроллер, который подключается по ttl.

Насколько спорим, что мальчика сеть распознала по тёмно-синей курточке с расплывчатым пятном над ней, а девочку — по двум белым пятнам (бантам) над головой?

Боюсь что все немножечко сложнее, чем вам представляется, но согласен на спор: могу прислать оригинал картинки и если вы сможете надеть темно-синюю курточку и сфоткаться так, чтобы используя Vision API, вы определились как парень на фото, я проставляюсь ящиком пива.
Кажется это будет сложнее и дороже, чем использовать готовый распаяный контроллер,

  1. Для лично Вас это, может быть, и будет "проще и дешевле". Но этот контроллер не из воздуха появился, а изготовлен на фабрике, которую надо было сперва разработать и построить.
  2. Лишняя точка отказа. Выйти из строя/оказаться отхаченным для компьютера на порядки проще, чем для мультивибратора.

если вы сможете надеть темно-синюю курточку и сфоткаться так, чтобы используя Vision API, вы определились как парень на фото,

Уверен, что смог бы ("всё можно наладить, если вертеть в руках достаточно долго" ©), но это будет стоить сильно дороже ящика пива (которое я, кстати, не пью).

Уверен, что смог бы («всё можно наладить, если вертеть в руках достаточно долго» ©), но это будет стоить сильно дороже ящика пива (которое я, кстати, не пью).

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

А я не соскакивал — я просто отметил, что предлагаемая награда непропорциональна усилиям, требуемым для её получения. У нас на иллинойщине ящик пива Perrier стоит 15 долларов. Час моей работы стоит не менее 50 долларов. Ваша задача потребует нескольких рабочих дней чисто на подготовку рабочего окружения.


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


Просто я уверен, что многие «эксперты» сильны только комменты на хабре писать.

  1. Я никогда не позиционировал себя как "эксперта" в данном поле.
  2. По моим наблюдениям, в обсуждении нейронных сетей и проч. постоянно происходит ошибка антропоморфизации, т.е. обсуждающий, видя входные данные и результаты, думает, например — "о, я вижу на этой картинке тигра — нейросеть наверняка вычленила из картинки усы, лапы и полосатый хвост и приняла такое решение", хотя на самом деле нейросеть вынесла такое решение, скажем, по чередующейся текстуре пикселей.

а такую штуку как Upboard не рассматривали? Вполне себе нормальный компьютер от Atom до Pentium, в формате малины.

да и подключить можно почти любой кастомный контроллер, точно также как к ней

Зарегистрируйтесь на Хабре, чтобы оставить комментарий