Algoritmusok képi információ feldolgozására

Slides:



Advertisements
Hasonló előadás
ÉRDEKES PONTOK KINYERÉSE DIGITÁLIS KÉPEKEN. BEVEZETÉS  ALAPPROBLÉMA  Jellemzőpontok detektálása mindkét képen  Kinyert pontok megfeleltetése  Megfeleltetések.
Advertisements

Virtualizált Biztonságos BOINC Németh Dénes Deák Szabolcs Szeberényi Imre.
CUDA.
3. A programozás eszközei, programozás-technikai alapismeretek
MI 2003/ A következőkben más megközelítés: nem közvetlenül az eloszlásokból indulunk ki, hanem a diszkriminancia függvényeket keressük. Legegyszerűbb:
Számold meg a fekete pontokat!
Számítógépes algebrai problémák a geodéziában
 CUDA mint architektúra  Párhuzamos feldolgozásra optimalizált architektúra  CUDA mint GPGPU keretrendszer  Runtime és Driver API  CUDA C/C++  NVCC.
Számítástudományi módszerek a webes szolgáltatásokban Rácz Balázs október 20.
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
6. előadás (2005. április 5.) Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1.
Mozgó Objektumok Detektálása és Követése Robotkamera Segítségével
Lineáris és nemlineáris regressziók, logisztikus regresszió
Szintaktikai elemzés március 1.. Gépi tanulás Osztályozási feladat: Adott egyedek egy halmaza és azok osztályba tartozási függvénye (tanító halmaz),
MI 2003/ Alakfelismerés - még egy megközelítés: még kevesebbet tudunk. Csak a mintánk adott, de címkék nélkül. Csoportosítás (klaszterezés, clustering).
Optimalizálás nemklasszikus architektúrákon
Ellenőrző kérdések a)Auto-indexing enabled b)Auto-indexing disabled c)Nem eldönthető 1.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, D képszintézis 4. előadás.
A digitális számítás elmélete
PPKE ITK 2008/09 tanév 8. félév (tavaszi) Távközlő rendszerek forgalmi elemzése Tájékoztatás
Vámossy Zoltán 2004 (Mubarak Shah, Gonzales-Woods anyagai alapján)
Vámossy Zoltán 2006 Gonzales-Woods, SzTE (Kató Zoltán) anyagok alapján
Szűrés és konvolúció Vámossy Zoltán 2004
ISZAM III.évf. részére Bunkóczi László
1 Operációs rendszerek Az NT folyamatok kezelése.
Lázár István Témavezető: Hajdu András
Implementált képfeldolgozó algoritmusok
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Nikházy László Ureczky Bálint Konzulens: dr. Horváth Gábor
Textúra elemzés szupport vektor géppel
Gépi tanulás Tanuló ágens, döntési fák, általános logikai leirások tanulása.
A legolcsóbb szuperszámitógép
1 AAO folytatás ++ Csink László. 2 Rekurzív bináris keresés (rendezett tömbben) public static int binker(int[] tomb, int value, int low, int high) public.
Többváltozós adatelemzés
A sztochasztikus kapcsolatok (Folyt). Korreláció, regresszió
GPGPU A grafikus hardver általános célú felhasználása
1 Szélességi Bejárás Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S b a d e f h g c.
Programozás I. Típus algoritmusok
CUDA C/C++ programozás Szál struktúra A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
CUDA C/C++ programozás Egyéb eszköztárak vegyesen A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt.
CUDA C/C++ programozás
Példa Alapú Gépi Fordító Fejlesztése és Vizsgálata a World Wide Web Segítségével Magony Andor Számítógépes fordítástámogatás 2005 wEBMT: Developing and.
A Visual Basic nyelvi elemei
CUDA C/C++ programozás Atomikus műveletek A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
PPKE ITK 2009/10 tanév 8. félév (tavaszi) Távközlő rendszerek forgalmi elemzése Tájékoztatás
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Megerősítő elemzés „Big Data” elemzési módszerek Salánki.
Ismerkedjünk tovább a számítógéppel
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Mobil alkalmazások fejlesztése Vonalkód leolvasó Symbian alapú mobiltelefonra Készítette: Tóth Balázs Viktor.
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
MI 2003/8 - 1 Alakfelismerés alapproblémája: adott objektumok egy halmaza, továbbá osztályok (kategóriák) egy halmaza. Feladatunk: az objektumokat - valamilyen.
Kutatási beszámoló 2002/2003 I. félév Iváncsy Renáta.
Struktúra predikció Struktúra lehet Felügyelt tanulási probléma
ifin811/ea1 C Programozás: Hardver alapok áttekintése
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Gépi tanulási módszerek
1 Számítógépek felépítése 5. előadás a CPU gyorsítása, pipeline, cache Dr. Istenes Zoltán ELTE-TTK.
Szécsi László 3D Grafikus Rendszerek 15. előadás
“Tudásmegosztás és szervezeti problémamegoldás a mesterséges intelligencia korában” Levente Szabados Technológiai Igazgató.
Párhuzamos primitívek
Lineáris egyenletrendszerek megoldása
GPGPU – CUDA 2..
FAZEKAS ANDRÁS ISTVÁN PhD c. egyetemi docens
Nikházy László Ureczky Bálint Konzulens: dr. Horváth Gábor
Emlékeztető Az előző órán az adatok eloszlását Gauss-eloszlással közelítettük Célfüggvénynek a Maximum Likelihood kritériumot használtuk A paramétereket.
Microsoft SQL licenselés a gyakorlatban
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
Algoritmusok és Adatszerkezetek I.
Előadás másolata:

