Я пытаюсь понять более глубокий уровень соответствия функций с помощью FLANN
и, похоже, есть два полезных подхода: с индексом и без него.
Вот SO
вопрос о сопоставлении с помощью FLANN
с indicies:
Как использовать opencv flann :: Index?
И вот пример соответствия с использованием FLANN
без indicies:
https://github.com/Itseez/opencv/blob/master/samples/cpp/matching_to_many_images.cpp
Конечно, я вижу различия в коде, но я пытаюсь понять, в чем преимущества использования одного подхода перед другим. Я знаю, что в базах данных добавление индекса увеличивает производительность во многих случаях. Это аналогично при использовании FLANN
соответствовать особенностям ???
У кого-нибудь есть опыт с этим?
Индекс соответствия характеристик — это способ обмена точности на скорость. То, что делает FLANN, называется «приблизительный поиск ближайшего соседа». Это означает, что вы немного теряете точность (например, в определенную долю раз вы находите следующего лучшего ближайшего соседа, а не реального лучшего), но вы получаете ускорение на порядки. Так как сами данные являются зашумленными, некоторое приближение на этапе поиска обычно допустимо. Библиотека KGraph предоставляет индекс, который обычно работает в несколько раз быстрее, чем FLANN с той же точностью.
Других решений пока нет …