Привет, Хабр! Мы уже рассказывали о магазине с полностью автоматизированной системой покупок, который получил название «Пятерочки #налету». Но это далеко не все технологические проекты компании. Практически одновременно с новыми автономными «Пятёрочками» мы начали разрабатывать и систему биометрической оплаты. Покупателю достаточно посмотреть в камеру и всё — покупка оплачена. О том, как этот проект внедрялся и что из себя представляет, читайте в нашем новом материале – собрали всю начинку! Предпосылки: Сегодня у нас уже более 8000 касс самообслуживания, в более чем 2600 магазинах. Средняя доля трафика на кассах самообслуживания в магазинах Х5 превышает 32%. Каждое устройство оснащено камерой Intel Real Sense, позволяющей получить карту глубины и изображение в RGB и/или ИК-диапазонах. Сердце устройства – Intel Nuc (mini pc kit), которое позволяет устанавливать на него различные программные продукты для управления компонентами. Банки активно собирают биометрические данные и создают клиентские сценарии их использования. Как и было сказано выше, история биометрии началась одновременно с историей касс самообслуживания и автономными магазинами. В конце 2018 года команда топ-менеджеров X5 Group съездила в деловую поездку в Китай. Кроме автономных магазинов, представители компании обратили внимание на кассы самообслуживания с камерами, которые реализовывают оплату товара при помощи камеры, — покупателю достаточно посмотреть в объектив и всё, платеж проведен. Долго думать не стали, компания решила начать разработку касс самообслуживания. При этом на самом старте команда решила, что один из необходимых компонентов — 3D-камера, которую можно будет использовать в будущем для биометрии. Так мы стали производить кассы самообслуживания сразу со встроенной камерой (её стоимость около $150). То есть все кассы самообслуживания X5 получили камеру. Важный момент — для качественного распознавания подходит далеко не каждая камера. Такой модуль должен быть в состоянии распознать мошенничество и не допустить к системе «творческих личностей». По этой причине выбрали 3D-камеру, которая захватывает огромное количество точек для построения карты глубины — это лучшая на рынке защита от мошенников. Для этого выбрали камеру с поддержкой технологии RealSense от Intel. Ключевая особенность 3D-камер — это способность не только захватывать обычное графическое изображение, но и формировать карту глубины находящихся перед ней объектов. В самых простых вариантах задача вычисления глубины решается через сравнение смещения объектов на стереопаре. В более надёжных и дорогих решениях в камеру встраивают ИК-лазер, который непрерывно сканирует область видимости и по стереоскопическому изображению определяет расстояние до пятна засветки. Есть даже решения со встроенным лидаром. Но в любом случае, карта глубины позволяет программному обеспечению определить, что перед камерой находится не плоское изображение человека (например, фотография его лица, наклеенная на банку) а реальный объёмный объект. И вместе с высоким разрешением RGB-потока это позволяет реализовывать очень устойчивые алгоритмы антиспуфинга, обмануть которые возможно только с применением очень дорогого профессионального грима, наложение которого занимает многие часы работы очень редких специалистов,  Михаил Кучеренков, руководитель лаборатории инноваций Х5 Group. Кстати, в момент визита нашей команды в Китай там далеко не везде стояли RealSense. Здесь часто используют свои локальные решения, на которые за пределами КНР практически невозможно найти нормальную документацию. В общем, у них там свой «зоопарк», который нигде, кроме Китая, не используется. Что касается касс самообслуживания, то с ними проблем не было, мы достаточно быстро вышли в пилот. В тот момент, когда подбирали «железо» для касс, решили ставить Intel NUC с запасом ресурсов — чтобы систему можно было эксплуатировать несколько лет. Это была отличная идея — именно она позволила добавить оплату при помощи биометрии.   Во время внедрения касс самообслуживания представители «Сбера» рассказали, что у них есть готовый к выходу на рынок продукт «Оплата одним взглядом», в котором для проведения операции используется предварительная аутентификация Клиента по биометрическим данным геометрии лица. Всё это стало возможным благодаря  партнёрству Сбера и компании VisionLabs являющейся лидером в области высокоточных алгоритмов распознавания лиц. Все эти продукты решили монетизировать, развивать и продавать. Рассказ команды Сбера стал ещё одним толчком для развития платежной биометрической оплаты. Биометрия для нас не просто набор данных, которые мы обязаны собирать, в первую очередь это новый инструмент для наших Клиентов, который признан сделать Клиентский путь по получению услуг экосистемы Сбера удобным, безопасным и эффективным. Наш продукт, «Оплата одним взглядом» позволяет не только попробовать что-то новое, но и сэкономить время в таком повседневном действии, как покупка товаров в супермаркетах группы X5 Retail. Платежная биометрия является не мимолетным увлечением, мы верим, что это инструмент будущего, который планируем развивать и поддерживать, чтобы Клиенты всегда пользовались продуктами нашей экосистемы с удовольствием,  Пресс-служба Сбера. Ранее мы думали о биометрии, но не знали, стоит ли работать с распознаванием лиц. Дело в том, что кроме чисто технологических задачек есть ещё и законодательные. Согласно законам РФ, если распознаются и где-то хранятся биометрические персональные данные, то такая компания автоматически становится оператором биометрических данных. В этом случае выставляются очень жёсткие требования по аккредитации биометрической системы, что здорово усложняет работу. Сбер очень в этом помог, ведь он является крупнейшим в РФ оператором биометрических данных и обеспечивает оперативное реагирование на вводимые со стороны регулятора требования.   Стоит отметить, что процесс внедрения технологии распознавания лиц начался до того, как у нас появились тысячи устройств. На тот момент в 12 магазинах стояло 80 касс, это был пилотный проект. Аппаратно всё было готово, чтобы внедрить оплату с помощью платёжной биометрии. И мы начали выбирать решение для такой оплаты.  Первоначальную идею внедрения платежной биометрии предложил Сбер. У компании есть специальный терминал, который можно принести и подключить к кассе, используя затем для проведения оплат посредством биометрии.  Для проведения пилота, по нашему заказу VisionLabs изготовили устройство-сателлит LUNA POS, которое позволило оперативно запустить решение на кассах без доработок и посмотреть на работу продукта «Оплата одним взглядом». Во время его пилотирования совместно с командой X5 мы поняли, что решение не вписывается в концепт и требует значительных изменений в форма-факторе самого устройства и способе его монтажа в кассовой зоне, ведь менять саму кассовую зону – это колоссальные расходы и простои в работе торговой-площади. Но попробовав на себе новый инструмент команда X5 убедилась, что использование нового платёжного инструмента на новых КСО (с уже готовой аппаратной «начинкой») верное решение и сосредоточили силы именно на этом направлении, Пресс-служба Сбера. Инновационные команды компаний проработали эффективную архитектуру биометрического решения, благодаря чему удалось избежать установки дополнительных устройств. Согласно разработанной архитектуре, платёжная биометрия эффективно встраивается в существующее интеграционное взаимодействие между системами и требует осуществить минимальные доработки по поддержки новой команды на «Оплату одним взглядом». Лучшем решением для нас стала возможность не заниматься хранением и обработкой данных на стороне Х5, так как всё это взял на себя Сбер.  Данные, формируются и шифруются компонентами Сбера установленными на КСО и передаются через защищённый, выделенный канал связи между X5 Group и Сбером, Расшифровка и обработка данных осуществляется уже только в закрытом контуре банка, а на КСО возвращается результат операции без каких-либо персональных данных. Именно за это мы всё ухватились, что позволило обеспечить возможность масштабирования платежной биометрии в сжатые сроки и без дополнительных инвестиций.  Положительный момент — никаких дополнительных устройств не надо, достаточно просто записать программное обеспечение и тиражировать в любом масштабе на любые из наших касс самообслуживания в контуре компании, причём удаленно. В теории достаточно было обновить ПО и всё бы заработало. Правда, это лишь в теории. Как известно, планирование — это одно, а вот реализация проекта на практике — совсем другое. В нашем случае реализация идеи заняла около года. Вроде бы все кусочки есть, можно приступать. Однако большим препятствием для всех стали особенности работы с нейросетями, которые использовались в ядре VisionLabs и предназначенных в первую очередь для антиспуфинг данных из видео потока с камеры, которые изначально рассчитывались под более мощные вычислительные системы.  Адаптация ПО VisionLabs под новые условия работы потребовала много времени на разработку, оптимизацию и тестирование. Ну и поскольку касса с камерой — это устройство самообслуживания, то ПО должно показывать подсказки, чтобы любой покупатель с любым уровнем технической экспертизы смог понять, что система делает его фото, причём снимок должен получиться довольно специфический. Отсюда появляется необходимость в подсказках как стоять перед камерой: «Голову нужно повернуть влево, вправо, посмотреть вверх» и тому подобное. Только месяца через четыре удалось собрать воедино приемлемый с техническим заданием юзабилити интерфейс.   Проапгрейдить терминал нельзя, плюс терминалы разные поскольку их производят разные компании. Внутри разное железо, ПО — всё разное. Логичный выход — надо задачу чуть упростить, выбрать тип терминала, который оптимально подходит для решения этой задачи и используется максимально широко в Х5. Выбрали Verifon VX820, именно их стали ставить на все кассы самообслуживания. Программное обеспечение в целом, включая пользовательский интерфейс, организацию взаимодействия пользовательского интерфейса с приложением VisionLabs, чтобы выводился поток в режиме реального времени для покупателя, плюс банковский терминал, собрали где-то за шесть месяцев — к весне 2020 года. Работу начали в сентябре 2019 года. К марту 2020 закончили прототип — заработала первая касса самообслуживания, которая умела обрабатывать изображения. Работал тестовый контур с базой всего на два-три лица. Это были лица наших сотрудников. Всё шло неплохо, но тут пришел COVID, начали закрываться офисы, компании принялись переводить сотрудников на удалёнку. В нашем случае реализовать такое было сложно — если работаешь с торговым оборудованием, то нужно рядом с ним находиться, чтобы проверять и отлаживать. Поэтому работа очень замедлилась, но не прекратилась полностью (мы перебросили все силы на технологии для безопасности покупателей в магазине). Потом всё же нашли решение — элементы оборудования в последний день (до локдауна) на такси развезли по сотрудникам домой, чтобы они могли в режиме самоизоляции продолжать работу.  Тем не менее, COVID-19 на пару месяцев затормозил развитие проекта, но где-то летом 2020 года все основные вещи, связанные с ПО, были оттестированы, собраны и мы приступили к подготовке решения к роллауту. Нужно всё это теперь перевести на продуктив, что тоже не является слишком быстрым процессом.  В ходе подготовки проблемы полезли буквально изо всех щелей, поскольку до нас никто в РФ не делал ничего подобного в таком масштабе. Ниже — относительно короткий список технических проблем, которые являлись критически важными.  Проблема 1. Установили новую прошивку на терминал Сбера, протестировали… а он не может подключиться к серверу банка! То есть сейчас вот именно работает, а после ребута системы — нет. Неделю или две разбирались в причинах. Оказалось, что конфликтуют навешанные на UDEV-правила служебные скрипты, которые запускаются при обнаружении нового оборудования в среде Linux. Для подключения каждого вида терминала используются свои скрипты. В едином образе системы, естественно, лежат все скрипты для всех видов оборудования, создававшиеся годами. Ну и получилось, что с обновлённой прошивкой пинпада порядок инициализации устройств именно в процессе загрузки системы приводил к конфликтам: создалась одна символическая ссылочка, запустились скриптики, а терминал в процессе загрузки режим своего подключения почему-то сменил… Ещё один UDEV сработал и свою пачку скриптов запустил… И висит терминал без связи с процессингом, хотя все кусочки пазла вроде бы на своих местах и при «горячем» подключении терминала всё «ок». И как эту проблему лечить, скажите на милость?! Почти случайно разобрались, если честно. Проблема 2. На тестовом контуре всё работает. Переходим в прод. А фотография (пакет данных) не долетает через выделенный канал связи. Причина — тип шифрования, используемый Сбером в обновленном варианте прошивки, заблокирован системами Х5 в локальной сети. Несколько дней ушло на локализацию, потом новый большой кусок работы для десятков людей: поскольку X5 Group — компания очень большая, то для согласования изменений в сетевых настройках нужно проработать и отрисовать новую архитектуру, согласовать её у многих подразделений и собрать пачку подписей. Их мы получили, безопасники дали добро, админы начали перенастраивать. Заработало. Но пара недель на стопе.  Проблема 3. Работа камер на продуктивном контуре. Камера работает через раз: то идет видеопоток, то нет. Почему не идет?  Оказывается, установлена старая прошивка. Камеру надо перепрошить. Но не одну, а 8+ тысяч, разбросанных по всей стране. Значит, нужно разработать и протестировать скрипты, которые выполнят перепрошивку удалённо. Ищем решение — ура, есть специализированные утилиты от Intel. Загружаем утилиты, пытаемся запустить, но ничего не получается, поскольку они рассчитаны на новое ядро Linux. Начинаем апгрейдить ядро системы, снова пишем скрипты, чтобы всё корректно установилось, тестируем на 1 кассе, на 10, на 100… Не получилось, доработали. Уффф… Всё хорошо, ядро, наконец, обновилось и камеры отваливаться перестали. На эту проблему было потрачено ещё несколько недель.  Проблема 4. Тестируем в лаборатории на кассах самообслуживания. Всё хорошо, всем всё нравится. А приходит новый человек и задаёт вполне резонный вопрос: «А почему у вас изображение на экране зеркалится»? То есть человек поворачивает голову вправо, а на экране мы видим поворот налево. Оказалось, никто из ИТ-команды на это внимание не обратил. Нужно доработать. Ещё неделя. Проблема 5. В магазинах с какой-то периодичностью то одна, то вторая камера исчезают из системы. Сначала всё работает корректно, но потом, при очередном запуске биометрической оплаты, камеры нет в системе. Почему?  Оказалось, что у Intel в прошивке камеры заложены хитрые особенности по безопасности. Так, если ПО к этой камере подсоединилось и она начала отдавать видеопоток, то потом нужно в чёткой последовательности завершить сеанс взаимодействия. Если нет — камера уходит в какой-то странный режим и решить проблему можно только полным отключением камеры от питания. То есть полным обесточиванием кассы рубильником, потому что при простой перезагрузке управляющего ПК USB-hub не обесточивается. Что с этим делать?  Системщики нашли решение, за две недели научились управлять портами USB-хаба на низком уровне, подавать команду, которая полностью отключает и включает на определённом порту питание. Хабы, к счастью, оказались достаточно «умные», с этой функцией. Хотя в требованиях никто никогда это не предусматривал. Чуть позже Intel выпустил обновление прошивки камеры, решив проблемы, поэтому управление хабом осталось вынужденно достигнутым бонусом. Процесс отладки занял период примерно с июля 2020 года по декабрь 2020 года. Потом подготовка и тестирование скриптов массового удалённого обновления магазинов целиком, включая и обновление софта КСО, и перепрошивку банковских терминалов. Разработали, проверили… переделали, отладили… переделали, прогнали…  модифицировали, прогнали. Потом решение постепенно стали внедрять — сначала в 10 магазинах, потом — 100 и так далее.  Проект был полностью готов к промышленной эксплуатации и массовому внедрению к концу марта 2021 года. Вот список партнёров, благодаря которым крупнейшее внедрение биометрии в Европе стало возможным: Система биометрической оплаты создана на базе разработок Лаборатории инноваций Х5. Технология обработки видеопотока и сбора лицевой биометрии предоставляется компанией VisionLabs. Международная платежная система VISA является стратегическим партнёром проекта. Сбербанк выступает оператором биометрических данных и банком-эквайером торговой сети. Intel — поставщик наших супер-камер и некоторых других компонентов касс. Результаты проекта: Пилотный запуск продемонстрировал высокий интерес покупателей к новому способу оплаты продуктов питания. Технология особенно востребована молодым поколением в возрасте 20–35 лет. По данным исследования VISA 70% россиян планируют платить при помощи лица в будущем. Подтверждена высокая степень защиты антиспуфинга от VisionLabs и Intel RealSense. Подтверждена возможность использования текущей интеграция с банком-эвайером через POS-терминал. Инновационный ритейл во многом определяется зрелостью, с которой бизнес работает с технологиями, готов и умеет использовать их для повышения своей эффективности. Покупатели сегодня как никогда ценят скорость обслуживания, что обусловлено общей логикой развития цифрового доступа к самым разнообразным товарам и услугам, уходом в онлайн и повышению требований к качеству сервиса. Мировой тренд, особенно активно проявившийся во время COVID, — активное проникновение систем самообслуживания с бесконтактными способами оплаты. Х5 внедрила сервис оплаты взглядом уже в 200 супермаркетах «Перекрёсток» в 25 регионах России, в том числе Санкт-Петербурге, Краснодарском крае, Нижегородской, Свердловской, Тюменской области и других. Сейчас технология оплаты с помощью биометрии действует на более чем 950 устройствах, ежедневно сервисом пользуются несколько сотен человек.  Удешевление технологии самообслуживания позволит применить максимально эффективное решение для повышения удобства совершения покупки. Согласно независимой аналитике рынка, оплата с помощью лица приводит к росту среднего чека, трафика в торговой точке и удовлетворённости покупателей (NPS). По первым итогам пилота мы видим рост интереса пользователей к данной технологии. В конце марта – начале апреля число транзакций в день составляло около 200, средний чек при этом был в районе 150-170 рублей. В июле число операций в день превышало 1500, средний чек при этом вырос до 500 рублей. Следующим шагом является адаптация кассового ПО торговой сети Пятерочка для внедрения технологии оплаты по лицу, что обеспечит возможность покупателям оплаты по лицу в тысячах магазинах торговых сетей Х5 Group, Иван Мельник, директор по инновациям Х5 Group.