arbeitsbereich sav/bv (kogs) sav/bvseppke/content/... · + img_src(x,y))/4 bildtransformaonen...

14
MIN-Fakultät Fachbereich Informa7k Arbeitsbereich SAV/BV (KOGS) WINTER © Google Inc., 2014 SAV/BV

Upload: lytu

Post on 06-Feb-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

MIN-FakultätFachbereichInforma7kArbeitsbereichSAV/BV(KOGS)

WINTER

©GoogleInc.,2014

SAV/BV

Page 2: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

DieAufgabe

•  ImplemenBerungelementarer,häufigbenöBgterBildverarbeitungsfunkBonen(siehefolgendeFolien)

•  ZeitmessungderLaufzeit•  KomplePerCodemussC/C++kompilierbarsein•  C/C++,ASM,OpenCL,CUDA,MulB-ThreadingundMulB-Processingsinderlaubt!

•  Tipp:LegteinExperimenBer-TagebuchanunddokumenBerteureVersuchevonAnfangan!

Page 3: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

DasZiel

•  VergleichderMöglichkeitenzureffizientenBildverarbeitungaufaktuellenArchitekturen

•  ErstellungvonEmpfehlungenaufgrundderStaBsBken

•  UntersuchungvonLaufzeit,ArbeitsspeicherundAuslastung!

•  Referenz:Python2.8+Numpy

Page 4: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Se>ng(1)

•  AllefolgendenBildverarbeitungsoperaBonensollenauffolgendenBilddatenausgeführtwerden:–  Grauwertbilder(2D-Arrays)–  Farbbilder(3D-Arrays,3.Dimension:RGB)–  Bildgrößen:2048x2048Pixel,4096x4096Pixel–  Pixeldatentypen:UInt8,float(32)

àProTest:8VariaBonen!•  Beiinsgesamt10OperaBonen:80TestsproTeam•  Bei5Teams(+1Referenz):480Ergebnisse

Page 5: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Se>ng(II)

•  EszähltnurdieLaufzeitderOperaBon,LadenundSpeicherndesBildeswerdennichtmitgezählt!

•  Aber:–  AlleTestsmüssenje100xlaufen!– MaßamEnde:Gesamtlaufzeit!

•  3TypenvonBildverarbeitungsverfahren:– Map/Reduce–  Filter–  TransformaBonen

Page 6: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Map/Reduce

•  Algorithmus1(ImageBlending):Img_dest=MINMAXDToder(Img_src1+Img_src2)/2

•  Algorithmus2(Schwellenwert):Img_dest=Img_src>Scalar/RGB

•  Algorithmus3(Histogramm,Ann.:-1<I(x,y)<256)Hist(i)=card({(x,y)|I(x,y)=i})für-1<i<256

*MINMAXDTstelltsicher,dassdieGrenzendesDatentypsnichtüber/unterschriPenwerden!

Page 7: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Filter(Faltung)

•  AlleFilterals5x5und11x11implemenBeren!•  ImFolgendenwerdenbeispielhanFaltungenderGröße(5x5)gezeigt:

For(inty=2;y!=height-2;++y)For(intx=2;x!=width-2;++x) For(intj=-2;j!=3;++j) For(inti=-2;i!=3;++i) Img_dest(x,y) =Img_src(x,y)*mask(i+2,j+2)

Page 8: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Gauß’scheGläIung(σ=1,näherungsweise)

Mask(i,j):

Page 9: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Median-Filter

•  Beispielhanfür5x5:

For(inty=2;y!=height-2;++y)For(intx=2;x!=width-2;++x) list=[] For(intj=-2;j!=3;++j) For(inti=-2;i!=3;++i) list.append(Img_src(x+i,y+j)) Img_dest(x,y)=median(list)

Page 10: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Subsampling(Binning)

•  VerkleinerndesBildes(w,h)à(w/2,h/2)

For(inty=1;y<height;y+=2)For(intx=1;x<width;x+=2)Img_dest(x/2,y/2)=( Img_src(x-1,y-1) +Img_src(x-1,y) +Img_src(x,y-1) +Img_src(x,y))/4

Page 11: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Bildtransforma7onen(Rota7on)

•  TransformaBonderBildkoordinaten,nichtderBildintensitäten!

•  Beispiel,füreinenWinkelα:Img_dest(r_x,r_y)=Img_src(x,y)

mit: (r_x,r_y)T=Rα*(x,y)T

und:•  Varianten:

–  NächsteNachbarn(NN-)InterpolaBon–  Bi-linearinterpolieren!

Page 12: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Zusammenfassung

1.  Bild-Blending2.  Schwellenwert3.  Histogrammberechnung4.  Gauß’scheGläPung(5x5)5.  Gauß’scheGläPung(11x11)6.  Medianfilter(5x5)7.  Medianfilter(11x11)8.  Binning(2x2->1x1)9.  RotaBon(NN-InterpolaBon)10. RotaBon(Bi-lineareInterpolaBon)

Page 13: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

Abgabe

•  Abgabebiszum31.3.2015•  PreisefürdieschnellstenImplementaBonen!•  Format:ArchivmitallenDateienundHinweiseaufbenöBgteBibliotheken

•  GutdokumenBerterCode!•  DefiniBondereinzelnenFunkBonenundmehrfacherAufruf!

Page 14: Arbeitsbereich SAV/BV (KOGS) SAV/BVseppke/content/... · + Img_src(x,y))/4 Bildtransformaonen (Rota7on) • Transformaon der Bildkoordinaten, nicht der Bildintensitäten! • Beispiel,

VielErfolg!Timestobeat[s]fürGrauwertbilder(2x2,66GHzXeonDualCore,5GBRAM)Quelltextverwendetnumpy/scipy(Bald)verfügbaraufderHomepage!

small,uint8 small,float large,uint8 large,floatBlending 0,52 3,96 2,52 22,84Schwellenwert 0,58 1,09 2,75 4,81Histogramm 19,76 25,46 79,04 101,752D-Faltung(5x5) 37,26 19,88 149,15 90,00Median-Filter(5x5) 213,82 210,31 856,19 851,17Subsampling 1,61 4,95 5,90 19,52RotaBon(bi-lin) 71,83 74,86 286,27 324,76

0,10

1,00

10,00

100,00

1000,00

small,uint8

small,float

large,uint8

large,float