Sunteți pe pagina 1din 3

Sisteme de vedere artificială Lucrarea de laborator nr.

02

LUCRAREA NR. 02

Extragerea informatiilor din harta de disparitate a imaginilor stereo

Sisteme stereo vizuale

Sistemele stereoscopice vizuale sunt sisteme formate din două sau mai multe camere, repartizate la o
anumită distanță una față de cealaltă, ce pot capta imagini separat. Cel mai des sunt folosite sistemele
stereoscopice cu două camere: una captează imagini din stânga iar cealaltă imagini din dreapta. Acest
lucru permite camerelor să simuleze percepția umană și de asemeni oferă posibilitatea de a achiziționa
imagini tridimensionale. Distanța dintre cele două camere se dorește a reprezenta distanța dintre cei doi
ochi biologici

Pentru ca un sistem stereoscopic vizual să poată obține rezultate precise este necesară o calibrare a
camerelor sistemului. Acest lucru se realizează prin modificările introduse de o serie de parametri,
intrinseci și extrinseci, rectificarea realizându-se pentru fiecare cameră a sistemului în parte.

Parametri intrinseci

Parametrii intriseci sunt un set de parametri necesari efectuării corespondenței dintre coordonatele
planului imagine și a planului camerei. După cum am menționat mai sus, acești parametri trebuie
modificați separat pentru fiecare cameră a sistemului stereoscopic în parte, pentru camera din stânga și
camera din dreapta. Pentru modelul pinhole pe care îl folosim, avem următorii parametri intrinseci:
- proiecția perspectivă al cărui singur parametru este distanța focală, f;

- tranformările dintre coordonatele imagine (x’,y’) și coordonatele pixelilor (u,v);

- distorsiunea geometrică optică.

Parametrii extrinseci

Acest set de parametrii este reprezentat de orice set de parametri care identifică în mod unic
tranformările apărute între coordonatele cadrelor camerelor din stânga și din dreapta. Aceste
transformări pot fi descrise prin următorii parametri:
- un vector de translatie tridimensională, T, ce descrie pozițiile relative ale originilor cadrelor celor
doua camere
- o matrice de rotație R, o matrice ortogonală care fac legătura dintre axele corespunzătoare ale celor
două cadre.

Disparitatea

Disparitatea este noțiunea ce stă la baza acestei lucrări și este necesară o înțelegere deplină a acestui
concept. Pentru a putea înțelege mai bine această noțiune, puteți realiza următorul experiment: țineți un
deget vertical în fața ochilor, și închideți câte un ochi pe rând; veți observa cum pozițiile degetului când
este privit de ochiul stâng diferă de pozițiile degetului când este privit cu ochiul drept. Această
diferență între pozițiile degetului în imaginile ce se creează pe retină poartă denumirea de disparitate.
Sisteme de vedere artificială Lucrarea de laborator nr. 02

Așadar, având un sistem stereoscopic vizual, alcătuit din două camere poziționate la o anumită distanță
una față de cealaltă, numită baseline(ce doresc a simula distanța dintre ochii biologici), acesta
achiziționează două imagini: una stângă prin camera din stânga, și una dreaptă prin camera din dreapta.
Disparitatea reprezintă diferențele dintre coordonatele orizontale ale aceluiași punct în planul
imaginii din stânga față de planul imaginii din dreapta. Relația de legătură între disparitate și
adâncimea unui punct din plan este următoarea:

În ecuația de mai sus Z reprezintă adâncimea, B reprezită baseline-ul, distanța dintre camere, 𝑢𝑢𝑢𝑢 și 𝑢𝑢𝑢𝑢
sunt coordonatele orizontale ale punctului în imaginea din dreapta, respectiv în imaginea din stânga, iar
diferența dintre ele este disparitatea 𝑑𝑑𝑑𝑑. Recuperarea poziţiei 3D se realizează pe baza formulelor

X=(u-cu)·Z/f; Y=(v-cv) ·Z/f,

unde cu si cv sunt coordonatele centrului de proiecţie, coordinate obţinute prin calibrarea sistemului.

Harta de disparitate are aceeași rezolutie cu imaginile stânga și dreapta și conține disparitățile tuturor
poziţiilor corespondente din cele două imagini. Construcția hărții de disparitate este un procedeu des
întâlnit și un scop principal atunci când realizăm aplicații ce folosesc disparitatea este acela de a obține
o hartă de disparitate cât mai densă. Există numeroase metode de obținere a hărților de disparitate, și
toate metodele tind să potrivească pixelii dintr-o imagine cu pixelii din cealaltă imagine (stânga și
dreapta), pe baza unor constrângeri. Așadar metodele de construcție a disparității pot fi împărțite în
metode locale și metode globale.

Metoda Block Matching – metodă locală

Această metodă construiește harta de disparitate utilizând Suma Diferenței Absolute (eng. The sum of
absolute intensity difference - SAD) al fiecărui bloc de pixeli din imagine – măsoară diferențele dintre
valorile intensităților pixelilor. Principial, această metodă împarte imaginea stângă într-o matrice de
„macro blocuri” care sunt comparate cu blocurile corespunzătoare din imaginea dreaptă asupra căreia s-
a aplicat același procedeu de împărțire în blocuri.
Sisteme de vedere artificială Lucrarea de laborator nr. 02

Metoda Semi-Global Matching

Spre deosebire de metodele locale de construire a hărților de disparitate, metodele globale tind să
obțină hărți de disparitate mai puțin afectate de perturbații (zgomote), însă multe dintre ele nu pot
funcționa în timp real. O problemă ce apare la metodele locale este cea în care nu se poate estima o
disparitate pentru unii pixeli atunci când sunt considerate blocuri de pixeli; soluția problemei este cea
în care corespondența dintre pixeli să se realizeze la nivel de pixel și nu la nivel de bloc, dar pixelii
considerați individuali nu conțin destulă informație pentru a se realiza o corespondență unică. Așadar
metodele globale utilizează constrângeri de finețe ce penalizează aceste discontinuități. Acest lucru este
fomulat într-o funcție de cost

Matlab:

Calculul disparităţii folosind două imagini stereo

disparityMap = disparity(I1,I2)
disparityMap = disparity(I1,I2,Name,Value)

Obs:
- The stereo images, I1 and I2, must be rectified such that the corresponding points are located
on the same rows
- Name-Value Pair Arguments: 'Method' — Disparity estimation algorithm 'SemiGlobal'
(default) | 'BlockMatching'; 'DisparityRange' — Range of disparity [0 64] (default) | two-
element vector

Aplicaţii:

1. Să se citească I_left si I_right si sa se calculeze harti de disparitate variind parametrii functiei


disparitate
2. Pentru o harta de disparitate obtinuta anterior sa se aleaga o zona care sa se reprezinte in 3D
3. Folosind transformata Hough sa se recupereze cele mai importante segmente din I_left si pe
baza hartii de disparitate sa se recupereze pozitia lor in 3D

OBS:

f = 647.2;
cu = 641.2;
cv = 182.162;
b = 0.5787;

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