Vizuális kódok lokalizációja mély egyenirányított neurális háló használatával

Hasonló dokumentumok
QR kód lokalizáció kaszkádolt gyenge osztályozók használatával

I. LABOR -Mesterséges neuron

Képelemzési módszerek vizuális kódok felismerésére

Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.

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

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

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

Visszacsatolt (mély) neurális hálózatok

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

8. Pontmegfeleltetések

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

Deep Learning a gyakorlatban Python és LUA alapon Tanítás: alap tippek és trükkök

Neurális hálózatok bemutató

Google Summer of Code Project

Intelligens Rendszerek Gyakorlata. Neurális hálózatok I.

AKTUÁTOR MODELLEK KIVÁLASZTÁSA ÉS OBJEKTÍV ÖSSZEHASONLÍTÁSA

Kódverifikáció gépi tanulással

Tanulás az idegrendszerben. Structure Dynamics Implementation Algorithm Computation - Function

Neurális hálózatok elméleti alapjai TULICS MIKLÓS GÁBRIEL

Kétdimenziós mesterséges festési eljárások. Hatások és alkalmazások

Gépi tanulás a gyakorlatban. Lineáris regresszió

Hibadetektáló rendszer légtechnikai berendezések számára

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés

Statisztikai eljárások a mintafelismerésben és a gépi tanulásban

Modellezés és szimuláció. Szatmári József SZTE Természeti Földrajzi és Geoinformatikai Tanszék

E x μ x μ K I. és 1. osztály. pontokként), valamint a bayesi döntést megvalósító szeparáló görbét (kék egyenes)

Konvolúciós neurális hálózatok (CNN)

Intelligens orvosi műszerek VIMIA023

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Élpont osztályozáson alapuló robusztus tekintetkövetés

GPU-Accelerated Collocation Pattern Discovery

NEURONHÁLÓK ÉS TANÍTÁSUK A BACKPROPAGATION ALGORITMUSSAL. A tananyag az EFOP pályázat támogatásával készült.

Magas szintű optimalizálás

Lineáris regressziós modellek 1

Virtuális Egér. Horváth Zsolt, Schnádenberger Gábor, Varjas Viktor március 20.

Modellkiválasztás és struktúrák tanulása

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Neurális hálózatok.... a gyakorlatban

KONVOLÚCIÓS NEURONHÁLÓK. A tananyag az EFOP pályázat támogatásával készült.

Vizuális adatelemzés - Gyakorlat. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Mély neuronhálók alkalmazása és optimalizálása

Automatikus azonosítás és hitelesítés vizuális kódokkal

VI. Magyar Földrajzi Konferencia

Előrenéző és paraméter tanuló algoritmusok on-line klaszterezési problémákra

Fuzzy rendszerek és neurális hálózatok alkalmazása a diagnosztikában

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

ICT ÉS BP RENDSZEREK HATÉKONY TELJESÍTMÉNY SZIMULÁCIÓJA DR. MUKA LÁSZLÓ

Tömörítés, csomagolás, kicsomagolás. Letöltve: lenartpeter.uw.hu

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.

Súlyozott automaták alkalmazása

Új eredmények a mély neuronhálós magyar nyelvű beszédfelismerésben

3. Szűrés képtérben. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

OpenCL - The open standard for parallel programming of heterogeneous systems

Gépi tanulás a Rapidminer programmal. Stubendek Attila

Robotok inverz geometriája

Gépi tanulás a gyakorlatban. Bevezetés

Babeş Bolyai Tudományegyetem, Kolozsvár Matematika és Informatika Kar Magyar Matematika és Informatika Intézet

BitTorrent felhasználók értékeléseinek következtetése a viselkedésük alapján. Hegedűs István

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

[1000 ; 0] 7 [1000 ; 3000]

12. Képtömörítés. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20.

Mesterséges neurális hálózatok II. - A felügyelt tanítás paraméterei, gyorsító megoldásai - Versengéses tanulás

Követelmény a 7. évfolyamon félévkor matematikából

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS

KÉPFELDOLGOZÁS. 10. gyakorlat: Morfológiai műveletek, alakjellemzők

13. Egy x és egy y hosszúságú sorozat konvolúciójának hossza a. x-y-1 b. x-y c. x+y d. x+y+1 e. egyik sem

Tanulás tanuló gépek tanuló algoritmusok mesterséges neurális hálózatok

Grafikonok automatikus elemzése

Függvények növekedési korlátainak jellemzése

Gépi tanulás Gregorics Tibor Mesterséges intelligencia

4. Fejezet : Az egész számok (integer) ábrázolása

A KLT (Kanade Lucas Tomasi) Feature Tracker Működése (jellegzetes pontok választása és követése)

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

Hadházi Dániel.

Számítógépes grafika

The nontrivial extraction of implicit, previously unknown, and potentially useful information from data.

FELÜGYELT ÉS MEGERŐSÍTÉSES TANULÓ RENDSZEREK FEJLESZTÉSE

Least Squares becslés

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Számítógép és programozás 2

Digitális jelfeldolgozás

Multimédiás adatbázisok

Számítógépes döntéstámogatás. Genetikus algoritmusok

Kollektív tanulás milliós hálózatokban. Jelasity Márk

A fejlesztés várt eredményei a 1. évfolyam végén

Új alapokon az egészségügyi informatika

Panorámakép készítése

Gépi tanulás. Hány tanítómintára van szükség? VKH. Pataki Béla (Bolgár Bence)

BEKE ANDRÁS, FONETIKAI OSZTÁLY BESZÉDVIZSGÁLATOK GYAKORLATI ALKALMAZÁSA

A kibontakozó új hajtóerő a mesterséges intelligencia

Teljesen elosztott adatbányászat pletyka algoritmusokkal. Jelasity Márk Ormándi Róbert, Hegedűs István

Megkülönböztetett kiszolgáló routerek az

