/https%3A%2F%2Fs3.eu-central-1.amazonaws.com%2Fmedia.my.ua%2Ffeed%2F43%2Fb30e3b0681a50819a1f026c956f4f8fd.jpg)
Украинский стартап создал нейросеть, которая ищет лица без масок в толпе. И рассказал, как она устроена
Украинская IT-компания Fulcrum разработала нейросеть, которая умеет распознавать в толпе людей без медицинских масок.
Об этом AIN.
UA рассказали в компании.
Компания выложила код проекта на Git.
Hub, а также описала его процесс создания и технологии.
По словам backend-разработчика Сергея Калашникова, который работал над проектом, идея была в том, чтобы проверить: можно ли находить лица без масок только по веб-камерам.
Это — некоммерческий проект, по словам разработчика, командой двигало скорее любопытство.
На обучение нейросети ушло две недели.
Процесс ее создания разработчики описали в блоге.
Вкратце он выглядел так:.
В финальной версии нейросети использованы Tensor.
Flow 2 Nightly, OpenCV 2, Keras, Yolov3.
OpenCV — для обработки изображений и создания «квадратов» с масками.
Yolov3 — «мозг» нейросети.
Начинали с задания попроще: обучить сеть находить маски на изображениях, а потом уже двигаться к обработке видео.
В процессе создали два приложения.
Первое написано на Node.
js, используется для создания ярлыков.
Оно помогает составлять наборы данных и трансформировать координаты расположения объектов на картинке с Labelbox JSON в XML Yolov3-формат.
![]()
Для начала надо было определить точное положение маски (или любого объекта).
Для этого использовали сайт Labelbox.
Он удобен, поскольку генерирует файл с нужными настройками: расположением маски, размерами изображения, времени, которое потрачено на изображение, и т.
Эти файлы позднее попадают в одну из упомянутых программ.
![]()
Для Labelbox написали код, который парсит оттуда данные.
Они позднее распределяются по другим файлам, в представлении, необходимом для того, чтобы с ними работала нейросеть.
Программа также создает якоря на основании этих данных.
Их используют, чтобы определять высоту и ширину маски, и как ее масштабировать.
В итоге получается финальный набор данных с изображениями и подписями к ним.
Вторая программа написана на Python, она включает в себя Yolov3 и обучает нейросеть.
С помощью этого приложения разработчики создали свою модель распознавания объектов на изображении.
![]()
Максимальный размер для распознаваемого куска изображения установили на 288 px.
Это число может быть и больше, его выбрали небольшим ради увеличения скорости обработки.
epoch обозначает количество шагов для обучения.
30 шагов обучения заняли 12 часов времени (с размером изображения в 288 px).
![]()
Для видео пришлось писать отдельный скрипт.
Но он работал по тем же принципам, которые использовали для анализа изображений.
Он основан на Yolov3.
Также команда настроила openCV для загрузки видео и поиска кадров с определенной частотой.
Программа работает так: в определенную папку загружается видеофайл, и она начинает обрабатывать видео покадрово.
Веб-камеры обычно записывают короткие видео по 10-15 минут.
Эти видео можно было бы отсылать на сервер, где их будет обрабатывать похожий софт.
Это может пригодиться, если компания или организация, к примеру, хочет следить, чтобы все ее сотрудники носили маски.
Результаты работы сети можно посмотреть на видео:.
Нейросеть находит в толпе людей без масок.
Среди создателей — украинцы.
В Украине ужесточают карантин: в общественных местах — только в маске, в парки и на пляжи нельзя.
Рада разрешила собирать персональные данные украинцев без их согласия.
Это нужно для борьбы с COVID-19.

