Beeldverwerking Prof. dr. ir. W. Philips Didactisch materiaal bij de cursus Academiejaar Tel: 09/ Fax: 09/
© W. Philips, Universiteit Gent, versie: 26/10/ b. 2 Copyright notice This powerpoint presentation was developed as an educational aid to the renewed course “Image processing” (Beeldverwerking), taught at the University of Gent, Belgium as of This presentation may be used, modified and copied free of charge for non-commercial purposes by individuals and non-for-profit organisations and distributed free of charge by individuals and non-for-profit organisations to individuals and non-for-profit organisations, either in electronic form on a physical storage medium such as a CD-rom, provided that the following conditions are observed: 1.If you use this presentation as a whole or in part either in original or modified form, you should include the copyright notice “© W. Philips, Universiteit Gent, ” in a font size of at least 10 point on each slide; 2.You should include this slide (with the copyright conditions) once in each document (by which is meant either a computer file or a reproduction derived from such a file); 3. If you modify the presentation, you should clearly state so in the presentation; 4.You may not charge a fee for presenting or distributing the presentation, except to cover your costs pertaining to distribution. In other words, you or your organisation should not intend to make or make a profit from the activity for which you use or distribute the presentation; 5. You may not distribute the presentations electronically through a network (e.g., an HTTP or FTP server) without express permission by the author. In case the presentation is modified these requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the presentation, and can be reasonably considered independent and separate works in themselves, then these requirements do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the presentation, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. In particular note that condition 4 also applies to the modified work (i.e., you may not charge for it). “Using and distributing the presentation” means using it for any purpose, including but not limited to viewing it, presenting it to an audience in a lecture, distributing it to students or employees for self-teaching purposes,... Use, modification, copying and distribution for commercial purposes or by commercial organisations is not covered by this licence and is not permitted without the author’s consent. A fee may be charged for such use. Disclaimer: Note that no warrantee is offered, neither for the correctness of the contents of this presentation, nor to the safety of its use. Electronic documents such as this one are inherently unsafe because they may become infected by macro viruses. The programs used to view and modify this software are also inherently unsafe and may contain bugs that might corrupt the data or the operating system on your computer. If you use this presentation, I would appreciate being notified of this by . I would also like to be informed of any errors or omissions that you discover. Finally, if you have developed similar presentations I would be grateful if you allow me to use these in my course lectures. Prof. dr. ir. W. Philips Department of Telecommunications and Information ProcessingFax: University of GentTel: St.-Pietersnieuwstraat 41, B9000 Gent, Belgium
Formaatconversie
© W. Philips, Universiteit Gent, versie: 26/10/ b. 4 Probleemstelling Formaatconversie=beeld converteren van één bemonsteringsrooster naar een ander, zodanig dat herbemonsterd beeld zo goed mogelijk de originele scène weergeeft er dus zo weinig mogelijk aliasing en wazigheid optreedt Voorbeelden verlagen beeldresolutie: 512x512 beeld omzetten in 256x256 beeld –om het weer geven op een lage-resolutiescherm (b.v. beeld van 3 Mpixel digitale camera op 1Mpixel computerscherm –als datacompressie, b.v. om op een website te plaatsen verhogen van de beeldresolutie: 256x256 beeld omzetten in 1024x1024 beeld voor “full-screen” weergave –let op: een hogere resolutie ≠ hogere kwaliteit (spatiale bandbreedte neemt niet toe door interpolatie) –verwant probleem: superresolutie=reconstrueren van verloren spatiale frequentiecomponenten uit meerdere beelden
© W. Philips, Universiteit Gent, versie: 26/10/ b. 5 Overzicht Probleemstelling Lineaire technieken Theoretisch optimale lineaire interpolatie (via bemonsteringstheorie) Eenvoudige technieken: dichtste-buur en bilineaire interpolatie Algemene lineaire interpolatie en approximatie Spline-interpolatie Niet-lineaire interpolatie Toepassingen herbemonstering voor gravuredruk de-interlacing van video Opmerking: met dank aan Dimitri Van de Ville, EPFL (verschillende figuren uit deze presentatie werden overgenomen uit zijn doctoraatspresentatie)
© W. Philips, Universiteit Gent, versie: 26/10/ b. 6 Lineaire formaatconversie… Theoretische formaatconversie: bereken fysisch beeld b ( r ) (continu variërende x en y ) uit monsters b k van gegeven beeld pas eventueel een analoog anti-alias filter toe op b ( r ), aangepast aan nieuw bemonsteringsrooster (te hoge spatiale frequenties) bemonster b a ( r ) volgens nieuw rooster V 2 met
© W. Philips, Universiteit Gent, versie: 26/10/ b. 7 In het algemeen hangen de coëfficiënten w j ( k ) af van zowel j als k maar in een aantal praktische gevallen is het aantal verschillende interpolatiecoëfficiënten beperkt Bvb.: w i ( k ) =w j ( k-c ) met c een gehele constante enkel afhankelijk van i - j coëfficiënten kunnen in voorberekende tabel worden opgeslagen Lineaire formaatconversie Belangrijke inzichten alle stappen in dit proces zijn lineair b ’ j is lineaire functie van b j Omwille van rekentijd verkiest men dat slechts voor een klein aantal k ’s de coëfficiënten w j ( k )≠0 men gebruikt suboptimale coëfficiënten en er kan nog steeds aliasing optreden de formules definiëren een lineaire interpolatieformule in termen van interpolatiefuncties w ( r-V 1 k ); de formule wordt geëvalueerd in de nieuwe roosterpunten V 2 j wj(k)wj(k)
© W. Philips, Universiteit Gent, versie: 26/10/ b. 8 De faze van een roosterpunt Definitie: V 2 i en V 2 j hebben dezelfde “fase” hebben t.o.v. het origineel rooster V 2 i en V 2 j liggen op een zelfde relatieve plaats binnen Voronoi-cellen van het orgineel rooster xx yy x y punten met zelfde fase oud rooster V V 2 ( i-j)=V 1 c voor gehele c Voor punten met dezelfde fase geldt dezelfde interpolatieformule, maar op “verschoven” data: zelfde gewichten voor b ’ i als voor b ’ j
© W. Philips, Universiteit Gent, versie: 26/10/ b. 9 Pixelherhaling (dichtste-buur interpolatie) b a ( r ) =b k =b ( V 1 k ) met k de index van het origineel monsterpunt r k =V 1 k het origineel monsterpunt dat dichtst licht bij r voor elke r is exact één van de gewichten w ( r-V 1 k ) = 1; alle andere zijn 0 k =10 11 ba(x)ba(x) originele monster- waarden b k weergave op scherm met vierkante pixels j= b a ( V 2 j )
© W. Philips, Universiteit Gent, versie: 26/10/ b. 10 Herschaling met dichtste-buur interpolatie Nadeel: bij vergroting met een niet-gehele schaalfactor kunnen vervormingen ontstaan (hier: de witte en gele vierkanten veranderen van grootte ba(r)ba(r) weergave op scherm met vierkante pixels b a ( r ) 1.5x vergroot, d.w.z. b a ( 2/3 r ) Voordeel: zeer snel dit is een vorm van aliasing (bij dichtste-buur interpolatie bevat b a ( r ) hoogfrequente componenten die te hoog zijn voor de nieuwe bemonsteringsfrequentie in dit voorbeeld)
© W. Philips, Universiteit Gent, versie: 26/10/ b. 11 w ( x-x k-1 )= w ( x-V 1 ( k -1)) w ( x-x k )= w ( x-V 1 k ) Bilineaire interpolatie 1D-geval, lineaire interpolatie: de interpolatieformule voor een punt x = V 2 j, maakt enkel gebruik van de twee meest nabije monsterwaarden b k- 1 en b k x k- 1 xkxk x andere w ( x-x l ) zijn 0 = ( x-x k- 1 ) / ( x k -x k- 1, ) = ( y-y l- 1 ) / ( y l -y l- 1, ) b k, l -1 b k- 1, l -1 b k -1, l b k, l 1-1- 1-1- x y 2D-geval, bilineaire interpolatie: formule maakt enkel gebruik van de vier meest nabije monsterwaarden; afzonderlijke lineaire interpolatie in x - en y -richting b a ( x,y ) = (1 - )(1 - ) b k- 1, l- 1 + (1 - ) b k, l- 1 +(1 - ) b k-1, l + b k, l b’jb’j
© W. Philips, Universiteit Gent, versie: 26/10/ b. 12 Opmerking: terminologie Het woord “lineair” in “lineaire” interpolatie heeft twee betekenissen: “interpolatie met rechte lijnen” “de geïnterpoleerde waarde is een lineaire functie van de originele monsterwaarden” Om de waarde van b a ( x ) te berekenen wordt hier: eerst een parabool berekend die door de punten ( x k- 1,b ( x k- 1 )), ( x k,b ( x k )) en ( x k+ 1,b ( x k+ 1 )) gaat na uitwerken: b a ( x )= ( x ) b ( x k- 1 )+ ( x ) b ( x k )+ ( x ) b ( x k+ 1 ), wat een lineaire functie is van b ( x k- 1 ), b ( x k ) en b ( x k+ 1 ) (controleer!) Kwadratische interpolatie is ook lineair in de tweede betekenis vervolgens de parabool geëvalueerd in het punt x xkxk x k+1 x x k- 1
© W. Philips, Universiteit Gent, versie: 26/10/ b. 13 Dichtste-buur v.s. lineaire interpolatie Bilineaire interpolatie geeft in het algemeen een trager variërende b a ( r ) minder kans op aliasing, maar ook iets waziger resultaat i= 8 9 lineaire interpolatie k= ba(x)ba(x) i= 8 9 nieuwe roosterpunten dichtste-buur interpolatie k =10 11 ba(x)ba(x) originele roosterpunten weergave op scherm met vierkante pixels
© W. Philips, Universiteit Gent, versie: 26/10/ b x vergroot dichtste-buur Voorbeeld 1.5x vergroot bilineair origineel 128x12 8 Lineaire interpolatie (vs. dichtste-buur interpolatie) geeft minder moiré-artefacten (aliasing) geeft een iets waziger beeld vraagt ook meer berekeningen
© W. Philips, Universiteit Gent, versie: 26/10/ b. 15 Algemene lineaire interpolatie Kies zelf een interpolatiefunctie w ( r ) met “goede” eigenschappen interpolerend: b a ( V 1 n ) =b n voor alle willekeurige sequenties van monsters b n = b n w(r) is een “interpolatiepuls”: w(0)=1 en w(V 1 k)=0 voor alle k≠0 vloeiend verloop: b.v. continue functie en partiële afgeleiden snel uitstervend: bij gegeven r zijn slechts enkele w ( r-V 2 k )≠0
© W. Philips, Universiteit Gent, versie: 26/10/ b. 16 interpolatiepuls Interpolatiepulsen Dichtste-buur interpolatie: b ( x k- 1 ) w ( x - x k- 1 ) b(xk)w(x-xk)b(xk)w(x-xk) b(xk)w(x-xk)b(xk)w(x-xk) Lineaire interpolatie: b ( x k- 1 ) w ( x - x k- 1 ) Eén interpolatiepuls: exact één b k = 1 stellen, de rest 0 en b a ( r ) berekenen
© W. Philips, Universiteit Gent, versie: 26/10/ b. 17 Belangrijk voorbeeld: spline-interpolatie=interpolatie via spline-approximatie Lineaire interpolatie via approximatiepulsen bereken de coëfficiënten c j zodat Alternatief voor lineaire interpolatie Ingewikkelder aanpak met meer keuzevrijheid voor w ( r ) maar complexere berekeningen kies een w ( r ) en definieer een continue functie opmerkingen –dit kan enkel voor een goede keuze van de approximatiepulsen w ( r ) –en is equivalent met interpolatie met een bepaalde interpolatiepuls
© W. Philips, Universiteit Gent, versie: 26/10/ b. 18 Spline approximatiepulsen… Definitie basis-spline voor een willekeurig rooster: 0-de orde: w 0 ( r )=interpolatiepuls voor dichtste-buur interpolatie w 0 ( r ) voor vierkant rooster w 0 ( r ) voor hexagonaal rooster
© W. Philips, Universiteit Gent, versie: 26/10/ b. 19 …Spline approximatiepulsen Definitie basis-spline voor een willekeurig rooster: n -de orde: w n ( r )= w n-1 ( r ) * w 0 ( r )= w 0 ( r ) * w 0 ( r ) * … w 0 ( r ) n convoluties w 1 ( r ) voor hexagonaal rooster w 0 ( r ) voor hexagonaal rooster Opmerking: voor n >1 is w n ( r ) geen interpolatiepuls maar een approximatiepuls stelsel oplossen noodzakelijk om interpolatiecoëfficiënten c j te berekenen Hoe hoger n, hoe meer continue partiële afgeleiden
© W. Philips, Universiteit Gent, versie: 26/10/ b. 20 Keuze van de splines Conversie van rechthoekig rooster naar hexagonaal rooster met minder pixels interpolatie met w 0 ( r ) of w 1 ( r ) aangepast aan rechthoekig rooster gevolgd door bemonstering op hexagonaal rooster origineel eerste orde nulde orde Hogere-orde basis-splines: minder aliasing maar ook waziger beelden
© W. Philips, Universiteit Gent, versie: 26/10/ b. 21 pulsen gecentreerd op doelrooster! Lineaire approximatie in doelrooster bereken de coëfficiënten c j zodat zo klein mogelijk wordt Alternatief voor lineaire interpolatie Approximatiepuls w ( r ) aangepast aan doelrooster kies een w ( r ) en definieer een continue functie liefst, maar niet noodzakelijk b c ( V 1 k ) =b k voor alle k opmerking: “ b c ( V 1 k ) =b k voor alle k ” is in het algemeen maar mogelijk als er minstens evenveel uitgangspixels per oppervlakte-eenheid zijn als er ingangspixels zijn per oppervlakte-eenheid
© W. Philips, Universiteit Gent, versie: 26/10/ b. 22 Kleinste-kwadraten herherbemonstering Past in voorgaande theorie, maar tracht aliasing te vermijden door anti- aliasing filter dat specifiek is afgestemd op bron- én doelrooster Basisidee: beschouw de continue beelden b b ( r ): verkregen door spline-interpolatie van gegeven monsters b k op bronrooster b d ( r ): verkregen door spline-interpolatie van de onbekende monsters b ’ j op het doelrooster Bereken c ’ j zodanig dat de volgende kwadratische fout minimaal wordt
© W. Philips, Universiteit Gent, versie: 26/10/ b. 23 … Kleinste-kwadraten herherbemonstering b k (gegeven) b ’ j (gezocht)
© W. Philips, Universiteit Gent, versie: 26/10/ b. 24 Toepassing: gravuredruk Principe: op een koperen cilinder worden met een beitel putjes gemaakt de cilinder wordt met inkt bestreken en in contact en tegen papier gedrukt de oppervlakte en/of de diepte van de putjes bepaalt de zwarting (grotere putjes nemen meer inkt op) Hexagonaal rooster door de aard van het proces herbemonstering van cartesisch naar hexagonaal rooster nodig
© W. Philips, Universiteit Gent, versie: 26/10/ b. 25 Lineaire herbemonstering Links: 1e orde interpolatie op rechthoekig rooster, gevolgd door hexagonale bemonstering Rechts: kleinste-kwadraten herbemonstering met (0) 0-de orde spline op beide roosters en met (1) 1e orde spline op beide roosters klassiek kl.-kw. (0)kl.-kw. (1)
© W. Philips, Universiteit Gent, versie: 26/10/ b. 26 Overzicht Probleemstelling Lineaire technieken Theoretisch optimale lineaire interpolatie (via bemonsteringstheorie) Eenvoudige technieken: dichtste-buur en bilineaire interpolatie Algemene lineaire interpolatie en approximatie Spline-interpolatie Niet-lineaire interpolatie Toepassingen herbemonstering voor gravuredruk de-interlacing van video Opmerking: met dank aan Dimitri Van de Ville, EPFL (verschillende figuren uit deze presentatie werden overgenomen uit zijn doctoraatspresentatie)
© W. Philips, Universiteit Gent, versie: 26/10/ b. 27 Niet-lineaire herbemonstering Randbewarende reconstructie risico op moiré-patronen Basisidee: detecteer de zones van het beeld met risico op moiré en schakel zacht over van lage naar hogere-orde spline (waziger maar minder moiré): b ( r ) = (r) b 2 (r) + ( 1 - (r) ) b 1 (r) met 0 ≤ a(r) ≤ 1 de graad van risico op moiré Moiré-onderdrukkende reconstructie vervaging b2(r)b2(r) b1(r)b1(r)
© W. Philips, Universiteit Gent, versie: 26/10/ b. 28 Niet-lineaire herbemonstering Resultaten nieuwoud nieuw oud
© W. Philips, Universiteit Gent, versie: 26/10/ b. 29 Weergave van interlaced video Interlaced weergave (klassieke TV) elk field wordt afzonderlijke weergegeven ontbrekende lijnen worden ingevuld met zwart nadeel: flikker (echter beperkt door nagloeien fosforen en field-rate) De-interlaced weergave (100 Hz TV) ontbrekende lijnen worden geïnterpoleerd op basis van naburige lijnen van huidig of vorig veld geen flikker soms interpolatieartefacten: ghosting
© W. Philips, Universiteit Gent, versie: 26/10/ b. 30 Spatiale interpolatie Ontbrekende pixels worden geïnterpoleerd uit pixels van het zelfde veld (bv.: gemiddelde van pixel erboven en eronder) … Problemen: Spatiale resolutie verbetert niet door de interpolatie (wazigheid) Overblijvende flikker: door verschil in interpolatieresultaat kunnen statische objecten een trillen flikker aan de randen
© W. Philips, Universiteit Gent, versie: 26/10/ b. 31 Temporele interpolatie Ontbrekende pixels worden geïnterpoleerd uit pixels op dezelfde plaats in vroegere velden (bv.: waarde van de pixel in het vorig beeld) Ideaal voor statische objecten (waar vorig beeld = huidig beeld) Probleem: karteleffecten aan de randen van bewegende objecten
© W. Philips, Universiteit Gent, versie: 26/10/ b. 32 Bewegingsadaptieve interpolatie Principe: (eerder) temporele interpolatie in statische gebieden; (eerder) spatiale interpolatie in bewegende gebieden bewegende gebieden: spatiale interpolatie geen spookartefacten statische gebieden: temporale interpolatie verhoogde spatiale resolutie, geen flikkering Dit vereist bewegingsdetectie
© W. Philips, Universiteit Gent, versie: 26/10/ b. 33 Vergelijking Origineel (non-interlaced): sequences/dimitri/salesman.avi Gedeïnterlineerd met spatiale interpolatie sequences/dimitri/lrep.avi (“line-replication”, d.w.z. spatiale interpolatie door copiëren van bovenbuur pixel) sequences/dimitri/lave.avi (“line-averaging”, d.w.z. spatiale interpolatie door gemiddelde van boven- en onderbuur) Gedeïnterlineerd met mediaaninterpolatie sequences/dimitri/med3.avi Gedeïnterlineerd met gesofisticeerde spatiotemporele interpolatie sequences/dimitri/dim.avi
© W. Philips, Universiteit Gent, versie: 26/10/ b. 34 Bibliografie Dimitri Van De Ville. Linear, non-linear, and fuzzy logic based image- resampling techniques, doctoraatsthesis UGent, Zie ook