На сложном языке бизнес-задача звучит так — детекция людей с симптоматикой заболеваний на этапе прохождения досмотра в аэропортах и вокзалах с соответствующим информированием должностных лиц у рамок о наличии признаков заболевания для прохождения дополнительных проверок. Ожидаемый результат в краткосрочной перспективе – минимизация распространения короновирусной инфекции COVID-19 в рамках локальных и международных железнодорожных, транспортных и авиаперевозок.
В качестве способа реализации мы рассмотрели вариант с применением объектовой видеоаналитики для детекции наличия внешних признаков заболевания (например, кашель, его длительность и количество приступов за все время пребывания) с камер видеонаблюдения. За счет применения нейронных сетей детекции, реидентификации и трекинга объектов в зонах видимости, а также сохранения признаков заболевания и их частоты, на этапе приближения конкретного человека к зоне досмотра, можно проинформировать персонал о необходимости дополнительных проверок (например, измерения температуры тела).
Почему Intel NUC?
Во-первых, уточним, что мы используем Intel NUC8i5BEK с процессором 8-го поколения Intel Core i5 и встроенной графикой Intel Iris Plus 655. Исполнение нейронных сетей в этом случае можно запускать на GPU, освобождая CPU под траекторный анализ. А в случае увеличения числа камер, направленных на устройство, можно дооборудовать комплекс ускорителями, например Intel NCS2.
Мы используем фреймворк Intel OpenVINO, т.к. он позволяет эффективно исполнять нейронные сети на процессорах Intel и, что важнее, – задействовать интегрированную графику Intel. Применяемая нами модель – это SSD Mobilenet v2, предобученная на датасете COCO. Для обучения модели использовался Tensorflow.
Собственно, почему мы выбрали NUC:
- Низкая стоимость процессоров 8-го поколения в комплекте с устройством, в отличие от рыночной стоимости компонентов по-отдельности.
- Высокая производительность в инференсе за счет наличия встроенной графики Iris Plus 655. Iris Plus 655 по производительности исполнения нейросетей на 25% выше Intel UHD Graphics 630, используемого в десктопных процессорах (от i5 8400 до i9 9900k).
- Наличие возможности увеличения числа обрабатываемых потоков за счет подключения ускорителей, например, Intel NCS2 без изменения топологии сети и фреймворка.
- Низкое энергопотребление при максимальной нагрузке: 28 Вт против 65 Вт у десктопного аналога.
- Возможность использования устройств в рамках серверной и облачной инфраструктуры.
Что мы сделали?
- Собрали и структурировали исходные данные для обучения (подготовили датасет).
- Обучили классификатор наличия внешних признаков заболевания на SSD Mobilenet V2.
- Конвертировали модель в Intel OpenVINO.
- Собрали каскад нейронных сетей под управлением Intel OpenVINO для последовательного выполнения следующих операций: детекция лиц и определение вероятности наличия признаков инфекции с фиксацией событий, их частотности и длительности.
Результат классификации – это вероятность наличия признака на фотографии или фрейме из видеопотока. Наглядный пример:
Проверить работу детектора и классификатора можно на боте в Телеграме — https://tlgg.ru/notcovid_bot. На вход бот принимает фотографию с камеры или галереи, а результатом отдает вероятность наличия кашляющего человека в кадре.
Далее, мы назначили зоны детекции на примере имеющейся под руками камеры. Получилось так:
Первая детекция – это лица, сетка из публичной и общедоступной модели model zoo, Intel OpenVINO. На OpenCV реализован траекторный анализ для удержания объекта (лица) в кадре. Далее, лица с расширением зоны передаются классификатору симптоматики и возвращается вероятность.
Мы фиксируем события (кашель) и их длительность. Предполагается, что на пункте пропуска за счет реидентификации лиц по 5 точкам (быстро, но не очень точно) можно будет уведомлять персонал транспортных узлов о необходимости дополнительных проверок (например, измерения температуры тела).
А что вы думаете о подобной идее?