Try   HackMD

Lien de la note Hackmd

Introduction

On sait obtenir de l'info en 3D sous la forme d'un nuage de points (sous forme de nuage de points, carte de disparite).

Comment valoriser cette donnee ?

On peut se localiser
Detection d'objets

  • Visualisation 3D
  • Reconstruction de modele 3D
  • Building Information Modeling
  • Clustering 3D
  • Dimensionnement 3D
  • Detection d'objets 3D
  • Modele numerique de terrain
  • Navigation autonome
  • etc

Comment passer d'un nuage de points a une donnee a valeur ajoutee ?

  • Analyse 3D
  • Segementation
  • Recalage

Analyse de Surface et Reconstruction 3D

Segmentation semantique

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

But:

  1. segmenter en temps reel tous les points
  2. segmenter toutes les donnees accumulees

Utile pour les vehicules autonomes

Reconstruction 2D

Exemple de problematique en 2D:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Dans la realite, le probleme n'est pas si simple

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Extraction de la surface

  • Discretisation Octree (1 point par cellule)

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • Calcul d'un champ de vecteurs

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • Calcul de la fonction indicatrice

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • Extraction de l'isosurface

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Reconstruction 3D

En 3D, ca donne:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Voxelisation

Differentes methodes de voxelisation

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Maillage

Ensemble de sommets connectes

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Analyse de surface

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Calculs de normales par ACP:

  • On cherche le meilleur plan approche dans le voisinage d'un point
    Xi0
    • Les points du voisinage sont notes
      Xi
  • Equation d'un plan
    ntX=d,n=1
  • Distance signee d'un point au plan:
    d(Xi,P)=ntXid

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Resolution

  • Methode des moindres carres
  • Resolution de l'equation de minimisation pour le plan

Fonction a minimiser: $f(n,d)=\sum_{i=1}m(ntX_i-d)^2

  • 4 parametres:
    (n,d)
    , 1 contrainte:
    n=1

On pose:

  • Barycentre des points
    G=1mi=1mXi
  • Matrice de covariance des points

Mcov=1mi=1m(XiG)(XiG)

Le meilleur plan approche est defini par:

  • Normale
    nmin
    • Vecteur propre norme associe a la plus petite valeur propre de
      Mcov
    • NB: indetermine a un changement de sens pres
  • Distance
    dmin
    • dmin=ntG

La solution fait appel a l'analyse des directions principales de la matrice de covariance: Analyse en Composantes Principales (ACP)

Segmentation 3D

Definition

Subdiviser (partitionner) le nuage de points 3D en sous-ensembles connexes correspondants a des modeles simples

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Methodes de segmentation

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Croissance de surface

Principe

  • A partir de "surfaces germes" ou "graines" (seed surfaces) dans le nuage de point
  • Agregation progressive des points voisins appartenant a la meme surface

Remarque: extension de l'algorithme "croissance de regions" pour les images

Pour chaque point, un calcul de la normale du plan dans un voisinage:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Critere d'agregation:

  • Co-normalite:
    α=arccos(n1,n2)αseuil
    • Normales dans le meme sens
  • Coplanarite:
    d=max(|r12n1|,|r12n2|)dseuil
    • Points sur le meme plan

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Clustering

Definition

Regroupement de donnees en paquets homogenes selon des caracteristiques commnunes

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

DBSCAN

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
      xi
      non alignes
    • Le plan est defini par:
      • L'un des points, par exemple
        x1
      • Une normale unitaire
        n
        , par exemple definie par:

n=(x2x1)(x3x1)(x2x1)(x3x1)

Vote:

  • Nombre de points compris dans un espace a une certaine distance
    δ
    de la surface calculee

Probabilites:

  • Hypotheses
    • Plusieurs surfaces possibles, points non bruites
    • N
      points dans le nuage de points
    • n
      points appartiennet a la surface recherchee
    • q
      points pour definir la surface (quorum)
  • Probabilites de trouver la surface recherchee:
    • Avec
      1
      tirage aleatoire:
      p=(nN)q
    • Avec
      T
      tirages aleatoires
      p=1(1(nN)q)T

Nombre de tirages necessaires:

  • Nombre de tirage aleatoires
    Tmin
    necessaires pour avoir une probabilite
    pt
    de trouver une surface d'au moins
    nmin
    points

Tmin=log(1pt)log(1(nminN)q)

  • En supposant
    nmin<<N:Tminlog(11pt)(Nnmin)q

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

(R,t) 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
    (R,t)
    qui minimise la distance entre ces points

Calcul de la transformation
(R,t)

Resolution par la methode des moindres carres:

On calcule:

f(R,t)=i=1npi(Rpi+t)2f:{SE3R+(R,t)f(R,t)

On cherche:

(R,t) tel que
(R,t)=argminR,tf(R,t)

Solution par decomposition

TODO

Resolution par Singular Value Decomposition (SVD)

  • Entree: jeux de points
    (P,P)
  • sortie: Matrice de rotation
    R
    , vecteur translation
    t
  • Algorithme
    • Determiner les barycentres
      pm=1ni=1n
      et
      pm
    • Calculer la matrice
      H
    • Decomposer
      H
      en valeurs singulieres
      (U,V,Σ)
      TODO
    • Calculer
      R=VUT
      et
      t=pmpm

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
    O(n1,n2)
    , le reste en
    O(n1+n2)
  • 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):
    O(n1log(n2))

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
  • Rejection des outliers