Objašnjenje praćenja boje#

Što je praćenje boje i kako to CMUcam4 radi?#

Praćenje boje je sposobnost uzimanja slike, izoliranja određene boje i izdvajanja informacija o lokaciji područja te slike koje sadrži samo tu boju. Kao primjer, pretpostavimo da vam je dana fotografija na kojoj se nalazi crvena lopta koja stoji na makadamskoj cesti. Kad bi vas netko zamolio da nacrtate okvir oko svega što je crvene boje na slici, prilično biste lako nacrtali pravokutnik oko lopte. To je osnovna ideja iza praćenja boje. Niste trebali znati da je objekt lopta. Trebali ste imati samo koncept crvene boje kako biste izolirali objekt na slici. U nastavku ćemo ukratko objasniti kako CMUcam4 zapravo koristi informacije iz slike kamere za praćenje boje.

Kako biste odredili boju, trebate definirati minimalnu i maksimalnu dopuštenu vrijednost za tri kanala boje. Svaka jedinstvena boja predstavljena je crvenom, zelenom i plavom vrijednošću koja označava koliko je svakog kanala pomiješano u jedinstvenu boju. Škakljiv dio kod određivanja boje jest da trebate definirati raspon dopuštenih vrijednosti za sva tri kanala boje. Budući da svjetlost nije savršeno ujednačena i boja objekta nije savršeno ujednačena, morate uzeti u obzir te varijacije. Međutim, ne želite previše olabaviti te granice, jer će inače biti prihvaćeno mnogo neželjenih boja. Budući da se, u slučaju CMUcam4, svaki kanal boje pretvara u broj između 0 i 255, možete ograničiti svaki kanal s dva broja, gornjom i donjom granicom. Ako imate dvije granice za svaki od tri kanala, to znači da se šest vrijednosti može koristiti za ograničavanje cijelog prostora boja koji želite pratiti. Ako zamislite boje predstavljene kockom gdje je svaka strana drugi kanal boje (crveni, zeleni i plavi), tada bi šest vrijednosti korištenih za odabir vaše boje nacrtalo trodimenzionalnu kutiju unutar te kocke koja definira vaš željeni skup boja.

Nakon što imate granicu za boju koju želite pratiti, CMUcam4 uzima te granice i obrađuje sliku. Postoji mnogo načina za praćenje boja na slici koji mogu biti prilično složeni. CMUcam4 koristi jednostavan jednoprolazni algoritam koji svaki novi slikovni okvir iz kamere obrađuje neovisno. Počinje u gornjem lijevom kutu slike i redom pregledava svaki piksel red po red. Ako piksel koji pregledava spada unutar raspona boja koji je korisnik naveo, taj piksel označava kao praćeni. Također ispituje položaj trenutnog praćenog piksela kako bi vidio je li to najgornji, najdonji, najljeviji ili najdesniji položaj od svih praćenih piksela pronađenih do sada na slici. Ako otkrije da je piksel izvan trenutnog graničnog okvira praćenog područja, proširuje granični okvir kako bi obuhvatio taj novi piksel. Budući da položaj čak i jednog jedinog praćenog piksela može promijeniti granični okvir, granični okvir ponekad može prilično fluktuirati od okvira do okvira. Filtriranje šuma (vidi sljedeći odlomak) može se koristiti za smanjenje dijela te fluktuacije. Jedina druga važna informacija koja se pohranjuje je zbroj horizontalnih i vertikalnih koordinata praćenih piksela. Na kraju slike CMUcam4 uzima horizontalni zbroj i vertikalni zbroj praćenih piksela i svaki dijeli s ukupnim brojem praćenih piksela te dobiva vrijednost koja pokazuje gdje se nalazi sredina praćenog objekta. Budući da svaki praćeni piksel doprinosi samo malim dijelom konačnim horizontalnim i vertikalnim zbrojevima, sredina (često nazvana centroid) praćenih piksela obično je puno stabilnija mjera od graničnog okvira. Nakon što su svi pikseli na slici provjereni, ukupan broj praćenih piksela može se također koristiti zajedno s površinom graničnog okvira za izračun pouzdanosti i broja piksela u praćenom objektu.

Filtriranje šuma omogućuje nam da raspone praćenja boje učinimo većima kako bismo mogli prihvatiti veće varijacije u vrijednostima piksela slike bez uzrokovanja praćenja drugih nasumičnih varijacija na slici. Ideja iza filtriranja šuma je da piksel želimo smatrati pikselom praćene boje samo ako je dio skupine piksela koji su unutar granica praćenja boje. U CMUcam4 to implementiramo na način koji zahtijeva samo jedan prolaz preko slike. Tijekom obrade piksela u slici CMUcam4 održava brojač koji prati koliko je uzastopnih piksela u trenutnom retku, prije trenutnog piksela, bilo unutar granica praćene boje. Ako je ta vrijednost iznad vrijednosti filtra šuma, tada se trenutni piksel označava kao praćeni piksel.

Što je histogram i čemu služi?#

Histogram je vrsta grafikona koja prikazuje učestalost i distribuciju podataka. U slučaju CMUcam4, histogram prikazuje učestalost i distribuciju vrijednosti boja pronađenih na slici. Svaki stupac predstavlja raspon vrijednosti boja za određeni kanal. CMUcam4 može podijeliti moguće vrijednosti boja od 0 do 255 u 1, 2, 4, 8, 16, 32 i 64 različita razreda (bins). Svaki razred sadrži broj piksela pronađenih na slici koji potpadaju unutar nekih granica boje. Dakle, velika vrijednost u jednom određenom razredu znači da je mnogo tih boja pronađeno na slici. Svaki histogram predstavlja samo jedan odabrani kanal boje.

Histogrami su način apstrahiranja sadržaja slike. Imaju mnoge primjene poput primitivnog prepoznavanja objekata, pragovanja (thresholding) ili balansiranja boja. Osobito su korisni za razlikovanje različitih tekstura. Pokušajte usmjeriti CMUcam4 s isključenim automatskim pojačanjem prema dvjema različito teksturiranim površinama i primijetite razliku u njihovim distribucijama boja. Ovaj se učinak može koristiti za razlikovanje površina podova ili otkrivanje prepreka.