Double Anchor R-CNN — это нейросеть, которая распознает людей в толпе. Алгоритм отдельно для каждого человека на снимке распознает тело и голову, а затем соотносит разметку. Модель обходит предыдущие подходы на задачах CrowdHuman, COCOPersons и CrowdPose.
Распознавание человека в толпе — это сложная задача из-за неопределенностей, связанных с окклюзией. Чтобы решить проблему окклюзии, исследователи предлагают отдельно распознавать тело и голову человека, а потом объединять разметку по парам.
Архитектура нейросети
Архитектура модели разработана поверх Feature Pyramid Network (FPN). Несмотря на это, модель можно подогнать под другие архитектуры: Faster R-CNN или Mask R-CNN. Обучение Double Anchor R-CNN состоит из следующих компонентов:
- Нейросеть, которая предлагает разметку для головы и тела объектов на снимке;
- Модуль для генерации обучающих примеров в высоком разрешении для R-CNN (proposal crossover module);
- Модуль для агрегации разметки голов и тел;
- Joint NMS алгоритм для пост-обработки
Сначала Double Anchor RPN размечает головы и тела на снимке. Признаки головы и тела агрегируются до финального предсказания. Joint NMS модуль используется для пост-процессинга. Одной из основных частей нейросети является Double Anchor RPN. У Double Anchor RPN есть дополнительный регрессионный слой, который предсказывает смещения для разметок головы и тела одновременно. Этого нет в базовой сети для поиска объекта на изображении.
Проверка качества модели
Исследователи проверили Double Anchor R-CNN на датасетах CrowdHuman, COCOPersons и CrowdPose. Метрики показывают лог-среднее неверно размеченных головы (MR-H) и тела (MR-B). Видно, что предложенный подход даже без J-NMS модуля обходит существующие решения.