Я хочу сравнить дескрипторы SURF на одном изображении (A) с дескрипторами на нескольких других изображениях (B, C, D, ..), чтобы найти изображение, наиболее похожее на A. Дескрипторы имеют 64 измерения.
Используя C # и Emgu, сопоставление выполняется путем сравнения дескрипторов A с B, затем C, затем D и так далее. Это очень медленно, когда количество изображений превышает 10, потому что нужно искать многие нерелевантные дескрипторы.
Чтобы ускорить процесс, правильный путь (в соответствии со статьями) состоит в том, чтобы построить одно дерево kd для дескрипторов в (B, C, D, ..), чтобы быстро найти поиск дескриптора в A .DK-дерево разбито по размерам в соответствии с уровнем. Первое разделение определяется по 1-му измерению, второе - по 2-му измерению и т. Д. Однако при большом количестве измерений для дескрипторов (64) преимущество использования KD-дерева становится меньше.
Итак, мой вопрос: какой опыт или знания у вас есть при использовании дерева KD / другого метода для сопоставления дескрипторов SURF от одного изображения (A) до нескольких изображений (B, C, D ..). Что работает хорошо и не очень хорошо, и вы сделали что-нибудь подобное?
FLANN будет вариантом здесь, так как он используется OpenCV, но я не могу найти версию для C #. Приблизительно Nearest Neightboor также будет возможностью ускорить kd-дерево, но хорошо ли это работает с соответствующими изображениями?
С наилучшими пожеланиями
Мортен