/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.