Algoritmusok képi információ feldolgozására Keresés, osztályozás Algoritmusok grafikus processzorokon Benczúr András MTA SZTAKI Adatbányászat és Webkeresés Kutatócsoport

Szerintem az adatbányászat … Gépi tanuláson, statisztikán alapul Nagy számítási igényű Olyan, amit MATLAB-ben nem tudunk megoldani Okos algoritmusokat igényel Hasznosítja a számítási erőforrások növelését Szekrény jelenleg 150TB/500GB de csak 200 core

Köszönet (slide források) Petrás István, Daróczy Bálint Li Fei-Fei (kézről kézre jár) Csurka Gabriella, Xerox XRCE Bodzsár Erik

Képi információ keresés, osztályozás Képi szavak modellje Szegmensek, fontos területek, képi leírók Gauss keverékek és Fisher vektorok Kép és szöveg kombinációja

Osztályozás, szegmentálás, keresés ‘q = castle park’ building grass tree Valószínűségszámítási modelleket felhasználva lehetséges már ilyen alacsony szinten – vagyis feature és részek – szintjén Meghatározni, hogy pl. a kép egyes területei milyen kategóriába esnek. Slide: G. Csurka

Egy jól működő modell: szózsák Object Bag of ‘words’ Slide: Li Fei-Fei

Dokumentumok ‘szózsák’ modellje Of all the sensory impressions proceeding to the brain, the visual experiences are the dominant ones. Our perception of the world around us is based essentially on the messages that reach the brain from our eyes. For a long time it was thought that the retinal image was transmitted point by point to visual centers in the brain; the cerebral cortex was a movie screen, so to speak, upon which the image in the eye was projected. Through the discoveries of Hubel and Wiesel we now know that behind the origin of the visual perception in the brain there is a considerably more complicated course of events. By following the visual impulses along their path to the various cell layers of the optical cortex, Hubel and Wiesel have been able to demonstrate that the message about the image falling on the retina undergoes a step-wise analysis in a system of nerve cells stored in columns. In this system each cell has its specific function and is responsible for a specific detail in the pattern of the retinal image. China is forecasting a trade surplus of $90bn (£51bn) to $100bn this year, a threefold increase on 2004's $32bn. The Commerce Ministry said the surplus would be created by a predicted 30% jump in exports to $750bn, compared with a 18% rise in imports to $660bn. The figures are likely to further annoy the US, which has long argued that China's exports are unfairly helped by a deliberately undervalued yuan. Beijing agrees the surplus is too high, but says the yuan is only one factor. Bank of China governor Zhou Xiaochuan said the country also needed to do more to boost domestic demand so more goods stayed within the country. China increased the value of the yuan against the dollar by 2.1% in July and permitted it to trade within a narrow band, but the US wants the yuan to be allowed to trade freely. However, Beijing has made it clear that it will take its time and tread carefully before allowing the yuan to rise further in value. sensory, brain, visual, perception, retinal, cerebral cortex, eye, cell, optical nerve, image Hubel, Wiesel China, trade, surplus, commerce, exports, imports, US, yuan, bank, domestic, foreign, increase, trade, value Honnan is ered ez a módszer? A szövegfeldolgozásban már sikeresen alkalmazták, onnan származott át a képi világba. Egyébként ez sok más módszerrel is így történt. Slide: Li Fei-Fei

