Оцените объектные скорости
Computer Vision Toolbox / Analysis & Enhancement
Блок Optical Flow оценивает направление и скорость объектного движения между двумя изображениями или между одним видеокадром к другой системе координат с помощью или Рога-Schunck или метода Лукаса-Кэнэйда.
I/I1
— Фрейм изображения или видеокадрФрейм изображения или видеокадр в виде скаляра, вектора или матрицы. Если параметр Compute optical flow between устанавливается на Two images
, имя этого порта превращается в I1.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
I2
изображениеФрейм изображения или видеокадр в виде скаляра, вектора или матрицы.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
|V|^2
— Величины скоростиВеличины скорости, возвращенные как скаляр, вектор или матрица.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
V
— Скоростные компоненты в комплексной формеСкоростные компоненты в комплексной форме в виде скаляра, вектора или матрицы.
Чтобы включить этот порт, установите параметр Velocity output на Horizontal and vertical components in complex form
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Main Tab
Method
— Метод расчета оптического потокаHorn-Schunck
(значение по умолчанию) | Lucas-Kanade
Выберите метод, чтобы использовать, чтобы вычислить оптический поток. Опции включают Horn-Schunck
или Lucas-Kanade
.
Compute optical flow between
— Вычислите оптический потокCurrent frame and N-th frame back
(значение по умолчанию) | Two images
Выберите, как вычислить оптический поток. Выберите Two images
вычислить оптический поток между двумя изображениями. Выберите Current frame and N-th frame back
вычислить оптический поток между двумя видеокадрами, которые являются системами координат N независимо.
Чтобы включить этот параметр, установите:
Параметр Method к Horn-Schunck
Параметр Method к Lucas-Kanade
и Temporal gradient filter к Difference filter [-1 1]
N
NumberOfFrames
(значение по умолчанию) | скалярВведите скалярное значение, которое представляет количество кадров между системой координат и текущей системой координат.
Чтобы включить этот параметр, установите параметр Compute optical flow between на Current frame and N-th frame back
.
Smoothness factor
— Фактор гладкости
(значение по умолчанию) | положительная скалярная величинаЗадайте фактор гладкости. Введите большое значение положительной скалярной величины для высокого относительного движения между двумя изображениями или видеокадрами. Введите маленькое значение положительной скалярной величины для низкого относительного движения.
Чтобы включить этот параметр, установите параметр Method на Horn-Schunck
.
Stop iterative solution
— Остановите итеративное решениеWhen maximum number of iterations is reached
(значение по умолчанию) | When velocity difference falls below threshold
| Whichever comes first
Задайте метод, чтобы управлять, когда итеративный процесс решения блока остановится. Если вы хотите, чтобы процесс остановился, когда различие скорости ниже значения определенного порога, выберите When velocity difference falls below threshold
. Если вы хотите, чтобы процесс остановился после определенного числа итераций, выбрал When maximum number of iterations is reached
. Можно также выбрать Whichever comes first
.
Чтобы включить этот параметр, установите параметр Method на Horn-Schunck
.
Maximum number of iterations
— Максимальное количество итераций
(значение по умолчанию) | скалярЗадайте максимальное количество итераций для блока, чтобы выполнить.
Чтобы включить этот параметр, установите параметр Method на Horn-Schunck
и параметр Stop iterative solution к When maximum number of iterations is reached
или Whichever comes first
.
Velocity output
— Оптический поток выводитсяMagnitude-squared
(значение по умолчанию) | Horizontal and vertical components in complex form
Задайте, как вывести оптический поток. Если вы выбираете Magnitude-squared
, блок выводит матрицу оптического потока, где каждый элемент находится в форме . Если вы выбираете Horizontal and vertical components in complex form
, блок выводит матрицу оптического потока, где каждый элемент находится в форме .
Temporal gradient filter
— Фильтр используется для временного градиентаDifference filter [-1 1]
(значение по умолчанию) | Derivative of Gaussian
Задайте, решает ли блок для вас и v использование фильтра различия или производной Гауссова фильтра.
Чтобы включить этот параметр, установите параметр Method на Lucas-Kanade
.
Number of input frames to buffer
— Количество входных кадров, чтобы буферизовать для сглаживания
(значение по умолчанию) | скалярЗадайте количество входных кадров, чтобы буферизовать для сглаживания. Используйте этот параметр для временных характеристик фильтра, таких как стандартное отклонение и количество коэффициентов фильтра.
Чтобы включить этот параметр, установите параметр Temporal gradient filter на Derivative of Gaussian
.
Standard deviation for image smoothing filter
— Стандартное отклонение для фильтра сглаживания изображений
(значение по умолчанию) | скалярЗадайте стандартное отклонение для фильтра сглаживания изображений.
Чтобы включить этот параметр, установите параметр Temporal gradient filter на Derivative of Gaussian
.
Standard deviation for gradient smoothing filter
— Стандартное отклонение для фильтра сглаживания градиента
(значение по умолчанию) | скалярЗадайте стандартное отклонение для фильтра сглаживания градиента.
Чтобы включить этот параметр, установите параметр Temporal gradient filter на Derivative of Gaussian
.
Discard normal flow estimates when constraint equation is ill-conditioned
— Отбросьте нормальные оценки потокаВыберите этот параметр, чтобы обнулить вектор движения, когда уравнение ограничений оптического потока будет плохо обусловлено.
Чтобы включить этот параметр, установите параметр Temporal gradient filter на Derivative of Gaussian
.
Output image corresponding to motion vectors (accounts for block delay)
— Выходное изображение, соответствующее векторам движенияВыберите этот параметр, чтобы вывести изображение, которое соответствует вектору движения, выведенному блоком.
Чтобы включить этот параметр, установите параметр Temporal gradient filter на Derivative of Gaussian
.
Threshold for noise reduction
— Порог для шумоподавления
(значение по умолчанию) | скалярЗадайте скалярное значение, которое определяет порог движения между каждым фреймом изображения или видеокадром. Чем выше номер, тем менее маленькие перемещения влияют на вычисление оптического потока.
Чтобы включить этот параметр, установите параметр Method на Lucas-Kanade
.
Data Types Tab
Для получения дополнительной информации на параметрах блоков фиксированной точки, смотрите, Задают Атрибуты Фиксированной точки для Блоков.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Чтобы вычислить оптический поток между двумя изображениями, необходимо решить это уравнение ограничений оптического потока:
.
, , и пространственно-временные производные яркости изображения.
u является горизонтальным оптическим потоком.
v является вертикальным оптическим потоком.
Путем предположения, что оптический поток является гладким через целое изображение, Роговой-Schunck метод оценивает скоростное поле, , это минимизирует это уравнение:
.
В этом уравнении, и пространственные производные оптического скоростного компонента, u, и масштабирует глобальный термин гладкости. Роговой-Schunck метод минимизирует предыдущее уравнение, чтобы получить скоростное поле, [u v], для каждого пикселя в изображении. Этот метод дан следующими уравнениями:
.
В этих уравнениях, оценка скорости для пикселя в (x, y), и среднее значение окружения . Для k = 0, начальная скорость 0.
Решить u и v использование Рогового-Schunck метода:
Вычислить и при помощи ядра свертки Sobel, , и его транспонированная форма для каждого пикселя в первом изображении.
Вычислить между изображениями 1 и 2 использования ядро.
Примите предыдущую скорость, чтобы быть 0 и вычислить среднюю скорость для каждого пиксельного использования как ядро свертки.
Итеративно решите для вас и против.
Чтобы решить уравнение ограничений оптического потока для вас и v, метод Лукаса-Кэнэйда делит оригинальное изображение на меньшие разделы и принимает постоянную скорость в каждом разделе. Затем это выполняет взвешенный, припадок наименьшего квадрата уравнения ограничений оптического потока к постоянной модели для в каждом разделе . Метод достигает этой подгонки путем минимизации этого уравнения:
W является функцией окна, которая подчеркивает ограничения в центре каждого раздела. Решение проблемы минимизации
.
Когда вы устанавливаете Temporal gradient filter на Difference filter [-1 1]
, u и v решены можно следующим образом:
Вычислить и использование ядра и его транспонированная форма.
Если вы работаете с типами данных с фиксированной точкой, значения ядра являются подписанными значениями фиксированной точки с размером слова, равным 16 и дробная длина, равная 15.
Вычислить между изображениями 1 и 2 при помощи ядро.
Сглаживайте компоненты градиента, , , и , при помощи отделимого и изотропного ядра элемента 5 на 5, эффективные 1D коэффициенты которого . Если вы работаете с типами данных с фиксированной точкой, значения ядра являются значениями фиксированной точки без знака с размером слова, равным 8 и дробная длина, равная 7.
Решите линейные уравнения 2 на 2 для каждого пикселя с помощью следующего метода:
Если
затем собственные значения A
В схемах фиксированной точки,
Собственные значения сравниваются с порогом, , это соответствует значению, вы вводите для порога для шумоподавления. Результаты попадают в один из следующих случаев.
Случай 1: и
A несингулярен, и система уравнений решена с помощью Правила Крамера.
Случай 2: и
A сингулярен (необратимый), и поток градиента нормирован, чтобы вычислить u и против.
Случай 3: и
Оптический поток, u и v, 0.
Если вы устанавливаете временный фильтр градиента к Derivative of Gaussian
, u и v решены с помощью этих шагов.
Вычислить и .
Используйте Гауссов фильтр, чтобы выполнить временную фильтрацию. Задайте временные характеристики фильтра, такие как стандартное отклонение и количество коэффициентов фильтра, при помощи параметра Number of frames to buffer for temporal smoothing.
Используйте Гауссов фильтр и производную Гауссова фильтра, чтобы сглаживать изображение при помощи пространственной фильтрации. Задайте стандартное отклонение и длину фильтра сглаживания изображений при помощи параметра Standard deviation for image smoothing filter.
Вычислить между изображениями 1 и 2.
Используйте производную Гауссова фильтра, чтобы выполнить временную фильтрацию. Задайте временные характеристики фильтра, такие как стандартное отклонение и количество коэффициентов фильтра, при помощи параметра Number of frames to buffer for temporal smoothing.
Используйте фильтр, описанный на шаге 1b, чтобы выполнить пространственную фильтрацию на выходе временного фильтра.
Сглаживайте компоненты градиента, , , и , при помощи фильтра сглаживания градиента. Используйте параметр Standard deviation for gradient smoothing filter, чтобы задать стандартное отклонение и количество коэффициентов фильтра для фильтра сглаживания градиента.
Решите линейные уравнения 2 на 2 для каждого пикселя с помощью этого метода:
Если
затем собственные значения A
Когда блок находит собственные значения, он сравнивает их с порогом, , это соответствует значению, вы вводите для параметра Threshold for noise reduction. Результаты попадают в один из следующих случаев.
Случай 1: и
A несингулярен, таким образом, блок решает систему уравнений при помощи Правила Крамера.
Случай 2: и
A сингулярен (необратимый), таким образом, блок нормирует поток градиента, чтобы вычислить u и против.
Случай 3: и
оптический поток, u и v, 0.
Block Matching | Gaussian Pyramid | opticalFlow
| opticalFlowHS
| opticalFlowLK
| opticalFlowLKDoG
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.