Оцените скорости объекта
Computer Vision Toolbox/Анализ и совершенствование
Блок Оптический поток оценивает направление и скорость движения объекта между двумя изображениями или между одним видеокадром в другую систему координат с помощью метода Хорна-Шунка или Лукаса-Канаде.
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
- Количество систем координат1
(по умолчанию) | скаляромВведите скалярное значение, которое представляет количество систем координат между опорной и текущей системами координат.
Чтобы включить этот параметр, установите параметр Compute optical flow between равным Current frame and N-th frame back
.
Smoothness factor
- Коэффициент плавности1
(по умолчанию) | положительная скалярная величинаЗадайте коэффициент сглаживания. Введите большое положительное скалярное значение для высокого относительного движения между двумя изображениями или видеокадрами. Введите небольшое положительное скалярное значение для низкого относительного движения.
Чтобы включить этот параметр, установите параметр 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
- Максимальное количество итераций10
(по умолчанию) | скаляромЗадайте максимальное количество итераций для блока.
Чтобы включить этот параметр, установите параметр 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
Задайте, решает ли блок для u и v, используя различие фильтр или производную Гауссова фильтра.
Чтобы включить этот параметр, установите параметр Method равным Lucas-Kanade
.
Number of input frames to buffer
- Количество входных кадров в буфер для сглаживания3
(по умолчанию) | скаляромУкажите количество входных кадров, которые будут буферизованы для сглаживания. Используйте этот параметр для временных характеристик фильтра, таких как стандартное отклонение и количество коэффициентов фильтра.
Чтобы включить этот параметр, установите параметр Temporal gradient filter равным Derivative of Gaussian
.
Standard deviation for image smoothing filter
- Стандартное отклонение для фильтра сглаживания изображений1.5
(по умолчанию) | скаляромЗадайте стандартное отклонение для фильтра сглаживания изображений.
Чтобы включить этот параметр, установите параметр Temporal gradient filter равным Derivative of Gaussian
.
Standard deviation for gradient smoothing filter
- Стандартное отклонение для градиентного сглаживающего фильтра1
(по умолчанию) | скаляромЗадайте стандартное отклонение для фильтра сглаживания градиента.
Чтобы включить этот параметр, установите параметр 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
- Порог для снижения шума0.0039
(по умолчанию) | скаляромЗадайте скалярное значение, которое определяет порог движения между каждым изображением или видеокадром. Чем больше число, тем меньше малых движений влияет на вычисление оптического потока.
Чтобы включить этот параметр, установите параметр Method равным Lucas-Kanade
.
Data Types Tab
Для получения дополнительной информации о параметрах блоков с фиксированной точкой смотрите Задать атрибуты с фиксированной точкой для блоков.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Чтобы вычислить оптический поток между двумя изображениями, вы должны решить это оптическое уравнение ограничения потока:
.
, , и являются производными яркости пространственно-временных изображений.
u - горизонтальный оптический поток.
v - вертикальный оптический поток.
Принимая, что оптический поток гладок по всему изображению, метод Хорна-Шунка оценивает поле скорости, , что минимизирует это уравнение:
.
В этом уравнении, и являются пространственными производными компонента оптической скорости, u, и масштабирует глобальный термин гладкости. Метод Хорна-Шунка минимизирует предыдущее уравнение, чтобы получить поле скорости [u v] для каждого пикселя в изображении. Этот метод задается следующими уравнениями:
.
В этих уравнениях, - оценка скорости для пикселя в (x, y), и является средним значением по соседству . Для k = 0 начальная скорость равна 0.
Чтобы решить u и v с помощью метода Хорна-Шунка:
Вычислить и при помощи ядра свертки Собеля, и его транспонированную форму для каждого пикселя в первом изображении.
Вычислить между изображениями 1 и 2 с помощью ядро.
Предположим, что предыдущая скорость равна 0, и вычислите среднюю скорость для каждого пикселя, используя как ядро свертки.
Итеративно решить для u и v.
Чтобы решить оптический поток уравнение ограничения для u и v, метод Лукаса-Канаде делит оригинальное изображение на меньшие сечения и принимает постоянную скорость в каждом сечении. Затем он выполняет взвешенную наименьшую квадратную подгонку оптического уравнения ограничения потока к постоянной модели для в каждом разделе . Метод достигает этой подгонки путем минимизации этого уравнения:
W является оконной функцией, которая подчеркивает ограничения в центре каждого раздела. Решением задачи минимизации является
.
Когда вы устанавливаете Temporal gradient filter на Difference filter [-1 1]
u и v решаются следующим образом:
Вычислить и использование ядра и его транспонированную форму.
Если вы работаете с типами данных с фиксированной точкой, значения ядра являются подписанными значениями с фиксированной точкой с размером слова, равной 16, и длиной дроби, равной 15.
Вычислить между изображениями 1 и 2 при помощи ядро.
Сглаживайте компоненты градиента, , , и , при помощи разделяемого и изотропного ядра элемента 5 на 5, эффективными коэффициентами 1-D которого являются . Если вы работаете с типами данных с фиксированной точкой, значения ядра являются беззнаковыми значениями с фиксированной точкой с размером слова, равной 8, и длиной дроби, равной 7.
Решить линейные уравнения 2 на 2 для каждого пикселя используя следующий метод:
Если
тогда собственные значения A будут
В диаграммах с фиксированной точкой,
Собственные значения сравниваются с порогом, , что соответствует значению, которое вы вводите для порога для снижения шума. Результаты попадают в один из следующих случаев.
Дело 1: и
A является несингулярной, и система уравнений решается с помощью правила Крамера.
Дело 2: и
A сингулярна (неинвертируема), и градиентный поток нормирован для вычисления u и v.
Дело 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 и v.
Дело 3: и
оптический поток u и v равен 0.
Block Matching | Gaussian Pyramid | opticalFlow
| opticalFlowHS
| opticalFlowLK
| opticalFlowLKDoG
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.