Articole învârtirea fluxurilor metode optice. Construirea unui flux optic. Metode de determinare a fluxului optic

Este o reprezentare a urmei vizibile de mișcare a obiectelor, suprafețelor și marginilor unei scene vizuale, observată cu mișcare relativă între observator (cum ar fi ochiul uman sau camera foto) și scenă.

Conceptul de flux optic a fost propus de psihologul american James J. Gibson în anii 1940 pentru a descrie stimulul vizual (semnalul) care apare la animalele care se mișcă în spațiu în raport cu mediul lor.

James Gibson a subliniat importanța fluxului optic pentru capacitatea perceptivă, capacitatea de a distinge între limitări și oportunități de acțiune în mediu. Adepții robotului lui Gibson și abordarea sa ecologică a psihologiei au putut, ulterior, să arate rolul stimulului fluxului optic pentru percepția mișcării observatorului în raport cu lumea înconjurătoare; percepția formei, distanței și mișcării obiectelor din jur; și controlul mișcării.

Recent, termenul de flux optic a fost cooptat de robotică pentru a include tehnici adecvate de procesare a imaginilor și controale de navigare, cum ar fi detectarea mișcării, segmentarea obiectelor, informații de contact în timp, calcule de extindere a focalizării, luminozitate, codare compensată cu mișcare și măsurători de nepotrivire stereo. .

Recent, termenul de flux optic a fost cooptat de robotiști pentru a include tehnici adecvate de procesare a imaginilor și de control al navigației, cum ar fi detectarea mișcării, segmentarea obiectelor, informații despre timpul până la coliziune (contact), concentrarea calculului expansiunii, luminozitatea, compensarea mișcării. codificare și măsurători de disparitate stereo.

Calcul

O secvență de imagini ordonate face posibilă evaluarea mișcării, fie în termeni de viteze instantanee ale imaginii, fie în termeni de valori discrete de deplasare a imaginii. Există materiale sub forma unei lecții despre metoda fluxului optic bazat pe gradienți. Cercetătorii au analizat, de asemenea, compararea diferitelor tehnici de flux optic, analizează acuratețea și frecvența măsurătorilor.

Metodele optice de calcul al mișcării încearcă să estimeze mișcarea dintre două cadre ale unei imagini văzute de puncte de timp t iar la fiecare poziţie voxel. Astfel de metode sunt numite diferențiale, deoarece se bazează pe estimări locale ale seriei Taylor pentru semnalul imaginii, adică folosesc derivate parțiale în raport cu coordonatele spațiale și temporale.

Pentru cazul dimensiunii 2D+ t(la fel pentru 3D sau n-D cazuri) locația unui voxel cu intensitate care se va deplasa pe și între două cadre de imagine și cu o constrângere ulterioară constanța luminozității (luminozitate constrângere de constanță) se poate scrie:

Presupunând că mișcarea a fost nesemnificativă, calculând aproximarea imaginii folosind seria Taylor, puteți obține:

… (Membri de ordin superior)

Din aceste ecuații rezultă că:

rezultând

unde sunt componentele și viteza sau fluxul optic și, și sunt derivate ale imaginii în direcțiile respective. Și mai departe poate fi scris pentru derivate.

Prin urmare:

Aceasta este o ecuație cu două necunoscute, ca atare nu poate fi rezolvată. Aceasta este cunoscută ca problema de deschidere algoritm de flux optic. Pentru a calcula fluxul optic, este necesar un alt set de ecuații, care sunt date de unele condiții suplimentare. Toate metodele de calcul al fluxului optic introduc termeni suplimentari pentru a estima debitul real.

Senzor optic de debit

Senzorul de flux optic este un senzor de viziune capabil să măsoare fluxul optic sau mișcarea vizuală și să transmită rezultatul măsurării pe baza fluxului optic. Există multe configurații diferite ale unor astfel de senzori. Acesta poate fi un senzor de imagine conectat la un procesor pe care este programat algoritmul de flux optic. O altă configurație folosește un cip de viziune cu circuit integrat care conține atât un senzor, cât și un procesor pe un singur cip într-un dispozitiv compact. Un exemplu în acest sens este senzorul de mouse optic comun utilizat la șoarecii optici. În unele cazuri, circuitele de calcul care utilizează circuite analogice de semnal mixt pot fi utilizate pentru a calcula rapid fluxul optic cu un consum minim de curent.

Un domeniu al cercetării actuale este utilizarea tehnicilor de inginerie neuromorfă pentru a implementa circuite care simt fluxul optic și, astfel, pot fi utilizate ca senzor optic. Astfel de circuite extrag idei din rețelele neuronale biologice și percep fluxul optic într-un mod similar.

Imagini înrudite


În sistemele de viziune computerizată și de procesare a imaginii, apare adesea problema determinării mișcărilor obiectelor în spațiul tridimensional folosind un senzor optic, adică o cameră video. Având ca intrare o succesiune de cadre, este necesar să se recreeze spațiul tridimensional imprimat acestora și modificările care apar în timp. Sună complicat, dar în practică este adesea suficient să găsiți decalajele proiecțiilor bidimensionale ale obiectelor în planul cadrului.

