1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
\subsection{Tools > Statistics > Statistical test}
\label{subsection:statisticalTest}
\begin{figure}[!htb]
\begin{center}
\includegraphics[width=0.4\textwidth]{Partie3_Fonctions/statisticalTestDlg.png}
\caption{\label{fig:statisticalTestDlg}Exemple d'estimation automatique des paramtres d'une loi normale pour un champ scalaire}
\end{center}
\end{figure}
\index{champ scalaire}
\index{statistiques!test}
\index{statistiques!paramtres}
\index{Gauss|see{loi normale}}
Cette fonction, centrale dans \emph{CloudCompare}, permet d'appliquer un test du $\chi^{2}$ local sur un nuage de point muni d'un champ scalaire.
Le test du $\chi^{2}$ est appliqu chaque point partir de l'histogramme des valeurs scalaires de ses $n$ voisins ($n$ tant
un des paramtres de l'algorithme). Le test confronte cet histogramme\index{histogramme} avec une distribution thorique deux paramtres ($\mu$
et $\sigma$ dans le cas d'une loi normale par exemple).
\\
\par
Avant de spcifier les paramtres, l'utilisateur doit choisir le type de distribution thorique (il a le choix actuellement entre
\emph{Gauss} et \emph{Weibull}). Le rsultat est un nouveau champ scalaire (une valeur pour chaque point - la mtrique du $\chi^{2}$ -
qui donne une information sur la concordance locale entre la valeur scalaire et la distribution teste). La thorie du test du
$\chi^{2}$ nous fournit un seuil (calcul partir de la marge d'erreur $p(\chi^{2})$, dernier paramtre de l'algorithme) qui permet
de classer les points en fonction de leur non-appartenance la loi teste. Cette loi reprsentera typiquement le bruit de mesure,
et on obtiendra ainsi l'ensemble des points dont la distance ( l'autre nuage/maillage) ne fait pas partie du bruit de mesure (par exemple).
Ainsi, on aura les points qui ont effectivement subi une modification, un changement, et on vitera de prendre en compte des points
en ralit immobiles mais dont la distance n'est pas nulle car elle est bruite. Une fois le nuage spar en deux classes,
on peut garder le groupe des points \emph{hors distribution} (voir figure~\ref{fig:statisticalTestExample}, en rouge) et les
segmenter\index{segmentation} par exemple en fonction de la proximit relative des points (par une extraction des composantes connexes - Cf.
section~\ref{subsection:labelConnectedComponents}).\index{composantes connexes}
\begin{figure}[!htb]
\begin{center}
\includegraphics[width=0.8\textwidth]{Partie3_Fonctions/statisticalTestExample.jpg}
\caption{\label{fig:statisticalTestExample}Champ des carts initial (en haut gauche), filtrage statistique (en haut droite),
puis extraction des points \emph{hors distribution thorique} (en bas gauche) et enfin extraction des composantes connexes
(en bas droite).}
\end{center}
\end{figure}
Remarques :
\begin{itemize}
\item Pour appeler cette fonction, il faut slectionner une seule entit 3D, munie d'un champ scalaire actif.
\item Pour rgler le paramtre $p(\chi^{2})$, il est important de comprendre que le test du $\chi^{2}$ permet uniquement de rejeter
l'hypothse selon laquelle \emph{les valeurs du champ scalaire prises sur le voisinage de chaque point suivent la loi teste}, mais
pas l'inverse. Ainsi, plus la marge d'erreur est faible, et plus le seuil du $\chi^{2}$ sera grand (on rejette moins souvent
l'hypothse cite prcdemment, et on classe donc moins de points comme \emph{ne suivant pas la loi teste}).
\item \textcolor[rgb]{1.00,0.00,0.00}{Inversement, plus $p(\chi^{2})$ est grand, plus on aura de points "hors la loi", colors en rouge.}
Notez que ce paramtre sert uniquement pr-positionner les potentiomtres de rglage des couleurs (seuils de coupure et de saturation
des valeurs du champ scalaire) pour l'affichage du rsultat l'cran (Cf. section~\ref{Champs-scalaires}). Ces potentiomtres peuvent
tre ensuite dplacs par l'utilisateur avant extraction effective des points (par appel de la fonction \emph{Scalar Fields > Filter
by Value}, qui va crer un nouveau nuage de points ne comportant que les points prsentement affichs l'cran, c..d. les points ne
suivant pas la distribution thorique). De plus, la distance du $\chi^{2}$ est extrmement divergente et ceci donne une grande marge
de manoeuvre l'algorithme. Ainsi, une modification relativement grande du seuil de coupure n'aura que peut d'effet sur la
classification. Au pire, on risque de rater un tout petit nombre de points (au niveau des bordures des zones limites).
\item Pour obtenir des rsultats prcis, il faut par contre connatre ou mesurer la distribution du bruit de mesure
(une sorte de bruit moyen, en premire approximation, comprenant l'erreur de mesure de au capteur, la surface scanne, la lumire,
la temprature ambiante lors de la mesure, la cration du maillage dans le cas d'une comparaison nuage/maillage, etc.).
Les paramtres de la distribution statistique correspondante peuvent donc tre dfinis partir de connaissances a priori
mais peuvent aussi tre dtermins partir d'un champ scalaire (une portion du nuage typiquement) avec la fonction de calcul de paramtres statistiques
partir d'un champ scalaire (Cf. section~\ref{subsection:computeStatParams}).
\item L'algorithme cre un nouveau champ scalaire nomme (\emph{Chi2 Distances}). Ce champ est ajout au nuage de points courant.
\end{itemize}
|