Ja, ICP kann auf dieses Problem angewendet werden, wie Sie es bei der Bemusterung der Oberfläche vorschlagen. Es wäre am besten, wenn Sie alle verfügbaren Flächen in Ihrem Laserscan haben, ansonsten müssen Sie möglicherweise unsichtbare Flächen aus Ihrem Modell entfernen (abhängig davon, wie viele davon vorhanden sind).
Eine Möglichkeit, ein Modell automatisch vorzubereiten, indem man einige der versteckten Flächen loswird, ist die Berechnung der konkaven Hülle, mit der verdeckte Flächen (z. B. Flächen, die nicht dicht an der konkaven Hülle liegen) verworfen werden können. Abhängig davon, wie stark das Modell beteiligt ist, kann dies erforderlich sein oder auch nicht.
ICP funktioniert gut, wenn eine gute erste Schätzung gegeben, da es Punkte ignoriert, die nicht in Bezug auf die aktuelle Schätzung schließen. Wenn ICP nicht mit einer guten Ausrichtung übereinstimmt, können Sie es mit mehreren zufälligen Neustarts versuchen, um dieses Problem zu beheben, indem Sie die beste Ausrichtung auswählen.
Eine kompliziertere Lösung ist das lokale Feature-Matching. Sie probieren und berechnen einen invarianten Deskriptor wie SHOT oder FPFH. Sie finden die besten Übereinstimmungen, weisen nicht konsistente Übereinstimmungen zurück, verwenden sie, um eine gute anfängliche Ausrichtung zu erzielen, und verfeinern sie anschließend mit ICP. Je nachdem, wie robust und schnell der Random-Restart-ICP ist, benötigen Sie diesen Schritt möglicherweise nicht.
Das Video sieht interessant aus, aber diese Antwort nicht über die erforderlichen Informationen, um Ihre Ergebnisse zu reproduzieren. Können Sie den von Ihnen verwendeten Ansatz zusammenfassen und die relevanten OpenCv-Aufrufe anzeigen? Ist der vollständige Code irgendwo verfügbar? – HugoRune
Der vollständige Code ist verfügbar unter https://github.com/tolgabirdal/opencv_contrib/tree/master/modules/surface_matching –