Перейти к содержимому
Compvision.ru
BeS

Идеальный FeatureTracker

Recommended Posts

Всем привет!

 

В большинстве задач, связанных с навигацией и дополненной реальностью, одной из основных задач является детектироване и трекинг особых точек. И вот тут возникла у меня мысль, а существует ли идеальный алгоритм для трекинга.

Основных требований для такого трекинга три:

  • Трекинг однажды найденных точек продолжительное время. Для того, чтобы можно было исопльзовать темпоральную компоненту для сглаживания результатов(например, используя фильтр Калмана).
  • Все текствурные области, видимые в кадре, должны быть покрыты фичами(если они там есть), чтобы не было большщих "черных пятен". Для того, чтобы при резких вращениях трекинг не терялся, если есть хотябы минимальное пересечение между кадрами.  
  • Все это должно максимально быстро работать, т.к. обычно поверх двухмерного трекинга фич еще много чего нужно считать, а задачи такого типа требует realtime скорости работы.

Как правило есть два простых подхода к 2D трекингу фич:

  • Задавать минимальное число фич для трекинга, и добавлять новые фичи только в том случае, если мы трекаем фич меньше, чем заданно. Такой подход относительно неплохо работает в том случае, когда камера движется вперед и действительно теряет часть точек с течением времени. Но если камера движется назад, то она может долгое время трекать фичи, найденные на первом кадре, которые через некоторое время начинают занимать маленькую площадь кадра(но при этом размещаться очень плотно), что очень плохо. 
  • Использовать только 2 кадра для трекинга. Тут все понятно, каждый раз полностью обновляем набор фич, имеет неплохое покрытие кадра фичами, но при этом теряем темпоральную информацию.

Идеал по идее должен лежать где-то по середине между этими двумя подходами, но статей с описанием подобных алгоритмов я не встречал.

 

Напрашиваются только тяжелые алгоритмы для оценки текстурности областей и площади/плотности покрытия области фичами, типа использования Триангуляции делоне, grid-детектора обновляющего информацию на каждом кадре и т.п.

 

Может кто-то сталкивался с подобной задачей, или наталкивался на работы с описанием? Было бы интересно узнать альтернативные мнения.

Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ага, тема интересная.

Давай начнём с какой-нибудь точки отсчёта. Например этой.

Что там сделано: фичи типа FAST. Тречатся пока не потеряются, длина истории задаётся.

Каждые N кадров ищутся новые фичи и добавляются в набор, старые при этом не удаляются.

Работать может как быстро, так и не очень. Задаётся степенью чувствительности.

 

Ммм... Как тебе результат, показанный на видео?

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ага, тема интересная.

Давай начнём с какой-нибудь точки отсчёта. Например этой.

Что там сделано: фичи типа FAST. Тречатся пока не потеряются, длина истории задаётся.

Каждые N кадров ищутся новые фичи и добавляются в набор, старые при этом не удаляются.

Работать может как быстро, так и не очень. Задаётся степенью чувствительности.

 

Ммм... Как тебе результат, показанный на видео?

Смотрится очень даже интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×