Студентки Университета МИСИС создали кастомную нейросеть для определения наличия лиц на фотографиях и вычисления подлинных. Загружать изображения для проверки можно через специально разработанное веб-приложение, также предусмотрена возможность анализа в реальном времени через камеру компьютера. Для обучения нейросети использовались 16 500 настоящих и фейковых фотографий. Разработка, сделанная по заказу компании VK, получила первое место на хакатоне INNOGLOBALHACK.
Для решения задачи по созданию face anti-spoofing – комплекса защитных мер, направленных на предотвращение обмана систем защиты путем предъявления ей «ложного» лица – разработчики используют системы с применением внешних датчиков электронных устройств или анализом видео-отрывка, по которому можно определить, настоящее ли перед нами лицо и окружение вокруг него и др.
Перед студентами-участниками хакатона стояла задача – предложить систему проверки подлинности изображения лица только по изображению с использованием методов машинного обучения. Для решения было необходимо использование методов машинного обучения для предотвращения таких обманов, как фотографии лица в печатном и электронном виде, а также объемные маски, имитирующие черты лица человека (в области face anti-spoofing перечисленные варианты обманов можно объединить, как presentation attacks). Над задачей работали студентки 4-го курса Института компьютерных наук НИТУ МИСИС: Алиса Семенова @NeAlyssa, Алина Бурыкина@BurykinaA, Елизавета Борисенко@kokosikEH.
«Важным этапом разработки решения с использованием машинного обучения является поиск набора данных для обучения моделей (в данном случае речь идет о большом количестве фотографий с примерами как реальных лиц, так и «ложных»). Мы использовали один из самых популярных и больших наборов данных для нашей задачи CelebA Spoof, из которого мы, написав отдельную программу, выгрузили около 8000 подлинных и 8000 фейковых изображений с примерно равномерным распределением по типам обмана систем распознавания лиц. В основном набор был ориентирован на обман с помощью печатных фотографий и изображений на экранах электронных устройств», – пояснила Алиса Семенова, студентка 4 курса Университета МИСИС. – Также мы добавили в обучающую выборку самостоятельно собранный набор данных из 500 изображений с другими типами обмана: маски и персонажи мультфильмов, а также, в качестве дополнения, сами напечатали фотографии людей с различными внешними признаками, сделали их «ложные» изображения и добавили в нашу выборку. По итогу полученный набор данных содержал в себе 16500 изображений, что достаточно как для дообучения нейронных сетей, так и для обучения с нуля не очень глубоких сетей. Также мы исследовали вопрос оптимального соотношения площади лица на изображении ко всей картинке, остановившись на 60%».
Следующим этапом было исследование уже существующих подходов решения данной задачи, проведение экспериментов и адаптация существующих решений под небольшую модель, которая сможет быстро работать. Первостепенно разработчики выбрали сеть MobileNet для построения базового решения, так как ее преимуществами являются быстрота и способность понимать контекст изображения. Далее, изучив новейшие подходы к решению задачи, студентки решили дообучить сеть MiniFasNet, имеет ряд дополнительных преимуществ.
«Данная сеть справлялась с задачей лучше, чем предыдущая, но все равно ошибалась. Мы попробовали добавить к модели определение глубины на изображении, что дало увеличение точности работы сети. Определив преимущества и недостатки изученных сетей, мы пришли к нашему итоговому решению», – прокомментировала Алина Бурыкина, студентка 4 курса Университета МИСИС.
Участницы команды разработали кастомную нейронную сеть, представляющую собой двухступенчатую систему. На первом этапе используется предобученная нейронная сеть MTCNN, которая определяет положение лица на картинке. Затем на изображение добавляется специальное поле, 60% от площади которого составляет анализируемое лицо. Такое приближение дает значительный прирост в точности. Далее используется сеть InceptionResnet, благодаря которой были получены числовые представления особенностей лица. Это позволило избежать смещения в предсказании модели, которая помимо лица анализирует все изображение в целом. На втором этапе используется еще несколько слоев нейронной сети для отбора признаков изображения. Результаты двух этапов объединяются и проходят через несколько финальных слоев для получения окончательного вывода о подлинности изображения. Этот подход позволил команде достичь высокого значения точности (0.96 по метрике Macro-F1).
С помощью созданного участницами веб-приложения можно анализировать изображения лиц на подлинность, в том числе в режиме реального времени через камеру компьютера.
«Наша команда уже третий год участвует в различных хакатонах, но мы почти ни разу не пробовали свои силы в составе только трех человек. Когда узнали об INNOGLOBALHACK, совершенно спонтанно захотели поехать в Казань именно втроем. Из представленных на выбор заданий хакатона мы также захотели вместо классической продуктовой разработки, в которой мы уже достаточно уверенно себя чувствуем, попробовать поработать с машинным обучением. Это более узконаправленная тема, которая требует специальных знаний и навыков. Алина у нас в команде больше всех интересуется машинным обучением и давно его изучает. В итоге мы получили много нового опыта, работая над своим решением в команде и презентуя его перед членами жюри, и мы искренне не ожидали, что этот экспериментальный хакатон для нас закончится абсолютной победой. Огромное спасибо организатором! Мы работали в очень комфортных условиях и получили много удовольствия от самого процесса. А также наконец погуляли по Казани, поели чакчак с эчпочмаками и поигрались с роботами на улицах Иннополиса!», – поделилась впечатлениями Алиса Семенова.