Все до 20/20 года (компьютерное зрение)

За последнее десятилетие значительная работа была проделана в области машинного обучения, особенно в области компьютерного зрения. От продвинутых алгоритмов классификации, таких как Inception by Google, до новаторской работы Иэна Гудфеллоу по генеративным состязательным сетям для генерации данных из шумов, многие преданные исследователи со всего мира занимались множеством областей. Интересно, что в первой половине десятилетия самые новаторские работы в области компьютерного зрения в основном касались обработки изображений, такой как классификация, обнаружение, сегментация и генерация, в то время как область обработки видео была изучена менее глубоко.

Одна из очевидных причин небольшого дисбаланса заключается в том, что видео по сути представляет собой последовательность изображений (кадров) вместе. Однако это определение не может инкапсулировать полное изображение того, что такое обработка видео, и это потому, что обработка видео добавляет к проблеме новое измерение: временное измерение. Видео - это не только последовательность изображений, это скорее последовательность РОДСТВЕННЫХ изображений. Хотя это кажется минимальным различием, исследователи могут использовать это измерение множеством способов, которые не применимы к отдельным изображениям. Кроме того, из-за сложности видеоданных (размер, связанные аннотации) и дорогостоящих вычислений обучения и вывода было труднее прорваться в этой области. Однако в последнее время, с выпуском ImageNet VID и других массивных наборов видеоданных во второй половине десятилетия, появляется все больше и больше исследовательских работ, связанных с видео. В этом руководстве мы в основном исследуем исследования, проведенные в области обнаружения видео, а точнее, как исследователи могут исследовать временное измерение.

ОГЛАВЛЕНИЕ

МЕТОДЫ ПОСЛЕ ОБРАБОТКИ

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

Известным методом является Seq-NMS (Sequence Non-Maximal Suppression), который применяет модификацию к достоверности обнаружения на основе других обнаружений на треке посредством динамического программирования. Например, более слабые прогнозы положительного объекта могут быть вызваны окклюзией, размытием движения или другими дефектами, но поскольку он будет присутствовать в дорожке (критерий перекрытия), извлеченной из предыдущих кадров, достоверность будет повышена. Это эффективно минимизирует количество ошибочных обнаружений между кадрами или обнаружений случайных переходов и стабилизирует выходной результат.

Как видно из приведенного выше графика, точность была улучшена на соответствующую величину: абсолютные улучшения mAP (%) с использованием Seq-NMS относительно одиночного изображения NMS увеличились более чем на 10%, для 7 классов было улучшение более чем на 10%, в то время как только два классы показывают пониженную точность. Хотя эта работа была одной из первых работ, направленных на лучшее обнаружение видео, она не оказалась лучшей ни с точки зрения точности, ни с точки зрения производительности. Однако видимое преимущество заключается в том, что этот метод не требует обучения и действует скорее как надстройка, которую можно подключить к любому детектору объектов.

МНОГОКАДРОВЫЕ МЕТОДЫ

3D свертки

Например, первым естественным инстинктом разработчика, имеющего опыт классификации изображений, было бы подумать о какой-то трехмерной свертке, основанной на двумерной свертке, которая выполняется на изображениях. Вероятность такой архитектуры вполне вероятна: повторение n кадров в качестве входных данных для модели и вывод последовательных обнаружений на последовательных кадрах. Это определенно потенциальное направление для обнаружения, поскольку оно может извлекать низкоуровневые функции для пространственно-временных данных, но сверточная нейронная сеть с трехмерными свертками в основном оказалась полезной и плодотворной, когда дело доходит до обработки трехмерных изображений, таких как 3D MNIST или МРТ. Вот почему эти модели являются большим прорывом в области медицинской визуализации и менее актуальны для видеообнаружения.