Adott a kép, ebből kinyerünk képi jellemzőket „szavakat” (a fólián ezek képrészletek, a valóságban ennél tömörebb reprezentálás lehetővé tevő jellemzőket számolunk a képből). Ezután minden képet egy hisztogrammal jellemzünk, aminek az x tengelyén a képi szavak vannal y tengelyén pedig ezek gyakorisága. Slide: Li Fei-Fei

Képek „szó-elemekre” bontása Gráf alapú szegmentálás Súlyozott, irányítatlan gráf a pixeleken Agglomeratív klaszterezés – majdnem feszítőfa, de az egyes régiók közötti élsúly (eltérés) folyamatosan változik Sobel gradiens a fontos élek kiválasztására Szegmentálásból nyert foltokat és helyi leírókat (local features) használtunk.

Lokális módszerek Fontos élek, sarkok Rács felbontás … Orientation histograms Ha már megvan a pontunk, képezzük valamilyen leírását. Fontos, hogy minél több szempontból invariáns legyen a leírónk. Pl. nem érzékeny intenzitás változásra, intenziás eltolódásra, forgatásra, nagyításra Az egyik ilyen leíró - az egyik legelterjedtebb(és talán a legjobb) - un. SIFT leíró. A lényege, hogy a kiválasztott pont környezetében különböző irányokban számolt élek (gradiensek) hisztogramját számolja. A normalizált hisztogramok összefűzve 128 számot adnak, ami jellemez egy pontot (ill. annak környezetét) SIFT

Képi leírók Szegmensek, területek Lokális módszerek Átlag RGB HSV RGB, HSV Hisztogram Kontraszt Zig-Zag Fourier Lokális módszerek 128 SIFT leíró

Bag of words

„Képi szavak”: eljárás vázlata Az alacsony szintű képi jellemzők modellje A részeket leíró vektorok klaszterezése: k-means, GMM (Gaussian Mixture Model) Egy képet jellemez a klaszterenkénti szám („szavak száma”) → gradiens reprezentáció (Fisher vektor) Osztályozás képenként Kép-osztályozási versenyek: Pascal VOC, ImageCLEF K-means 4000+ klaszterrel GMM 100+ elemű keverékkel

Gaussian Mixture Model (GMM) Feltevés: a D-dimenziós adatpontok K normál eloszlásból (N1, ...,Nk) származnak, a következőképpen: Véletlen k választása a eloszlás szerint Véletlen leíró vektor Nk eloszlás szerint Az (N1, ...,Nk) eloszlásokat klasztereknek tekinthetjük

Képi „szótár” (GMM és k-means) Mi GMM-et használtunk, ami a k-means-hoz képest „lágy” klaszterezés. Minden egyes kódszóra egy eloszlást kapunk és nem egyetlen értéket (a középpontját). xt egy kép t-edik leírója.

Visual Vocabulary with a GMM Mi a GMM? Gauss eloszlások súlyozott összege. A klaszterezés folyamán (iteratív EM algoritmus) megkapjuk a súlzokat és a gaussok paramétereit. A bag of words leíró ebben az esetben egy képre az egyes pontokhoz tartozó gauss mixture-ök összege. Slide: G Csurka