Struktúra nélküli adatszerkezetek

Sergyán Szabolcs szeptember 21.

Matematika. 1. osztály. 2. osztály

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Átírás:

Vizuális kódok lokalizációja mély egyenirányított neurális háló használatával Bodnár Péter, Grósz Tamás, Tóth László, Nyúl László Szegedi Tudományegyetem Képfeldolgozás és Számítógépes Grafika Tanszék MTA-SZTE Mesterséges Intelligencia Kutatócsoport {bodnaar, groszt, tothl, nyul}@inf.u-szeged.hu Absztrakt A számítógéppel automatikusan olvasható vizuális kódok a mindennapjaink részévé váltak az ipari alkalmazásokban és a személyes felhasználási területeken is. A leolvasási folyamat két lépésből áll, a kód lokalizálásából és a hordozott adat dekódolásából. Ebben a munkában egy lokalizálási módszert mutatunk be konvencionális és mély egyenirányított neurális hálók használatával. Ezeket a hálókat a DCT térben is kiértékeljük, ahol szintén hatékonynak bizonyultak. Ez azt jelenti, hogy a JPEG képeket használó alkalmazásokban a teljes dekompresszió nem szükséges. Ez a megközelítés hatékony a tárhely és számítási kapacitás tekintetében is, mivel a legtöbb kamera képes JPEG streamet adni outputként. A hálózatok szerkezete, a regularizáció, a különböző tanítási paraméterek, mint az input vektor, az átfedés mértéke a mintákban, a különböző blokkméret mind kiértékelésre kerül. A GPU-n implementált neurális hálók használata lehetővé teszi a gyors, valós idejű, automatikus kód-lokalizációt. A javasolt módszert QR-kódokon mutatjuk be. 1. Bevezetés A különböző kétdimenziós kódformátumok széles körben elterjedtek ipari és magáncélú felhasználási területeken egyaránt. A QR kód egyike ezeknek a népszerű formátumoknak, jól definiált struktúrával, mely lehetővé teszi a számítógépek és beágyazott rendszerek általi automatikus leolvasást. Ezek a kódok jóval több adatot képesek tárolni, mint egydimenziós elődeik, a vonalkódok. A QR kódok elterjedtsége jelentősen nőtt az elmúlt években, megelőzve a többi kétdimenziós kódformátumot, mint az Aztec code és a Maxicode. A képalkotási eljárások és a hardver jelentős fejlődése lehetővé tette a kódok automatikus leolvasását. A jelenlegi algoritmusok nem igényelnek többé emberi A dolgozat angol nyelven a következő helyeken jelent meg: Grósz T; Bodnár P; Tóth L; Nyúl L G: QR code localization using deep neural networks, In: International Workshop on Machine Learning for Signal Processing: Proceedings of MLSP2014. IEEE, 2014, Paper 43, 6p.; Bodnár P; Grósz T; Tóth L; Nyúl L: Localization of Visual Codes in the DCT Domain Using Deep Rectifier Neural Networks, In: International Workshop on Artificial Neural Networks and Intelligens Information Processing: Proceedings of ANNIIP 2014, SCITEPRESS, 2014. pp. 37 44.

beavatkozást a kód leolvasásához, sem feltételezéseket a kód helyzetére és méretére a képtérben. A képalkotó berendezések, a képminőség és a végfelhasználói alkalmazások sokfélesége változatos igényeket támaszt a leolvasás sebességét és pontosságát illetően, ami nehezíti általános célú algoritmusok megtervezését. A QR kódok visszafejtésének két lépése a kód lokalizálása és a hordozott adat dekódolása. A szakirodalom széles körben tárgyal hatékony QR kód lokalizálási algoritmusokat, melyek a végfelhasználó igényeinek megfelelően nagyobb sebességre vagy pontosságra törekednek. Chu és mtsai. munkája [1] egyszerű és gyors megoldást kínál okostelefonhardverre. A felismerést a lokalizációs minták (Finder Pattern, FIP) segítségével végzik a pixelsorokat feldolgozó scan-line módszerrel, amit a régebbi kódolvasó készülékek is végeznek. Az így nyert egydimenziós intenzitásprofil futamhosszait elemzi és egy-egy irány mentén FIP jelölteket állít. A módszerük egyszerűen implementálható és gyors, de érzékeny a zajra. Ohbuchi és mtsai. [2] a lokalizációs lépésben dilatációt használ, ami szűk végrehajtási keresztmetszet lehet mobil eszközökön. A morfológia alkalmazásából eredő többletszámítást leskálázott képek feldolgozásával hidalják át. Belussi és mtsai. [3] gépi tanulást használ a FIP-ek megtalálására. Gyenge osztályozókat tanít Haar jellemzőkkel, melyet kaszkád struktúrába szervez. A módszerük gyors és testreszabható, viszont az eredményeik azt mutatják, hogy jelentős mennyiségű hamis pozitív példányt termel. Sörös és mtsai. [4] és Szentandrási és mtsai. [5] szintén matematikai morfológiát használnak Hough-transzformációval és sarokdetektálással. Ezek a műveletek pontos eredményeket szolgáltatnak, de lassúk a gyengébb mobil eszközökön. A sebesség általános probléma, és a legtöbb algoritmusnál a valós idejű végrehajtás követelmény. A gépi tanulási módszerek ki tudják elégíteni ezt a követelményt miközben pontos megoldásokat képesek szolgáltatni. Az elmúlt néhány évben jelentősen megnőtt az érdeklődés a neurális hálózatok, főleg a mély neurális hálók iránt. Ahogy a név sejteti, a mély hálók (Deep Neural Network, DNN) abban különböznek a hagyományos neurális hálóktól (ANN), hogy több rejtett réteget tartalmaznak. Ahhoz, hogy ezeket a hálókat hatékonyan tanítsuk, a hagyományos back-propagation algoritmus módosításra szorul, mivel olyan nehézségek lépnek fel, mint az eltűnő gradiens (vanishing gradient) és az el-magyarázás (explaining away) effektusa. Az eltűnő gradiens azt jelenti, hogy egy hiba képes eltűnni ahogy a rejtett rétegeken visszacsatoljuk [6]. Így néhány rejtett réteg, főleg amelyek közel vannak az input réteghez, bizonyos esetekben képtelenek hatékonyan tanulni. Ugyanekkor a teljes mély hálóknál az el-magyarázás nagyon megnehezíti a tanulást [7]. Számos megoldást javasoltak már ezekre a problémákra. Ezek a megoldások vagy a tanulási algoritmust módosítják az által, hogy kiegészítik előtanítási fázissal [7, 8], vagy a neurális hálók architektúrájára javasolnak változtatásokat [9]. A JPEG [10] szabvány az egyik leggyakoribb állókép-formátum, mely hatékony átvitelt és tárolást biztosít. A legtöbb kamera képes a képeket közvetlenül JPEG formátumba tömöríteni, néhány eszköz JPEG streamet is tud adni kimenetként, ami nagyban motiválja olyan képfeldolgozási módszerek fejlesztését,

