fbpx
  • MRCNet: нейросеть считает людей в толпе с высоты

    MRCNet — это сверточная нейросеть, которая по снимкам с воздуха определяет количество людей на снимке. Исследователи выложили датасет с фотографиями людных мероприятий с высоты DLR-ACD. На основной части снимков запечатлены от 10 тысяч людей. На датасетах DLR-ACD и ShanghaiTech MRCNet обходит существующие state-of-the-art подходы.

    Чтобы решить задачу подсчета людей и оценку плотности объектов на снимке, исследователи предлагают использовать сверточную нейросеть с кодировщик-декодировщик архитектурой. В Multi-Resolution Crowd Network (MRCNet) кодировщик основан на VGG-16 нейросети, а декодировщик состоит из набора билинейных upsampling и сверточных слоев. Для расчета ошибки используются две функции потерь: первая на начальном уровне декодировщика, вторая — на последнем. Нейросеть выдает количество людей на снимке и карту с плотностью толпы на изображении. MRCNet использует контекстную и локальную информацию через комбинирование низкоуровневых и высокоуровневых признаков. Это похоже на то, как обучается модель Feature Pyramid Network (FPN).

    Из чего состоит датасет

    DLR Aerial Crowd Dataset (DLR-ACD) состоит из 33 снимков с средним разрешением 3619×5226. На снимках изображены 16 разных людных событий и размечены 226 тысяч людей. DLR-ACD — первый публичный датасет со снимками скоплений людей, которые были сняты с воздуха.

    Изображения снимались с помощью системы, которая состоит из трех стандартных DSLR камер, установленных на вертолете. Вертолет поднимался на высоту от 500 до 1600 метров во время производства снимков.

    Размечали людей на снимках вручную. Всего на снимках разметили 226,291 людей. Количество людей на снимке варьируется от 285 до 24,368.

    Распределение количества людей на изображениях в датасете, в основном в датасете изображения содержат более 10 тыс. людей

    Архитектура нейросети

    Multi-Resolution Crowd Network (MRCNet) использует кодировщик-декодировщик архитектуру. На вход модели поступает одно изображение любого размера. С помощью сверточной архитектуры предсказываются две карты: одна на ¼ изображения для задачи подсчета людей, а вторая — на всем изображении, чтобы оценить плотность толпы на снимке. В кодировщике MRCNet использовали VGG-16 без батч-нормализации. Всего в кодировщике 5 сверточных блоков. Декодировщик состоит из 5 сверточных блоков, после каждого из которых используется upsampling слой.

    Составные части нейросети

    Отличием MRCNet от предыдущих подходов является использование двух функций потерь и совмещенное решение задач оценки плотности и количества людей. Итоговая нейросеть содержит 20.3 миллионов параметров.

    Проверка работы нейросети

    Исследователи сравнили MRCNet с SOTA подходами для оценки количества людей на снимках. В качестве тестовых данных использовались DLR-ACD и ShanghaiTech. Ниже видно, что MRCNet выступает лучше SOTA. Несмотря на это, задача подсчета толпы на снимках остается плохо решаемой.

    Результаты сравнения MRCNet с конкурирующими подходами