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

<overview>
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


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

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

<communication>
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
1pribavljanje poruka pribavljena poruka
2grupiranje mjerenja pribavljena mjerna poruka
3udruživanje trajektorija u složene objekte svakih 0.3 s
4održavanje trajektorija složenih objekata uvijek nakon procedure #3
5koordinacija 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:

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

Eksperimentalni rezultati

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.

up project home page department home page