amik a formátum előnyeit kihasználják. Ebben a munkában javaslunk egy mély egyenirányított neurális hálót, mely közvetlenül a DCT tartományban tanul. Ezzel a módszerrel a dekompressziónak csak az első néhány egyszerű lépését kell végrehajtani, az inverz DCT transzformáció elhagyható. 2. A javasolt módszer A lokalizációs folyamat első lépése a kép uniform partícionálása négyzet alakú blokkokra. A neurális háló egyesével feldolgozza a blokkokat és egy mérőszámot társít hozzájuk, ami a QR kód egy részének a blokkon belüli előfordulási valószínűsége. Miután minden blokkot kiértékelünk, egy mátrix készül ezekből az értékekből (1. ábra). A következő lépés ebben a mátrixban összefüggő, kompakt régiókat keresni, melyek elegendő méretűek és minden elemük magas valószínűséget tartalmaz. Ezeknek a régióknak a középpontját és befoglaló téglalapját adjuk meg utolsó lépésként, amelyek a valószínűsített QR kód-régiókat tartalmazzák. (a) példa kép (b) jellemzőkép 1. ábra. Okostelefon kamerájával készített kép és hozzá tartozó jellemzőkép a neurális háló kimenete alapján (MATLAB JET paletta). Minden blokkból egy vektort formálunk úgy, hogy a blokkon belül egy kör mentén olvassuk a pixeleket [11]. Ez a módszer eredetileg vonalkódokra készült, de hasonló elv alkalmazható kétdimenziós kódokra is. Utóbbi esetben nem szükséges futamhosszokat számolni, elég a kör mentén kiolvasni az intenzitásokat, és az így nyert vektor a blokkon belül jól tanulható jellemzőt ad QR kód jelenlétének eldöntésére. Eközben a beolvasott pixelek száma a blokkon belül alacsony, tipikusan 6-10 %, ezen kívül előnye, hogy orientációtól függetlenül képes QR kód jelenlétét jelezni. 2.1. A neurális háló A körmenti minta mentén nyert vektorokat adjuk a neurális hálónak inputként. Ebben a munkában a konvencionális (ANN) és a mély egyenirányított (Deep Rectifier Network, DRN) neurális hálókat értékeljük ki. A DRN-ek egyenirányított (rectifier) egységeket használnak, ami abban különbözik a hagyományostól, hogy az aktivációs függvénye max(0, x) a szigmoid vagy hiperbolikus aktiváció helyett. A DRN nem igényel előtanítást ahhoz, hogy jó eredményt érjen el [9].

2. ábra. Példa blokkon belüli körmenti vektorképzésre, a hozzá tartozó intenzitásprofillal A rectifier függvénynek két fontos paramétere van. Egyik a teljes szaturáció a negatív input síkon és a lineáris viselkedés a pozitív input síkon. Az első tulajdonság azt jelenti, hogy a neuronoknak csak egy részhalmaza aktív minden rejtett rétegben. Például ha uniform módon inicializáljuk a súlyokat, nagyjából a rejtett rétegek neuronjainak fele 0 lesz. Elméletben ez a teljes szaturáció sérti az optimalizálási folyamatot, mivel gátolja a gradiens visszaterjesztését. Szerencsére a kísérleti eredmények ezt nem támasztják alá, sőt azt mutatják, hogy a gradiens visszaterjesztése működik, amennyiben van lehetősége valamilyen útvonal mentén terjedni [9]. A másik tulajdonságnak, a lineáris viselkedésnek köszönhetően az eltűnő gradiens jelensége sem lép fel [9]. Ez a lineáris viselkedés azt is jelenti, hogy a számítási költség kisebb, mivel nincs szükség exponenciális függvényre az aktiváció számolásakor, és a ritka természet szintén kihasználható. A módszer hátránya szintén a linearitásban rejlik. A jelenséget robbanó gradiens -nek nevezik, ami azt jelenti, hogy a gradiens korlátok nélkül nőhet. Ahhoz, hogy ezt megakadályozzuk, L1 normalizációt hajtunk végre a súlyokon úgy, hogy skálázzuk a réteg súlyait, hogy annak L1 normája ugyanaz maradjon, mint inicializálás után. Ezt az teszi lehetővé, hogy egy adott bemenetre az aktív neuronok halmaza lineárisan viselkedik, tehát a skálázás egy adott rétegben ekvivalens az aktiváció skálázásával. Az általunk javasolt mély hálók három rejtett rétegből és rétegenként 1000 neuronból állnak. Ez a konfiguráció viselkedett legmegfelelőbben az eddigi fejlesztés során, és általánosan elmondható, hogy jobban teljesít a hasonló kifejező erővel bíró, 3000 neuront tartalmazó konvencionális neurális hálónál. A kimeneti réteg két softmax típusú neuronból áll, egy a pozitív és egy a negatív címkéhez, ami lehetővé teszi, hogy a hálózatok ne csak osztályozást hanem posterior valószínűségeket is tanuljanak. Hibafüggvényként a kereszt-entrópiát alkalmazzuk. A tanulmányunkban két regularizációs módszert alkalmaztunk a túlillesztés elkerülésére, a korai leállást és a súlyok regularizációját. A korai leállást úgy definiáltuk, hogy a tanulás megáll, amennyiben nincs jelentős javulás két iteráció között a validációs halmazon. A súlyok regularizációjaként minden iterációban skálázzuk a súlyokat, amivel arra kényszerítjük, hogy kisebb értékekhez konvergáljanak, mint egyébként.