Тем не менее, одним из примеров исследовательской работы, в которой исследуется использование трехмерной свертки при обработке видео, является Сквозная трехмерная сверточная нейронная сеть для обнаружения действий и сегментации в видео. В исследовательской работе видео сначала делится на клипы равной длины, а затем для каждого клипа создается набор предложений трубок на основе функций 3D CNN. Затем предложения трубок различных клипов связываются вместе, и с помощью этих связанных видео предложений выполняется обнаружение пространственно-временного действия. Хотя в документе в основном говорится о сегментации и обнаружении действий, производную от архитектуры можно обучить выполнять обнаружение объектов.

Что касается производительности, из-за большого объема вычислений с многомерными матрицами время обработки не может быть таким же быстрым, как в реальном времени (30 кадров в секунду или выше) в текущем состоянии. Дальнейшие улучшения и исследования в этой области могут изменить направление, но сложность увеличения производительности трехмерной свертки - непростая задача. Что касается точности, я считаю, что на нее определенно можно положительно повлиять. Стабильность, а также точность обнаружения могут быть улучшены за счет трехмерной свертки, поскольку архитектура может эффективно использовать временное измерение в целом (агрегация функций между кадрами). Однако в настоящее время это всего лишь предположение, основанное на других современных сверточных трехмерных моделях. До сих пор не было исследовательской работы, в которой подробно рассказывалось бы об обнаружении видео.

Рекуррентные нейронные сети

Тем, у кого больше опыта работы с последовательными данными, можно подумать об использовании повторяющейся нейронной сети, такой как LSTM. RNN - это особые типы сетей, которые были созданы для обработки последовательных, в том числе временных, данных. Область, в которой эта архитектура получила большую пользу, - это обработка естественного языка. Например, показано, что AWD-LSTM работает на одном уровне с современной моделью трансформатора BERT, но при этом имеет гораздо меньше параметров. Затем, применимо ли это к обнаружению видео, когда кадры буквально последовательны? Были достигнуты некоторые успехи в таких направлениях, как Обнаружение мобильных видеообъектов с временными картами функций и Быстрый и медленный поиск: обнаружение мобильных видеообъектов на основе памяти.

В первом случае в статье сочетаются быстрое обнаружение объекта с одним изображением со слоями сверточной долговременной краткосрочной памяти (LSTM), называемыми узким местом-LSTM, для создания переплетенной рекуррентно-сверточной архитектуры. Слой LSTM снижает вычислительные затраты, но при этом уточняет и распространяет карты функций по кадрам. Этот документ предназначен для работы в режиме реального времени на мобильных и встраиваемых устройствах с низким энергопотреблением со скоростью 15 кадров в секунду на мобильном устройстве.

В последнем случае исследователи предлагают использовать «суть» (богатое представление сложной среды за короткий промежуток времени) сцены, полагаясь на соответствующие предварительные знания, которые основаны на том, как люди могут распознавать и обнаруживать объекты. Архитектура модели основана на чередовании традиционных экстракторов признаков с облегченными, которым нужно только распознать суть сцены (минимальные вычисления). Это эффективно создает долговременную память для архитектуры из ключевого кадра, который фиксирует «суть», которая направляет небольшую сеть в том, что следует обнаруживать. В документе также используются алгоритмы обучения с подкреплением для достижения адаптивной политики вывода. В документе предлагаются многообещающие результаты, такие как 70 кадров в секунду на мобильном устройстве, но при этом достигаются самые современные результаты для небольших нейронных сетей на ImageNet VID.

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

ОПТИЧЕСКИЕ МЕТОДЫ ПОТОКА

Почему мы не можем использовать детекторы объектов изображения на видео? Что ж, можем. Другой возможный способ обработки видеодетектора - применение современных детекторов изображений, таких как YOLOv3, или детекторов лиц, таких как RetinaFace и DSFD, к каждому кадру видеофайла. Каждый отдельный кадр будет использоваться в качестве входных данных для модели, а результаты видео могут быть такими же точными, как и их средняя точность на изображениях. Однако прямое применение этих детекторов к каждому кадру видеофайла сталкивается с двумя проблемами:

  1. Что касается скорости, применение детекторов одиночного изображения ко всем видеокадрам неэффективно, поскольку магистральная сеть обычно является глубокой и медленной. Применение его к каждому кадру также вызывает множество избыточных вычислений, поскольку часто два последовательных кадра из видеофайла не сильно отличаются.
  2. Что касается точности, то точность обнаружения страдает из-за ухудшения внешнего вида в видео, которые редко наблюдаются в неподвижных изображениях, например, размытость движения, расфокусировка видео, редкие позы.

