RANSAC-ähnliche Implementierung für beliebige 2D-Mengen

TL; DR: Gibt es eine C ++ - Implementierung von RANSAC oder anderen robusten Korrespondenzalgorithmen, die mit beliebigen 2D-Punktmengen frei verwendbar ist?

Ich weiß, dass es viele Implementierungen gibt, die Korrespondenzalgorithmen wie RANSAC (Random Sampling Consensus) enthalten oder verwenden. Sie werden häufig in Computer Vision-Anwendungen verwendet und finden sich in Bibliotheken wie OpenCV, PCL, etc. Der allgemeine Algorithmus ist bekannt und verschiedene Website lists die verschiedenen Schritte.

Nun, alle "fortgeschrittenen" Implementierungen (für OpenCV, PCL usw.), die ich gefunden habe, beziehen sich auf bestimmte Arten von Problemen, denen eine Reihe von Annahmen zugrunde liegen. In OpenCV möchten Sie die Homografiematrix zwischen einem ersten Bild und einem Teil eines zweiten Bildes finden dieses Beispiel). In PCL befinden Sie sich im Bereich der 3D-Punktwolken und können meines Wissens nur bestimmte, bereits definierte Formen eine Linie, eine Kugel usw.).

Was ich "einfach" machen möchte, ist, eine beliebige 2D-Menge von Punkten (die etwas Rauschen enthalten können) zu nehmen und eine Entsprechung in einer größeren Menge von 2D-Punkten zu finden (die etwas Rauschen und auch andere Punkte enthalten). Es muss kein spezielles Modelltraining außer der Eingabe der beiden Punktmengen erforderlich sein. Ich bin gerade dabei, es selbst in C ++ zu implementieren, aber:

Ich bin keineswegs ein erfahrener Programmierer und brauche das Ganze, um ziemlich schnell ausgeführt zu werden; Die frühere Implementierung bekannter Algorithmen (Kantenerkennung, Gaußsche Unschärfe usw.) durch mich hat sich als erheblich langsamer (> 10x) erwiesen als die bewährte Implementierun

Das einfache Abzocken einer bereits vorhandenen Open-Source-Implementierung (wie OpenCVs) hat sich als über meine derzeitigen Fähigkeiten hinausgehend erwiesen (zu viele Abhängigkeiten und virtuelle Implementierungsvorlagen usw.).

So, wenn jemand eine frei verwendbare (BSD-ähnliche) und bewährte C ++ - Implementierung kennt, die ich verpasst habe ...

Antworten auf die Frage(6)

Ihre Antwort auf die Frage