A neurális hálózatokat semi-batch backpropagation módszerrel tanítottuk, a batch mérete 100 volt. A kezdeti tanulási ráta 0.001 volt, és fixen maradt mindaddig, amíg a hiba csökkenést mutatott az iteráció során. Amennyiben a hiba nem csökkent két iteráció között, a tanítási rátát feleztük. A neurális háló implementációjához saját megoldást használtunk, ami GPU-n történő futtatást biztosít, nagyjából 20-szorosára gyorsítva a tanulást. A DRN tanítása a szintetikus adatbázison NVIDIA GTX-770 videokártyával 8 percet vett igénybe. 2.2. Bemeneti adatok A bemeneti vektorok közül azokat címkézzük pozitívnak, amely blokkok QR kóddal történő lefedettsége meghaladja a T c küszöbértéket. Tipikusan az F-score értéke T c 0.5-nál éri el a maximumot, míg T c 0.1 segítségével tudjuk biztosítani a legjobb recall értéket. Megjegyezzük, hogy ezek a részben fedett blokkok egy nagyságrenddel kisebb számban fordulnak elő, mint az üres és a teljesen QR kóddal fedett blokkok, ezért T c megválasztása nem kulcsfontosságú paraméter a tanuláshoz. Továbbá, ha a neurális háló el is téveszt néhány részben fedett blokkot, az csak annyit jelent, hogy a QR kód kerületi blokkjait tévesen bírálja el. Ilyen esetben még mindig elég teljesen fedett, pozitívnak ítélt blokkunk marad, melyek dilatációjával biztonságos befoglaló dobozokat nyerhetünk a megtalált kód-jelöltekhez. A bemeneti adatok több lehetőséget kínálnak, ezért külön tanításokat végeztünk minden típussal. Az első tanítás egyszerű pixeladatokkal történt a tárgyalt körmenti mintában olvasva. Az adatok bináris verzióját szintén kipróbáltuk, hogy összehasonlítsuk a hálók hatékonyságát szürkeárnyalatos és bináris képek között. Mivel a QR kódok jól definiált, kötött szabályok szerinti struktúrában épülnek fel, ezek feltételezhetően jellemző értékeket adnak a frekvenciatérben. Ez a feltételezés indokolta a tanítás kipróbálását a frekvenciatérben. A bemeneti vektorokat transzformáltuk a DCT és DFT tartományokba, és külön hálókat tanítottunk rájuk. Különösen érdekes a DRN-ek teljesítménye a DCT térben, hiszen rengeteg eszköz képes hardveres JPEG tömörítést végezni, amit előnyünkre használhatunk. Utolsó kiértékelésnek kipróbáltuk az éltérképet, mint bemenetet. A QR kódok struktúrája kötött élkiosztásokat eredményez, ami szintén jól tanulható. A tanító vektorok ebben az esetben a Sobel-X és Sobel-Y magnitúdóképek összegeként előállt blokkok körmenti olvasásából adódtak (3. ábra). Az megfelelő blokkméret megválasztásánál két feltételt kell figyelembe vennünk. A blokkméretnek elég kicsinek kell lennie ahhoz, hogy sok blokkból álljon egy QR kód, és ennél fogva könnyen választhassunk küszöbértéket a jellemzőmátrixban megtalált komponensek megtartására vagy eldobására. Más részről a blokkméretnek elég nagynak kell lennie, hogy a QR kódok karakterisztikája megjelenjen a jellemzővektorokban. Egy vizuális kódok lokalizálásáról szóló korábbi írás empirikus úton és geometriai következtetéssel arra az eredményre jutott [11], hogy az optimális blokkméret a megtalálandó kód rövidebb oldalának nagyjából harmadára esik. Ez volt a kísérleteink kiindulópontja, de megvizsgáltuk a hálók tanulási képességét különböző blokkméretekkel is. Miután döntést