Dacă vrem să știm cât de mult s-a deplasat acest sau acel obiect față de poziția sa pe cadrul precedent în timpul care a trecut între cadrele de fixare, atunci cel mai probabil ne vom aminti în primul rând fluxul optic. Pentru a găsi fluxul optic, puteți utiliza în siguranță o implementare gata testată și optimizată a unuia dintre algoritmi, de exemplu, din biblioteca OpenCV. Este, totuși, foarte inofensiv să înțelegi teoria, așa că îi invit pe toți cei interesați să caute în interiorul uneia dintre metodele populare și bine studiate. Nu există cod în acest articol și sfaturi practice, dar există formule și un anumit număr de derivări matematice.

Există mai multe abordări pentru determinarea decalajelor între două cadre adiacente. De exemplu, pentru fiecare fragment mic (de exemplu, 8 pe 8 pixeli) dintr-un cadru, puteți găsi cel mai asemănător fragment în cadrul următor. În acest caz, diferența dintre coordonatele fragmentelor originale și găsite ne va oferi offset-ul. Principala dificultate aici este cum să găsiți rapid fragmentul dorit fără a parcurge întregul cadru pixel cu pixel. Diverse implementări ale acestei abordări rezolvă problema complexității computaționale într-un fel sau altul. Unele au atât de mult succes încât sunt folosite, de exemplu, în standardele comune de compresie video. Prețul vitezei este, desigur, calitate. Vom lua în considerare o altă abordare, care ne permite să obținem compensații nu pentru fragmente, ci pentru fiecare pixel individual și este folosită atunci când viteza nu este atât de critică. Termenul „flux optic” este adesea asociat cu acesta în literatură.

Această abordare este adesea numită diferențială, deoarece se bazează pe calculul derivatelor parțiale în direcțiile orizontale și verticale ale imaginii. După cum vom vedea mai târziu, derivatele singure nu sunt suficiente pentru a determina părtinirile. De aceea, pe baza unei idei simple, au apărut o mulțime de metode, fiecare dintre ele folosind un fel de dans matematic cu o tamburină pentru a atinge scopul. Să ne concentrăm pe metoda Lucas-Kanade, propusă în 1981 de Bruce Lucas și Takeo Kanade.

metoda Lucas-Kanade
Toate raționamentele suplimentare se bazează pe o presupunere foarte importantă și nu foarte corectă: Să presupunem că valorile pixelilor trec de la un cadru la altul fără modificări. Astfel, presupunem că pixelii care aparțin aceluiași obiect se pot deplasa în orice direcție, dar valoarea lor va rămâne neschimbată. Desigur, această presupunere nu are prea mult de-a face cu realitatea, deoarece condițiile globale de iluminare și iluminarea obiectului în mișcare în sine se pot schimba de la cadru la cadru. Există o mulțime de probleme cu această presupunere, dar, în mod ciudat, în ciuda tuturor, funcționează destul de bine în practică.

În limbajul matematic, această presupunere poate fi scrisă astfel: . Unde I este o funcție a luminozității pixelilor din poziție pe cadru și timp. Cu alte cuvinte, x și y sunt coordonatele pixelilor din planul cadrului, iar u este decalajul, iar t este numărul cadrului din secvență. Să fim de acord că între două cadre adiacente trece un singur interval de timp.

Caz unidimensional
Să luăm mai întâi în considerare cazul unidimensional. Imaginează-ți două cadre unidimensionale de 1 pixel înălțime și 20 pixeli lățime (figura din dreapta). Pe al doilea cadru, imaginea este ușor deplasată spre dreapta. Este acest decalaj pe care vrem să găsim. Pentru a face acest lucru, prezentăm aceleași cadre ca și funcții (figura din stânga). Intrarea este poziția pixelului, ieșirea este intensitatea acestuia. Într-o astfel de reprezentare, deplasarea necesară (d) poate fi văzută și mai clar. Conform presupunerii noastre, acesta este doar un părtinitor, adică putem spune că.

Vă rugăm să rețineți că, dacă doriți, puteți și scrie vedere generala: ; unde y și t sunt fixe și egale cu zero.

Pentru fiecare coordonată, știm valorile în acest moment, în plus, putem calcula derivatele acestora. Asociați valorile cunoscute cu offset-ul d. Pentru a face acest lucru, scriem expansiunea într-o serie Taylor pentru:

Să facem o a doua presupunere importantă: Să presupunem că este aproximat suficient de bine de prima derivată. Făcând această presupunere, aruncăm totul după prima derivată:

Cât de corect este asta? În general, nu foarte mult, aici pierdem în acuratețe, cu excepția cazului în care funcția/imaginea noastră este strict liniară, ca în exemplul nostru artificial. Dar acest lucru simplifică foarte mult metoda, iar pentru a obține acuratețea necesară, se poate face o aproximare succesivă, pe care o vom lua în considerare mai târziu.

Aproape am ajuns. Offset-ul d este valoarea noastră țintă, așa că trebuie să facem ceva cu . După cum am convenit mai devreme, rescriem doar:

carcasă 2D
Să trecem acum de la cazul unidimensional la cel bidimensional. Scriem expansiunea într-o serie Taylor și aruncăm imediat toate derivatele superioare. În locul primei derivate, apare un gradient:

Unde este vectorul deplasării.
În conformitate cu ipoteza făcută. Rețineți că această expresie este echivalentă cu . De asta avem nevoie. Să rescriem:

Întrucât un singur interval de timp trece între două cadre, putem spune că nu există altceva decât o derivată în raport cu timpul.
Să rescriem:

Să-l rescriem din nou, deschizând gradientul:

Avem o ecuație care ne spune că suma derivatelor parțiale trebuie să fie egală cu zero. Singura problemă este că avem o singură ecuație și există două necunoscute în ea: și . În acest moment, începe un zbor de fantezie și o varietate de abordări.

Să facem o a treia presupunere: Să presupunem că pixelii adiacenți sunt deplasați cu aceeași distanță. Să luăm un fragment din imagine, să spunem 5 pe 5 pixeli, și vom fi de acord că pentru fiecare dintre cei 25 de pixeli și sunt egali. Apoi, în loc de o ecuație, obținem 25 de ecuații deodată! Evident, în cazul general, sistemul nu are nicio soluție, așa că le vom căuta pe acelea și care minimizează eroarea:

Aici g este o funcție care determină ponderile pixelilor. Cea mai comună variantă este Gaussianul 2D, care dă cea mai mare greutate pixelului central și din ce în ce mai puțin pe măsură ce te îndepărtezi de centru.

Pentru a găsi minimul, folosim metoda celor mai mici pătrate, găsim derivatele sale parțiale în raport cu și:

Rescriem într-o formă mai compactă și echivalăm cu zero:

Să rescriem aceste două ecuații sub formă de matrice:

Dacă matricea M este inversabilă (are rang 2), putem calcula și , care minimizează eroarea E:

Asta e de fapt tot. Cunoaștem decalajul aproximativ al pixelilor dintre două cadre adiacente.

Deoarece pixelii vecini sunt implicați și în găsirea offset-ului fiecărui pixel, la implementarea acestei metode, este recomandabil să se calculeze preliminar derivatele orizontale și verticale ale cadrului.

Dezavantajele metodei
Metoda descrisă mai sus se bazează pe trei ipoteze semnificative, care, pe de o parte, ne oferă oportunitatea fundamentală de a determina fluxul optic, dar, pe de altă parte, introduc o eroare. Vestea bună pentru perfecționiști este că avem nevoie de o singură presupunere pentru a simplifica metoda și ne putem ocupa de consecințele acesteia. Am presupus că prima derivată ar fi suficientă pentru a aproxima deplasarea. În cazul general, desigur că nu este cazul (figura din stânga). Pentru a obține precizia necesară, offset-ul pentru fiecare pereche de cadre (să le numim și ) poate fi calculat iterativ. În literatură, acest lucru se numește warping. În practică, aceasta înseamnă că, după ce au calculat offset-urile la prima iterație, deplasăm fiecare pixel al cadrului în direcția opusă, astfel încât acest offset să fie compensat. La următoarea iterație, în loc de cadrul original, vom folosi versiunea sa distorsionată. Și așa mai departe, până la următoarea iterație, toate compensațiile rezultate sunt mai mici decât valoarea de prag specificată. Obținem offset-ul final pentru fiecare pixel specific ca suma decalajelor sale la toate iterațiile.

Prin natura ei aceasta metoda este locală, adică atunci când se determină offset-ul unui anumit pixel, se ia în considerare doar zona din jurul acestui pixel - vecinătatea locală. În consecință, este imposibil să se determine deplasări în interiorul unor zone suficient de mari (mai mari decât dimensiunea cartierului local) colorate uniform ale cadrului. Din fericire, astfel de zone nu se găsesc adesea pe cadre reale, dar această caracteristică încă introduce o abatere suplimentară de la deplasarea adevărată.

O altă problemă este legată de faptul că unele texturi din imagine dau o matrice degenerată M, pentru care nu poate fi găsită matricea inversă. În consecință, pentru astfel de texturi nu vom putea determina offset-ul. Adică se pare că există mișcare, dar nu este clar în ce direcție. În general, nu numai metoda considerată suferă de această problemă. Chiar și ochiul uman percepe o astfel de mișcare în mod ambiguu (stâlp de frizer).

Concluzie
Am demontat baza teoretica una dintre metodele diferențiale de găsire a fluxului optic. Există multe alte metode interesante, dintre care unele, de astăzi, dau rezultate mai fiabile. Cu toate acestea, metoda Lucas-Kanade, cu eficiența sa bună, rămâne destul de simplu de înțeles și, prin urmare, este potrivită pentru familiarizarea cu fundamentele matematice.

Deși problema găsirii fluxului optic a fost studiată de câteva decenii, metodele sunt încă în curs de îmbunătățire. Lucrarea continuă având în vedere faptul că, la o examinare mai atentă, problema se dovedește a fi foarte dificilă, iar stabilitatea și eficiența multor altor algoritmi depind de calitatea determinării offset-urilor în procesarea video și a imaginii.

Cu această notă jalnică, permiteți-mi să rotunjesc și să trec la surse și link-uri utile.
Metoda Lucas-Kanade Adăugați etichete

