← Энциклопедия Fusion
ЭффектыПродвинутый

OpticalFlow

OpticalFlow / Оптический поток

OpticalFlow анализирует движение пикселей между кадрами и создаёт векторное представление движения. Нода нужна как технический анализатор для ретайминга, интерполяции кадров, восстановления движения, motion blur, frame blending и других операций, где важно понимать, куда сдвигаются детали изображения во времени.

OpticalFlow1Image InputImage / Vector OutputMaskForegroundBackgroundOutput

OpticalFlow

Обзор

Что делает OpticalFlow

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

Нода особенно важна для задач, где обычное смешивание кадров даёт шлейфы или двоение. Например, при замедлении видео, восстановлении промежуточных кадров, генерации размытия по движению или замене испорченного кадра нужно не просто взять соседние кадры, а понять их движение. OpticalFlow как раз строит такую основу.

На скриншоте выбран Method: Advanced. В этом режиме доступны параметры Warp Count, Iteration Count и Smoothness. Они управляют тем, насколько детально нода будет искать движение, сколько итераций анализа сделает и насколько гладкими будут итоговые векторы. Чем выше значения, тем потенциально чище анализ на сложном движении, но тем выше нагрузка и риск чрезмерного сглаживания мелких деталей.

Advanced-режим полезен на кадрах со сложным движением камеры, параллаксом, движущимися объектами, волосами, водой, дымом, мелкими деталями и быстрыми краями. Но он не магический: если кадры сильно отличаются, есть motion blur, перекрытия объектов или прозрачности, OpticalFlow может ошибаться и создавать резиновые деформации, разрывы по краям или странное перетекание текстур.

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

Output Vectors as Layers превращает ноду в источник служебных слоёв с векторами движения. Это важно, если дальше по графу нужно использовать именно motion-vector информацию, а не только внутренний анализ. Такой режим полезен в технических пайплайнах, при отладке и при построении сложных связок с другими нодами.

Главная ошибка при работе с OpticalFlow — ожидать идеального результата на любом материале. Оптический поток хорошо работает там, где движение читается между кадрами, но хуже справляется с резкими монтажными склейками, вспышками, сильным шумом, перекрытиями, размытием, прозрачными объектами и повторяющимися текстурами. Поэтому его почти всегда нужно проверять в движении, а не только на одном стоп-кадре.

Как это понимать

Представляй OpticalFlow как анализатор движения: он смотрит на соседние кадры и пытается нарисовать карту направления и скорости пикселей. Чем чище исходник и логичнее движение, тем надёжнее карта; чем больше шума, перекрытий и резких изменений, тем больше риск артефактов.

Где используется

Подготовка motion vectors для ретайминга и интерполяции кадров.
Улучшение замедления видео, где простое смешивание кадров даёт двоение.
Техническая основа для эффектов, которым нужно понимать движение между кадрами.
Помощь при восстановлении или замене проблемных кадров через optical-flow методы.
Создание более естественного motion blur на основе реального движения изображения.
Анализ движения камеры, объектов и параллакса внутри 2D-изображения.
Генерация служебных векторных слоёв для сложных Fusion-пайплайнов.
Черновая проверка, насколько материал вообще пригоден для optical-flow обработки.