(a) példa szintetikus kép (b) él magnitúdó kép 3. ábra. Példa szintetikus kép és Sobel X+Y magnitúdó kép. hozunk a megfelelő blokkméretről, az átlapolás mértékét is el kell dönteni. Különböző átlapolásokat teszteltünk empirikus úton, mivel a szakirodalom nem tesz kategorikus kijelentéseket optimális értékekről erre a paraméterre. 2.3. DCT domain, JPEG képek A JPEG képeket használó alkalmazásokban a blokkméret fix 8 8 px nagyságú, és a JPEG dekódolási folyamatot meg tudjuk állítani azon a ponton, ahol a kvantált DCT együtthatókat visszaállítjuk a fájlból, rögtön az inverz futamhossz és Huffmann-kódolás után. Az együtthatók mátrixában minden elem egy 8 8 px blokkot reprezentál, ami a DRN bemenetéül szolgál. Az együtthatók sorrendjében megtartottuk a cikk-cakk mintázatot, amit a JPEG standard is definiál. A tanítás nem függ a vektorok elemeinek sorrendjétől egy adott tanító halmazban, amennyiben minden vektor ugyanazzal a sorrenddel bír. Ezen kívül az együtthatóknak ez a rendezése a vizuális fontosságot is tükrözi, így a sorrend megtartása alkalmat ad arra, hogy kiértékeljük az adott együttható-vektornak a hatékony tanításhoz szükséges prefixét. A bemeneti vektorok egydimenziósak és a kvantált DCT együtthatók alkotják. A dekódolás során a kvantálótáblával történő visszaszorzás szintén elhagyható két okból is. Egyrészt a neurális hálók nemlineáris természetük folytán képesek ugyanolyan hatékonysággal megtanulni egy vektorhalmazt, amelyben minden vektor elemenként ugyanazzal a vektorral van szorozva, más részről ezek a bemeneti vektorok normalizálva vannak [12] nulla átlagra, és ez gyorsabb konvergenciát biztosítva javítja a kondíciót a tanulás során. Ezzel a felállással a DRN-t ugyanolyan tömörítettségű képekre kell tanítani, mint a végfelhasználói alkalmazás igényli, hiszen nem a DCT együtthatómátrixot, hanem annak kvantált változatát tanítjuk, és ez különböző tömörítésnél ugyanarra a képi adatra jelentősen eltérő vektorokat eredményez. Ahhoz, hogy ezt áthidaljuk, használhatjuk a de-kvantált vektorokat, melyek hasonlóak lesznek hasonló tömörítési szinteken. Ennek részletes kiértékelését a következő szekcióban és a 8. ábrán látjuk.

3. Eredmények A teszt adatbázis 10 000 szintetikus és 100 valós képet tartalmaz QR kóddal. A szintetikus példák számítógéppel készített, alfanumerikus adatot tartalmazó QR kódok, melyeket kódot nem tartalmazó, véletlenszerű képekre helyeztünk. A képeken ezután Gauss-simitást végeztünk [0,3] intervallumba eső σ értékkel a kernelben. A képeket ezután zajjal láttuk el, ami egy véletlen zajkép generálását In és annak az eredeti képpel Io való súlyozott összeadását jelenti I = αin + (1 α)io, ahol α a [0,0.5] tartományba esik. A végleges értékek meghatározásakor szaturációs aritmetikát követve [0,255] tartományba kényszerítettük a túllógó értékeket. Néhány így előállított képet a 4. ábra szemléltet. Ezekből a képekből összesen 1.8 millió vektor nyerhető ki, amiből 400 000 pozitív címkéjű. A valós képek 3.2 Mpx Huawei okostelefonnal készültek, ezeken a képeken jelentős simítás és zaj lépett fel az autofókusz és a vaku hiánya miatt. Az így készített képek nyomtatott QR kódokat tartalmaznak, melyeket változatos textúrájú felületekre helyeztünk, mint például ruhára, szőnyegre, márványra vagy egy könyv borítójára (1(a) és 5(d) ábrák), hogy a változatos háttér nehezebbé tegye a osztályozást. Ezekből a képekből blokkmérettől függően 350 000 750 000 vektort lehet kinyerni, amiből 80 000 180 000 pozitív címkéjű. Ezeket a képeket szürkeárnyalatossá konvertáltuk a vektorok kinyerése előtt. (a) σ = 0.07, α = 0.39 (b) σ = 0.65, α = 0.77 (c) σ = 1.32, α = 0.05 (d) σ = 1.88, α = 0.95 (e) σ = 2.86, α = 0.65 (f) σ = 2.99, α = 0.69 4. ábra. Példák a mesterséges teszt-adatbázisból különböző mértékű simítással és zajjal.

3.1. Bemeneti adatok A neurális hálók első csoportjának tanításával a legmegfelelőbb input vektorok meghatározását végeztük el. Az első tanítóhalmaz nem tartalmazott egész képeket, csak a képekből kinyert olyan vektorokat, melyek 100 % lefedettséggel QR kód darabot tartalmaztak, illetve azonos mennyiségű negatív címkéjű vektort, összesen nagyjából 500 000 vektort. Mind a konvencionális mind a mély neuronhálók kiértékelésre kerültek, az eredményeket az 1. táblázatban látjuk. A mély hálók általában felülmúlják a konvencionális hálókat, és a 8-bites adatok jobbnak bizonyulnak a binárisnál. A DCT és DFT együttható-vektorok használata nem befolyásolja jelentősen a tanulást, és bár ezek a transzformációk könnyen elvégezhetők GPU-n, nem érik meg a ráfordítást. Abban az esetben viszont, ha a vektorok már a DCT domainből származnak, a tanulás elvégezhető inverz DCT és a nyers pixeladatok előállítása nélkül, ami nagy előnyt jelent a közvetlen JPEG DCT vektor tanulásakor. 1. táblázat. Különböző bemeneti adatok kiértékelése. Input data Input range Precision Hit rate F-measure ANN Raw pixels 8-bit 0.9892 0.9953 0.9922 Raw pixels binary 0.9705 0.9846 0.9774 DCT 8-bit 0.9889 0.9951 0.9920 DCT binary 0.9693 0.9860 0.9776 DFT 8-bit 0.9904 0.9981 0.9943 DFT binary 0.9711 0.9808 0.9760 Sobel-XY 8-bit 0.9979 0.9990 0.9984 DRN Raw pixels 8-bit 0.9947 0.9972 0.9959 Raw pixels binary 0.9704 0.9862 0.9782 DCT 8-bit 0.9941 0.9967 0.9954 DCT binary 0.9686 0.9873 0.9778 DFT 8-bit 0.9933 0.9958 0.9945 DFT binary 0.9621 0.9850 0.9734 Sobel-XY 8-bit 0.9978 0.9991 0.9984 A Sobel magnitúdó-képek kis mértékben javítják a tanulás hatékonyságát, ami várható, hiszen az éltérkép célzott inputnak tekinthető (3. ábra). A használt neurális hálók 60 60 px blokkmérettel készültek, ami nagyjából a képen fellelhető QR kódok oldalhosszának a harmadát jelentik. Az átlapoláshoz a blokkok offset értéke 10 px, ami nagyjából megfelel a generált kódok struktúráló eleme méretének. Minden vektor 128 elemből áll, ami a blokkon belüli körvonal mentén mintavételezett intenzitásokat tartalmazza. A tanítást elvégeztük a valós adatbázison is, kiértékeltük a 8-bites inputon tanult hálókat. A pontosság 0.4 körüli értékre csökkent, de a recall elfogadható maradt. A 2. táblázat tartalmazza a konvencionális és a mély neurális hálók

