C ++ / OpenCV — разница между сопоставлением индекса Flann и сопоставлением Flann

Я пытаюсь понять более глубокий уровень соответствия функций с помощью FLANNи, похоже, есть два полезных подхода: с индексом и без него.

Вот SO вопрос о сопоставлении с помощью FLANN с indicies:
Как использовать opencv flann :: Index?

И вот пример соответствия с использованием FLANN без indicies:
https://github.com/Itseez/opencv/blob/master/samples/cpp/matching_to_many_images.cpp

Конечно, я вижу различия в коде, но я пытаюсь понять, в чем преимущества использования одного подхода перед другим. Я знаю, что в базах данных добавление индекса увеличивает производительность во многих случаях. Это аналогично при использовании FLANN соответствовать особенностям ???

У кого-нибудь есть опыт с этим?

0

Решение

Индекс соответствия характеристик — это способ обмена точности на скорость. То, что делает FLANN, называется «приблизительный поиск ближайшего соседа». Это означает, что вы немного теряете точность (например, в определенную долю раз вы находите следующего лучшего ближайшего соседа, а не реального лучшего), но вы получаете ускорение на порядки. Так как сами данные являются зашумленными, некоторое приближение на этапе поиска обычно допустимо. Библиотека KGraph предоставляет индекс, который обычно работает в несколько раз быстрее, чем FLANN с той же точностью.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]