Comment déterminer la qualité des correspondances ICP?


14

Dans les frontaux SLAM qui utilisent l'algorithme ICP (Iterative Closest Point) pour identifier l'association entre deux nuages ​​de points correspondants, comment pouvez-vous déterminer si l'algorithme est bloqué dans un minimum local et renvoie un résultat erroné?

Le problème est défini comme correspondant à deux nuages ​​de points qui sont tous deux des échantillons d'une structure de surface arbitraire, et les zones échantillonnées ont un chevauchement de 0 à 100%, ce qui est inconnu. Je sais que la variante Trimmed ICP fonctionne en essayant itérativement de déterminer le chevauchement, mais même celui-ci peut être bloqué dans un minimum local.

Une approche naïve consisterait à rechercher l'erreur quadratique moyenne des paires de points identifiées. Mais sans une estimation de l'échantillonnage, cela semble un seuil risqué. Dans le manuel du Leica Cyclone, ils suggèrent une inspection manuelle de l'histogramme d'erreur de paire. S'il a une forme gaussienne, l'ajustement est bon. S'il y a une chute linéaire, le match est probablement mauvais. Cela me semble plausible, mais je ne l'ai jamais vu utilisé dans un algorithme.


Jakob, en êtes-vous jamais arrivé à la fin? Face à un problème similaire, j'aimerais entendre ce que vous avez appris au cours du processus.
Fred

Non, pour moi, c'est encore ouvert.
Jakob

Réponses:


2

La plupart des méthodes ICP simples utilisent une approche de type moindres carrés. Il est courant et plus facile à modéliser lorsque l'on suppose qu'un modèle d'erreur gaussien corrompt les données du nuage de points. Dans ce cas, la composante d'ajustement la moins carrée de l'algorithme ICP produit un modèle d'erreur gaussien pour ses paramètres de solution avec une variance estimée.

Autrement dit, si vous avez accès à l'erreur après la correspondance, vous pouvez estimer une erreur gaussienne sur les paramètres de votre transformation de la même manière que vous estimeriez l'erreur dans toute autre régression linéaire.


L'utilisation d'un seuil sur l'erreur du moindre carré était ce à quoi je faisais référence dans la question. Je l'ai également utilisé dans des applications, mais cela semblait être un paramètre très fragile qui est tout à fait spécifique au scénario / environnement.
Jakob

1

Dans le cas où vous disposez d'informations provenant d'autres capteurs (par exemple, l'odométrie des encodeurs de roue), vous pouvez l'utiliser lorsque la transformation du corps rigide suggérée par le laser Scanner est loin.

Rappelez-vous que sur les longues trajectoires, le chemin de l'odométrie diverge de la vérité au sol mais localement, il est assez précis.

PS. C'est une question assez intéressante, alors faites-nous savoir comment vous l'avez fait au cas où vous auriez réellement résolu le problème.


0

Je pense que la meilleure approche serait d'utiliser un ensemble de données contenant une vérité fondamentale. L'ensemble de données qui est le plus souvent cité dans la littérature est décrit dans l'article "Une référence pour l'évaluation des systèmes SLAM RGB-D". Ils décrivent également quelques mesures pour comparer votre résultat d'estimation de pose avec la vérité du terrain. J'espère que cela t'aides. Codage heureux.


Hé, merci pour la réponse, mais pas tout à fait ce que je cherchais. Je suis intéressé à connaître la qualité du match lorsqu'il n'y a pas de vérité fondamentale disponible. Ceci est pertinent pour rejeter les résultats du PCI.
Jakob
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.