Оцените объектные скорости
Analysis & Enhancement
visionanalysis
Блок Optical Flow оценивает направление и скорость объектного движения от одного изображения до другого или от одного кадра видео до другого использования или Рог-Schunck или метод Лукаса-Кэнэйда.
Порт | Вывод | Поддерживаемые типы данных | Поддерживаемые комплексные числа |
---|---|---|---|
I/I1 | Скаляр, вектор или матрица значений интенсивности |
| Нет |
I2 | Скаляр, вектор или матрица значений интенсивности | То же самое, когда я портирую | Нет |
|V |^2 | Матрица значений скорости | То же самое, когда я портирую | Нет |
V | Матрица скоростных компонентов в комплексной форме | То же самое, когда я портирую | Да |
Чтобы вычислить оптический поток между двумя изображениями, необходимо решить следующее уравнение ограничений оптического потока:
.
, , и пространственно-временные производные яркости изображения.
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.
Следующие схемы показывают типы данных, используемые в блоке Optical Flow для сигналов фиксированной точки. Блок поддерживает типы данных с фиксированной точкой только, когда параметр Method устанавливается на Lucas-Kanade
.
Можно установить продукт вывод, аккумулятор, градиенты, порог и типы выходных данных в маске блока.
Выберите метод использование блока, чтобы вычислить оптический поток. Вашим выбором является Horn-Schunck
или Lucas-Kanade
.
Выберите Two images
, чтобы вычислить оптический поток между двумя изображениями. Выберите Current frame and N-th frame back
, чтобы вычислить оптический поток между двумя кадрами видео, которые являются кадрами N независимо.
Этот параметр видим, если вы устанавливаете параметр Method на Horn-Schunck
, или вы устанавливаете параметр Method на Lucas-Kanade
и Temporal gradient filter к Difference filter [-1 1]
.
Введите скалярное значение, которое представляет количество кадров между ссылочным кадром и текущим кадром. Этот параметр становится доступным, если вы устанавливаете параметр Compute optical flow between, вы выбираете Current frame and N-th frame back
.
Если относительное движение между двумя изображениями или кадрами видео является большим, введите большое значение положительной скалярной величины. Если относительное движение является маленьким, введите маленькое значение положительной скалярной величины. Этот параметр становится доступным, если вы устанавливаете параметр Method на Horn-Schunck
.
Используйте этот параметр, чтобы управлять, когда итеративный процесс решения блока остановится. Если вы хотите, чтобы он остановился, когда различие скорости ниже значения определенного порога, выберите When velocity difference falls below threshold
. Если вы хотите, чтобы он остановился после определенного числа итераций, выбрал When maximum number of iterations is reached
. Можно также выбрать Whichever comes first
. Этот параметр становится доступным, если вы устанавливаете параметр Method на Horn-Schunck
.
Введите скалярное значение, которое представляет максимальное количество итераций, которые вы хотите, чтобы блок выполнил. Этот параметр только видим, если для параметра Stop iterative solution вы выбираете When maximum number of iterations is reached
или Whichever comes first
. Этот параметр становится доступным, если вы устанавливаете параметр Method на Horn-Schunck
.
Введите скалярное пороговое значение. Этот параметр только видим, если для параметра Stop iterative solution вы выбираете When velocity difference falls below threshold
или Whichever comes first
. Этот параметр становится доступным, если вы устанавливаете параметр Method на Horn-Schunck
.
Если вы выбираете Magnitude-squared
, блок выводит матрицу оптического потока, где каждый элемент имеет форму . Если вы выбираете Horizontal and vertical components in complex form
, блок выводит матрицу оптического потока, где каждый элемент имеет форму .
Задайте, решает ли блок для вас и v использование фильтра различия или производной Гауссова фильтра. Этот параметр становится доступным, если вы устанавливаете параметр Method на Lucas-Kanade
.
Используйте этот параметр, чтобы задать временные характеристики фильтра, такие как стандартное отклонение и количество коэффициентов фильтра. Этот параметр становится доступным, если вы устанавливаете параметр Temporal gradient filter на Derivative of Gaussian
.
Задайте стандартное отклонение для фильтра сглаживания изображений. Этот параметр становится доступным, если вы устанавливаете параметр Temporal gradient filter на Derivative of Gaussian
.
Задайте стандартное отклонение для фильтра сглаживания градиента. Этот параметр становится доступным, если вы устанавливаете параметр Temporal gradient filter на Derivative of Gaussian
.
Установите этот флажок, если вы хотите, чтобы блок обнулил вектор движения, когда уравнение ограничений оптического потока плохо обусловлено. Этот параметр становится доступным, если вы устанавливаете параметр Temporal gradient filter на Derivative of Gaussian
.
Установите этот флажок, если вы хотите, чтобы блок вывел изображение, которое соответствует вектору движения, выводимому блоком. Этот параметр становится доступным, если вы устанавливаете параметр Temporal gradient filter на Derivative of Gaussian
.
Введите скалярное значение, которое определяет порог движения между каждым фреймом изображения или кадром видео. Чем выше номер, тем менее маленькие перемещения влияют на вычисление оптического потока. Этот параметр становится доступным, если вы устанавливаете параметр Method на Lucas-Kanade
.
Выберите округляющийся режим для операций фиксированной точки.
Выберите режим переполнения для операций фиксированной точки.
Используйте этот параметр, чтобы задать, как назвать продукт выходным словом и дробными длинами.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и дробную длину продукта вывод в битах.
Когда вы выбираете Slope and bias scaling
, можно ввести размер слова в биты и наклон продукта вывод. Смещение всех сигналов в блоках Computer Vision Toolbox™ 0.
Используйте этот параметр, чтобы задать, как определять это слово аккумулятора и дробные длины.
Когда вы выбираете Same as product output
, эти характеристики совпадают с теми из продукта вывод.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и дробную длину аккумулятора в битах.
Когда вы выбираете Slope and bias scaling
, можно ввести размер слова в биты и наклон аккумулятора. Смещение всех сигналов в блоках Computer Vision Toolbox 0.
Выберите, как задать размер слова и дробную длину типа данных градиентов:
Когда вы выбираете Same as accumulator
, эти характеристики совпадают с теми из аккумулятора.
Когда вы выбираете Same as product output
, эти характеристики совпадают с теми из продукта вывод.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и дробную длину частного в битах.
Когда вы выбираете Slope and bias scaling
, можно ввести размер слова в биты и наклон частного. Смещение всех сигналов в блоках Computer Vision Toolbox 0.
Выберите, как задать размер слова и дробную длину порогового типа данных:
Когда вы выбираете Same word length as first input
, пороговые соответствия размера слова тот из первого входа.
Когда вы выберете Specify word length
, введите размер слова порогового типа данных.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и дробную длину порога в битах.
Когда вы выбираете Slope and bias scaling
, можно ввести размер слова в биты и наклон порога. Смещение всех сигналов в блоках Computer Vision Toolbox 0.
Выберите, как задать размер слова и дробную длину типа выходных данных:
Когда вы выбираете Binary point scaling
, можно ввести размер слова и дробная продолжительность вывода в битах.
Когда вы выбираете Slope and bias scaling
, можно ввести размер слова в биты и наклон вывода. Смещение всех сигналов в блоках Computer Vision Toolbox 0.
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на маске блока. Для получения дополнительной информации смотрите fxptdlg
, страницу с описанием на Fixed-Point Tool в документации Simulink®.
[1] Баррон, J.L., Д.Дж. Флит, судно Беокемин и Т.А. Беркитт. Производительность методов оптического потока. CVPR, 1992.
Программное обеспечение Computer Vision Toolbox | |
Программное обеспечение Computer Vision Toolbox |