mérőszámait. A pontosság esése valószínűleg a valós képhalmazban fellelhető textúrák sokfélesége és a kevesebb input vektor miatt következett be. 2. táblázat. A neurális hálók kiértékelése valós képeken. NN type Precision Hit rate F-measure ANN 0.5508 0.9895 0.7077 DRN 0.4395 0.9979 0.6103 3.2. Részben kódot tartalmazó blokkok Az első esetben a tanítás csak olyan vektorokkal történt, melyek teljesen kódot vagy hátteret tartalmaztak. A következő lépésként a vektorokat kiegészítettük a részben lefedett blokkokkal, kipróbáltuk 0.1 és 0.5 küszöbértékekkel, mely a lefedettség arányát küszöbölve pozitívnak címkézi a vektort. A negatív példák mennyiségét nem korlátoztuk. Mind az ANN-eket mind a DRN-eket kiértékeltük a szintetikus és valós adatbázison is. Az eredményeket a 3. táblázat szemlélteti. A részben kódot tartalmazó blokkok engedélyezése jelentősen csökkenti a pontosságot, továbbá a 0.1-es küszöbértékkel végzett pozitív címkézés megtartja a magas recallt, a 0.5-ös küszöb viszont nagyban csökkenti (5. ábra). Mégsem probléma az alacsony recall, mivel kellő mennyiségű helyesen pozitívnak jósolt blokk marad a jellemzőmátrixban, ami képes jelezni a QR kód-jelölt jelenlétét még ezekben az esetekben is (5(e) ábra). 3. táblázat. A neurális hálók kiértékelése részben fedett blokkok bevonásával, különböző címkézési küszöbértékek használatával. NN type Data type Precision Hit rate F-measure T + = 0.1 ANN Real 0.6454 0.9518 0.7692 DRN Real 0.6699 0.9419 0.7829 ANN Synthetic 0.5654 0.9901 0.7198 DRN Synthetic 0.5630 0.9865 0.7169 T + = 0.5 ANN Real 0.9175 0.5994 0.7251 DRN Real 0.8962 0.8414 0.8679 ANN Synthetic 0.8703 0.8947 0.8823 DRN Synthetic 0.9059 0.9347 0.9201 Láthatjuk, hogy a teljes képen és a korlátozott vektorhalmazon tanított hálók, melyekben nagyjából azonos mennyiségű pozitív és negatív példa volt, nem mutatnak teljesítménybeli különbséget. A részben fedett blokkok kihagyása észrevehetően rontja a teljesítményt. Az eredményeket a 4. táblázat foglalja össze.

(a) Szintetikus példa (b) ANN jellemzőkép (c) DRN jellemzőkép (d) Valós példa (e) ANN jellemzőkép (f) DRN jellemzőkép 5. ábra. Eredeti képek és jellemzőképek a neurális háló kimenetei alapján. Az ANN-ek gyengébben osztályoznak és kihagynak néhány blokkot, mégis elég erősen képesek jelezni a kód jelenlétét a kép adott területén (MATLAB JET paletta). 4. táblázat. DRN eredmények a szintetikus adatbázis különböző input részhalmazain. N + és N jelöli a pozitív és negatív példák számát, míg N + b and N b N + és N azon részhalmazait, melyek nem tartalmazzák a részben fedett blokkokat. Subset Opt. Thresh. max(f 1) AUC All vectors 0.62 0.9343 0.9957 N + N 0.63 0.9270 0.9949 N + b N b 0.82 0.8312 0.9608 3.3. DRN teljesítményadatok a JPEG DCT tartományban Megvizsgáltuk a JPEG DCT együtthatókon tanult DRN-ek teljesítményét. Ahogy várható, jobb képminőség jobb tanuláshoz vezet, ahogyan a 6. ábra is mutatja. Mivel a cikk-cakk minta az együtthatókat vizuális fontosság szerint rendezi, felvetődik a kérdés, mennyi elem szükséges a vektorból ahhoz, hogy hatékony osztályozást végezzünk. A 7. ábra tartalmazza a DRN-ek kiértékelének eredményét, amikor a hálókat csak a vektor első n elemére tanítottuk. Az első 10 elem már elég ahhoz, hogy 0.9 fölötti F-score értéket érjünk el a tanítással, és a teljesítmény már csak elenyészően javul, ha a vektor elemeinek felénél többet használunk fel. Minden adott JPEG minőségen tanult DRN-t megvizsgáltunk az összes halmazon, így mutatva meg a hálók robusztusságát a tömörítési szint tekintetében (8. ábra). Az eredmények azt mutatják, hogy a DRN-ek legjobban akkor teljesítenek, ha a tanítás és a kiértékelés minősége egybeesik, de 10 15 % minőségi