Construcția unui flux optic este considerată în mod tradițional ca o procedură de estimare a modificărilor luminozității-geometrice dintre cadrele prezente (actuale) și cele precedente. Mișcarea obiectelor în fața unei camere staționare, precum și mișcarea camerei în mediu, duc la modificări corespunzătoare ale imaginii. Mișcarea aparentă a câmpului vizibil (distribuția bidimensională a luminozității), observată atunci când camera se mișcă în raport cu obiectele imagine sau obiectele în raport cu camera, se numește flux optic. Să definim câmpul de mișcare prin atribuirea unui vector viteză fiecărui punct al imaginii. La un anumit moment în timp selectat, un punct de pe imagine corespunde unui punct de pe suprafața obiectului. Aceste două puncte sunt conectate prin ecuații de proiectare. Punctul obiectului se mișcă în raport cu camera cu o viteză. Aceasta generează mișcarea punctului corespunzător din imagine. În timp, punctul se mișcă o distanță, iar imaginea sa - o distanță (vezi Fig. 1).

Orez. 1.

Distribuțiile de luminozitate se mișcă odată cu obiectele observate. Fluxul optic, așa cum am menționat mai devreme, este mișcarea aparentă a modelului de luminozitate. În mod ideal, fluxul optic corespunde câmpului de mișcare definit anterior, totuși, în practică, acest lucru nu este întotdeauna cazul.

Să fie acum luminozitatea unui pixel într-un punct din imagine la un moment dat. Atunci, dacă și sunt componentele vectorului de flux optic în acest moment, atunci ne putem aștepta la asta

Anulăm pe partea stângă și dreapta, împărțim și trecem la limita la. obține

Derivatele sunt ușor de obținut dintr-o imagine folosind aproximări numerice cu diferențe finite ale derivatelor

Să rescriem (4) sub forma

Aici, zona este zona în care este căutat fluxul optic. Valoarea coeficientului determină nivelul de semnificație al părții de netezire a funcționalului (11). Rețineți că, în literatură, propunerile pentru alegerea unei valori diferă dramatic. De exemplu, în carte se propune alegerea acestei constante egal, în carte - egal.

Sarcina de minimizare a funcționalului (6) este rezolvată folosind procedura iterativă (7)-(8). Secvența funcționalului de minimizare a vitezelor (6) are forma:

Aici indexul arată numărul iterației curente, - indicii nodului curent al grilei.

Procesul iterativ se termină atunci când discrepanța (9) între două iterații succesive este mai mică decât un număr predeterminat:

Cu toate acestea, această condiție este destul de incomod de utilizat în mod explicit din cauza costurilor de calcul semnificative pentru calculul ei, dacă este necesar să o verificăm la fiecare iterație. Din acest motiv, se utilizează de obicei un număr fix de iterații. De exemplu, în lucrări și se propune utilizarea. În practică, pentru imagini cu un contrast bun al obiectelor, iterațiile sunt suficiente. Utilizarea unui număr semnificativ mai mare de iterații poate duce la apariția unor viteze eronate diferite de zero în acele regiuni în care câmpul de viteză este de fapt zero. În special, acest lucru se întâmplă atunci când două obiecte diferite se mișcă la o distanță mică unul de celălalt. Câmpul de viteză dintre ele este de fapt egal cu zero, dar fluxul optic calculat pentru un număr mare de iterații poate fi diferit de zero datorită presupunerii continuității mișcării.

Fluxul optic poate fi, de asemenea zero unde câmpul de viteză nu este zero. Un astfel de caz, de exemplu, apare atunci când se deplasează un obiect caracterizat de luminozitate constantă pe întreaga zonă a zonei de imagine ocupată. În acest caz, fluxul optic calculat la marginea obiectului va fi diferit de zero, iar cel calculat în centrul obiectului va fi aproape de zero, în timp ce câmpul de viteză reală ar trebui să fie același pe toată suprafața obiectul. Această problemă se numește „problema deschiderii”.

Derivatele luminozității imaginii sunt propuse a fi considerate după cum urmează:

Aici se utilizează aproximarea grilă a derivatelor. Indexul arată numărul cadrului curent, - indicii nodului curent al grilei. Variațiile și la calcularea derivatelor parțiale (10) pot fi alese oricare. De obicei se folosește o plasă

Acum, prin substituirea derivatelor parțiale (10) și a vitezelor medii (8) în procesul iterativ (7) cu condiții inițiale, pentru toate din regiune, este ușor să găsiți vitezele tuturor punctelor grilei pe cadrele observate ale videoclipului. secvenţă.

Schema de calcul descrisă urmează metode tradiționale de estimare a fluxului optic. Cu toate acestea, experimentele efectuate pe un volum mare de înregistrări video reale au arătat că atunci când algoritmii de analiză a fluxului optic lucrează direct pe imaginile digitale semitonale originale, calitatea datelor de ieșire ale unor astfel de algoritmi nu este suficient de ridicată din cauza efectului semnificativ al zgomotului. și alte interferențe asupra calității detectării obiectelor. În acest sens, în această lucrare, se propune utilizarea unei proceduri speciale de acumulare a diferențelor descrise în secțiunea următoare ca procedură de preprocesare a datelor video. Sensul acestei proceduri constă în selecția preliminară robustă a contururilor obiectelor în mișcare, din care apoi se calculează estimarea fluxurilor optice, care este utilizată în stadiul formării ipotezelor și urmăririi obiectelor în mișcare.


