MTCNN: Когда нужно найти и выровнять лица за один проход

11 Oct, 2022

Репозиторий давно не обновлялся

Последнее обновление было 3 года назад.

Знакомы с ситуацией, когда нужно не просто обнаружить лица на фотографии, но и точно определить положение ключевых точек? Обычно это требует двух отдельных моделей и лишних вычислительных ресурсов. Проект MTCNN решает обе задачи одновременно, и делает это впечатляюще эффективно.

Что скрывается за аббревиатурой

Multi-task Cascaded Convolutional Neural Networks (MTCNN) — это нейросетевая архитектура, которая в одном проходе:

  1. Обнаруживает все лица на изображении
  2. Определяет их границы (bounding boxes)
  3. Находит ключевые точки (обычно 5 точек: глаза, нос, уголки рта)

Пример работы MTCNN

Почему разработчики выбирают MTCNN

Вот три причины, почему этот проект собрал почти 3 тысячи звезд на GitHub:

  1. Высокая точность: Каскадная архитектура последовательно уточняет результаты
  2. Реальная скорость работы: Оптимизированная реализация позволяет использовать в production
  3. Гибкость: Доступны реализации на разных фреймворках (Caffe, MXNet, PyTorch)

Технические особенности

Под капотом MTCNN использует три последовательные сети:

  • P-Net: Быстрый просмотр изображения для поиска потенциальных лиц
  • R-Net: Уточнение найденных областей
  • O-Net: Финальное определение границ и ключевых точек
% Пример вызова в MATLAB
[bboxes, landmarks] = detect_face(img, minsize, PNet, RNet, ONet, threshold, factor);

Где это можно применить

Практические сценарии использования MTCNN:

  1. Системы видеонаблюдения с распознаванием лиц
  2. Фоторедакторы для автоматической коррекции портретов
  3. Приложения дополненной реальности (фильтры для лица)
  4. Биометрическая аутентификация

Альтернативные реализации

Если MATLAB — не ваш выбор, обратите внимание на порты:

Стоит ли пробовать?

MTCNN — отличное решение, если вам нужно:

  • Быстро добавить детекцию лиц в свой проект
  • Работать с изображениями разного качества
  • Иметь предсказуемую производительность

Для задач, где критична точность, авторы рекомендуют комбинировать MTCNN с Center Face для распознавания.

Результаты работы MTCNN

Проект распространяется под лицензией MIT, что делает его отличным выбором для коммерческого использования. С более чем 900 форками и активным сообществом, MTCNN продолжает оставаться одним из самых популярных решений для работы с лицами.