RANSAC-подобная реализация для произвольных 2D-множеств

TL; DR: существует ли реализация CANS для RANSAC или других надежных алгоритмов соответствия, которые можно свободно использовать с произвольными двумерными наборами точек?

Я знаю, что существует много реализаций, которые включают в себя или используют алгоритмы соответствия, такие как RANSAC (Random Sampling Consensus). Они часто используются в приложениях компьютерного зрения и находятся в таких библиотеках, какOpenCV, PCLи т. д. Общий алгоритм хорошо известен и различный сайтсписки разные шаги.

Теперь все «продвинутые» реализации (сделанные для OpenCV, PCL и т. Д.), Которые я обнаружил, предназначены для конкретных типов проблем с базовым набором предположений. В OpenCV вы хотите найти матрицу гомографии между первым изображением и частью второго изображения (этот пример). В PCL вы находитесь в сфере трехмерных облаков точек и, насколько мне известно, способны сопоставлять только определенные, уже определенные формы (линия, сфера и т. д.).

То, что я «просто» хочу сделать, - это взять произвольный 2D-набор точек (который может содержать некоторый шум) и найти соответствие в большем наборе 2D-точек (которые также содержат некоторый шум и другие точки). Для этого не требуется никакого специального обучения модели, кроме ввода двух наборов точек. Я сам в процессе реализации в C ++, но:

Я ни в коем случае не опытный программист, и мне нужно, чтобы все это выполнялось достаточно быстро; предыдущая реализация, выполненная мной хорошо известными алгоритмами (обнаружение контуров, размытие по Гауссу и т. д.), оказалась значительно медленнее (> 10x), чем проверенная реализация.

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

Итак, если кто-нибудь знает о свободно используемой (как BSD) и проверенной реализации C ++, которую я пропустил ...

Ответы на вопрос(3)

Ваш ответ на вопрос