În sistemele de viziune computerizată și de procesare a imaginii, apare adesea problema determinării mișcărilor obiectelor în spațiul tridimensional folosind un senzor optic, adică o cameră video. Având ca intrare o succesiune de cadre, este necesar să se recreeze spațiul tridimensional imprimat acestora și modificările care apar în timp. Sună complicat, dar în practică este adesea suficient să găsiți decalajele proiecțiilor bidimensionale ale obiectelor în planul cadrului.

Dacă vrem să știm cât de mult s-a deplasat acest sau acel obiect față de poziția sa pe cadrul precedent în timpul care a trecut între cadrele de fixare, atunci cel mai probabil ne vom aminti în primul rând fluxul optic. Pentru a găsi fluxul optic, puteți utiliza în siguranță o implementare gata testată și optimizată a unuia dintre algoritmi, de exemplu, din biblioteca OpenCV. Este, totuși, foarte inofensiv să înțelegi teoria, așa că îi invit pe toți cei interesați să caute în interiorul uneia dintre metodele populare și bine studiate. Acest articol nu conține cod și sfaturi practice, dar există formule și o serie de derivări matematice.

Există mai multe abordări pentru determinarea decalajelor între două cadre adiacente. De exemplu, pentru fiecare fragment mic (de exemplu, 8 pe 8 pixeli) dintr-un cadru, puteți găsi cel mai asemănător fragment în cadrul următor. În acest caz, diferența dintre coordonatele fragmentelor originale și găsite ne va oferi offset-ul. Principala dificultate aici este cum să găsiți rapid fragmentul dorit fără a parcurge întregul cadru pixel cu pixel. Diverse implementări ale acestei abordări rezolvă problema complexității computaționale într-un fel sau altul. Unele au atât de mult succes încât sunt folosite, de exemplu, în standardele comune de compresie video. Prețul vitezei este, desigur, calitate. Vom lua în considerare o altă abordare, care ne permite să obținem compensații nu pentru fragmente, ci pentru fiecare pixel individual și este folosită atunci când viteza nu este atât de critică. Termenul „flux optic” este adesea asociat cu acesta în literatură.

Această abordare este adesea numită diferențială, deoarece se bazează pe calculul derivatelor parțiale în direcțiile orizontale și verticale ale imaginii. După cum vom vedea mai târziu, derivatele singure nu sunt suficiente pentru a determina părtinirile. De aceea, pe baza unei idei simple, au apărut o mulțime de metode, fiecare dintre ele folosind un fel de dans matematic cu o tamburină pentru a atinge scopul. Să ne concentrăm pe metoda Lucas-Kanade, propusă în 1981 de Bruce Lucas și Takeo Kanade.

metoda Lucas-Kanade
Toate raționamentele suplimentare se bazează pe o presupunere foarte importantă și nu foarte corectă: Să presupunem că valorile pixelilor trec de la un cadru la altul fără modificări. Astfel, presupunem că pixelii care aparțin aceluiași obiect se pot deplasa în orice direcție, dar valoarea lor va rămâne neschimbată. Desigur, această presupunere nu are prea mult de-a face cu realitatea, deoarece condițiile globale de iluminare și iluminarea obiectului în mișcare în sine se pot schimba de la cadru la cadru. Există o mulțime de probleme cu această presupunere, dar, în mod ciudat, în ciuda tuturor, funcționează destul de bine în practică.

În limbajul matematic, această presupunere poate fi scrisă astfel: . Unde I este o funcție a luminozității pixelilor din poziție pe cadru și timp. Cu alte cuvinte, x și y sunt coordonatele pixelilor din planul cadrului, iar u este decalajul, iar t este numărul cadrului din secvență. Să fim de acord că între două cadre adiacente trece un singur interval de timp.

Caz unidimensional
Să luăm mai întâi în considerare cazul unidimensional. Imaginează-ți două cadre unidimensionale de 1 pixel înălțime și 20 pixeli lățime (figura din dreapta). Pe al doilea cadru, imaginea este ușor deplasată spre dreapta. Este acest decalaj pe care vrem să găsim. Pentru a face acest lucru, prezentăm aceleași cadre ca și funcții (figura din stânga). Intrarea este poziția pixelului, ieșirea este intensitatea acestuia. Într-o astfel de reprezentare, deplasarea necesară (d) poate fi văzută și mai clar. Conform presupunerii noastre, acesta este doar un părtinitor, adică putem spune că.

Vă rugăm să rețineți că, dacă doriți, puteți scrie și în formă generală: ; unde y și t sunt fixe și egale cu zero.

Pentru fiecare coordonată, știm valorile în acest moment, în plus, putem calcula derivatele acestora. Asociați valorile cunoscute cu offset-ul d. Pentru a face acest lucru, scriem expansiunea într-o serie Taylor pentru:

Să facem o a doua presupunere importantă: Să presupunem că este aproximat suficient de bine de prima derivată. Făcând această presupunere, aruncăm totul după prima derivată:

Cât de corect este asta? În general, nu foarte mult, aici pierdem în acuratețe, cu excepția cazului în care funcția/imaginea noastră este strict liniară, ca în exemplul nostru artificial. Dar acest lucru simplifică foarte mult metoda, iar pentru a obține acuratețea necesară, se poate face o aproximare succesivă, pe care o vom lua în considerare mai târziu.

Aproape am ajuns. Offset-ul d este valoarea noastră țintă, așa că trebuie să facem ceva cu . După cum am convenit mai devreme, rescriem doar:

carcasă 2D
Să trecem acum de la cazul unidimensional la cel bidimensional. Scriem expansiunea într-o serie Taylor și aruncăm imediat toate derivatele superioare. În locul primei derivate, apare un gradient:

Unde este vectorul deplasării.
În conformitate cu ipoteza făcută. Rețineți că această expresie este echivalentă cu . De asta avem nevoie. Să rescriem:

Întrucât un singur interval de timp trece între două cadre, putem spune că nu există altceva decât o derivată în raport cu timpul.
Să rescriem:

Să-l rescriem din nou, deschizând gradientul:

Avem o ecuație care ne spune că suma derivatelor parțiale trebuie să fie egală cu zero. Singura problemă este că avem o singură ecuație și există două necunoscute în ea: și . În acest moment, începe un zbor de fantezie și o varietate de abordări.

Să facem o a treia presupunere: Să presupunem că pixelii adiacenți sunt deplasați cu aceeași distanță. Să luăm un fragment din imagine, să spunem 5 pe 5 pixeli, și vom fi de acord că pentru fiecare dintre cei 25 de pixeli și sunt egali. Apoi, în loc de o ecuație, obținem 25 de ecuații deodată! Evident, în cazul general, sistemul nu are nicio soluție, așa că le vom căuta pe acelea și care minimizează eroarea:

Aici g este o funcție care determină ponderile pixelilor. Cea mai comună variantă este Gaussianul 2D, care dă cea mai mare greutate pixelului central și din ce în ce mai puțin pe măsură ce te îndepărtezi de centru.

Pentru a găsi minimul, folosim metoda celor mai mici pătrate, găsim derivatele sale parțiale în raport cu și:

Rescriem într-o formă mai compactă și echivalăm cu zero:

Să rescriem aceste două ecuații sub formă de matrice:

Dacă matricea M este inversabilă (are rang 2), putem calcula și , care minimizează eroarea E:

Asta e de fapt tot. Cunoaștem decalajul aproximativ al pixelilor dintre două cadre adiacente.

Deoarece pixelii vecini sunt implicați și în găsirea offset-ului fiecărui pixel, la implementarea acestei metode, este recomandabil să se calculeze preliminar derivatele orizontale și verticale ale cadrului.

Dezavantajele metodei
Metoda descrisă mai sus se bazează pe trei ipoteze semnificative, care, pe de o parte, ne oferă oportunitatea fundamentală de a determina fluxul optic, dar, pe de altă parte, introduc o eroare. Vestea bună pentru perfecționiști este că avem nevoie de o singură presupunere pentru a simplifica metoda și ne putem ocupa de consecințele acesteia. Am presupus că prima derivată ar fi suficientă pentru a aproxima deplasarea. În cazul general, desigur că nu este cazul (figura din stânga). Pentru a obține precizia necesară, offset-ul pentru fiecare pereche de cadre (să le numim și ) poate fi calculat iterativ. În literatură, acest lucru se numește warping. În practică, aceasta înseamnă că, după ce au calculat offset-urile la prima iterație, deplasăm fiecare pixel al cadrului în direcția opusă, astfel încât acest offset să fie compensat. La următoarea iterație, în loc de cadrul original, vom folosi versiunea sa distorsionată. Și așa mai departe, până la următoarea iterație, toate compensațiile rezultate sunt mai mici decât valoarea de prag specificată. Obținem offset-ul final pentru fiecare pixel specific ca suma decalajelor sale la toate iterațiile.

Prin natura sa, această metodă este locală, adică atunci când se determină offset-ul unui anumit pixel, se ia în considerare doar zona din jurul acestui pixel - vecinătatea locală. În consecință, este imposibil să se determine deplasări în interiorul unor zone suficient de mari (mai mari decât dimensiunea cartierului local) colorate uniform ale cadrului. Din fericire, astfel de zone nu se găsesc adesea pe cadre reale, dar această caracteristică încă introduce o abatere suplimentară de la deplasarea adevărată.

O altă problemă este legată de faptul că unele texturi din imagine dau o matrice degenerată M, pentru care nu poate fi găsită matricea inversă. În consecință, pentru astfel de texturi nu vom putea determina offset-ul. Adică se pare că există mișcare, dar nu este clar în ce direcție. În general, nu numai metoda considerată suferă de această problemă. Chiar și ochiul uman percepe o astfel de mișcare în mod ambiguu (stâlp de frizer).

Concluzie
Am analizat fundamentele teoretice ale uneia dintre metodele diferențiale de găsire a fluxului optic. Există multe alte metode interesante, dintre care unele, de astăzi, dau rezultate mai fiabile. Cu toate acestea, metoda Lucas-Kanade, cu eficiența sa bună, rămâne destul de simplu de înțeles și, prin urmare, este potrivită pentru familiarizarea cu fundamentele matematice.

Deși problema găsirii fluxului optic a fost studiată de câteva decenii, metodele sunt încă în curs de îmbunătățire. Lucrarea continuă având în vedere faptul că, la o examinare mai atentă, problema se dovedește a fi foarte dificilă, iar stabilitatea și eficiența multor altor algoritmi depind de calitatea determinării offset-urilor în procesarea video și a imaginii.

