• Aucun résultat trouvé

5.2 Validation de modèle

5.2.6 Approche par lissage des résidus à partir du modèle

Cette partie présente une méthode basée sur le même principe que celle du 5.2.5. Le cadre est d’étudier la surface formée par les points yi= (αii, di)T afin d’évaluer la relation entre les résidus di

et la position (αii) des points sur la surface. La méthode développée ici est inspirée de l’approche

5.2. VALIDATION DE MODÈLE 153

approche ne fonctionne plus. Ceci mène à un procédé simple et efficace, qui semble prometteur pour les applications du chapitre3(Figure3.33, page80).

Principe

On a vu au5.2.5que les surfaces d = f (α,β) polynomiales ne fournissent pas toujours une des-

cription satisfaisante du relief des résidus dans l’espace de paramètres de position. Que peut-on faire pour mieux ajuster les résidus, ou plutôt mieux représenter la tendance des résidus dans l’espace des paramètres ?

Une idée simple est de réaliser un lissage des résidus : les résidus lissés suivent bien les formes des résidus de départ et décrivent également la tendance. C’est ce que nous faisons ici. Le principe consiste donc à remplacer le polynôme P(αii) du5.2.5par la valeur :

d0i=1

k

j/xj∈Vk(xi)

dj (5.7)

V

k(x) est l’ensemble des k plus proches voisins du point x dans l’ensemble de points de départ

D

(Figure5.25). On calcule alors le ratioρ(inspiré de la méthode précédente) :

di di’

FIG. 5.25 – Principe du lissage à partir du modèle

ρ= kd

0− d

0k2

kd − d0k2

où k.k désigne la norme euclidienne de RN, d = (d1, . . . , dN)T désigne le vecteur des résidus, d0=

(d10, . . . , dN0)T désigne le vecteur des résidus lissés, et d0= (0, . . . , 0)Tou d0= ( ¯d, . . . , ¯d)T. En reprenant les notations de la formule5.6,ρs’écrit :

ρ= ∑ N i=1[di0− ¯d]2 ∑N i=1[di− di0]2 (5.8) Il n’est pas possible ici de normaliser le ratio de la même façon que dans le cas de la régression linéaire, étant donné que d0 n’a pas d’expression paramétrique enα,β. Cependant, le ratioρvarie comme le ratio F de la régression linéaire : lorsque l’ajustement est bon, ρest petit ; lorsque l’ajustement est mauvais,ρest grand.

Notons que le numérateur et le dénominateur du ratio dépendent tous deux de k, le nombre de voisins. Il est bien sûr possible de remplacer les k plus proches voisins par une boule de taille fixe ; le

154 CHAPITRE 5. SÉLECTION ET VALIDATION DE MODÈLE

paramètre serait alors le rayon de la boule. Plus le nombre k est élevé, et plus les résidus di0sont lissés. On en déduit que :

– si k est élevé (proche de N),ρest proche de 0, – si k est petit (proche de 1),ρtend vers l’infini.

Afin de ne pas valider le modèle trop facilement, le nombre de points k a été fixé à une petite valeur en pratique (k = 10).

Cette approche conduit à l’algorithme décrit par le pseudo-code suivant :

Pour i= 1 à N faire

Chercher les k plus proches voisins i1, . . . , ik du point i

d0(i) ← f (d(i1), . . . , d(ik))

Fin Pour

(Calculer le ratio)

Remarque

L’espace de paramètres de position est finalement utilisé seulement pour la visualisation, et non plus pour la méthode elle-même, qui s’est ainsi affranchie des problèmes de pro- jections et de topologie.

Remarque

Le critère actuel est sensible aux points aberrants. C’est sans doute le prix à payer pour avoir une fonction qui suit de près les données. Par contre, on peut envisager de remplacer la moyenne locale par la médiane locale (ou toute autre fonction des di voisins). Un tel

choix fournit une surface proche des données mais moins sensible aux points isolés.

Résultats et conclusion

Résultats Le tableau suivant montre les valeurs du ratio ρ pour l’ajustement de cylindre sur les scènes «SynthCone1» et «SynthCyl2» :

SynthCyl2 SynthCone1

N 1332 1332

