Sunteți pe pagina 1din 17

Lucrarea nr.

Registraţia norilor de puncte LST


folosind algoritmul „Iterative Closest
Point”-ICP
A. TEMA LUCRĂRII

Pentru a aduce în corespondenţă doi nori de puncte laser scaner terestru


(LST), definiţi în sistemul de coordonate local, propriu scanerului, se cere să
realizeze procesul de registraţie în mod automat în softul „Cloud Compare”,
utilizând algoritmul „Iterative Closest Point”-ICP.
Se va efectua apoi evaluarea preciziei procesului de registraţie, utilizând
distanţa Hausdorff.

B. DATELE PROBLEMEI

1. Coordonatele celor 2 nori de puncte în sistemele de coordonate


locale, proprii celor două locaţii ale scanerului laser terestru (2 fişiere *txt
decanat referinta şi decanat_mod_nr ord).

2. Reprezentarea grafică a norilor de puncte LST în sistemul de


coordonate al norului din stânga (figura 4.1).

Figura 4.1 − Reprezentarea grafică a norilor de puncte LST în sistemul de


coordonate al norului din stânga
2
C. CUPRINSUL LUCRĂRII
4.1. Consideraţii generale privind algoritmul „Iterative Closest Point”-ICP.
4.2. Consideraţii generale privind distanţa Hausdorff.
4.3. Registraţia norilor de puncte LST în softul „CloudCompare”, folosind
algoritmul „Iterative Closest Point”-ICP.
4.4. Evaluarea preciziei procesului de registraţie a norilor de puncte LST în
softul „CloudCompare”, prin utilizarea distanţei Hausdorff.
D. REZOLVAREA PROBLEMEI

4.1 Consideraţii generale privind algoritmul „Iterative Closest Point”-ICP

Algoritmul “Iterative Closed Point“ (ICP) permite aducerea în


coincidenţă a doi sau a mai multor nori de puncte, fără a folosi mirete de vizare.
Condiţia de realizare a acestei metode de registraţie, este ca norii de puncte să
aibă zone de dublă acoperire suficient de mari (în general 30%-40%) şi să fie
cunoscută poziţia lor relativă.
Aşadar, primul pas în utilizarea acestui algoritm, este ca utilizatorul să
selecteze minim 3 puncte comune corespondente în cadrul celor doi nori de
puncte. Datorită faptului că cele 3 puncte comune nu vor putea fi niciodată
selectate cu precizie, algoritmul ICP minimizează iterativ distanţele între toate
perechile de puncte corespondente găsite în zona de dublă acoperire şi estimează
parametrii transformării pentru a aduce în coincidenţă cei doi nori de puncte, cu
erori minime (figura 4.2).

(a) (b)
Figura 4.2 − Procesul de registrație a doi nori de puncte

Calitatea norilor de puncte poate influenţa decisiv rezultatul registraţiei.


Este necesară, din acest motiv, o filtrare, printr-o preprocesare a norilor de
puncte, a zgomotului şi a erorilor grosolane.
Unul din dezavantajele acestei metode provine din faptul că un obiect nu
poate fi scanat în mod identic a doua oară, dintr-o poziţie diferită a scanerului.
În cazul în care se scanează cu staţii multiple de scanare, erorile mici la
fiecare registraţie a perechilor de nori de puncte, se cumulează şi pot genera o
eroare grosolană.

3
4.2. Consideraţii generale privind distanţa Hausdorff.

Distanţa Hausdorff - denumită după Felix Hausdorff, este parametrul


cel mai renumit pentru compararea a două suprafeţe de tip “mesh”, oferind o
comparaţie la nivel global a acestora.
Fiind date două suprafeţe S şi S’, distanţa dintre S şi S’ este dS(S,S’),
definită sub forma:

d S ( S ,S')  max d( p,S'),


