В 2024 году команда 3DiVi Face SDK столкнулась с новым для себя вызовом: один из партнеров решил реализовать систему контроля и управления доступом (СКУД) с распознаванием лиц, используя для этого одноплатный компьютер от Forlinx.
Чтобы уложиться в существующие ограничения по времени на распознавание, нам нужно было портировать наши модели на NPU. У нас получилось, а NPU в целом оказался рабочим вариантом засунуть тяжелый процессинг в Edge-устройство.
Чтобы уложиться в существующие ограничения по времени на распознавание, нам нужно было портировать наши модели на NPU. У нас получилось, а NPU в целом оказался рабочим вариантом засунуть тяжелый процессинг в Edge-устройство.
Как работает распознавание лиц: базовый пайплайн
Нашему партнеру требовалась детекция лиц на видеопотоке с последующей верификацией (1:1). Чтобы чуть лучше понять, что это значит, давайте вспомним схему базового пайплайна распознавания лиц.

- Вначале модуль детекции находит лицо на изображении. Как правило, все детекторы лиц, которые сегодня используются в проде, являются сверточными нейронными сетями (CNN).
- Далее, находим ключевые точки лица. Эту операцию также выполняет нейронная сеть, иногда отдельная (Fitter), иногда та же, что осуществляет детекцию. В нашем случае – это отдельная сверточная сеть.
- После этого по найденным ключевым точкам лицо выравнивается во фронтальное положение. В данном случае эта алгоритмическая процедура выполняется в рамках создания биометрического шаблона.
- И, наконец, из выровненного изображения лица ещё одна нейронная сеть извлекает биометрический шаблон.
Требования к скорости распознавания и оборудованию
Часто мы можем пренебречь временем препроцессинга изображений, постпроцессинга результатов работы нейронной сети, а также временем сравнения двух шаблонов – всё это занимает считанные десятки миллисекунд. Самое долгое здесь – время инференса нейронных сетей. В нашем случае были задействованы три нейронные сети:
При этом, у нас были следующие ограничения по времени:
Казалось бы, ограничения вполне приемлемы. Но теперь давайте посмотрим, на чем же нам предстоит работать. Полюбуйтесь, OK3568-C.
- Face Detector
- Face Fitter
- Face Template Extractor
При этом, у нас были следующие ограничения по времени:
- Суммарное время работы Face Detector и Face Fitter – не более 40 мс.
- Извлечение шаблона и сравнение двух шаблонов – не более чем за 500 мс.
Казалось бы, ограничения вполне приемлемы. Но теперь давайте посмотрим, на чем же нам предстоит работать. Полюбуйтесь, OK3568-C.


Не самое производительное устройство, не правда ли?
Мы выбрали конкретные модели Face Detector, Face Fitter и Face Template Extractor из состава 3DiVi Face SDK и замерили время их работы. Результаты, представленные в таблице ниже, ожидаемо, не укладывались в заявленные ограничения по времени.
После этого мы перешли к инференсу на NPU.
Мы выбрали конкретные модели Face Detector, Face Fitter и Face Template Extractor из состава 3DiVi Face SDK и замерили время их работы. Результаты, представленные в таблице ниже, ожидаемо, не укладывались в заявленные ограничения по времени.
После этого мы перешли к инференсу на NPU.
Инференс на Rockchip NPU
Отметим, что инференс на Rockchip NPU может осуществляться в двух видах:
В ходе экспериментов мы получили следующие замеры времени:
- Дефолтный режим. При этом модели переводятся из Float32 в Float16, и происходит незначительная (зачастую) потеря точности.
- Инференс с квантизацией. При этом модели переводятся из Float32 в Int8, происходит потеря точности, иногда весьма ощутимая.
В ходе экспериментов мы получили следующие замеры времени:

А что же с качеством распознавания? Да, мы получили небольшую просадку, но после нескольких экспериментов квантизованная в Int8 модель все ещё может быть успешно применена в проде (датасет LFW).

Выводы
Подводя итоги, отметим, что использование NPU оказалось эффективным способом ускорения инференса моделей CV/ML. При этом небольшое снижение точности, не критичное для задачи контроля доступа, полностью оправдано соблюдением временных ограничений на распознавание.
Если в вашем проекте по распознаванию лиц нужен инференс на NPU, пишите смело. Будем рады помочь.