Programska izvedba agenata promatrača
Uvod
Sasvim općenito, zadatak agenta promatrača je
detekcija traženih objekata u slici odgovarajućim postupcima,
te upravljanje smjerom gledanja kamere u cilju praćenja
tekućeg ili traženja novog objekta.
Konačni sustav se sastoji od većeg broja promatrača,
pa je pored koordinatnih sustava slike (o,x,y) i kamere
(C, X, Y, Z), potrebno uvesti i referentni koordinatni
sustav scene (O,K,L,M), zajednički za sve promatrače.
Bitno svojstvo razmatranih scena je da se traženi objekti
gibaju po referentnoj ravnini π koja je tipično vodoravna.
Stoga je, bez smanjenja općenitosti, povoljno
postaviti os zakreta upravljive kamere okomito su na π,
te odabrati k.s. kamere i svijeta u kojima se
uspravne osi Z i M poklapaju s tim smjerom (sl.1).
|
slika 1.
|
Da bi se iz položaja objekta u koordinatnom sustavu slike odredio
odgovarajući trodimenzionalni položaj u k.s. svijeta
(O,K,L,M), potrebno je obaviti niz transformacija.
-
Prvo je, na temelju položaja objekta u slici p(xp,yp),
intrinsičnih
parametara kamere i poznatog položaja upravljive kamere,
potrebno odrediti kutni položaj objekta
(φp, θp)
u k.s. kamere (C,X,Y,Z).
-
Dobiveni kutni položaj definira jednadžbu 3D pravca koji spaja točke
p i P, a presjecište tog pravca sa ravninom π
daje položaj objekta u k.s. kamere.
-
Konačno, još jedna Euklidska transformacija (translacija, rotacija)
je potrebna da bi se, na temelju poznatih
ekstrinsičnih
parametara kamere dobio položaj objekta u k.s. svijeta (O,K,L,M).
Zahtjevi
Program koji impementira agenta promatrača
mora zadovoljavati sljedeće zahtjeve:
-
Traženi objekti se trebaju detektirati
relativno jednostavnim postupcima
koji se mogu obaviti u stvarnom vremenu;
-
pripadna aktivna kamera mora biti dobro kalibrirana,
kako bi se iz dobivenih položaja objekata u slici
mogao odrediti njihov položaj u k.s. svijeta, što uključuje:
-
parametre radijalnog izobličenja kamere (npr,
K1, K2, ili
K2, K3),
-
intrinsične parametre kamere (npr, vodoravni kut vidnog polja),
-
ekstrinsične parametre kamere
(npr, položaj i orijentacija kamere
u koordinatnom sustavu svijeta),
te,
-
parametre upravljivog postolja
(npr, nulti zakret i nagib);
-
promatrač se prilikom pokretanja treba prijaviti koordinatoru
i na temelju razmjene nekoliko jednostavnih poruka procijeniti
razliku između svog i koordinatorovog sata;
-
promatrač mora agentu-koordinatoru dojaviti sljedeće podatke:
-
ekstrinsične parametre kamere
(prilikom početne prijave),
-
smjer gledanja kamere
(nakon svake promjene smjera gledanja),
-
listu detektiranih objekata
(nakon svake obrađene slike);
-
promatrač mora biti sposoban raditi u četiri različita
načina rada (stanja), a prijelazi među njima mogu biti
autonomni ili inicirani od strane koordinatora:
-
mirovanje - promatrač ne mijenja smjer gledanja,
-
čekanje - promatrač ne mijenja smjer gledanja
sve dok ne pronađe barem jedan objekt,
a onda prelazi u stanje praćenje,
-
traženje - promatrač sistematski mijenja
smjer gledanja sve dok ne pronađe barem jedan objekt,
a onda prelazi u stanje praćenje,
-
praćenje - promatrač mijenja smjer gledanja kamere
u skladu sa kretanjem praćenog objekta;
-
autonomni prijelazi među načinima rada su ilustrirani na sl.2:
|
slika 2.
|
-
promatrač mora moći interpretirati sljedeće upute koordinatora
(bez obaveze da ih mora i izvršiti):
-
usmjeri(x,y) - postavi smjer gledanja na
lokaciju (x,y) u koordinatnom sustavu svijeta,
-
prati(x,y) - prati objekt koji se nalazi na
lokaciji (x,y) u koordinatnom sustavu svijeta,
-
miruj - promijeni način rada u mirovanje,
-
traži - promijeni način rada u traženje.
Arhitektura programa
Program koji obavlja funkciju promatrača se sastoji
od niza procedura koje se izvršavaju slijedno u
beskonačnoj petlji (sl.3).
|
slika 3.
|
-
Dohvat smjera gledanja:
-
ukoliko se kamera kreće, potrebno je
pribaviti njen trenutni smjer gledanja.
-
Pribavljanje slike:
-
pribavljaju se slike u boji dimenzija
320x240 slikovnih elemenata u
RGB formatu.
-
Obrada slike:
-
obrada se temelji na pretpostavci da se i objekti
i referentna ravnina mogu segmentirati na temelju boje.
Procedura se može razložiti na sljedeće korake:
-
glađenje Gaussovim filterom;
-
pretvaranje slike u
HSV
format;
-
maskiranje pretamnih i presvijetlih područja
sa relativno malenim V i S komponentama;
-
izlučivanje referentne ravnine (parket) na temelju zadanog
raspona nijansi HP1 - HP2;
-
izlučivanje objekata na temelju zadanog raspona nijansi
HO1 - HO2;
-
pronalaženje povezanih regija koje pripadaju objektima,
te testiranje da li se oko njih nalazi referentna ravnina;
-
odbacivanje premalenih objekata, i objekata koji se
ne nalaze u blizini referentne ravnine.
-
3D interpretacija:
-
za svaki od pronađenih objekata, određuje se kutni položaj
u k.s. kamere (φp, θp),
položaj u k.s. kamere P(XP,YP, -h),
te položaj u k.s. svijeta Ps(KP,LP,0).
-
Praćenje:
-
detektirani objekti se podudaraju sa objektima
koji su prepoznati tokom obrade prethodnih slika
(u obzir se uzimaju samo protekle dvije sekunde).
-
Ulaz:
-
u slučaju dobivene upute od strane koordinatora
prvo se provjerava može li se uputa izvršiti,
te ako može, prelazi se u odgovarajući režim
rada i po potrebi pamti operacija pomaka kamere;
u suprotnom (npr, kamera ne može podesiti smjer
gledanja prema zatraženoj točki), uputa se ignorira.
-
Izlaz:
-
rezultati obrade se ispisuju u lokalnom prozoru;
položaji objekata koji su detektirani i u barem
tri prethodne slike se šalju koordinatoru.
-
Upravljanje kamerom:
-
smjer kamere se mijenja u sljedećim situacijama:
-
trenutni način rada je praćenje
ili traženje, a praćeni objekt se približava
rubu slike odnosno prošlo je više od 10 s nakon
posljednjeg pomaka kamere bez da je detektiran objekt;
-
dobivena uputa usmjeri() je okvalificirana kao izvršiva.
Ispravljanje sistematske pogreške postupka
Glavno ograničenje opisanog pristupa je u tome što je njime
moguće odrediti samo približni položaj traženog objekta,
ako se koriste jednostavne metode pronalaženja objekata
amplitudnom segmentacijom.
Kao što se vidi na sl.4, sistematska greška je proporcionalna
umnošku visine objekta i kotangensa komponente nagiba objekta
k=ctg(θP), pa bi se mogla kompenzirati
kad bi promatrač ``znao'' visinu praćenih objekata.
Međutim, u konkretnom slučaju se pokazalo da se greška može
kompenzirati i drugim metodama, ako su objekti
relativno mali i plosnati, a kamere postavljene
relativno visoko nad scenom.
|
slika 4.
|
Ukoliko dva ili više promatrača prate isti objekt,
greška se može ukloniti kombiniranjem mjerenja promatrača.
Za svakog promatrača i, definiran je
3D pravac pi, koji spaja glavnu točku
projekcije kamere Ci i
središte detektiranog objekta Pi.
U idealnom slučaju, kad bi kamere bile savršeno kalibrirane,
pravci pi bi se sjekli točno u
stvarnom težištu objekta G (sl.5).
U stvarnosti međutim, pravci se više ili manje mimoilaze,
pa se G može procijeniti kao težište skupa točaka
Gij, koje se dobiju kao središta najkraćih
spojnica parova pravaca pi i pj.
|
slika 5.
|
Ovakvom tehnikom pored ravninskog položaja objekta
saznajemo i njegovu visinu, što onda omogućava praćenje
objekata čije gibanje nije isključivo planarno
(npr, lopta, avion).
Na žalost, da bi se tehnika mogla koristiti, potrebno
je prethodno ostvariti korespondenciju između objekata
detektiranih od strane različitih promatrača.
Složenost tog zadatka je jedan od glavnih razloga
izdvajanja koordinacije u zasebni program.
Pokazalo se da H komponente HSV sustava (``nijansa''),
relativno dobro opisuju dobivene boje objekta i
referentne ravnine pri raznim uvjetima osvjetljenja.
Slike 6. i 7. pokazuju rezultate obrade
dobivene na istoj sceni, na platformama
Asus i
Compaq.
Na obje slike, originalna slika sa ucrtanim slikovnim oknom i
kutnim položajem detektiranog objekta je prikazana u okviru (a).
Okviri (b) prikazuju pretamna i presvijetla područja koja su
maskirana na temlju S i V komponenti HSV sustava.
Konačno, područja koja bi prema zadanim vrijednostima nijanse (H)
trebala odgovarati referentnoj ravnini odnosno objektima
su prikazana u okvirima (c) odnosno (d).
Kao bolja ilustracija postignutih rezultata
pripremljeni su animirani sljedovi toka obrade
na svakoj od spomenute dvije platforme,
Zbog veličine odgovarajućih datoteka,
animirani sljedovi slika se mogu pogledati
na zasebnim stranicama:
Budući da agenti promatrači rade u stvarnom vremenu,
kvaliteta praćenja umnogome ovisi o performansi
odgovarajućih programa.
Konačni sustav bi pri tome trebao biti robustan na povremena
usporavanja nekog od promatrača, pa se program,
prema često korištenoj
taksonomiji,
može okarakterizirati kao tzv. soft real time problem.
Najčešća mjera performanse sustava računarskog vida je broj
obrađenih slika u sekundi, a pri tome se koristi mjerna jedinica
Hz ili fps (engl. frames per second).
U skladu s tom mjerom, postignute performanse programa
su sažete u sljedećoj tablici, u ovisnosti o korištenoj
platformi.
platforma | performansa [Hz] |
ASUS A7266-D | 9.1 |
Compaq Evo W4000 | 12.5 |
Matsonic 7127C | 3.1 |
Čest problem kod računarskog vida je da ambijentalno
osvjetljenje koje sasvim zadovoljava kriterije ljudskog oka
nije dovoljno dobro da pribavljene slike mogu biti uspješno
interpretirane strojnim metodama.
Poseban problem u tom smislu stvaraju veliki kontrasti
i odbljesci uzrokovani izravnim osvjetljenjem te kutovi
scene koji su često slabije osvijetljeni.
Velik dio problema pri tome je zapravo u domeni senzora
koji ne mogu prikazati velike kontraste nego ulaze u
zasićenje prema bijeloj odnosno crnoj boji.
Tako se u sl.6 može vidjeti da ni objekt ni referentna ravnina nisu
izlučeni idealno, da se u odgovarajućim slikama (6.c) i (6.d)
javljaju crna područja koja nisu ispravno prepoznata.
Ipak, u većini slučajeva, regularno osvjetljenje je dovoljno
za uspješno praćenje objekata.
Pored osvjetljenja, velik problem predstavlja i sporost
upravljivih kamera Sony EVI D-31 što znatno otežava
praćenje brzih objekata.
Postolje PTU-46-17.5 omogućava puno okretnije upravljanje,
dovoljno brzo za nesmetano praćenje robota AmigoBot
čija maksimalna brzina iznosi 1 m/s.