arbeitsbereich sav/bv (kogs) sav/bvseppke/content/... · + img_src(x,y))/4 bildtransformaonen...
Post on 06-Feb-2018
214 Views
Preview:
TRANSCRIPT
MIN-FakultätFachbereichInforma7kArbeitsbereichSAV/BV(KOGS)
WINTER
©GoogleInc.,2014
SAV/BV
DieAufgabe
• ImplemenBerungelementarer,häufigbenöBgterBildverarbeitungsfunkBonen(siehefolgendeFolien)
• ZeitmessungderLaufzeit• KomplePerCodemussC/C++kompilierbarsein• C/C++,ASM,OpenCL,CUDA,MulB-ThreadingundMulB-Processingsinderlaubt!
• Tipp:LegteinExperimenBer-TagebuchanunddokumenBerteureVersuchevonAnfangan!
DasZiel
• VergleichderMöglichkeitenzureffizientenBildverarbeitungaufaktuellenArchitekturen
• ErstellungvonEmpfehlungenaufgrundderStaBsBken
• UntersuchungvonLaufzeit,ArbeitsspeicherundAuslastung!
• Referenz:Python2.8+Numpy
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
Se>ng(II)
• EszähltnurdieLaufzeitderOperaBon,LadenundSpeicherndesBildeswerdennichtmitgezählt!
• Aber:– AlleTestsmüssenje100xlaufen!– MaßamEnde:Gesamtlaufzeit!
• 3TypenvonBildverarbeitungsverfahren:– Map/Reduce– Filter– TransformaBonen
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!
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)
Gauß’scheGläIung(σ=1,näherungsweise)
Mask(i,j):
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)
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
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!
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)
Abgabe
• Abgabebiszum31.3.2015• PreisefürdieschnellstenImplementaBonen!• Format:ArchivmitallenDateienundHinweiseaufbenöBgteBibliotheken
• GutdokumenBerterCode!• DefiniBondereinzelnenFunkBonenundmehrfacherAufruf!
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
top related