44
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

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

  • Upload
    salali

  • View
    62

  • Download
    0

Embed Size (px)

DESCRIPTION

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ű - PowerPoint PPT Presentation

Citation preview

Page 1: Algoritmusok képi információ feldolgozására

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

Keresés, osztályozásAlgoritmusok grafikus

processzorokon

Benczúr AndrásMTA SZTAKI

Adatbányászat és Webkeresés Kutatócsoport

Page 2: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 3: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 4: Algoritmusok képi információ feldolgozására

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

Page 5: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Osztályozás, szegmentálás, keresés

Slide: G. Csurka

‘q = castle park’

buildinggrasstree

Page 6: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

ObjectObject Bag of ‘words’Bag of ‘words’

Egy jól működő modell: szózsákszózsák

Slide: Li Fei-Fei

Page 7: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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.

sensory, brain,

visual, perception,

retinal, cerebral cortex,

eye, cell, optical

nerve, image

Hubel, Wiesel

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.

China, trade,

surplus, commerce,

exports, imports, US,

yuan, bank, domestic,

foreign, increase,

trade, value

Dokumentumok ‘szózsák’ modellje

Slide: Li Fei-Fei

Page 8: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Slide: Li Fei-Fei

Page 9: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 10: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Lokális módszerek

SIFT

• Fontos élek, sarkok• Rács felbontás• …

Orientationhistograms

Page 11: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

ÁtlagRGBHSV

ÁtlagRGBHSV

RGB, HSV HisztogramRGB, HSV Hisztogram

Zig-Zag FourierZig-Zag Fourier

KontrasztKontraszt

Képi leírók

128 SIFT leíró128 SIFT leíró

Szegmensek, területek

Lokális módszerek

Page 12: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Bag of words

Page 13: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

„Képi szavak”: eljárás vázlata

1. Az alacsony szintű képi jellemzők modellje2. A részeket leíró vektorok klaszterezése: k-

means, GMM (Gaussian Mixture Model)3. Egy képet jellemez a klaszterenkénti szám

(„szavak száma”) → gradiens reprezentáció (Fisher vektor)

4. Osztályozás képenkéntKép-osztályozási versenyek: Pascal VOC,

ImageCLEF • K-means 4000+ klaszterrel• GMM 100+ elemű keverékkel

Page 14: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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:1.Véletlen k választása a eloszlás szerint2.Véletlen leíró vektor Nk eloszlás szerint

Az (N1, ...,Nk) eloszlásokat klasztereknek tekinthetjük

Page 15: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Képi „szótár” (GMM és k-means)

Page 16: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Visual Vocabulary with a GMM

Slide: G Csurka

Page 17: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

GMM: expectation maximization

Page 18: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

A Fisher VektorAdott kép leíró-halmazaGradiens, 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

Page 19: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

A folyamat összefoglalása

Page 20: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Példa: ImageCLEF osztályozási feladat

Page 21: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Példa: ImageCLEF osztályozási feladat0 Partylife

1 Familiy_Friends2 Beach_Holidays3 Building_Sights4 Snow5 Citylife6 Landscape_Nature7 Sports8 Desert9 Spring

10 Summer11 Autumn12 Winter13 No_Visual_Season14 Indoor15 Outdoor16 No_Visual_Place17 Plants18 Flowers19 Trees20 Sky21 Clouds22 Water23 Lake24 River25 Sea26 Mountains27 Day28 Night29 No_Visual_Time30 Sunny31 Sunset_Sunrise32 Canvas33 Still_Life34 Macro35 Portrait36 Overexposed37 Underexposed38 Neutral_Illumination39 Motion_Blur40 Out_of_focus41 Partly_Blurred42 No_Blur43 Single_Person44 Small_Group45 Big_Group46 No_Persons47 Animals48 Food49 Vehicle50 Aesthetic_Impression;51 Overall_Quality;52 Fancy;

Page 22: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Példa ImageCLEF keresési feladat

Page 23: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Szöveg és képMennyire hasonló egy kép egy szöveghez?

Amennyire a leghasonlóbb képek szöveges leírásához!→ Pszeudo-relevancia visszacsatolás (feedback)

Page 24: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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:

Page 25: Algoritmusok képi információ feldolgozására

Párhuzamos architektúrák

• Miért many-core?• CUDA programozás• Kép-osztályozás algoritmusai

Page 26: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 27: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 28: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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, …

Page 29: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 30: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Kép-osztályozási feladat

Minden lépést meg tudunk oldani GPGPU-n!

Page 31: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

GPU memória típusai 1-2

Global• 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

Page 32: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

GPU memória típusai 3-4

Constant• 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

Page 33: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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ásKét-két példa coalesced és non-coalesced elérésre:

Page 34: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 35: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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:

1.GPU memória allokálás2.Adat másolása a host-ról az allokált

memóriába3.GPU függvény hívása, amely feldolgozza az

adatot4.Eredmény másolása a host-ra5.GPU memória felszabadítás

Page 36: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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ényCsak hostról hívható (nincs pl. rekurzió)Nem elérhetők a host függvények, memória, …

Page 37: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

CUDPP könyvtár: scan, sort

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

Scan, sort, pointer ugrás: Pl. a legtöbb párhuzamos gráfalgoritmus fő lépései

Page 38: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

CUDA képszegmentálás

Page 39: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 40: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

Képszegmentálás lépései

Egy iteráció lépései:1.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áf1.S-ben 2 hosszú körök lehetnek, ezeket eltávolítjuk2.S-ben pointer ugrással mindenki a reprezántánsára

mutat3.reprezentáns szerint rendezünk, bejelöljük a határokat4.segmented scan → új komponens címkék5.(kezdőpont; végpont; élsúly) hármasok rendezésével

megkapjuk az új gráf éleitDe nem a min súlyt kell választanunk, számos feltétel

Szegmentálás 3-4 sec képenként

Page 41: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 42: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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)

Page 43: Algoritmusok képi információ feldolgozására

Benczúr Képkeresés, osztályozás 2010.10.19. BME Matematikai Modellalkotás Szeminárium

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

Page 44: Algoritmusok képi információ feldolgozására

Köszönöm a figyelmet!

Benczúr AndrásMTA SZTAKI

Adatbányászat és Webkeresés Kutatócsoport

http://[email protected]