Отследите точки в видео с помощью алгоритма Kanade-Lucas-Tomasi (KLT)
Объект средства отслеживания точки отслеживает набор точек с помощью Kanade-Lucas-Tomasi (KLT), отслеживающего функцию алгоритма. Можно использовать средство отслеживания точки для видео стабилизации, оценки движения камеры и объектного отслеживания. Это работает особенно хорошо на отслеживание объектов, которые не изменяют форму и на тех, которые показывают визуальную структуру. Средство отслеживания точки часто используется для краткосрочного отслеживания в качестве части большей среды отслеживания.
В то время как алгоритм средства отслеживания точки прогрессирует в зависимости от времени, точки могут быть потеряны из-за подсветки изменения из плоского вращения или ясно сформулированного движения. Чтобы отследить объект за длительный период времени, вы, возможно, должны повторно получить точки периодически.
Отслеживать набор точек:
Создайте объект vision.PointTracker
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
pointTracker = vision.PointTracker
pointTracker = vision.PointTracker(Name,Value)
pointTracker = vision.PointTracker
возвращается средство отслеживания точки возражают, что отслеживает набор точек в видео.
свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки. Например, pointTracker
= vision.PointTracker(Name,Value
)pointTracker = vision.PointTracker('NumPyramidLevels',3)
Инициализируйте процесс отслеживания:
Чтобы инициализировать процесс отслеживания, необходимо использовать initialize
, чтобы задать начальные местоположения точек и начальный кадр видео.
initialize(pointTracker,points,I)
инициализирует точки, чтобы отследить и устанавливает начальный кадр видео. Начальные местоположения points
, должен быть M-by-2 массив [x y] координаты. Начальный кадр видео, I
, должен быть 2D шкалой полутонов или изображением RGB и должен быть одного размера и тип данных, когда кадры видео передали методу step
.
detectFASTFeatures
, detectSURFFeatures
, detectHarrisFeatures
и функции detectMinEigenFeatures
являются немногими из многих способов получить начальные точки для отслеживания.
Для версий ранее, чем R2016b, используйте функцию step
, чтобы запустить Систему object™ алгоритм. Аргументы к step
являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.
Например, y = step(obj,x)
и y = obj(x)
выполняют эквивалентные операции.
[points,point_validity] = pointTracker(I)
[points,point_validity,scores] = pointTracker(I)
setPoints(pointTracker,points)
setPoints(pointTracker,points,point_validity)
[
отслеживает точки во входном кадре, points
,point_validity
] = pointTracker(I
)I
.
[
дополнительно возвращает счет уверенности к каждой точке.points
,point_validity
,scores
] = pointTracker(I
)
setPoints(pointTracker,
устанавливает точки для отслеживания. Функция устанавливает M-by-2 массив points
)points
[x
y] координаты с точками отслеживать. Можно использовать эту функцию, если точки должны быть повторно обнаружены, потому что слишком многие из них были потеряны во время отслеживания.
setPoints(pointTracker,
дополнительно позволяет вам отметить точки или как допустимые или как недопустимые. Вход логический векторный points
,point_validity
)point_validity
длины M, содержит истинное или ложное значение, соответствующее валидности точки, которая будет прослежена. Длина M соответствует числу точек. Ложное значение указывает на недопустимую точку, которая не должна быть прослежена. Например, можно использовать эту функцию с функцией estimateGeometricTransform
, чтобы определить преобразование между местоположениями точки в предыдущих и текущих кадрах. Можно отметить выбросы как недопустимые.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
[1] Лукас, Брюс Д. и Тэкео Кэнэйд. “Итеративный Регистрационный Метод Изображений с Приложением к Видению Стерео”, Продолжения 7-й Международной Объединенной Конференции по Искусственному интеллекту, апрель 1981, стр 674–679.
[2] Tomasi, Карло и Тэкео Кэнэйд. Обнаружение и отслеживание функций точки, кафедры информатики, Университета Карнеги-Меллон, апрель 1991.
[3] Ши, Джиэнбо и Карло Томази. “Хорошие Функции, чтобы Отследить”, Конференция по IEEE по Компьютерному зрению и Распознаванию образов, 1994, стр 593–600.
[4] Kalal, Зденек, Krystian Mikolajczyk и Иржи Матас. “Прямая обратная Ошибка: Автоматическое обнаружение Отслеживания Отказов”, Продолжения 20-й Международной конференции по вопросам Распознавания образов, 2010, страницы 2756-2759, 2010.
detectHarrisFeatures
| detectMinEigenFeatures
| detectSURFFeatures
| estimateGeometricTransform
| imrect
| insertMarker
| vision.HistogramBasedTracker