В этом посте я покажу, как использовать MTCNN для извлечения лиц и черт из изображений.

Что такое MTCNN????

MTCNN или многозадачные каскадные сверточные нейронные сети — это нейронная сеть, которая обнаруживает лица и лицевые ориентиры на изображениях. Он был опубликован в 2016 году Zhang et al.

MTCNN — один из самых популярных и точных инструментов распознавания лиц на сегодняшний день. Он состоит из 3 нейронных сетей, соединенных в каскад.

Это реализация детектора лиц MTCNN для Keras в Python3.4+. Он написан с нуля, используя в качестве эталона реализацию MTCNN от Дэвида Сандберга (FaceNet’s MTCNN) в Facenet. Он основан на статье Zhang, K et al. (2016) [ZHANG2016].

Чтобы установить МТСНН

pip install mtcnn

Теперь давайте перейдем к реальной задаче

Код

Результат

Здесь у нас есть рамка вокруг лица.

Библиотеки:

matplotlib: для построения изображений и блоков.

mtcnn: это реализация детектора лиц MTCNN для Keras в Python3.4+.

Рабочий процесс кода

— Местоположение изображения

— Чтение изображения

— Создание объекта mtcnn

— Пропускаем изображение через детектор, чтобы получить результирующий бокс

— Нанесение рамки на изображение

Внутри функции draw_facebox():

Многое из этого не требует пояснений, но в основном оно возвращает координаты или значения пикселей прямоугольника, где алгоритм MTCNN обнаружил лица. Приведенное выше значение «прямоугольника» возвращает местоположение всего лица, за которым следует уровень «достоверности».

Если вы хотите использовать более продвинутые алгоритмы извлечения или алгоритмы, у вас будет доступ к другим ориентирам лица, также называемым «ключевыми точками». А именно модель MTCNN обнаружила глаза, рот и нос!

Нанесение рамки лица вместе с ключевыми точками глаз, носа и рта

Здесь мы просто убираем точки ключевого значения из результата и помещаем эти точки на изображение.

Результат

Здесь у нас есть рамка вокруг лица вместе с ключевыми точками, такими как глаза, рот и нос.

Гитхаб: https://github.com/saranshrajput/

Использованная литература: