Как нейросети используют память за целый месяц для поиска объектов в Context R-CNN

Yannic Kilcher 12,9 тыс. 34 мин 4 мин 28.06.2020
Главное

В области компьютерного зрения классическая задача детектирования объектов обычно решается в рамках одного кадра: нейросеть смотрит на картинку и пытается понять, что на ней изображено «здесь и сейчас». Однако для статичных камер, таких как фотоловушки для диких животных или дорожные камеры наблюдения, такой подход игнорирует колоссальный пласт данных — контекст прошлого. В новом видео Янник Кильхер (Yannic Kilcher) подробно разбирает архитектуру Context R-CNN, которая позволяет модели «вспоминать» события месячной давности, чтобы безошибочно распознать едва заметный хвост в кустах сегодня.


📸 Проблема «одинокого кадра» в статичных камерах 0:00

Большинство современных детекторов объектов оптимизированы для работы с независимыми изображениями, но реальные условия эксплуатации камер часто далеки от идеальных. Янник Кильхер поясняет, что в таких сценариях, как фотоловушки в дикой природе, камеры могут стоять неподвижно месяцами. При этом данные поступают крайне неравномерно: камера может молчать неделю, а затем сделать серию из десяти снимков за десять секунд, когда мимо пробегает животное.

Такая специфика делает стандартные инструменты работы с видео, вроде рекуррентных сетей (LSTM) или временных сверток, малоэффективными. Проблема в том, что:

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


🛠️ Архитектура: как «прокачать» классический Faster R-CNN 6:50

Вместо того чтобы изобретать велосипед, авторы Context R-CNN решили «взломать» и дополнить уже существующую и проверенную архитектуру — Faster R-CNN. Янник Кильхер описывает этот процесс как «вклинивание» между двумя стадиями классического детектора:

  1. Стадия 1 (Region Proposal Network): Модель сканирует кадр и предлагает «регионы интереса» (RoI) — области, где с высокой вероятностью есть объект. Для каждой области извлекается вектор признаков (features).
  2. Модуль контекста (Новинка): Именно сюда встраивается Context R-CNN. Он берет признаки из текущего кадра и дополняет их информацией из памяти.
  3. Стадия 2 (Classification): Обновленные, «обогащенные» признаки передаются классификатору, который выносит финальный вердикт: «олень», «автобус» или «пусто».

Такой подход позволяет модели не просто смотреть на пиксели в текущем квадрате, но и учитывать накопленный опыт этой конкретной точки наблюдения.


🧠 Краткосрочная и долгосрочная память: механизм внимания 9:55

Ключевая инновация заключается в разделении памяти на два типа, которые обрабатываются по-разному.

Краткосрочная память (Short-term)

Она охватывает несколько соседних кадров вокруг ключевого изображения. Поскольку объем данных здесь невелик, вся цепочка остается дифференцируемой. Это означает, что нейросеть можно обучать «сквозным» методом (end-to-end), оптимизируя извлечение признаков специально для этой задачи. Это критически важно, если, например, на одном кадре морда оленя видна четко, а на другом — только ухо.

Долгосрочная память (Long-term)

Здесь хранятся данные за недели или месяцы. Прогнать такой объем через градиентный спуск невозможно — памяти видеокарты просто не хватит. Поэтому авторы используют хитрость: они берут предобученный детектор (например, на датасете COCO) и замораживают его. Он извлекает признаки из всех прошлых кадров и складывает их в «банк памяти».

Связующим звеном выступает механизм внимания (Attention):


📈 Результаты и «феномен жирафового дерева» 20:00

Эксперименты на наборах данных дикой природы (Snapshot Serengeti) и городских камер (CityCam) показали, что производительность модели растет пропорционально «глубине памяти». Увеличение горизонта планирования с одной минуты до одного месяца стабильно повышало точность детектирования без добавления новых параметров в саму модель.

Визуализация весов внимания подтвердила догадки: модель действительно находит то же самое животное в кадрах, сделанных в разное время месяца. Более того, сеть научилась учитывать периодичность — она чаще обращается к кадрам, снятым в то же время суток, что и текущий.

Интересный факт о точности: При анализе 100 самых уверенных ошибок модели выяснилось, что в 97 случаях нейросеть была права, а человеческая разметка — нет. Модель находила животных, которых люди-аннотаторы просто не заметили на сложных снимках.

Однако у системы есть и слабое место — «разлитие ошибки». Если модель один раз с очень высокой уверенностью примет дерево странной формы за жирафа, эта информация попадет в долгосрочную память. В последующем, при анализе новых кадров с этим же деревом, механизм внимания будет подтягивать «уверенность в жирафе» из прошлого, заставляя систему ошибаться снова и снова.


💬 Цитаты

«В 97 из 100 случаев модель правильно нашла и классифицировала животных, которых пропустили люди-аннотаторы.»

Янник Кильхер 31:52

«Мы собираемся «угнать» (hijack) существующий детектор объектов, чтобы добавить в него контекст.»

Янник Кильхер 07:04
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Faster R-CNN
Популярная двухстадийная архитектура нейросети для обнаружения объектов на изображениях.
RoI (Region of Interest)
Область интереса — фрагмент изображения, в котором нейросеть предполагает наличие искомого объекта.
Attention Mechanism
Метод, позволяющий нейросети динамически фокусироваться на наиболее релевантных частях входных данных или памяти.
Differentiable
Свойство функции или модуля, позволяющее вычислять градиенты для обучения нейросети методом обратного распространения ошибки.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Context R-CNN Янник Кильхер Object Detection Faster R-CNN Attention Mechanism