Следовательно, применение детекторов к каждому отдельному файлу не является эффективным методом решения проблемы обнаружения видео. Однако, исследуя временное измерение видео, есть различные возможные методы, которые мы можем реализовать для решения одной или обеих проблем.

Что такое оптический поток?

Оценка оптического потока - это метод оценки видимого движения объектов между двумя кадрами видео, вызванного либо камерой (фоном), либо движением объекта. Результатом обычно является двумерное векторное поле, где каждый вектор представляет вектор смещения пикселя от первого кадра ко второму кадру.

Optical Flow - это область исследований в области компьютерного зрения, которая изучалась с 1980-х годов, а недавно вновь стала интересной областью глубокого обучения, впервые разработанной Flownet. До этого исходные методы были дифференциальными. Например, метод Лукаса-Каннаде предполагает, что поток практически постоянен в локальной окрестности рассматриваемого пикселя, и решает основные уравнения оптического потока для всех пикселей в этой окрестности с помощью критерий наименьших квадратов. Но с новыми достижениями и новыми наборами данных оптического потока, такими как Sintel, появляется все больше и больше архитектур, одна быстрее и точнее другой.

Есть несколько архитектур, которые могут использовать эту технологию. Например, Towards High Performance и многие другие, которые используют оптический поток для установления соответствия между кадрами (разреженное распространение признаков). Оптический поток в настоящее время является наиболее изученной областью для использования временного измерения обнаружения видеообъектов, и поэтому не без причины. Результаты оптического потока становятся быстрее и точнее.

Редкое распространение функций для повышения производительности

Архитектура функционирует с концепцией разреженного ключевого кадра. Поскольку сеть с оптическими потоками может быть относительно небольшой, время обработки и вычислительная мощность, необходимые для таких сетей, меньше, чем у детекторов объектов. Следовательно, конвейер функционирует как цикл из n кадров. Первый кадр называется ключевым. Это кадр, который обнаруживается детектором объектов. Поскольку теперь детекторы обеспечивают точное обнаружение всех объектов, обнаружение будет зависеть от алгоритмов оптического потока. После получения векторов смещения становится известно обнаружение следующих n-1 кадров, и цикл повторяется.

Многокадровое агрегирование функций для повышения точности

Метод повышения точности обнаружения видео - это многокадровая агрегация признаков. Существуют разные способы его реализации, но все они основаны на одной идее: детектирование с плотным вычислением по кадрам при деформации функций от соседних кадров к текущему кадру и агрегирование с взвешенным усреднением. Таким образом, текущий кадр выиграет от непосредственных кадров, а также от некоторых дополнительных кадров для лучшего обнаружения. Это может затем решить проблемы с движущимися и кадрированными объектами из видеокадра.

Одним из таких примеров является исследовательская статья Агрегация функций на основе потокового управления (FGDA). Агрегация признаков на основе потоков объединяет карты признаков из ближайших кадров, которые хорошо выровнены по предполагаемому потоку. Архитектура представляет собой сквозную структуру, которая использует временную согласованность на уровне функций.

СРАВНЕНИЕ

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

Хотя представленные методы - это то, что в настоящее время опубликовано, определенно в настоящее время проводится гораздо больше исследований, поскольку обнаружение видеообъектов становится гораздо более доступной темой. Надеюсь, что с приближением конференций можно будет наблюдать все больше и больше прорывов. Надежды возлагаются на новое десятилетие, которое начнется в 2020 году, для лучшего видения! Ваше здоровье!