GMM: expectation maximization

A Fisher Vektor Adott kép leíró-halmaza Gradiens, amerre mozdítva legjobban leírná a modell a képet: Kovariancia-jellegű mennyiség: Fisher információs mátrix: Normálás: Fisher vektor: Magas dimenziós (2 x D x N) ritka vetítés, kernelként használható: egy lineáris klasszifikátor kvadratikus felületrészeknek felel meg az eredeti térben

A folyamat összefoglalása

Példa: ImageCLEF osztályozási feladat

Példa: ImageCLEF osztályozási feladat

Példa ImageCLEF keresési feladat

Szöveg és kép Mennyire hasonló egy kép egy szöveghez? Amennyire a leghasonlóbb képek szöveges leírásához! → Pszeudo-relevancia visszacsatolás (feedback)

Pszeudo-relevancia feedback (PRF) A w szó tw előfordulása Tw eloszlású w paraméterrel Log-logisztikus vagy valamilyen Power Law eloszlás A w a w-t tartalmazó dokumentumok száma A q query és d dokumentum egyezése, ahol xw a query szó súlya: meglepetés, tipikustól való eltérés PRF során az R legjobb találatból újrasúlyozzuk xw-t ezzel arányosan:

Párhuzamos architektúrák Miért many-core? CUDA programozás Kép-osztályozás algoritmusai

Számítási kapacitás története Moore törvénye (exponenciális növekedés) megtört, egymagos rendszerek fejlődése megállt Párhuzamos programozás elkerülhetetlen Korábban: szuperszámítógépek

Számítási kapacitás története Moore törvénye (exponenciális növekedés) megtört, egymagos rendszerek fejlődése megállt Párhuzamos programozás elkerülhetetlen Korábban: szuperszámítógépek Google map-reduce: korlátos lehetőségek, pl gráf algoritmusok nehezek

Számítási kapacitás története Moore törvénye (exponenciális növekedés) megtört, egymagos rendszerek fejlődése megállt Párhuzamos programozás elkerülhetetlen Szuperszámítógépek, Map-reduce, … Ma már mindenhol multi-core A jövő: szuperszámítógép mindenkinek Manycore: Cell, GPU Könnyen elérhető, olcsó: PS3, NVIDIA, ATI, …

NVIDIA CUDA GPGPU platform Nyilvánvalóan párhuzamos feladatok: Mátrixműveletek legközelebbi szomszéd keresés Fourier transzformáció SIMD architektúra ~100 thread processors ~10K active threads Zero-overhead thread scheduling Hatékony – ha beférünk a memóriájába

Kép-osztályozási feladat Minden lépést meg tudunk oldani GPGPU-n!

GPU memória típusai 1-2 Global Shared a GPU hagyományos értelemben vett memóriája ide/innen tud adatot másolni a host GB-os nagyságrend viszonylag lassú adatátvitel, lassú elérés a GPU-ról, nincs cache Shared egy block thread-jeinek a közös memóriája itt kommunikálnak egymással a thread-ek, valamint itt érdemes tárolni a sokszor elért adatot 16KB (/block) nagyon gyors elérés

GPU memória típusai 3-4 Constant Regiszterek kicsi, gyors, cache-elt elérésű memória csak a host tudja módosítani Regiszterek minden block rendelkezésére áll néhány regiszter, amelyeket a thread-ek között oszt szét általában csak ciklus- és temp változókat tárol

Memória elérési trükkök, szabályok a globális memória elérésének sok szabálya van, amelyek betartása felgyorsítja azt (ld. ábra) globális memóriaterületeket texture-nek lehet kinevezni, cache-elt elérés, viszont nem írható non-pageable host memória: gyorsabb másolás Két-két példa coalesced és non-coalesced elérésre:

A CUDA programok nyelve Lényegében C kód, néhány kiegészítéssel szintaktikai kiegészítések új függvény qualifierek gpu-s függvények hívása Új host függvények pl. gpu memória foglalás, másolás, stb. GPU-specifikus függvények, változók threadIdx, blockIdx, stb. thread-ek szinkronizálása gyors matematikai függvények (exp, sin, stb.)