Cu această notă jalnică, permiteți-mi să rotunjesc și să trec la surse și link-uri utile.
metoda Lucas-Kanade

  • Lucas Canada
  • Adaugă etichete

    Agafonov V.Yu. 1

    1 Agafonov Vladislav Yuryevich - student postuniversitar al Departamentului de proiectare asistată de computer și proiectare exploratorie, Universitatea Tehnică de Stat din Volgograd,

    Volgograd

    Adnotare: V Acest articol discută două abordări pentru a găsi decalaje între imagini dintr-un flux video. Prima abordare se bazează pe minimizarea erorii prin metoda celor mai mici pătrate atunci când se caută deplasarea punctelor cheie ale imaginii. A doua abordare se bazează pe aproximarea unei anumite zone a fiecărui pixel printr-un polinom pătratic, care poate fi bine utilizat în estimarea mișcării. Sunt descrise principalele etape ale implementării metodelor. Au fost pregătite seturi de testare de imagini ținând cont de specificul sarcinii. Sunt prezentate rezultatele lucrărilor la aceste teste.

    Cuvinte cheie: prelucrarea imaginilor, căutarea deplasării imaginii

    APLICAREA METODELOR DE FLUJ OPTICE PENTRU ESTIMAREA DEPOZITĂRII IMAGINII

    Agafonov V.U. 1

    1 Agafonov Vladislav Urevich - student postuniversitar la departamentul „sisteme de proiectare asistată de computer și proiectare de căutare”;

    Universitatea Tehnică de Stat din Volgograd, Volgograd

    abstract: în acest articol sunt descrise metode de estimare a deplasării imaginii. Prima abordare se bazează pe minimizarea erorii pătratice medii la căutarea deplasării punctelor cheie ale imaginii. A doua abordare se bazează pe aproximarea fiecărei vecinătăți a ambelor cadre prin polinoame pătratice, ceea ce poate fi realizat eficient folosind transformarea de expansiune polinomială. Sunt descrise principalele etape ale implementării acestor metode. Seturile de testare de imagini sunt pregătite ținând cont de natura specifică a problemei. Sunt prezentate rezultatele lucrării.

    Cuvinte cheie: procesarea imaginilor, estimarea deplasării imaginii

    UDC 004.932.2

    Introducere

    La rezolvarea problemelor de viziune computerizată, apare adesea problema estimării mișcării unui obiect în cadre sau a deplasării a două cadre consecutive într-un flux video. Estimarea precisă a parametrilor de mișcare a scenei pe cadre este un factor important pentru mulți algoritmi, așa că metodele de detectare a mișcării trebuie să ofere precizie subpixel.

    Există mai multe abordări pentru estimarea deplasării imaginii. Principalele sunt: ​​evidențierea caracteristicilor cheie din imagine, urmată de compararea punctelor cheie, determinarea corelației de fază a reprezentării în frecvență a semnalului imaginii și a fluxului optic. Acesta din urmă în forma sa principală nu este folosit pentru a căuta deplasări de imagine, este folosit pentru a determina prezența mișcării în imagine. Deci fluxul optic este utilizat în sistemele de detectare și urmărire a obiectelor.

    Fluxul optic este modelul de mișcare aparentă a obiectelor, suprafețelor sau marginilor scenei cauzat de mișcarea relativă a observatorului (ochii sau aparatul foto) în raport cu scena. Algoritmii bazați pe fluxul optic, cum ar fi detectarea mișcării, segmentarea obiectelor, codificarea mișcării utilizează această mișcare a obiectelor, suprafețelor și marginilor.

    În această lucrare, sunt luate în considerare două abordări, dintre care una permite obținerea de decalaje pentru puncte cheie separate, iar a doua - pentru fiecare pixel individual.

    Flux optic prin metoda Lucas-Kanade

    Conceptul principal al metodei este de a presupune că valorile pixelilor trec de la un cadru la altul fără a se schimba:

    Unde. Ignorând termenul rămas, obținem o formulă pentru aproximarea ????:

    unde și definește offset-ul. În conformitate cu ipoteza făcută, obținem că. Apoi scriem ecuația (4) ca

    Se dovedește că suma derivatelor parțiale este egală cu zero. Totuși, deoarece avem o singură ecuație și două necunoscute, trebuie să impunem condiții suplimentare. O modalitate obișnuită este de a introduce o limită pentru pixelii din apropiere. Să presupunem că pixelii vecini sunt deplasați în mod egal. Evident, nu poate exista un offset care să satisfacă toți pixelii, așa că minimizăm eroarea folosind metoda celor mai mici pătrate.

    unde este o matrice simetrică, este un vector, este un scalar. Coeficienții sunt calculați folosind metoda celor mai mici pătrate ponderate pentru valorile semnalului dintr-o zonă dată. Funcția de ponderare are două componente numite certitudine și aplicabilitate. Certitudinea raportează valoarea semnalului în funcție de valorile din vecinătate. Aplicabilitatea determină contribuția relativă a punctelor în funcție de poziția lor în cartier. De obicei punctul central are cea mai mare greutate, greutatea altor puncte scade pe direcția radială. Deoarece imaginea este descompusă ca un polinom pătratic într-o anumită vecinătate, este necesar să înțelegem cum se comportă polinomul cu o deplasare ideală. Să fie dat un polinom pătratic:

    Echivalând coeficienții corespunzători ai polinoamelor pătratice, avem:

    Acest lucru este valabil pentru orice semnal.

    Evident, presupunerea că semnalul poate fi reprezentat printr-un singur polinom este destul de nerealistă. Totuși, relația (10) poate fi utilizată pentru semnale reale, chiar dacă apar erori. Întrebarea principală este dacă erorile sunt suficient de mici pentru ca algoritmul să fie util.

    Să înlocuim reprezentarea polinomială globală cu cea locală. Să calculăm coeficienții polinomii pentru prima imagine și pentru a doua imagine. În conformitate cu (9), ar trebui să fie, dar în practică se utilizează următoarea aproximare:

    unde reflectă înlocuirea offset-ului global cu un offset care variază spațial.

    În practică, ecuația (11) poate fi rezolvată element cu element, dar rezultatele sunt prea zgomotoase. În schimb, se presupune că zona de offset se schimbă lent, astfel încât să putem integra informații folosind pixeli adiacenți. Astfel, încercăm să găsim un cartier care să satisfacă (11), sau mai formal:

    Problema principală a metodei este presupunerea că polinoamele sunt aceleași, cu excepția offset-ului. Deoarece expansiunea polinomului local a polinomului se va modifica în funcție de mediu, aceasta va introduce o eroare în (11). Pentru decalaje mici, acest lucru nu este important, dar odată cu creșterea offset-ului, eroarea crește. Dacă avem cunoștințe a priori despre părtinire, putem compara două polinoame: primul în, al doilea în, unde este părtinirea anterioară rotunjită la o valoare întreagă. Astfel putem executa metoda iterativ. O părtinire anterioară mai bună înseamnă o părtinire relativ mai mică, care, la rândul său, crește șansele unei estimări bune a părtinirii reale.

    Aplicarea metodelor de flux optic la problema căutării deplasărilor de imagine

    Pentru a testa aceste metode, testarea a fost efectuată pe un set de date artificiale, adică. obţinute cu ajutorul generatorului de imagini offset. Pentru a obține o deplasare de subpixeli, secțiunile cu un ușor decalaj unele față de altele au fost tăiate din imaginea originală. După aceea, imaginile de test rezultate au fost comprimate de mai multe ori; în consecință, o parte din informațiile de pe ele au dispărut, iar offset-ul a fost redus la subpixeli.

    Pentru metoda Lucas-Kanade, este necesar să selectați un set de puncte cheie, a căror deplasare trebuie găsită. Pentru aceasta se foloseste metoda clasica căutând limite şi colţuri. După obținerea decalajului fiecăruia dintre aceste puncte, este necesară medierea rezultatului obținut.

    Pentru metoda Farneback, este suficient să mediați valorile deplasării în fiecare pixel.

    Experimentul a fost efectuat pe un eșantion de 20 de perechi de teste și a fost calculată abaterea standard pentru fiecare metodă.

    OP Lucas-Canada

    OP Farneback

    Tabelul 1 - Abaterea standard a deplasărilor

    Din rezultatele experimentului, se poate observa că ambele metode estimează deplasarea imaginii cu mare precizie. Rezultatul metodei Farneback arată un rezultat mai slab datorită faptului că metoda evaluează offset-ul pentru toți pixelii și poate face erori pe părți simple ale imaginii.

    Fiecare metodă are propriile sale avantaje și dezavantaje, precum și domeniul de aplicare și limitări. Metoda Lucas-Kanade implementează un flux optic rarefiat și

    poate oferi precizie sub-pixel. Dar cu mișcarea non-plan-paralelă, apare o altă problemă, cum se estimează deplasarea punctelor care nu sunt cheie. Prima soluție este de a construi o diagramă Voronoi pentru planul imaginii cu puncte cheie date. Această abordare se bazează pe presupunerea că zonele apropiate de punctele cheie se deplasează în același mod ca punctele cheie. În general, acest lucru nu este întotdeauna adevărat. În practică, punctele cheie sunt în mare parte zone cu gradient abrupt, adică punctele cheie se vor concentra în mare parte pe obiecte detaliate. Prin urmare, offset-ul zonelor solide va avea o eroare mare. A doua soluție este găsirea omografiei a două imagini. Această soluție suferă și de estimarea inexactă a offset-ului la marginile imaginii.

    Avantajul fluxului optic cu metoda Farneback este că offset-ul este căutat pentru fiecare pixel. Cu toate acestea, această metodă face greșeli și asupra obiectelor periodice și slab texturate, dar permite estimarea mișcării non-plan-paralele.

    Concluzie

    În acest articol, a fost luată în considerare o abordare pentru estimarea deplasării imaginii bazată pe metode de flux optic. Se dovedește aplicabilitatea metodelor și se prezintă rezultatele analiza comparativa. Studiile experimentale efectuate ale metodelor au arătat că această abordare are o precizie ridicată și poate fi utilizată pentru estimarea parametrilor de mișcare ai scenei.

    Bibliografie/ Referințe

    1. Fleet D., Weiss Y. Estimarea fluxului optic // Manual de modele matematice în viziunea computerizată. - Springer US, 2006. - S. 237-257.
    2. Farnebäck G. Estimarea mișcării în două cadre bazată pe expansiunea polinomială //Analiza imaginii. - 2003. - S. 363-370.


    
    Top