register.lyx 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454
  1. #LyX 2.0 created this file. For more info see http://www.lyx.org/
  2. \lyxformat 413
  3. \begin_document
  4. \begin_header
  5. \textclass book
  6. \use_default_options false
  7. \maintain_unincluded_children false
  8. \language french
  9. \language_package default
  10. \inputencoding latin9
  11. \fontencoding T1
  12. \font_roman default
  13. \font_sans helvet
  14. \font_typewriter default
  15. \font_default_family sfdefault
  16. \use_non_tex_fonts false
  17. \font_sc false
  18. \font_osf false
  19. \font_sf_scale 100
  20. \font_tt_scale 100
  21. \graphics default
  22. \default_output_format default
  23. \output_sync 0
  24. \bibtex_command default
  25. \index_command default
  26. \paperfontsize 10
  27. \spacing single
  28. \use_hyperref true
  29. \pdf_bookmarks true
  30. \pdf_bookmarksnumbered false
  31. \pdf_bookmarksopen false
  32. \pdf_bookmarksopenlevel 1
  33. \pdf_breaklinks false
  34. \pdf_pdfborder false
  35. \pdf_colorlinks true
  36. \pdf_backref false
  37. \pdf_pdfusetitle true
  38. \pdf_quoted_options "linkcolor=blue"
  39. \papersize a4paper
  40. \use_geometry true
  41. \use_amsmath 1
  42. \use_esint 1
  43. \use_mhchem 0
  44. \use_mathdots 0
  45. \cite_engine basic
  46. \use_bibtopic false
  47. \use_indices false
  48. \paperorientation portrait
  49. \suppress_date true
  50. \use_refstyle 0
  51. \index Index
  52. \shortcut idx
  53. \color #008000
  54. \end_index
  55. \leftmargin 1.5cm
  56. \topmargin 3cm
  57. \rightmargin 1.5cm
  58. \bottommargin 3cm
  59. \secnumdepth 3
  60. \tocdepth 3
  61. \paragraph_separation indent
  62. \paragraph_indentation default
  63. \quotes_language french
  64. \papercolumns 1
  65. \papersides 2
  66. \paperpagestyle fancy
  67. \tracking_changes false
  68. \output_changes false
  69. \html_math_output 0
  70. \html_css_as_file 0
  71. \html_be_strict false
  72. \end_header
  73. \begin_body
  74. \begin_layout Subsection
  75. Tools > Registration > Register
  76. \end_layout
  77. \begin_layout Standard
  78. \begin_inset CommandInset label
  79. LatexCommand label
  80. name "subsection:register"
  81. \end_inset
  82. \end_layout
  83. \begin_layout Standard
  84. \begin_inset Float figure
  85. placement !htb
  86. wide false
  87. sideways false
  88. status open
  89. \begin_layout Plain Layout
  90. \align center
  91. \begin_inset Graphics
  92. filename ../images/Partie3_Fonctions/registrationDlg.png
  93. width 50text%
  94. \end_inset
  95. \begin_inset Caption
  96. \begin_layout Plain Layout
  97. \begin_inset CommandInset label
  98. LatexCommand label
  99. name "fig:registrationDlg"
  100. \end_inset
  101. Interface de paramètrage pour l'outil de recalage de deux entités
  102. \end_layout
  103. \end_inset
  104. \end_layout
  105. \end_inset
  106. \end_layout
  107. \begin_layout Standard
  108. \begin_inset Index idx
  109. status collapsed
  110. \begin_layout Plain Layout
  111. recalage
  112. \end_layout
  113. \end_inset
  114. Cette fonction permet de recaler deux nuages de points (algorithme
  115. \emph on
  116. "Iterative Closest Point"
  117. \emph default
  118. de Besl et McKay, IEEE Trans.
  119. PAMI 1992).
  120. \begin_inset Newline newline
  121. \end_inset
  122. \end_layout
  123. \begin_layout Standard
  124. \begin_inset ERT
  125. status open
  126. \begin_layout Plain Layout
  127. \backslash
  128. textcolor{red}
  129. \end_layout
  130. \end_inset
  131. \begin_inset ERT
  132. status collapsed
  133. \begin_layout Plain Layout
  134. {
  135. \end_layout
  136. \end_inset
  137. Attention : pour que ce recalage fonctionne, il est nécessaire que les deux
  138. nuages soit approximativement alignés (vous pouvez utiliser l'outil de
  139. recalage manuel par rotation / translation - voir section
  140. \begin_inset space ~
  141. \end_inset
  142. \begin_inset CommandInset ref
  143. LatexCommand ref
  144. reference "subsection:graphicalTransformation"
  145. \end_inset
  146. ).
  147. \begin_inset Newline newline
  148. \end_inset
  149. \begin_inset ERT
  150. status open
  151. \begin_layout Plain Layout
  152. }
  153. \end_layout
  154. \end_inset
  155. \end_layout
  156. \begin_layout Standard
  157. Cette fonction ne permet pas d'aligner des nuages positionnés et orientés
  158. de manière quelconque.
  159. Son rôle est essentiellement d'affiner le recalage initial entre deux nuages
  160. de points.
  161. \begin_inset Newline newline
  162. \end_inset
  163. \end_layout
  164. \begin_layout Standard
  165. La boite de dialogue de l'outil
  166. \shape italic
  167. Register
  168. \shape default
  169. contient plusieurs parties :
  170. \end_layout
  171. \begin_layout Itemize
  172. La partie supérieure (
  173. \emph on
  174. Role assignation
  175. \emph default
  176. ) permet à l'utilisateur d'attribuer interactivement le rôle
  177. \begin_inset Index idx
  178. status collapsed
  179. \begin_layout Plain Layout
  180. role@rôle
  181. \end_layout
  182. \end_inset
  183. de chaque entité.
  184. Le
  185. \emph on
  186. Model
  187. \emph default
  188. est le nuage de référence (qui ne bouge pas) et
  189. \emph on
  190. Data
  191. \emph default
  192. désigne le nuage à recaler (il pourra bouger si nécessaire).
  193. Pour aider l'utilisateur,
  194. \emph on
  195. CloudCompare
  196. \emph default
  197. force la coloration des entités et leur affichage (
  198. \emph on
  199. model
  200. \emph default
  201. en rouge et
  202. \emph on
  203. data
  204. \emph default
  205. en jaune).
  206. Un bouton permet d'intervertir ces roles si besoin (
  207. \emph on
  208. swap
  209. \emph default
  210. ).
  211. \end_layout
  212. \begin_layout Itemize
  213. La partie centrale (
  214. \emph on
  215. Stop criterion
  216. \emph default
  217. ) permet de définir le critère d'arrêt : l'utilisateur choisit soit un nombre
  218. d'itérations fixe (ceci permet d'éviter un temps de calcul trop long, mais
  219. ne garantit pas la qualité du recalage) ou au contraire une diminution
  220. minimale de l'erreur de recalage entre deux itérations (si la diminution
  221. de l'erreur de recalage est inférieure, le gain en qualité de recalage
  222. est considéré comme insuffisant et l'algorithme s'arrête (ceci garantit
  223. une meilleure qualité de recalage mais peut prendre potentiellement beaucoup
  224. plus de temps).
  225. \end_layout
  226. \begin_layout Itemize
  227. Enfin la partie inférieure de définir des options
  228. \begin_inset Quotes fld
  229. \end_inset
  230. recherche
  231. \begin_inset Quotes frd
  232. \end_inset
  233. (elles ne devraient pas être utilisées lors d'une utilisation classique)
  234. :
  235. \end_layout
  236. \begin_deeper
  237. \begin_layout Itemize
  238. \emph on
  239. Random sampling limit
  240. \emph default
  241. : comme suggéré par différents auteur, l'algorithme ICP peut-être fortement
  242. accéléré sans perdre trop de précision si on sélectionne un nombre limité
  243. de points au hasard à chaque itération.
  244. CloudCompare utilise cet heuristique (avec comme valeur seuil par défaut
  245. 20,000 points - en dessous de cette limite les nuages ne sont pas sous-échantil
  246. lonnés).
  247. Si l'utilisateur a besoin d'une précision très forte ou qu'un comportement
  248. étrange du au sous-échantillonnage est suspecté, il est possible d'augmenter
  249. cette valeur seuil)
  250. \end_layout
  251. \begin_layout Itemize
  252. \emph on
  253. use displayed model scalar field as weights
  254. \emph default
  255. : pondération du rôle de chaque point du nuage de référence (
  256. \shape italic
  257. model
  258. \shape default
  259. ) dans le recalage global en fonction de leur valeur scalaire associée
  260. \end_layout
  261. \begin_layout Itemize
  262. \emph on
  263. use displayed data scalar field as weights
  264. \emph default
  265. : pondération du rôle de chaque point du nuage recalé (
  266. \shape italic
  267. data
  268. \shape default
  269. ) dans le recalage global en fonction de leur valeur scalaire associée
  270. \end_layout
  271. \begin_layout Itemize
  272. \emph on
  273. Enable furthest point removal
  274. \emph default
  275. : heuristique adaptée au recalage d'entités légèrement différentes (puisque
  276. \emph on
  277. CloudCompare
  278. \emph default
  279. est justement fait pour comparer des nuages potentiellement différents,
  280. alors que l'algorithme ICP est pensé pour recaler des nuages représentant
  281. les mêmes formes).
  282. Cet heuristique consiste à écarter les points trop éloignés à chaque itération,
  283. pour éviter que les différences entre les nuages ne faussent la position
  284. finale.
  285. La suppression des points à chaque itération étant difficile à gérer, cet
  286. heuristique en est encore à l'état d'ébauche ...
  287. \begin_inset ERT
  288. status open
  289. \begin_layout Plain Layout
  290. \backslash
  291. textcolor{red}
  292. \end_layout
  293. \end_inset
  294. \begin_inset ERT
  295. status collapsed
  296. \begin_layout Plain Layout
  297. {
  298. \end_layout
  299. \end_inset
  300. en particulier, cette option ne doit pas être cochée si les deux nuages
  301. représentent les mêmes objets.
  302. \begin_inset ERT
  303. status collapsed
  304. \begin_layout Plain Layout
  305. }
  306. \end_layout
  307. \end_inset
  308. \end_layout
  309. \end_deeper
  310. \begin_layout Standard
  311. Remarques :
  312. \end_layout
  313. \begin_layout Itemize
  314. cette fonction applique directement la transformation à l'entité
  315. \shape italic
  316. data
  317. \shape default
  318. .
  319. Il peut donc être nécessaire de cloner cette entité avant d'appliquer la
  320. fonction.
  321. Autrement si la mémoire disponible est limitée, la transformation étant
  322. aussi affichée sous forme de matrice dans la console (voir section
  323. \begin_inset space ~
  324. \end_inset
  325. \begin_inset CommandInset ref
  326. LatexCommand ref
  327. reference "section:mainWindow"
  328. \end_inset
  329. ), il est possible de l'annuler en copiant cette transformation puis en
  330. appliquant la transformation inverse avec l'outil 'Apply transformation'
  331. (voir section
  332. \begin_inset space ~
  333. \end_inset
  334. \begin_inset CommandInset ref
  335. LatexCommand ref
  336. reference "subsection:applyTransformation"
  337. \end_inset
  338. ).
  339. \end_layout
  340. \begin_layout Itemize
  341. si l'entité
  342. \shape italic
  343. data
  344. \shape default
  345. est un maillage dont les sommets sont vérouillés, la transformation sera
  346. affichée dans la console mais l'entité ne sera par modifiée.
  347. Il faut là encore copier la transformation depuis la console puis l'appliquer
  348. directement aux sommets du maillage (toujours avec l'outil 'Apply transformatio
  349. n').
  350. \end_layout
  351. \end_body
  352. \end_document