Programska izvedba agenta koordinatora
Uvod
Temeljni zadaci agenta koordinatora u
eksperimentalnom sustavu
obuhvaćaju grupiranje i analizu
pojedinačnih položaja praćenih objekata (mjerenja),
koji su dojavljeni od strane agenata promatrača.
Za razliku od uobičajenih sustava raspoznavanja uzoraka
gdje se uzorci analiziraju i klasificiraju jednokratno,
u ovom slučaju je rezultat analize (percipirano stanje scene) potrebno
tokom vremena stalno obnavljati i korigirati, u beskonačnoj petlji.
Zbog toga je podatkovna struktura koja modelira prikaz scene
jedna od najvažnijih komponenti programa, a organizirana je u
četiri hijerarhijski uređene razine uz postupni rast apstrakcije:
-
razina početnih mjerenja koja se dobivaju od promatrača
i spremaju u referentnom k.s. svijeta (O,K,L,M),
-
razina pojedinačnih trajektorija, dobivenih grupiranjem
mjerenja pojedinih promatrača tokom vremena,
-
razina objekata koji se dobivaju grupiranjem
pojedinačnih trajektorija na principu
prostorne bliskosti i sličnosti oblika,
-
razina trajektorija složenih objekata.
U skladu s tim, temeljne procedure programa su
pribavljanje promatračkih poruka (mjerenja),
grupiranje mjerenja u trajektorije,
udruživanje pojedinačnih trajektorija u složene objekte,
formiranje trajektorija složenih objekata
te koordinacija promatrača (sl.1).
|
slika 1.
|
Pri udruživanju pojedinačnih trajektorija, koristi se pretpostavka
da su traženi objekti relativno niski u odnosu na dimenzije scene,
tj. da su prividni položaji objekata u referentnoj ravnini
međusobno bliski.
Time se dobiva skup preliminarnih hipoteza, koje se onda
dodatno ispituju kriterijem da recentni odsječci
trajektorije objekata moraju imati međusobno sličan oblik.
Za razliku od udruživanja, kod koordinacije treba tražiti
kompromis između međusobno proturječnih ciljeva.
Za svaki od percipiranih objekata, najpreciznije praćenje
se ostvaruje usmjeravanjem svih kamera u njegovom smjeru,
međutim sustav treba pratiti sve objekte u sceni.
Pored toga, sustav treba čim prije opaziti ulazak novog
objekta u scenu, što se, bez daljnjih pretpostavki,
može postići samo pravilnim rasporedom
vidnih polja kamera po sceni.
Svaki od ciljeva u izolaciji se jednostavno rješava,
međutim, konačni postupak mora rješavati spomenute
konflikte odnosno pronaći kompromisno rješenje.
Zahtjevi
-
program mora raditi sa proizvoljnim brojem promatrača koji
međusobno nisu sinkronizirani i mogu imati različite učestalosti
slanja mjerenja;
-
program mora biti robustan na eventualne kvarove promatrača;
-
tokom postupka prijave pojedinačnih promatrača, program mora
saznati sljedeće podatke o promatraču:
-
položaj promatrača u k.s. svijeta,
-
razliku u vremenu između vlastitog sata i sata promatrača;
-
za svakog od promatrača, program tijekom rada treba
ispravno interpretirati sljedeće poruke:
-
promjena smjera gledanja kamere promatrača,
-
listu detektiranih objekata;
-
prikaz scene se kontinuirano obnavlja grupiranjem mjerenja u
pojedinačne trajektorije, te njihovim udruživanjem u složene
objekte i trajektorije složenih objekata;
-
program koordinira promatračima slanjem poruka usmjeri,
prati, miruj i traži, koje su opisane
u prethodnom odjeljku;
-
koordinacijske poruke trebaju biti asinkrone, kako koordinacija
ne bi čekala u slučaju sporog odgovora promatrača.
Arhitektura
Kao što je prikazano na sl.1, programska izvedba agenta koordinatora
se sastoji od pet temeljnih procedura koje tokom rada manipuliraju
prikazom scene u cilju rješavanja zadataka programa.
Procedure se pri tome pokreću onda kada se za to ukaže potreba,
npr, pribavljanje novog mjerenja, ili
približavanje nekog od objekata rubu vidnog polja
nekog od promatrača koji ga prate.
U skladu s tim, program je organiziran prema obrascu
oglasna ploča (engl. blackboard),
koji se često koristi za distribuirano rješavanje
složenih problema.
Glavni subjekti u takvoj organizaciji su
izvori znanja (spomenute procedure),
oglasna ploča (prikaz scene)
te nadgledni sustav koji upravlja
redosljedom izvršavanja procedura (sl.2).
|
slika 2.
|
U odabranoj organizaciji, izvori znanja ne komuniciraju izravno,
nego svoja zapažanja bilježe na centraliziranom
odlagalištu podataka (oglasnoj ploči) i tako nezavisno grade
djeliće mozaika koji bi trebao konvergirati rješenju.
Glavna razlika između predložene organizacije i klasičnih
blackboard sustava je u tome što se ovdje stalno
radi na dotjerivanju jednog te istog problema
(praćenja stanja scene), dok klasični sustavi rade u epizodama
koje su međusobno uglavnom nepovezane
(npr, prepoznavanje rečenice ljudskog govora).
Izvedbeni detalji
Komunikacija sa promatračima
Komunikacija sa promatračima se svodi na primanje
podatkovnih poruka (položaj, smjer gledanja, lista
objekata) i slanje upravljačkih uputa (smjer gledanja,
praćenje, traženje).
Primanje poruka je obično složeniji dio komunikacije,
jer primaoc ne zna kad će mu poruka doći pa mora ili
čekati ili više puta provjeravati je li poruka stigla.
Primanje se posebno komplicira kada ima više mogućih
pošiljaoca, te kada primaoc mora obraditi primljene
podatke u stvarnom vremenu.
Čest način za rješavanje tog problema je smještanje
komunikacije sa svakim pojedinačnim promatračem u
zasebni prijemni tok izvođenja programa
(dretvu, engl. thread), koji pribavljene poruke smješta
u zajedničku listu poruka.
Prijemni tok izvođenja se dodjeljuje svakom komunikacijskom zahtjevu,
iz posebnog dodjeljivačkog toka
koji prima zahtjeve na za to rezerviranom mrežnom ulazu računala
(dodjeljivački tok izvođenja otvara komponenta za komunikaciju
prilikom pokretanja programa).
Komunikacija se tako može obaviti jednostavnim sinkronim
pozivima koji blokiraju odgovarajući prijemni tok
sve dok poruka ne postane dostupna na ulazu.
U skladu s opisanim rješenjem,
glavni program obavlja svoju obradu neovisno o komunikaciji,
povremeno proziva komunikacijsku komponentu kako bi saznao
je li u međuvremenu stigla neka poruka,
te u skladu s odgovorom poduzima odgovarajuće akcije.
Skica komunikacijske komponente programa je prikazana na sl.3.
Pored liste pristiglih neobrađenih poruka, komponenta
vodi evidenciju o otvorenim komunikacijskim vezama,
dok sinkronizacijski objekti služe za osiguravanje
konzistentnog pristupa listi poruka koja se referencira
i iz glavnog i iz prijemnih tokova izvođenja.
|
slika 3.
|
Nadgledni sustav oglasne ploče
Nadgledni sustav u obrascu oglasne ploče
(sl.2)
određuje koji će se izvor znanja
(procedura)
izvesti u sljedećem koraku obrade.
Donesena odluka se temelji na ispitivanju
preduvjeta aktiviranja za svaki izvor znanja,
a oblikovanje tih preduvjeta može biti dosta složeno
jer sasvim ovisi o konkretnom izvoru znanja.
Najlakše je donijeti odluku kod procedura čija obrada
se svodi na obradu nekog događaja.
Tako je dostupnost poruke u listi komunikacijskog modula
prirodan preduvjet procedure ``pribavljanje poruka''.
Slično, proceduru ``grupiranje mjerenja'' će imati smisla
aktivirati tek kada na red dođe poruka sa novom grupom
detektiranih objekata nekog od promatrača.
Kod ostalih procedura, stanje nije tako čisto,
jer se, tijekom normalnog izvođenja programa,
događa da neobrađenih ulaznih podataka na ploči
ima češće nego što procedure ima smisla pokretati.
Tako kad se na ploču upiše novo mjerenje nema smisla
odmah pokušati udružiti dotičnu trajektoriju sa ostalim
trajektorijama, jer je to dosta složena operacija,
a konfliktne situacije u kojima je potrebno vršiti
korekciju udruživanja trajektorija se ne događaju
baš svake sekunde.
Procedura za udruživanje bi se mogla pokrenuti tek kada
oblici udruženih trajektorija postanu dovoljno različiti,
ali obavljanje svih relevantnih testova bi trajalo gotovo
kao i izvršavanje same procedure pa to ne bi bio veliki dobitak.
Općenito, aktivacijski preduvjeti u blackboard sustavu
moraju biti jednostavniji od složenosti odgovarajućih
procedura, jer bi se inače moglo dogoditi da sustav
većinu vremena bezuspješno testira preduvjete
procedura koje se rjeđe aktiviraju.
Jedan način za rješavanje tog problema je odustati od složenih
preduvjeta na način da se problematične procedure
aktiviraju u fiksnim vemenskim intervalima.
U konkretnom slučaju, procedure za udruživanje pojedinačnih
trajektorija i održavanje trajektorija složenih objekata se
sljedno pozivaju svakih pola sekunde,
dok se koordinacija promatrača obavlja svakih 5 sekundi
- tablica 1.
Tablica 1: Uvjeti aktiviranja procedura (izvora znanja)
#
| naziv procedure
| preduvjet aktivacije
|
---|
1 | pribavljanje poruka | pribavljena poruka
|
---|
2 | grupiranje mjerenja | pribavljena mjerna poruka
|
---|
3 | udruživanje trajektorija u složene objekte | svakih 0.3 s
|
---|
4 | održavanje trajektorija složenih objekata | uvijek nakon procedure #3
|
---|
5 | koordinacija promatrača | svakih 5 s
|
---|
Udruživanje pojedinačnih trajektorija
Pojedinačna trajektorija je sljed mjerenja jednog promatrača
za koja se vjeruje da odgovaraju istom objektu.
Svako mjerenje se sastoji od položaja objekta i od točnog vremena
pribavljanja slike u kojoj je objekt detektiran.
Trajektorije koje odgovaraju istom objektu nisu identične
zbog sistematskih pogrešaka uzrokovanih nesavršenom
kalibracijom
i konačnom visinom objekta.
Pored toga, pojedinačna mjerenja u različitim trajektorijama
općenito ne odgovaraju istim trenutcima jer su promatrači
nesinkronizirani i različito brzi (sl.4), pa određivanje trajektorija
koje odgovaraju istom objektu nije jednostavan zadatak.
Postupak udruživanja trajektorija je sličan postupku grupiranja
jer se obavlja prema principima prostorne bliskosti i sličnosti oblika.
Nažalost, zbog specifičnosti problema, udruživanje nije prikladno
obavljati općenitim metodama grupiranja, prvenstveno zbog toga
što je moguće udružiti samo trajektorije različitih promatrača
Prvi korak u algoritmu udruživanja je računanje matrice
D[i,j]
,
koja za svaki par pojedinačnih trajektorija (i,j)
sadrži procjenu njihove međusobne udaljenosti.
Sadržaj matrice D[i,j]
se računa prema sljedećem postupku:
-
ako trajektorije
i
i j
pripadaju
istom promatraču, D[i,j]:=∞
;
-
inače,
-
pronalazi se zajednički vremenski interval
(t0,tN),
kao presjek područja definicija trajektorija
(na slici,
t0=-0.80 s,
tN=-0.13 s);
-
određuju se trenutci ti=i*(t2-t1)/(N), i=1,2,..., N-1,
koji početni interval dijele na
N-1
jednakih dijelova
(na slici, N=5
);
-
za obje trajektorije A i B, interpoliraju se položaji
PAi, PBi,
koji odgovaraju vremenima ti, i=0,1,2,...,N
(na slici su ti položaji označeni križićima);
-
za skup vektora udaljenosti odgovarajućih interpoliranih položaja
di=
PAi-
PBi,
i=0,1,2,...,N,
pronalazi se srednja vrijednost
μd i standardna devijacija
σd;
-
konačno,
D[i,j]
se računa kao funkcija
μd i
σd po formuli
D=√
||μd||2+
||σd||2
|
slika 4.
|
Nakon određivanja matrice udaljenosti,
pojedinačne trajektorije se udružuju
prema sljedećem ``pohlepnom'' algoritmu:
zauvijek{
nađi(i,j):D[i,j]→min;
ako (D[i,j]>prag){
kraj;
}
udruži_trajektorije(i,j)
∀(trajektorija k): isti_promatrač(i,k){
D[k,j]=D[j,k]=∞
}
∀(trajektorija l): isti_promatrač(j,l){
D[i,l]=D[l,i]=∞
}
}
Bolji rezultati bi se vjerojatno postigli sa algoritmom
koji minimizira srednju kvadratnu pogrešku, što bi
mogla biti dobra tema za budući rad.
Strategija koordinacije
Kao što je rečeno prije, cilj procedure za koordinaciju
je postići optimalno praćenje stanja u sceni,
slanjem koordinacijskih poruka (uputa) promatračima.
Optimalno praćenje pri tome znači nalaženje kompromisa
između preciznog praćenja pojedinih objekata i
pokrivanja praznog prostora scene u cilju brzog
otkrivanja novih objekata.
U predloženoj izvedbi, u svakom pozivu procedura
razmatra mogućnost boljeg praćenja stanja u sceni,
slanjem upute točno jednom promatraču.
Pri tome, uputa može biti pomak smjera gledanja
bilo kojeg od promatrača ili prema nekom objektu ili
pretraživanje scene sistematskim mijenjanjem smjera gledanja.
Ako sa NO označimo trenutni broj složenih objekata,
tada za svakog promatrača ima NO+1 različitih odredišta.
Neka odredišta od 0 do NO-1 označavaju odgovarajuće
objekte, a odredište NO neka označava pretraživanje.
Sveukupan broj mogućih uputa u svakom pozivu procedure tako iznosi
NP*(NO+1),
gdje je NP broj promatrača,
a svaka uputa se može izraziti kao uređen par
(promatrač, odredište).
Za analizu ponašanja procedure, potrebno je definirati
nekoliko pojmova:
-
slabo praćen objekt
-
objekt kojeg prati samo jedan promatrač
-
vezan promatrač
-
promatrač koji prati barem jedan slabo praćen objekt
-
važan promatrač
-
promatrač koji prati barem jedan objekt kojeg prate ukupno dva promatrača
-
slobodan promatrač
-
promatrač koji nije ni važan ni vezan;
-
besposlen promatrač
-
promatrač koji ne prati niti jedan objekt.
Ponašanje procedure je definirano sljedećim
skupom pravila:
-
najveći odredišni prioritet imaju slabo praćeni objekti;
tek ako takvih nema, upućuje se eventualni slobodni
promatrač na pretraživanje scene;
-
među promatračima, najveći prioritet imaju besposleni promatrači,
zatim promatrači koji nisu ni vezani ni važni
i konačno važni promatrači;
-
pomicanje važnih promatrača se uzima u obzir samo
prema slabo praćenim objektima;
-
vezani promatrači se ne razmatraju ni pod kojim uvjetima.
Izvedba agenta koordinatora je isprobana u
laboratorijskom okruženju,
u konfiguraciji
sa tri agenta promatrača, koji se izvode na platformama
Asus,
Compaq i
Matsonic.
Sam agent koordinator se pri tome izvodio na dvoprocesorskoj
platformi Asus, zajedno sa odgovarajućim agentom promatračem.
Izmjerena performansa promatrača je bila jednaka kao i u slučaju
kada koordinatoru nije bila dodijeljena ista platforma.
Kao i kod agenata promatrača, eksperimentalne rezultate je
najzornije prikazati animiranim sljedom pojedinačnih rezultata.
Zbog veličine odgovarajuće datoteke (140 Mb), animirani prikaz je
izdvojen na posebnoj stranici.