УДК 004.92
ОПРЕДЕЛЕНИЕ ОПТИЧЕСКОГО ПОТОКА ПРИ ПОМОЩИ НЕЙРОННЫХ СЕТЕЙ
А. А. Константинов Научный руководитель - М. Н. Фаворская
Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газеты «Красноярский рабочий», 31
E-mail: pwnscr@gmail.com
Рассмотрены различные нейронные сети для определения оптического потока, описываются их преимущества и недостатки.
Ключевые слова: оптический поток, нейронная сеть, движение, пирамидальная сверточная сеть, слой свертки.
OPTICAL FLOW DETECTION USING NEURAL NETWORKS
A. A. Konstantinov Scientific supervisor - M. N. Favorskaya
Reshetnev Siberian State University of Science and Technology
31, Krasnoyarskii rabochii prospekt, Krasnoyarsk, 660037, Russian Federation
E-mail: pwnscr@gmail.com
In this article various neural networks for finding фof optical flow are considered and their main advantages and disadvantages are described.
Keywords: optical flow, neural network, movement, pyramidal convolution network, convolution layer.
Оптический поток - технология, использующаяся в различных областях компьютерного зрения для определения сдвигов, сегментации, выделения объектов, компрессии видео [1]. В ракетно-космической технике точное определение оптического потока позволит с высокой точностью следить за движением различных космических объектов. Оптический поток можно определить с помощью различных алгоритмов или нейронных сетей. В настоящее время набирают популярность разработки на основе нейронных сетей.
Одной из разработок является определение оптического потока с использованием пирамидальной сверточной нейронной сети долгой краткосрочной памяти (LSTM) с обучением без учителя [2]. Структура данной сети состоит из трех модулей: универсальный модуль сверточной нейронной сети, используемый для извлечения особых признаков, модуль определения движения, который позволяет определить векторы движения, а также модуль получения оптического потока, определяющий оптический поток на основе полученных данных о движении. В качестве главной сети в данной разработке используется универсальная нейронная сеть ResNet18 в качестве сети для определения параметров, используемых для последующей обработки. Кроме этого, в дополнение к данной сети используется ConvLSTM, которая необходима для захвата динамики движения на пирамиде CNN. Данный вид сетей используется для обучения долговременным зависимостям. При обучении обычных нейронных сетей, в частности сверточных нейронных сетей, мы можем хранить небольшую информацию на каждом шаге обучения, которая со временем
Секция «Программные средства и информационные технологии»
перезаписывается вновь полученной информацией. ЬБТМ модули помогают избежать данной проблемы, запоминая значения на различные промежутки времени [3]. Это вызвано тем, что данные модули не используют функции активации внутри последовательных компонентов, а передают всю информацию по всей цепочке сети. Таким образом, при использовании метода обратного распространения ошибки при тренировке сети хранимое значение не уничтожается, а лишь частично модифицируется с использованием особых фильтров. Фильтры могут быть разнообразными, как правило процесс обновления состоит из четырех этапов. На первом этапе выбирается та информация, которая может быть уничтожена. Значения с предыдущего слоя пропускаются через функцию, после чего отбрасываются те значения, которые ближе к 0. На втором шаге выбираются подходящие данные для обновления состояния ячейки. На третьем этапе обновляются значения ячейки новыми значениями, но не перезаписываются, а изменяются при помощи различных формул. На последнем этапе фиксируется полученный результат и получается выходная информация на основе текущего состояния ячейки. Таким образом обновляются все слои сети. Из наиболее часто используемых типов фильтров используются: смотровые глазки, объединенные фильтры, управляемые рекуррентные нейроны, глубокие управляемые рекуррентный нейроны и механизм часов. Аналогичным образом устроена сеть СоиуЬБТМ в описанной выше разработке. Данная сеть использует четыре «шлюза» для управления потоком данных и самообновлением: входной шлюз, шлюз забытая (о нем говорилось в первом этапе модификации сети при обучении), шлюз обновления ячейки и шлюз вывода данных. На вход принимаются карты объектов и выполняется операция свертки между ними. Для определения оптического потока разработчики подходят к этой задаче, как к задаче восстановления изображения. По словам разработчиков, полученная структура способна эффективно изучать оптический поток на реальных видео, а также разносится изучение характеристик движения и восстановление оптического потока, что позволяет уменьшить количество ошибок при обработке многокадровых последовательностей. Тестирование производилось на наборах данных НМОВ51 и иСБ101. В тестировании также принимали участие и сети, основанные на модели сверточных нейронных сетей для определения оптического потока FlowNet. Данная разработка позволила сократить время определения оптического потока более чем в 2 раза, по сравнению с нейронной сетью FlowNet2 и в 3 раза, по сравнению с нейронной сетью FlowNetC. Что касается точности определения, то данная нейронная сеть показывает 53.5 и 82.8 процентов точности на наборах данных НМ051 и иСБ101 соответственно. Для сравнения у FlowNet2 данные показатели 52.3 и 80.1, у алгоритма ТУ-Ь1, который не использует нейронные сети, 56 и 83.9, у нейронной сети FlowNet еще хуже - 38.6 и 55.3. Однако, хоть и показатели у алгоритма без использования нейронных сетей немногим выше, а у FlowNet2 практически не отличаются, стоит отметить, что время обработки гораздо ниже, о чем говорилось ранее.
Вторая разработка представляет собой простой метод определения оптического потока на основе сверточной нейронной сети с пересмотром точности данных и регуляризации [4].
Приведем сравнительные характеристики сетей.
Как и в предыдущей разработке, в основе лежит использование двух невзаимосвязанных модулей, один из которых отвечает за получение признаков движения, а второй получает оптический поток. Общее название сети LiteFlowNet, которая включает в себя две подсети, называемых и Первая из них преобразует пару изображений в две пирамиды
признаков каждого из изображений, а NetE состоит из слоев вывода потока и регуляризации. Декодер оценивает два полученных потока из с использованием промежуточных
значений на различных слоях модуля. Данный подход напоминает решение с долгой краткосрочной памятью в предыдущей разработке, когда промежуточные значения не перезаписывались, а использовались при последующем обучении. Большое внимание разработчиками уделяется к регуляризации. Регуляризация используется в машинном
обучении для установки дополнительных ограничений с целью решить некорректно поставленную задачу или предотвратить переобучение. В данной нейронной сети регуляризация применяется между сверточных слоев и представляет собой функционально-управляемую характеристиками локальную свертку. Ядра данной свертки адаптивны к получаемым из кодировщика признакам и к оценке потока. Такой подход позволяет сделать регуляризацию ориентированной и на поток, и на изображение.
В сравнение с нейронной сетью FlowNet2 данная сеть состоит из двух «коротких» нейронных сетей, в то время как FlowNet2 представляет собой «длинную» сеть. Данная особенность позволяет работать данной сети в 1.5 раза быстрее, чем популярная сеть FlowNet2. Кроме этого, разработчики модифицировали свою сеть и представили второй вариант LiteFlowNet2, который в 2.2 раза быстрее первой версии сети и в 3.1 раза быстрее сети FlowNet2. По точности данные сети первой и второй версии не уступают существующим разработкам и зачастую их превосходят.
Таким образом, в данных нейронных сетях применялся подход с использованием двух нейронных сетей: модуля определения признаков и модуля определения оптического потока. Это позволяет упростить архитектуру нейронной сети (в сравнении с FlowNet2) и уменьшить затраты вычислительных ресурсов. Кроме этого, подход с разделением позволил повысить точность определения оптического потока, в связи с уменьшением ошибок, возникающих при обучении единственной нейронной сети.
Библиографические ссылки
1. Толстов А. То, что вы хотели знать про оптический поток, но стеснялись спросить // URL: https://habr.com/ru/post/201406/ (дата обращения: 11.03.2020)
2. Guan S., Li H., Zheng Wei-Shi. Unsupervised Learning for Optical Flow Estimation Using Pyramid Convolution LSTM // URL: https://arxiv.org/pdf/1907.11628.pdf (дата обращения: 11.03.2020)
3. Xavier A. An introduction to ConvLSTM // URL: https://medium.com/neuronio/an-introduction-to-convlstm-55c9025563a7 (дата обращения: 18.03.2020)
4. Loy A Lightweight Optical Flow CNN - Revisiting Data Fidelity and Regularization Tak-Wai Hui, Xiaoou Tang, Fellow, Chen Change// URL: https://arxiv.org/pdf/1903.07414.pdf (дата обращения: 11.03.2020)
© Константинов A. A., 2020