Valósidejű objektumkövetés mély tanulás segítségével
|
|
- Lóránd Székely
- 6 évvel ezelőtt
- Látták:
Átírás
1 SZAKDOLGOZAT FELADAT Münczberg Tamás szigorló mérnök informatikus hallgató részére Valósidejű objektumkövetés mély tanulás segítségével A gépi tanulás új módszerei az intelligens érzékelés számos területét forradalmastották az elmúlt évtizedben. Ezen módszerek közül külön figyelmet érdemel a mély tanulás (Deep Learning), amely a gépi tanulás legtöbb területén state of the art megoldásnak számít. A mély tanulás egyik legfontosabb alkalmazása számítógépes látórendszerekben történik, ahol az összes fő feladat (osztályozás, szegmentálás, detektálás) megoldására alkalmazható. A mély tanulás területén közismert, hogy egy kovolúciós neurális háló értelmezhető, mint egy általános célú képjellemző leíró módszer, ami az eredeti célján felül más látási feladatok elvégzésére is felhasználható. Ezen felhasználási módok közül különös figyelmet érdemel a valósidejű objektumkövetési alkalmazások területe. A szakdolgozat készítés során a hallgató feladata egy olyan rendszer létrehozása, amely képes egy mély neurális háló felhasználásával valósidejű objektumkövetést megvalósítani referenciakép alapján. A hallgató feladatának a következőkre kell kiterjednie: Tanulmányozza át a téma releváns szakirodalmát. Vizsgálja meg, hogy más műhelyek milyen megoldásokat alkalmaznak. Készítsen rendszertervet egy megoldásra, amely képes egy tetszőleges objektum követésének megvalósítására. Végezze el a rendszer fejlesztéséhez és tanításához kapcsolódó feladatokat. Tesztelje a megoldás pontosságát és hatékonyságát. Vizsgálja a megoldást valósidejűség szempontjából Tanszéki konzulens: Szemenyei Márton Budapest, Dr. Kiss Bálint egyetemi docens tanszékvezető (Tanszéki levélpapír hivatalos lábrésze)
2 Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Münczberg Tamás VALÓSIDEJŰ OBJEKTUMKÖVETÉS MÉLY TANULÁS SEGÍTSÉGÉVEL KONZULENS Szemenyei Márton BUDAPEST, 2017
3 Tartalomjegyzék Tartalomjegyzék... 3 Összefoglaló... 5 Abstract Bevezetés Irodalom kutatás A konvolúciós neurális hálók felépítése Neurális hálók tanítása Objektum felismerés neurális hálóval Követés neurális hálóval Feladat specifikáció és tervezés Megvalósítás Használt keretrendszerek Megoldási lehetőségek mérlegelése Megoldás elkészítése Aktivációs térkép előállítása A program használata Tesztelés Értékelés, konklúzió Továbbfejlesztési lehetőségek és tervek Irodalomjegyzék Függelék... 39
4 HALLGATÓI NYILATKOZAT Alulírott Münczberg Tamás, szigorló hallgató kijelentem, hogy ezt a szakdolgozatot/ diplomatervet meg nem engedett segítség nélkül, saját magam készítettem, csak a megadott forrásokat (szakirodalom, eszközök stb.) 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. Hozzájárulok, hogy a jelen munkám alapadatait (szerző(k), cím, angol és magyar nyelvű tartalmi kivonat, készítés éve, konzulens(ek) neve) a BME VIK nyilvánosan hozzáférhető elektronikus formában, a munka teljes szövegét pedig az egyetem belső hálózatán keresztül (vagy hitelesített felhasználók számára) közzétegye. Kijelentem, hogy a benyújtott munka és annak elektronikus verziója megegyezik. Dékáni engedéllyel titkosított diplomatervek esetén a dolgozat szövege csak 3 év eltelte után válik hozzáférhetővé. Kelt: Budapest, Münczberg Tamás
5 Összefoglaló Az objektumkövetés célja, hogy mozgóképfelvételen meghatározzuk egy mozgó objektum pozícióját képkockáról képkockára. A követő algoritmusok jelentősége különösen megnövekedett az elmúlt pár évben, köszönhetően az intelligens járművek és a különböző robotok egyre növekvő térhódításának. Mivel a követési feladatot általában szeretnénk minél hatékonyabban, gyorsabban és hibamentesen elvégezni, logikus döntés erre a mély tanulást felhasználni. A mély tanulás segítségével megvalósított objektum felismerés képes felülmúlni az ember objektum felismerési képességét és ezt a képességet kihasználva robusztus objektumkövető alkalmazás építhető. A szakdolgozat célja egy objektum követési feladat megvalósítása mély neurális hálózat segítségével. Az objektum követést egy képfelismerésre előre betanított konvolúciós neurális hálózat segítségével végeztem úgy, hogy a hálózatot, mint egy rögzített jellemző generátort használtam fel. Az elgondolás, hogy a konvolúciós hálózat általánosító képességét kihasználva az általa előállított jellemzővektor felhasználásával történő követés robusztusabb lesz a különböző torzításokra, amik amúgy nagy nehézségeket okoznak a hagyományos, neurális hálózatot nem használó követő algoritmusoknak. A projekt megvalósítására a PyTorch nevű keretrendszert használtam fel. A keretrendszer valójában egy Python függvénycsomag ami a Torch keretrendszer továbbfejlesztett, kibővített változata. A keretrendszer lehetővé teszi a gépi tanulás algoritmusok hatékony implementálását, biztosítja az együttműködést a népszerű Python csomagokkal, mint Numpy, Scipy stb., és támogatást nyújt a GPU-n való futtatáshoz is. Az elkészült algoritmust több videón teszteltem, amik alapján a megvalósított rendszer megfelelően működik.
6 Abstract The goal of object tracking is to determine the position of a moving object from frame to frame in a video. The significance of tracking algorithms has increased, especially in the last couple of years, thanks to the ever-increasing penetration of intelligent vehicles and various robots. As we usually want the tracking task to be as efficient, fast and accurate as possible, it is logical to use deep learning to solve this task. The object recognition achieved through deep learning can outperform the human baseline, and we aim to use this capability to build a robust object tracking application. The aim of the thesis is to implement an object tracking task with the aid of a deep neural network. Object tracking was done using a convection neural network pre-trained for image recognition by using the network as a fixed feature vector generator. The idea is that expoliting the generalization abilities of the convolutional network by utilizing the feature vector generated by it, the resulting algorithm will be more robust to the various distortions that cause difficulties for the traditional algorithms that do not use the neural network. In order to implement the project, I used the PyTorch framework. The framework is a Python function package that is an enhanced, extended version of the Torch framework. The framework enables effective implementation of machine learning algorithms, ensuring collaboration with popular Python packages such as Numpy, Scipy, etc., and provides support for running on GPU. I tested the completed algorithm on several videos and based on the tests the performance of the tracking method is satisfactory. 6
7 1 Bevezetés Napjainkban a gépi tanulás egyre népszerűbb és dinamikusan fejlődő kutatási területté vált, köszönhetően a benne rejlő rengeteg lehetőségnek és annak, hogy a legnagyobb technológiai cégek (pl. Facebook, Google, IBM stb.) is rengeteg pénzt és erőforrást fektetnek bele. Szinte bármilyen területen található felhasználási mód az egészségügytől kezdve a biztonságtechnikán keresztül az űrkutatásig. Az gépi látás is egyre inkább része lesz az életünknek (pl. ember és gép interakció, önjáró autók stb.). A képfeldolgozó algoritmusokat gyorsabbá, intelligensebbé tehetjük, ha a gépi tanulás technológiájával kiegészítjük, támogatjuk. A gépi tanulás fontos ágazata a mély tanulás (deep learning), ami a hagyományos neurális hálózatokkal ellentétben nagyszámú rejtett réteget tartalmaz. A mély hálók fejlődéséhez nagyban hozzájárult a grafikus processzorok (GPU)-k árának csökkenése, ugyanis az ilyen nagy hálók tanításának a számításigénye CPU-n nem végezhető el hatékonyan. Az ilyen hálókban minden egyes rejtett réteg egy bemenete az őt megelőző rétek kimenete. A mély neurális hálók is taníthatók felügyelt és nem felügyelt módon és alkalmazható a tanításra a hibavisszaterjesztéses algoritmus. A mély tanulás egyik fontos felhasználási területe a gépi látás, aminek megszámlálhatatlan fontos területe van. A leggyakoribb felhasználási módok pl. az objektum felismerés, objektum detektálás, szegmentáció, él detektálás, objektum követés stb. Ezeken a területeken a mély hálók tekintélyes sikereket értek el, sikerült megközelíteniük, sőt felülmúlniuk az ember képességeit. Az objektumkövetés komplex feladat, amely számos kihívást tartogat. Az algoritmusok hatékonyságát nagy mértékben befolyásolják különböző tényezők, mint pl. a háttér, világítás, takarás, különböző torzítások. Az ötlet miszerint a neurális hálókkal végzett objektum követés hatékonyabb lehet a hálók általánosító képességében gyökeredzik. A háló tanításának lényege ugyanis nem az, hogy a mutatott példákat (ebben az esetben képek) bemagolja és azokat jó osztályokba sorolja, a mutatott példák arra valók, hogy az adott osztályba (pl. autó) tartozó elemekből az azokra legjellemzőbb tulajdonságokat tanulja meg és ezek alapján a jellemzők alapján el tudja dönteni egy eddig még nem látott képről, hogy az mit is tartalmaz. Egy sok mintával megfelelően betanított háló esetében (minimális túltanulás) ezek a jellemzők igen robusztusak, és ellenállóbbak 7
8 lehetnek a fent említett befolyásoló tényezőkkel szemben, mint a hagyományos követő algoritmusok. Ebben a szakdolgozatban az objektumkövetés megvalósítását tűztem ki célul. A szakirodalom áttanulmányozása és több lehetőség mérlegelése után a kiválasztott követési algoritmus implementálása következett. A követés tesztelése után a programot egy egyszerű felhasználói felülettel bővítettem. A következő fejezetben bemutatom a szakdolgozat témájához kapcsolódó irodalmat és más kutatóműhelyek eredményeit, majd a megoldás specifikációját, a tervezés lépéseit és az elkészült modulokat. A program tervezésének és elkészítésének bemutatása után az elvégzett tesztek részletes ismertetése és elemzése következik. A tesztek során az elkészült követési módszert többféle videón hasonlítottam össze a követés hatékonyságának megállapítása érdekében. 8
9 2 Irodalom kutatás A mesterséges intelligencia napjaink egyik legmeghatározóbb kutatási területe és ennek köszönhetően temérdek mennyiségű anyag áll rendelkezésre. A mesterséges intelligencia témakörén belül a neurális hálókat kitüntetett népszerűség övezi. Ez a népszerűség annak is köszönhető, hogy a híradásokban is egyre többet hallani a neurális hálók alkalmazásával elért sikerekről. Az egyik ilyen meglepő eredmény például az AlphaGo-Zero projekt [1], ami a világ egyik legbonyolultabb játékának tekintett Go-ban képes volt legyőzni a legjobb játékosokat. Az AlphaGo és a hozzá hasonló szoftverek nagy reményeket fűznek például az Alzheimer-kór vagy a Parkinson-kór gyógyításának kutatásához. A neurális hálók kutatása a 70-es években indult és a biológiából ismert neuronok egyszerűsített modelljét alkalmazták. Ezek a hálózatok kezdetben egy rétegből álltak és csak lineárisan szeparálható osztályozási feladatokat voltak képesek ellátni, majd több réteg bevezetésével nemlineáris szeparálásra is képesek lettek. A neurális hálók a nemlineáris szeparálás képessége miatt igen jól használhatók különböző osztályozási, felismerési problémák megoldására. Az ilyen problémákra nagyon nehéz hagyományo s algoritmikus megoldást találni. A hagyományos többrétegű neurális hálók egy bemeneti, egy kimeneti és több rejtett rétegből állnak. A háló rétegei között teljes kapcsolat van, ami azt jelenti, hogy egy adott réteg egy adott neuronja a megelőző réteg összes neuronjától kap bemenetet. A neuronokra érkező bemenetek különböző súlyozással vesznek részt a neuron kimeneti értékének képzésében. Erre mutat példát az alábbi ábra. 1. ábra: Neuron felépítése [1] 9
10 A fenti ábrán látszik, hogy a neuron a bemenetek súlyozott összegét egy aktivációs függvényen vezeti keresztül. Ilyen aktivációs függvény lehet például egy signum függvény, ami pozitív összeg esetén 1, negatív összeg esetén pedig -1 értéket vesz fel. 2. ábra: Signum függvény [3] 2.1 A konvolúciós neurális hálók felépítése A konvolúciós hálózatok rendkívül előnyösen használhatók kép bemenetű tanulás esetén, ami köszönhető annak, hogy a működéséből adódóan változatos méretű képek feldolgozására alkalmas és kevesebb paraméter szükséges, mint a hagyományos hálók esetében. A konvolúciós hálókkal számos képfeldolgozási probléma megoldható, ilyenek például az élkiemelés [4], élesítés [5], szegmentáció [6], felismerés [7], detektálás [8]. Továbbá lehetséges olyan konvolúciós hálók létrehozása, amik képesek olyan összetett műveleteket elvégezni, mint például képről vagy videófelvételről leírást készítése az azon látottak alapján [9][10] vagy képek generálása [11]. A konvolúciós neurális hálók felépítése abban különbözik a hagyományos hálókétól, hogy a rétegek között nincs teljes kapcsolat, tehát egy adott réteg neuronjai nem kapcsolódnak az előző réteg összes kimenetéhez, hanem csak a kimenetek egy részhalmazához. Ezt úgy valósítják meg, hogy egy kis méretű konvolúciós ablak reprezentálja a kapcsolatot a rétegek között, amivel végigpásztázzák az adott réteg bemenetét. A konvolúció alkalmazásának további kedvező hatása a paraméterek és a rétegek közötti kapcsolatok csökkenésén túl, hogy a hálózat invariáns lesz az elmozdulásokra. 10
11 3. ábra: Konvolúciós ablak ábrázolása[12] A konvolúciós rétegek mellet az un. összevonó (pooling) rétegek is elengedhetetlen részei a mély neurális hálóknak mert csökkenti a kép térbeli dimenzióit és ezáltal sokkal mélyebb konvolúciós réteget tudunk alkalmazni úgy, hogy a számítási és memória igény ne növekedjen kezelhetetlen méretűvé. Ezek a rétegek alulmintavételezést végeznek pl. a 4-es ábrán látható módon. Itt egy 2x2-es méretű filter segítségével áll elő az új kép, aminek az új pixelei a filter alá eső terület alatt lévő pixelek maximuma. Az konvolúciós rétegekhez hasonlóan az összevonó rétegek is hozzájáru lnak a háló általánosítóképességének növeléséhez, ugyanis az alkalmazásukkal a hálózat invariáns lesz a forgatásokra. Az összevonó rétegeknek több típusuk van, ilyen például az átlagoló összevonó réteg (avarage pooling), ami az előbbiekben bemutatott réteggel ellentétben nem az filter ablaka alá eső értékek maximumát állítja elő, hanem átlagolást vége. Lehetséges továbbá tanuló alulmintavételezést megvalósítani ún. strided konvolúciós réteggel, ami egy olyan konvolúciós réteg, amelyet csupán minden N. pixel pozícióban számolunk ki, így a kép méretét N-ed részére csökkentjük. 11
12 4. ábra: Összevonó réteg működése [13] További fontos réteg a Batch Normalization és a drop-out [14]. Az előbbi a kötegekben történő tanítás esetén normalizálja az egyes rétegek kimenetét, így növelhető a háló hatékonysága, másrészt segít elkerülni a háló túltanulását. Az háló hatékonyságának növekedése abból adódik, hogy mivel az egyes rétegek kimenete szerepel a gradiens képletében így, ha ezek normalizáltak, akkor a gradiens numerikus stabilitása növekedik. Másrészt a Batch Normalization réteg használatával elkerülhető, hogy a tanítás során egy-egy rétegben kevés neuron aktiválódjon, így csökkenti a túltanulás kialakulásának valószínűségét. Az utóbbi pedig véletlen-szerűen kinulláz bizonyos neuronokat az általánosító képesség növelése érdekében. A dropout réteg általánosítóképesség növelő hatása onnan ered, hogy a neuronok kivételével redundanciára kényszerítjük a hálót úgy, hogy az egyes példák esetén minél több neuron legyen aktív. A dropout réteget csak a háló tanítása közben alkalmazzuk szemben a Batch Normalization réteggel, ami a háló alkalmazása közben is kifejti hatását. 2.2 Neurális hálók tanítása A hálók tanítására az úgynevezett hiba-visszaterjesztéses (backpropagation) algoritmust használjuk. Ennek a célja, hogy a hibának a paraméterek szerinti deriváltját elő tudjuk állítani, ami egy többrétegű háló esetén nem triviális. A tanító algoritmus két fázisra bontható. Az első fázis során mintákat mutatunk a hálónak (bemenet elvárt kimenet párokat) amik alapján egy meghatározott költségfüggvény segítségével előállítható a hibát jellemző érték. A második fázisban ezt az értéket visszaterjesztjük a 12
13 megelőző rétegre és frissítjük a két réteg között található súlyokat és ezt addig folytatjuk még el nem érjük a legelső rejtett réteget. A tanítás során a cél, hogy elérjük vagy legalább jól megközelítsük a hibafüggvény minimum pontját. A súly módosítás úgy történik, hogy a hibafelületen a nagyobb gradiens negáltjának irányába mozduljunk el. Ezzel a módszerrel egy lokális minimum megtalálására van lehetőség, ugyanis lehetséges, hogy hibafelületnek több lokális minimumpontja van és a tanítás során a gradienst követve a legközelebbi ilye n lokális minimum helyet találjuk meg. Az ilyen lokális minimum helyekbe történő beragadás elkerülésére több jól használható módszert is dolgozták ki. Az egyik ilyen módszer az úgy nevezett momentum módszer. A momentum módszer lényege, hogy egy adott iterációban a hibafelületen történő mozgás irányának meghatározásához figyelembe vesszük a korábbi irányok hatását is, így képesek vagyunk kimozdulni lokális minimumpontokból. 5. ábra: Tanítás folyamata [1] A hálóban a ReLU aktivációs függvényt használják ez általánosan a legkedveltebb és leginkább használt konvolúciós hálókban. A szigmoid és tangens hiperbolikus függvényekkel szemben gyorsabb konvergenciát biztosít és az egyszerű implementáció miatt gazdaságos [15]. 13
14 6. ábra: ReLU aktivációs függvény[13] 7 ábra: Softmax függvény 8. ábra: Softmax képlet A háló kimenetén egy logaritmikus softmax nevű nemlinearitás található. Ez egy normalizált exponenciális függvény a kimenetén megadja az adott kép egyes osztályokba tartozásának valószínűségét. Az 8. ábrán a softmax függvény képlete látható, a bal oldali mátrix tagjai azt jelentik, hogy a X bemenetre a paraméterek mellett a K osztályba tartozás valószínűsége mekkora. A jobb oldali kifejezés első tagja normalizálja az eredményt így a baloldali mátrix tagjainak összege 1 lesz. 14
15 2.3 Objektum felismerés neurális hálóval Mivel a követés megvalósításához objektum felismerésre betanított hálózatot használtam ezért ebben a fejezetben röviden erről is szót ejtek. A konvolúciós neurális hálózatokkal olyan objektum felismerő program implementálható, ami nagy számú különböző objektum felismerésére képes és a hálók általánosító képességének köszönhetően nem csak a tanítás során mutatott példák felismerését, hanem új, a tanítás során még nem látott objektumok osztályba sorolását is meg tudja oldani A felismerésre használt hálózatok általánosan nagy számú konvolúciós rétegből, azok közt pooling rétegekből és végül a konvolúciós rétegek után elhelyezett teljesen csatolt rétegekből állnak. A konvolúciós rétegek feladata, hogy rétegről rétegre különböző, egyre magasabb szintű jellemzőket vonjanak ki a mutatott képekből. A teljesen csatolt réteg feladata a konvolúciós rétegek által előállított jellemzővektor alapján az osztályokba sorolás végrehajtása. Az alábbi képen példaként a vgg16 nevű háló felépítése látható. 9. ábra: vgg16 felépítése [16] 15
16 10. ábra: SqueezeNet architektúrája [17] A 10. ábra az általam is használt neurális háló (SqueezeNet) architektúráját ábrázolja. A SqueezeNet [17] különlegesége, ahogy a 10. ábrán is jól látszik, hogy ez a hálóarchitektúra nem tartalmaz a softmax réteg előtt teljesen csatolt hálózatot. Ennek a módszernek az előnye, hogy csökkenthető vele a teljesen csatolt hálózatrész miatt fellépő túltanulási probléma. A működés lényege, hogy a softmax réteg előtt egy úgynevezett global avarage pooling 1 réteg helyezkedik el, aminek a segítségével előállítja a keletkező jellemző térképek átlagát és ezt a vektort küldi tovább a softmax rétegnek, ami elvégzi az osztályokba sorolást. További előnye ennek a rétegnek, hogy az így keletkezett jellemző térkép egyszerűen átalakítható úgy, hogy felhasználható legyen objektumok pozíciójának meghatározásához. [18][19] A paraméterek számának ilyen nagy mértékű csökkenését 3 lényegesebb tervezési döntéssel érték el. [17] Az első, hogy az általánosan használt 3x3-as konvolúciós rétegek helyett 1x1-es rétegeket használtak. Ezzel a módszerrel 9-szer kevesebb paraméterre van szükség. A második, hogy úgynevezett squeeze rétegek felhasználásával csökkentették a rétegek közötti be- és kimeneti vektorok csatornáinak számát. A harmadik, hogy a bemeneti képeket csak a háló későbbi szakaszában alulmintavételezik, ugyanis kísérletekkel kimutatták, hogy a rétegek között nagyobb aktivációs térképeket továbbítva a képfelismerési hatékonyság növelhető [18]. 1 A 2. fejezetben bemutatott összevonó rétegek egy típusa. 16
17 11. ábra: ResNet architectúrája [7] A SqueezeNethez hasonló hálózat a ResNet [7], azzal a különbséggel, hogy tartalmaz teljesen csatolt hálózatrészt, azonban előtte egy global avarage pooling réteg helyezkedik el a konvolúciós hálózatrész kimenetének csökkentése érdekében. A ResNet architektúra legfőbb jellemzője, hogy a rétegei között áthidaló kapcsolatokat tartalmaz, amelyek a tanítás során a gradiens numerikus stabilitását nagyban segítik, így ez a háló akár száznál több réteget is tartalmazhat. 12. ábra: SqueezeNet architektúrája [20] 17
18 2.4 Követés neurális hálóval A neurális hálózatokkal történő követés többféle módszerrel megoldható feladat. A következőkben ezek közül bemutatásra kerülnek azok, amelyek alkalmazását fontolóra vettem a szakdolgozat elkészítésekor Követés fontossági térkép segítségével Ennek a módszernek a lényege, hogy egy úgynevezett fontossági térképet állítunk elő, kihasználva a hálózatok tanításánál használt hibavisszaterjesztéses algoritmus tulajdonságait [21]. Az algoritmus segítségével meghatározzuk, hogy mely súlyok játsszák a legnagyobb szerepet a kép adott osztályba sorolásában, mivel ebből megmondható, hogy a képen mely pixelek voltak relevánsak az osztályozás során. 13.ábra: Fontossági térképek [22] A fenti ábrákon is látszik, hogy ezek a fontossági térképek nem egészen pontosak, zajosak. Ez adódhat abból, hogy a képek leskálázása miatt információt vesztünk. Ezért ezeket a térképeket még fel kell dolgozni, meg kell határozni egy minimális területet a lényeges pixelek sűrűsége alapján, majd a határoló négyszöget ez alapján rajzolhatjuk a képre. A követés folyamán a fontossági térképet minden képkockára külön-külön meghatározzuk. 18
19 A követés hatékonysága javítható úgy, hogy a háló kimenetén létrejövő jellemző vektorból egy Support Vector Machine (SVM) [23] segítségével elkülönítjük az előtér és háttér elemeket reprezentáló értékeket és csak a követendő objektumnak megfelelőket terjesztjük vissza, így egy osztályspecifikus jellemző térképet kapva Követés jellemzővektorok összevetésével Ez a módszer is egy objektum felismerésre betanított hálót használ úgy, hogy az utolsó teljesen összekapcsolt réteget, ami az osztályokba sorolásért felelős, a követés során nem használjuk [18]. Az utolsó réteget egy Radial Basis Function (RBF) réteggel helyettesítjük. Az RBF réteg működésének lényege, hogy kiszámítja a bemeneti vektor és a rétegben tárolt referencia vektor közötti távolságot. (1) Első lépésként az RBF rétegben be kell állítani a referencia vektort, ez történhet úgy, hogy detektáljuk az első képkockán a követendő objektumot, kis szeletekre vágjuk és a szeleteket egyenként átengedjük a konvolúciós rétegeken, majd a keletkező jellemző vektort beállítjuk az első RBF neuron referencia vektorának és így tovább eljárva a kép többi szeletével. A követés során az egész képkockát kis szeletekre vágjuk és egyenként átengedjük a konvolúciós rétegeken, majd az RBF réteg elvégzi az összehasonlítást. Az RBF kimenetei alapján előállítható egy térkép, ami a referencia objektumhoz leginkább hasonló területeken kicsúcsosodik. Ezen a térképen egy egyszerű küszöbözéssel meghatározható az objektum pozíciója YOLO objektum detektálás A YOLO (You Only Look Once) [8] módszer lényege, hogy az objektum detektálást visszavezeti egy regressziós problémára. A bemenete a kép pixelei, a kimenete a befoglaló keret koordinátái és a detektált objektum osztályokba tartozásának valószínűségei. Ez az objektum detektálási módszer jól használható követésre mert rendkívül gyors, ugyanis csupán egy detektálásra betanított hálóra van szükség, amin képkockánként átküldve a videót, a háló kimenetén már rendelkezése is áll az eredmény. 19
20 A háló tanításához befoglaló keretekkel ellátott és felcímkézett tanítókészlet szükséges. A tanítás során a hibát a valós és a jósolt befoglaló keret metszetéből származtatjuk, úgy, hogy a két keret közti átfedésben lévő rész területét elosztjuk a két négyzet által együtt lefoglalt terület nagyságával. Az ezzel a módszerrel előállított pontszám annál nagyobb, minél nagyobb az átfedés az elvárt és a jósolt befoglaló keret között, így a hiba ennek a negáltja Objektum követés osztály specifikus aktivációs térképpel Az objektum felismerésre betanított hálózatokból egyetlen előreterjesztésből is kinyerhetők információk az objektum lokalizációjáról, a konvolúciós rétegek által generált jellemzővektorok alapján [24]. A megoldás nem igényli a háló újra tanítását, ugyanakkor a detektálás javítható, ha nagyobb aktivációs vektorokat használunk a rétegek között. Ehhez egy már előre tanított hálóban szükséges az összevonó rétegek kicserélése, majd a háló finomhangolása. Az általam választott modell esetében viszont elégséges méretűek az aktivációs vektorok a detektálás megvalósításához. A követés hatékonysága az első módszeréhez hasonló, az aktivációs térképet még fel kell dolgozni, hogy pontosabban detektálhassuk 20
21 3 Feladat specifikáció és tervezés Ennek a fejezetnek acélja, hogy meghatározza a megvalósítandó alkalmazás specifikációját, bemutassa a tervezés menetét az elkészült modulokat azok felelősségeit és a köztük lezajló kommunikációt. Az elkészítendő alkalmazás egy olyan program, ami egy előre kiválasztott osztályba tartozó objektum követésére alkalmas. A kiválasztható objektumok halmazát az egy kiválasztott képkockán, a háló által felismert objektumok halmaza adja. A követendő objektum kiválasztása után képkockáról képkockára meghatározzuk annak helyzetét úgy, hogy egy befoglaló négyszöget rajzolunk a feltételezett pozícióba. A cél, hogy a feldolgozás kevés erőforrással GPU használat nélkül is a videó túlzott lassulása nélkül megtörténjen, ugyanis a szakdolgozat elkészítéséhez használt számítógép Intel Core i3-as processzorral 4GB RAM memóriával és a processzorba integrált videókártyával rendelkezett. Az integrált videókártyát azonban nem tudjuk használni mert nem támogatja a CUDA-t, ami szükséges a GPU általános célú használatához. A megvalósítás lépései 3 részre bonthatók: először a videókezelés, a követés és végül a felhasználói felület elkészítése. Ezek a feladatok 3 különböző modulban valósulnak meg: UI, Tracker, VideoPlayer. Az UI modul magába foglalja az osztálydiagrammon is látható Application és OwnVideoWidget osztályokat. A Tracker osztály feladata az objektum követés végrehajtása. A VideoPlayer osztály a videólejátszás vezényléséért, a UI-modul pedig a felhasználói felület megjelenítéséért és kezeléséért felel. Az osztálydiagram ábráján nem szerepelnek az NNUtils és ImageUtils modulok, mert eszek nem szerveződnek osztályba, csupán függvényeket tároló modulok, amiket az ábrán lévő modulok többsége felhasznál. Az NNUtils a neurális hálók kezeléséhez tartalmaznak segédfüggvényeket, míg a ImageUtils képkezelésre, transzformációkra ad megoldásokat. A modulok közti kommunikáció globális változókon és egymásnak átadott referencia objektumokon történik. Az Application osztály tartalmaz referenciát az OwnVideoWidget, és VideoPlayer objektumokra, így az képes vezérelni a videólejátszást és meg tudja jeleníteni a felületen. Az OwnVideoWidget a QWidget osztályból származik, hogy a Qt-t használó alkalmazásunk képes legyen megjeleníteni. Erről bővebben a 4.3 fejezetben olvashatunk. A videók vezérlését a grafikus felületen a 21
22 felhasználó különböző gombok segítségével tudja elvégezni, köszönhetően a Qt keretrendszer eseménykezelő rendszerének. A VideoPlayer osztálynak inicializáláskor megadásra kerül egy Tracker objektum, így a VideoPlayer objektum a Tracker objektum megfelelő metódusának felhasználásával tudja módosítani a képkockáit úgy, hogy azon a követési eljárásnak megfelelően megjelenjen a befoglaló keret. A későbbiekben, ha új követési metódusokat szeretnénk implementálni, akkor a TrackerInterface osztályból kell származtatnunk az új követési módszert megvalósító osztályt és implementálni kell az interfészben deklarált metódusokat. 14. ábra: Alkalmazás moduljai 22
23 4 Megvalósítás Ebben a fejezetben először bemutatom a használt keretrendszereket, majd részletezek néhány megoldási lehetőséget. A megoldási lehetőségek bemutatása után, a megvalósítás részletei következnek, ahol kitérek a használt neurális hálózat modelljének bemutatására és a követési algoritmus működésére. Végül a fejezet végén bemutatásra kerül az elkészült program, felhasználói felülete és annak használata. 4.1 Használt keretrendszerek A program írásához a PyTorch keretrendszert választottuk. Ez a Torch gépi tanulás keretrendszer Python implementációja, amit a Facebook mesterséges intelligenciával foglalkozó kutató csoportja fejlesztett. A különbség, hogy a Torch C implementációja egy LUA interfészen keresztül érhető el. A PyTorch viszont a Torch forrásokat Python-ban teszi elérhetővé és GPU-n való futtatást tesz lehetővé a legtöbb függvénynek. A keretrendszer másik nagy előnye, hogy egyszerűen használható függvényeket kínál már létező neurális hálózatok módosításához anélkül, hogy újra fel kéne építeni az egész hálózatot. Videók beolvasásához, illetve egyéb alapvető képfeldolgozási műveletekhez a OpenCV könyvtárat használtam. Ez egy C/C++ nyelven íródott gépi látás és gépi tanulás algoritmusokat implementáló függvénycsomag. A Numpy egy népszerű Python csomag, ami támogatást nyújt többek között több dimenziós mátrix műveletek vagy lineáris algebrai műveletek elvégzéséhez, például az OpenCV is Numpy tömböt használ a képek tárolására. A Numpy array és Torch tenzorok közti átalakításokhoz a keretrendszer támogatást nyújt, így kényelmesen és biztonságosan elvégezhetőek. Diagramok rajzolásához, ábrák készítéséhez a Matplotlib csomagot használtam. A program felhasználói felületének kialakításához a Qt keretrendszert használtam. A Qt-t azért választottam mert, támogatja a gyors alkalmazásfejlesztést (RAD), így a felhasználói felület grafikus módszerekkel összeállítható és keretrendszer előállítja a kívánt kódot. A grafikus környezetet az alkalmazás felületének összeállításához a QtDesigner program biztosítja. A keretrendszer Python oldalról egy PyQt nevű interfészen keresztül érhető el és úgynevezett widgeteket biztosít a felhasználói felület építéséhez. Ilyen widgetek például a gombok, legördülő listák, 23
24 címkék stb. A Qt továbbá lehetőséget biztosít saját widgetek definiálásához a megfelelő osztályból 2 történő származtatás útján. A program írásához az InteliJ IDEA PyCharm fejlesztőkörnyezetét használtam, aminek előnye, hogy kifejezetten Python fejlesztéshez készítették, aminek köszönhetően számos olyan fejlesztést megkönnyítő funkcióval rendelkezik, mint például Python-ra szabott szintaxis kiemelés, automatikus kódkiegészítés és könnyen használható debugger. 4.2 Megoldási lehetőségek mérlegelése A 2. Fejezet végén több megoldás került bemutatásra, melyek közül az utolsóként bemutatott módszer került megvalósításra (követés aktivációs térkép segítségével). Ebben az alfejezetben sorra veszem a felmerült megoldási lehetőség előnyös és hátrányos tulajdonságait, amik befolyásolták a döntést Az első módszer, ami felmerült a jellemzőtérkép segítségével történő követés. A jellemzőtérkép előállítása gyorsan végrehajtható művelet, viszont a detektálás pontossága nem valami jó. Ezen lehet javítani SVM használatával úgy, hogy a visszaterjesztés előtt elkülönítjük vele az objektumhoz és a háttérhez tartozó képpontokat. Ehhez viszont egy olyan, nagy méretű tanítóhalmazra lenne szükség, amiben a tanítómintákban meg vannak jelölve az objektumhoz és a háttérhez tartozó pontok. Egy ilyen tanítóhalmaz előállítása azonban rendkívül költséges. A jellemző vektorok összevetésével megvalósított követés pontos, valamint kevés paraméterrel rendelkező háló használata esetén a jellemző vektorok kinyerése meglehetősen gyors. Én azonban szerettem volna kihasználni a hálózat objektumfelismerési képességét is, ehhez pedig összetettebb hálóra 3 volt szükség, ami a sok előreterjesztés miatt számottevően lelassítaná a folyamatot. A YOLO módszerre alapuló detektálás gyors, hatékony és egyszerűen implementálható. Az eljárás nem igényel további bonyolult algoritmusokat, továbbá az objektum pozíciója egy egyszerű előreterjesztéssel előáll a háló kimenetén. Egyetlen 2 QWidget 3 A felhasznált modell (SqueezeNet) esetében ez kb 1.2 millió paraméter 24
25 hátránya, hogy a háló tanításához nagy számú befoglaló keretekkel és objektumcímkékkel ellátott tanítóhalmaz szükséges. Az osztályspecifikus aktivációs térkép is egyszerűen előállítható, és a YOLO-hoz hasonlóan az objektum pozíciója egy előreterjesztéssel és kis számolással előállítható. A detektálás hatékonysága hasonló a fontossági térképpel való követéshez, végül azért döntöttem -e mellett a módszer mellett, mert a térkép előállítása egyszerűbb, mint az első esetben és nincs szükség további tanításra, felhasználható egy képfelismerésre előre betanított hálózat. 4.3 Megoldás elkészítése A program megvalósítása során szempont volt az objektumorientált személet, valamit az, hogy a program a későbbiekben egyszerűen bővíthető legyen újabb követési módszerek hozzáadásával. A neurális hálózat kezeléséhez készített segédfüggvényeket egy NNUtils modulba gyűjtöttem. A modul többek között a háló inicializálásához, a háló konvolúciós részének kimenetének vizsgálatához stb. tartalmaz függvényeket. A képfeldolgozáshoz és különböző konverziók támogatására az ImageUtils modul tartalmaz függvényeket. Megtalálhatók benne képek megjelenítéséhez, előfeldolgozásához és Numpy array, QImage és PIL formátumok közötti konverziós metódusok. Ezekre azért van szükség mert az OpenCV Numpy array-t, a Qt keretrendszer QImage formátumot a pytorch pedig a PIL használatát részesíti előnyben. Az alábbi kódrészlet a képek előfeldolgozásakor használt transzformációk láncolatát definiálja. A pytorch előre betanított hálói az ilyen módon előkészített képeket várják bemenetükként. A kód első lépésként a képek skálázását hajtja végre, majd tenzorrá konvertálja és végül, előre megadott átlag és szórás értékekkel normalizálja azokat. A kódban szerepló átlag és szórás értékek az előre tanított hálók tanítása során kiszámított és felhasznált értékek. A következő alfejezetben a normalizálás fontosságára és működésére még kitérek. image_transform = transforms.compose([ transforms.scale(256), transforms.totensor(), transforms.normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ]) 25
26 A Tracker és a VideoPlayermodulok felelőssége kulcsfontosságú, az előbbi a követés a második a Videó kezelésére hivatott. A VideoPlayer objektum úgy állítja elő a képet, hogy az a felhasználói felület által már egyszerűen kezelhető legyen, továbbá tartalmaz egy referenciát a Tracker objektumra így az állapotától függően (videólejátszás, követés stb.) tudja a képkockákat módosítani. A felhasználói felületet a QT4 Designer program segítségével állítottam elő. A videó megjelenítéséhez szükség volt egy saját QWidget osztályból leszármazott osztályra, ami a Videoplayer objektum által küldött képkockákat meg tudja jeleníteni. Ez a QWidget osztály paintevent függvényének felüldefiniálásával valósult meg úgy, hogy a video lejátszás egy külön szálon fut és egy FIFO objektumba tölti a beolvasott vagy előállított képkockákat, amit a felhasználói felület egy időzítő ütemezése alapján vesz ki és jelenít meg a képernyőn Képek előfeldolgozása Számos tanulmány bizonyítja, hogy különböző előfeldolgozási technikák segítségével nagyobb numerikus stabilitást, így lényegesen jobb eredményt érhetünk el a tanítás során [1]. A nyers képeken a pixelek értéke széles határok között mozog és ez azt kockáztatja, hogy egyes neuronok a tanítás elején telítődnek és így rossz lesz a tanulás hatékonysága. 15. ábra: előfeldolgozás lépései, első ábra a feldolgozatlan adathalmaz, középső ábra az átlag kivonása utáni adathalmaz, harmadik ábra a szórással elosztott adathalmaz [13] Első lépésként átméretezzük a háló bemenetének megfelelő méretűre. A második lépés az adathalmaz centralizálása az origóban, ezt úgy érjük el, hogy külön az Y, U és V csatornák értékeit átlagoljuk az egész adathalmazra vonatkozóan majd az átlagokat kivonjuk. Az utolsó lépés a normalizálás, aminek során az adathalmaz szórása nagyjából egységnyi lesz. Ehhez az egész adathalmaz csatornáit vesszük egyesével, kiszámítjuk a szórásukat és leosztjuk vele a pixelek értékeit., majd ezt kivonjuk. 26
27 4.3.2 Használt neurális hálózat A PyTorch torchvision csomagjában található models modul tartalmaz néhány előre betanított hálót: AlexNet [1], VGG [25], ResNet [7], SqueezeNet [17], DenseNet [26], Inceptionv3 [27]. Ezek a hálók az ImageNet kép adatbázison lettek tanítva képfelismerésre. Ezek közül a SqueezeNet bizonyult hatékonynak, ugyanis jóval kevesebb paramétert tartalmaz, mint pl. az AlexNex és maga a modell is kevesebb helyet foglal a memóriában, ugyanakkor az objektumfelismerési hatékonysága eléri az előbb említett hálóét. A második fejezetben bemutatott előnyök alapján ez a hálóarchitektúra bizonyult a legalkalmasabbnak az objektumkövetési feladatra. 4.4 Aktivációs térkép előállítása Az aktivációs térkép előállításához először a megfelelően előkészített képet keresztül kell küldeni a konvolúciós hálón. A kép előkészítése a kép átméretezéséből és a csatornák normalizálásából áll, ahogyan az az előző fejezetben bemutatásra került. 16. ábra: Bemeneti kép A háló kimenetén az utolsó összevonóréteg után előáll egy jellemzővektor. Az (2) [24] képlet írja le az utolsó összevonó réteg (global avarage pooling) kimenetét a képpontok térbeli elhelyezkedése alapján. Ez a vektor kerül a szoftmax bemenetére (3) [24]. Egy adott c osztályra, a szoftmax bemenete tehát (3), ahol w c k tagot tekinthetjük az F k képrészlet jelentőségét a c osztályba sorolás pontszámának kialakításában. Ezek alapján az aktivációs térképet (5) [24] képlet alapján írhatjuk fel. (2) 27
28 (3) (4) (5) A 17. ábrán látható az így előállított aktivációs térkép, amit 16. ábrán látható bemeneti képre adott eredményül a hálózat. Az egyiptomi macska nevű osztályba sorolás pontszámának kialakításában a fehérebb pixelek játszottak nagyobb jelentőséget. Minél nagyobb a pixelek intenzitása, annál nagyobb jelentősége volt a pontszám kialakításában. Ezen jól látszik, hogy az így előállt térkép zajos, nem csak az objektumhoz tartozó pontok szerepelnek rajta. Épp ezért szükséges az így készített térképet különböző képfeldolgozási technikák segítségével detektáláshoz alkalmas formára hozni. 17. ábra: Feldolgozás előtti aktivációs térkép A térképet először küszöböztem, hogy csak a pontszám kialakításában legnagyobb súllyal résztvevő képpontok maradjanak meg. A választott küszöbérték alatti értékkel rendelkező pixelek feketék, az annál nagyobb értékű pixelek fehérek. Erre meghatároztam egy alapértéket, ami a legtöbb esetben jól működött. A küszöbözött aktivációs térkép a 18. ábrán látható. 28
29 18. ábra: Küszöbözött aktivációs térkép Az így küszöbözött kép még nem alkalmas arra, hogy egyszerűen befoglaló négyszöget rajzoljunk köré, mert láthatóan több komponensből állhat. A térképet ezért morfológia eljárásokkal összefüggő objektumokat tartalmazó bináris képpé alakítottam. Először egy dilatációt végeztem el 10 iterációban, ezzel egy összefüggő objektum keletkezett, viszont a mérete megnövekedett. A méret helyreállítása érdekében szükség volt ugyanennyi iterációban elvégzett erodációra is. A fenti műveletek egymás után történő elvégzését zárásnak nevezzük. Ezeknek a műveleteknek az eredménye a 19. ábrán látható. 19. ábra: Dilatált majd erodált aktivációs térkép Az így elkészült képekre az OpenCV könyvtárainak felhasználásával egyszerűen egy függvényhívással rajzolható befoglaló keret. 4.5 A program használata Ebben az alfejezetben bemutatom a felhasználói felület felépítését és az alkalmazás használatát. Az felület a 21. ábrán látható ablakból áll. Tartalmaz egy videó képkockák megjelenítésére alkalmas területet és egy kezelő felületet a videó 29
30 megállítására, szüneteltetésére stb. Az ablak továbbá tartalmaz egy menüsort, ami jelenleg két művelet elvégzésére alkalmas menüket tartalmaz. Az egyik művelet a lejátszani kívánt videó betöltése a másik pedig a kilépés. 20. kép: Videó betöltése Az alkalmazáson belül a videót a File menü, Videó kiválasztása menüpontban választhatjuk ki. Ha kiválasztottuk a videót az Elindít gombra kattintással indíthatjuk el a videót és a Szünet gomb megnyomásával szüneteltethetjük a lejátszást. A szünet gomb megnyomása után feltöltődik a gombok alatt található lista a 20 legvalószínűbb objektum nevével, amiből kiválaszthatjuk a követendőt, majd a követés gomb megnyomásával elindul a követés. A követés a megállítás gombbal állítható meg. 21. ábra Detektálás 30
31 5 Tesztelés Ebben a fejezetben bemutatom a követés működését különböző videók esetén. Az objektumok követésének hatékonyságának befolyásoló tényezők például a takarás, méretváltozás, megvilágítás változása, több objektum jelenléte stb. A teszteléshez két videót használtam. Az első egy objektumot tartalmaz és nem tartalmaz különösebb képfeldolgozási nehézségeket. A második videóban számos, az előbbiekben említett nehézséget okozó tényező előfordul. Az alábbi képek az első videó tesztelése során készültek. Látható, hogy a videón a követendő objektumból egy van jelen a képkockákon és a követendőtől különböző objektumok sem befolyásolják a hatékonyságot. Az képeken megfigyelhető, hogy az esetek többségében a befoglaló keret mérete is illeszkedik az objektum méretéhez. Az egyetlen zavaró tényező, ami a képeken megfigyelhető az a képminőség megváltozása. A 3. képen megszűnik az élesség így a detektálás sikertelen lesz. 22. ábra: Követés egy objektummal, kevés zavaró tényező esetén. A következő képkockákon megfigyelhető a takarások hatása, az objektum felismerésre és a detektálásra. Az objektum felismerése nem tekinthető sikeresnek, 31
32 ugyanis az oroszlán osztály helyett a doberman osztályba sorolódott. A detektálás a takarás és a felismerési pontatlanság ellenére sikeresnek tekinthető. 23. ábra: Követés takarási probléma jelentkezésekor. Az alábbi képkockák a több objektum jelenlétének befolyásoló hatását kívánják bemutatni. Több objektum esetén változatos eredmények születtek. Ha több azonos osztályba tartozó objektumot tartalmaz a képkocka akkor az objektumok távolsága befolyásolja a befoglaló keret elhelyezését úgy, hogy ha az objektumok túl közel vannak egymáshoz, akkor közös befoglaló keretet kapnak, ellenkező esetben viszont csak az egyik objektum kerül detektálásra. Az előbb leírt működés oka, a dilatálás és erodálás egymásutániságából (zárás) adódik. Az aktivációs térképen az egymáshoz közel elhelyezkedő objektumok aktivációi között kis méretű lyukak helyezkedhetnek el, amiket a zárás megszünteti és egy összefüggő objektumot hoz létre a bináris képen és a detektálás során -e köré az objektum köré rajzolunk befoglaló keretet. A távol lévő objektumok esetén az aktivációs térképen több egymástól jól elkülöníthető objektum keletkezik, amik közül a zárás során a kisebb objektumok megszűnnek és szerencsés esetben egy objektum marad: az, aminek az aktivációs képen nagyobb objektum feleltethető meg. Előfordulhat, hogy több objektum marad a bináris képen, így egy olyan befoglaló keret keletkezik, ami az összes ilyen objektumot magába foglalja. Az utóbbi eset figyelhető meg a 23. ábra 3. képén. 32
33 24. ábra: Követés több jelenlévő objektum esetén. Az utolsó két képen egy olyan objektum követését állítottam be, ami nem volt látható a képen, aminek az eredménye az lett, hogy nem került befoglaló keret a képkockára. Ebben az esetben nem mindig ez a viselkedés jelentkezik, ugyanis annak ellenére, hogy az objektum nincs jelen az aktivációs térképen megjelennek apróbb objektumok, amiket a zárás művelete eltűntet viszont, ha egy-egy objektum nagyobb, mint amit az erodálás eltűntet, akkor kisebb-nagyobb befoglaló keretek megjelennek. 25. ábra: A képen nem szereplő objektum követése. A videó feldolgozási sebessége normál videólejátszás esetén, neurális háló közbeiktatása nélkül 20 fps volt. A követés során a SqueezeNet háló közbeiktatásával a sebesség 8 fps-re csökkent. További tesztek a ResNet18-al és a ResNet50-el készültek. Ezeken az architektúrákon a sebességek rendre 5fps és 1 fps körül alakultak, azonban a 33
34 követési hatékonyságban jelentősebb javulás nem volt érzékelhető. Az előbb említett sebesség értékek Intel Core i3-as processzor segítségével voltak elérhetők. Ezzel a sebességgel a valósidejű felhasználás nem lehetséges, azonban GPU használatával már jelentős javulás érhető el és valósidejű követésre is használható volna. 34
35 6 Értékelés, konklúzió A szakdolgozat során bemutatott módszerrel viszonylag kedvezően, kevés erőforrás felhasználásával sikerült megvalósítani a követési feladatot. Előre betanított hálót használtunk, így nem volt szükség tanításra és a háló felépítésén sem kellett módosítani. A követés bizonytalan a zajos aktivációs térkép miatt és az befoglaló keretek sem illeszkednek pontosan a detektált objektum méretéhez. A hibák adódhatnak a morfológiai eljárásokból és abból, hogy a háló az objektumok osztályba sorolásakor egy adott objektum bizonyos területeit nagyobb súllyal veszi figyelembe és ebből adódóan előfordulhat, hogy az objektumnak csak egy bizonyos területe kerül követésre, vagy tévesen háttérelemek is befolyásolhatják az aktiváció kialakítását így a befoglaló keret kiterjed. A fenti hibák mértéke csökkenthető, erre vonatkozóan a következő fejezetben olvashatók továbbfejlesztési javaslatok. 35
36 7 Továbbfejlesztési lehetőségek és tervek A 26. ábrán látható beállítási lehetősségek még nem kerültek bekötésre, ezek a tervek szerint az aktivációs térkép küszöbözéséhez használt küszöbérték és a morfológiai eljárások iterációinak száma. Az alkalmazást szeretném úgy tovább fejleszteni, hogy többféle követési eljárás és háló modell közül lehessen a grafikus felhasználói felületen keresztül választani, továbbá a meglévő követési eljárást is pontosítani. A követési hatékonyság növelése érdekében a továbbiakban érdemes lenne a hálót egy követési adatbázison finomhangolni. Ehhez a finomhangoláshoz szükséges egy olyan videó adatbázis, amiben a videók változatos (különböző osztályokba tartozó) objektumokat tartalmaznak, továbbá fel vannak címkézve befoglaló keretekkel. A hiba mértéke például a YOLO módszernél bemutatott hibafüggvény segítségével előállítható lenne. 26. ábra: Felhasználói felület 36
37 Irodalomjegyzék [1] David Silver et al. Mastering the game of Go without human knowledge. Nature 550, (19 October 2017); doi : /nature24270 [2] Wikibooks, Artificial Neural Networks / Activation Functions, ions#activation_functions (revision 17:09, 05 December 2017) [3] Wikipedia, Sign function, (revision, 17:06, 05 December 12) [4] Saining Xie, Zhuowen Tu, Holistically-Nested Edge Detection. arxiv: [5] L. Xu, J. S. Ren, C. Liu, and J. Jia, Deep convolutional neural network for image deconvolution. Advances in Neural Information Processing Systems, 2014, pp [6] Jonathan Long, Evan Shelhamer, Trevor Darrell, Fully Convolutional Networks for Semantic Segmentation. arxiv: [7] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Deep Residual Learning for Image Recognition, arxiv: [8] J. Redmon, S. Divvala, R. Girshick, and A. Farhadi. You only look once: Unified, real-time object detection. In CVPR, [9] Oriol Vinyals, Alexander Toshev, Samy Bengio, Dumitru Erhan, Show and Tell: A Neural Image Caption Generator, arxiv: [10] Junhua Mao, Wei Xu, Yi Yang, Jiang Wang, Alan L. Yuille, Explain Images with Multimodal Recurrent Neural Networks, arxiv: [11] Emily Denton, Soumith Chintala, Arthur Szlam, Rob Fergus, Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks. arxiv: [12] Wikipedia, Convolutional neural network, (revision 17:12, 05 December 2017) [13] Andrej Karpathy, Convolutional Neural Networks for Visual Recognition (revision 17:08, 05 December 2017) [14] N. Srivastava, G. Hinton, A. Krizhevsky, I. Sutskever, and R. Salakhutdinov. Dropout: A simple way to prevent neural networks from overfitting. The Journal of Machine Learning Research, pages ,
38 [15] Glorot, X. and Bengio, Y. Understanding the difficulty of training deep feedforward neural networks. In Proc. AISTATS, volume 9, pp , 2010" [16] Adrian Rosebrock, ImageNet: VGGNet, ResNet, Inception, and Xception with Keras, (revision 19:33, 05 December 2017) [17] Forrest N. Iandola, Song Han, Matthew W. Moskewicz, Khalid Ashraf, William J. Dally, Kurt Keutzer, SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size, arxiv: [18] Jin, J., Dundar, A., Bates, J., Farabet, C., Culurciello, E.: Tracking with deepneural networks. In: Information Sciences and Systems (CISS), th Annual Conference on. pp IEEE (2013)" [19] Min Lin, Qiang Chen, Shuicheng Yan, Network In Network, arxiv: [20] Florian Bordes, SqueezeNet architecture (revision 17:00, 05 December 2017) [21] Seunghoon Hong, Tackgeun You, Suha Kwak, Bohyung Han, Online Tracking by Learning Discriminative Saliency Map with Convolutional Neural Network, arxiv: [22] Chih-Yao Ma; Hsueh-Ming Hang, Learning-based saliency model with depth information, (revision 17:27, 05 December 2017) [23] Cortes, C., & Vapnik, V. (1995). Support vector machine. Machine learning, 20(3), [24] Bolei Zhou, Aditya Khosla, Agata Lapedriza, Aude Oliva, Antonio Torralba, Learning Deep Features for Disciminative Localization, arxiv: [25] Karen Simonyan, Andrew Zisserman, Very Deep Convolutional Networks for Large-Scale Image Recognition, arxiv: [26] Gao Huang, Zhuang Liu, Kilian Q. Weinberger, Laurens van der Maaten, Densely Connected Convolutional Networks. arxiv: [27] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, Zbigniew Wojna, Rethinking the Inception Architecture for Computer Vision. arxiv:
Konvolúciós neurális hálózatok (CNN)
Konvolúciós neurális hálózatok (CNN) Konvolúció Jelfeldolgozásban: Diszkrét jelek esetén diszkrét konvolúció: Képfeldolgozásban 2D konvolúció (szűrők): Konvolúciós neurális hálózat Konvolúciós réteg Kép,
Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.
Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017. Vizuális feldolgozórendszerek feladatai Mesterséges intelligencia és idegtudomány Mesterséges intelligencia és idegtudomány Párhuzamos problémák
Visszacsatolt (mély) neurális hálózatok
Visszacsatolt (mély) neurális hálózatok Visszacsatolt hálózatok kimenet rejtett rétegek bemenet Sima előrecsatolt neurális hálózat Visszacsatolt hálózatok kimenet rejtett rétegek bemenet Pl.: kép feliratozás,
I. LABOR -Mesterséges neuron
I. LABOR -Mesterséges neuron A GYAKORLAT CÉLJA: A mesterséges neuron struktúrájának az ismertetése, neuronhálókkal kapcsolatos elemek, alapfogalmak bemutatása, aktivációs függvénytípusok szemléltetése,
A kibontakozó új hajtóerő a mesterséges intelligencia
5. Magyar Jövő Internet Konferencia» Okos város a célkeresztben «A kibontakozó új hajtóerő a mesterséges intelligencia Dr. Szűcs Gábor Budapesti Műszaki és Gazdaságtudományi Egyetem Távközlési és Médiainformatikai
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék. Neurális hálók 2. Pataki Béla
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék Neurális hálók 2. Előadó: Hullám Gábor Pataki Béla BME I.E. 414, 463-26-79 pataki@mit.bme.hu, http://www.mit.bme.hu/general/staff/pataki
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék. Neurális hálók. Pataki Béla
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék Neurális hálók Előadó: Előadás anyaga: Hullám Gábor Pataki Béla Dobrowiecki Tadeusz BME I.E. 414, 463-26-79
Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék
Keresés képi jellemzők alapján Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Lusta gépi tanulási algoritmusok Osztályozás: k=1: piros k=5: kék k-legközelebbi szomszéd (k=1,3,5,7)
Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék
Számítógépes képelemzés 7. előadás Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Momentumok Momentum-alapú jellemzők Tömegközéppont Irányultáság 1 2 tan 2 1 2,0 1,1 0, 2 Befoglaló
Neurális hálózatok elméleti alapjai TULICS MIKLÓS GÁBRIEL
Neurális hálózatok elméleti alapjai TULICS MIKLÓS GÁBRIEL TULICS@TMIT.BME.HU Példa X (tanult órák száma, aludt órák száma) y (dolgozaton elért pontszám) (5, 8) 80 (3, 5) 78 (5, 1) 82 (10, 2) 93 (4, 4)
Deep Learning a gyakorlatban Python és LUA alapon Tanítás: alap tippek és trükkök
Gyires-Tóth Bálint Deep Learning a gyakorlatban Python és LUA alapon Tanítás: alap tippek és trükkök http://smartlab.tmit.bme.hu Deep Learning Híradó Hírek az elmúlt 168 órából Deep Learning Híradó Google
8. Pontmegfeleltetések
8. Pontmegfeleltetések Kató Zoltán Képfeldolgozás és Számítógépes Grafika tanszék SZTE (http://www.inf.u-szeged.hu/~kato/teaching/) 2 Példa: panoráma kép készítés 1. Jellemzőpontok detektálása mindkét
Intelligens Rendszerek Gyakorlata. Neurális hálózatok I.
: Intelligens Rendszerek Gyakorlata Neurális hálózatok I. dr. Kutor László http://mobil.nik.bmf.hu/tantargyak/ir2.html IRG 3/1 Trend osztályozás Pnndemo.exe IRG 3/2 Hangulat azonosítás Happy.exe IRG 3/3
Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.
Regresszió Csorba János Nagyméretű adathalmazok kezelése 2010. március 31. A feladat X magyarázó attribútumok halmaza Y magyarázandó attribútumok) Kérdés: f : X -> Y a kapcsolat pár tanítópontban ismert
Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével. MAJF21 Eisenberger András május 22. Konzulens: Dr.
Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével 2011. május 22. Konzulens: Dr. Pataki Béla Tartalomjegyzék 1. Bevezetés 2 2. Források 2 3. Kiértékelő szoftver 3 4. A képek feldolgozása
Mély konvolúciós neurális hálózatok. Hadházi Dániel BME IE 338
Mély konvolúciós neurális hálózatok Hadházi Dániel BME IE 338 hadhazi@mit.bme.hu ÚJ ARCHITEKTÚRÁLIS ELEMEK Konvolúciós réteg Motiváció: Klasszikus képfeldolgozásnál alapművelet a konvolúció: Zajszűrésre
Gépi tanulás a gyakorlatban. Bevezetés
Gépi tanulás a gyakorlatban Bevezetés Motiváció Nagyon gyakran találkozunk gépi tanuló alkalmazásokkal Spam detekció Karakter felismerés Fotó címkézés Szociális háló elemzés Piaci szegmentáció analízis
CARE. Biztonságos. otthonok idős embereknek CARE. Biztonságos otthonok idős embereknek 2010-09-02. Dr. Vajda Ferenc Egyetemi docens
CARE Biztonságos CARE Biztonságos otthonok idős embereknek otthonok idős embereknek 2010-09-02 Dr. Vajda Ferenc Egyetemi docens 3D Érzékelés és Mobilrobotika kutatócsoport Budapesti Műszaki és Gazdaságtudományi
Neurális hálózatok bemutató
Neurális hálózatok bemutató Füvesi Viktor Miskolci Egyetem Alkalmazott Földtudományi Kutatóintézet Miért? Vannak feladatok amelyeket az agy gyorsabban hajt végre mint a konvencionális számítógépek. Pl.:
FELÜGYELT ÉS MEGERŐSÍTÉSES TANULÓ RENDSZEREK FEJLESZTÉSE
FELÜGYELT ÉS MEGERŐSÍTÉSES TANULÓ RENDSZEREK FEJLESZTÉSE Dr. Aradi Szilárd, Fehér Árpád Mesterséges intelligencia kialakulása 1956 Dartmouth-i konferencián egy maroknyi tudós megalapította a MI területét
(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.
Testmodellezés Testmodellezés (Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja. A tervezés (modellezés) során megadjuk a objektum geometria
Gépi tanulás a gyakorlatban. Lineáris regresszió
Gépi tanulás a gyakorlatban Lineáris regresszió Lineáris Regresszió Legyen adott egy tanuló adatbázis: Rendelkezésünkre áll egy olyan előfeldolgozott adathalmaz, aminek sorai az egyes ingatlanokat írják
Mesterséges neurális hálózatok II. - A felügyelt tanítás paraméterei, gyorsító megoldásai - Versengéses tanulás
Mesterséges neurális hálózatok II. - A felügyelt tanítás paraméterei, gyorsító megoldásai - Versengéses tanulás http:/uni-obuda.hu/users/kutor/ IRE 7/50/1 A neurális hálózatok általános jellemzői 1. A
Szegedi Tudományegyetem Informatikai Tanszékcsoport SZAKDOLGOZAT. Fertői Ferenc
Szegedi Tudományegyetem Informatikai Tanszékcsoport SZAKDOLGOZAT Fertői Ferenc 2010 Szegedi Tudományegyetem Informatikai Tanszékcsoport 3-dimenziós táj generálása útvonalgráf alapján Szakdolgozat Készítette:
Tanulás az idegrendszerben. Structure Dynamics Implementation Algorithm Computation - Function
Tanulás az idegrendszerben Structure Dynamics Implementation Algorithm Computation - Function Tanulás pszichológiai szinten Classical conditioning Hebb ötlete: "Ha az A sejt axonja elég közel van a B sejthez,
KONVOLÚCIÓS NEURONHÁLÓK. A tananyag az EFOP pályázat támogatásával készült.
KONVOLÚCIÓS NEURONHÁLÓK A tananyag az EFOP-3.5.1-16-2017-00004 pályázat támogatásával készült. 1. motiváció A klasszikus neuronháló struktúra a fully connected háló Két réteg között minden neuron kapcsolódik
Intelligens orvosi műszerek VIMIA023
Intelligens orvosi műszerek VIMIA023 Neurális hálók (Dobrowiecki Tadeusz anyagának átdolgozásával) 2017 ősz http://www.mit.bme.hu/oktatas/targyak/vimia023 dr. Pataki Béla pataki@mit.bme.hu (463-)2679 A
Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban
Intelligens Rendszerek Elmélete : dr. Kutor László Versengéses és önszervező tanulás neurális hálózatokban http://mobil.nik.bmf.hu/tantargyak/ire.html Login név: ire jelszó: IRE07 IRE 9/1 Processzor Versengéses
Már megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
Mesterséges Intelligencia II. kötelező feladat (3. forduló) - Ajánló rendszer 2.
Mesterséges Intelligencia II. kötelező feladat (3. forduló) - Ajánló rendszer 2. 1. Feladat kiírása A második forduló feladata hasonlóan az előző fordulóhoz egy ajánló rendszer modelljének elkészítése.
Képfeldolgozás Szegmentálás Osztályozás Képfelismerés Térbeli rekonstrukció
Mesterséges látás Miről lesz szó? objektumok Bevezetés objektumok A mesterséges látás jelenlegi, technikai eszközökön alapuló világunkban gyakorlatilag azonos a számítógépes képfeldolgozással. Számítógépes
Neurális hálózatok.... a gyakorlatban
Neurális hálózatok... a gyakorlatban Java NNS Az SNNS Javás változata SNNS: Stuttgart Neural Network Simulator A Tübingeni Egyetemen fejlesztik http://www.ra.cs.unituebingen.de/software/javanns/ 2012/13.
Példák jellemzőkre: - minden pixelérték egy jellemző pl. neurális hálózat esetében csak kis képekre, nem invariáns sem a megvilágításra, sem a geom.
Lépések 1. tanító és teszt halmaz összeállítása / megszerzése 2. jellemzők kinyerése 3. tanító eljárás választása Sok vagy kevés adat áll-e rendelkezésünkre? Mennyi tanítási idő/memória áll rendelkezésre?
Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében
Infobionika ROBOTIKA X. Előadás Robot manipulátorok II. Direkt és inverz kinematika Készült a HEFOP-3.3.1-P.-2004-06-0018/1.0 projekt keretében Tartalom Direkt kinematikai probléma Denavit-Hartenberg konvenció
Minták automatikus osztályba sorolása a mintát leíró jellemzők alapján. Típusok: felügyelt és felügyelet nélküli tanuló eljárások
Minták automatikus osztályba sorolása a mintát leíró jellemzők alapján Típusok: felügyelt és felügyelet nélküli tanuló eljárások Különbség: előbbinél szükséges egy olyan tanulóhalmaz, ahol ismert a minták
Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata
Kutatási beszámoló a Pro Progressio Alapítvány számára Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Mérnök informatika szak Orvosi készülékekben használható modern
SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.
SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu Mesterséges intelligencia oktatás a DE Informatikai
Mély neuronhálók alkalmazása és optimalizálása
magyar nyelv beszédfelismerési feladatokhoz 2015. január 10. Konzulens: Dr. Mihajlik Péter A megvalósítandó feladatok Irodalomkutatás Nyílt kutatási eszközök keresése, beszédfelismer rendszerek tervezése
A KLT (Kanade Lucas Tomasi) Feature Tracker Működése (jellegzetes pontok választása és követése)
A KL (Kanade Lucas omasi) Feature racker Működése (jellegzetes pontok választása és követése) Készítette: Hajder Levente 008.11.18. 1. Feladat A rendelkezésre álló videó egy adott képkockájából minél több
Statisztikai eljárások a mintafelismerésben és a gépi tanulásban
Statisztikai eljárások a mintafelismerésben és a gépi tanulásban Varga Domonkos (I.évf. PhD hallgató) 2014 május A prezentáció felépítése 1) Alapfogalmak 2) A gépi tanulás, mintafelismerés alkalmazási
Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20.
Pontműveletek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2012. február 20. Sergyán (OE NIK) Pontműveletek 2012. február 20. 1 / 40 Felhasznált irodalom
Mesterséges intelligencia alapú regressziós tesztelés
Mesterséges intelligencia alapú regressziós tesztelés Gujgiczer Anna, Elekes Márton* * AZ EMBERI ERŐFORRÁSOK MINISZTÉRIUMA ÚNKP-16-1-I. KÓDSZÁMÚ ÚJ NEMZETI KIVÁLÓSÁG PROGRAMJÁNAK TÁMOGATÁSÁVAL KÉSZÜLT
Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD
M5-. A lineáris algebra párhuzamos algoritmusai. Ismertesse a párhuzamos gépi architektúrák Flynn-féle osztályozását. A párhuzamos lineáris algebrai algoritmusok között mi a BLAS csomag célja, melyek annak
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és
Adatbányászati szemelvények MapReduce környezetben
Adatbányászati szemelvények MapReduce környezetben Salánki Ágnes salanki@mit.bme.hu 2014.11.10. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Felügyelt
6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján
Közelítő és szimbolikus számítások 6. gyakorlat Sajátérték, Gersgorin körök Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor Vinkó Tamás London András Deák Gábor jegyzetei alapján . Mátrixok sajátértékei
Számítógépes grafika
Számítógépes grafika HEFOP 3.5.1 Korszerű felnőttképzési módszerek kifejlesztése és alkalmazása EMIR azonosító: HEFOP-3.5.1-K-2004-10-0001/2.0 Tananyagfejlesztő: Máté István Lektorálta: Brückler Tamás
Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv
Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési
Hibadetektáló rendszer légtechnikai berendezések számára
Hibadetektáló rendszer légtechnikai berendezések számára Tudományos Diákköri Konferencia A feladatunk Légtechnikai berendezések Monitorozás Hibadetektálás Újrataníthatóság A megvalósítás Mozgásérzékelő
E-Freight beállítási segédlet
E-Freight beállítási segédlet Az E-Freight rendszer működéséhez szükséges programok és beállítások v08 A legújabb verzióért kérjük, olvassa be az alábbi kódot: 1. Támogatott böngészők Az E-Freight az Internet
Tanulás tanuló gépek tanuló algoritmusok mesterséges neurális hálózatok
Zrínyi Miklós Gimnázium Művészet és tudomány napja Tanulás tanuló gépek tanuló algoritmusok mesterséges neurális hálózatok 10/9/2009 Dr. Viharos Zsolt János Elsősorban volt Zrínyis diák Tudományos főmunkatárs
Név: Neptun kód: Pontszám:
Név: Neptun kód: Pontszám: 1. Melyek a szoftver minőségi mutatói? Fejlesztési idő, architektúra, programozási paradigma. Fejlesztőcsapat összetétele, projekt mérföldkövek, fejlesztési modell. Karbantarthatóság,
LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR
LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR LabVIEW-ról National Instruments (NI) által fejlesztett Grafikus programfejlesztő környezet, méréstechnikai, vezérlési, jelfeldolgozási feladatok
Modellezés és szimuláció. Szatmári József SZTE Természeti Földrajzi és Geoinformatikai Tanszék
Modellezés és szimuláció Szatmári József SZTE Természeti Földrajzi és Geoinformatikai Tanszék Kvantitatív forradalmak a földtudományban - geográfiában 1960- as évek eleje: statisztika 1970- as évek eleje:
Kódverifikáció gépi tanulással
Kódverifikáció gépi tanulással Szoftver verifikáció és validáció kiselőadás Hidasi Balázs 2013. 12. 12. Áttekintés Gépi tanuló módszerek áttekintése Kódverifikáció Motiváció Néhány megközelítés Fault Invariant
DIGITÁLIS KÉPANALÍZIS KÉSZÍTETTE: KISS ALEXANDRA ELÉRHETŐSÉG:
DIGITÁLIS KÉPANALÍZIS KÉSZÍTETTE: KISS ALEXANDRA ELÉRHETŐSÉG: kisszandi@mailbox.unideb.hu ImageJ (Fiji) Nyílt forrás kódú, java alapú képelemző szoftver https://fiji.sc/ Számos képformátumhoz megfelelő
Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása
Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása Előadó: Pieler Gergely, MSc hallgató, Nyugat-magyarországi Egyetem Konzulens: Bencsik Gergely, PhD hallgató, Nyugat-magyarországi
Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)
Szimuláció RICHARD M. KARP és AVI WIGDERSON A Fast Parallel Algorithm for the Maximal Independent Set Problem című cikke alapján (Készítette: Domoszlai László) 1. Bevezetés A következőkben megadott algoritmus
Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel. Az objektumok áthaladnak a többi objektumon
Bevezetés Ütközés detektálás Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel Az objektumok áthaladnak a többi objektumon A valósághű megjelenítés része Nem tisztán
Iman 3.0 szoftverdokumentáció
Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3
Szimulációs technikák
SZÉCHENYI ISTVÁN EGYETEM Műszaki Tudományi Kar Informatikai tanszék Szimulációs technikák ( NGB_IN040_1) 2. csapat Comparator - Dokumentáció Mérnök informatikus BSc szak, nappali tagozat 2012/2013 II.
2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
OpenCL - The open standard for parallel programming of heterogeneous systems
OpenCL - The open standard for parallel programming of heterogeneous systems GPU-k általános számításokhoz GPU Graphics Processing Unit Képalkotás: sok, általában egyszerű és független művelet < 2006:
A PiFast program használata. Nagy Lajos
A PiFast program használata Nagy Lajos Tartalomjegyzék 1. Bevezetés 3 2. Bináris kimenet létrehozása. 3 2.1. Beépített konstans esete.............................. 3 2.2. Felhasználói konstans esete............................
Hadházi Dániel.
Hadházi Dániel hadhazi@mit.bme.hu Orvosi képdiagnosztika: Szerepe napjaink orvoslásában Képszegmentálás orvosi kontextusban Elvárások az adekvát szegmentálásokkal szemben Verifikáció és validáció lehetséges
Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.
Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010. május 1. BEVEZETÉS Az útmutató célja az Országos Területrendezési
A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows 7 operációs rendszer és Internet Explorer 9 verziójú böngésző esetén
A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows 7 operációs rendszer és Internet Explorer 9 verziójú böngésző esetén Tartalomjegyzék 1. Az Internet Explorer 9 megfelelősségének
Felhasználói dokumentáció. a TávTagTár programhoz. Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43
a TávTagTár programhoz Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43 Tartalomjegyzék Futási feltételek... 3 Telepítés... 3 Indítás... 3 Főablak... 4 Új személy felvétele...
Takács Árpád K+F irányok
Takács Árpád K+F irányok 2016. 06. 09. arpad.takacs@adasworks.com A jövőre tervezünk Az AdasWorks mesterséges intelligencia alapú szoftverterfejlesztéssel és teljes önvezető megoldásokkal forradalmasítja
III.6. MAP REDUCE ELVŰ ELOSZTOTT FELDOLGOZÁSI ALGORITMUSOK ÉS TESZTKÖRNYEZET KIDOLGOZÁSA ADATBÁNYÁSZATI FELADATOK VÉGREHAJTÁSÁHOZ
infokommunikációs technológiák III.6. MAP REDUCE ELVŰ ELOSZTOTT FELDOLGOZÁSI ALGORITMUSOK ÉS TESZTKÖRNYEZET KIDOLGOZÁSA ADATBÁNYÁSZATI FELADATOK VÉGREHAJTÁSÁHOZ KECSKEMÉTI ANNA KUN JEROMOS KÜRT Zrt. KUTATÁSI
AUTOMATIKUS KÉPFELDOLGOZÁS A HADITECHNIKÁBAN A CELLULÁRIS NEURÁLIS HÁLÓZAT
Buzási Tibor AUTOMATIKUS KÉPFELDOLGOZÁS A HADITECHNIKÁBAN A CELLULÁRIS NEURÁLIS HÁLÓZAT A következő bemutató témája a Celluláris Neurális Hálózat (CNN) technológiára épülő, a hagyományos képfeldolgozási
RIEL Elektronikai Kft v1.0
DeskCamera v1.6.1 1. DESKCAMERA A DeskCamera segítségével lehetőség nyílik a számítógép monitorán megjelenő képet rögzítő (NVR, DVR) segítségével rögzíteni. 1.1. TECHNIKAI ADATOK Maximális monitor szám:
[1000 ; 0] 7 [1000 ; 3000]
Gépi tanulás (vimim36) Gyakorló feladatok 04 tavaszi félév Ahol lehet, ott konkrét számértékeket várok nem puszta egyenleteket. (Azok egy részét amúgyis megadom.). Egy bináris osztályozási feladatra tanított
SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával
SAT probléma kielégíthetőségének vizsgálata masszív parallel mesterséges neurális hálózat alkalmazásával Tajti Tibor, Bíró Csaba, Kusper Gábor {gkusper, birocs, tajti}@aries.ektf.hu Eszterházy Károly Főiskola
A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan
Telepítés internetről A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan Új szolgáltatásunk keretén belül, olyan lehetőséget kínálunk a TERC VIP költségvetéskészítő program
Sergyán Szabolcs szeptember 21.
Éldetektálás Sergyán Szabolcs Budapesti Műszaki Főiskola Neumann János Informatikai Kar 2009. szeptember 21. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 1 / 28 Mit nevezünk élnek? Intuitív
Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda.
Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. BEDTACI.ELTE Programozás 3ice@3ice.hu 11. csoport Feladat Madarak életének kutatásával foglalkozó szakemberek különböző településen különböző madárfaj
3. Szűrés képtérben. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (http://www.inf.u-szeged.hu/~kato/teaching/)
3. Szűrés képtérben Kató Zoltán Képfeldolgozás és Számítógépes Grafika tanszék SZTE http://www.inf.u-szeged.hu/~kato/teaching/ 2 Kép transzformációk típusai Kép értékkészletének radiometriai információ
TERC V.I.P. hardverkulcs regisztráció
TERC V.I.P. hardverkulcs regisztráció 2014. második félévétől kezdődően a TERC V.I.P. költségvetés-készítő program hardverkulcsát regisztrálniuk kell a felhasználóknak azon a számítógépen, melyeken futtatni
Adatelemzés SAS Enterprise Guide használatával. Soltész Gábor solteszgabee[at]gmail.com
Adatelemzés SAS Enterprise Guide használatával Soltész Gábor solteszgabee[at]gmail.com Tartalom SAS Enterprise Guide bemutatása Kezelőfelület Adatbeolvasás Szűrés, rendezés Új változó létrehozása Elemzések
Interfészek. PPT 2007/2008 tavasz.
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált
2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
Multimédiás adatbázisok
Multimédiás adatbázisok Multimédiás adatbázis kezelő Olyan adatbázis kezelő, mely támogatja multimédiás adatok (dokumentum, kép, hang, videó) tárolását, módosítását és visszakeresését Minimális elvárás
Deep learning. bevezetés
Deep learning bevezetés Egy kis történelem - a kezdetek 1957 - Frank Rosenblatt: Perceptron A perceptron algoritmus első implementációja a Mark I Perceptron gép 20 20 pixeles képet adó kamerához volt kötve
Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.
Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb
Technikai információk fejlesztőknek
Technikai információk fejlesztőknek Különbségek a Java-s nyomtatványkitöltő program és az Abev2006 között 1. A mezőkód kijelzés bekapcsolása a Szerviz/Beállítások ablakban érhető el. 2. Az xml állományok
SCILAB programcsomag segítségével
Felhasználói függvények de niálása és függvények 3D ábrázolása SCILAB programcsomag segítségével 1. Felhasználói függvények de niálása A Scilab programcsomag rengeteg matematikai függvényt biztosít a számítások
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás 15. Digitális Alakzatrekonstrukció Méréstechnológia, Ponthalmazok regisztrációja http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiiav54
Fuzzy rendszerek és neurális hálózatok alkalmazása a diagnosztikában
Budapesti Műszaki és Gazdaságtudományi Egyetem Fuzzy rendszerek és neurális hálózatok alkalmazása a diagnosztikában Cselkó Richárd 2009. október. 15. Az előadás fő témái Soft Computing technikák alakalmazásának
Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba
Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen
EEE Kutatólaboratórium MTA-SZTAKI Magyar Tudományos Akadémia
DElosztott I S T R I B U T EEsemények D EV E N T S A NElemzé A L Y S I S se R E SKutatólaboratór E A R C H L A B O R A T Oium R Y L I D A R B a s e d S u r v e i l l a n c e Városi LIDAR adathalmaz szegmentációja
Sú gó az ASIR/PA IR Públikús felú lethez
Sú gó az ASIR/PA IR Públikús felú lethez Súgó a magyarországi központi Agrárstatisztikai és Piaci Árinformációs rendszer publikus moduljához. 1 Publikus felhasználói regisztráció A publikus felület Regisztráció
Első egyéni feladat (Minta)
Első egyéni feladat (Minta) 1. Készítsen olyan programot, amely segítségével a felhasználó 3 különböző jelet tud generálni, amelyeknek bemenő adatait egyedileg lehet változtatni. Legyen mód a jelgenerátorok
Megerősítéses tanulás
Megerősítéses tanulás elméleti kognitív neurális Introduction Knowledge representation Probabilistic models Bayesian behaviour Approximate inference I (computer lab) Vision I Approximate inference II:
BEKE ANDRÁS, FONETIKAI OSZTÁLY BESZÉDVIZSGÁLATOK GYAKORLATI ALKALMAZÁSA
BEKE ANDRÁS, FONETIKAI OSZTÁLY BESZÉDVIZSGÁLATOK GYAKORLATI ALKALMAZÁSA BESZÉDTUDOMÁNY Az emberi kommunikáció egyik leggyakrabban használt eszköze a nyelv. A nyelv hangzó változta, a beszéd a nyelvi kommunikáció
Grafikonok automatikus elemzése
Grafikonok automatikus elemzése MIT BSc önálló laboratórium konzulens: Orosz György 2016.05.18. A feladat elsődleges célkitűzései o eszközök adatlapján található grafikonok feldolgozása, digitalizálása
HF-DVR H.264 Hálózati Rögzítő. Felhasználói kézikönyv
HF-DVR H.264 Hálózati Rögzítő Felhasználói kézikönyv Bevezető Ez a felhasználói kézikönyv a HF-DVR5704T 4 csatornás H.264 tömörítésű hálózati rögzítő használatát mutatja be. Nem tér ki az eszköz telepítésére,
3D számítógépes geometria és alakzatrekonstrukció
3D számítógépes geometria és alakzatrekonstrukció 15. Digitális Alakzatrekonstrukció Méréstechnológia, Ponthalmazok regisztrációja http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiima01
Útjelzések, akadályok felismerése valós időben
Útjelzések, akadályok felismerése valós időben Dr. Hidvégi Timót Széchenyi István Egyetem Győr, 9026, Egyetem tér 1. hidvegi@sze.hu 1. Bevezető Sajnos a közúton a balesetek egy része abból adódik, hogy
DIGITÁLIS TEREPMODELL A TÁJRENDEZÉSBEN
DIGITÁLIS TEREPMODELL A TÁJRENDEZÉSBEN DR. GIMESI LÁSZLÓ Bevezetés Pécsett és környékén végzett bányászati tevékenység felszámolása kapcsán szükségessé vált az e tevékenység során keletkezett meddők, zagytározók,