ρ 0.35 8.44

Le ratio détecte clairement le cas où il y a un problème du cas où il n’y en a pas.

Pour l’ajustement de cône sur la scène «angle», le relief des résidus bruts diet des résidus lissés di0

est montré figure5.26 5. Pour cette scène, qui pose problème avec la méthode par régression linéaire, on obtient la valeurρ= 106, 8, ce qui indique clairement que le modèle n’est pas satisfaisant.

Ceci a été testé dans l’algorithme d’extraction de lignes de tuyauterie (Figure3.33, page80). Dans ce contexte, le ratio a semblé prometteur.

5.3. CONCLUSION 155

FIG. 5.26 – Relief des résidus bruts (à gauche), et relief des résidus lissés (à droite) (issus d’un ajus- tement de cône sur la scène «angle»)

Discussion La question principale qui se pose concernant ce ratio est comment définir un seuil à partir duquel on peut dire que le modèle n’est plus satisfaisant. Il ne semble pas évident de trouver un tel seuil de manière théorique. On peut par contre envisager de trouver une valeur empirique, issue soit de simulations, soit de données réelles. Peut-on, de même que le test de Fisher, construire un test statistique sur ce ratio qui permettrait de fournir une valeur de probabilité ? Là encore, il est possible de réaliser des simulations en vue d’obtenir une loi empirique pourρ.

D’autre part, si l’on préfère utiliser une quantité qui est bornée, le ratio :

µ = kd − d

0k2

kd − d0k2

est compris entre 0 et 1. Ceci découle du fait que d0 est toujours un meilleur modèle que d0 pour approcher les données d.

On constate que la construction des résidus lissés mise en œuvre revient à peu près à construire un maillage surfacique avec pour surface de projection la primitive étudiée. Dans le cas où le maillage est déjà disponible, il est inutile de refaire le calcul des voisins.

Conclusion Nous avons construit ici un ratio obtenu par lissage à partir du modèle. Ce ratio est directement inspiré de la régression linéaire. L’approche par lissage conduit à un procédé simple qui n’est plus limité par des problèmes de topologie ni par les problèmes d’approximation. Cette méthode s’applique à toute surface pour laquelle on peut estimer les résidus (surfaces algébriques, splines, etc.). En pratique, cette quantité semble permettre de quantifier la qualité d’un ajustement de manière satisfaisante. Il resterait à examiner comment on peut bâtir un test à partir de ce ratio.

5.3

Conclusion

Les deux problèmes de reconnaissance de surface qui sont présentés dans ce chapitre, la sélection de modèle et la validation d’un modèle, sont complémentaires et se sont avérés intimement imbriqués. La question de la sélection de modèle est un thème très étudié en statistiques et en vision (bien que peu dans le cas de primitives géométriques). Ainsi, il existe un nombre important de critères différents. Le problème principal concerne les cas dégénérés. Mon point de vue sur cette question est que le critère de sélection est assez peu critique, mais qu’il est essentiel de définir précisément les cas que l’on considère comme dégénérés. En pratique, ceci implique de définir des valeurs de seuil. Lorsque les frontières entre les primitives sont claires, la sélection de modèle fonctionne bien, et ce même

156 CHAPITRE 5. SÉLECTION ET VALIDATION DE MODÈLE

avec des critères assez approximatifs. En particulier, la quantité e0 (ou même le résidu quadratique moyen e) donne de bons résultats en général. Par contre, sans une telle définition des cas dégénérés, le problème devient mal posé. Ceci montre notamment l’importance de la validation de modèle au sein même du problème de sélection. En d’autres termes, nous proposons pour ce problème d’utiliser des critères de sélection classiques en faisant intervenir des procédés de validation de modèles.

La validation de modèle est un problème qui est paradoxalement très peu étudié. Dans ce chapitre, des techniques originales basées sur l’étude des résidus sont présentées. Les différentes voies explo- rées ont mené à définir un ratio issu d’un lissage à partir du modèle. Les résultats obtenus en pratique avec ce ratio sont prometteurs (Figure3.33, page80).

Chapitre 6

Extraction de primitives géométriques

