C'est l'un des algorithme de clustering les plus repandus
Principe:
Choix d'un point graine pour la region
Identification des voisins du point
Pour chaque point voisin
Si la densite locale de points est suffisante, ajout a la region
Sinon, labellisation en tant que bruit
On continue jusqu'a ne plus pouvoir etendre la region
On peut jouer sur 2 parametres:
Le rayon de recherche des voisins
La quantite minimale de voisin ou densite
RANSAC
RANdom SAmple Consensus
Methode de vote sur des echantillons aleatoires de surfaces
Echantillons calcules a partir du nombre minimal de points necessaires pour definir la surface(quorum)
Vote: un nombre de points du nuage englobes dans un espace entourant chaque surface
Le nombre de votes est decide en fonction d'un calcul de probabilites
Tres efficace pour les grandes surfaces en nombre inconnu dans un grand nuage de points
Les surfaces extraites ne sont pas connectees entre elles
Primitives geometriques et quorum de points:
Droite:
Quorum = 2 points non alignes
Plan:
Quorum = 3 points non alignes
Le plan est defini par:
L'un des points, par exemple
Une normale unitaire , par exemple definie par:
Vote:
Nombre de points compris dans un espace a une certaine distance de la surface calculee
Probabilites:
Hypotheses
Plusieurs surfaces possibles, points non bruites
points dans le nuage de points
points appartiennet a la surface recherchee
points pour definir la surface (quorum)
Probabilites de trouver la surface recherchee:
Avec tirage aleatoire:
Avec tirages aleatoires
Nombre de tirages necessaires:
Nombre de tirage aleatoires necessaires pour avoir une probabilite de trouver une surface d'au moins points
En supposant
Exemple:
Hough 3D
Principe:
Methode de vote dans l'espace dicretise des parametres
Chaque point du nuage genere des votes de surfaces possibles dans l'espace des parametres
La cellule qui remporte le plus de votes est retenue comme surface
Generalisation de la transformee de Hough 2D (image)
Detection de droites
TODO Probleme
Deep learning
Recalage 3D
Point Set Registration, Point Matching:
Processus d'alignement de jeux de points TODO
Iterative Closest Point
ICP
Determination de la transformation rigide entre les deux nuages de points
Principe
Appariement des points du nuage a recaler au point le plus proche dans l'autre nuage (approche de "nearest neighbor")
Calcul de la transformation qui minimise la distance entre ces points
Calcul de la transformation
Resolution par la methode des moindres carres:
On calcule:
On cherche: tel que
Solution par decomposition
TODO
Resolution par Singular Value Decomposition (SVD)
Entree: jeux de points
sortie: Matrice de rotation , vecteur translation
Algorithme
Determiner les barycentres et
Calculer la matrice
Decomposer en valeurs singulieres TODO
Calculer et
Pseudo code ICP:
Recalage approximatif P'->P
Repeter:
- Association de donnees P' -> P
- Calcul de la transformation (R, t)
- Application de la transformation au nuage de point P'
- Calcul de la distance entre les nuages
Tant que:
- Distance normalisee > seuil
- Et nombre d'iterations < maximum d'iterations
Temps de calcul:
Appariement en , le reste en
Acceptable pour les petits nuages de points, trop lent pour de gros nuages de points
Necessite de sous-enchatilloner
Possibilite d'acceleration avec ANN (Approximate Nearest Neighbor):
Approximate Nearest Neighbor (ANN)
Principe
Pre-calcul d'un kd-tree pour partitionner l'espace
Recherche dichotomique avec distance seuil
Variante ICP:
Metrique point a plan (point to plane)
Echantillonage: regulier, aleatoire, base sur les normales