Компания NtechLab предлагает коробочное решение FindFace для распознавания лиц и силуэтов людей, автомобилей и номерных знаков. Основные области применения — контроль доступа, предупреждение мошенничества, обеспечение общественной безопасности, поведенческая аналитика.
В базе данных FindFace хранятся векторы образов, которые представляют собой массивы чисел. На входе система получает видеопоток с камер наблюдения, определяет на них целевые образы — лица, силуэты, марки автомобилей, номерные знаки — и записывает новые векторы. Эти векторы система сравнивает с массивами чисел, которые уже есть в базе, а затем показывает результаты поиска.
В 2016 году FindFace существовал как действующий прототип и сталкивался с проблемами масштабирования и повреждения баз данных. При этом постоянно появлялись новые требования к функциональности и надежности. Чтобы превратить этот прототип в тиражируемый коробочный продукт, разработчикам предстояло решить ряд задач.
Чтобы выбрать наиболее производительное решение, команда NtechLab сравнила технологии от разных вендоров. Разработчики написали функцию сравнения двух векторов и провели замеры на базах до 10 миллионов образов. Лучшую производительность на сравнительных тестах показал Tarantool.
На сегодняшний день на основе Tarantool реализована биометрическая база данных, которая хранит биометрические образцы (векторы признаков) и события обнаружения лиц.
В продакшене используется шардирование с помощью отдельного сервиса, который ходит в Tarantool: то есть у него прописаны адреса всех серверов Tarantool и он определяет для какого запроса в какие экземпляры нужно сходить. При высоких нагрузках и требованиях к отказоустойчивости добавляются read-only реплики. Они разгружают master, так как забирают на себя поисковые запросы. Разработчики используют Tarantool как хранилище с быстрым доступом к определенному диапазону данных и возможностью фильтрации их индексами.
Как итог, поиск в базе биометрических векторов может происходить в следующих конфигурациях.
Сервис FindFace способен обрабатывать информацию с камер менее чем за 0,5 секунды, даже если в хранилище содержатся миллионы изображений. Полный проход по базе в поисках похожего образа перестал перегружать СУБД и стал занимать в шесть раз меньше времени. Причем Tarantool вобрал в себя сразу несколько функций: сохранение образов в базу данных, выполнение поиска по данным базам и реализация прямых запросов к базам данных.
Скорость распознавания и поиска одного из миллиарда изображений, при использовании быстрого индекса.
Более миллиарда образов может храниться в Tarantool.
образов в секунду обрабатывается при поиске и верификации с «обычным индексом» на одном шарде Tarantool (в боевых проектах количество шардов может измеряться сотнями и тысячами с параллельной обработкой).
Специалисты Tarantool свяжутся с вами по оставленным контактам