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).

<geometry>
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.

  1. 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).
  2. 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.
  3. 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:
  1. Traženi objekti se trebaju detektirati relativno jednostavnim postupcima koji se mogu obaviti u stvarnom vremenu;
  2. 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:
  3. promatrač se prilikom pokretanja treba prijaviti koordinatoru i na temelju razmjene nekoliko jednostavnih poruka procijeniti razliku između svog i koordinatorovog sata;
  4. promatrač mora agentu-koordinatoru dojaviti sljedeće podatke:
  5. 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:
  6. autonomni prijelazi među načinima rada su ilustrirani na sl.2:

    <state diagram>
    slika 2.

  7. promatrač mora moći interpretirati sljedeće upute koordinatora (bez obaveze da ih mora i izvršiti):

Arhitektura programa

Program koji obavlja funkciju promatrača se sastoji od niza procedura koje se izvršavaju slijedno u beskonačnoj petlji (sl.3).

<architecture>
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:
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:

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.

<shortcoming>
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.

<compensation>
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.


Eksperimentalni rezultati

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).

<unix1394_main> <unix1394_mask>
(a) (b)
<unix1394_bg> <unix1394_fg>
(c) (d)
slika 6.

<win32PXC_main> <win32PXC_mask>
(a) (b)
<win32PXC_bg> <win32PXC_fg>
(c) (d)
slika 7.

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.


up project home page department home page