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