Budapesti Mőszaki Fıiskola Neumann János Informatikai Kar Szoftvertechnológia Intézet
TUDOMÁNYOS DIÁKKÖRI DOLGOZAT
TRAFMON – TRAFFIC MONITORING FORGALOMFIGYELİ RENDSZER
Szerzı:
Dankovics József István mérnık informatikus szak, IV. évf.
Konzulens:
Vámossy Zoltán fıiskolai docens
Budapest, 2009.
Dankovics József István
Tartalomjegyzék 1. ABSZTRAKT .......................................................................................................................3 2. BEVEZETİ ..........................................................................................................................3 3. LÉTEZİ RENDSZEREK – MEGOLDÁSOK .......................................................................4 3.1. Forgalomfigyelı rendszerek külföldön................................................................................. 4 3.1.1. Houston TranStar AVI Traffic Monitoring System – TransCore .......................... 4 3.1.2. Highway Information Services Division ............................................................... 5 3.1.3. Applied Traffic ...................................................................................................... 5 3.1.4. Austrian Research Centers - Traffic Data Acquisition and Video Surveillance ... 5 3.1.5. Összefoglalás ...................................................................................................... 6 3.2. Forgalomfigyelı rendszerek itthon ...................................................................................... 7 3.2.1. Bevezetı .............................................................................................................. 7 3.2.2. Magyar Közút Kht. ............................................................................................... 7 3.2.3. Köztech Közlekedéstechnikai és Kereskedelmi Zrt............................................. 8 3.2.4. Újbudai dugóhúzó ................................................................................................ 8 3.2.5. UTV.HU – Közlekedési képinformációs portál..................................................... 8 3.2.6. AnaLogic Computers Kft...................................................................................... 9 3.2.7. Összefoglalás .................................................................................................... 10
4. VIDEÓ ALAPÚ FELDOLGOZÁSOK .................................................................................11 4.1. Feldolgozási technikák ...................................................................................................... 11 4.1.1. Modell alapú feldolgozás ................................................................................... 11 4.1.2. Nem modell alapú feldolgozás........................................................................... 11 4.1.3. Észlelési technikák ............................................................................................ 12 4.2 Fontosabb eljárások ........................................................................................................... 12 4.2.1. Dinamikus háttér elıállítása............................................................................... 12 4.2.2. Összefüggı komponensek detektálása............................................................. 15 4.2.3. Objektumok azonosítása ................................................................................... 16 4.2.4. Adatok feldolgozása .......................................................................................... 17
5. RENDSZERTERV ..............................................................................................................19 5.1. Modulok ............................................................................................................................. 19 5.1.1. Input modul ........................................................................................................ 20 5.1.2. GUI modul.......................................................................................................... 20 5.1.3. Process modul ................................................................................................... 21 5.1.4. Database modul................................................................................................. 21 5.2. Fejlesztı eszköz ................................................................................................................ 21
6. A RENDSZER IMPLEMENTÁLÁSA .................................................................................22 6.1. Feldolgozás lépései ........................................................................................................... 23 6.1.1. Videók fogadása, továbbítása ........................................................................... 23 6.1.2. Idızítı használata.............................................................................................. 25 6.1.3. Képkockák feldolgozása .................................................................................... 25 6.1.4. Háttér generálása .............................................................................................. 25 6.1.5. Mozgó objektumok detektálása, követése......................................................... 26 6.1.6. Információk összegyőjtése ................................................................................ 27 6.2. Adatok tárolása, megosztása ............................................................................................ 28 6.3. A rendszer mőködéséhez szükséges beállítások ............................................................. 28 6.3.1. Figyelni kívánt terület meghatározása............................................................... 28 6.3.2. Keresztmetszetek beállítása.............................................................................. 29 6.4. Megjelenítés ...................................................................................................................... 29
7. ELÉRT EREDMÉNYEK .....................................................................................................31 8. FEJLESZTÉSI LEHETİSÉGEK .......................................................................................32 9. HIVATKOZÁSOK...............................................................................................................33 10. MELLÉKLETEK...............................................................................................................35 11. ÁBRA JEGYZÉK .............................................................................................................38 BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
2. oldal
Dankovics József István
1. Absztrakt A dolgozat fő témája egy közúti forgalomfigyelő rendszer bemutatása, mely különböző videó forrásokból a megfelelő beállításokat követően képes az elhaladó forgalom megszámlálására, a járművek osztályozására és átlagsebességének becslésére. A rendszer web kamera által adott élő képeket, tárolt videó állományokat illetve internetes flash videókat játszik és dolgoz fel. A feldolgozás során a bejövő videóból egy speciális algoritmus segítségével legenerálódik a jelenet statikus háttere, amelyet az aktuális képkockával egy abszolút értékes különbségképzés eredményeként a mozgó objektumok lesznek láthatók. A további feldolgozást megelőzően, ha szükséges, a rendszer különböző műveleteket végez az aktuális képen (medián-szűrő, Opening, Gauss szűrő) a pontosabb eredmény elérése céljából. Az így elkészült képeken összefüggő komponens analízis algoritmusával a külön elhelyezkedő objektumokat detektálja a rendszer, és a további feldolgozáshoz készíti elő. Az objektumok követésével a számlálás, osztályozás, sebességmérés az előzetesen beállított paraméterek mellett már automatikusan működik. A háttér dinamikus generálása lehetővé teszi azt, hogy a videón előforduló egyes mozgó dolgok ne okozzanak fals pozitív eredményt (pl.: hó, falevelek). A dolgozat részletesen bemutatja és elemzi a fenti eljárásokat, a megvalósított rendszert.
2. Bevezető A közúti forgalmi dugók súlyos problémákat okoznak nemcsak országunkban, hanem bárhol a világon. Ezt megelőzvén különböző szempontok szerint vizsgálják a kritikus helyszíneket. Ezek a vizsgálatok nagy részben hozzájárulnak a kényelmesebb utazást biztosító infrastrukturális fejlesztéshez, a különböző elvezető utak, körgyűrűk, autópályák elvárásoknak megfelelő megépítésében, azok célszerűségének indoklásában. Vizsgált tulajdonságok lehetnek [1] alapján: - járművezetési szokások - sebességválasztási szokások - forgalmi konfliktusok - csomópontok kapacitása - balesethalmozódási helyek feltérképezése. A videó alapú forgalomfigyelő rendszerek a mai modern világ és a jövő kulcsfontosságú fejlesztései, amelyek jelentősen segítik az emberi beavatkozás nélküli, automatikus forgalmi helyzetek figyelését, elemzését.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
3. oldal
Dankovics József István
3. Létező rendszerek – megoldások 3.1. Forgalomfigyelő rendszerek külföldön 3.1.1. Houston TranStar AVI Traffic Monitoring System – TransCore [4] alapján A rendszer A Houston TranStar Automatic Vehicle Identification (AVI) (Houston TranStar Automatikus Jármű Azonosítás) forgalomfigyelő rendszert arra használják, hogy valós időjű információt gyűjtsön a forgalmas houstoni autópályákról. Az esetleges torlódásokról illetve egyéb információkról a Houston TranStar Centeren keresztül értesül a nyilvánosság akár a weboldaluk ( http://traffic.houstontranstar.org ), akár az autópályákon elhelyezett információs kijelzők által.
3.1.1./1. ábra – AVI Information Data Flow
AVI technológia A rendszer az Amtech Systems Division ( http://www.transcore.com ) által fejlesztett TransCore – Automatic Vehicle Identificationt (AVI) technológiára épül. Houston volt az első város, amely ezt a technológiát alkalmazta a közúti forgalmak valós idejű információ gyűjtésére. Az AVI rendszer olyan AVI antennákon és olvasókon keresztül működik, amelyek az autópályák mentén vannak beszerelve. Ezek figyelik a járművek áthaladását, amelyek egy speciális válaszadó készülékekkel vannak felszerelve – 3.1.1./2. ábra – AVI station transponder tag. Ez a készülék egy minimális fogyasztású elemmel működve a járműre bocsátott jeleket tükrözi vissza, majd a visszatükrözött jeleket dolgozzák fel az olvasók.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
4. oldal
Dankovics József István 3.1.2. Highway Information Services Division SHA Maryland Department of Transportation [5] Feladata az információgyűjtés, feldolgozás, analizálás, összegzés a marylandi országúti forgalomszámlálási adatokról. Magába foglalja az adatok feldolgozását, publikálását web-riportokon keresztül (http://www.marylandroads.com/tmsreports). A Traffic Monitoring Program Marylandben 79 állandó ATR (Automated Traffic Recorders), automatikus forgalomrögzítőt és több mint 3700 rövidtávú (48 órás) számlálást tartalmaz. A 79 ATR-ből 20 arra is képes, hogy a 13 féle járműbesorolási számolásokat hajtson végre [1. számú melléklet]. 3.1.3. Applied Traffic [6] alapján Az 1998-ban alapított Applied Traffic Anglia egyik vezető forgalomfigyeléssel foglalkozó cége. Kínálatukban sokféle forgalmi ellenőrző rendszer és szolgáltatás szerepel, melyek megoldást nyújtanak a különböző egyéni követelményeknek. Megoldásaik elsősorban hardveres technológiákra épülnek, ezek segítségével elemzik a forgalmat. Tapasztalt, kellő tudással rendelkező cég, a 80-as évek közepétől fejlesztik a forgalomfigyelő rendszereiket, új technológiákat, eszközöket alkalmazva: - Számlálók és osztályozók - Forgalomáramlás elemző szoftver - Súlymeghatározás (High-speed wheigh in motion) 3.1.4. Austrian Research Centers - Traffic Data Acquisition and Video Surveillance [7] alapján A bécsi székhelyű osztrák Research Centers csapata az okos, valós időjű Smart Systems fejlesztésének szentelték munkájukat: all-in-one megoldású rendszerként, ICT alapú intelligenciával, melyek az élet számos területén használhatóak. Biztonságot és kényelmet nyújtanak, és lehetővé teszi nyílt rendszerek összekapcsolását. Alapkoncepciójuk a megbízható jel és adatfeldolgozás chipen, beágyazott rendszereken illetve számítógépes rendszereken egyaránt. A Smart Systems elemei Smart Eye TDS – (Traffic Data Sensor) forgalmi érzékelő a járművek tömegének, sebességének meghatározása, járművek osztályozása, sávelfoglalás meghatározása. Nagy sebességű (a válaszidő kevesebb, mint 1 ms) forgalmi érzékelő egy új úti érzékelő, amely egyidejűleg 3.1.4./1. ábra – AVI station BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
5. oldal
Dankovics József István akár 4 forgalmi sávot elemez, miközben forgalmi menedzsmentrendszereknek valós időjű adatokat nyújt: sáv elfoglalás, súly, sebesség, méret, osztály. Ezen adatokat akár soros, akár Etherneten vagy GSM / GPRS kapcsolaton keresztül továbbítja. Smart Eye UCOS – (Universal COunting Sensor) emberek megszámlálása. Új megközelítést képvisel a népszámlálásba, ami újszerű CMOS technológián alapul. Egy intelligens optikai érzékelő, mely egyedülálló belső jellemzői révén térhatású látással bír, s gondoskodik róla, hogy pontos személyszámolást hajtson végre, ami teljesen független bármely környezeti hatásoktól, mint például a rossz fényfeltételektől, árnyékoktól, tárgyaktól, 3.1.4./2. ábra – AVI station hőmérsékletváltozásoktól (3.1.4./2. ábra). Smart Video Surveillance Suite (SVSS) – videók felvétele, kódolása, dekódolása, tárolása. Szabadon konfigurálható rendszer, mely hardver és szoftver komponensek által kódol, dekódol, felvesz, és tárol (MPEG4, H.264). Beépített képanalizálóval is rendelkezik (3.1.4./3. ábra). 3.1.4./3. ábra – AVI station
3.1.5. Összefoglalás
A fent bemutatott technológiák színes tárháza is azt tükrözi, hogy a forgalomfigyelés terén is rengeteg megoldás született, mégis úgy tűnik mindezen technológiák közös hátránya a mobilitás hiánya. Szükséges egy mobil eszköz, mely nem függ a vizsgált jármű felszereltségétől (pl.: transponder tag), nem követeli meg előfeltételnek a vizsgált keresztmetszet beépítését a megfelelő eszközökkel (pl.: hurok módszer), hanem hordozható, könnyen előkészíthető, és ez által gyorsan elvégezhető installálást követően az elvárt méréseket meg lehet oldani. Ez akár megvalósítható legyen egy hordozható számítógép és egy webkamera felhasználásával vagy akár már létező kamerarendszerekre való csatlakozási lehetőségével. Bár minden bizonnyal a fizikai mérőeszközök szolgáltatják a legpontosabb méréseket (pl.: súly, tengelyhossz), ha nem ezek a legfontosabb információk, amelyre szükség van, akkor a videó alapú forgalomfigyelés tökéletes megoldásnak bizonyul.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
6. oldal
Dankovics József István
3.2. Forgalomfigyelő rendszerek itthon 3.2.1. Bevezető [2], [3] alapján A hazai forgalomszámlálás automatizálása a hetvenes évek közepén kezdődött el, azóta jelentős minőségi és mennyiségi változáson ment keresztül. A kezdeti, pneumatikus elven működő gumitömlős automatákat felváltották a darabszámláló, járműosztályozó vagy tengelyterhelés mérő automaták. Forgalomszámláló automatával a számlálóállomások 12 %-án végeznek méréseket. A mérőműszerek egy része fixen telepített mérőberendezésben üzemel, a többségük azonban hordozható műszer, amelyet előre megtervezett mérőkörök alkalmával helyeznek ki a többnyire az útpadkába telepített mérőszekrénybe. Az irodában rögzített kézi és a kiolvasott gépi adatokat ellenőrzés után számítógépes adathordozón vagy e-mailben juttatják el a Magyar Közút Kht. Központjába adatfeldolgozás céljából. Az eredményeket évkönyvekben, adathordozón és a Kht. honlapján jelentetik meg. Az állomásonkénti és járműosztályonkénti éves átlagos napi forgalmakat az Országos Közút Adatbankba is beillesztik. 3.2.2. Magyar Közút Kht. [8] alapján UTFORG – Közúti Forgalmi Információs Rendszer Az ÁKMI Kht. fejlesztése, mely 2000-ben indult a BME informatikai támogatásával − Adatok gyűjtése: M3-as hurokadatok, UTFORG állomások Eszközök [9]: • Miniloop: járműdarab érzékelése elvén működő automata • ADR: járműosztályozó automata, mely a tengelyelrendezés alapján képezik a járműosztályokat • RAKTEL: Mikros Systems által gyártott forgalomszámláló és járműosztályozó automata • HESTIA: Weigh-in-Motion (WIM) dinamikus tengelysúly-mérő berendezés • QLD: Mikrobit által fejlesztett hurokelvű automata − Az adatok konvertálása, feldolgozása és kiértékelése − Mérési eredmények publikálható formára alakítása − Forgalmi információk megjelenítése az Interneten Magyarországon ez volt az első ilyen rendszer (2005) − Világviszonylatban is korszerűnek számít − Online, real-time szolgáltatás − Ötvözi a közlekedési, az informatikai és a távközlési technológiákat BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
7. oldal
Dankovics József István − Heterogén rendszerkomponenseket integrál − Elosztott architektúra − További fejlesztések alapjául szolgálhat 3.2.3. Köztech Közlekedéstechnikai és Kereskedelmi Zrt. [10] alapján A győri székhelyű cég tevékenysége a mozgó- illetve nyugvó forgalom területére is kiterjed, a tervezési és fejlesztési feladatoktól, az eszközök értékesítésén és telepítésén át, egészen a karbantartási és szerviz tevékenységig. Forgalomszámlálásnál használatos eszközök: − Fixen telepített egységek: az útburkolatba vágott detektorhurkok szolgálnak a számlálás eszközéül, melyek megfelelő elhelyezésével járműosztályozási funkció is megvalósítható (3.2.3./1. ábra). − Mobil kiszerelés: radaros elven működő számláló, adattároló. 2 sávban elhaladó járművek adatait képes begyűjteni (sebesség, hossz). A begyűjtött adatok Palm-top segítségével exportálhatók (3.2.3./2. ábra).
3.2.3./1. ábra – Hurkok
3.2.4. Újbudai dugóhúzó [11] alapján 3.2.3./2. ábra – Radar
Újbuda (Budapest, XI. kerület) önkormányzata 2005-ben egy mindenki számára hozzáférhető, nyilvános forgalomfigyelő rendszer kiépítését kezdeményezte, amely segítségével interneten ( www.ujbudaidugohuzo.hu ) keresztül lehet tájékozódni az egyes forgalmas kereszteződések forgalmi helyzetéről. A project a fenti címen nem működik tovább, átkerült Újbuda eredeti weboldalára. ( http://www.ujbuda.hu/forgalomfigyelo.php ) 3.2.5. UTV.HU – Közlekedési képinformációs portál [12] alapján „Az Út Televízió - rövidítve az UTV - célja az érdeklődők kíváncsiságának, tájékozódási igényeinek kielégítése, forgalmas fővárosi csomópontokból. Mozgóképeink alapján a közlekedők megítélhetik és kiválaszthatják a megfelelő útvonalat a városon belül. A rendszer segítségével - egyedülálló módon - vizuálisan tájékozódhatnak a közlekedéssel kapcsolatban.” A kamerák által közvetített videók vizuális információt adnak egyes forgalmi helyekről, amelyek feldolgozását maga az érdeklődő felhasználó végzi, nincs automata, amely a videók adatait valamilyen formában feldolgozná.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
8. oldal
Dankovics József István 3.2.6. AnaLogic Computers Kft. [13], [14] alapján 2000-ben alakult magántulajdonú vállalat, az MTA SZTAKI "spin-off" cége. Célkitűzése a kutatási eredmények gazdasági hasznosítása. Valós időjű, rendkívül nagysebességű, biológiai ihletésű képfeldolgozás Cellular Neural/nonlinear Networks (CNN) technológia alkalmazásával. Egyedülálló, saját fejlesztésű technológiát alkalmaznak a biztonságtechnika és a felügyeleti eszközök területén. Tevékenységük: kutatás, termékfejlesztés, termék eladás, alkalmazásfejlesztés. Kulcs know-how: Szupergyors képfeldolgozás természet motiválta érzékelőszámító eljárások és berendezések segítségével. Videó analízis – Forgalomfigyelés − Járműosztályozás (busz autó vagy motorkerékpár) − Járműszámlálás − Járműkövetés − Sávváltás észlelés (ezáltal szabálysértések ellenőrizhetősége – pl.: buszsáv jogosulatlan használata) Az algoritmusok beépíthetőek a cég által fejlesztett kamerákba, illetve DSP programba vagy a még gyorsabb FPGA IP blokkokba.
3.2.6./1. ábra : az AnaLogic Computers Kft által fejlesztett Traffic Monioring demója
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
9. oldal
Dankovics József István 3.2.7. Összefoglalás Az itthoni rendszerek többsége is egyazon technológiákra épülnek, melyek a vizsgált keresztmetszetek megfelelő kiépítésével járnak. Meg kell jegyezni, hogy ez szintén nem hátrány, mivel így pontos eredményeket kaphatunk, amelyeket videó alapú feldolgozás esetén nem lehet megszerezni (pl.: súly, tengely-hossz). Esett szó igazán frappáns, és modern videó alapú forgalomfigyelési megoldásokról (AnaLogic Computer), amely hardverbe (kamerába) való szoftvert jelent. Ilyen szempontból egy igazán mobil és gyors eszközről van szó. Felmerült a megoldása egy ötletes, de sajnos ez idáig itthoni megvalósításában elmaradt online statisztikai riportnak (UTFORG). Az online statisztikákra – legyen szó forgalmi, üzleti vagy egyéb kimutatásokról – mindig nagy az érdeklődés, sokkal nagyobb az elérhetőségük, mint bármilyen más forrásnak. Az UTV.HU által közölt képek viszont igazán jó kezdőlépésnek számítanak az itthoni forgalomfigyelés szempontjából. Habár még egyelőre csak emberi elemzést segíti elő, a dolgozatban leírt rendszer pont ezt a kínálkozó lehetőséget próbálja meg kihasználni: meglévő forrásokat felhasználó online forgalomfigyelés és statisztika készítés, amelyek akár internetes publikálásra is felhasználhatók.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
10. oldal
Dankovics József István
4. Videó alapú feldolgozások 4.1. Feldolgozási technikák A videó alapú forgalomfigyelés adatfeldolgozásának menete a videóból származó képsorozatok feldolgozásán alapszik. Két módszer ismert: − modell alapú feldolgozás − nem modell alapú feldolgozás 4.1.1. Modell alapú feldolgozás [15] alapján Az analizált képsorozatból – megfelelő képfeldolgozó algoritmusok segítségével – kiszegmentálják a mozgó járműveket (beleértve azok útját és irányát is), melyek alakját összevetik 3D-s modellekkel, így egyértelműen meghatározható a jármű kategóriája. A modell lépései: 1. mozgás szegmentálás 2. modell hipotézis 3. járműmodell felismerés 4.1.1./1. ábra: mozgás szegmentálás 4. objektum felismerés és elhelyezkedés meghatározás 5. árnyékok felismerése 6. mozgás modellkészítés 7. szűrés 8. modell értelmezés 9. osztályozás 4.1.1./2. ábra: 3D modellek; felismert jármű árnyékkal 4.1.2. Nem modell alapú feldolgozás [16] alapján A képsorozatokon felmerülő változások detektálásán és annak feldolgozásán alapuló módszer. A feldolgozás során a konstans hátteret kivonják a képből. Így csak a ténylegesen mozgó objektumok (illetve hibák, zavarok) maradnak a képen. A különböző képfeldolgozó algoritmusok segítségével már könnyen beazonosíthatóak a különböző osztályokba tartozó járművek. A műveleteket az algoritmusok a kép minden sorát és oszlopát végigjárva, pixelenként végzik el.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
11. oldal
Dankovics József István 4.1.3. Észlelési technikák [16] alapján Ablakolás technikája A vizsgált területen belül egyfajta virtuális hurkot – ablakot helyezünk el. Az elhaladó járműveket akkor veszzük számításba, ha e fölött az ablak fölött haladnak el. Ez a megoldás jármű sebességének meghatározására is alkalmazható, ha két ablakot használunk. Az analizált képen két ablakot helyezünk el, a vizsgált terület tetején, 4.1.3./1. ábra: ablakolás technikája illetve alján. Az áthaladó objektum, amikor áthalad a felső (x) ablakon, majd egy kis idő múlva eléri az alsó (y) ablakot, a két pont között eltelt idő segítségével meghatározható a jármű sebessége, természetesen, ha ismert a két pont közötti fizikai távolság értéke. Hátránya hogy a pontosság függ a videó képfrissítésétől. Követés technikája A vizsgált területen belül (ROI) vizsgáljuk az elhaladó járművet. Amint belép egy jármű a területre, azt követjük, és a jármű hosszától illetve a belépési, kilépési pont távolságából, és természetesen az eltelt időtől függően meghatározható a jármű sebessége. A belépési és a kilépési pont közötti terület az SPZ (Speed Profile Zone). A kilépési pont maga a járműdetektáló ablak (VDW – Vehicle Detection Window). 4.1.3./2. ábra: ablakok
4.2 Fontosabb eljárások 4.2.1. Dinamikus háttér előállítása Különbségképzés A különbségképzésen alapuló technika egyik kulcsfontosságú problémája a megfelelő háttér előállítása annak érdekében, hogy a kivonás eredménye a feldolgozás szempontjából megfelelően értékelhető eredményt kapjunk. Létező megoldások közül a legegyszerűbb ilyen megoldás, amikor az aktuális képkockát kivonjuk az előzőből, majd az eredményt egy küszöbértékkel binarizáljuk. Az így kapott bináris képen ténylegesen csak a BMF-NIK, IAR szakirány 2008-2009
4.2.1./1. ábra: Binarizált kép alacsony küszöbértéknél
4.2.1./2. ábra: Binarizált kép magas küszöbértéknél
http://iar.bmfnik.hu/2008_2009/TrafMon
12. oldal
Dankovics József István mozgó objektumok láthatóak, de sajnos a binarizálás miatt vagy túl zajos lesz a kép (alacsony küszöbértéknél – 4.2.1./1. ábra), vagy túl kicsi lesz a mozgó objektum, ami nem a valós képet mutatja (magas küszöbérték – 4.2.1./2. ábra). Átlagképzés Másik megoldás lehet ha nem az egymást követő képkockák különbségét képezzük, hanem megpróbáljuk a hátteret dinamikusan felépíteni, és ezt (a már majdnem a valóssal megegyező) generált hátteret vonjuk ki az aktuális képkockából. Az így kapott eredmény szinte tökéletes annak érdekében, hogy reális képet kapjunk a mozgó objektumokról. Ennek a megvalósításának egyik módszere az átlagképzés. Adott n képkocka átlagát figyelembevéve, a kapott kép a 4.2.1./3. ábrán is jól láthatóan szinte megegyezik az eredetivel.
4.2.1./3. ábra: Átlaggal képzett háttér
Hátránya a módszernek a magas memória igény (n*méret(kép)), és a rengeteg számítás időigénye. Az így felmerülő problémára is létezik egy jó megoldás, amely az átlagképzést nem a sokaság értékeiből számolja ki, hanem az előző átlag és az aktuális értékből képzi az alábbi képlet segítségével: átlag(n)=átlag(n-1) + (sokaság(n) – átlag(n-1)/sokaságSzámossága) A 4.2.1./3. ábrán látható háttér is ilyen módon generálódik, amely elég gyors futási eredménnyel bír. Sajnos azonban ennek a módszernek a hátránya, hogy az eddigi összes képkocka átlagát nézi, és így a hirtelen intenzitásváltozásokra érzékeny, ami az ábrán is jól látható, hogy az aszfalt színe sötétebb lett, a sötétebb járművek miatt. Másik hátránya a módszernek, hogy a hosszabb ideig álló helyzetben lévő járművek beleolvadnak a generált háttérbe, amely fals negatív hibához vezet. Még egy súlyos hátránya van a módszernek, mégpedig az, hogy az átlag a kezdeti képkockáknál áll be egy adott értékre, és a további képkockáknál ez már csak apró eltéréssel módosul, így az első pár (~20-40) képkocka határozza meg BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
13. oldal
Dankovics József István az átlagot. Így például, ha egy éppen álló autó van a képen, amikor kezdődik a videó, akkor az a jármű mindvégig ott marad, amikor a valóságban már rég elment. Ezt ábrázolja a 4.2.1./4. ábra, a bal alsó sarokban jól látható a hiba eredménye.
4.2.1./4. ábra: A kezdeti képkockáktól függő átlagkép
A hiba kiküszöbölhető, ha az átlagértéket nem a tényleges átlagszámítással határozzuk meg, hanem az előző átlag érték 1-α súlyozással és az aktuális érték α súlyozással való összegzésével. átlag(n) = átlag(n-1) * (1-α) + sokaság(n) * α ahol α értéke az átlátszóság mértéke α ∈ R , 0 <= α <= 1 (példámban: α=0.008) Számos irodalom [17] ezt az eljárást „running average” módszernek nevezi. Az így kapott háttér most már ténylegesen dinamikusan frissül, és a kezdeti átlag állandósulás hibája is megszűnt. Sajnos az így kapott eredmény kép sem teljesen tökéletes a már fentebb említett hátrányok miatt. Statisztikán alapuló háttérgenerálás [17], [18] alapján Medián módszer Ez a módszer annyiban tér el az átlagolás módszerétől, hogy az előző képkockák adott pixel értékének mediánját képezi, és ez lesz a generált háttér adott pixelének új értéke. A medián képzése: 1. Sokaság sorba rendezése növekvő sorrendbe 2. n=Sokaság számosságának fele 3. medián = rendezett sokaság n-ik eleme Hátránya ennek a módszernek a tökéletes eredményessége mellett, hogy nagy számítás- és memória igénye miatt real-time rendszerekben nem alkalmazható.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
14. oldal
Dankovics József István Gauss-féle keverési modell Minden intenzitás értéket (színes kép esetén minden pixel R,G,B értékét) K (3 vagy 5) db normális eloszlású függvény keverékeként ábrázol. Annak a valószínűsége, hogy egy adott (X) pixel háttér pixel, a következő képlettel számítható:
ahol η normális eloszlású függvény, melyek paraméterei: aktuális pixel (Xt), átlagérték (μ) és kovarancia (∑i,t), ωi,t súlyozással. 4.2.2. Összefüggő komponensek detektálása Az eredményül kapott képen már ténylegesen a mozgó objektumok látszanak. Ezeket szükség szerint különböző képfeldolgozási algoritmusok (szűrés, opening, closing) felhasználását követően az egyes objektumok azonosítását kell elvégezni. Az objektumok azonosítását megelőzi egy összefüggő komponens-címkézés, amikor is a képen külön álló összefüggő foltok külön régiónként legyenek azonosítva. A 4.2.2./1. ábrán látható példában jól látszanak a külön intenzitással jelölt régiók.
4.2.2./1. ábra: régió címkézés
Connected Component Labeling [19] alapján Az összefüggő foltok címkézése a szomszédos pixelek vizsgálatával történik. A bemeneti képen végigmegyünk az összes pixelen és ahol nem 0 értékű pixelt találunk és még nincs felcímkézve, annak a soron következő címkét adjuk, és végignézzük az összes szomszédját, ahol ugyanígy járunk el, persze találat esetén az aktuális címke értékét veszik fel a szomszédos pixelek is. Mindezt addig csináljuk, amíg a képet végig nem jártuk. Ezt kétféleképpen lehet megvalósítani: - Rekurzívan - Stack használatával
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
15. oldal
Dankovics József István Rekurzív címkézés: Elindulunk az első pixeltől. Ha azon nem 0 érték van és nincs felcímkézve, akkor megnézzük a szomszédjait. A szomszéd ellenőrzés fázisa lesz maga a rekurzív eljárás, ami végig megy az összes szomszédon, ha megfelelnek a kritériumok. Ennek a címkézési eljárásnak a megvalósítása igen könnyű, de sajnos igen erőforrás igényes feladat, így ezt nem alkalmazom. Címkézés stack használatával: Az algoritmus lépései: 1. Inicializálás A kimeneti m x n-es kép inicializálása a következık ha input[x,y]=1 akkor output[x,y]=1 K[x,y]=0 (címkéket tároló kép) 2. l=1, sc=0 // l:címke számláló; sc: stack counter 3. Minden pixelre: ha output[x,y]=1 és K[x,y]=0 méretNövelés(RégióLista,l+1) StackPush(x,y) sc=sc+1 amíg a stack nem üres Pos=StackPop sc=sc-1 SzomszédPixelekEllenörzése: Ha output[pos.x±1,pos.y±1]=1 és K=0 akkor StackPush(pos.x±1, pos.y±1) sc=sc+1 elágazás vége ciklus vége l=l+1 elágazás vége
szerint:
4.2.3. Objektumok azonosítása A felcímkézett komponensek minden egyes képkockánál más-más címkét kaphatnak, mivel újabb komponensek jöhetnek be a képbe, és távozhatnak is a képből. Így a címkék alapján kell tudni beazonosítani az objektumokat. A címkézést követően egy tömbbe szervezve (RegionList) az alábbi tulajdonságok állnak rendelkezésre: - komponens koordinátái (bal felső, jobb alsó, középpont) - komponens méretei (szélessége, magassága) - komponens színe Az objektumok kezelése a következőképpen működik (minden egyes képkockánál): - Meglévő objektumlista (ObjectList – mely a komponens listában leírt tulajdonságokat tárolja) és aktuális komponens lista (RegionList) összehasonlítása, hasonlóak megjelölése mind a két listában. - Objektumlistából kiszedni a meg nem jelölt elemeket (ezeknek már nincs párja, így hát ezek már nincsenek a képen)
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
16. oldal
Dankovics József István -
Komponens listából kimaradt elemek beillesztése az objektumlistába (ezek új objektumok)
A legfontosabb eljárás a hasonlóság vizsgálata. Két objektum (jármű) a videó képen hasonló, ha az alábbi tulajdonságaik (megfelelő küszöbérték alatt) egyezőek: - szélességük - magasságuk - pozíciójuk helyzete (r sugarú körben) - színük - irányuk (nem feltétlenül szükséges) Természetesen figyelembe kell venni, hogy a kamera torzítása és a perspektív látásmód miatt az elhaladó járművek mérete időben változónak tűnik. Így, az ilyen számításnál minden esetben az előző értéket kell figyelembe venni. Ezeket az objektumlista és a komponenslista összehasonlításakor, hasonlóság esetén frissíteni kell. Az objektumok azonosítását bemutató példa a 4.2.3./1. ábrán látható.
4.2.3./1. ábra: Példa objektum azonosításra
4.2.4. Adatok feldolgozása Az elhaladó járművek adatai az objektumlistában szerepelve már könnyedén feldolgozhatóvá válnak. Ha annyi lenne a feladat, hogy az elhaladó járműveket számoljuk meg, a megoldás nem lenne nehéz. A felhasználó által előre megadott keresztmetszeten áthaladó jármű állapota átváltható megszámoltra, és a globális számláló változó értéke inkrementálható is. Mivel azonban a feladat nem csak a megszámlálásra vonatkozik, hanem egy becsült sebességmérésre is, így a feladat komplexitása is megnő. Ugyanis így legalább két metszet szükséges (egy belépési pont, és egy kilépési pont) annak érdekében, hogy az elhaladó jármű sebességét meg lehessen becsülni. Mindezek mellett szükséges a felhasználó által megadott két keresztmetszett közötti távolság hossza is, ami szintén csak becsült érték lehet. Ezek alapján a sebességbecslés is megoldott.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
17. oldal
Dankovics József István
A dolgozat képes lesz a járművek osztályozására is, amely három kategóriát jelent: - 1-es csoport: motor vagy bicikli - 2-es csoport: személygépkocsi - 3-as csoport: személygépkocsinál nagyobb jármű Ezek az osztályok az objektumlistában szereplő adatokból egyszerűen kikövetkeztethetőek a következők szerint: a forgalomban lévő járművek között a legnagyobb számban a személyautók állnak, így az elhaladó járművek méretének átlagát kell figyelembe venni. Ha ennél az átlagnál kisebb méretű az adott objektum, akkor azt az 1-es csoportba, ha a számolt átlagnál nagyobb méretű a jármű, akkor azt a 3-as csoportba kell sorolni.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
18. oldal
Dankovics József István
5. Rendszerterv A rendszer tervezésénél figyelembe vett szempontok: − Egyszerűség: a rendszer egyszerű megvalósítása alatt értendő a modulok tömör, összetett de ugyanakkor átlátható, logikailag megfelelő struktúrájú kiépítése. − Gyorsaság: az elvárásoknak megfelelően a gyors feldolgozás fontos, melyet már a rendszer tervezésekor figyelembe kell venni. − Összefüggés: a rendszernek egységet kell képeznie a feladat megoldásakor, s különálló modulokból kell állnia a különböző részfeladatok megoldásakor, melyeknek ésszerű logikai kapcsolatokból kell összefüggő egységet képeznie. − Mobilitás: az egyes modulokat úgy kell kialakítani, hogy azok az esetleges további fejlesztésekkor vagy javításokkor különálló részként cserélhetőek illetve egyszerűen függőségek nélkül módosíthatóak legyenek.
5.1. Modulok − Input: input videó feldolgozásáért, képkockák továbbításáért felelős egység − GUI: Graphics User Interface; felhasználói vezérlésért, és megjelenítésért felelős egység − Process: képfeldolgozó egység − Adatbázis: feldolgozott adatok kezeléséért, tárolásáért felelıs egység
5.1./1. ábra: A rendszer moduljai
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
19. oldal
Dankovics József István A valós világból bejövő forrást jelölnek az 5.1./1. ábrán látható piros nyilak (videó, felhasználói vezérlés). A megvalósítandó modulok közötti kommunikációk útját jelölik a zöld irányvonalak. Az irányvonalak osztályok közötti adatkapcsolatot jelölnek. Ezek lehetnek képek, adatok, utasítások. A rendszer által generált kimenetek lehetnek maguk a bemeneti videók, azok feldolgozott másai, illetve az adatbázis által generált adatfájl(ok). 5.1.1. Input modul Az Input modul (5.1.1./1. ábra) magába foglalja a különböző forrásokból érkező videók elő feldolgozását. Azért felelős, hogy a bemeneti videót szükséges beállításoknak megfelelően képkockánként továbbítsa a következő (Process) modulnak. A források lehetnek: − Stream (Flash videó) (TFlashContainer osztály által) − Kamera (OpenCV által) − File (OpenCV által) Szükséges beállítások lehetnek: − átméretezés (ha a forrás videó felbontása nagyobb 320x240-nél) − képfrissítés értéke (videótól függően: 30,25,15 fps)
5.1.1./1. ábra: Input modul
5.1.2. GUI modul Graphics User Interface – Grafikus Felhasználói Felület (5.1.2./1. ábra). A megjelenítésekért, vezérlésekért és beállításokért felelős modul. A modulok között ennek a modulnak van a legtöbb feladata: a felhasználói vezérlésért és a megjelenítésért felel. Ezt a MainForm (TForm) osztály valósítja meg. A rendszer működését tekintve ez lesz a gépezet motorja.
5.1.2./1. ábra: GUI modul felépítése
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
20. oldal
Dankovics József István 5.1.3. Process modul A képfeldolgozó egység, a rendszer lényegi részét tartalmazza (5.1.3./1. ábra): a forgalomfigyelési technikák, algoritmusok megvalósításáért felel.
5.1.3./1. ábra: Process modul felépítése
5.1.4. Database modul A TDatabase osztály (5.1.4./1. ábra) feladata a bejövő adatok fizikai tárolásának megvalósítása. Tárolási formátumot tekintve a következő típusokra lesz lehetőség exportálni: − CSV − XML A fent említett formátumokra esett a döntés azért, mert bármilyen adatbázis kezelő rendszerbe egyszerű importálni az említett formátumokat, így az esetleges további feldolgozás lehetősége adott. Másik megvalósítási lehetőség lenne, ha egy már meglévő (pl.: MS SQL) adatbázis rendszerben tárolnánk az adatokat, de a kiértékelendő adatok mennyisége nem teszi szükségessé a külön adatbázisrendszerbe való tárolást. A TDatabase osztály megvalósításakor a figyelembe lesz véve az esetleges webes megosztás, illetve a riportok készítésének lehetősége is.
5.1.4./1. ábra: Database modul
5.2. Fejlesztő eszköz A rendszer Delphi 7 fejlesztő eszköz segítségével íródik, Windows XP operációs rendszer alatt. Azért esett a Delphi-re választás, mert teljes mértékben támogatja az Objektum Orientált Programozást, és igen egyszerű benne Windows alkalmazásokat fejleszteni. A másik fontos indok, hogy támogatja a direkt memóriakezelést, és az assembly betéteket, amelyek a rendszer optimalizálásánál igen fontos szempontok. Nem utolsó sorban a legfontosabb szempont, hogy a több éves tapasztalat mellett lehetőség van saját fejlesztésű komponensekkel a rendszer megjelenését is szebbé, nem átlagos Windows alkalmazássá varázsolni.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
21. oldal
Dankovics József István
6. A rendszer implementálása A rendszer nem modell alapú, ablakolás technikára épül, ahol a felhasználó által kijelölhető régión belüli objektumkövetésen alapszik a járművek detektálása. Az érdekelt régió (maszk) beállítása a felhasználóra hárul, mivel számos elfekvésű videóról lehet szó. Ez a maszk határozza meg, hogy a videó képen mely részek az érdekesek, hogy hol vegye figyelembe a rendszer az elhaladó járműveket. A sebesség meghatározásához két keresztmetszet (vonal) szükséges, amelyet szintén a felhasználó állíthat be. A beállított maszkot, illetve a keresztmetszetet a 6./1. ábra szemlélteti:
6./1. ábra: Maszk és keresztmetszet beállításának szemléltetése
A kék vonallal jelölt keresztmetszet jelenti a belépési pontot, és a piros vonallal jelölt keresztmetszet jelenti a kilépési pontot. A felhasználó feladata lesz az is, hogy egy becsült értéket adjon meg a két keresztmetszet közötti távolságra. A rendszer így már meg tudja majd határozni a járművek sebességét. A rendszer működését tekintve fontos megjegyezni, hogy a fent említett modulok néhány esetben csak logikailag különülnek el egymástól a megfelelő megvalósítás érdekében. A 6.1./1. ábra bemutatja az egyes modulok logikai kapcsolatát.
6.1./1. ábra: A rendszer működésének logikai kapcsolata
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
22. oldal
Dankovics József István Az alkalmazás tényleges megvalósításakor az alábbi modulok a MainForm osztály részét képezik (de a modulok elválaszthatóak funkcionalitás szempontjából): - Input modul • FlashContainer – TFlashContainer osztály egyede - Process modul • PC (TPixClass osztály egyede) • CPC (TColorPixClass osztály egyede) A rendszer tervezésénél fontos szempont a fent említett logikai kapcsolatokat megfelelően megvalósító osztályok kialakítása, amely a 6.1./2. ábrán látható.
6.1./2. ábra: A rendszer osztálydiagramja
6.1. Feldolgozás lépései 6.1.1. Videók fogadása, továbbítása A feldolgozandó videók lehetnek: − Digitális kamera képei − Számítógépen tárolt videók − Internetes flash stream (UTV.HU által közölt flash videók vagy egyéb)
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
23. oldal
Dankovics József István A digitális kamera képeit, illetve a tárolt videó állományok lejátszását az OpenCV 1.1 végzi. A képek az OpenCV által használatos IPLImage formátumban érkeznek, melyet a TPixClass osztály szürkeárnyalatos képekre konvertál. A rendszer az alábbi lépésekben kezeli a videókat (File; Kamera; Stream): 1. Inicializálás – Erőforrások lefoglalása (videó típusától függően – minden esetben) 2. Soron következő képkocka lekérdezése 3. Feldolgozás 4. 2-es pont ismétlése, amíg nincs vége a videónak (vezérléstől függően – ha van ismétlés funkció és a videó ismételhető) 5. Erőforrások felszabadítása Flash stream-ek kezelése A flash stream feldolgozása a Shockwave FlashPlayer 10a ActiveX komponens segítségével valósul meg, amely Bitmap képre rajzolja ki az aktuális képkockát. Fontos megjegyezni, hogy az alkalmazás úgy lett megírva, hogy a futtató számítógépen nem szükséges telepítve lennie a Shockwave FlashPlayer-nek, mivel az alkalmazáshoz elegendő a Flash10a.ocx, amelyet a program az inicializálás fázisában regisztrál (RegisterOCX), majd az alkalmazás befejeztével kiléptet (UnRegisterOCX). TPixClass osztály (A fontosabb eljárások listája a 2-es számú mellékletben) A szürkeárnyalatos képek tárolását, és a képeken végrehajtható műveleteket a TPixClass osztály végzi. Az osztály fontos tulajdonsága, hogy tömbökben tárolja a szürkeárnyalatos képeket, amelyekre az indexük alapján hivatkozhatunk. Egy képet az alábbi típusú objektumokról másolhatunk: - TImage - TBitmap - TIPLImage A színes képek tárolását, és a képeken végrehajtható műveleteket a TColorPixClass osztály végzi. Az osztály a megvalósítását tekintve megegyezik a TPixClass osztállyal, csak itt a képek RGB értékeivel vannak tárolva. A beérkezett képeken elő feldolgozásként egy méretkorlátozás valósul meg. Bármilyen felbontású bemeneti videó esetén a megjelenített videó mérete 320x200, viszont a feldolgozásra szánt videó 160x120-as felbontású lesz a sebesség növelése érdekében. Ez a felbontás bőven elég arra, hogy a videókon szereplő objektumok (járművek) detektálhatóak legyenek.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
24. oldal
Dankovics József István 6.1.2. Időzítő használata Egy videó feldolgozó alkalmazás esetében fontos szempont, hogy a videók megjelenítése adott időközönkénti képfrissítést jelent, amelyhez 6.1.2./1. ábra: A rendszer időbeli működése a szálak tekintetében elengedhetetlenül szükséges legalább egy külön szálon működő időzítő. Ezt mutatja be a 6.1.2./1. ábra. A felhasznált időzítő (Timer), amely a MainForm osztály tagja, egy szál (TThread) osztály leszármazottjaként előre beállított időközönként lefuttat egy előzőleg definiált eljárást a MainForm osztályon belül (OnTimer). A futtatás Windows Message (WM_MOVEGAME) kiküldésével aktivizálódik. Az ábrán látható módon a szál akkor indul el, ha a videó elindításra kerül, illetve akkor kerül befejezésre, ha a videó lejátszása megáll. Szünet esetében a szál állapota is szünet (suspend). 6.1.3. Képkockák feldolgozása Az időzítő által meghívott eljárás (OnTimer) képezi a rendszer mozgatórugóját, ebben az eljárásban valósul meg minden, ami egyetlen képkocka feldolgozását hivatott szolgálni. A 6.1.3./1. ábra ennek az eljárásnak a lépéseit szemlélteti. A színes másolat a megjelenítést szolgálja, ez az ábrán is jól látszik, a feldolgozás a legtöbb esetben szürkeárnyalatos képeken történik. Ez alól a tulajdonságok meghatározásánál számító komponens vagy objektum színe képez kivételt. 6.1.3./1. ábra: Egy képkocka feldolgozásának menete
6.1.4. Háttér generálása
A mozgó objektumok kinyerését egy egyszerű kivonás műveletével elvégezhetjük, amikor is az aktuális képkocka és a háttérkép abszolút értékes különbségét képezzük. Az így kapott eredményt egy binarizálás művelettel a mozgó objektumokat kapjuk eredményül ideális esetben. Valós esetben azonban a különbség kép eredménye zajos, amelynek számos oka lehet: videó tömörítés eredménye; egyéb mozgások (falevél; hó; eső). A kisebb pixel hibák kiküszöbölésére különböző szűrők alkalmazása elegendő, de sajnos előfordulhat, hogy a kapott kép még a szűrések ellenére sem elfogadható.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
25. oldal
Dankovics József István A rendszer a 4.2.1. pontban leírt megoldásokból az alábbi háttérgeneráló eljárásokat támogatja: - Átlagolás (running average) - Medián - Gauss keverési modell (MoG) – OpenCV segítségével Átlagolás: TPixClass osztályon belül procedure DynamicBacground(pix_act,bgr:integer;alfa:real); pix_act : az aktuális képkocka indexe bgr : a kimeneti háttér kép indexe alfa : átlátszóság érték (0 <= alfa <= 1)
Medián: TPixClass osztályon belül (még nincs implementálva) Gauss keverési modell: OpenCV által Első képkockánál (inicializálás): bgsm:=cvCreateGaussianBGModel(frame ,gsmp); bgsm : PCvBGStatModel // OpenCV háttér modell típus frame: PIplImage //OpenCV kép típus gsmp : PCvGaussBGStatModelParams // OpenCV paraméter típus
Többi képkockánál: cvUpdateBGStatModel(frame,bgsm); bgsm.Background : a generált háttér // PIplImage
Befejezésnél: cvReleaseBGStatModel(bgsm2); bgsm2 : bgsm-re mutató Pointer
A rendszer fontos jellemzője, hogy a fent említett háttér generáló algoritmusok mindegyikét fel lehet használni, így a felhasználó választására van bízva, hogy melyik algoritmus fogja azt elkészíteni. A választási lehetőség nem kérdéses, hiszen az algoritmusok bonyolultságuktól függően lassítják a rendszert, és nem minden videó esetében fontos a legbonyolultabb és legjobb minőségű eredményt produkálni a járművek sikeres detektálásának érdekében. 6.1.5. Mozgó objektumok detektálása, követése A rendszer a 4.2.2. pontban leírtak szerint címkézi a különálló régiókat, amelyeket egy TRegionArray dinamikus tömbben tárolja. A tömb elemei TRegion rekordok. TRegion = Record TopLeft : TPoint; BottomRight : TPoint; Center : TPoint; Width : Integer; Height : Integer; End;
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
26. oldal
Dankovics József István A TPixClass osztály RegionsToObjects metódusa hajtja végre a komponens lista (RegionList – RL – a TPixClass osztály tagja) és az objektumlista (ObjektumLista – OL – a program MainForm tagja) közötti konverziót, vagyis az egyezőségi ellenőrzést, a TObjectList osztályon keresztül. A különbségképzést követően a program a CCA_Stack utasítással végzi a komponensek címkézését. Az objektumok és a komponensek vizsgálatát a RegionsToObjects eljárás végzi. 6.1.6. Információk összegyűjtése Az objektumlistában az aktuális képen látható járművek adatai vannak. Ezek feldolgozása abban az esetben lehetséges, ha azok a vizsgált keresztmetszeten áthaladtak. A keresztmetszetet (ahogyan az a 6./1. ábra szemlélteti) a felhasználó állíthatja be. Minden járműre vonatkozólag a belépési pontot jelölő (kék) vonal elhagyásakor az objektumlistában egy állapotváltozó értéke Belépve állapotra változik. A kilépési pont elhagyásakor ez a változó vissza áll az eredeti állapotára, a Kilépve állapotra. Ezen állapotváltozáskor a megfelelő belépési és kilépési pozíciók is tárolódnak. Az így kapott távolság és az előre megadott fizikai távolság arányát és az eltelt időt (ami a videó képfrissítési értékéből és az eltelt képkockákból számolható vagy Windows API által használható óra segítségével) figyelembe véve a jármű sebessége megbecsülhető. A járművek méretét a felhasználó által előre meghatározott keresztmetszetnél (belépési vagy kilépési) kell figyelembe venni, így a méretek arányából a 4.2.4-es pontban leírtak szerint osztályozhatóak a járművek. A módszert tekintve nem számít a beállítás, hogy melyik keresztmetszetnél legyen a méret meghatározása, de lehetnek olyan videók, ahol ez szükséges, így ezt is be lehet állítani. A különböző statisztikai adatokat ezek után a MainForm tagjaként egy rekordban lehet tárolni az alábbiak szerint: TStatisztika = record OsszesJarmu : Integer; Csoportok : Array[1..3] of Integer; //Csoportok számossága AtlagSebesseg : Real; End;
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
27. oldal
Dankovics József István
6.2. Adatok tárolása, megosztása A tárolandó adatokat a TDatabase osztály kezeli, az alábbi lehetőségekkel: - Fizikai tárolás - Exportálás (XML; CSV) - Kimutatás készítése HTML-be (tervezett) - Feltöltés web-szerverre INDY segítségével (tervezett) A tárolandó adatok forgalmi helyenként különbözőek, így ezek tárolása az alábbi struktúra szerint történik: TAdatok = record; HelyszinAzonosito : Integer; //pl.: UTV.HU-s források esetén a lista itemindex értéke, //egyébként 0 Helyszin : String; Statisztika : TStatisztika; End;
6.3. A rendszer működéséhez szükséges beállítások A dolgozat célja egy emberi beavatkozás nélküli automatikus forgalomfigyelő rendszer megvalósítása, de mivel a videók forrásai különbözőek lehetnek és ezáltal a figyelni kívánt terület elhelyezkedése is változó lehet (nem csak a szokványos függőleges irányú útvizsgálat), így számos beállítás szükséges a megfelelő eredmény elérése céljából. Ezek a következők: - Figyelni kívánt terület meghatározása (maszk) - Keresztmetszetek beállítása (belépési és kilépési vonalak) - Keresztmetszet fizikai távolsága A program megfelelő működéséhez a fenti beállítások elengedhetetlenek, de adott több opcionális választási lehetőség is: - Háttérgeneráló algoritmus (Alap esetben: Átlagoló) - Kilépési vagy Belépési pontnál legyen a méret ellenőrzése (Alap esetben: Kilépési) 6.3.1. Figyelni kívánt terület meghatározása A maszk beállítása egy TBitmap objektumon keresztül történik, a TPixClass osztály eljárásain keresztül megvalósítva. A beállítása menete a következő: 1. Maszkot meghatározó pontok elhelyezése (bal egér gombbal) a képen, ahol látszik az éppen aktuális videó képkockája. Jobb egér gomb megnyomása esetén törlődnek az eddig lerakott pontok. 2. 1-es pont folytatása addig, amíg egy adott r sugarú (példámban 5 px) körön belül a legelsőnek lerakott pontra kattintunk.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
28. oldal
Dankovics József István 3.
Az elkészült maszk megjelenik egy másik TBitmap objektumon, ahol lehetőség van: - az elkészült maszk invertálására - az elkészült maszk elmentésére (ami annyit jelent, hogy a TPixClass osztályban ez privát tagként kerül lementésre a további felhasználás érdekében)
6.3.2. Keresztmetszetek beállítása A Belépési és Kilépési keresztmetszetek beállítása a maszk szerkesztéséhez hasonló módon a TPixClass osztály fogja végezni az alábbiak szerint. 1. Be kell állítani a Belépési vonal két pontját. 2. Be kell állítani egy pontot, amelyen keresztül fog menni egy Belépési vonallal párhuzamos másik egyenes → ez lesz a Kilépési vonal. 3. Itt is lehetőség lesz a keresztmetszetek felcserélésére, azaz, hogy melyik jelentse a Belépési, illetve a Kilépési vonalat.
6.4. Megjelenítés Az Input videó megjelenítése egy ideiglenes TBitmap objektumra történik, az alábbiak szerint: - OpenCV esetén: következő képkocka átmásolása az ideiglenes Bitmap-re - Flash esetén: a következő képkocka kirajzolása az ideiglenes Bitmap-re Majd az ideiglenes Bitmap tartalma kirajzolásra kerül az eredeti videót megjelenítő OriginalImage TImage objektumra. Pontosabban az OriginalImage Bitmap-je az X Bitmap memóriacímére mutat. OriginalImage.Picture.Bitmap.Assign(X);
A következő lépésekben a TPixClass osztály számára elérhetővé kell tenni az aktuális képkockát. Ezt a pix változó fogja tárolni. Színes kép esetében: CPC.setPixFromImage(cPix,OriginalImage);//ColorPix
Szürkeárnyalatos kép esetében: PC.setPixFromImage(oix,OriginalImage);//ColorPix
A tesztelési fázisban nagy szükség van arra, hogy egyes képfeldolgozó műveleteket követően a képek aktuális állapota követhető legyen. A formra kihelyezett rengeteg azonos felbontású TImage nagyon sok helyet foglalna, így jött az ötlet, hogy egy TBitmap-re legyen kirajzolva minden. Ezt a TPixClass (és TColorPixClass) osztály alábbi eljárása teszi lehetővé: CPC.DrawPixImageWND(pix,0,0,160,120,OutputImage,0,240);
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
29. oldal
Dankovics József István A pix képnek a 0,0 bal felső sarkától a 160,120 jobb alsó sarkáig terjedő részt másolja át az OutputImage TImage objektum TBitmap-re, annak a 0,240 bal felső sarkának koordinátájára. Ezzel a megoldással egy Bitmap-re több kis képet is ki lehet rajzolni (6.4./1. ábra), és a program is sokkal gyorsabb feldolgozást eredményez.
6.4./1. ábra: Több kép egy Bitmap-re való kirajzolása
A programnak a feldolgozásokat követően ki kell jeleznie az elhaladó objektumokat, amelyek kirajzolása a fentebb leírtakhoz hasonlóan történik, a TPixClass osztály DrawObjectsToBitmap eljárása által (6.4./2. ábra).
6.4./2. ábra: Objektum keret kirajzolása
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
30. oldal
Dankovics József István
7. Elért eredmények Az eddig implementált rendszer a kisebb hibákat leszámítva (fals pozitív járműazonosítás a komponens lista és a meglévő objektumok összehasonlításánál), a vártnak megfelelően működik. A megvalósított algoritmusok képezik a rendszer legfontosabb és egyben legbonyolultabb részeit, így a fejlesztés eredményessége megfelelőnek mondható. Az alábbi lista összefoglalja a már működő részeket: - Maszk szerkesztés - Képfeldolgozó eljárások • Szűrők: átlagoló, medián • Morfológiai szűrők: erózió (vékonyítás), dilatáció (hízlalás) • Additív műveletek: összeadás, kivonás • Élkereső algoritmusok: Sobel • Egyéb műveletek: invertálás, binarizálás - Videók fogadása (webkamera, flash, file) - Dinamikus háttérgenerálás (átlagolás, Gauss keverése modell) - Komponens címkézés - Objektumok azonosítása A rendszer a vártnak megfelelően gyors, bár érzékelhető sebességbeli különbség van a 320x240-es és a 160x120-as felbontású videók feldolgozása között, amit az alábbi kis táblázat jól prezentál: Egy képkocka feldolgozási idejének összehasonlítása különböző felbontásokon: Felbontás 100 db képka feldolgozási idejének átlaga 320x240 56 ms 160x120 21 ms A mérés eredménye azonos videó állomány feldolgozása mellett (forrás: file), azonos beállításokkal (binarizálás küszöbértéke, háttérgeneráló algoritmus: átlagoló) történt az alábbi hardveren: Intel Celeron 2,66 GHz CPU, 512 MB RAM. Flash videók kezelése esetén a rendszer futási ideje egyenesen arányos az internetes sávszélesség sebességével, vagyis a minél gyorsabb internet kapcsolat ajánlott a gyorsaság érdekében. A feldolgozási időt tekintve azonban az eredmények nem különböznek, így a megfelelő sávszélességű internetes flash videó lejátszása esetén is ugyanaz a feldolgozási idő lesz az eredmény, mint egy tárolt állomány vagy egy webkamera esetében.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
31. oldal
Dankovics József István
8. Fejlesztési lehetőségek Az implementálásánál a legbonyolultabb részfeladatok határozták meg a rendszer megvalósításának prioritását, így a további fejlesztésre váró részfeladatok az eddig elért eredményeket tekintve nem bonyolult elvárások: -
Bemeneti videók átméretezése
-
Hisztogram alapú binarizálás
-
Maszk kezelés beleintegrálása a TPixClass osztály egyes eljárásaiba
-
Megvalósításra vár még a háttérgenerálásnál bemutatott medián eljárás implementálása
-
A TPixClass osztály átlagoló szűrőnél gyorsabb, és szebb eredményt produkáló Gauss szűrő elkészítése
-
A keresztmetszetek beállítását megvalósító eljárások, függvények
-
Keresztmetszeteken áthaladó járművek vizsgálatának eljárása
-
Járművek tulajdonságai közül a járművek színének meghatározása
-
A TDatabase osztály létrehozása
-
A hatékonyságot növelő assembly betétek elhelyezése a nagyobb számításigénnyel rendelkező algoritmusokba
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
32. oldal
Dankovics József István
9. Hivatkozások 1
KTI elemzése. Forrás: www.kti.hu/downloads/kutatas/forgalmifolyamatok.doc Látogatás ideje: 2008.10.29
2
Magyar Közút Kht. – A közúti forgalom figyelemmel kísérése – 2005 Forrás: http://web.kozut.hu/uploads/media/ALLANDO_MEROHELY_KIADVANY_2005_01.pdf Látogatás ideje: 2008.10.29
3
Cseffalvay Mária – Az Országos Közúti Keresztmetszeti Forgalomszámlálás CAMION TRUCK&BUS – 2008/5 szám – 102-103. oldal. Forrás: http://www.camiontruck.eu/images/2008/200805/c5104-105w.pdf Látogatás ideje: 2008.10.29
4
Houston TranStar 2008 – Houston TranStar AVI Traffic Monitoring System Forrás: http://traffic.houstontranstar.org/aviinfo/avi-intro.html Látogatás ideje: 2008.10.29
5
SHA State Highway Administration – Traffic Monitoring System Program Forrás: http://www.sha.state.md.us/SHAServices/mapsBrochures/maps/oppe/trafficvolumemaps/tms.asp Link: Traffic Monitoring System Program Direkt link a pdf dokumentumhoz: http://www.sha.state.md.us/SHAServices/mapsBrochures/maps/oppe/trafficvolumemaps/TMSPrograms/ HISD%20Traffic%20Monitoring%20System%20Program.pdf Látogatás ideje: 2008.10.29
6
roadtraffic-technology.com – Applied Traffic – Traffic Monitoring Systems Forrás: http://www.roadtraffic-technology.com/contractors/detection/applied-traffic Látogatás ideje: 2008.10.29
7
roadtraffic-technology.com – Austrian Research Centers – Traffic Data Acquisition and Video Surveillance Forrás: http://www.roadtraffic-technology.com/contractors/detection/austrian-rc-gmbh Látogatás ideje: 2008.10.29 – Az utolsó látogatás óta az oldal megszőnt
8
Fördıs Gergely – Intelligens közlekedési rendszerek – BME elıadás anyaga 2005 Forrás: http://www.uvt.bme.hu/targyak/int_kozl/ea_2005/Intelligens_ea_6.pdf Látogatás ideje: 2008.10.29
9
Állami Közúti Mőszaki és Információs Kht. – A közúti forgalom figyelemmel kísérére – 2003. május 31. Forrás: http://web.kozut.hu/uploads/media/all_mero_kiadv_2002_01.pdf Látogatás ideje: 2008.10.29
10 Köztech Közlekedéstechnikai és Kereskedelmi Zrt. – Cégismertetı Forrás: http://www.koztech.hu Látogatás ideje: 2008.10.29
11 Újbuda Önkormányzata – Újbuda Forgalomfigyelı Rendszere Forrás: http://www.ujbuda.hu/forgalomfigyelo.php Látogatás ideje: 2008.10.29
12 UTV.HU Forrás: http://www.utv.hu Látogatás ideje: 2008.10.29
13 AnaLogic Computers Kft. Forrás: http://www.analogic-computers.com Látogatás ideje: 2008.10.29
14 AnaLogic Computers Kft. – Video Analytics - Traffic Monitoring Forrás: https://www.analogic-computers.com/Downloads/BiiDemos/Video_Analytics_Traffic.html Látogatás ideje: 2008.10.29
15 Dieter Koller - Model-Based Object Tracking in Road Traffic Scenes Forrás: http://www.vision.caltech.edu/koller/ModelTracking.html Látogatás ideje: 2008.11.13
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
33. oldal
Dankovics József István 16 Image processing techniqes for a video based traffic monitoring system and methods therefor Forrás: http://www.wipo.int/pctdb/images1/PCT-PAGES/2001/192001/01033503/01033503.pdf Látogatás ideje: 2008.11.13
17 Massimo Piccardi – Background subtraction techniques: a review Forrás: http://www-staff.it.uts.edu.au/~massimo/BackgroundSubtractionReview-Piccardi.pdf Látogatás ideje: 2009.08.07
18 Sen-Ching S. Cheung and Chandrika Kamath – Robust techniques for background subtraction in urban trafic video Forrás: https://computation.llnl.gov/casc/sapphire/pubs/UCRL-CONF-200706.pdf Látogatás ideje: 2009.09.04
19 Mariusz Jankowski - Connected components labeling - algorithms in Mathematica, Java, C++ and C# Forrás: http://www.izbi.uni-leipzig.de/izbi/publikationen/publi_2004/IMS2004_JankowskiKuska.pdf Látogatás ideje: 2009.07.11
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
34. oldal
Dankovics József István
10. Mellékletek 1. számú melléklet – Jármőkategóriák
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
35. oldal
Dankovics József István 2. számú melléklet – A TPixClass osztály fontosabb eljárásai constructor Create; Procedure Free; function Add(name: String;width,height:integer): Integer; Procedure DrawPixBitmap(index:integer;var Bitmap:TBitmap); Procedure DrawPixImage(index:integer;var Image:TImage); Procedure SetPixFromBitmap(index:integer;Bitmap:TBitmap); Procedure SetPixFromImage(index:integer;Image:TImage); procedure SetPixFromIPL(index:integer;iplImg:PIPLImage); procedure SetPixFromColorPIX(cPixIndex:integer;CPClass:PColorPixClass; dstPix:integer); Procedure CopyBitmaps(src,dst:PBitmap); Procedure DrawBitmapToImage(bmp:PBitmap;var I:TImage); procedure DrawPixImageWND(src,src_x,src_y,src_w,src_h: integer; var dst: TImage;dst_x,dst_y:integer); Procedure procedure procedure procedure procedure
AddPix(to_index,src_index:integer); SubPix(from_index, what_index: integer); SubPixSpec(from_index, what_index,t: integer); CopyPix(dst, src:integer); CopyPixToBitmap(src:integer;dst:TBitmap);
procedure SubBitmap(from_bitmap:TBitmap; what_bitmap:TBitmap); Procedure Procedure Procedure Procedure
White(pix:integer); WhiteBitmap(var bmp:PBitmap); Black(pix:integer); BlackBitmap(var bmp:PBitmap);
procedure Procedure Procedure procedure
Invert(pix:integer); Binarize(src:integer;treshold:byte); Sobel(pix:integer); AtlagoloSzuro(pix: integer);
Procedure CCA(pix: integer;var output_pix:integer); Procedure CCA_Stack(pix: integer;var output_pix:integer); function getRegionList_Length:integer; procedure DrawRegionToBitmap(Im: TImage;x,y:integer; color:TColor); Procedure RegionsToObjects(var ObjList:TObjects; width_th, height_th:integer; wa,ha,posd:real); procedure DrawObjectsToBitmap(var ObjList: TObjects;Im: TImage; xx,yy:integer;width_th,debug_r:integer); Procedure Procedure Procedure Procedure procedure Procedure
Scale(pix:integer); MedianSzuro(pix:integer); Dilatacio_3(pix:integer); //csak binaris kepeken!!! Dilatacio_5(pix:integer); Erozio_5(pix: integer); //csak binaris kepeken Mask(dst:integer;msk:integer);
Procedure AvgDivide(src,dst:integer;divisor:byte); procedure DynamicBacground(pix_act,bgr:integer;alfa:real); procedure DynamicBacground_AVG(pix_act,bgr,fc:integer); procedure DynamicBacground_Szoras(pix_act, avg,szoras,bgr,fc:integer;at,alfa:real);
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
36. oldal
Dankovics József István
Procedure Multiply_Scalar(pix,scalar:integer); Procedure TresholderPix(tresholderPix,Treshold,src,dst:integer); procedure maskBitmap(binaryPix:integer;dst: PBitmap); procedure ConvFilter(pix: integer; mask: TMask); function setMask(v11,v12,v13,v21,v22,v23,v31,v32,v33, divisor:integer):TMask; procedure MakeXcolor(pix,XColor: integer); Procedure ResetMaskPoints; Function MaskEditBtnDown(bmp:PBitmap;backPix:integer; btn:TMouseButton; x,y,r,PointColor,lineColor: integer):boolean; procedure MakeMask(mask:integer); function function function function
getHSLfromRGB(r,g,b:byte):THSL;overload; getHSLfromRGB(RGB: TRGBTriple): THSL; overload; getRGBfromHSL(h,s,l:byte):TRGBTriple;overload; getRGBfromHSL(HSL:THSL):TRGBTriple;overload;
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
37. oldal
Dankovics József István
11. Ábra jegyzék 3.1.1./1. ábra: http://traffic.houstontranstar.org/images/diag1.jpg 3.1.1./2. ábra: http://traffic.houstontranstar.org/images/avi-tech-ani.gif 3.1.4./1. ábra: http://www.roadtraffic-technology.com/contractors/detection/austrian-rc-gmbh 3.1.4./2. ábra: http://www.roadtraffic-technology.com/contractors/detection/austrian-rc-gmbh 3.1.4./3. ábra: http://www.roadtraffic-technology.com/contractors/detection/austrian-rc-gmbh A link az utolsó látogatás óta megszűnt. 3.2.3./1. ábra: http://www.koztech.hu/cegism_elemei/image026.jpg 3.2.3./2. ábra: http://www.koztech.hu/cegism_elemei/image028.jpg 3.2.6./1. ábra: http://www.analogiccomputers.com/login/DownloadLink.jsp?requestedResource=/DemoVideos/demo_video_analytics_traffic.avi 4.1.1./1. ábra: http://www.vision.caltech.edu/koller/ModelTracking.html 4.1.1./2. ábra: http://www.vision.caltech.edu/koller/ModelTracking.html 4.1.3./1. ábra: http://www.wipo.int/pctdb/images1/PCT-PAGES/2001/192001/01033503/01033503.pdf
A jegyzékben nem szereplő ábrák saját készítésűek, többségük az UTV.HU által elérthető flash videókból származnak.
BMF-NIK, IAR szakirány 2008-2009
http://iar.bmfnik.hu/2008_2009/TrafMon
38. oldal