pS (4.1)
unde d( p,S')  min d( p, p') şi d( p, p') este distanţa euclidiană dintre două puncte
p' S'
3
în R .
Această distanţă nu este simetrică, de exemplu d( S,S')  d( S',S ) . Distanţa
d( S ,S')va fi numită distanţa directă şi d( S',S ) distanţa inversă. Se va introduce
termenul de distanţă Hausdorff simetrică d S ( S ,S') , definită astfel:

d S ( S,S')  max[ d( S,S'),d( S',S )]. (4.2)

Distanţa simetrică oferă o măsurare mult mai precisă a diferenţelor,


deoarece distanţa calculată într-un singur sens poate conduce la subestimarea
valorilor distanţelor dintre cele două suprafeţe
Când proiecţia ortogonală p’ a punctului p pe planul triunghiului T’, este
în interiorul triunghiului, distanţa de la punct la triunghi nu este altceva decât
distanţa de la punct la plan (figura 4.3 a). Când proiecţia punctului este înafara
triunghiului T’, distanţa de la punct la triunghi este distanţa dintre punctul p şi
cel mai apropiat punct p” ce aparţine unei laturi a triunghiului, aşa cum se poate
observa în figura 4.3 b.

(a) (b)

Figura 4.3 – (a) Distanţa dintre p şi T’ cu p’ situat în interiorul triunghiului, (b)


Distanţa dintre p şi T’ cu p’ situat înafara triunghiului

4
4.2. Registraţia norilor de puncte LST în softul „CloudCompare”, folosind
algoritmul „Iterative Closest Point”-ICP

Există patru metode diferite implementate în softul „CloudCompare”


pentru a aduce în coincidenţă doi nori de puncte şi în această etapă, se va alege
metoda „Fine registration (ICP)”, din meniul Tools-Registration, care aduce în
coincidenţă doi nori de puncte pe baza minimizării distanţelor dintre punctele
celor doi nori de puncte, în mod iterativ.
Această funcţie, aduce în coincidenţă doi nori de puncte în mod automat,
pe baza a două condiţii:
 cei doi nori au fost aduşi în coincidenţă în mod aproximativ, folosind
una dintre metodele implementate în softul „CloudCompare”,
 cei doi nori de puncte trebuie să reprezinte acelaşi obiect sau cel puţin
să aibă aceeaşi formă (cel puţin în zona de dublă acoperire).

Pentru a aduce în coincidenţă, în mod aproximativ, cei doi nori de


puncte, se va accesa funcţia „Align (point pairs picking)”, din meniul Tools-
Registration. Astfel, se vor folosi primele trei puncte comune, din totalul de 5
puncte, folosite la lucrarea 2.

Figura 4.4 – Aducerea în coincidenţă în mod aproximativ a celor


doi nori de puncte, pe baza a trei puncte comune
Figura 4.5 – Raportul cu privire la procesul de registraţie realizat
pe baza celor 3 puncte comune (abaterea standard, matricea de
transformare şi factorul de scară)

Paşii de lucru au fost descrişi la Lucrarea 2.


După ce procesul de registraţie este validat, “CloudCompare” va afişa
un raport (aceleaşi informaţii sunt afişate şi în “Console”, dar cu un număr mult
mai mare de zecimale) (figura 4.5), din care se poate observa că, abaterea
standard a fost de 0.015 m, iar factorul de scară λ=1.00344, fiind integrat în
matricea de transformare.

Figura 4.5 – Raportul cu privire la procesul de registraţie realizat


pe baza celor 3 puncte comune (abaterea standard, matricea de
transformare şi factorul de scară)

Pentru ca funcţia „Fine registration (ICP)”, din meniul Tools-


Registration să fie activă, trebuie selectaţi anterior cei doi nori de puncte, cu
tasta „ctrl” apăsată (figura 4.6).

Figura 4.6 – Selectarea metodei de registraţie ICP a celor doi nori de


puncte LST
Pe ecran apare în mod automat fereastra „Clouds registration”, în care,
în secţiunea „Role assignation”, au fost asociaţi în mod automat de către soft,
cei doi nori de puncte rolurilor „de referinţă” (Model), respectiv „de aliniat”
(Data), în funcţie de ordinea în care au fost selectaţi (primul nor selectat va fi
considerat „de referinţă”). Dacă ordinea predefinită de program nu este şi cea
dorită de utilizator, atunci se apasă butonul „Swap”, pentru a inversa rolurile.
De asemenea, se poate observa în modul de vizualiza 3D, că cei doi nori de
puncte sunt coloraţi în galben, respectiv roşu, corespunzător rolurilor „Model”
(galben) şi „Data” (roşu) (figura 4.7).
Figura 4.7 – Asocierea rolurilor „de referinţă” (Model), respectiv „de aliniat”
(Data) celor doi nori de puncte
Parametrii principali ai acestei metode sunt:
 Numărul de iteraţii/diferenţa RMS: Algoritmul ICP implică un
proces iterativ, eroarea medie pătratică descrescând (uşor) cu fiecare iteraţie.
Putem să-i spunem softului “CloudCompare” să se oprească, fie după un anumit
număr de iteraţii, fie dacă diferenţa dintre erorile medii pătratice rezultate după 2
iteraţii consecutive, este mai mică decât un prag prestabilit. Cu cât acest prag
este mai mic, cu atât va dura mai mult până când soluţiile vor converge, însă
rezultatul va fi mai precis (softul “CloudCompare” lucrează cu 32 biţi pentru a
stoca zecimalele punctelor, astfel, un prag de 1.0e-05 reprezintă o valoare
apropiată de limita preciziei de calcul şi nu ar trebui să fie necesară alegerea
unei valori mai mici).
 Zona de dublă acoperire finală. Utilizatorul poate să specifice ce
zonă din norul “de aliniat” se va suprapune peste norul “de referinţă”, în urma
efectuării procesului de registraţie. Astfel, utilizatorul poate să aducă în
coincidenţă şi nori de puncte care se suprapun parţial (zona de dublă acoperire
este de 10% sau chiar mai puţin).
 Ajustarea factorului de scară. Algoritmul ICP poate să determine o
posibilă diferenţă de scară între cei doi nori de puncte. Dacă norii de puncte au
factori de scară diferiţi (de exemplu se compară un nor de puncte rezultat în
urma scanării laser, cu un nor rezultat în urma procesului de aducere în
coincidenţă a imaginilor (“Image Matching”)), se poate bifa această opţiune.

Mai pot de asemenea fi definiţi opţional şi o serie de parametri


suplimentari, putându-se obţine rezultate neaşteptate, cum ar fi:
 Limita de segmentare aleatoare. Pentru a creşte exponenţial viteza de
procesare atunci când sunt utilizaţi nori de puncte mari, se foloseşte o schemă de
optimizare, care constă în segmentarea norului de puncte la fiecare iteraţie.
Acest parametru, reprezintă numărul maxim de puncte segmentate. Valoarea
prestabilită (50000) este în general o valoare potrivită, care afectează rezultatul
insesizabil. Oricum, poate fi o valoare insuficientă pentru nori de puncte foarte
mari. Aşadar, dacă există dubii în privinţa rezultatelor, sau dacă nu doriţi să
aşteptaţi mult, nu ezitaţi să măriţi această valoare (pentru a o dezactiva,
introduceţi un număr mai mare decât mărimea norului de puncte),
 Rotaţia. Se poate constrânge mişcarea de rotaţie în jurul unei
anumite axe (X, Y şi Z),
 Translaţia. Se poate constrânge de-a lungul uneia sau a mai
multor direcţii (X, Y şi Z), sau se poate alege să nu fie efectuată translaţia,
 Permiterea ştergerii rapide a unui punct. Această opţiune se poate
alege atunci când cei doi nori de puncte ce urmează a fi aduşi în coincidenţă sunt
destul de diferiţi (fie din cauză că nu reprezintă acelaşi obiect sau erorile din
cadrul unui dintre nori sunt prea mari). Alegerea acestei opţiuni, îi va spune
softului ca la fiecare iteraţie, punctele din norul “de aliniat” (Data) care sunt prea
depărtate faţă de cele din norul “de referinţă”, să fie şterse,
 Utilizarea valorilor corespunzătoare culorilor din legendă ca şi
ponderi. Această opţiune îi permite utilizatorului să foloseasă valorile afişate în
legendă ca şi ponderi (fie pentru norul “de aliniat”, fie pentru cel “de referinţă”,
nefiind recomandat să se folosească ponderi pentru ambii nori de puncte în
acelaşi timp).

Pentru a aduce în coincidenţă norii de puncte “cucuteni-SW1” şi


“cucuteni-SW2”, s-au făcut următoarele setări (figura 4.8):
 Diferenţa RMS: S-a ales opţiunea ca softul “CloudCompare” să se
oprească atunci când diferenţa dintre erorile medii pătratice rezultate după 2
iteraţii consecutive, este mai mică decât pragul de 1.0e-05 (valoare prestabilită).
 Zona de dublă acoperire finală. S-a introdus valoarea de 40%,
 Limita de segmentare aleatoare. S-a dezactivat această opţiune
introducându-se un număr mai mare decât mărimea norului de puncte şi anume
1 000 000, numărul total de puncte din care este format norul al doilea fiind de
751576,
 Rotaţia. S-a ales opţiunea ca mişcarea de rotaţie să fie efectuată în
jurul celor trei axe (X, Y şi Z),
 Translaţia. S-a ales opţiunea ca translaţiile să fie efectuate de-a lungul
celor trei direcţii (X, Y şi Z),
 Permiterea ştergerii rapide a unui punct. Această opţiune a fost
dezactivată,
 Utilizarea valorilor corespunzătoare culorilor din legendă
ca şi ponderi. Această opţiune a fost de asemenea dezactivată.

Figura 4.8 – Setarea parametrilor pentru realizarea procesului de


registraţie, folosind algoritmul ICP
Pentru a realiza procesul de registraţie se apăsă butonul “OK”, iar
softul“CloudCompare” va afişa un raport (aceleaşi informaţii sunt afişate şi în
“Console”, dar cu un număr mult mai mare de zecimale) (figura 4.9), din care se
poate observa că, abaterea standard a procesului de registraţie a fost de 0.038 m.
Figura 4.9 – Raportul cu privire la procesul de registraţie
realizat folosind algoritmul „Iterative Closest Point” (ICP)
4.4. Evaluarea preciziei procesului de registraţie a norilor de puncte LST în
softul „CloudCompare”, prin utilizarea distanţei Hausdorff.

Precizia procesului de registraţia, realizat pe baza algoritmului ICP,


poate fi evaluată prin compararea zonei de dublă acoperire, corespunzătoare
celor doi nori de puncte.
Pentru exemplificare, se va realiza comparaţia doar pentru zona taluzului
situată în partea de nord a deversorului. Mai întâi, se va extrage din al doilea nor
de puncte (din dreapta), doar zona de dublă acoperire, folosind funcţia
„Segment”, din meniul „Edit”.
Se va selecta zona de interes, interactiv, prin punctare în spaţiul
ecranului, cu ajutorul unui poligon, folosind opţiunea „Activaites polyline
selection” , apoi se apasă butonul „Segment in” (figura 4.10).
Figura 4.10 – Selectarea zonei de dublă acoperire

Se va transforma primul nor de puncte „cucuteni-SW1”, într-o suprafaţă


finită triunghiulară, folosind funcţia „Delaunay 2.5 D (best fitting plane)”, din
meniul „Edit”-„Mesh”. Pentru a vizualiza mai bine această suprafaţă, a fost
selectat modul de vizualizare „wireframe”, din fereastra „Properties”,
subfereastra „Mesh” (figura 4.11).
Se vor calcula distanţele Hausdorff, dintre fiecare punct LST din norul
de puncte ce reprezintă zona de dublă acoperire şi suprafaţa de tip mesh, în care
a fost transformat norul de puncte din stânga, folosind funcţia „ Cloud/Mesh
Dist” (cloud-to-mesh distance), din meniul „Tools”-„Distances” (figura 4.11).
Pentru ca funcţia să fie activă, trebuie selectate anterior norul de puncte şi
suprafaţa de tip mesh, cu tasta „ctrl” apăsată, aceasta din urmă fiind considerată
automat „de referinţă”.

Figura 4.11 – (a) Calcularea distanţelor Hausdorff, între norul de puncte


reprezentând zona de dublă acoperire şi suprafaţa de tip mesh, (b)
detaliu

Va apare în mod automat fereastra „Distance Computation”, cu


următorii parametri principali:
 Nivelul de divizare al octetului (Octree level): octetul este o divizare
recursivă şi regulată a spaţiului tridimensional. Mai întâi setul de
puncte 3D este încadrat într-un cub care este divizat în opt cuburi
echivalente - nivel 1 de divizare, apoi, procesul de divizare este
repetat recursiv pentru fiecare cub şi se opreşte când nici un punct nu
se găseşte într-un cub sau când este atins nivelul de divizare
predefinit, numărul maxim de nivele fiind 10. Această structură oferă
posibilitatea de a determina foarte rapid ce puncte se găsesc într-un
anumit cub şi în cuburile vecine, astfel procesul de găsire a celui mai
apropiat vecin, al unui punct specificat, devine foarte rapid. Acest
nivel este setat de către soft şi ar trebui să rămână neschimbat. Prin
schimabarea acestui parametru, se schimbă doar timpul de procesare,
 Distanţa maximă (Max dist.): dacă distanţa maximă dintre cele două
entităţi este mare, timpul de procesare poate fi foarte mare (cu cât
punctele sunt mai depărtate, cu atât mai mult timp va fi necesar pentru
a determina vecinii cei mai apropiaţi). Aşadar, ar fi o idee bună să se
limiteze căutarea în limita unei valori rezonabile, pentru a micşora
timpul de procesare. Pentru toate punctele situate la o distanţă mai
mare decât valoarea de prag, nu vor fi calculate distanţele reale,
 Distanţe cu semn (signed distances): dacă este selectată această
opţiune, distanţele vor primi semnul “-“ sau “+”, în funcţie de ...
 Inversarea normalelor (flip normals): dacă a fost selectată opţiunea
“signed distances”, atunci softul “Cloud Compare” poate să
inverseze automat semnele (poate fi necesară dacă ordinea
vertexurilor triunghiurilor este inversată),
 “multi-threaded”: această opţiune va fi selectată dacă doriți să
utilizați toate nuclee CPU disponibile (avertisment: computerul ar
putea să nu răspundă în totalitate în timpul calculului),
 Împărţirea componentelor X, Y şi Z (split X,Y and Z components): această
opţiune nu este valabilă pentru calculul distanţelor dintre un nor de puncte
şi o suprafaţă de tip mesh.

Pentru calculul distanţelor Hausdorff dintre punctele LST şi suprafaţa de


tip mesh, s-a păstrat valoarea 8 pentru parametrul „Octree level”, au fost activaţi
parametrii „signed distances” (distanţa Hausdorff cu semn) şi „multi-threaded”
şi au fost dezactivaţi parametrii „Max dist” şi „flip normals” (figura 4.12).
Figura 4.12 – Setarea parametrilor pentru calculul distanţelor Hausdorff

A fost apăsat butonul „Compute”, iar softul “CloudCompare” a calculat


distanţele Hausdorff dintre fiecare punct LST din zona de dublă acoperire şi
triunghiul cel mai apropiat, component al suprafeţei finite triunghiulare în care a
fost transformat norul de puncte din stânga (de referinţă), fiecărui punct LST
fiindu-i atribuită culoarea corespunzătoare, în funcţie de valoarea distanţei
Hausdorff (figura 4.13).

Figura 4.13 – Distanţele Hausdorff dintre fiecare punct LST din zona de dublă
acoperire şi suprafaţa de tip mesh în care a fost transformat norul de puncte
din stânga
Pentru ca scara culorilor să fie vizibilă, trebuie selectată entitatea ce a
fost comparată şi activat butonul “Visible” din secţiunea “Color Scale”,
fereastra “Properties”.
De asemenea, se poate alege paleta de culori pentru reprezentarea
valorilor distanţelor, folosind funcţia “Color Scales Manager” din meniul
“Edit”-“Scalar fields”, sau se poate edita sau crea o nouă paletă de culori, cu
ajutorul butonului “new” din partea dreaptă.
Se va realiza histograma distribuţiei distanţelor Hausdorff, prin utilizarea
funcţiei “Show histogram” din meniul “Edit”-“Scalar fields”, apoi se va
calcula curba distribuţiei nomale Gauss, prin accesarea funcţiei “Compute stat.
params (active SF)“ din meniul Edit”-“Scalar fields” sau “Tools”-“Statistics”,
obţinându-se diferenţa maximă pozitivă de 0.01 cm, cea maximă negativă este –
0.007 cm, diferenţa medie de 3 mm, iar abaterea standard de 5 mm, aşa cum
se poate observa în figura 4.14.

(a)
(b)

Figura 4.14 – Histograma distribuţiei distanţelor Hausdorff dintre punctele


LST reprezentând zona de dublă acoperire şi suprafaţa de tip mesh intervalul
acoperit de histogramă (a) şi intervalul acoperit de majoritatea distanţelor
Hausdorff (b)

Din histograma distribuţiei distanţelor Hausdorff dintre norul de


puncte LST şi suprafaţa finită triunghiulară (mesh), se poate observa că pentru
un număr de aproximativ 800 din totalul de 25737 de puncte, distanţele
Hausdorff calculate au fost 0, histograma acoperă intervalul -0.022 m ÷ 0.015 m
(figura 4.14 a) şi că cele mai multe dintre distanţele calculate au avut valori
între -0.7 cm ÷ +0.7 cm (figura 4.14 b).
De asemenea, poate fi afişată distanţa Hausdorff calculată pentru un
anumit punct, prin interogare în spaţiul ecranului, utilizând funcţia “Point
picking” din meniul “Tools” (figura 4.15).

Figura 4.15 – Distanţele Hausdorff calculate în două puncte LST

S-ar putea să vă placă și