Performance Performance! 6. ábra. DRN teljesítmény a tanító adatok minőségének függvényében.! g vgh 7. ábra. DRN teljesítmény a tanító vektorok hosszának függvényében. tolerancián belül is jó eredményeket ad. A tanításkor nem szükséges tehát pontosan eltalálni a célalkalmazás képeinek minőségét. Hasonló teljesítménycsökkenés figyelhető meg akkor, ha minden tömörítésű minőségen tanult DRN-eket értékelünk ki egy konkrét minőségen. 3.4. Regresszió-tanítás Ahelyett, hogy a részben fedett blokkokat küszöbölnénk, a DRN tanítható regresszióra is. A 5. táblázat mutatja a tanítás eredményeit. Mind az ANN-ek mind a DRN-ek kiértékelésre kerültek, felhasználva a szintetikus és valós adatbázisok összes rendelkezésre álló vektorait, ami nagyjából négyszer annyi negatív vektort jelent, mint teljesen vagy részben kóddal fedettet. A regresszió sikerességének gyakori mérőszámait, az MSE-t és az R 2 -et használtuk a mérésre. A regressziótanulás jellemzőképei a 9. ábrán láthatóak. Nyilvánvaló az eredmények alapján, hogy a valós képeken a sikeres regresszió-tanuláshoz sokkal több vektorra lenne szükség. 3.5. Paraméterek és futásidők Saját implementációjú neurális hálókat használtunk, melyek GPU-ra optimalizáltak, és hozzávetőlegesen 20-szor gyorsabban futnak, mint a CPU-s megvalósítás. A tanulás NVIDIA GTX-770 grafikus kártyán 8 percig tartott. A kártya

8. ábra. Teljesítménytérkép a különböző minőségű JPEG képeken tanított és kiértékelt DRN-ekhez. (a) Szintetikus példa (b) ANN jellemzőkép (c) DRN jellemzőkép (d) Valós példa (e) ANN jellemzőkép (f) DRN jellemzőkép 9. ábra. Eredeti képek és jellemzőképek a regresszió-tanulás kimeneteként. Kék cián narancs lineáris hőtérkép. A pozitív és negatív vektorok 4:1-es aránya alacsonyabbra kényszeríti a predikciót, mint az előző, kiegyensúlyozottabb esetekben. 5. táblázat. A regresszió-tanulás eredményessége. NN type Data type MSE R 2 ANN Real 0.0953 0.0794 DRN Real 0.0490 0.1960 ANN Synthetic 0.0537 0.2874 DRN Synthetic 0.0465 0.2918

450 000 vektort tud kiértékelni másodpercenként, ami 800 600 px képek esetén, 60 px blokkmérettel és 10 px offsettel 5 FPS feldolgozási sebességet nyújt. A JPEG DCT blokkokból álló blokkátfedés nélküli, hasonló méretű képeket 15 FPS sebességgel tudjuk feldolgozni. A kiértékeléshez generált QR kódok elemmérete 10 px. 30 és 90 px közötti blokkméreteket értékeltünk ki. 30 px-nél kisebb blokkméret a konstans fehér és fekete blokkok pozitív címkézéséhez vezet, ami jelentősen megemeli a hamis pozitív rátát. 90 px-nél nagyobb blokkméret szintén csökkenti a teljesítményt, mivel a nagy blokkméret csökkenti a rendelkezésre álló pozitív címkéjű példák számát, melyet az offset finomításával sem kompenzálhatunk. A nagy blokkméret nagy mennyiségű részben fedett blokkot is eredményez, melyek tanulása csökkenti a megbízhatóságot. A blokkméret kiértékelésének eredményeit a 10. ábra tartalmazza. A módszer robusztusnak bizonyult a blokkméret függvényében, mivel a választható tartomány elég nagy. JPEG DCT blokkok esetében a kis méretű blokkok is elég hatékonynak bizonyulnak a tanuláshoz, de ez nyers pixeladat esetén nem mondható el. (a) max(f ) (b) AUC 10. ábra. DRN eredmények az input blokkméret függvényében. A 11. ábra mutatja a DRN mérőszámait különböző mennyiségű átlapolással, egészen 60 pixelig, ami az átlapolás nélküli blokkcsúsztatás. Az F-score értéke nem javul jelentősen 10 és 60 pixelnyi átlapolás között, tehát érdemes minimális vagy semmilyen átlapolást nem használó vektorokat használni, így csökkentve a kiértékelendő vektorok számát. A JPEG DCT blokkok esetén szintén nincs átlapolás a blokkok kiértékelésében. Ezen vizsgálatok után egy DRN-t tanítottunk az eddigi legjobb paraméterekkel, hogy összehasonlítsuk a szakirodalomban elérhető módszerekkel. A 6. táblázat mutatja be az eredményeket. A neurális hálók alkalmasnak bizonyultak

(a) max(f ) (b) AUC 11. ábra. DRN eredmények a blokkok egymáshoz viszonyított eltolásának függvényében, 60 pixeles blokkmérettel. valós idejű hatékony QR kód lokalizációra. Első összehasonlításnak egy matematikai morfológián alapuló módszert választottunk [2]. Ez a módszer megbízható, de lassúnak bizonyult a morfológiai műveletek miatt, 900 és 1300 ms szükséges képenként az elemzéshez. Egy másik munka kaszkádolt osztályozót használ gyenge Haar jellemzőkkel [3]. 6. táblázat. A javasolt módszer összehasonlítása egyéb módszerekkel. Módszer Precision Recall F-measure Javasolt RAW DRN 0.9360 0.9327 0.9343 Javasolt JPEG DCT 0.9607 0.9770 0.9899 REF-HAAR [3] 0.1535 0.9436 0.2640 REF-MORPH [2] 0.6989 0.9930 0.8042 REF-OHBUCHI [1] 1.0000 0.8370 0.9113 REF-LIN [13] 0.9340 0.9490 0.9414 A DRN pontossága a valós halmazon gyengébb, ami a kisebb számosságú tanító vektorhalmaz eredménye. Továbbá a valós képek QR kódjai kissé nagyobbak, így nehezebben tanulható, nagyobb részmintákat eredményeztek. A nagy felbontású képeken a QR kód elemmérete nagyobb a JPEG 8 8 px blokkméreténél. Ezeknél a képeknél szükséges a kép átméretezése, vagy megfelelő méretben rögzítése. Ez pozitívan is hat a feldolgozás sebességére, mivel azt jelenti, hogy a nagyobb QR kódokat kisebb felbontású képeken könnyebben fel tudjuk ismerni,

