Explicația urmăririi culorii#

Ce înseamnă urmărirea unei culori și cum o face CMUcam4?#

Urmărirea culorii este capacitatea de a lua o imagine, de a izola o anumită culoare și de a extrage informații despre locația unei regiuni a acelei imagini care conține doar acea culoare. Ca exemplu, presupuneți că vi se dă o fotografie care conține o minge roșie așezată pe un drum de pământ. Dacă cineva v-ar cere să desenați o casetă în jurul a orice avea culoarea roșie în imagine, ați desena destul de ușor un dreptunghi în jurul mingii. Aceasta este ideea de bază din spatele urmăririi culorii. Nu ați avut nevoie să știți că obiectul era o minge. Ați avut nevoie doar de un concept al culorii roșii pentru a izola obiectul din fotografie. Mai jos, vom aborda pe scurt modul în care CMUcam4 utilizează efectiv informațiile dintr-o imagine a camerei pentru a efectua urmărirea culorii.

Pentru a specifica o culoare, trebuie să definiți o valoare minimă și maximă permisă pentru trei canale de culoare. Fiecare culoare unică este reprezentată de o valoare roșie, verde și albastră care indică cât din fiecare canal este amestecat în culoarea unică. Partea dificilă a specificării unei culori este că trebuie să definiți un interval de valori permise pentru toate cele trei canale de culoare. Deoarece lumina nu este perfect uniformă și culoarea unui obiect nu este perfect uniformă, trebuie să țineți cont de aceste variații. Totuși, nu doriți să relaxați prea mult aceste limite, altfel multe culori nedorite vor fi acceptate. Deoarece, în cazul CMUcam4, fiecare canal de culoare este convertit într-un număr între 0 și 255, puteți delimita fiecare canal cu două numere, o limită superioară și una inferioară. Dacă aveți două limite pentru fiecare dintre cele trei canale, aceasta înseamnă că șase valori pot fi utilizate pentru a constrânge întregul spațiu de culoare pe care doriți să îl urmăriți. Dacă vă imaginați culorile reprezentate de un cub în care fiecare latură este un canal de culoare diferit (roșu, verde și albastru), atunci cele șase valori utilizate pentru a selecta culoarea dvs. ar desena o casetă tridimensională în interiorul acelui cub care definește setul dorit de culori.

Odată ce aveți o limită pentru culoarea pe care doriți să o urmăriți, CMUcam4 preia aceste limite și procesează imaginea. Există multe moduri de a urmări culorile într-o imagine care pot fi destul de complexe. CMUcam4 utilizează un algoritm simplu cu o singură trecere care procesează fiecare nou cadru de imagine de la cameră în mod independent. Începe din stânga sus a imaginii și examinează secvențial fiecare pixel rând cu rând. Dacă pixelul pe care îl inspectează se încadrează în intervalul de culori specificat de utilizator, marchează acel pixel ca fiind urmărit. De asemenea, examinează poziția pixelului urmărit curent pentru a vedea dacă este cea mai de sus, cea mai de jos, cea mai din stânga sau cea mai din dreapta poziție dintre toți pixelii urmăriți găsiți până acum în imagine. Dacă constată că pixelul este în afara casetei de delimitare curente a regiunii urmărite, extinde caseta de delimitare pentru a conține acest nou pixel. Deoarece locația chiar și a unui singur pixel urmărit poate schimba caseta de delimitare, aceasta poate uneori fluctua destul de mult de la un cadru la altul. Filtrarea zgomotului (vezi paragraful următor) poate fi utilizată pentru a reduce o parte din această fluctuație. Singura altă informație majoră care este stocată este o sumă a coordonatelor orizontale și verticale ale pixelilor urmăriți. La sfârșitul imaginii, CMUcam4 preia suma orizontală și suma verticală a pixelilor urmăriți și le împarte pe fiecare la numărul total de pixeli urmăriți și obține o valoare care arată unde se află mijlocul obiectului urmărit. Deoarece fiecare pixel urmărit contribuie doar cu o mică parte la sumele finale orizontale și verticale, mijlocul (adesea numit centroid) al pixelilor urmăriți este de obicei o măsurătoare mult mai stabilă decât caseta de delimitare. Odată ce toți pixelii din imagine au fost verificați, numărul total de pixeli urmăriți poate fi, de asemenea, utilizat împreună cu suprafața casetei de delimitare pentru a calcula încrederea și numărul de pixeli din obiectul urmărit.

Filtrarea zgomotului ne permite să mărim intervalele de urmărire a culorii, astfel încât să putem acomoda variații mai mari ale valorilor pixelilor imaginii fără a face ca alte variații aleatorii din imagine să fie urmărite. Ideea din spatele filtrării zgomotului este că vrem să considerăm un pixel ca fiind de culoarea urmărită doar dacă face parte dintr-un grup de pixeli care se află în limitele de urmărire a culorii. În CMUcam4 implementăm acest lucru într-un mod care necesită doar o singură trecere peste imagine. În timp ce procesează pixelii dintr-o imagine, CMUcam4 menține un contor care ține evidența câți pixeli secvențiali din rândul curent, înainte de pixelul curent, s-au aflat în limitele culorii urmărite. Dacă acea valoare este peste valoarea filtrului de zgomot, atunci pixelul curent este marcat ca pixel urmărit.

Ce este o histogramă și la ce este bună?#

O histogramă este un tip de grafic care afișează frecvența și distribuția datelor. În cazul CMUcam4, histograma arată frecvența și distribuția valorilor de culoare găsite într-o imagine. Fiecare bară reprezintă un interval de valori de culoare pentru un canal specific. CMUcam4 poate împărți valorile de culoare posibile de la 0 la 255 în 1, 2, 4, 8, 16, 32 și 64 de intervale diferite. Fiecare interval conține numărul de pixeli găsiți în imagine care se încadrează în anumite limite de culoare. Astfel, o valoare mare într-un anumit interval înseamnă că multe dintre acele culori au fost găsite în imagine. Fiecare histogramă reprezintă doar un singur canal de culoare selectat.

Histogramele sunt o modalitate de abstractizare a conținutului unei imagini. Au multe utilizări, cum ar fi recunoașterea primitivă a obiectelor, pragul sau echilibrarea culorilor. Sunt deosebit de utile pentru distingerea între diferite texturi. Încercați să îndreptați CMUcam4 cu auto-gain dezactivat către două suprafețe cu texturi diferite și observați diferența în distribuțiile lor de culoare. Acest efect poate fi utilizat pentru a distinge suprafețele podelei sau pentru a detecta obstacole.