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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
\chapternonum{Introduction}
\label{cha:Introduction}
\section{Prsentation\index{presentation}}
\emph{CloudCompare} est un logiciel de traitement et de comparaison de nuages de points 3D denses (ainsi que de maillages triangulaires dans une certaine mesure). Son dveloppement a t initi partir de 2004 dans le cadre d\textquoteright{}une thse CIFRE finance par EDF R\&D et encadre par l\textquoteright{}Ecole Nationale Suprieure des Tlcommunications (ENST \textendash{} dsormais Telecom ParisTech \textendash{} laboratoire TSI, quipe TII). Il se poursuit depuis et est dsormais un projet \textit{open-source} indpendant. CloudCompare n\textquoteright{}est pas vou un usage commercial. \\
\par
Historiquement, ce logiciel a t conu pour traiter des nuages de points denses (tels que ceux issus d'un scanner laser 3D) dans le but de les comparer pour en extraire les diffrences. Il permet donc typiquement :
\begin{itemize}
\item de calculer les distances locales entre deux nuages de points denses ou entre un nuage et un maillage triangulaire (figure de gauche ci-dessous) ;
\item de filtrer le bruit de mesure du scanner laser pour mettre en vidence les \textquotedbl{}vraies\textquotedbl{} diffrences (figure du milieu) ;
\item de segmenter les points restants en sous-ensembles correspondant des objets
distincts (figure de droite).
\end{itemize}
\includegraphics[width=1\textwidth]{images/Partie1_Introduction/illustration_CloudCompare.jpg}\\
\par
Depuis, CloudCompare a beaucoup volu et il offre dsormais de nombreuses fonctions d'dition (transformation rigide interactive, segmentation interactive), de recalage automatique (type ICP), de modlisation (calcul de maillages surfaciques type Delaunay ou Poisson), de reprojection (selon le point de vue du scanner, selon une direction principale, sur un cylindre ou un cne, etc.), de calcul morphologiques (rugosit, courbure, etc.) et autres. A travers un systme de plugins, l'utilisateur a aussi accs des fonctionalits et librairies externes (des algorithmes issus du monde de la recherche - reconstruction de maillage par approche de type
Poisson, filtrage des points non visibles, etc. - des priphriques d'acquisition comme la Kinect de
Microsoft, ou encore des shaders volus pour faciliter la visualisation des entits 3D - Eye Dome Lighting
ou SSAO, etc.). \\
\par
L'originalit de \emph{CloudCompare} tient plusieurs aspects :
\begin{itemize}
\item les structures de donnes utilises : notamment un \textquotedbl{}octree\textquotedbl{}
particulier permettant de traiter trs rapidement des nuages de points
volumineux (plusieurs millions de points 3D).
\item un grand nombre de choix et de mthodes pour le calcul de distance
entre nuages de points ou entre un nuage et un maillage triangulaire (tous bass sur
la notion de \textit{distance au plus proche voisin}) ;
et un calcul trs rapide mais moins prcis bas sur une distance de \emph{Chanfrein} ;
\item la possibilit de prendre en compte les diffrences d'chantillonnage entre les jeux
de donnes compars ;
\item la possibilit de filtrer le bruit de mesure a posteriori ;
\item la possibilit de prendre en compte la visibilit du scanner pour chaque jeu de
donnes ;
\item la gestion de champs scalaires mutliples associs un mme nuage de points (comme des distances typiquement). Ces champs scalaires peuvent tre affichs par coloration dynamique des points. Ils peuvent permettre aussi de moduler l'affichage de l'entit (par filtrage des points associs certaines valeurs) ou encore de segmenter le nuage associ. Plus gnralement, ils servent d'entre de nombreux alogrithmes, ils peuvent tre composs ensembles, etc.
\item enfin, plusieurs types de rendus volus (soit temps rel via des shaders ou \textit{offline} via un
calcul de \textit{Portion de Ciel Visible} par exemple) permettent une forte amlioration de la lisibilit
des donnes 3D l\textquoteright{}cran.\\
\end{itemize}
\par
Il est enfin important de noter que bien que \emph{CloudCompare} soit capable
de grer des maillages triangulaires, ce type d'entit reste avant tout
pour \emph{CloudCompare} un nuage de points (les sommets du maillage) muni
d\textquoteright{}une structure particulire (des triangles), ct de nombreuses autres
structures (octree, kd-tree, couleurs, normales, champs scalaires, photos calibres, etc.).
L\textquoteright{}utilisateur est donc invit toujours garder cette
particularit l\textquoteright{}esprit lorsqu\textquoteright{}il
utilise \emph{CloudCompare}, et il devra en particulier toujours faire attention
au rle de chaque entit 3D dans les traitements proposs par ce logiciel.
\section{Licence\index{licence}}
Le logiciel \emph{CloudCompare} est constitu de plusieurs
\index{composants logiciels}composants logiciels :
\begin{itemize}
\item La librairie \textbf{CClib} (algorithmes)
\item La librairie \textbf{qCC\_db} (base de donnes)
\item Le programme \textbf{qCC} qui utilise ces librairies
\\
\end{itemize}
Installer et utiliser ces composants signifie que vous acceptez les termes
et les conditions de leurs licences respectives. La version 2.4 et les versions
antrieures de ces deux composants logiciels sont la proprit d\textquoteright{}EDF
R\&D et de TELECOM ParisTech.\\
\par
\textbf{Licence de la librairie CClib} : \\
La librairie CClib est diffuse sous la licence GNU LGPL (GNU
Lesser General Public Licence) telle qu\textquoteright{}elle a t
publie par la FSF (Free Software Foundation) ici :
\href{http://www.gnu.org/licenses/lgpl.html}{http://www.gnu.org/licenses/lgpl.html}\\
\par
\textbf{Licence de la librairie qCC\_db} : \\
La librairie qCC\_db est diffuse sous la licence GNU GPL (GNU General Public Licence)
telle qu\textquoteright{}elle a t publie par la FSF (Free Software Foundation) ici : \href{http://www.gnu.org/licenses/gpl.html}{http://www.gnu.org/licenses/gpl.html}\\
\par
\textbf{Licence du programme excutable qCC} : \\
Le programme qCC est diffus sous la licence GNU GPL (GNU General
Public Licence) tel qu\textquoteright{}elle a t publie par la FSF
(Free Software Foundation) ici :
\href{http://www.gnu.org/licenses/gpl.html}{http://www.gnu.org/licenses/gpl.html}\\
\\
EDF R\&D et TELECOM ParisTech accordent l'utilisateur les droits
d'installer et d\textquoteright{}utiliser le logiciel \emph{CloudCompare}
aprs l'avoir tlcharg depuis le site \href{http://www.cloudcompare.org}{http://www.cloudcompare.org}.
Le logiciel \emph{CloudCompare} est fourni en l\textquoteright{}tat, sans
aucune garantie explicite ou implicite. Les auteurs dclinent toute
responsabilit pour tout dommage direct ou indirect. L\textquoteright{}utilisateur
assume tous les risques et responsabilits quant la qualit du logiciel
\emph{CloudCompare} et de son utilisation.
\section{Installation du binaire (Windows)\index{installation}}
\emph{CloudCompare} fonctionne sous les systmes d'exploitation Windows (XP, Vista \& Seven)
et Linux (Debian, Ubuntu, etc.) et pour des architectures 32 ou 64 bits.\\
\par
Les versions binaires de \emph{CloudCompare} pour Windows tlchargeables sur le site officiel
ne comportent pas de programme d'installation. Il suffit de dcompresser l'archive .zip
contenant \index{excutable}l'excutable et les \index{DLL (Dynamic Link Libraries)}DLLs.\\
Voici la liste minimale des fichiers que vous devez trouver aprs dcompression
de l'archive :
\begin{itemize}
\item qCC.exe (excutable principal)
\item history.txt (l'historique des modifications)
\item license.txt (la license d'utilisation)
\item CC\_DLL.dll (librairie CClib)
\item QCC\_DB\_DLL.dll (librairie qCC\_db)
\item QtCore4.dll (DLL Qt - \href{http://qt.nokia.com}{qt.nokia.com})
\item QtGui4.dll (DLL Qt - \href{http://qt.nokia.com}{qt.nokia.com})
\item QtOpenGL4.dll (DLL Qt - \href{http://qt.nokia.com}{qt.nokia.com})
\\
\end{itemize}
\par
Et de manire optionnelle :
\begin{itemize}
\item un certain nombre de DLLs supplmentaires ncessaires certains plugins
(freenect.dll, etc.) ou la prise en charge de formats de fichiers (liblas.dll, etc.)
\item un sous-rpertoire \textit{plugins} contenant les DLLs de chaque plugin
\item un sous-rpertoire \textit{shaders} contenant les fichiers requis par certains plugins
\item un sous-rpertoire \textit{imageformats} contenant les librairies ncessaires la lecture
et l'criture de fichiers images
\\
\end{itemize}
\par
Sous Linux, il faut imprativement compiler le projet pour l'utiliser (voir ci-dessous).
\section{Compilation du projet\index{compilation}}
L'intgralit du code de \emph{CloudCompare} est crite en C++. Le projet utilise dsormais le gnrateur de projets de compilation \emph{CMake} (\href{http://www.cmake.org/}{http://www.cmake.org}).\\
\par
Pour compiler le projet, rfrez vous au \emph{wiki} : \href{http://www.cloudcompare.org/doc/wiki}{http://www.cloudcompare.org/doc/wiki}\\
|