Ce chapitre traite du problème de l’extraction de primitives géométriques à partir d’un nuage de points. La notion d’extraction diffère de celle de l’ajustement en ce que la scène contient maintenant des points qui n’appartiennent pas au modèle que l’on souhaite extraire. Autrement dit, la scène est composée de points situés sur plusieurs surfaces et/ou de points aberrants. Les méthodes présentées dans ce chapitre sont utilisées pour l’étape initiale de l’extraction de lignes de tuyauterie, section3.2. De récents développements ont également visé à introduire ces méthodes lors de l’arrêt de l’extraction de lignes de tuyauterie en présence d’ombres (§3.2.5, page72).

Dans ce chapitre, on utilise les termes d’extraction locale et d’extraction globale. L’ extraction

locale désigne la situation où l’on impose un point précis du nuage, noté x0dans ce chapitre, autour

duquel chercher une surface. Ce type d’extraction fait intervenir des voisinages autour de ce point. Dans tout ce chapitre, ce que l’on nomme la taille d’un voisinage est un nombre de points (plus proches voisins). Par opposition, l’extraction globale désigne le cas où l’on souhaite trouver une ou plusieurs surface(s) dans la scène sans cette donnée de point, c’est-à-dire sans spécifier au départ de points autour desquels ces surfaces se trouvent.

Les méthodes développées dans les sections 6.1, 6.2, 6.3, et 6.4 se fondent sur l’hypothèse suivante concernant la scène :

H : en tout point où se trouve une surface (point non aberrant), on suppose qu’il existe un voisinage sphérique (non-réduit à un point) autour de ce point où la primitive est la seule présente (i.e. tous les points appartiennent à cette primitive au bruit près).

Une hypothèse à peu près équivalente à celle-ci consiste à dire :

H’ : en tout point non-aberrant, on suppose qu’il existe un voisinage sphérique contenant un nombre de points suffisants pour pouvoir approcher la surface par une primitive de moindres carrés.

En clair, ceci cherche à justifier l’emploi d’une méthode de moindres carrés localement, sur des voisi- nages plus ou moins petits. Cette hypothèse, illustrée sur la figure6.1, est vérifiée pour la plupart des points de nos scènes.

Les sections6.1, 6.2, 6.3, et6.4présentent les méthodes développées pour réaliser l’extraction d’une ou plusieurs primitives, localement ou globalement, respectivement de primitive(s) de type fixé ou non, basée sur l’hypothèse H’. Dans les sections 6.1, 6.2 et 6.3, nous considérons le cas le plus simple, qui est celui où les primitives que l’on souhaite extraire sont de type connu, fixé. En pratique, l’utilisateur spécifie explicitement le type de primitive à extraire parmi celles possibles (plan, sphère, cylindre, cône, tore). La section6.4présente les perspectives sur l’extraction d’une ou plusieurs primitives de type quelconque, et ouvre sur la segmentation en primitives géométriques.

158 CHAPITRE 6. EXTRACTION DE PRIMITIVES GÉOMÉTRIQUES

FIG. 6.1 – Hypothèse de validité de la méthode de moindres carrés sur des voisinages sphériques

Dans la section6.5, nous présentons une méthode pour traiter les cas où l’on ne peut plus faire l’hypothèse H’. Cette méthode se base sur les échantillons minimaux de points. Un échantillon mini- mal de points est un ensemble de points dont le nombre d’éléments est le minimum nécessaire pour construire une primitive de type donné. Nous avons choisi de désigner un tel ensemble minimal par le terme de quorum, par analogie avec son sens commun : nombre de membres qu’une assemblée doit réunir pour pouvoir valablement délibérer (Larousse).

Recherche des k plus proches voisins d’un point dans un nuage

Le principe est le suivant : on considère tout d’abord une liste d’indices de k points initiaux. Cette liste de k indices est d’abord triée par ordre de distance de chaque point au point x0. Ensuite on

procède à une lecture de la liste de points (tout le nuage) avec insertion éventuelle dans la liste triée des k points.

L = (i1, . . . , ik) ← Indices de k points initiaux

Trier L par ordre des distances des points à x0(algorithme quicksort)

δ2 ← kx(ik) − x0k2(carré de la distance du point le plus éloigné)