kevesebb vektor kiértékelésével. A konkrét felbontást és a kamera távolságát a végfelhasználói alkalmazás határozza meg. A tanítás korlátja, hogy nagyjából akkora méretű kódokra kell tanítanunk, mint amire számítunk kiértékeléskor. Ez áthidalható azzal, hogy több, különböző méretre tanult DRN-t párhuzamosan használunk, amennyiben a célhardver ezt lehetővé teszi. Szükség esetén egyetlen, több méretre tanított DRN-t is használhatunk, de ennek hatékonysága alulmúlja a specifikusan tanult hálókét. A teljesítmény mérőszámai blokkszinten készültek. A blokkok a feldolgozás után csoportokba foglalhatók, a jellemzőmátrix klaszterezhető, vagy használható az összefüggő komponensek címkézési algoritmusa. Legutolsó lépésként a befoglaló dobozok mentén levágott képrészleteket már elterjedt, jól működő dekódolási algoritmusoknak adjuk tovább [14, 15]. 4. Összefoglalás A neurális hálók hatékonyan alkalmazható megoldást kínálnak vizuális kódok valós idejű lokalizálására. Megvizsgáltuk a DRN teljesítményét különböző típusú bemeneteken, és bebizonyítottuk a hatékonyságát nagy mennyiségű input képen, szintetikus és valós adatbázison. Megfigyelhető, hogy a DRN általában jobban teljesít a konvencionális neurális hálóknál. A képtérben a legjobb bemeneti választás az élek magnitúdó-képe. A blokkméret nem befolyásolja jelentősen a DRN teljesítményét, széles tartományban választható az észlelni kívánt QR kódok méretének 10 és 40 százaléka között. A valós idejű kiértékelés még sűrű átlapolással is lehetséges. Kipróbáltuk a DRN tanítását a JPEG blokkok DCT együtthatóin, az aktuális intenzitás-értékek visszafejtése nélkül. Az inverz DCT elhagyható, ami a legköltségesebb lépése a JPEG dekódolásnak. A neurális hálók leghatékonyabban a végfelhasználói alkalmazás JPEG minőségével azonos minőségén tanítva működnek, de megengednek kis mértékű toleranciát. Azonos minőségen használva a kvantálótáblával való visszaszorzás is elhagyható, ami tovább gyorsítja az eljárást. Köszönetnyilvánítás A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával valósult meg. Projekt megnevezés: Telemedicina fókuszú kutatások Orvosi, Matematikai és Informatikai tudományterületeken (TOMI). Projektazonosító: TÁMOP-4.2.2.A-11/1/KONV-2012-0073. Hivatkozások 1. Chu, C.H., Yang, D.N., Pan, Y.L., Chen, M.S.: Stabilization and extraction of 2D barcodes for camera phones. Multimedia Systems 17 (2011) 113 133

2. Ohbuchi, E., Hanaizumi, H., Hock, L.A.: Barcode readers using the camera device in mobile phones. In: Cyberworlds, 2004 International Conference on. (2004) 260 265 3. Belussi, L.F.F., Hirata, N.S.T.: Fast QR code detection in arbitrarily acquired images. In: Graphics, Patterns and Images (Sibgrapi), 2011 24th SIBGRAPI Conference on. (2011) 281 288 4. Sörös, G., Flörkemeier, C.: Blur-resistant joint 1D and 2D barcode localization for smartphones. In: Proceedings of the 12th International Conference on Mobile and Ubiquitous Multimedia. MUM 13, New York, NY, USA, ACM (2013) 11:1 11:8 5. Szentandrási, I., Herout, A., Dubská, M.: Fast detection and recognition of qr codes in high-resolution images. In: Proceedings of the 28th Spring Conference on Computer Graphics. SCCG 12, New York, NY, USA, ACM (2013) 129 136 6. Glorot, X., Bengio, Y.: Understanding the difficulty of training deep feedforward neural networks. In: Proc. AISTATS. (2010) 249 256 7. Hinton, G.E., Osindero, S., Teh, Y.W.: A fast learning algorithm for deep belief nets. Neural Computation 18 (2006) 1527 1554 8. Seide, F., Li, G., Chen, X., Yu, D.: Feature engineering in context-dependent deep neural networks for conversational speech transcription. In: Proc. ASRU. (2011) 24 29 9. Glorot, X., Bordes, A., Bengio, Y.: Deep sparse rectifier networks. In: Proc. AISTATS. (2011) 315 323 10. Wallace, G.K.: The JPEG still picture compression standard. Consumer Electronics, IEEE Transactions on 38 (1992) xviii xxxiv 11. Bodnár, P., Nyúl, L.G.: A novel method for barcode localization in image domain. In: Image Analysis and Recognition. Volume 7950 of Lecture Notes in Computer Science. (2013) 189 196 12. LeCun, Y., Bottou, L., Orr, G., Muller, K.R.: Efficient backprop. In Orr, G., K., M., eds.: Neural Networks: Tricks of the trade, Springer (1998) 13. Lin, D.T., Lin, C.L.: Automatic location for multi-symbology and multiple 1D and 2D barcodes. Journal of Marine Science and Technology 21 (2013) 663 668 14. Tekin, E., Coughlan, J.: A bayesian algorithm for reading 1D barcodes. In: Proceedings of the 2009 Canadian Conference on Computer and Robot Vision. CRV 09, Washington, DC, USA, IEEE Computer Society (2009) 61 67 15. Wang, K., Zou, Y., Wang, H.: Bar code reading from images captured by camera phones. In: Mobile Technology, Applications and Systems, 2005 2nd International Conference on. (2005) 6