OpenCV — алгоритм FLANN не получает достаточной точки соответствия

Я новичок компьютерного зрения.
Я использую этот алгоритм http://docs.opencv.org/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html предложенный Open CV для того, чтобы вычислить некоторые совпадающие точки между 2 сценами одного и того же окружения (вид с воздуха на город) после рото-трансляции камеры, которая снимает изображения.
Камера и окружающая среда симулируются (поэтому нет изменения яркости, искажений и т. Д.)
Очевидно, что частота кадров достаточно высока для того, чтобы изображения в значительной степени перекрывались.
После этого я должен использовать эту точку для вычисления матрицы аффинного преобразования, которая описывает движение, выполняемое камерой (высота, с которой снимаются изображения, не изменяется со временем).
Так что мне нужно, для каждой пары изображений, по крайней мере 2 совпадающие точки ..
Моя проблема в том, что часто совпадающие точки меньше 3 ..
Существует ли какой-нибудь надежный метод, который лучше подходит для моих целей?
Спасибо

0

Решение

Я считаю, что фильтрация, реализованная в приведенном вами примере, довольно наивна. Предположим, вы получили одно совпадение с действительно высоким показателем (с расстоянием между дескрипторами), а затем min_dist действительно маленький и, возможно, отфильтровывает хорошие совпадения. Другими словами, совпадения, имеющие лучший результат, не обязательно являются геометрически лучшими (две характеристики могут выглядеть очень похожими, но не соответствовать реальной ситуации) …

То, что вы можете попытаться сделать, это:

  • Удалить реализацию фильтрации; держать все спички
  • Вычислить матрицу гомографии, используя findHomography()
    • findHomography() позволяет использовать mask чтобы отслеживать следы
  • Нарисуйте только те совпадения, которые отмечены как внутренние mask

Это должно быть лучшей проверкой.

0

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

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

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