Pour i = 1 à N faire

Si kx(i) − x0k2<δ2 faire

Insérer i dans la liste triée L (dichotomie)

δ2 ← kx(ik) − x0k2

Fin Si Fin Pour

Retourner la liste des k points

Entrées : nuage de N de points, indice i0du point x0dans le nuage,

nombre k de voisins cherchés (k ≤ N)

Sorties : Liste L, triée par ordre de distance à x0.

Paramètres : Choix des k points initiaux.

Il est important de noter que, sans post-traitement, la liste de points rendue en sortie de cet algo- rithme est triée par ordre de distance de chaque point à x0.

6.1. EXTRACTION LOCALE D’UNE PRIMITIVE DE TYPE FIXÉ 159

Comment choisir les k points initiaux ? Si le nuage suit l’ordre du scan, et si l’on connaît l’indice i0du point x0dans le nuage (ce n’est pas vrai si le point ne fait pas partie du nuage !), on peut

tirer parti de la structure en ligne. Il existe cependant des exceptions : fins de ligne, fins de point de vue (ou de sous-point de vue). D’autre part, ceci n’est pas tout le temps possible (par exemple, pour l’estimation des normales sur un voisinage, les points ont déjà pu être retriés). Bien-entendu, on peut dans ce cas former une liste contenant les mêmes indices et qui reproduit le même ordre que la liste du nuage de points. Cependant, ceci nécessite une lecture de toute la liste des N points, avec pour chaque indice un parcours de la liste des k indices.

Croissance de primitive dans un nuage de points

Nous distinguons deux types de croissance :

– Croissance bornée. Le voisinage sur lequel on a déterminé la primitive indique des limites dans l’espace. Par exemple, les points se trouvant sur un cylindre peuvent nous permettre d’estimer les extrémités de ce cylindre. Mais à cause des voisinages sphériques, on n’a pas forcément pris en compte tous les points qui se trouvent sur la primitive entre les limites trouvées. Dans l’exemple du cylindre, on n’a sans doute pas pris en compte les points qui se trouvent sur toute la circonférence de la section circulaire. On effectue donc un rajout de ces points. C’est ce que nous appelons croissance bornée. Les dimensions de la primitive ne sont pas changées par cette opération.

– Croissance non-bornée. Dans certains cas, on veut rajouter tous les points de la scène qui se trouvent sur la primitive (infinie) trouvée. Il s’agit là d’une croissance non-bornée.

Dans les deux cas, on doit définir une épaisseur pour rajouter les points. En pratique, on peut utiliser comme épaisseur une valeur proportionnelle à l’erreur quadratique trouvée lors de l’ajustement de la primitive.

La croissance bornée ne pose pas de problème particulier. Par contre, la croissance non-bornée pose le problème de l’arrêt. Il n’est pas réaliste de considérer que l’on peut toujours rajouter tous les points de la scène à la primitive (par exemple, lorsqu’il y a des murs). Tout dépend de ce que l’on veut obtenir :

– les limites de la primitive sont-elles importantes ?

– est-ce un problème de considérer trop de points dans la primitive ? (points qui ne sont plus considérés par la suite).

Il n’est pas aisé de stopper la croissance d’une primitive afin d’éviter les fausses intersections avec d’autres objets.

6.1

Extraction locale d’une primitive de type fixé

Comme cela a été dit en introduction, l’extraction locale concerne la recherche d’une surface autour d’un point connu x0. Or, puisque l’on se place dans l’hypothèse H, il existe un voisinage

autour du point sur lequel la primitive recherchée est la seule présente. Plusieurs idées sont alors possibles pour extraire la primitive :

– Si on connaît la taille du voisinage appropriée, ou si une grande précision n’est pas recherchée pour la primitive obtenue, on peut raisonner sur un petit voisinage, de taille fixée.

– Si on cherche la taille de voisinage la plus grande possible afin d’améliorer la précision de la primitive estimée, on est amené à essayer plusieurs tailles différentes. Ceci conduit à un procédé multi-résolution.

160 CHAPITRE 6. EXTRACTION DE PRIMITIVES GÉOMÉTRIQUES

Ces deux idées sont développées dans la suite.