Diplomamunka
Figyelmi algoritmusokkal vezérelt helyszínanalízis Persa György Témavezető: Karacs Kristóf
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar
Budapest 2009
2
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Diplomaterv témabejelentő
2
3
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Diplomatervezői nyilatkozat
Alulírott Persa György, a Pázmány Péter Katolikus Egyetem Információs Technológiai Karának hallgatója kijelentem, hogy ezt a diplomatervet meg nem engedett segítség nélkül, saját magam készítettem, és a diplomamunkában csak a megadott forrásokat használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen a forrás megadásával megjelöltem. Ezt a Diplomamunkát más szakon még nem nyújtottam be.
…………………………………………………..
3
4
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Tartalomjegyzék DIPLOMATERV TÉMABEJELENTŐ ............................................................................ 2 DIPLOMATERVEZŐI NYILATKOZAT .......................................................................... 3 TARTALOMJEGYZÉK ............................................................................................... 4 TARTALMI ÁTTEKINTÉS .......................................................................................... 5 ABSTRACT .............................................................................................................. 7 FELADATSPECIFIKÁCIÓ ........................................................................................... 9 A BIONIKUS SZEMÜVEG ....................................................................................... 10 HELYSZÍNKLASSZIFIKÁCIÓ AZ IRODALOMBAN ....................................................... 12 FIGYELMI MODELL ............................................................................................... 13 A MODELL JELENTŐSÉGE .......................................................................................... 13 A MODELL FELÉPÍTÉSE ............................................................................................. 15 A FELTŰNŐSÉGI TÉRKÉP ........................................................................................... 17 FIGYELMI ALGORITMUSOK........................................................................................ 18 RENDSZERFEJLESZTÉS LÉPÉSEI .............................................................................. 23 EGYSZERŰ FIGYELMI ALGORITMUSOK MEGVALÓSÍTÁSA .................................................... 23 FELTŰNŐSÉGI TÉRKÉPEK ELEMZÉSE ............................................................................. 24 RÉSZLETES MEGJELENÍTŐ ESZKÖZÖK ............................................................................ 26 FELTŰNŐ TERÜLETEK KÖVETÉSE ................................................................................. 28 A tracking jelentősége ........................................................................................... 28 Az algoritmus megvalósítása ................................................................................ 29 Felmerülő problémák ............................................................................................ 32 Felhasználói felület ................................................................................................ 36 FIGYELMI PARAMÉTEREK ELŐÁLLÍTÁSA ......................................................................... 39 Statikus paraméterek ............................................................................................ 39 Dinamikus paraméterek ........................................................................................ 41 Osztályok meghatározása ..................................................................................... 44 HELYSZÍNEK OSZTÁLYOZÁSA A KINYERT PARAMÉTEREK ALAPJÁN ......................................... 45 Felügyelt tanulás ................................................................................................... 45 Dinamikus paraméterek ........................................................................................ 51 Klasszifikációs teljesítmény ................................................................................... 53 EREDMÉNYEK ...................................................................................................... 55 ÖSSZEFOGLALÁS.................................................................................................... 55 FELHASZNÁLHATÓSÁG ............................................................................................ 56 KÖSZÖNETNYILVÁNÍTÁS ...................................................................................... 58 HIVATKOZÁSOK ................................................................................................... 59 FÜGGELÉK ............................................................................................................ 60
4
5
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Tartalmi áttekintés Jelen munka egy mozgóképekkel dolgozó, képfeldolgozási feladatokat ellátó rendszer fejlesztését mutatja be. A munkában, és a kifejlesztett rendszerben sok különböző tudományterület találkozik, és mindegyik területen végzett feladat fontos elemét képzi a végső eredménynek. Az alapvetően képfeldolgozási feladatok mellett adatbányászati, és néhány robotikában használatos alkalmazás is jelentős szerepet kap. A rendszer alapvető funkciója helyszínek, illetve szituációk elemzése és osztályozása, amely legfőképp személyi navigációs módszerek területén kap fontos szerepet. A feladatot a bionikus szemüveg projekt keretei közt valósítottam meg, amely egy vakoknak és gyengénlátóknak készülő személyi navigációs eszköz. Ez segítséget nyújt számokra olyan hétköznapi élethelyzetekben, amelyekben valamely kizárólag vizuálisan elérhető információhoz szeretnének hozzájutni. A különböző környezetekben, helyszíneken lezajló események általánosságban eltérő feladatokat kívánnak meg a személyi navigációs rendszerektől. Az ilyen rendszerek funkciói közül egyesek bizonyos helyszíneken nem használhatók hatékonyan, míg mások jelentősége esetleg épp az adott környezetben a legnagyobb. Ezért a használható funkciók különböző mértékű hasznosításának alapjai között jelentős szerep jut a környezetnek és szituációnak. Egy olyan rendszer, amely nem pusztán csak a látótér vizuális információhalmazára támaszkodhat, hanem információval rendelkezik a látótérben lezajló események helyszínéről, hatékony megoldást jelenthet. Ezen túlmenően a helyszínek azonosítása más rendszerekben is hasznos lehet, mint például autonóm robotok intelligenciájának megvalósításához. A szituációk azonosítása emberek esetén egy magas szintű kognitív folyamat, ezért a mesterséges rendszerekben is a vezérlés felsőbb szintjeire kerülhet beépítésre. A
szituáció
ismeretével
pontosabban
megválaszthatók
a
hierarchiában
alacsonyabban elhelyezkedő folyamatok működési paraméterei és használati módja. De konkrét alkalmazási lehetőségeket is magában hordoz az, ha általános, áttekintő információk is rendelkezésre állnak a helyszínről. Ezek a lehetőségek, és alkalmazási megfontolások minden esetben egy olyan mobilizálható rendszer kifejlesztését segítik elő, amely nem csak egy adott feladat megoldására alkalmas. Ellenkező esetben ugyanis a helyszínek azonosítása gyakorlatilag haszontalan, hiszen a környezet adott. Különböző szituációkban, több feladat
5
6
Figyelmi algoritmusokkal vezérelt helyszínanalízis
megoldására életre hívott rendszerek esetén azonban a helyszínek elemzése elősegítheti az ideális működést. Munkámban
a
helyszínek
ilyen
megkülönböztetését
figyelmi
algoritmusok
segítségével valósítom meg. A figyelmi algoritmus kifejezés arra utal, hogy egy olyan modellt használok fel a helyszínklasszifikációt végző algoritmusok kifejlesztéséhez, amely az emberi figyelem működésének biológiailag hiteles leírása. Ez azt jelenti, hogy a képfolyam minden képére a modellből származó információkat használom fel a helyszínanalízishez. A figyelmi modell által nyújtott információk úgy nevezett feltűnőségi (vagy saliency) értékek formájában jelennek meg. Ez a mérőszám utal arra a tényre, hogy egy kép pontja, vagy egy, a képen található objektum mennyire vonzza magára az ember tekintetét a modell alapján. Ezen feltűnőségi értékek eloszlása, mozgása, és értéke a legfőbb szempontok, amelyek alapján a figyelmi információ egyéb alkalmazások, és következtetések alapjául szolgálhat. A figyelmi modellről, a bionikus szemüveg projektről, és a kifejlesztett rendszer megalkotásának lépéseiről részletesebben a nekik szentelt fejezetben számolok be. Minden témakörben alapvetően a lépések szükségszerűségére, megvalósítására és a levonható következtetésekre helyeztem a hangsúlyt. Ennek megfelelően a figyelmi modellről szóló fejezet értelmezi az emberi figyelem működésének, és modellezésének alapjait, a megismert modell felépítését, a használat során levont tapasztalatokat és az ezekre épülő algoritmusok tulajdonságait. A bionikus szemüveg fejezet bemutatja a projekt alapvető célkitűzéseit, és részletezi a kidolgozott feladat szerepét a fejlesztésben. A rendszerfejlesztést leíró fejezetben a figyelmi modellből előállított saját alkalmazások továbbfejlesztését, és használhatóságát vizsgálom, minden fontos lépést, és algoritmusfejlesztési folyamatot részletesen ismertetve. Megkülönböztetett jelentőséggel bír az alkalmazott követő algoritmus kifejlesztése, eredményeinek elemzése, és az így előállított klasszifikációra alkalmas paraméterek leírása. A kifejlesztett alkalmazások alapján végül a klasszifikációs működés megvalósítását ismertetem, és ezzel zárul le a rendszerfejlesztés ismertetése. Az utolsó fejezetben a kifejlesztett rendszer eredményességéről, és teljesítményéről adok értékelést.
6
7
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Abstract Present work gives a report about the development of a system for an image processing task using video flows. In this work and in the developed system several fields of knowledge are used, and results received on different fields give important elements for the solution. Besides principal image processing tasks an important role is given for application in data mining and some kinds of robotics. The main function of the system consists of the analysis and classification of scenes and situations, which has an important role in personal navigation systems. My solution of the problem is realized in the framework of the bionic eyeglass project that aims to create a personal navigation device for blind and low vision persons. This device helps them in everyday situations where they are in need of some special visual information . Events in different surroundings and scenes require different tasks from the personal navigation system. While some functions of such a system are inapplicable on specific scenes, values from other functions are very important in the given situation. Therefore the scene and the situation have an important role in the appropriate application of different functions. A system that relies not only on visual information but also on the type of scene may provide a much more effective solution. Furthermore the identification of scenes can be useful in other systems too, for example in realization of the intelligence of autonomous robots. Identification of the situations represents in human beings a high level of cognitive process thus in artificial systems this process should be applied at a high level of the control mechanisms. Information about the situation may help to specify more properly the parameters of the operation and application scheme in lower levels of the processing hierarchy. General and clearly arranged information given about the scenes allows for several application areas. Such possibilities and ideas of application greatly contribute to the development of a portable system to be used for multiple tasks. Otherwise the identification of scenes is practically unnecessary because the situation is given. Considering systems of complex functionality, an analysis of scenes can result ideal operation. In my work the differentiation of scenes is realized through so called saliency algorithms. The expression “saliency algorithm” refers to the application of a model in algorithm development for scene-classification, which is a biologically authentic description for the process of human attention. This means that for analysing the scene the information 7
8
Figyelmi algoritmusokkal vezérelt helyszínanalízis
received from the attention model is applied for every frame of the video flow. Information given by the attention model appears in a form of so-called saliency values. This value measures the strength a point in a picture or an object in it captures the attention of a person according to the model. Distribution, movement and measure of these saliency values are the most important aspects, based on which the attention information may be used for further processing and/or reasoning. The corresponding chapters give a report about the attention model, the bionic eyeglass project and steps for realization of the developed system. In each area I emphasize the necessity of basic steps, their actual realization and consequences that can be drawn. According to this the section describing the attention model explains the way how attention works, the basics of modelling, the structure of the applied model, experiences from its application and the properties of the algorithms developed. The chapter about the bionic eyeglass presents the basic aims of the project and gives details about the place of my work in the research project. In the section about system development I analysed the development and usability of my applications based on the attention model with the details of every important step and process in the development of the algorithms. The elaboration of the used tracking algorithm, the analysis of its results and the description of parameters for classification are also emphasized. Finally the realization of classification operation is described based on the developed application and this closes the description of system development. In the last chapter I give an evaluation about the efficacy and performance of the developed system.
8
9
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Feladatspecifikáció A figyelmi algoritmusokkal vezérelt helyszínanalízist megvalósító rendszer tehát a neuromorf figyelmi modellből nyert mozgóképeket dolgoz fel, és a felvett jelenet feltűnőségi elemzése alapján analizálja, kidolgozásának
célja
a
klasszifikálja a helyszíneket,
bionikus
szemüveg
projektben
szituációkat. A feladat szereplő
alkalmazások
hatékonyságának növelése. Ez a projekt egy személyi navigációs rendszer fejlesztésének munkálatait dolgozza ki vakok és gyengénlátók részére. A bionikus szemüveggel, és a figyelmi algoritmusokkal vezérelt helyszínanalízis projektben betöltött szerepével a vonatkozó fejezet foglalkozik részletesebben. Az videó adatbázis elkészítéséhez mobiltelefon kamerát használtam, QVGA, azaz 640*480 pixelfelbontású minőségben. A felvétel minősége ettől természetesen eltérhet, de nagy tömörítésű felvételeknél problémák merülhetnek fel. Az ehhez vonatkozó meglátásokról a „Feltűnőségi térképek elemzése” részben térek ki részletesebben. Az elkészült felvételek tipikus, körülbelül 8-10 másodperces jeleneteket tartalmaznak az osztályozandó szituációkról. Természeti, beltéri, utcai, és forgalmi jelenetek szerepelnek közöttük (1. ábra). A felvételeket a figyelmi modell által megkövetelt formára hozva, és a kapott eredményt videóba importálva Matlab környezetben dolgoztam ki a feltűnőségi elemzéshez szükséges algoritmusokat. A függvények megvalósításánál többnyire a programnyelv képfeldolgozó kiegészítőjében (Image Processing Toolbox) található, és beépített alkalmazásokat használtam fel. Az rendszerfejlesztés lépéseiként a figyelmi modellből származó eredmények naiv vizsgálatához szükséges egyszerű algoritmusok kidolgozása, részletes megjelenítő eszközök létrehozása, követő (tracking) algoritmus konstruálása, és tanító algoritmus segítségével a klasszifikáció megvalósítása szerepelnek. Mindegyikkel külön fejezetben foglalkozom részletesebben.
9
10
Figyelmi algoritmusokkal vezérelt helyszínanalízis
a.
b.
c.
d. 1. Ábra
A négy eltérő típusú szituációt bemutató mintafelvételek a. beltér, b. természet, c. utca, d. forgalom
A bionikus szemüveg A bionikus szemüveg projekt vakok és látássérültek számára kíván széleskörű segítséget nyújtani. Ez olyan alkalmazások kifejlesztését jelenti, amelyek a mindennapok vizuális információit számukra is érthető formában közvetíti. Egy mobiltelefon kameráját felhasználva olyan eszköz tervezése a cél, amely mindig kéznél tartható és a kritikus szituációkban segítséget képes nyújtani. Vakoktól és gyengénlátóktól származó vélemények, meggondolások alapján a következő helyszínek kapnak nagy hangsúlyt a munkában: otthon, munkahely, és a köztük levő út. Ennek megfelelő részfeladatok kidolgozása a cél. A projektben szereplő kidolgozott, és kidolgozás alatt lévő alkalmazások között a mindennapos tevékenységeket megkönnyítő modulok szerepelnek. Az otthoni környezetben használatosak között olyan alkalmazások születtek, amely a vakok otthoni életéhez szükséges eseményekben tudnak segítséget nyújtani. Az égő villany, vagy gáztűzhely problémája például számukra kifejezetten fontos feladat, de egyéb, komfort szempontjából fontos alkalmazások is szerephez jutottak a projekt keretein belül (például a ruhák színeit meghatározó alkalmazás). Az utcai környezet nyilvánvalóan a legnehezebb feladatokat veti fel egy ilyen rendszer kidolgozásában. Mivel azonban a vakok és gyengénlátók ezen a területen rendelkeznek a legtöbb tapasztalattal, ezért főleg olyan alkalmazások kifejlesztése a 10
11
Figyelmi algoritmusokkal vezérelt helyszínanalízis
cél, amelyeket más módszerekkel nem lehet helyettesíteni. Ilyen feladatok például a közúti jelzések
meghatározása,
a
mozgólépcső
menetirányának
közvetítése,
vagy
a
tömegközlekedési eszközök menetszámainak leolvasása. Ezeken kívül számos általánosan használható alkalmazás is a rendszer részét képzi, mint például a papírpénzek címleteinek meghatározása. Az összes kifejlesztett alkalmazás a tervek szerint a felhasználó által aktiválható, vagyis egy számpanel, vagy egyéb beviteli eszköz segítségével kiválasztható lesz, ezért a rendszer testreszabása nagyban segíti az eszköz használhatóságát. A testreszabás, és az ideális működés eszközeként a helyszínek, szituációk osztályozás, és ismerete szolgálhat. A lényegesen eltérő helyszínek ugyanis, mint láttuk, lényegesen eltérő alkalmazások kifejlesztését szorgalmazzák. Ha a rendszer információval rendelkezik a látótérben lezajló események környezeti, vagy helyszínbeli vonatkozásairól, úgy az alkalmazott funkciók megválogatása, vagy automatikus felajánlása is lehetővé válhat. Egy otthoni környezet felismerése például szükségen kívül helyezhetné a közlekedésben használatos funkciók aktivitását, míg az utcai környezet meghatározásával bizonyos alkalmazások folyamatos készenlétbe lennének helyezhetők (például rendszeres átkelési lehetőségek, zebrák keresése az úton). Ez azt is jelenti, hogy a testreszabás a felhasználónak körülményekhez, és szituációkhoz alkalmazkodó profilok beállítását teszi lehetővé. Az összes alkalmazás aktiválási kódjának megjegyzése, vagy futásuknak felhasználói felügyelete ugyanis olyan feladatot jelenthet a felhasználónak, amely helyszínek alapján beállított profilok segítségével nagymértékben megkönnyíthető. Az automatikusan felajánlott funkciók lehetősége, az esetlegesen veszély esetén aktiválódó alkalmazások, vagy csak egyszerűen az aktivitási kódok számának lecsökkenése (egy aktivitási kód más-más alkalmazást futtat a környezet függvényében) kényelmesebbé teszik a rendszer használatát, és a belé vetett bizalmat. Ebben a vonatkozásban tehát a rendszer alkalmazásának megkönnyítése érdekében a helyszínek, szituációk elemzése, klasszifikálása a projektbe illő, megvalósítandó feladatként szerepel.
11
12
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Helyszínklasszifikáció az irodalomban Helyszínek klasszifikációjával sokan foglalkoztak az elmúlt években. A feladat legfőbb nehézsége abban a tényben rejlik, hogy ez a fajta felosztása a látótérnek emberi meggondolásokon alapszik. A képi információból egy olyan információ kinyerése a cél, amely valójában csak az ember számára értelmezhető. A legtöbb megoldás egy rendkívül bonyolult képfeldolgozási apparátus eredményeit használja fel, és ez alapján osztályozza a környezetet. A felosztás többnyire az emberi élőterekhez szorosan kapcsolódik. Utca, folyosó, természet, kültér, beltér, iroda, szabad tér szerepelnek a legtöbb esetben osztályokként. A képfeldolgozási algoritmusok között legtöbb esetben feltűnik a képi információ színekre bontása, hiszen ez alapján már bizonyos következtetések levonhatóak. A fény vertikális megváltozását, a vertikális szimmetriát, a lokális homogenitást felhasználva már klasszifikálni lehet a tipikusan kültéri, vagy beltéri helyszíneket [1]. Ezek után képfeldolgozási algoritmusok különböző sorrendje használható fel olyan adatok kinyerésére melyek akár már öt osztályba is képesek besorolni a helyszíneket, és ezek közötti megváltozást, vagy együttes jelenlétet is kezelni tudnak (erdei ösvény: utca és természet)[2]. A legtöbbször használt algoritmusok az éldetekció, a sarokdetekció, diszkrét Fourier transzformáció, Laplace, és Sobel filter. Az általam használt módszer ezektől lényegesen eltér abból a szempontból, hogy biológiai szempontból közelítem meg a témakört, és egy a biológia által motivált modell használatával nyerek ki hasonlóan releváns információkat a képből. Ezen kívül az osztályok száma is valószínűleg kisebbre tehető, mint a fent említett alkalmazásokban, hiszen a feladatomban e helyszíneket az alkalmazott bionikus szemüveg-béli funkciók szerint fogom csoportosítani, így akár egész más felosztás is szóba jöhet, ha az a projectben való használhatóság szempontjából előnyösebb.
12
13
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Figyelmi modell
A modell jelentősége A látás, és az ehhez kapcsolódó emberi élmény mindenkiben magától értetődő, és automatikusan lezajló folyamatnak érzékelhető, annak ellenére, hogy mennyire összetett mechanizmusról van szó valójában. A látótérben levő objektumokról, eseményekről a szemünk által gyűjtött rengeteg információ azonban bonyolult folyamatokon megy keresztül, míg a vizuális hatást kifejti agyunkban. A látás élménye nem azonos a retinába beérkező fotonok által alkotott képpel, sok vizuális emlék, és szelekció után alakul ki az élmény, amit érzékelünk. A látás mechanizmusa pontosan olyan mértékben, és olyan intenzitással szerzi meg a környezetből származó információkat, hogy a kialakult látás érzete a lehető legtökéletesebben írja le a környezetünket, látóterünket. Ez azonban nem jelenti azt, hogy minden pillanatban információt szolgáltat a megfigyelhető objektumokról, vagy hogy minden látható tárgyat ugyanolyan prioritással kezelne. Annak ellenére, hogy a látás élményében úgy érezzük, mindenről tudomásunk van, ami a környezetünkben történik, valójában ez az érzés csak korlátozottan fedi a valóságot. Kísérletek igazolják, hogy a környezetben bekövetkező változások, ha nem elég gyorsan történnek, a látás élményében felismerhetetlenné válhatnak. Ha például egy szobában a fal színét megfelelően alacsony sebességgel változtatjuk meg, az emberi szemlélő nem lesz tisztában a változással, nem veszi észre azt. Ennek magyarázata éppen abban rejlik, hogy a látható kép nem minden részlete kerül bele a látási élménybe, az élményt kialakító mechanizmus tehát szelektál. A látótérből érkező rengeteg információ szelektálása a látási élmény kialakításában, és a maximális informáltság eléréséhez feleslegesnek mondható részek elhagyásával történik, amely így az agyi feldolgozás feladatainak mennyiségét csökkenti, tehát megkönnyíti a folyamatot. A látás élménye tehát inkább egyfajta reprezentációs módszer eredménye, mint konkrétan a látási mechanizmusé. Ezt a reprezentációs módszert nevezzük emberi figyelemnek, amely szelektálja a látótérben megfigyelhető objektumokat, és eseményeket annak függvényében, hogy mennyire releváns az adott pillanatban. A figyelem érzése tudatos, és reflexszerű folyamatokból egyaránt áll, és együttműködésük teszi lehetővé a szemből érkező információk olyan élménnyé alakítását, amely ugyanúgy képes a látótér apróbb részleteit észrevenni, mint a feleslegesnek ítélt dolgokat kívül helyezni a feldolgozási folyamaton, vagy veszélyeztetettség esetén reflexszerűen a fontos részleteket feldolgozni. 13
14
Figyelmi algoritmusokkal vezérelt helyszínanalízis
A biológiai modellt alapul véve a szituációk, helyszínek megállapítása, rendszerezése az emberi agy számára szintén automatikusan működő feladat. A vizuális figyelem jelenségét alapvetően két különböző működési mechanizmus határozza meg, illetve ezek együttes működéséből jön létre a figyelem. Az egyik az agy felsőbb, szervezettebb részeiből induló mechanizmus, a tudatos figyelem, amely a látótér azon részére képes a figyelmet irányítani, amit egy adott feladat megkíván (top-down). Ez a mechanizmus alapvetően olyan szituációkban lép elő domináns működésként a figyelemben, amikor az agy valamely konkrét feladat megoldására tesz kísérletet. Ilyen helyzetek lehetnek egy kulcs keresése a lakásban, vagy egy piros ruhás alak felkutatása a tömegben. Az emberi figyelem ilyenkor tudatában van a keresett objektum alakjával, színével, vagy egyéb jellemzőivel, és ennek megfelelően szelektálja a látótér elemeit, és közvetett módon irányítja a figyelmet. A másik, a látókéreg kevésbé összetett részeitől a bonyolultabb látókérgi részek irányába induló folyamat az akaratlanos (bottom-up) figyelem. Ez a mechanizmus gyakorlatilag az ösztönös figyelem, tehát olyan működés, amely nem az agy feladatmegoldó működése alatt jelentkezik, hanem attól függetlenül. A látótérben észlelhető alapvetően feltűnő objektumokról van szó, azaz olyan jelenségekről, amelyek, még ha az agy egyéb figyelmi feladatot végez is, magukra vonják az ember figyelmét. Egy gyorsan mozgó, nagy objektum, egy, a látótérbe hirtelen belépő tárgy, vagy egy rikító színű, formájú alakzat mind olyan folyamatot indítanak el az emberi figyelmi mechanizmusban, amely mind összpontosításban, mind prioritásban átadja a figyelem központját ezeknek a jelenségeknek. A környezetükből kitűnő dolgok, az agy által veszélyesnek ítélt mozgások tehát e működés segítségével vonják magukra a figyelmet. E két párhuzamosan, és szervezetten működő mechanizmus teszi tehát lehetővé az emberi látáshoz tartozó felismerési, és analitikus folyamatokat, amelyek közé a helyszínek, szituációk felismerése, és ismerete is bele tartozik. A figyelmen kívül természetesen olyan összefüggések is valószínűleg fontos szerepet játszanak a szituációk felismerésének módjában, amelyek inkább az emlékképek, és tanult ismeretek tanulmányozásával fedhetők fel. Ennek ellenére a helyszínek felismerése, de legalábbis analízise a figyelmi mechanizmusok működése alapján is megoldható.
14
15
Figyelmi algoritmusokkal vezérelt helyszínanalízis
A modell felépítése A program Borland C++ nyelven van megvalósítva, és alapvetően 176*144 pixelnagyságú, tömörítetlen videókkal dolgozik. Az eredeti képanyag első lépésben különböző retinacsatornákra bomlik szét. Az egyes retinacsatornákat kialakító konkrét paraméterek (diffúzió, időbeli lefutás, stb.) egy celluláris neurális hálózat (CNN) retinamodellből származnak. A retinamodellben minden sejtrétegnek (foto-receptorok, horizontális-, bipoláris-, amakrin és ganglion sejtek rétege) egy-egy CNN réteg felel meg, és a CNN template-ek és paraméterek úgy vannak beállítva, hogy leginkább közelítsék a különböző sejtrétegek tulajdonságait (dendritfák átlagos átmérője, a sejtválaszok időbeli lefutásai, stb.) és más sejtrétegekkel való kapcsolatait (serkentés/gátlás, időbeli késleltetés, diffúziós állandók, stb.). A retina időbeli tulajdonságainak modellezése egy súlyozott, cirkuláris memória segítségével történik. Minden újonnan feldolgozott képkocka mindig a legrégebbit írja felül, így a retinacsatorna kimenete a memória teljes tartalmának pixelérték szerinti, súlyozott összegzése révén jön létre. (2. ábra„Multiscale low-level feature axtraction”). A retinacsatornák kialakítását követően a program feltűnőségi, „saliency” értékeket számol, ami annak a merőszáma, hogy egy bizonyos pixel a videó folyam egyes képein, a biológia mechanizmust figyelembe véve mennyire „vonzza figyelmünket”. Ezen értékek kiszámolása receptív mező modellek segítségével történik, vagyis egy csatorna kimenetének, és egy receptív mezőnek konvolúciójaként áll elő a feltűnőségi érték (2. ábra „center-surround differences and spatial competition”). A különböző csatornákhoz tartozó leképezéseket különböző méretű receptív mezők (RF) alakítják ki. A receptív mezők a vizuális feldolgozás elején kör alakúak, majd egyre feljebb haladva az agyi hierarchiában, alakilag egyre összetettebbekké, méretileg pedig egyre nagyobbakká válnak. A csatornákból kialakított feltűnőségi térképek a biológiai mechanizmust alapul véve nem egyformán relevánsak az agyi feldolgozásban. Így utolsó lépésként a program egy „master” feltűnőségi térképet hoz létre, amelyben a különböző saliency térképek különböző, szabadon változtatható súllyal szerepelnek. (2. ábra „feature combination”). Végül a program kiválasztja a leginkább feltűnő, vagyis a legnagyobb saliency értékkel rendelkező pontot minden képen és ezt adja vissza. [3] A biológiai működés modellezését más megvalósításokban további lépésekkel is kiegészítik, ugyanis a legfeltűnőbb pont kiválasztása nem mindig a maximális saliency érték alapján történik. Ha egy pont elegendő ideig volt a figyelem középpontjában, akkor annak feltűnősége idővel csökkenni kezd, és egy másik pont veszi át szerepét annak ellenére, hogy 15
16
Figyelmi algoritmusokkal vezérelt helyszínanalízis
saliency értékeik alapján még mindig a korábbi pont lenne a legfeltűnőbb a „winner take all” mechanizmus alapján. Ennek az agyi működésnek köszönhető, hogy egy feltűnő pont megvizsgálása után szemünk átugrik a következő, második legfeltűnőbb pontra, és nem ragad meg az elsőnél. Ezt a folyamatot a visszatérés gátlásának nevezzük, és a szemmozgás számítógépes megvalósításával együtt néhány más figyelmi modellben több-kevesebb sikerrel implementálták is. [4]
2. Ábra A vizuális figyelmi modellek kialakításának általános lépései
16
17
Figyelmi algoritmusokkal vezérelt helyszínanalízis
A feltűnőségi térkép A figyelmi modellben használt számítások eredményeképpen tehát egy olyan mátrix jön létre, amely egy adott kép minden képpontjára a meghatározott feltűnőségi értéket tartalmazza. Ezt a mátrixot nevezzük feltűnőségi térképnek. A figyelmi algoritmusok megalkotásának ez a térkép képzi a bázisát. Az ilyen jellegű algoritmusok fejlesztéséhez nélkülözhetetlen a feltűnőségi térkép tüzetesebb vizsgálata és az alapvető tulajdonságok, és viselkedések meghatározása. Mivel a rendszer humán biológiai mérések alapján lett megalkotva, ezért természetesnek vehetjük, hogy a modell eredményeként olyan értékeket, és viselkedési mintákat kapunk, amely az emberi figyelem akaratlanos vezérlésénél nap, mint nap megfigyelhető. Mindez láthatóvá válik a figyelmi térkép feltűnőségi értékeinek számszerű elemzésénél, vagy a magas értékkel rendelkező területek vizsgálatánál. A modell nagyon intenzíven reagál a mozgásokra, és ezek az objektumok általában jóval magasabb feltűnőségi értékkel rendelkeznek, mint a látótér többi eleme. Ezen túl azt az emberi figyelemnél megfigyelhető jelenséget is hűen visszakapjuk, hogy ezeknél a mozgásoknál a modell ugyanúgy, mint az emberi szem, csak kis késéssel irányítja a figyelmét a mozgó objektumra, és ad a vonatkozó képpontoknak magas feltűnőségi értéket. A mozgás további követésének lefolyását azonban valós élethelyzetekben már nem csak egyedül az akaratlanos mechanizmus határozza meg. Az emberi szem, és maga a humán figyelem a hirtelen mozgásokra csak a mozgás megjelenésekor reagál. Felméri a közeledő, vagy elhaladó objektum veszélyességét, fontosságát, és ezután csak akkor marad a tárgy a figyelem középpontjában, ha arról tudatos döntés születik (top down mechanizmus). A valóságban tehát több lejátszódó folyamat is részt vesz a figyelem akaratlanos észlelésen túli vezérlésében. Ebből adódóan az alkalmazott modell többnyire a való életszituációkban is megfigyelhető módon reagál, de a feltűnőségi értékek nem változnak más mechanizmusokat modellező algoritmusok hatására. Egy elhaladó, vagy magától értetődően feltűnő objektum tehát nem veszti el jelentőségét akkor sem, ha már régóta a látótérben szerepel. Valós esetben a figyelemnek ezen esetek többségében csökkennie kéne. Az alkalmazott modell tehát az emberi figyelem bonyolult, sok összetevős rendszerének egy kiragadott, és jelentős részét írja le, a többi mechanizmussal való együttműködés modellezése nélkül. A kapott eredmények
ezért
teljesen
egyedi
irányból
közelítik
meg
a
látótérből
kinyert
információhalmazt, és a feltűnőségi térképeket manipuláló feltűnőségi algoritmusok is egészen speciális oldalról közelítik meg a klasszikus képfeldolgozási és egyéb problémákat.
17
18
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Figyelmi algoritmusok A feltűnőségi térképek tehát már magukban is nagyon egyedi leírást adnak a látótérről. Az ilyen mátrixok értelmezett műveletek pedig lehetőséget biztosítanak arra, hogy ezt a speciális nézőpontot további elemzéseknek vessük alá. Az egyszerű megfigyeléseken túl alapvető függvények, és algoritmusok alkalmazhatóak ezekre a térképekre, amelyek a feltűnőségi információt egy magasabb szintre emelik, és további következtetések, és megfontolások alapját biztosítják. A legelső felmerülő kérdés a feltűnőségi térképek kezelése. A figyelmi modell a feltűnőségi értékeket egybegyűjtő mátrixot, mint változót használja, és állítja elő. A különböző csatornák súlyainak beállítását biológiai okok alapozzák meg, ezért ez csak indokolt esetben változtatható, de az előállítás folyamatában a legjelentősebb szerepet tölti be. Mivel ezek az előállított mátrixok a videó folyam minden képére definiálva vannak, ezért az egyszerű algoritmusok által módosított feltűnőségi térképek videóként is értelmezhetők, és importálhatók. Ez a művelet e munkában bemutatott rendszerben is fontos szerepet kap. Az algoritmusok alkalmazásához előkészített feltűnőségi térképeket egy videó folyamként értelmezzük, és mentjük el a figyelmi modell kimeneteként. Az elmentett videót később már az alkalmazott függvények bemeneteként értelmezhetjük, és használhatjuk a modelltől eltérő fejlesztői környezetekben. Ezt a paraméterátadást, vagyis a feltűnőségi térkép hordozhatóvá alakítását különböző nagyon egyszerű kódolási, vagy kimentési eljárásokkal valósíthatjuk meg. A képenkénti mátrix file-ba írása ugyanúgy megfelelő technika lehet, mint egy új videó létrehozása, képkockánként a feltűnőségi térkép valamilyen egyszerű ábrázolási módjával. Mivel a mátrix értékeinek változatlanul hagyása a legfontosabb cél, ezért minden olyan eszköz, amely a pontos adatokat továbbítja megfelelő. Az általam alkalmazott konstrukcióban a feltűnőségi értékeket egy, az eredeti kép folyammal megegyező képméretű videóban rögzítettem. A kódolás pedig helyi értékes, tehát a továbbított videó képeinek színértékei az adott pont feltűnőségi értékeinek felelnek meg, egy előre megválasztott kiolvasási sorrenddel. Jelen esetben a színek kék összetevői felelnek meg az egyes helyi értéknek, a zöldek a tízesnek, és pirosak a százasnak. Természetesen ez csak egy nagyon egyszerű példa, és eljárás az ilyen jellegű adatok kezelésére, akármilyen más módszer megfelelő. A
továbbiakban
alkalmazott
legegyszerűbb
algoritmusok
között
olyan
függvénymegvalósítások találhatók, amelyek a feltűnőségi térképek értékeinek naiv megközelítésű vizsgálatait tartalmazzák. A kiolvasható értékek közti különbségek, a magas értékek számszerű értékei, és az egész képre vonatkoztatott átlaga mind olyan paraméterek, 18
19
Figyelmi algoritmusokkal vezérelt helyszínanalízis
amelyek később is jelentős szerepet játszanak a további vizsgálatoknál. Ennek megfelelően az ilyen jellegű függvények közül minél több megvalósítása vezet a feltűnőségi térképek legteljesebb elemzéséhez. Az alkalmazott figyelmi modell is jelentős szerepet tulajdonít az egy képen található képpontok közül a legfeltűnőbbnek. Ennek megjelölése már a modell keretein belül is megvalósul. A mindenkori legfeltűnőbb pont azonban, a hordozott legmagasabb feltűnőségi értéken kívül, nem jelez sokat a vizsgált kép mögöttes tartalmáról. Ha mindig csak a legfeltűnőbb pontot vizsgáljuk, akkor a jelzett képpont feltűnőségi térképen elfoglalt pozíciója a legtöbb esetben nem mutat folytonosságot, vagy szabályszerű, néhány pont közti helyváltoztatást a képkockák között. Természetesen ebben a szabályszerűtlen ugrálásban is felfedezhető a mögöttes információ egy része, például, hogy egy jelenetet leíró videón hány objektum az, ami dominánsan magára vonja a figyelmet. Vannak olyan helyszínek és szituációk, ahol egy tárgy, vagy tárgyhalmaz annyira feltűnőbb a többinél, hogy a maximális feltűnőségi érték, és átvitt értelemben a figyelem központja, mindig azon az objektumon található meg. Azonban az ilyen konstrukciók messze állnak a valóságban fellelhető színterektől, hiszen az esetek többségében szemünk, és figyelmünk a látótér több objektumát is végigjárja, és a modell is ennek megfelelően cselekszik. A legfeltűnőbb pont kiválasztása tehát statisztikailag fontosnak tekinthető, de elhelyezkedésének nehéz kezelése miatt további egyszerű figyelmi algoritmusok alkalmazása szükséges. A legkézenfekvőbb megoldás, ha további maximális értékeket választunk ki a feltűnőségi térképről. Az ilyen módon vizsgált felvételeken a kiválasztott számú legfeltűnőbb ponttal azonos mennyiségű objektum detektálása lehetséges, amelyek magukra vonják az emberi figyelmet. Kettő, a többi objektumhoz képest kiemelkedően feltűnő objektum jelenléte a csak a legfeltűnőbb pont vizsgálatakor ugrálásokat, és kiszámíthatatlan viselkedést eredményez. Ha ebben az esetben a két legfeltűnőbb pontot számítjuk ki, a két objektumon is egy-egy legfeltűnőbb pont fog megjelenni, és ezek között csak az elsőség, és másodlagosság lesz az, ami változik. Ezen megfontolás alapján megválasztott több legfeltűnőbb pont már nem viselkedik kezelhetetlen módon, és még több információ kinyerésére alkalmas, mint az egyetlen maximum vizsgálata. Az így megvalósítható figyelmi algoritmusok már képesek a mögöttes tartalmi információk kis részének kinyerésére. Megfigyelések alapján például öt legfeltűnőbb pontot választva a vizsgálatok alapjául, a látótérben végbemenő jelentős mozgások már megfigyelhetőek (3. ábra). Az ilyen módon leírt mozgások útvonala pedig utalhat a helyszínen látható mozgó objektumok tulajdonságaira. A további elemzésekhez természetesen már összetettebb figyelmi algoritmusokra van szükség. További alapvető figyelmi algoritmusok foglalkoznak a feltűnőségi térképből kiolvasható értékek egyszerű elemzésével, és a jelentés vizsgálatával, úgy hogy az eredmény 19
20
Figyelmi algoritmusokkal vezérelt helyszínanalízis
felhasználható legyen bonyolultabb feladatok véghezvitelénél is. Az értékek vizsgálatánál sem vehetjük figyelmen kívül a látótérben zajló mozgások jelentőségét. A feltűnőségi értékeket előállító összetevők közül ugyanis éppen a mozgás az, ami ilyen alacsony, és egyszerű szintű analízis esetén is mélyebb jelentőségű információk eléréséhez alkalmas. A képen megfigyelhető nagy kontrasztú elemek, a feltűnő színek, a tárgyak sarokpontjai, fényfelvillanások, vagy eltűnések mind olyan jellemzők, amelyek önmagukon túl főleg a mozgások leírásánál szerepelnek a figyelmi modellben. Ennek megfelelően az értékek vizsgálatakor alkalmazott figyelmi algoritmusok is a feltűnő pontok mozgásaira, és azok tulajdonságaira alkalmas eszköz. Az említett témakörű algoritmusok között jellemzően a videó minden képkockájára egy értéket kapunk eredményül, amely utána függvényként ábrázolható. A legegyszerűbb megközelítések alapján a feltűnőségi térkép átlagos értékét, az értékek átlagos szórását, és egyéb hasonló paraméterek kinyerését megvalósító algoritmusok alkalmazhatók. Az átlagos feltűnőségi értékek változása, és szórása megfigyelések alapján összefüggésben áll a kép folyamon megjelenő mozgások mennyiségével, vagyis a feltűnő pontok egész videóra vetített elhelyezkedésével. Ötven maximálisan feltűnő értéket kiválasztva ez az összefüggés már jól láthatóvá válik, és a látótérben végbemenő mozgások és a kiolvasható átlagos feltűnőségi értékek közti összefüggés meghatározható. Tapasztalatok alapján egy alacsonyabb átlagos feltűnőségi értékeket képviselő jelenet általában kevés mozgást tartalmaz, azaz a legfeltűnőbb pontok vizsgálatakor azok a képnek csak egy kis részét fedik le, míg a sok mozgást tartalmazó videók átlagos feltűnőségi értéke meghaladja a nyugalmi jelenetet ábrázoló videókét (4. ábra). A mozgások természetesen a látótér bonyolultságára is utalnak, hiszen jóval több kontrasztos elem, és színbeli eltérés keletkezik ilyen esetekben, és így egy mozgó színtér a figyelmet is jobban vonzza, mint egy nyugodt környezetet ábrázoló. A mozgás persze nem csak a látótérben tapasztalt mozgásokat jelenti. A kamera mozgása is ugyanazt a hatást váltja ki a feltűnőségi értékekben, és ugyanazok a megfontolások alkalmazhatóak ebben az esetben is, azonban a legfeltűnőbb pontok helyzetének vizsgálatakor a kameramozgás iránya is néhány esetben jól megfigyelhető.
20
21
Figyelmi algoritmusokkal vezérelt helyszínanalízis
3. Ábra Mozgó objektum lekövetése maximális feltűnőségi pontokkal. A maximális öt saliency érték a mozgó autó megjelenésével egy ponttá forrt össze, ami csak a közlekedési tábla elhagyása után változott meg. Itt szétvált az öt maximális érték pozíciója.
4/a. Ábra A maximális feltűnőségi értékek átlaga, és eloszlása mozgás nélküli videókon Az átlagos átlagérték 120, és 100 környékére esik, és a feltűnőségi pontok eloszlása kis területet foglal el, azaz a feltűnő pontok a videó során többnyire egy helyben maradtak
21
22
Figyelmi algoritmusokkal vezérelt helyszínanalízis
4/b. Ábra A maximális feltűnőségi értékek átlaga, és eloszlása mozgást tartalmazó videókon Az átlagos átlagérték 300, és 200 környékére esik, és a feltűnőségi pontok eloszlása nagy területet foglal el, azaz a feltűnő pontok a videó során sokszor pozíciót változtattak. A mozgások iránya is hozzávetőlegesen leolvasható az ábráról.
22
23
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Rendszerfejlesztés lépései
Egyszerű figyelmi algoritmusok megvalósítása Az ismertetett figyelmi modellből tehát AVI formátumú videókat importáltam ki, amelyek a feltűnőségi térképek folyamát tartalmazták. A térképekre használt figyelmi algoritmusokat ezután Matlab programozási nyelven valósítottam meg. A Matlab mátrixok kezelésében sok kidolgozott, beépített funkcióval rendelkezik, ezért az így előállított figyelmi algoritmusok e programnyelv alatt voltak a leginkább elemezhetőek, és átláthatóak. Az átláthatóságra azért is van nagy szükség, mert már a rendszerfejlesztés első lépéseiben is nagy adathalmazokkal kellett dolgoznom. Minden videóra ugyanis egy [176*144*3*frame] nagyságú tömb képviselte a feltűnőségi térképek sorozatát, és erre az adatszerkezetre kellett kidolgozni az eljárásokat. Az egyszerű figyelmi algoritmusok megvalósítása többnyire beépített függvények segítségével teljesen kidolgozható volt, azonban a futási idő, és a felhasznált memória mértékét minden esetben ideális függvénymegvalósítással kellett alacsonyan tartani. Az importált videó beolvasásához a beépített „aviread” függvényt használtam, amit utána a figyelmi modellben használt kódolás alapján dekódoltam. Az alkalmazott videó beolvasás után egy 1*frame nagyságú struktúra áll elő, „cdata” és „colormap” nevű mezőkkel, amelyre a dekódoló eljárást „function salmap = readsal (mov,
frame)” alakban valósítottam meg. Az így létrehozott, és belső változóként
értelmezett mátrix a beolvasott figyelmi modellből származó videók egy képkockájához tartozó feltűnőségi értékeket tartalmazzák. Ez az alapvető lépés teszi lehetővé a feltűnőségi térképek további módosítását, és egyéb figyelmi algoritmusok fejlesztését. Az egyszerű maximumok kiválasztásához szintén beépített függvények állnak rendelkezésre, az általam megvalósított tetszőleges számú legfeltűnőbb pontokat kiválasztó függvény „function
topvector
=
topmaxsort
(salmtx,
topmax)”
alakban
volt
megvalósítható. Az ebből származó maximum értékek és egyéb jellemzők vizsgálatához megalkotott megjelenítő eszközök létrehozásánál alapvetően azt a gyakorlatot követtem, hogy az eredeti videó megfelelő pixeleit egy maszk segítségével színeztem át, és így elemeztem a legfeltűnőbb pontok helyzetét. Ennek megvalósításához a „function out = imoverlay(in,
mask,
color)” függyvényt használtam fel, amely egy bemeneti
képmátrix logikai maszkban meghatározott pozícióit a megadott színűre változtatja. Ezek az egyszerű algoritmusok képzik tehát az alapvető megfigyelések, és a bonyolultabb figyelmi 23
24
Figyelmi algoritmusokkal vezérelt helyszínanalízis
alkalmazások kidolgozásának alapját, és az összetettebb rendszerekben is többnyire megjelennek, mint alkalmazott, vagy alacsonyszintű függvények.
Feltűnőségi térképek elemzése Az egyszerű figyelmi algoritmusokban létrehozott paraméterek, és a függvények kimenetei mind olyan megfontolásokhoz vezetnek, amelyek a fejlesztés későbbi lépéseinél fontos szerepet kapnak. A legegyszerűbb figyelmi algoritmusok használhatóságát már láttuk. Azonban a kapott eredmények jelentése sok szempontból közelíthető meg. Azon függvényeknél, amik az egész feltűnőségi térképből egy értéket számítanak ki, a jelentés például a videó által rögzített jelenet valamely tulajdonságára kell, hogy utaljon. A következtetések levonásánál azonban nem szabad egyből a környezetek, és szituációk közti különbségben keresni a legfőbb különbséget. Megfigyelések alapján a videókat elkészítő kamera felbontása, tömörítése, és képkockasebessége (fps) is jelentős szerepet játszik a feltűnőségi térkép értékeiben. Egy erősen tömörített videón a képtömörítés ablakának szélein fantom élek jelennek meg, ezzel megnövelve azokon a területeken a kontraszthatást. Mivel a figyelmi modell erre a jellemzőre is erős válasszal reagál, ezért az ilyen módon elkészített videók feltűnőségi térképe eltér a többitől. Ugyanez igaz a felbontásra, és a képkockasebességre. A kisebb felbontással, vagy magas képkockasebességgel készített videókon az a jelenség figyelhető meg, hogy a mozgások nagysága nem tükrözi a valóságot a feltűnőségi térképeken, hiszen vagy a képkockák közti időkülönbség lesz olyan kicsi, hogy a nagyobb elmozdulásokat is kicsinek értelmezze két képkocka között, vagy a képpontok lesznek olyan messze egymástól, hogy a kis mozgásokat is nagyobbként értelmezi a figyelmi modell. Az ilyen jellegű megfontolások miatt az elkészített videókat egységesíteni kell az említett szempontok alapján, mivel annak ellenére, hogy a feltűnőségi térkép értelmezésébe ugyan ezek a paraméterek nem kapnak fontos szerepet, de ha több felvétel elemzésével akarunk a videók közt különbséget, besorolást keresni, akkor az egységes kezdeti feltételek szükségessé válnak. Egy másik, a felvétel elkészítésének módjától már független megfontolás a feltűnőségi térképeknél tapasztalt kissé rendszertelen viselkedés köré épül. A maximális feltűnőségi értékek képkockákra levetített vizsgálatakor jelentkező probléma magyarázata a figyelmi modell egyfajta frissítési mechanizmusa, amelyek során a legfeltűnőbb területek feltűnőségének csökkenése bizonyos periódusonként újra kiértékelődik, és a maximális értékek megugranak. Ezen jelenség részletesebb vizsgálatához, és kezeléséhez megfelelő, és 24
25
Figyelmi algoritmusokkal vezérelt helyszínanalízis
részletes megjelenítő eszközökre van szükség. A feltűnőségi térképek naiv kezelésekor alkalmazott megválasztott maximális érték vizsgálatának módszere itt már nem elégíti ki a feladatkezelés igényeit. Olyan megjelenítő eszközök kifejlesztésére volt szükség melyek a feltűnőségi térkép viselkedését több szempontból írja le. Az alapvetően alkalmazott módszer a normalizálás volt, vagyis a feltűnőségi térképek viselkedésének ilyen jellegű vizsgálatához minden képkockára egy azonos skálára vetített értéket jelenített meg az eszköz. Ez kétdimenziós alkalmazás esetén megszűnteti a feltűnőségi térképeken tapasztalt frissítési ugrálásokat, és háromdimenziós esetben pedig még átláthatóbbá teszi a problémát. A munkában ezek az esetek kerültek megvalósításra, és hogy az eredeti videó is követhető legyen a feltűnőségi térképek sorozata mellet, kétdimenziós esetben az eredeti képek élképét, míg háromdimenziós esetben magát az eredeti képet transzformált változatban használtam a megfigyelhetőség segítségére. E két módszer segítségével nyomon követhető volt az, hogy az eredeti videó képein szereplő objektumok között melyek azok, amik feltűnő területeket képeznek, és hogy mi történik ezen objektumok mozgása, vagy éppen nyugalmi állapota esetén. A megfigyelések azt mutatják, hogy itt nem alkalmazható a naiv megközelítésnél használt választott mennyiségű maximális feltűnőségi érték vizsgálata, ugyanis a vizsgálni kívánt feltűnő területek nyomon követése már nem pusztán a hordozott értékekkel kapcsolható össze. A kiválasztott maximális elemek számszerűsítése ilyen jellegű elemzésnél már nem szerencsés, hiszen például egyetlen nagyon feltűnő objektum jelenlétekor, ha az objektum képpontokban mért területe meghaladja a maximális értékeknél kiválasztott határt, akkor a feltűnőségi térkép tulajdonságai miatt, nagy értékvesztés után, olyan objektumokat és régiókat is ki fogunk választani a maximumok között, amelyek valójában nem tartoznak a képtér legfeltűnőbb területei közé. A feltűnőségi térképek ilyen, a valós jelentéshez inkább közelebb álló vizsgálataihoz tehát nem a szigorú értelemben vett statisztikus figyelmi algoritmusok a megfelelőek. A feltűnőségi térkép másfajta megközelítésével azonban megoldható az ilyen jellegű szempontok kielégítése. Ha a feltűnőségi értékeket tartalmazó mátrixok, mint háromdimenziós mátrix értelmezzünk, ahol két koordináta a kép szélességét, és magasságát jelenti, a harmadik pedig a feltűnőségi értéket, akkor a mátrix videó során végbemenő változásai, mint felületfüggvény értelmezhető. Ez a felületfüggvény valójában a feltűnőségi értékek által kifeszített domborzati térképhez hasonló síkot jelenti. Az ilyen értelemben vett csúcsértékek tehát már nem egy bizonyos mennyiségű maximális értéket jelentenek, hanem a domborzati térkép olyan elemeit, objektumait, amelyek felett értelmezett ilyen jellegű feltűnőségi térképen csúcsok láthatók. Ez a megoldás egyben a szomszédos képpontok közti feltűnőségi értékek nagy értékkülönbségét is moderálja, hiszen egy magas érték feletti csúcs szomszédos 25
26
Figyelmi algoritmusokkal vezérelt helyszínanalízis
pontjaihoz lejtők vezetnek a függvényben. A legfeltűnőbb területek kiválasztása így egészen más szempontok alapján alkalmazható egyszerűen. A domborzati térkép maximális elemeinek kiválasztásához ugyanis elegendő egy megfelelő határérték kiválasztása, amely a függvényt két részre vágja szét, és a magasabb értékekkel rendelkező fél lesz a legfeltűnőbb területeket tartalmazó szelet. A munka során alkalmazott levágás mértéke a területek követéséhez alkalmazott további algoritmusok működéséből kapott eredmények alapján határozható meg. A ténylegesen feltűnő objektumok azonosítására, és mozgásuk vizsgálatára tehát az egyszerű figyelmi algoritmusok eredményei alapján a feltűnőségi térkép kis módosítása, és egy követő algoritmus alkalmazható, amelyek megvalósítását a vonatkozó fejezetekben tárgyaljuk.
Részletes megjelenítő eszközök A feltűnőségi térképek elemzésekor levont következtetések tehát új megjelenítő eszközök kifejlesztését szorgalmazták. Az említett két- és háromdimenziós verziók megalkotásának alapját az elemzett domborzati képek adják. Matlab programozási nyelvben az ilyen típusú megközelítést a „contour”, és „contour3” nevű beépített függvények támogatják (function
contour(C);
és
function
contour3(C,
n);
ahol
n=kontúrvonalak száma). Ezek a függvények háromdimenziós tömböket kezelnek, és előre meghatározott számú kontúrvonalat számolnak ki a beérkező adathalmazra. A kiszámolt kontúrvonalak a háromdimenziós függvény harmadik dimenziós értékeinek minimumától maximumáig terjedő skálát osztják a meghatározott számú, ugyanakkora részekre. Eredményként egy olyan két soros mátrixot kapunk, amely tartalmazza a kontúrvonal által reprezentált magassági értéket, az adott magassághoz tartozó kontúrpontok számát, és a kontúrvonalak koordinátáit (5. ábra). A kontúrvonalakat tehát csak közvetett módon, kontúrpontok formájában kapjuk meg, amelyek közt szakaszokat húzva értelmezhetjük a kontúrvonalak vonalvezetését. A feltűnőségi térképek elemzését szolgáló részletes megjelenítő eszközöknél ezeket a függvényeket használtam fel a figyelmi modellből származó videókhoz. A kétdimenziós esetben értelemszerűen a contour függvény, és háromdimenziós esetben a contour3 függvény használatos. Az eredeti videó nyomon követéséhez használt élképet, és transzformált képet a Matlab Image Processing Toolboxhoz tartozó két vonatkozó függvénnyel valósítottam meg. Az élkép esetében minden képkockára szürkeárnyalatossá
26
27
Figyelmi algoritmusokkal vezérelt helyszínanalízis
konvertált képre alkalmazom az „edge” függyvényt 1, majd a contour függvénnyel előállított kontúrképre a már említett „imoverlay” –t alkalmazva az élkép maszkjának koordinátáit fehér színűre változtatom az eredmény képen (6. ábra). Háromdimenziós esetben a láthatóságot figyelembe véve a képet úgy transzformáltam, hogy az ábrázolt háromdimenziós koordinátarendszer alapja hasonló szögből mutassa az eredményt, mint ahogy az eredeti videót soron követhetjük. Ehhez egy egyszerű, projektív transzformációt végző függvényt alkalmaztam, szintén az Image Processing Toolboxból 2. A „tform”-ban megadott értékek azt határozzák meg, hogy a kép eredeti sarkai a projekció után milyen pozíciókba kerüljenek. A paraméterek megadása után használatos „imtransform” függvény kimenete pedig már az „Image” kép projektált változata lesz, amit a „contour3” által előállított háromdimenziós függvény alá helyeztem (6. ábra). Az így előállított megjelenítő eszközök fontos támaszt biztosítottak a feltűnőségi térképek, és az azokon elvégzett feladatok viselkedésének vizsgálatához.
5. Ábra A contour függvény eredményeként kapott kontúrvonalak leírása
1
2
mask = edge(rgb2gray(video(i).cdata), 'canny'); tform=maketform('projective',[ 0 0; 1 0; 1 1; 0 1], ... [0 0;
12 -4; 21 1 ; 9 4.5]);
[B,xdata,ydata] = imtransform(Image,tform,'bicubic',... 'udata',[0 255*0.8 );
1],'vdata',[0
27
1],'size',size(Image),
'fill',
28
Figyelmi algoritmusokkal vezérelt helyszínanalízis
6. Ábra Részletes megjelenítő eszközök Balra a kétdimenziós kontúr függvényt megjelenítő eszköz rátranszformálva az eredeti videó él képe (fehér). Jobb oldalt a háromdimenziós megjelenítő a kontúr függvény térbeli reprezentációjával, és az alá, hasonló látószögűre leképzett eredeti videó
Feltűnő területek követése A tracking jelentősége Az eddig ismertetett, és elemzett figyelmi algoritmusok közül nagyon soknál láttuk végeredményként azt a következtetést, hogy a feltűnőségi térképek a rögzített szituációban lezajló mozgásokat jelenlétét és tulajdonságait jól leírják. A legfeltűnőbb területeket kiválasztó figyelmi algoritmusra alapozva a további tanulmányokat, egy követő (tracking) algoritmus alkalmazása elérhető közelségbe került. Az eddigi elemzések középpontjában maga a feltűnőségi térkép és annak tulajdonságai álltak. A felvételek figyelmi feldolgozása során
keletkező
feltűnőségi
videók
szomszédos
képkockái
között
megfigyelhető
sajátosságokat azonban csak egy új eszköz fejlesztésével lehetséges megvizsgálni. A feltűnőségi térképek időbeli és térbeli változásainak együttes vizsgálatához a feltűnőségi értékek követésére van szükség. Ennek az algoritmusnak a jelentősége abban rejlik, hogy a feltűnőségi pontok mozgása, azon túl, hogy utal a valós jelenetben végbemenő mozgásokra is, sok további mögöttes információval is bír, amely alapjául szolgál a helyszínek későbbi 28
29
Figyelmi algoritmusokkal vezérelt helyszínanalízis
klasszifikálásának. A feltűnőségi értékek követése tehát nem azonos a klasszikus értelembe vett optikai tracking feladattal, bár szoros összefüggés van a kettő között. A feltűnő területek követése esetén figyelmi értékek, és figyelmi algoritmusok alapján meghatározott területek követése történik, amelyek viselkedése eltér a megszokott mozgó objektumok viselkedésétől, még akkor is, ha egy nagyon egyértelműen mozgó feltűnő objektum mozgásának lekövetése szinte azonos eredményt ad mindkét megközelítés esetén. A feltűnőségi térképeken történő mozgások követésére kifejlesztett algoritmus feladata a feltűnő területek mozgása során kirajzolt útvonal, a mozgás közben mérhető számadatok előállítása. Minden előállított paraméter feladata, hogy jelentést hordozzon a lejátszódó jelenet típusáról. A jelenet típusa pedig már kisebb nagyobb mértékben utal a felvétel helyszínére, és a szituációra. A mozgás által közvetített típusok legegyszerűbb példája a mozgásoknál megfigyelt megtett út összesítése. Ha a látótérben sok feltűnő, mozgásban lévő objektum található, akkor ez a tény bizonyos helyszínek lehetőségét nagy valószínűséggel kizárja a felmerülő válaszok közül. Egy otthoni, vagy természetben felvett környezet kis valószínűséggel tartalmaz olyan elemeket a feltűnőségi térképeken, amely a figyelem egy objektum által koncentrált irányítására utalna. Az ilyen és hasonló környezetekben inkább a feltűnő területek eloszlása a jellemző, hiszen nincs olyan jelenség, ami a tér többi eleménél ennyivel jobban magára vonná a figyelmet. Otthoni környezetekben, a természetben, és sokszor irodákról készült felvételeken is a feltűnőségi térképeknek az a jellemző viselkedése figyelhető meg, hogy több, körülbelül azonos feltűnőségi érték közül választódnak ki a feltűnőségi területek. Az ilyen jellegű videóknál tehát a feltűnő területek összetartása, csomósodása, összesített távolságuk az, ami meghatározza őket a sok, egyértelműen felismerhető mozgást tartalmazó környezetek közül. A két könnyen elválasztható szituáció között értelmezhető helyszíneknél már bonyolultabb a helyzet. Egy bevásárlóközpont, vagy egy utca mindkét viselkedést produkálhatja a vásárlók, illetve a forgalom jelenlétének függvényében. Az előállított paraméterek közül tehát minél több előállítására irányuló algoritmus megalkotása a cél, amely a nagyon ellenkező környezeteken kívül az átmeneti, vagy mindig változó környezetek megkülönböztetésére is lehetőséget adjon, amennyiben a klasszifikáció egyáltalán lehetséges.
Az algoritmus megvalósítása A követő algoritmus kidolgozásánál alapvetően két változat készült el. Első megközelítésben egy egyszerű, a képen szereplő maximális figyelmi pontokat követő alkalmazást dolgoztam ki. Az algoritmus megtervezését elsősorban más, hasonló célt megvalósító algoritmusok vizsgálatával, megértésével kezdtem, és ezek alapján alkottam meg az alapvető koncepciót a saját alkalmazásra vonatkozóan. A program vázát egy olyan 29
30
Figyelmi algoritmusokkal vezérelt helyszínanalízis
adatszerkezet alkotja, amely hagyományos videóknak, és azok feltűnőségi térképeit tartalmazó (a figyelmi modell által létrehozott) videóknak adatait tárolja el, ezután a módosított mozgóképekből kinyeri a feltűnőségi értékeket, majd az adatok feldolgozása után megjeleníti a követett feltűnő pontokat, az eredeti, hagyományos videóval együtt. Maga a feldolgozás egy olyan adatstruktúrában megy végbe, amelyben az algoritmus egésze folyamán a legmagasabb (számuk paraméterként meghatározható) feltűnőségi értékkel rendelkező pontok adatai tárolva vannak (7. ábra). Ebben az adatstruktúrában tárolom a „track”-eket, a követendő pontokat. Minden képkockára ez az adathalmaz frissül, azon új, legmagasabb feltűnőségi értékű pontokkal kiegészülve, amik nem képezik részét egyik, az addigi adatstruktúrában szereplő pontok követési útvonalának sem. A feldolgozás során minden új, maximálisan feltűnő pontokat tartalmazó halmaz érkezésekor egy összehasonlítás fut le. Minden eddigi, a track-ek között szereplő pontra megvizsgálom, hogy van-e az adott környezetén belül az éppen aktuálisan beérkező halmazból olyan pont, amelynek a feltűnőségi értéke nem tér el a vizsgált ponttól az adott határértéknél jobban. Természetesen, ha több ilyen pontot is találok a környezeten belül, akkor a „jobbat” választom, tehát azt, amelyikkel a feltűnőségi értékek különbsége kisebb lesz. Sikertelen vizsgálat esetén az aktuálisan beolvasott képpont új track-ként bekerül a track-eket tartalmazó halmazba, míg ellenkező esetben annak a track-nek frissülnek az adatai, koordinátái, amelynek az aktuális pont a követési útvonalában volt. Mindezen funkciókat egymással paramétereken keresztül kommunikáló függvényekkel valósítottam meg. A követő algoritmus fontos pillére a követendő pontok különböző osztályokba való besorolása, amelyek a track-ek állapotát jelzik. Alapvető koncepció minden hasonló algoritmusnál, hogy az éppen aktívan követett elemeket elválasszuk azoktól a pontoktól, amelyek az adott időpillanatban nem rendelkeznek olyan képponttal, amely a pont mozgását leíró egyenes, vagy út része lenne. Az állapotok számának megválasztása, és a pontok osztályozásának módja tehát a program fontos részét képzi. Az általam kidolgozott programban négy féle állapotot használok a track-ek jellemzésére. A minden képkockára újonnan érkező legfeltűnőbb pontok, amelyek a vizsgálat eredményeképp nem tekinthetők semelyik eddigi track folytatásának sem, képzik az „új” osztályt. A pontok követése ezután veszi kezdetét. Ha egy, a track-ek között már szereplő ponthoz találunk megfelelő párt (azaz a megadott távolságon belül, és a megadott határértéken aluli eltéréssel) az maximális feltűnőségi értéket képviselő pontok között, akkor az adott ponthoz tartozó track aktívvá válik, a követés „megerősített” (confirmed) lesz. Megfelelő pontpár hiányában a követett pont állapota egy úgy nevezett „bizonytalan” (unconfirmed) kategóriába sorolódik. Erre az osztályra azért van nagy szükség, mert az aktívan követett pontok sok esetben eltűnnek, 30
31
Figyelmi algoritmusokkal vezérelt helyszínanalízis
majd újra megjelennek a képen, ezért szükséges egy várakozási mechanizmus beépítése az algoritmusba, hogy pár képkockás kihagyás után is folytatható legyen az aktív track-ek követése. Az unconfirmed állapotú pontok tehát, ennek a megfontolásnak eleget téve visszatérhetnek az aktívan követett pontok közé, azonban egy meghatározott idő elteltével már mégsem érdemes velük foglalkozni. Ezeket az elemeket gyűjti össze az „elveszett” (lost) állapotú pontok halmaza. Az itt található track-ek már nem vesznek részt a követő algoritmus további részében, így egy újabb képkocka beolvasásakor ezeket az elemeket már nem is vesszük figyelembe, nem fognak szerepelni az összehasonlításoknál (8. ábra, 1. függelék). Az aktív, követett track-ek tehát megerősített állapotban vannak, és egészen addig mozognak egy út mentén, amíg az új pontok között van megfelelő párosítás számukra. Ez természetesen azt jelenti, hogy a pont mozgása során mindig más centrumú területen kell keresni a követési útvonal soron következő pontját. A keresési terület középpontja kezdetben maga a pont, de miután egy követés megkezdődött, a keresési tartomány centruma is változik. Ennek a változásnak meghatározása fontos tényezője a követési algoritmus viselkedésének, különböző mozgásokra különböző keresési területre vonatkozó becslések működnek megfelelően. A felvételek feltűnőségi pontjainak vizsgálatakor ezt a függvényt lineárisnak konstruáltam meg, hiszen ennél bonyolultabb összefüggésű mozgások követésére nincs szükség a feltűnőségi térképeken megfigyelhető mozgások vonatkozásában.
Követett elemek adatstruktúrája Sorban a pont koordinátái, feltűnőségi értéke, és állapota. A becsült koordináták aktívan követett trackek esetében térnek csak el a pont koordinátájától, kiszámításuk az algoritmusra jellemző, jelen esetben lineáris megközelítés. Ebből származtatható az x és y irányú elmozdulás. Lost számláló jelzi, hogy mennyi ideje van a track határozatlan állapotban, ha elér egy meghatározott értéket elveszettnek nyilvánítjuk. IsMatch paraméter mutatja, hogy volt-e megfelelő, a pont követését folytató új pont a képkockán.
7. Ábra A követett elemek adatstruktúrája
31
32
Figyelmi algoritmusokkal vezérelt helyszínanalízis
8. Ábra A tracking algoritmus működése Fent az algoritmus működésének alapvető folyamatábrája, alatta a követett objektumok adatstruktúrájában végbemenő állapotok változásának leírás
Felmerülő problémák Az algoritmus működésével kapcsolatban megjelenő problémák valójában a feltűnőségi térképek természetéből adódó viselkedéshez voltak köthetők, így a már említett kifinomultabb megjelenítő eszközök fontos szerepet játszottak a hibás, vagy nehezen követhető jelenségek elemzésénél. A követett figyelmi pontok vizsgálata során megállapítható volt, hogy a megfigyelt kép legfeltűnőbb pontjai nagyon szétszórva
32
33
Figyelmi algoritmusokkal vezérelt helyszínanalízis
helyezkednek el a látótérben. Ebből kifolyólag a lekövetésük, még a létrehozott algoritmus alkalmazásával is nehézségekbe ütközött. A nagyon egyértelmű mozgásokra természetesen jól reagált a rendszer, de nagy általánosságban a feltűnőségi értékek annyira ugráltak a videók egymást követő képkockái között, mind térben, mind értékben, hogy sok esetben nem jutottam megfelelő eredményhez (9. ábra). A jelenség vizsgálatához egy sorozatos futtatást alkalmaztam, a bemenő paraméterek folyamatos változtatásával. Az így kapott ábrákon is jól látszódott, hogy a követett pontok közül csak kevés marad meg egy-egy trajektória útvonalán. A kísérletek eredményeképpen arra a megállapításra jutottam, hogy a felhasznált feltűnőségi térképek pont szintű vizsgálatánál kifinomultabb eszközökre van szükség az analízishez. A két alapvető megközelítés az volt, hogy egyrészt szükséges a feltűnőségi térképek kismértékű megváltoztatása, hogy a feltűnőségi értékek térbeli és időbeli nagy eltérése kevésbé legyen zavaró a tracking alkalmazásakor, másrészt a követő algoritmus olyan megváltoztatása szükséges, amely a pontszintű elemek vizsgálatáról áttér területek elemzésére. Ez a probléma természetesebb leírását adja, és könnyebben lekövethető, jobban összetartozó struktúrákat kaphatunk eredményül. A részletes megjelenítő eszközök tehát lehetőséget nyújtottak arra, hogy a feltűnőségi térképeken olyan változtatásokat eszközöljek, amelyek kevésbé zavaróvá teszik a saliency értékbeli hirtelen változásokat, és az alkalmazott változtatások eredményei folyamatosan figyelemmel kísérhetővé váltak. Az alapvető célkitűzés ezen a területen a figyelmi térképek egy olyan értékbeli simítása volt, amely a lényegi, jelentésbeli tartalmat csak csekély mértékben változtatja, de a térképeket használhatóbbá teszi a további alkalmazások számára. Ez azt jelenti, hogy a feltűnőségi térképek elemzésénél alkalmazott kontúrfüggvények ugrásszerűen kiemelkedő részei jobban belesimuljanak környezetükbe, azonban a jelölt terület feltűnősége a szomszédos területekkel szemben megmaradjon. Ehhez konvolúciós simításokat alkalmaztam, és az eredmények figyelembe vételével választottam ki a megfelelő paramétereket (10. ábra). A másik szükséges lépés a követő algoritmus változtatása volt. Az alkalmazott megjelenítő eszközökkel, és a feltűnőségi térkép megváltoztatásával már kinyerhetőek voltak a videó képkockáinak nemcsak legfeltűnőbb pontjai, hanem az általuk körülhatárolt legfeltűnőbb területek. Ezt egy egyszerű küszöbérték meghatározásával lehetett prezentálni, azaz a létrejövő, a részletes megjelenítő eszközöknél tárgyalt, kontúr függvény szintvonalai közül a meghatározott küszöbérték feletti görbék vettek részt a további műveletekben. A görbék által határolt területek a kép küszöb feletti mértékben feltűnő területeit adták. A felhasznált contour függvény segítségével azonban nem volt lehetőség direkt módon a feltűnőségi térképek pontjaira hivatkozni, mivel a függvény kimenete csak a szintgörbék 33
34
Figyelmi algoritmusokkal vezérelt helyszínanalízis
értékét és a vonalak főbb töréspontjait tartalmazta. Ezeket a törésvonalakat tehát egy külön struktúrában tároltam el, a hozzájuk tartozó feltűnőségi szinttel együtt, és később kerekítéssel hivatkozhattam a feltűnőségi térkép pontjaira. Ezek a pontok a területek körvonalát határozták meg, ezért további lépések lettek szükségesek az általuk határolt terület lekérdezéséhez. Ehhez a feladathoz a MatCNN-t, a Matlab Image Processing Toolbax egy kiegészítő eszköztárának két template-jét használtam. Először egy rövid lefutású eróziót az egy pontos területek eltűntetésére, majd egy back propagationt, amely feltölti a határvonalak által határolt területeket. A kapott bináris mátrixokat logikai változókat tartalmazó struktúrává alakítva, már alkalmasak voltak indexelési feladatok betöltésére a feltűnőségi térképeken. A rendelkezésre álló maszkok így már a kívánt területek koordinátáit tartalmazták. Az adott területekről azonban nagy mennyiségű információ gyűjtése volt szükséges, hogy a követő algoritmusban felhasználhatóak legyenek ezek az adatok két terület hasonlóságának vizsgálatakor. A kiválasztott foltokat tehát szeparáltam, és megszámoztam őket. Azok a területek számítottak azonos foltnak, amelyek a négy szomszédság elve alapján is összetartozóak voltak, tehát a bennfoglalt pixelek mindegyike érintkezik legalább egy másik pixel oldalával. Az így kialakult területeknek kiszámoltam a fontosabb paramétereit, majd egy olyan struktúrában tároltam őket, amelyben minden megszámozott terület a vektor egy elemeként szerepel, és minden ilyen elemhez tulajdonság mezők tartoznak. Mindezt a Matlab „bwlabel”, és „regionprops” beépített függvényei segítségével. A tulajdonságok közé olyan paramétereket soroltam, amelyek a tracking algoritmus döntési folyamatában indokoltan játszhatnak szerepet. Ilyenek voltak a formára vonatkozó tulajdonságok közül a terület, a vonatkozó pixelek koordinátáinak listája, a folt középpontjának koordinátái, és az orientáció, illetve a feltűnőségi térképek szempontjából jelentős tulajdonságok közül az átlagos feltűnőségi érték, és a vonatkozó pixelek feltűnőségi értékeinek listája. Az utóbbi két tulajdonságtól eltekintve ezeket a paramétereket a „regionprops” függvény a megfelelő hívással automatikusan kiszámítja. A felhasznált struktúrák, és adatok tehát különböznek a pontkövetési algoritmus esetében használtaktól, azonban maga a követési folyamatban csak pár sarkalatos ponton változtattam. A követési folyamat alapvető elve ugyanaz: a foltokat követhető objektumokként értelmezzük. A videó minden újabb képkockájára létrehozzuk azt az adatstruktúrát, amely a legfeltűnőbb területekről szolgáltat adatot, és ehhez hasonlítjuk hozzá az eddig már a követett objektumok közé sorolt foltokat, és azok tulajdonságait. Ha az aktuális foltok közül az egyik kellő mértékben hasonlít egy már követhető objektumként tárolt foltra, akkor azt a foltot a követett objektum mozgásának következő lépéseként 34
35
Figyelmi algoritmusokkal vezérelt helyszínanalízis
értelmezzük. Ennek megfelelően, amikor egy feltűnő terület követhető objektummá válik, természetesen újabb elemekkel egészül ki a tulajdonságok listája. Az objektum állapota, és a becsült következő középpont alapvető fontosságú, ezért ezt minden követett objektumhoz hozzárendeljük. Ezen kívül eltároljuk a követett objektum addigi útvonalának középpontjait is, és azt is, hogy az objektum mióta várakozik (11. ábra). Az állapotok számának és az azok közti átmenetek szempontjából a területkövetés megegyezik a pontkövetéssel. Minden új képkocka elemeit újnak tekintjük, és ha egy követett objektum útjának részeként értelmezhetjük, akkor megerősített állapotba kerül. Ha ez nem történik meg megerősítetlen állapotban marad, majd ha sokáig nem tér vissza megerősített állapotba, akkor elveszettnek tekintjük. A megerősített állapotba kerülés azonban a területkövetés esetén már több paraméter küszöbértékének értékétől függhet. A keresési tartomány sugarának meghatározásán kívül a legtöbb jelentőséggel bíró tulajdonságoknak a terület nagyságbeli eltérését és az átlagos feltűnőségi értékek különbségét választottam, és súlyozással ezek közül is a feltűnőségi értékek eltérésének adtam nagyobb befolyást, azonban ez a felhasználói felületen keresztül változtatható.
9. Ábra A pontszerű követésnél fellépő problémák Balra egy periodikus villogó mozgást tartalmazó videó, jobb oldalt pedig egy ingaszerű mozgást tartalmazó, pontalapú követő algoritmus alkalmazása közben. Piros színnel az aktív track-ek, kékkel a meg nem erősített állapotúak. Látható, hogy a kevésbé egyértelmű mozgás esetén a saliency értékek nagymértékű szórása a követő algoritmus eredményét is bizonytalanná teszi.
35
36
Figyelmi algoritmusokkal vezérelt helyszínanalízis
10. Ábra A feltűnőségi térképre alkalmazott simítás eredménye a kiválasztott legfeltűnőbb területek feltüntetésével. A használt konvolúciós mátrix: [.05 .1 .05; .1 .4 .1; .05 .1 .05]
11. Ábra A területkövetési algoritmusban felhasznált adatstruktúra felépítése
Felhasználói felület Mérések elvégzéséhez és a követő algoritmus paramétereinek finomításához egy felhasználói interfészt is kidolgoztam. A felület legnagyobb részét a videó irányító panel felett elhelyezkedő négy ábrázoló ablak teszi ki. A megjelenítés sora a területkövető algoritmusban szereplő lépések logikai sorrendjét tükrözi. Először az eredeti videó képe, majd az erre kiszámolt kontúrvonalak kétdimenziós rajza látható. Ezt követi a maszk képe, amely a maximális figyelmi értékkel rendelkező területeket fedi le, majd azon területek megjelenítése melyek követett objektumokként szerepelnek a tracking algoritmusban. A megerősített
36
37
Figyelmi algoritmusokkal vezérelt helyszínanalízis
állapotban lévő követett foltok ábrázolásánál az adott objektum előzetesen megtett útvonala is látható. A további részek paraméterek, adatok bevitelére, vagy kiírására szolgálnak. A bal alsó sarokban a bemeneti paraméterek változtathatók, amelyek mind a követési algoritmus foltok hasonlóságát vizsgáló szakaszában játszanak szerepet. Megadható a követett objektumokhoz tartozó keresési tartomány sugara, a területre és átlagos feltűnőségi értékre vonatkozó küszöbérték, ezek súlya, és a track-ek maximális élettartama. Ezen túl változtatni lehet a kontúrvonalak százalékos küszöbértékét, vagyis azt a határt, amellyel a legfeltűnőbb területeket kiválasztjuk. A panel jobb oldalán a videó lefutása során gyűjtött információkból származó statikus és dinamikus adatok, grafikonok láthatók (12. ábra). A felület működése egy videó betöltésével kezdődik. Az „open”, majd „load” gombok alatt értelmezett műveletek futnak le elsőként. A „load” eseményhez tartozik valójában az egész követési folyamat modellezése. Az itt meghívott tracking algoritmusnak az elérési útvonalon szereplő videót, és a beolvasott bemeneti paraméterek kerülnek átadásra. A követő algoritmus a képfolyam minden képkockájára lefut, és bővíti, frissíti a követett területek adatbázisát. Ez az adatbázis ezután képkockáról képkockára eltárolja a track-ek alakulását, és a hozzá kapcsolódó egyéb paramétereket. Külön mezőt definiáltam a feltűnőségi térképeknek, a legfeltűnőbb területek maszkjainak, az összes track-nek, az aktuálisan követett track-eknek, és az aktuálisan követett legfeltűnőbb területek maszkjainak. Ezekre a szétválasztásokra azért van szükség, hogy hatékonyan kezelhessük a különböző jelentőséggel bíró paramétereket. A követett track-ek adatstruktúrájából például egészen más típusú információk számíthatók, mint az összes track vizsgálatakor, és ez igaz a követett, és összes legfeltűnőbb területek maszkjaira is. A két eset külön kezelésével keletkezett paraméterek ugyanis jelentésükben különbözők. Míg az összes figyelembe vett terület vizsgálatakor értelmezett értékek az egész feltűnőségi térképről mutatnak jellegzetességet, addig az aktuálisan követett területek elemzésénél már az objektumok tényleges mozgásának a jellemzőit nyerhetjük ki. A két típus különválasztása továbbá olyan információkat is hordoz, amely egy jól hangolt követés sikerességének vizsgálatakor kerül felszínre. Olyan bemeneti paraméterek mellett, amelyek képesek a közel lineáris mozgások lekövetésére, megfigyelhető ez a követés mennyire alkalmazható egy adott videón. Egy nehezen követhető mozgásokat tartalmazó jelenet felvételén tehát az aktuálisan követett track-ek száma alacsonyabb lesz az egyértelműen elmozduló objektumokat tartalmazó videóknál. Ennek megfelelően a tracking algoritmus két típusú paraméteres vizsgálatánál a helyszínekre ilyen szempontból jellemző információk gyűjthetők. Például egy természeti jelenet feltűnőségi térképén megjelenő mozgások általában nem követhetők egyértelműen, ezért a track-ek többnyire egy helyben maradnak, 37
38
Figyelmi algoritmusokkal vezérelt helyszínanalízis
és sok közülük végig aktuális követett állapotban marad. Ebben az esetben megfigyelt területek azonban, nagyszámú követettségük mellett kis elmozdulásokat közvetítenek, ezért határozottan megkülönböztethetők a mozgásokat sűrűn tartalmazó videóktól, ahol a track-ek alacsonyabb száma nagyobb elmozdulással párosul. A felállított adatstruktúrák tehát funkcionális célokat szolgálnak. Minden ilyen adatstruktúra szerkezete azonban azonos. Minden képkockára egy mezőt tartalmaznak, amelyben további mezőkként szerepelnek a követendő területek. Minden területhez tulajdonságok tartoznak, a tulajdonság nevével és értékével felcímezve. Ezeket az adatstruktúrákat egy olyan függvény tölti fel, amely minden frame-re lefuttatja a követő algoritmust, és minden képkocka után frissíti az adatstruktúrát a követett területek aktuális jellemzői alapján. Az így kapott adathalmazok tehát gyakorlatilag az egész videón végigfutó követési algoritmust eltárolják, és ezekből számolhatók ki a kívánt paraméterek (2. függelék). A „play” gombhoz tartalmazó alkalmazás ennek megfelelően már csak az adatstruktúrák értékein megy végig, és jeleníti meg azokat.
12. Ábra A követési algoritmus felhasználói felülete, az egységek magyarázatával
38
39
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Figyelmi paraméterek előállítása Statikus paraméterek Az általam statikusnak, vagy globálisnak nevezett paraméterek valójában olyan kinyerhető értékeket tartalmaznak, amelyek a videó egyszeri lefuttatásával előállíthatók. Ez azt jelenti, hogy a kifejlesztett követő algoritmus nem minden képkockára vett eredményét vizsgáljuk, hanem az összes képkockára vett követett objektumok tulajdonságából számolunk értékeket. A legegyszerűbb, és legkönnyebben előállítható statikus paraméterek közt a maximumokat kell megemlíteni. Az egész videóra vett feltűnőségi térképek globális maximuma, a képkockánként számított maximumok átlaga, és szórása került be a paraméterek közé. Ezen értékek jelentősége gyakorlatilag magától értetődő, hiszen egy feltűnőségi térképen szereplő maximális érték mindig a reflexszerű figyelmi mechanizmusra ható legerősebb ingert tükrözi. Ennek vizsgálata tehát szükségszerű, azonban magában még nem lenne alkalmazható, annak ellenére sem, hogy néhány esetben már ez a pár paraméter is jelentős különbségeket tud kimutatni a felvételen rögzített szituációról. A maximumokat tartalmazó paraméterek előállítása a követő algoritmus lefutásakor automatikusan megtörténik. A tracking algoritmusnál említett adatszerkezeti struktúrák közül ebben az esetben
a
feltűnőségi
térképek
folyama
használatos
(„salmtx_flow”).
Mivel
az
adatstruktúrában minden képkockára el van tárolva a kissé módosított, követéshez használt feltűnőségi térkép, ezért egy egyszerű maximum kiolvasással elérhetjük a kívánt eredményt 3. Ebből a maximumból átlagot, és szórást számolni a szokásos módon lehetséges. A maximumokkal kapcsolatos értékeket tartalmazó paramétereken kívül további, árnyaltabb információt közvetítő tulajdonságok is helyet kaptak a statikus paraméterek között. A centrális momentumok további három statikus paraméterként jelennek meg. Általános esetben egy „X” valószínűségi változó eloszlásának „n”-edik centrális momentuma a következő képlettel írható le:
µn = E (( X − µ )n ) . Az első centrális momentum ennek
megfelelően minden esetben 0. A másodiknak a varianciát nevezzük, míg a második centrális momentum pozitív négyzetgyökét a szórásnak. A további momentumok is jelentéseket hordoznak, de általában csak a harmadikig bezárólag használatosak. A harmadik centrális momentum az eloszlásfüggvény „ferdeségét” írja le, vagyis egy értéket közvetít arra vonatkozóan, hogy az eloszlás mennyire szimmetrikus. A harmadik momentum negatív értéke balra eltolt, míg pozitív értéke jobbra eltolt eloszlásfüggvényt jelez. A statikus
3
max(max(salmtx_flow(:,:,i)));
39
40
Figyelmi algoritmusokkal vezérelt helyszínanalízis
paraméterek között ez az eloszlásfüggvény a képkockánkénti feltűnőségi térképek maximumainak, mint valószínűségi változónak az eloszlását jelenti. A variancia, a szórás, és a harmadik centrális momentum köbgyökének értékét tároltam el a paraméterek adatszerkezetébe 4. A további statikus paraméterek már kívül esnek a maximumokat elemző értékek jelentésköréből. További hat paraméter foglalkozik a legfeltűnőbb területek aggregált maszkjaival. Az aggregált maszk előállításához a tracking során keletkező maszkokat tároló struktúrákat használtam fel. Ezek a maszkok eredetileg logikaiak, azonban kis átalakítással bináris formára hozhatók. A bináris maszkok egész videóra vett összegzésével áll elő az aggregált maszk. Értékei gyakorlatilag azt jelzik, hogy az egyes pozíciókon hányszor fordult meg egy aktuálisan követett, vagy egy tetszőleges állapotban lévő trackelt terület. A legfeltűnőbb területekből előállított maszkokat mind a csak aktuálisan követetteket, mind az összes lehetségest egy-egy adatstruktúra tárolja a követési algoritmus lefutása közben. Mindkét esetre további három paramétert állítottam elő, és vettem hozzá a statikus paraméterek adatbázisához. A három kiszámított érték közül az első az aggregált maszkok értékeinek összeadása révén jön létre. Ez az érték valójában annak mérőszáma, hogy az alkalmazott követés mennyire volt használható az adott videón. Ha ugyanis kevés trackelhető feltűnő terület jelent csak meg a jelenetben, akkor az aggregált maszk értékei alacsonyabbak lesznek. A másik ehhez hasonló paraméter az aggregált maszkban található nem nulla értékek aránya. Ennek jelentősége abban rejlik, hogy míg az egyszerűen summázott érték csak a követés teljesítményére utal, addig az arányok kiszámításával a követés során bejárt pozíciók területe, lefedettsége meghatározható. Az egyszerű összegzés ugyanis nem tesz különbséget egy kis területen mozgó, vagy várakozó objektum, és egy hosszú pályát leíró mozgást végző objektum között, hiszen azonos trackelt területszám mellett ugyanakkora lesz az összeg. Az összegzésen, és a területarányon kívül mindkét esetben egy harmadik paramétert is bevezettem, amely a lefedett területeken belüli értékek átlagát adja eredményül. Ez a tulajdonság a követési algoritmus során bejárt területek frekvenciáját határozza meg, tehát a követett területek által bejárt pozíciók átlagos látogatottságát. Egy példa mátrix a 13. ábrán látható. 4
PARAMS.static(3)=sqrt(sum(scattersal.^2)/length(scattersal));
%Standard Deviation PARAMS.static(4)=sum(scattersal.^2)/length(scattersal);%Variance PARAMS.static(5)=nthroot(sum(scattersal.^3)/length(scattersal),3); %3rd root of 3rd moment
40
41
Figyelmi algoritmusokkal vezérelt helyszínanalízis
13. Ábra Statikus paramétereket tartalmazó adatstruktúra példa (Részlet. A feltűnőségi értékek centrális momentumai nélkül)
Dinamikus paraméterek A dinamikus paraméterek időben változó értékek sorozatát jelentik. Ebben az esetben olyan tulajdonságok előállítása a cél, amelyek a követő algoritmus lefutása során minden képkockára definiálva vannak. A paraméterek előállítása minden esetben a track adatstruktúra változóiból állíthatók elő, hiszen ebben az adatszerkezetben tároljuk a követett terület aktuális elmozdulását, a megtett út múltbeli állomásait, és a területre vonatkozó tulajdonságokat. A dinamikus paraméterek vizsgálatánál csak az éppen aktuálisan követett track-eket elemezzük, és csak e területek adatait nyerjük ki az összes track-et tartalmazó struktúrából (2. függelék „conf_flow”). Alapvetően két típus különböztethető meg a dinamikus paraméterek között. Az első az egyes követett területek tulajdonságaival foglalkozik, a második pedig az összes követett területek közt fennálló összefüggéseket elemzi. Mindkét típus jelentősége abban rejlik, hogy a feltűnő területek mozgásának karakterisztikáját a lehető legteljesebb módon írjuk le. Az egyes track-ek tulajdonságai nyilvánvaló utalásokat tartalmaznak az egyes mozgások intenzitására, időbeli hosszára vonatkozóan, míg a követett területek között fennálló összefüggésekből nyerhető információk a megjelenő összes mozgás együttesen kifejtett hatásait írják le. Mindkét esetben azonban több track tulajdonságaiból állítunk elő egy értéket, így az első típusnál mindig átlagról, a második típusnál pedig mindig valamilyen összegző tulajdonságról 41
42
Figyelmi algoritmusokkal vezérelt helyszínanalízis
beszélünk. Az egyéni track-ekkel foglalkozó paraméterek között elsőként az átlagos sebesség kiszámított értékét tároltam el. A sebességek kiszámításához a track-ek adatstruktúrásában szereplő „DCentroid” mezőt használtam fel, amely a követett terület előző pozíciójából számolt elmozdulást jelenti. Ennek megfelelően a sebesség az elmozdulás x és y irányú összetevőjének négyzetének gyökeként áll elő 5. A sebességek átlagát ezután a dinamikus paraméterek közt tárolom el 6. A sebességek kiszámításából továbbá a track-ek sebességének átlagos szórása is kinyerhető. Ehhez minden követett területre az átlagos sebességtől vett különbség abszolút értékét számítjuk ki, és átlagoljuk 7. A további átlagolt paraméterek közt a track-ek tulajdonságinál szereplő jellemzőket vettem figyelembe. Ennek megfelelően került a dinamikus paraméterek közé az átlagos élettartam, az átlagos orientáció, átlagos terület, és további paraméterek a feltűnőségi értékek által mutatott jellegzetességekről. Az átlagos élettartam tekintetében a track-eknél szereplő „History”, míg az orientációnál és területnél a „Orientation”, és „Area” mezők képzik a számítás alapját. A paraméter kinyerése hasonlóképpen működik, mint amit az átlagsebességnél, és sebesség szórásánál láttunk 8. A minden trackre vett átlagot a szokásos módon számítjuk ki 9. Az átlagos feltűnőségi értékkel kapcsolatban több paramétert is érdemes, és lehetséges volt kinyerni a track struktúrából, hiszen a feltűnőségi értékek képviselik azt a tulajdonságot, amelyek a figyelmi algoritmusok koncepciójában leginkább szerepet kapnak. Az átlagos feltűnőségi érték, és az egy területhez tartozó pontok feltűnőségi értékei a követett objektumokat leíró struktúrában már helyet kaptak. Ezekből az értékekből az egyszerű átlagon túl további, már említett centrális momentumokat is felvettem az egyes track-ekkel foglalkozó dinamikus paraméterek közé. Az értékek kiszámolása hasonlóan történik, mint az eddig esetekben. A követett területeket tartalmazó struktúra „AvgSal”, és „SalList” mezőinek felhasználásával 10. Az egyes területeken szereplő pontok feltűnőségi értéke csak az átlagtól való szórás előállításánál kerül elő, kiszámítása után azonban mindegyik centrális momentum meghatározásához ezt az
5
speed(i)=sqrt((conf_flow.(ix)(i,1).DCentroid(1))^2+...
(conf_flow.(ix)(i,1).DCentroid(2))^2); 6 7
CONFAVGSPEED(frame)=sum(speed)/length(speed); scspeed(k)=abs(speed(k)-avgspeed); CONFSCSPEED(frame)=sum(scspeed)/length(scspeed);
8
például: hist(i)=length(conf_flow.(ix)(i,1).History(:,1));
9
például: CONFHIST(frame)=sum(hist)/length(hist);
10
confsal(i)=conf_flow.(ix)(i,1).AvgSal; és
CONFAVGSAL(frame)=sum(confsal)/length(confsal);
42
43
Figyelmi algoritmusokkal vezérelt helyszínanalízis
eredményt használjuk
11
. A másodiktól a negyedikig bezárólag, minden követett területre
kiszámolt centrális momentum képkockára vetített átlaga tehát a dinamikus paraméterek track-ekből kiszámítható tulajdonságai közé került. A trackek egymáshoz viszonyított tulajdonságaival olyan paraméterek foglakoznak, amelyek a legfeltűnőbb területek számosságát nem csak, mint átlagképző tényezőt kezelik, hanem a köztük levő összefüggések leírását végzik. A követett területek száma, egymástól mért átlagtávolsága, és elhelyezkedésük jelentik az ilyen jellegű paraméterek alapjait. Az elhelyezkedés, és átlagtávolság gyakorlati szempontból a feltűnő területek mozgása közben megfigyelhető „csomósodás”, vagy „együttmozgás” megfigyelésére alkalmas eszköz, amely az egyes területek mozgásainál mért tulajdonságokon túl egy általánosabb, az egész képre jellemző, az együttes mozgás strukturáltságát leíró paraméterként játszik szerepet. A trackeket tartalmazó adatszerkezetekben, a számosság meghatározásán kívül, ebben az esetben nincsenek közvetlenül felhasználható tulajdonságok, közvetetten azonban a követett track-ek középpontjainak pozíciói felhasználhatók a kívánt paraméterek előállítására. A követett területek számosságának vizsgálata egy egyszerű kiolvasással valósul meg, amely a track-ekek tároló adatszerkezet nagyságát értelmezi. Az eredmény, a konstrukció tulajdonságaiból adódóan, egyenlő lesz a követett track-ek számával 12. Az átlagos távolságok vizsgálatához az egy képkockán szereplő összes követett terület középpontjának távolságát összegezzük, majd a már meghatározott követett track-ek számának segítségével átlagot számolunk13. A mozgó területek pozícióinak vizsgálatához a maszkok területarányát vesszük figyelembe, mind az aktuálisan követett, mind az összes track tekintetében. Ennek megfelelően, ezeknél a tulajdonságoknál a maszkokat tartalmazó, követés során felépített adatszerkezeteket használjuk („mask_flow”, és „confmask_flow”). Mindkét esetben a kiolvasott maszk és az eredeti kép területaránya kerül be a dinamikus paraméterek közé 14. Egy példa mátrix a 14. ábrán látható.
11
salmom(j)=sum(ScatterSal.^momentdegree)/length(ScatterSal); és
SALMOMENT(frame,momentdegree)=sum(salmom)/length(salmom); 12 13 14
CONFNO(frame)=length(conf_flow.(ix)); CONFAVGDIST(frame)=sum(dist)/length(dist); MASKRATIO(frame)=length(find(MaskFlow(:,:,frame)~=0))/ ... numel(MaskFlow(:,:,frame)); és
CONFMASKRATIO(frame)=length(find(ConfMaskFlow(:,:,frame)~=0))/... numel(ConfMaskFlow(:,:,frame));
43
44
Figyelmi algoritmusokkal vezérelt helyszínanalízis
14. Ábra Dinamikus paramétereket leíró adatszerkezet részlete Az alkalmazott paraméterek sorban: 1. Az adott időpillanatban követett területek száma, 2. A követett területek átlagos sebessége, 3. A követett területek sebességének átlagos szórása, 4. A követett területek átlagos élettartama (mióta követjük már), 5. A követett területek átlagos távolsága egymástól, 6. A követett területek átlagos feltűnőségi értéke, 7. A követett területek átlagos orientációja, 8. Az aktuálisan követett legfeltűnőbb területek átlagos területe, 9. Az összes legfeltűnőbb terület átlagos területe, 10. A legfeltűnőbb területek maszkjainak lefedési hányadosa, 11. Az aktuálisan követett legfeltűnőbb területek maszkjainak lefedési hányadosa, 12. A feltűnőségi értékek szórása (második centrális momentum gyöke), 13. A feltűnőségi értékek harmadik centrális momentumának köbgyöke (ferdeség, „skewness”), 14. A feltűnőségi értékek negyedik centrális momentumának negyedik gyöke („kurtosis”)
Osztályok meghatározása A feltűnőségi térképek elemzése, a figyelmi algoritmusok megalkotása, és a követő algoritmusból kinyert paraméterek megfelelő rálátást biztosítanak a felvett jelenetek feltűnőségének viselkedésére. Ennek alapján körvonalazható, hogy a helyszínek, szituációk közül milyen osztályok definiálása lehetséges, és célravezető. A kültér és a beltér megkülönböztetése alapvetően fontos alapja lehet a rendszert használó alkalmazásoknak, és ez a két osztály a feltűnőség vizsgálatával többnyire el is különíthető egymástól. A beltéri jelenetek további osztályozása az otthoni környezet, bolt, bevásárlóközpont, irodák, iskola, és egyéb közterületnek tekinthető beltéri helyszínekre bontható fel a valós példákat alapul véve. A feltűnőségi térképeken ezek a különbségek azonban nagyon ritkán érezhetők. Egy zsúfolt bolt, vagy iroda persze megkülönböztethető a többi beltéri helyszíntől, azonban általános eseteket figyelembe véve ezeknek megkülönböztetése nem lenne hatékony, és a lehetséges alkalmazások szempontjából valószínűleg hasznos sem. A kültéri helyszínek között szintén sok osztály képzelhető el. Alapvetően a városi és a vidéki környezet is jelentősen befolyásolja a feltűnőségi eredményeket, azonban ezek a szempontok nemhogy alkalmazás szempontjából feleslegesek, hanem általánosságban elmondható, hogy az klasszifikálás 44
45
Figyelmi algoritmusokkal vezérelt helyszínanalízis
eredményénél elvárt viselkedés az, hogy városi, és vidéki a környezetek közt osztályozás szempontjából ne legyen különbség. Ettől a problémától eltekintve meghatározhatunk természeti, utcai, közlekedési szituációkat, mint az osztályozás alapját. Funkcionalitás szempontjából nincs nagy szükség ennek a sornak a bővítésére még akkor sem, ha a valóságból kiragadott példák több további lehetőséget is felvethetnének. A rendszer klasszifikációs feladataihoz szükséges osztályok kiválasztásánál tehát alapvetően a funkcionalitás, és a feltűnőségi térképek viselkedéséből adódó kizáró tényezők kapnak jelentősebb
szerepet,
így
az
ismertetett
rendszer
a
következő
helyszínek
megkülönböztetésére képes: beltér, természet, utcai jelenet, és forgalom. Az osztályok közt tapasztalható valóságos eltérések az utcai, és forgalmi jeleneken kívül egyértelműnek tekinthetők. Az utcai és forgalmi jelenetek eltérő kezelését alapvetően a felhasználás szempontjából tekinthetjük hasznosnak. Ezen kívül a feltűnőségi elemzés során tapasztalt eltérő viselkedés is külön osztály bevezetését teszi lehetővé, és kívánja meg.
Helyszínek osztályozása a kinyert paraméterek alapján Felügyelt tanulás A figyelmi függvényekből származó statikus, és a követési algoritmus alkalmazásával előállított statikus, és dinamikus paraméterek nagy mennyiségű információt tartalmaznak a feltűnőségi analízishez. A leginkább felhasználható tulajdonságokat többnyire statikus paraméterek írják le, azonban a mozgások részleteit a dinamikus paraméterek tartalmazzák. Mindkét esetben figyelembe kell venni a paraméterek közti összefüggéseket, és a klasszifikáció lépésében ennek megfelelően változtatni az alkalmazott eljárásokat. A felügyelt tanulás alkalmazásához a háttér tudás a környezetek felülvizsgálását jelenti. A statikus és dinamikus paraméterek mátrixaiban fel kell tüntetni, hogy melyik osztálynak az elemeiként tartjuk őket számon, és egyben milyen eredményt várunk az osztályozó eljárás elvégzése után. Két alapvető eljárás eredményeit mindenképpen szemügyre kell venni a klasszifikáció felállításához. A lineáris diszkrimináns analízis (LDA), és a support vector machine (SVM) eljárások
által
kapott
osztályozás
megadja
az
alapot
a
feltűnőségi
viselkedés
osztályozhatóságának, és a klasszifikáció hatékonyságának elemzéséhez. Az SVM eljárás egy olyan klasszifikációs problémára ad megoldást ahol egy objektumról azt akarjuk eldönteni, hogy egy bizonyos karakterisztikával leírt osztálynak része-e. A gyakorlatban ez azt jelenti, hogy két osztályos klasszifikációt végzünk, és az SVM algoritmus 45
46
Figyelmi algoritmusokkal vezérelt helyszínanalízis
szolgáltatja azt a döntési mechanizmust, amely egy új pontot a két osztály valamelyikéhez rendeli hozzá. Ennek megfelelően a felcímkézett (osztályokhoz hozzárendelt) pontokat
( xi , yi )
alakban írhatjuk fel, ahol
tartalmazó vektor,
y
minden esetben egy
x
vektor a ponthoz, objektumhoz tartozó tulajdonságokat
pedig a címke, vagyis a pont osztálya. Az osztályok elválasztását
d −1
dimenziós hipersík végzi el, ahol
d
a tulajdonságvektor
dimenziószáma. Lineárisan szeparálható eseteket vizsgálva az osztályozás egy
f ( x)
függvénnyel írható le, amely az új pontot pozitív osztályba sorolja, ha a függvényérték pozitív, és negatívba, ha kisebb nullánál. Ennek megfelelően, ha a klasszifikációs eljárás lineáris, akkor
f ( x, w, b) = 〈 w, x〉 + b
alakban írható fel, ahol
w,
és
b
a függvény paraméterei,
〈, 〉
szimbólumok pedig a skaláris szorzásra utalnak. Lineárisan szeparálható adathalmazok esetén azonban sok, a két osztályt elválasztó hipersík létezik. Az SVM eljárásban ezek közül a maximális margót képző klasszifikációt vesszük figyelembe. A margó értéke, szélessége az a távolság, amely a klasszifikáló hipersíkot és a legközelebb eső osztálybeli pontot köti össze (15. ábra). Ennek maximalizálásával kapjuk meg az SVM által előállított lineáris szeparációt. Lineárisan nem szeparálható esetekben a módszert az úgy nevezett „Kernel trükk” segítségével lehet alkalmazni. Ebben az esetben a lineáris klasszifikációnál használt skaláris szorzatot nemlineáris függvényre cseréljük, és az így kapott maximális margóval rendelkező osztályozó hipersíkok a transzformált térben végzik el a klasszifikációt. Több osztályba való besorolás az SVM többszöri használatával lehetséges, majd az eredmények kombinációjaként létrejövő klasszifikáció adja meg a többosztályos eredményt [5]. A figyelmi analízis segítségével kinyert paraméterekre alkalmazva az SVM eljárást a statikus paraméterek osztályokkal felcímkézett adathalmazát használtam. Mivel több osztályos klasszifikációról van szó, ezért minden osztályt a többi osztálytól próbáltam meg elválasztani a „Gaussian radial basis function” kernel függvény használatával. A gaussi
x− x' 2 nemlineáris függvény esetében a klasszikus skalárszorzatokat a k ( x, x ') = exp − 2σ 2 összefüggés váltja fel, és így jön létre a klasszifikáció. Az összeállított adatstruktúrában szereplő tulajdonságvektorok közül párat tesztalanynak választva a klasszifikáció pontossága meghatározható volt. Az eljárást az előállított 11 tulajdonság mindegyikére alkalmaztam, vagyis minden lehetséges tulajdonság párra elemeztem az SVM által adott eredményt. Az eredményekből az a következtetés volt levonható, hogy a tulajdonságok közül néhány sokszor megjelent a legjobb eredményt produkáló klasszifikációknál. Ezért a tulajdonságok csökkentésével (feature selection) kísérleteztem, és ehhez olyan statisztikát állítottam fel a 46
47
Figyelmi algoritmusokkal vezérelt helyszínanalízis
legjobb 3 osztályozás által kiválasztott tulajdonságokról, amelyben a megjelenések számát vizsgáltam (16. ábra). A legtöbbször előforduló dimenziókra, tulajdonságokra ezután minden osztályra lefuttatva az SVM eljárást, az összesített legjobb eredményt kapjuk (17. ábra). A lineáris diszkrimináns analízis esetében a tulajdonságok olyan lineáris kombinációját keressük, amely az osztályokat a legjobban választja el egymástól, és így kapjuk meg a kívánt klasszifikációt. Az eljárás gyakorlatilag egy projekció, amely a tulajdonságvektorok által meghatározott pontokra a legnagyobb szeparálhatóságot mutatja. A szeparálhatóság mérésére a Fisher lineáris diszkrimináns ad megoldást, amit az osztályon belüli szórás (within-class scatter,
SB )
SW ) és az osztályok közötti szórás (between-class scatter,
hányadosaként értelmezünk. Az osztályokon belüli szórás mérésére az osztályhoz
tartozó pontok tulajdonságvektorának átlagtól vett szórását használjuk fel, és ebből írjuk fel az osztályon belüli szórás mátrixát. si2 =
n
∑ ( y − µ ) i
y∈ωi
2
az egy osztályra számolt variancia, és
s12 + s22 = wT SW w a projekció után előálló osztályon belüli szórás. Az osztályok közötti szórás
(
−µ mátrixa a projekció utáni, osztályonként vett átlagokból számítható: µ 1 2
)
2
= wT S B w .
E két mátrix segítségével az ideális projekció a Fisher diszkrimináns segítségével meghatározható,
és
sajátérték
számítással
kinyerhető:
wT S B w −1 = SW ( µ1 − µ2 ) .[6] T w SW w
wopt = arg max w
Az LDA alkalmazásával a figyelmi algoritmusok által meghatározott statikus paraméterek több osztállyal felcímkézett adathalmaza volt szeparálható. Ebben az esetben a tulajdonságok közül kettes és hármas kombinációkat létrehozva két- és háromdimenziós klasszifikációk megvalósítása volt lehetséges. A tanító adathalmaz az összes statikus paramétert és a hozzájuk tartozó osztálybesorolást tartalmazta, így a klasszifikáció helyességét a megjelenítendő sík, vagy tér egyenletesen felosztott pozícióira helyezett tesztpontokkal vizsgáltam (18. és 19. ábra).
47
48
Figyelmi algoritmusokkal vezérelt helyszínanalízis
15. Ábra Az SVM eljárásnál használt, (b,w) paraméterek által meghatározott osztályozó hipersík, és a margó szélessége (γ)
a. táblázat legjobb teljesítmény 2. legjobb
A 3 legjobb teljesítmény
3. legjobb
teljesítmény
teljesítmény
beltér vs többi
6 vs 7
6 vs 8
5 vs 11
természet vs többi
1 vs 3
1 vs 5
2 vs 11
utca vs többi
9 vs 10
9 vs 11
10 vs 11
forgalom vs többi
2 vs 11
2 vs 10
2 vs 9
tulajdonságok (dimenziószám)
b. táblázat 1 2 3
5
6
7
8
9
10
11
előfordulási gyakoriság
2
4
2
2
1
1
3
3
5
2. tulajdonság vs 11. tulajdonság teljesítmény
beltér vs többi 0.71429
1
c. táblázat természet vs utca vs többi többi 0.92857 0.57143
forgalom vs többi 0.61538
szumma 0.70742
16. Ábra a. A legjobb 3 klasszifikációs eredmény által kiválasztott tulajdonságok, a különböző osztályok szerint b. A legjobban teljesítő osztályozások által kiválasztott tulajdonságok előfordulási gyakorisága (2. Tulajdonság: átlagos feltűnőségi érték, 11. Tulajdonság: legfeltűnőbb területek aggregált maszkjának területlefedési hányadosa) c. A legtöbbször előforduló tulajdonságokkal alkalmazott SVM több osztályra egyesített modelljének teljesítménye.
48
49
Figyelmi algoritmusokkal vezérelt helyszínanalízis
17. Ábra A legjobb klasszifikációk vizsgálatánál kiválasztott tulajdonságokra alkalmazott SVM eredménye osztályok szerint lebontva, és egyesítve 49
50
Figyelmi algoritmusokkal vezérelt helyszínanalízis
legjobb teljesítmények
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
tulajdonságok
2,8
3,8
1,8
2,6
2,7
2,11
6,7
5,7
8,9
18. Ábra Az LDA alkalmazásával kapott 9 legjobb klasszifikáció. A jelölt pontok az osztályozás tanítópontjai, a táblázatban látható számok pedig a tulajdonságvektor vonatkozó dimenziói. A minimális hiba mértéke 0.33408
50
51
Figyelmi algoritmusokkal vezérelt helyszínanalízis
19. Ábra A legjobb teljesítményt mutató háromdimenziós LDA klasszifikáció. A tengelyeken a statikus paraméterek alkalmazott tulajdonságainak dimenziószáma látható
Dinamikus paraméterek A
dinamikus
paraméterek
klasszifikációs
teljesítményének
vizsgálatához,
természetükből adódóan, más módszerekre van szükség, mint a statikus paraméterek esetében. Mivel a dinamikus paraméterek között minden képkockára (vizsgálathoz 100 darabra) előállított több tulajdonságról (14 darab) van szó, ezért a klasszikus értelembe vett tulajdonságvektorok nem állíthatók elő. Ennek ellenére a tulajdonságok által alkotott számsorok egymással szemben elemezhetők, és különböző osztályba tartozó videók dinamikus paramétereinek vizsgálatakor klasszifikációs tényezők bizonyos esetekben meghatározhatók. Ennek elemzéséhez egy külön alkalmazást fejlesztettem ki, amiben egy felhasználói felületen keresztül a dinamikus paraméterekben tárolt tulajdonságok kiválaszthatók, és egymással szemben ábrázolhatók, vagyis két dinamikus tulajdonság értékei által meghatározott kétdimenziós képet („plot”) elemeztem. Az alkalmazás mind a négy, eltérő környezetben készült videó dinamikus paramétereinek vizsgálatára alkalmas, mivel négy betölthető videó dinamikus paraméter struktúrájával dolgozik. A jelenteket leíró dinamikus paraméterek megválasztásánál mindig úgy jártam el, hogy a különböző 51
52
Figyelmi algoritmusokkal vezérelt helyszínanalízis
osztályokba sorolt helyszínek közül mindegyik képviseltesse magát. Ez azt jelenti, hogy egy teszt lefutása során az osztályoknak mindig csak egy elemét, vagyis egy-egy videót vizsgáltam, és a klasszifikációs teljesítményt a paramétertér elvi elválaszthatóságában elemeztem. A vizsgálat eredményeként néhány tulajdonságmegfeleltetés során jól megkülönböztethető területekre kerültek a vizsgált videók dinamikus paraméterei. A felhasznált paraméterek közül kiemelkedően diszkriminánsnak számítottak a feltűnőségi értékkel kapcsolatos tulajdonságok, és ezen belül is leginkább a második centrális momentum, de a legfeltűnőbb képrészletek átlagos területe is sok esetben megfelelő eredményt adott (20. ábra).
a.
b.
c.
d.
20. Ábra a: legfeltűnőbb területek átlagos területe vs legfeltűnőbb területek maszkjainak lefedési aránya b: legfeltűnőbb területek átlagos területe vs feltűnőségi értékek szórása c: feltűnőségi értékek szórása vs legfeltűnőbb területek maszkjainak lefedési aránya d: feltűnőségi értékek szórása vs feltűnőségi értékek harmadik centrális momentumának köbgyöke 52
53
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Klasszifikációs teljesítmény A statikus és dinamikus paraméterek klasszifikációs teljesítményéhez tehát az említett kísérleteket végeztem el. Az eredményekből az állapítható meg, hogy a feltűnőség alapú elemzés sok esetben képes különböző helyszínekre, szituációkra jellemző értékeket előállítani, és értelmezni. A helyszínek megkülönböztetésének ez egy nagyon sajátos megközelítését adja, és ennek megfelelően az osztályok szétválasztása a klasszikus eljárások felhasználásával csak viszonylag nagy hibaarányú eredményt ad. Az itt vizsgált osztályok azonban sok esetben már alapvetően is magas korrelációt mutatnak egymással, hiszen a tervezett funkcionalitást előtérbe helyezve olyan elméletileg is nehezen elválasztható osztályok kerültek a klasszifikációs eljárásokba, amelyek a felügyelt tanuláshoz szükséges felcímkézés során is nehézséget okoztak. Egy utcai jelenet elválasztása a forgalmi jelenetektől, például, egy olyan megközelítés eredménye, amelyet már a feltűnőségi értékek vizsgálatából kaptunk. A feltűnőségi térképek viselkedése tehát sok esetben nem a klasszikus osztályozási feladatoknál értelmezett csoportokat részesíti előnyben, hanem a sajátos megközelítés alapján tesz olyan megkülönböztetéseket, amelyek értelme lehet, hogy ilyen megközelítésekkel nem is értelmezhető. Ennek ellenére a klasszifikációs eredményekből kimutatható, hogy a feltűnőségi analízis során eltérő eredményeket produkáló felvételek, és a felvételek helyszín, és szituáció szerinti osztályozása nem áll messze egymástól, vagyis a feltűnőségi elemzés rendkívüli leíró képessége sok esetben a helyszín szerinti osztályozáshoz is elvezet. A statikus paraméterek esetében leírt eredmények jól példázzák ezt a fajta viselkedést. Látható ugyan, hogy a feltűnőségi értékekből nyert paraméterek alapvető viselkedése alapján nem a helyszínek közül kiválasztott osztályok klasszifikálása az a feladat, amire a leginkább érzékeny a feltűnőségi térkép, de a sikeres klasszifikáció azt is megmutatja, hogy a feltűnőségi térképek elemzése, és módosítása során céltudatosan előállított paraméterek képesek az osztályozásra, még ha nem is a legmegbízhatóbb módon. Az SVM eljárás eredményeképpen kapott klasszifikáció alapján az is megállapítható, hogy a paraméterek kinyerése során alkalmazott változatos eljárások közül, még az osztályozás lépéséhez érve is, az átlagos feltűnőségi érték szolgáltatta az egyik legtöbb információt a felvétel helyszínéről. Ez alapján megállapíthatjuk, hogy a feltűnőségi értékek által reprezentált speciális megközelítés is alkalmas a helyszínek, szituációk analíziséhez, még ha nem is egészen az általánosan használt eljárásokkal. A másik releváns tulajdonságként előálló paraméter a legfeltűnőbb területek aggregált maszkjainak lefedettségi aránya volt. A tulajdonság jelentése egyértelműen a jelenetben lévő mozgások jellegzetességeire utal, és a
53
54
Figyelmi algoritmusokkal vezérelt helyszínanalízis
mozgások jelenlétének, és intenzitásának függvényében szolgáltat információt a felvett helyszínről, szituációról. Ennek fényében az sem meglepő, hogy a forgalmi jelenetek az SVM eredményeként nagyobb, és jobban elszeparált területet képviselnek, mint a többi osztály. A másik vizsgált algoritmus, az LDA eredményeképpen kapott klasszifikációknál ez a különbség nem minden esetben szembeötlő, és az eredmény értelmezése is összetettebb. Az osztályozás eredményeképpen kapott felosztása a paramétertérnek sok esetben tartalmaz olyan területeket, ahol több osztály párhuzamosan, és néha összeolvadva képviselteti magát. Ez a jelenség leginkább háromdimenziós esetben követhető jól figyelemmel. Az osztályok szeparációja tehát kissé rendezetlen, azonban alapvető következtetéseket ebben az esetben is levonhatunk. A legjobb klasszifikációt létrehozó tulajdonságok között láthattuk, hogy az átlagos feltűnőségi érték, és a legfeltűnőbb területek maszkjaiból létrehozott aggregált térképen szereplő értékek átlaga szerepelt, és a legjobb eredménnyel rendelkező osztályozások során többször is előfordultak ezek a tulajdonságok. Ez szintén arra a tényre utal, hogy bár a feltűnőségi értékek viselkedése alapján nem a helyszínosztályok azok, amik a figyelmi értékeket nagy értékbeli eltérésekre késztetnék, a kinyert paraméterek által alkotott tulajdonságvektorok mégis képesek a probléma megközelítőleges megoldására. A dinamikus paraméterek egyértelműen a feltűnő területek mozgásainak jellegzetességei segítségével oldják meg a problémát. Az egészen más típusú adatstruktúra más megközelítést kívánt meg, de a kifejlesztett alkalmazás eredményei ebben az esetben is fontos tanulságok levonására adtak lehetőséget. A két leginkább szeparáló tulajdonságként a legfeltűnőbb területek átlagos területét, és a területeken belüli feltűnőségi értékek szórását említettem, míg a legkevésbé elválasztó paraméterként a legfeltűnőbb területek maszkjainak lefedési arányai mutatkoztak. Ezekből a következtetésekből látszik, hogy a statikus, és dinamikus megközelítés komoly különbségeket mutat a klasszifikációs teljesítményben. A feltűnőségi értékek egyszerű átlaga ebben az esetben nem kerül be a legjobb eredményt adó tulajdonságok közé, és a területarányok vizsgálata minden képkockára levetítve nem olyan hasznos, mint a statikus paraméterek esetében. A mozgások kendkívüli jelentősége azonban a dinamikus paraméterek esetében is a különböző helyszíneken felvett jelenetek jól látható elkülönítését eredményezi. A legfeltűnőbb eredményt értelemszerűen a forgalmi jelenetek klasszifikálása adja, a két említett, leginkább diszkrimináns tulajdonság, vagy a feltűnőség második, és harmadik centrális momentumának alkalmazásával létrejövő osztályozás esetében például egyértelműen eltérő középpontú területet töltenek ki a tulajdonság értékek.
54
55
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Eredmények
Összefoglalás Az előállított statikus, és dinamikus adatstruktúrák tulajdonságai, és az alkalmazott klasszifikációs módszerek alapján a kifejlesztett rendszer osztályozási hibája magasnak mondható, azonban az alkalmazott módszerek rámutattak arra a tényre is, hogy a legtöbb esetben a rendszer által alkalmazott feltűnőségi analízis megfelelő információkat szolgáltat helyszínek, szituációk klasszifikálásához. Az osztályok meghatározásánál tett megfontolások alapján a helyszínek megválasztása a feltűnőségi értékek viselkedésének függvényében is történt. Ennek megfelelően a feltűnőségi analízis nem a hagyományos értelemben alkalmazott szituáció osztályokra lett kidolgozva, hanem olyan lényegi különbségeket tartalmazó helyszínekre, amiknek elválasztása a feltűnőségi analízis viselkedése alapján megoldhatónak mutatkozott. Ez a speciális megközelítés, és e mellett a funkcionalitás prioritása olyan egyéni megoldásokat vont maga után, amelyek a hagyományos klasszifikációs eljárások sikerességét csökkentették. A feltűnőségi térképek viselkedése egy olyan rendhagyó analízissel volt csak soron követhető, amely a klasszikus feladatmegoldások során egészen speciális szempontok szerint működött. A feltűnőségi elemzés szempontjából megközelítve a feladatot tehát egy olyan új, és innovatív megoldást választottam, amely a klasszifikációs problémákra nem mindig válaszolt megfelelő eredménnyel, azonban a feltűnőségi értékek ilyen jellegű használatának életképessége nyomon követhető a rendszer működésében. A feltűnőségi analízis sok olyan felfedezhető értékre mutat rá, amely csak ebben az esetben értelmezhető. Ennek megfelelően a helyszínek, szituációk osztályozása is olyan eredményeket hozott, amelyek a feltűnőségi viselkedés egyes mintáit voltak képesek kimutatni. Az elemzett videókon szereplő jelenetek felvételekor a lehető legtöbb szempontot figyelemmel kísérve is voltak olyan szituációk, amelyeket a figyelmi modellezés csak a kinyert paraméterek segítségével volt képes elemezni. A videók feltűnőségi analízisében tehát olyan szempontok is szerepet játszanak, amelyek a hasonló feladatoknál nem fordulnak elő. A figyelem, mint humán viselkedés lemodellezése nem is meglepő módon produkál ilyen eredményt. Az emberi helyszín meghatározási mechanizmus, és szituációelemzés nem csupán a látótérben megfigyelt információk alapján dönt. A figyelmi modellben leírt működés természetesen fontos részét képzi ennek a folyamatnak, de az emlékképek, az agyban tárolt térbeli reprezentáció, és sok más kiegészítő folyamat együttese képes csak képet alkotni a környezet tulajdonságairól. 55
56
Figyelmi algoritmusokkal vezérelt helyszínanalízis
A megvalósított rendszer tehát ezt a működést részlegesen képes modellezni, és értelmezni. Az osztályozás teljesítménye más modellekkel való együttműködés nélkül valószínűleg növelhető, de csak annyira, amennyire maga a feltűnőségi analízis támogatást tud nyújtani ehhez a feladathoz. Ennek a támogatásnak mértékét a jelen munkában bemutatott alapvető klasszifikációs eljárásokban elért részleges siker is jól jellemzi. A helyszínek sok esetben elválaszthatók egymástól, a feltűnőségi analízis során tett megfontolások a feltűnőségi térképeket használható képfeldolgozási eszközzé teszik.
Felhasználhatóság A helyszínek ismerete a gépi megvalósítás összetettsége mellett, az emberi viselkedésnek, és érzékelésnek is fontos részét képzi. Különböző szituációk az emberi reakciókat éppúgy meghatározzák, mint egyéb emocionális, vagy biológiai hatások. Ennek az egyszerű ténynek ismeretében a helyszínanalízis során végzett munka felhasználhatóságának csak az szab határt, hogy a környezet ismerete által tapasztalható emberi viselkedés, vagy reakció mely aspektusát kívánjuk modellezni, vagy felhasználni. A kifejlesztett rendszer az eredeti célkitűzésben foglaltaknak megfelelően a bionikus szemüvegben hasznosítható. A figyelmi analízis projektben betöltött pontos szerepét sokféle megközelítés alapján lehet értelmezni. Az adott szituációkban leginkább ajánlott részfeladatok jelzése a felhasználó felé, vagy veszélyt jelentő intenzív mozgások érzékelése mind olyan feladatok, amelyek a rendszer segítségével létrehozhatók. A végső kimeneti jelek természetesen a funkcionalitást szem előtt tartva széles palettán mozoghatnak, és viselkedésükkel kapcsolatban is több elképzelés valósítható meg. Helyszínanalízisből származó információk alapján egyes részfeladatok prioritásának közlése például változó hosszúságú hangjelek továbbításával képzelhető el. De a prioritás közlésén túl megfelelő felhasználás lehet az is, ha azonos alkalmazás hívószámra, például azonos számkombináció beütésére, az elindított feladatok jellege változik a szituációk függvényében. Felhasználótól független, automatikus alkalmazások elindítására is lehetőséget kínál a helyszínek elemzése. Veszély, vagy figyelmeztető jelek érzékelése esetén például olyan alkalmazások futhatnának le maguktól melyek elemzik a felhasználó veszélyeztetettségének mértékét, választanak a lehetséges beavatkozások közül, és ha szükséges jelt adnak az eseményről. A szituáció felismerésével szemben támasztott követelmények természetesen a felmerülő feladatok mindegyikében eltérőek lehetnek. Veszélyes szituációk megállapítását csak gyors lefutású, 56
57
Figyelmi algoritmusokkal vezérelt helyszínanalízis
valós időben működő rendszerek tudják elvégezni. Ennek megfelelően a helyszínanalízis ilyen jellegű alkalmazására is ezek a feltételek vonatkoznak. A feladatot azonban megkönnyíti, hogy a probléma csupán két osztályos szituációklasszifikációként értelmezhető. Veszély jelenléte, vagy hiánya között kell csak döntenie a rendszernek. Felajánlott alkalmazások, vagy az alkalmazások prioritásának közlése esetén egészen más jellegű követelménynek kell megfelelnie a rendszernek. Ebben az esetben a valós idejű működés nem feltétlenül meghatározó tényező. Otthoni környezetből utcára kilépve például, valószínűleg elegendő, ha a rendszer csak több másodperc után rendezi át az alkalmazások hasznosságát, vagy helyezi őket készenlétbe. A klasszifikációs teljesítmény azonban itt sokkal fontosabb szerepet kap, hiszen a helyszín pontos meghatározása nélkül az alkalmazások ajánlása, vagy automatikus elindítása rendszeres, és zavaró jelenséggé válhat a rossz osztályozás miatt. A helyszínklasszifikációt végző rendszer optimális beállítása esetén tehát sok, és változatos felhasználási lehetőség adódik. A kívánt viselkedés elérése érdekében az osztályozás teljesítményének növelése, vagy a futási idő csökkentése szükséges, de egy jól, és gyorsan működő helyszínanalízist végző rendszer áttekinthető, kényelmes, és könnyen használható eszközök fejlesztését segítheti elő.
57
58
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Köszönetnyilvánítás Köszönet Lázár Annának, hogy rendelkezésemre bocsátotta a Bottom-up vizuális figyelem számítógépes modelljét, és hogy a program működésének, hátterének elsajátításában segített.
58
59
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Hivatkozások [1] Paul Fitzpatrick, „Indoor/outdoor scene classifcation project”, Pattern Recognition and Analysis (MAS 622J), MIT ID 984985527
[2] Falk Schubert, „Szenenklassifikation in Bildsequenzen”, Diplomarbeit im Fach Naturwissenschaftliche Informatik, Angewandte Informatik Technische Fakultat Universitat, Bielefeld, April 2006
[3] Lázár Anna Kinga, „Vizuális figyelem modellezése,” Tézisfüzet a Ph.D disszertációhoz, Multidiszciplináris Műszaki Tudományok Doktori Iskola, Pázmány Péter Katolikus Egyetem Információs Technológiai Kar, Budapest, 2007
[4] Laurent Itti and Christof Koch, „Computational modelling of visual attention”, Neuroscience, Nature reviews, March 2001
[5] Dmitriy Fradkin and Ilya Muchnik, "Support Vector Machines for Classification" DIMACS Series in Discrete Mathematics and Theoretical Computer Science, volume 70
[6] Samson Cheung, „Multimedia Information Systems, Lecture 20: Dimension Reduction I, Feature Extraction” (Based on Dr. Gutierrez-Osuna’s lecture notes), EE 639, Fall 2004
59
60
Figyelmi algoritmusokkal vezérelt helyszínanalízis
Függelék function tracks=din_upd_track(tracks,i,region,j,mode,lostno,FRAME,Salmtx) global STATE; switch mode case 1 %was no possible match in the radius tracks(i,1).State=STATE.UNCONFIRMED; tracks(i,1).Lost=tracks(i,1).Lost+1; tracks(i,1).EstCentroid=[tracks(i,1).Centroid(1)+tracks(i,1).DCentroi d(1) tracks(i,1).Centroid(2)+tracks(i,1).DCentroid(2)]; if tracks(i,1).Centroid(1)+tracks(i,1).DCentroid(1)>176 tracks(i,1).EstCentroid(1)=176; elseif tracks(i,1).Centroid(1)+tracks(i,1).DCentroid(1)<1 tracks(i,1).EstCentroid(1)=1; end if tracks(i,1).Centroid(2)+tracks(i,1).DCentroid(2)>144 tracks(i,1).EstCentroid(2)=144; elseif tracks(i,1).Centroid(2)+tracks(i,1).DCentroid(2)<1 tracks(i,1).EstCentroid(2)=1; end tracks(i,1).History=[tracks(i,1).History; tracks(i,1).EstCentroid(1) tracks(i,1).EstCentroid(2) FRAME ... Salmtx(round(tracks(i,1).EstCentroid(2)), ... round(tracks(i,1).EstCentroid(1)))]; if tracks(i,1).Lost==lostno%should be lost tracks(i,1).State=STATE.LOST; end case 2 %one possible match with proper threshold, simple update tracks(i,1).State=STATE.CONFIRMED; tracks(i,1).Lost=0; tracks(i,1).Area=region(j).Area; tracks(i,1).PixelList=region(j).PixelList; tracks(i,1).SalList=region(j).SalList; tracks(i,1).Orientation=region(j).Orientation;%? tracks(i,1).DCentroid=[region(j).Centroid(1)- ... tracks(i,1).Centroid(1) region(j).Centroid(2)- ... tracks(i,1).Centroid(2)];%[dx dy] tracks(i,1).AvgSal=region(j).AvgSal; tracks(i,1).Centroid=region(j).Centroid;%new centroid tracks(i,1).History=[tracks(i,1).History; tracks(i,1).Centroid(1) ... tracks(i,1).Centroid(2) FRAME region(j).AvgSal]; tracks(i,1).EstCentroid=[tracks(i,1).Centroid(1)+ ... tracks(i,1).DCentroid(1) tracks(i,1).Centroid(2)+ ... tracks(i,1).DCentroid(2)];%[estx esty] end%switch
1. Függelék A követő algoritmus állapot- és tárolt érték frissítő függvénye A függvény a „track” bemenő adatstruktúra „i”-edik elemét frissíti, a „FRAME”-edik képkockán szereplő legfeltűnőbb területek („region”) „j”-edik eleme alapján.
60
61
Figyelmi algoritmusokkal vezérelt helyszínanalízis
ix=['frame' int2str(frame)]; track_flow.(ix)=out_track; % track_flow = % frame1: [..x1 struct] % frame2: [..x1 struct] % frame3: [..x1 struct] % ... conf_flow.(ix)=out_track(find([out_track.State] == 2)); % conf_flow = % frame1: [..x1 struct] % frame2: [..x1 struct] % frame3: [..x1 struct] % ... salmtx_flow(:,:,frame)=out_salmtx; % salmtx_flow <144x176xframe double> mask_flow(:,:,frame)=out_mask; % mask_flow <144x176xframe logical> for i=1:length(conf_flow.(ix)) temp=conf_flow.(ix)(i,1).PixelList(:,:); for h=1:length(temp(:,1)) confmask_flow(temp(h,2),temp(h,1),frame)=true; % confmask_flow <144x176xframe logical> end end
2. Függelék A követő algoritmus képkockánkénti eltárolása a megfelelő adatstruktúrákba „track_flow” tartalmazza az összes tracket, „conf_flow” ezek közül csak az aktuálisan követetteket. A „salmtx_flow”-hoz minden képkockára a feltűnőségi térképet fűzzük hozzá. A „mask_flow” tartalmazza a legfeltűnőbb területek koordinátáit a feltűnőségi térképeken, és a „confmask_flow” ezek közül az aktuálisan követetteket.
61