CUDA kód futtatása GPU memóriája közvetlenül nem elérhető, ezért egy CUDA programrészlet általában így néz ki: GPU memória allokálás Adat másolása a host-ról az allokált memóriába GPU függvény hívása, amely feldolgozza az adatot Eredmény másolása a host-ra GPU memória felszabadítás

Legegyszerűbb CUDA program példa __global__ void vecmult(float *v, float m) { int i = threadIdx.x; v[i] = v[i] * m; } int main() { int N=100; float *v_h; ... //v_h allokálás, inicializálás float *v_d; cudaMalloc((void**)&v_d, N*sizeof(float)); cudaMemcpy(v_d, v_h, N*sizeof(float), cudaMemcpyHostToDevice); vecmult<<<1,N>>>(v_d, m); //kernel hívás: 1 block, N thread cudaMemcpy(v_h, v_d, N*sizeof(float), cudaMemcpyDeviceToHost); cudaFree(v_d); return 0; A GPU-n futó ún. kernel függvény Csak hostról hívható (nincs pl. rekurzió) Nem elérhetők a host függvények, memória, …

CUDPP könyvtár: scan, sort Scan, sort, pointer ugrás: Pl. a legtöbb párhuzamos gráfalgoritmus fő lépései Pointer ugrás: P [x] = P [P [x]] Scan prefix összeg: prfsum [i] = ∑ij=0 v [i] a scan a prefix összeg általánosítása: ∑ helyett tetszőleges asszociatív művelet – pl. szegmentált scan

CUDA képszegmentálás

Alap: feszítőfák Harish et al. Fast Minimum Spanning Tree for Large Graphs on the GPU iteratív minimális feszítőfa algoritmus kezdetben minden pont egy fa, minden iterációban szomszédos fákat egyesít alkalmazható (kezdetleges) kép szegmentálásra scan és sort műveletekből épül fel

Képszegmentálás lépései Egy iteráció lépései: segmented min scan az (élsúly; végpont) párokra → minden pont legközelebbi, legkisebb címkéjű szomszédja → S választási gráf S-ben 2 hosszú körök lehetnek, ezeket eltávolítjuk S-ben pointer ugrással mindenki a reprezántánsára mutat reprezentáns szerint rendezünk, bejelöljük a határokat segmented scan → új komponens címkék (kezdőpont; végpont; élsúly) hármasok rendezésével megkapjuk az új gráf éleit De nem a min súlyt kell választanunk, számos feltétel Szegmentálás 3-4 sec képenként

GMM: CUDA trükkök GPU memória korlátos (kb max 4GB): párhuzamos másolás és végrehajtás pnk értékeket nem tároljuk Aritmetika max 64 bit (tetszőleges pontosság nehezen párhuzamosítható): exponenciális vödrözés trükk

Futási idő CPU-val összehasonlítva (azonos C++ kód): tanító adat: véletlen minta, 699923 adatpont (324 dim) futási idő: GPU: 67 perc CPU: 77 óra (Xeon 1.6Ghz) CPU: 20 óra hierarchikus GMM (Xeon 1.6Ghz)

Összefoglalás és problémák Objektumok „Bag of Visual Words” reprezentációja Nem használja a képi elemek relatív helyzetét Erősen függ a tanító korpusztól (profi fotó, festmény, grafika, …) GMM nem igazi „szavakat” ad, pl. nem is függ a tanító címkéktől Szöveges keresés esetén Keresőszavak képi objektumra „fordítása” Sokféle objektum nagyszámú tanító mintáját igényli Algoritmikus hatékonysági problémák, nagy számítási igény További feladatok a GPU-k számára?

Adatbányászat és Webkeresés Kutatócsoport Köszönöm a figyelmet! Benczúr András MTA SZTAKI Adatbányászat és Webkeresés Kutatócsoport http://datamining.sztaki.hu benczur@sztaki.hu