Textuuradaptieve niet-lineaire...

76
Faculteit Toegepaste Wetenschappen Vakgroep Telecommunicatie en Informatieverwerking Voorzitter: Prof. dr. ir. H. Bruneel Textuuradaptieve niet-lineaire beeldinterpolatie door Rafael Abbeloos Promotor: prof. dr. ir. W. Philips Scriptiebegeleider: ir. Hiep Luong Scriptie ingediend tot het behalen van de graad van licentiaat in de informatica, optie: numerieke informatica Academiejaar 2006–2007

Transcript of Textuuradaptieve niet-lineaire...

Page 1: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Faculteit Toegepaste Wetenschappen

Vakgroep Telecommunicatie en Informatieverwerking

Voorzitter: Prof. dr. ir. H. Bruneel

Textuuradaptieve niet-lineaire

beeldinterpolatie

door Rafael Abbeloos

Promotor: prof. dr. ir. W. Philips

Scriptiebegeleider: ir. Hiep Luong

Scriptie ingediend tot het behalen van de graad van licentiaat in de

informatica, optie: numerieke informatica

Academiejaar 2006–2007

Page 2: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Toelating tot bruikleen

De auteur geeft de toelating dit afstudeerwerk voor consultatie beschikbaar te stellenen delen van het afstudeerwerk te copieren voor persoonlijk gebruik. Elk ander gebruikvalt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot deverplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit ditafstudeerwerk.

Rafael Abbeloos 2 juni 2007

i

Page 3: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Dankwoord

Graag zou ik iedereen willen bedanken die heeft bijgedragen tot de verwezenlijking vandit eindwerk, in het bijzonder dank ik:

• Mijn promotor prof. dr. ir. Wilfried Philips

• Mijn thesisbegeleider Hiep Luong

• Mijn ouders, voor hun niet aflatende steun tijdens mijn studies

• Wim De Mulder, voor de inspiratievolle gesprekken

• Mijn broer Dominique, voor zijn kritische blik

ii

Page 4: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Textuuradaptieve niet-lineaire beeldinterpolatie

doorRafael Abbeloos

Afstudeerwerk ingediend tot het behalen van de graad van licentiaat in de informatica,optie: numerieke informatica

Academiejaar 2006–2007

Universiteit GentFaculteit Toegepaste Wetenschappen

Promotor: prof. dr. ir. W. Philips

Samenvatting

Beeldinterpolatie heeft veel toepassingen in de sterk multimediale samenleving van van-daag. Upconversie naar HDTV is een van de nieuwe toepassingen.

In deze thesis geven we een overzicht van enkele lineaire interpolatietechnieken, alsookenkele niet-lineaire technieken. NEDI of Li’s correlatiemethode is een vrij nieuwe techniekdie veelbelovende resultaten genereert. We stellen enkele uitbreidingen voor op deze dieverbeteringen brengen op het gegenereerde beeld.

We vergelijken onze techniek met de bestaande lineaire technieken en enkele niet-lineaire technieken. We concluderen dat onze uitbreiding op NEDI gebruikt kan wordenter vervanging van lineaire technieken in die gevallen waar de computationele efficientievan minder belang is omdat het beeld van betere kwaliteit is.

Trefwoorden: HDTV, beeldinterpolatie, randdetectie.

iii

Page 5: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

TEXTURE-ADAPTIVE NON-LINEAR IMAGE INTERPOLATION

Rafael Abbeloos

[email protected] of Ghent, Department of Telecommunications and Information Processing,

Sint-Pietersnieuwstraat 41, B-9000 Ghent, Belgium

ABSTRACT

New applications such as High Definition Television (HDTV)require methods for displaying upscaled low resolution legacyvideo material. Li [1] has formulated a new algorithm calledNew Edge-Directed Interpolation or NEDI for interpolating im-ages which shows promising results. In this paper, we evaluatethis method and propose a number of enhancements. With theseenhancements we achieve better PSNR scores and crisper imagequality.

1. INTRODUCTION

There are many applications for the enlarging of images.The camera on a cellphone uses image interpolation toachieve digital zoom. Medical applications such as MRIscans or CT scans also use image interpolation for recon-struction of the scanned image. Linear methods such asbicubic interpolation are computationally very efficient,however they have their issues [2]. Linear methods sufferfrom three artefacts : blurring, ringing and jagged edges.In an image, jagged edges are very noticable and easy tospot in that they reduce the image quality. Therefore therehas been some research into new interpolation techniquesthat do not exhibit such artefacts. A new method is NewEdge-Directed Interpolation, or NEDI [1]. It uses the cor-relation of the pixels in the low resolution grid in order togenerate the interpolation weights. This method howeverintroduces some specific artefacts on its own. In the nextsections we will explain this method in detail and proposesome enhancements which will remove the artefacts. Fur-thermore we will compare these enhancements with theoriginal version and draw our conclusions.

2. NEW EDGE-DIRECTED INTERPOLATION

The NEDI algorithm proceeds to double the dimensionsof the image in two separate steps. Every pixel will be in-terpolated as the weighted sum of its 4 nearest pixels in thelow resolution grid. The weights of the pixel we wish tointerpolate, will be calculated as how the pixels in a win-dow we draw around it, correlate with 4 of their neighbors

in the low resolution grid. In step 1 these 4 neighbors willform a square (figure 1), in step 2 these 4 neighbors willtake the shape of a rotated square (figure 2). We placethese pixels in matrices and solve the equation giving usthe 4 unknown weights allowing us to interpolate the pixelin the high resolution grid.

Cw = y (1)

w = (CT C)−1(CT y) (2)

In equation 1 vector w contains the 4 unknown weights.Vector y is of length m and contains all the pixels in thewindow we regard around the pixel we are interpolating.Matrix C has dimensions (m, 4) and each row represents4 pixels surrounding one pixel in vector y. We try to solveequation 1 with a least squares approach. This does notalways work as CT C does not always posses an inverse.Sometimes equation 1 has no stable solution and in thatcase each weight gets the arbitrary value of 0.25. This re-sults in bilinear interpolation.If we want to interpolate an image to an arbitrary size (i.e.a factor not divisable by 2) we will need to downsamplethe image after multiple NEDI iterations. The resultingimage is also off-center so the image will also need to beresampled in order to be on-center.There are some problems with NEDI. While edges them-selves are interpolated smoothly, areas around edges candisplay artefacts such as random pixels or a streaking ef-fect. Textured and natural looking areas such as cloudsand grass can also look odd with this technique. There isalso a variable in NEDI, namely the window size m. Thisalso has an effect on the image quality. A window sizetoo small makes the image quality very noisy and unus-able. Too large makes it blurry and creates the possibilityof generating incorrectly interpolated pixels.

3. NEDI ENHANCEMENTS

A number of enhancements to NEDI were formulated byZhao et al. [3]. He proposed the use of an antialias filteron the pixels that are in matrix C and vector y in equa-tion 1. He combined this with an enlargement of the spa-tial aperture (figure 3). These two enhancements reduce

Page 6: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figure 1: NEDI step 1

the artefacts introduced by the standard NEDI method.However, the variable of the window size is still unre-solved. With the spatial aperture enlargement there arenow 12 unknown weights that are being calculated by NEDI.To do this reliably, a slightly larger window size is needed.We introduce a further enhancement to NEDI to this end,namely a weighted matrix C and vector y. The furtheraway the pixels lie from the pixel we are going to inter-polate, the lower the weight we give them in the matrixor the vector. As a weight function we opt for a decliningexponential function :

f(x) = exp(− (x− 1)2

σ2) (3)

The parameter choice σ = 3 yields good results. When σis chosen too small additional artefacts can be introducedto the image. With this change the effect of the size of thewindow is very small as only the nearest pixels play animportant role in the interpolation of a pixel.Another adjustment we make to the NEDI technique is todetect flat areas in the image and to interpolate them bilin-early. This saves precious time and also can improve im-age quality as NEDI has the tendency to interpolate acrossan edge even when there is none and this causes creasesin flat areas of an interpolated image. We can detect flat

Figure 2: NEDI step 2

areas in the image simply by using a LoG filter and filteron the low values.

LoG(x, y) = − 1πσ4

[1− x2 + y2

2σ2

]e−

x2+y2

2σ2 (4)

This filter gives each pixel a value which symbolizes thechange in intensity in the image. A high absolute valuemeans the pixel is close to an edge, a value close to 0means it is in a flat area.

4. RESULTS AND COMPARISON

In order to the different interpolation techniques with eachother, we need a methodology to reliably compare imagesagainst each other. We use the following procedure :

• We start with a high resolution image A

• We downsample image A to image B with smallerdimensions

• We interpolate image B to image C, which has thesame dimensions as image A

• We calculate the PSNR value by comparing the pix-els of image A and C

Page 7: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figure 3: NEDI spatial aperture enlargement, the greenpixels are linearly interpolated between the red and bluepixels and used instead of the blue pixels for the interpo-lation

To calculate the PSNR of two images, we first need tocalculate the MSE. The MSE value of 2 images I and Kconsisting of mn pixels can be defined as :

MSE =1

mn

m−1∑i=0

n−1∑j=0

‖I(i, j)−K(i, j)‖2 (5)

The PSNR can then be defined as :

PSNR = 10.log10(MAX2

MSE) = 20.log10

(MAX√MSE

)(6)

The MAX variable represents the maximal pixel value,for 8 bits per channel that is 255.When we run this procedure on the image in figure 4 weget the results displayed in figure 5. Image 4 representsa good testcase because there are some clear edges (boat-sails for instance) where we can compare the behavior ofthe different techniques. We can see that NEDI in generalachieves good results, especially with our proposed en-hancements. Subjective comparison between the images(figure 6) reveals our enhancements to further sharpen theimage that NEDI generates.

Figure 4: Test image kodim09 for PSNR analysis

5. CONCLUSION

NEDI is good starting point for up-scaling images. Withthe enhancements proposed in this paper we further im-prove this technique and remove specific artefacts. Weimprove the PSNR scores over existing methods and thecrispness of the image.Further research can improve the computational efficiencyby using more advanced mathematical techniques. Zhaoet al. [5] has also proposed a version of NEDI which com-putes an image in a single pass, at the cost of some im-age quality. Further research could also look into whetherNEDI could be implemented directly on-center.

6. REFERENCES

[1] Xin Li and Michael T. Orchard, “New edge-directedinterpolation,” IEEE transactions on image process-ing, vol. 10, no. 10, pp. 1521–1527, October 2001.

[2] T. M. Lehmann, C. Gonner, and K. Spitzer, “Survey:Interpolation methodes in medical image processing,”IEEE Transactions on medical imaging, vol. 18, no.11, pp. 1049–1075, November 1999.

Page 8: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Sinc downsample

Bilinear downsample

Nearest neighbor downsample

27,5

28

28,5

29

29,5

30

30,5

31

31,5

32

32,5

Nearest neighborBilinearBicubicSincAQua-2NEDINEDI (Zhao et al.)NEDI (proposed method)

Figure 5: PSNR results for kodim09 test image

[3] J. A. Leitao, M. Zhao, and G. de Haan, “Content-adaptive video up-scaling for high definition dis-plays,” in Image and Video Communications and Pro-cessing (SPIE), May 2003, vol. 5022, pp. 612–622.

[4] D. Darian Muresan, “Fast edge directed polynomialinterpolation,” IEEE, pp. 990–993, 2005.

[5] M. Zhao and G. De Haan, “Content-adaptive videoup-scaling,” in Proc ASCI 2003, 2003, pp. 151–156.

Figure 6: Subjective comparison of images; top from leftto right : nearest neighbor, bilinear, bicubic and sinc; bot-tom from left to right: AQua-2 [4], NEDI, NEDI (Zhao etal.), NEDI (proposed method)

Page 9: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Inhoudsopgave

1 Introductie 1

1.1 Wat is beeldinterpolatie? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Geschiedenis van interpolatie . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Toepassingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Literatuurstudie van bestaande interpolatietechnieken 4

2.1 Lineaire technieken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.1 Algemeen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.2 Stuksgewijze polynomialen . . . . . . . . . . . . . . . . . . . . . . . 62.1.3 Sinc-gebaseerde methoden . . . . . . . . . . . . . . . . . . . . . . . . 92.1.4 B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.5 Problemen en artefacten van lineaire methoden . . . . . . . . . . . . 12

2.2 Niet-lineaire technieken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.1 Algemeen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.2 Anisotrope techieken . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.3 Problemen en artefacten van niet-lineaire methoden . . . . . . . . . 19

2.3 Schatten van richtingen in kleurbeelden . . . . . . . . . . . . . . . . . . . . 192.3.1 Verschillende kleurruimtes en hun effect op de interpolatie . . . . . . 19

3 Niet-lineaire interpolatietechniek 29

3.1 Uitbreidingen op NEDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.1.1 Vlakke gebieden bilineair interpoleren . . . . . . . . . . . . . . . . . 293.1.2 Normalisatie van de gewichten . . . . . . . . . . . . . . . . . . . . . 293.1.3 Dynamische venstergrootte . . . . . . . . . . . . . . . . . . . . . . . 303.1.4 Antialias filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.1.5 Spatiale uitbreiding interpolatievenster . . . . . . . . . . . . . . . . . 323.1.6 Gewichten aan verschillende correlaties . . . . . . . . . . . . . . . . . 323.1.7 Terugprojectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.1.8 LoG filter gebruik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.2 Combinaties van uitbreidingen . . . . . . . . . . . . . . . . . . . . . . . . . 343.2.1 Algemeen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.2.2 Instellingen eigen techniek . . . . . . . . . . . . . . . . . . . . . . . . 35

4 Experimentele resultaten 40

4.1 Methodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.2 MSE/PSNR/SSIM analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.3 Resultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

iv

Page 10: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

4.3.1 Beeld 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.3.2 Beeld 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 Besluit 63

v

Page 11: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Hoofdstuk 1

Introductie

1.1 Wat is beeldinterpolatie?

Interpolatie kan formeel gedefinieerd worden als het schatten van onbekende waardentussen gekende waarden van een onbekende functie. Thiele [Thi09] beschreef interpolatiein zijn boek over interpolatie in 1909 als “de kunst van het tussen de lijntjes lezen ineen numerieke tabel”. Beeldinterpolatie is een 2-dimensionale interpolatie, toegepast opeen beeld dat bestaat uit rijen en kolommen van beeldpunten die we pixels noemen. Wekunnen een nieuw en groter beeld berekenen door tussen de gegeven pixels nieuwe pixelste plaatsen. Dat is waar deze thesis vooral over gaat : hoe je een beeld bestaande uitpixels het best kunt vergroten.

1.2 Geschiedenis van interpolatie

Op figuur 1.1 is een tijdslijn [Mei02] te zien die de evolutie weergeeft van interpolatie inde loop van de geschiedenis. De vroegst gekende toepassingen van interpolatie beginnenin de oudheid. De oude Grieken en Babyloniers hadden een systeem nodig om te weten inde landbouw wanneer ze hun zaden konden planten in hun velden. Ze hielden lijsten metde posities van de zon, de maan en bekende sterrenbeelden bij - zogenaamde ephemeriden.Deze lijsten waren onvolledig, door de weersomstandigheden of omdat bepaalde sterre-beelden op sommige tijden van het jaar niet te zien zijn konden de posities niet altijdopgemeten worden. De niet opgetekende posities werden berekend m.b.v. interpolatie.In de Middeleeuwen werd interpolatie gebruikt voor kalenderberekeningen en astronomie.In China werden opeenvolgende kalenders ontwikkeld met 2de orde en later ook 3de ordeinterpolatiemethoden op basis van ephemeriden. In het gebied van eindige differentieberekening werden later ook bijdragen berekend. Ongeveer terzelfdertijd werd in Indieook een 2de orde interpolatiemethode ontwikkeld. In de late Middeleeuwen waaide dezekennis over naar Arabie en Perzie.Pas in de Renaissance werd de interpolatietheorie in het westen verder ontwikkeld. Watmen nu de klassieke interpolatietheorie noemt, werd in deze tijd ontwikkeld door Newton.Toepassingen voor interpolatie waren weer astronomie, met wetenschappers als Coperni-cus, Kepler en Galileo, maar ook de wiskunde en de statistiek.Vanaf het begin van de 20ste eeuw begint breekt het informatie en communicatie era aanvoor de interpolatie. Veel verschillende methoden in de signaalverwerking ontwikkelden

1

Page 12: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

zich nu zoals bemonsteringtheorie en splines. Vanaf de jaren 70 werd interpolatie voor heteerst gebruikt op beelden, nl. voor de NASA satteliet ERTS (Earth Resources TechnologySattelite). Daarvoor werd kubische convolutie ontwikkeld, een methode die nu nog steedsveel wordt gebruikt. Beeldinterpolatie verschilt van gewone data-interpolatie door o.a. dediscontinuıteiten aan de randen en het feit dat het 2-dimensionaal is.Vandaag de dag wordt er nog veel onderzoek verricht naar beeldinterpolatie, getuige devrij recente ontwikkelde niet-lineaire methode van Xin Li [LO01].

1.3 Toepassingen

In het algemeen kan men stellen dat men beeldinterpolatie zal toepassen als men een beeldmoet vergroten, verkleinen of vervormen. Er zijn veel concrete toepassingen. Zo zal erinterpolatie plaatsvinden wanneer je een foto afprint van je pc naar een blad papier. Depixels op een scherm hebben een dichtheid van 72dpi (dots per inch) maar bij een printerloopt dat op tot 600dpi, dus zal er een interpolatie stap nodig zijn om tot die resolutie tekomen. Een projector dat een beeld projecteert op een muur zal ook interpoleren als hetmedium kleiner is dan de grootte die men wenst te bekomen. Met de recente introductievan Hoge Definitie Televisie (HDTV) kan men interpolatie toepassen op oude programma’sdie gefilmd zijn in lage resolutie om ze weer te geven in HDTV. In een digitale cameraof gsm kan men bij gebrek aan optische zoom een digitale zoom gebruiken die gebruikmaakt van beeldinterpolatie en zo toch nog een vergroting van het beeld bekomen. In demedische beeldverwerking wordt tenslotte voor MRI-scans en computertomografie (CT)ook interpolatie gebruikt voor de reconstructie van het gescande beeld.

2

Page 13: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

���������������������

���� ��� ���

������ ��������������� ������������

������������ ��������������������� ����������������������������� ��!��"�����#����� ���������

�$%��&�� '�(��������������� ������ ������ ��)��#��������#���

�$%$�*��� ��(��+������!� ���������

�$,%�*��� ��(�����-�����

�%���*��� ��(��.�� #���!� ����������

�,��/�0���(�1�������� ��*��� ������� ������23������4�&����4�5��������6

�0�7�"������(�5�� ���������� ��

�0�$�3- ������(�3������ �����������

�0%8�*�3��9+:3�����������(�;����-��- �� �����2�������-���� �������������#������������#��������6

�0,��;�'��(�;����-��- �� ���������#������������#���

�00�/����(� ��������������������������������� ��������� #��

�0�/�8�������<����-�������+ #������������������������#��� #�� ��-���� ������#������������������ �����

$���������2����6�=�>�?�@�(��<������A��B�� �#���;����������3���#��#�;����#��4������������������8#�� #������� �����

�8,��2����6�&�C�3D��B���(��3E���A��B�� �"��������!�����;����#�4������������������F#�� #������� �����

$87�2��#�G6�5���������(��!'H������4�8#�� #������� �������� #�

$$7�2��#�G6�5���������(��;��#��H#'����4�8#�� #������� �������� #��� �#�������� �������������������

%8%�2����6�IB�JA���(��!K�IL��;����#��4������������8#�� #������� ������� �#�������� �������������������

�F�F�2����6�?M�3B��N�(��3B'�O��'>��K��� ���P�#���3�����������#������ �� �����4����#��������#�����#����#� ����������������

Figuur 1.1: Geschiedenis van interpolatie

3

Page 14: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Hoofdstuk 2

Literatuurstudie van bestaandeinterpolatietechnieken

2.1 Lineaire technieken

2.1.1 Algemeen

Onder de noemer lineaire technieken voor beeldinterpolatie verstaan we deze techniekendie uniform zijn in de behandeling van elk punt in het beeld. Ze passen dezelfde techniektoe op elke pixel en houden geen rekening met externe informatie zoals gedectecteerderanden. Elke pixel wordt geınterpoleerd als lineaire combinatie van de omliggende pixels,vandaar de term lineair. De rekentijd is dan ook lineair met het aantal te interpolerenpixels.Elke lineaire techniek berekent een nieuwe pixel als de gewogen som van de omringendepixels in het originele beeld. De gewichtsfunctie wordt de kernel genoemd. Die functieis over het algemeen 1-dimensionaal en om een 2-dimensionaal beeld te vergroten moetmen dus in 2 stappen interpoleren. Eerst berekent men alle nieuwe pixels op alle verticalelijnen en daarna op de horizontale (of andersom). Dit principe heet scheidbaarheid enbiedt voordelen voor de computationele efficientie.De volgende algemene formule is van toepassing voor lineaire interpolatie:

s(x, y) =∑

k

l

s(k, l)h(x − k, y − l) (2.1)

In de formule staat s(x, y) voor het te construeren continue 2D signaal (het naararbitraire hoogte en breedte herschaalde beeld) op basis van de discrete samples s(k, l) (hetoriginele beeld). Formeel kan men dit uitdrukken als de convolutie van de discrete beeldsamples met de continue 2D impuls respons van een 2 dimensionale reconstructiefilter. Dekernel is h(x − k, y − l) en de scheidbaarheid kan uitgedrukt worden als:

h(x, y) = h(x)h(y) (2.2)

De kernelfunctie wordt opgeroepen met de parameters (x − k, y − l) die de afstanduitdrukken tot de pixel s(k, l) die men in rekening wil brengen bij de berekening van dehuidige nieuwe pixel. In formule 2.2 is h(y) dikwijls gelijk aan h(x).Het bekomen beeld mag ook niet verschoven worden t.o.v. zijn vroegere ligging. Indien dat

4

Page 15: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 2.1: Beeld kodim23 waarop we off-center gaan testen.

wel gebeurde, wil dat zeggen dat de interpolatie off-center plaatsvond. M.a.w. het centrumvan het beeld is nu verplaatst. Figuur 2.3 toont hoe een beeld off-center geınterpoleerdwordt. Dit kan gecorrigeerd worden door te herbemonsteren aan de hand van een sincmethode. We illustreren het effect van een off-center beeld op het beeld op figuur 2.1.In figuur 2.2 wordt het beeld telkens in alle richtingen met een kwart pixel verplaatst.Daarna wordt het dan vergeleken pixel per pixel met het oorspronklijke beeld a.d.h.v. deMSE waarde.

Lineaire methoden kunnen in het algemeen rechtstreeks als on-center geımplementeerdworden. Aldus is er geen herbemonstering nodig. Bij niet-lineaire methoden is dit vaakniet het geval en die moeten dan vaak nog een transformatie ondergaan na interpolatie diehet beeld weer centraal stelt. Deze extra stap kan bij grote vergrotingen een degradatievan het beeld met zich meebrengen als het de verschuiving groot genoeg is. Figuur 2.4toont de telkens oplopende fout die ontstaat als we een beeld verschuiven, daarna terug opzijn oorspronklijke plaats verschuiven en het uiteindelijke beeld pixel per pixel vergelijkenmet het originele beeld.

Alvorens we specifieke kernels behandelen, lichten we eerst enkele algemene eigenschap-pen van de kernels toe. Als een kernel niet aan de volgende eigenschap geldt, dan wordthet een approximator genoemd en niet een interpolator:

h(x) =

{

h (0) ≡ 1

h (x) ≡ 0, |x| = 1, 2, ...(2.3)

Dit komt erop neer dat als de positie van de nieuwe pixel overeenkomt met die van eenoriginele pixel, dan die pixel exact moet overgenomen worden. Deze eigenschap vermijdtbijkomende wazigheid in het geınterpoleerde beeld en aldus zijn interpolatoren beter danapproximatoren om beelden te herschalen. Nog een eigenschap is de volgende:

5

Page 16: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

+0.75+0.5

+0.250.0

−0.25−0.5

−0.75

+0.75

+0.5

+0.25

0.0

−0.25

−0.5

−0.7530

40

50

60

70

80

MS

E

Figuur 2.2: Het verschil tussen de verschoven beelden a.d.v. hun MSE waarden. Het punt (0,0)komt overeen met niet verschoven beeld en per eenheid relatief t.o.v. deze waarden op deze aswerd het beeld met een kwart pixel verschoven.

∞∑

k=−∞

h(d + k) ≡ 1, 0 ≤ d < 1 (2.4)

Als de kernel hieraan voldoet, betekent dat dat de helderheid van het beeld behoudenwordt en dat het niet donkerder of lichter wordt.

2.1.2 Stuksgewijze polynomialen

Bij stuksgewijze polynomialen is de gewichtsfunctie telkens een polynomiale functie. Weillustreren telkens de techniek door het beeld in figuur 2.5 4 maal te vergroten.De eenvoudigste is de dichtste buur methode. Deze methode berekent nieuwe beeldpuntenals pixels die het dichtst liggen in het originele beeld (figuur 2.6).Kernelfunctie van de dichste buur methode:

h(x) =

{

1, 0 ≤ |x| < 0.5

0, elders(2.5)

Een betere methode is bilineaire interpolatie. De methode berekent een nieuw pixelals de gewogen som van 2 omliggende originele pixels op basis van de afstand ervan (figuur2.7).Kernelfunctie van de bilineaire methode:

h(x) =

{

1 − |x| , 0 ≤ |x| < 1

0, elders(2.6)

6

Page 17: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

��������������� ��������������������������������������������� ��������������������������������������� ������������������������������������������������������������������������������� ����������������������������������������������������������������� �

!���������������������������� ��������������������������������!��������������������������������������������������������""�����������

Figuur 2.3: Off-center toelichting

Een nog betere methode is bikubische interpolatie. Deze methode berekent een nieuwepixel als de gewogen som van 4 omliggende originele pixels, weer op basis van afstand(figuur 2.8).Bikubische interpolatie wordt in vele toepassingen gebruikt (b.v. in Adobe PhotoShopwordt standaard gebruikt gemaakt van bikubische interpolatie voor herschalingen). Dit isomdat ze een goed evenwicht biedt tussen snelheid van berekening en beeldkwaliteit.Kernelfunctie van bikubische interpolatie:

h(x) =

(a + 2) |x|3 − (a + 3) |x|2 + 1, 0 ≤ |x| < 1

a |x|3 − 5a |x|2 + 8a |x| − 4a, 1 ≤ |x| < 2

0, elders

(2.7)

Voor de parameter a zijn er vele mogelijke keuzes. Danielsson en Hammerin [DH90] [DH92]stelden voor a = −1.3. Hun redenering hiervoor was dat in dat geval de Fouriertransformatievan de kernelfunctie het minste devieerde van de ideale rechthoekige functie. Keys [Key81]stelde a = −0.5 voor. Keys wou de Taylorreeks uitbreiding van de bemonsterde sinc func-

7

Page 18: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

� ���� ��� ���� ��� ���� ��� ����

��

��

��

���

���

���

���

���

���

����� ����

Figuur 2.4: Een beeld wordt telkens met 0/0.25/0.5/... pixels naar rechtsboven verschoven endaarna terug naar linksonder. Daarna wordt het beeld pixel per pixel vergeleken met het oor-spronklijke beeld en wordt de MSE waarde teruggegeven.

tie zo veel mogelijk laten overeenkomen en kwam zo tot dat resultaat.Figuur 2.9 geeft een overzicht van de hier besproken kernels. Er bestaan nog vele anderestuksgewijze polynomiale kernelfuncties waarmee men kan interpoleren. Sommige makengebruik van meer dan 4 omliggende pixels maar de beeldkwaliteit wordt niet meer aanzien-lijk beter dan die van de bikubische methode en ze zijn vaak ook trager.Er ontstaat een probleem met kernelfuncties die soms 2 of meer pixels gebruiken voor deinterpolatie bij de rand van het beeld. Bij de rand van het beeld hebben we onvoldoendedata beschikbaar om te interpoleren. We hebben in dit geval pixels over de rand van hetbeeld nodig. Er zijn hiervoor 2 mogelijke oplossingen:

• De uiterste pixels worden herhaald vanaf dat er pixels over de rand van het beeldnodig zijn (figuur 2.10).

• Pixels over de rand van het beeld worden berekend als pixels van het spiegelbeeldvan het beeld (figuur 2.11).

Het voordeel dat het spiegelen van pixels heeft t.o.v. het herhalen, is dat men dan geenkadereffect zal krijgen. Dat is een soort rand rond het beeld dat veroorzaakt wordt doorhet herhalen van pixels bij de interpolatie.

8

Page 19: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 2.5: lhouse origineel

Figuur 2.6: lhouse 4 maal uitvergroot met de dichtste buur methode

2.1.3 Sinc-gebaseerde methoden

Deze methoden gaan uit van bemonsteringstheorie. Het beeld s(x, y) bestaat uit oneindigveel herhalingen van zijn continu spectrum S(x, y) in het Fourier domein. Men kan danhet originele beeld volledig reconstrueren op basis van de samples s(k, l).

hIdeal(x) =sin(πx)

πx(2.8)

De sinc functie (figuur 2.13) wordt beschouwd als de ideale gewichtsfunctie. Als mende fouriertransformatie ervan neemt bekomt de perfecte rechthoekige functie.Het probleem met de sinc functie is dat ze niet spatiaal eindig is en dus niet exact teberekenen is. Er zijn hier 2 oplossingen voor mogelijk. Men kan de functie laten uitdijendoor een gewicht toe te voegen zodat deze sneller verdwijnen of men ze ook gewoonafkappen. Bekende voorbeelden van sinc interpolatie zijn de Blackman-Harris [LGS99] enLanczos [MNV01] interpolatie. De kernel van Blackman-Harris interpolatie is:

w(x) = w0 + w1cos(2)π2x

N) + w2cos(2π

4x

N) (2.9)

9

Page 20: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 2.7: lhouse 4 maal uitvergroot met de bilineaire methode

Figuur 2.8: lhouse 4 maal uitvergroot met de bikubische methode

Hierin zijn N = 6, w0 = 0.42323, w1 = 0.49755, en w2 = 0.07922. Hier maakt mendus gebruik van een gewichtsfunctie om de golven sneller te laten uitdijen. Figuur 2.12geeft het resultaat weer van deze interpolatie.

De kernel van Lanczos interpolatie is:

w(x) = sinc(πx

N) (2.10)

In vergelijking 2.10 stelt N de venstergrootte voor die men beschouwt voor de interpolatie.

2.1.4 B-splines

We kunnen ook B-splines [Uns99] gebruiken om een beeld te vergroten. Splines zijn stuks-gewijze polynomialen die glad met elkaar zijn verbonden. Ze zijn zeer compact neer teschrijven en computationeel efficient.

10

Page 21: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

−3 −2 −1 0 1 2 3−0.2

0

0.2

0.4

0.6

0.8

1

1.2

BilineairBikubischDichtste buurKubische B−Spline

Figuur 2.9: plot van de verschillende kernels

De B-spline kernel van graad 0 is als volgt:

β0(x) =

1, −0.5 ≤ |x| < 0.5

0.5, |x| = 0.5

0, elders

(2.11)

βn(x) = β0 ∗ β0 ∗ ... ∗ β0(x)︸ ︷︷ ︸

n+1 keer

(2.12)

We zien dat de basis B-spline van graad 0 overeen komt met de dichtste buur lineaireinterpolatiemethode. β1(x) komt overeen met de bilineaire methode.De kernel van kubische B-spline approximatie wordt veel gebruikt binnen de familie vanpolynomiale splines:

β3(x) =

0.5 |x|3 − |x|2 + 2

3, 0 ≤ |x| < 1

−(1

6) |x|3 + |x|2 − 2 |x| + 4

3, 1 ≤ |x| < 2

0, elders

(2.13)

Deze kernel is echter geen interpolator maar een approximator. Voor B-spline interpolatie(figuur 2.14) houden we dezelfde kernel maar vervangt men de samples s(k, l) door t(k, l)die we zelf berekenen.

s(x) =∑

k

t(k)h(x − k) (2.14)

De t(k) worden afgeleid uit de s(k) op zulke wijze dat de resulterende curve het originelebeeld interpoleert.

s(k) =1

6(t(k − 1) + 4t(k) + t(k + 1)) (2.15)

11

Page 22: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

����������������

Figuur 2.10: Lineaire interpolatie aan de grens van van het beeld met pixelherhaling. De teinterpoleren pixel wordt aangeduid met een kruis.

De t(k) kunnen dan als volgt berekend worden:

s(0)

s(1)...

s(K − 2)

s(K − 1)

=1

6

4 1 0

1 4 1. . .

. . .. . .

1 4 1

0 1 4

.

t(0)

t(1)...

t(K − 2)

t(K − 1)

(2.16)

Indien we de matrices hierboven respectievelijk als S, C en T hernoemen, dan kunnen weformule 2.16 als volgt herschrijven:

T = C−1S (2.17)

Men kan deze methode uitbreiden door bij de berekening van t(k) rekening te houdenmet informatie over de randen in het beeld (het wordt dan een niet-lineaire methode). Hetprogramma PhotoZoom maakt gebruik van een dergelijke techniek die ook bekend staatals het S-Spline algoritme.

2.1.5 Problemen en artefacten van lineaire methoden

Beelden geınterpoleerd door lineaire methoden hebben enkele visuele tekortkomingen.Deze tekortkomingen kunnen we onderverdelen in 3 klassen:

• Wazigheid: een algemeen verlies aan scherpte in het beeld.

12

Page 23: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

����������������

Figuur 2.11: Lineaire interpolatie aan de grens van van het beeld met pixelspiegeling. De teinterpoleren pixel wordt aangeduid met een kruis.

• Ringeffecten: b.v. rond randen onstaan er golven die verder weg van de rand uitdijenwaar het beeld vlak zou moeten zijn. Dit effect is ook bekend als het Gibbs effect.Een klein beetje ringeffect kan goed zijn voor de scherpte. Kernelfuncties die op eenbepaalde plaats negatief worden hebben hier meestal last van.

• Trapeffecten: b.v. een kromming die vervangen wordt door een trap van pixels.

Elke lineaire methode heeft last van een of meerdere van deze artefacten. Hier volgteen overzicht van waar elke methode problemen mee heeft:

• Dichtste buur: zeer sterke trapeffecten

• Bilineair: sterke wazigheid en trapeffecten

• Bikubisch: gemiddelde wazigheid, gemiddelde trapeffecten en gemiddelde ringef-fecten.

• Sinc: sterke ringeffecten

• Kubische B-spline: sterke wazigheid en gemiddelde ringeffecten.

De verschillende problemen houden ook verband met elkaar. Het verband wordt duidelijkgemaakt op figuur 2.15. Een lineaire methode die niet wazig is en ook geen trapeffectenheeft zal onvermijdelijk te kampen hebben met ringeffecten. Dit komt omdat voor het helebeeld dezelfde uniforme techniek toegepast wordt, en dat kan goed zijn voor pixels die op

13

Page 24: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 2.12: lhouse 4 maal uitvergroot met de Blackman-Harris (sinc) methode

een rand liggen maar voor pixels die in een vlakte liggen misschien niet. Opdat een beeldzijn eigenschappen behoudt omtrent randen en vlaktes zijn er verschillende aanpakkennodig opdat die eigenschappen behouden blijven. Om dat te bereiken is er nood aan eenniet-lineaire methode.

2.2 Niet-lineaire technieken

2.2.1 Algemeen

Niet-lineaire interpolatie methoden worden zo genoemd omdat ze niet telkens dezelfdeparameters of gewichten of soms zelfs niet eens dezelfde methode gebruiken om elke pixelin het beeld te interpoleren. Pixels worden niet meer berekend als simpelweg lineairecombinaties van hun buren met telkens dezelfde gewichten. De rekentijd is dan ook vaakniet meer lineair. Ruwweg kunnen we 3 klassen van niet-lineaire interpolatie methodenonderscheiden.

• Randdetecterende methoden: Dit zijn methoden die niet over een randen interpol-eren ofwel langs randen heen interpoleren. Dit impliceert dus ook dat de metho-den in kwestie ook een mechanisme voorzien om die randen te detecteren. Ofwelberekenen ze de richting ofwel de locatie van die randen en passen ze zo de interpo-latiegewichten aan. Voorbeelden van zulke methoden zijn Li’s interpolatie methodeof NEDI [LO01], EDI [AW96], Aqua-2 [Mur05] en Jensen [JA95].

• Artefactminimaliserende methoden: Dit zijn methoden die vertrekken van een lin-eaire methode en het beeld proberen te verbeteren door de artefacten te verwijderen.Een voorbeeld van zo’n methode is Level Curve Mapping dat is ontwikkeld aan deonderzoeksgroep IPI van UGent [LP05].

• Zelfsimilariteitsgebaseerde methoden: Deze methoden maken gebruik van de zelf-similariteit in het beeld om het te interpoleren en maken gebruik van fractalen.Een voorbeeld van zo een methode is Iterated Function Systems (IFS) [BSV02] ,toegepast in het programma Genuine Fractals.

14

Page 25: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

−6 −4 −2 0 2 4 6−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figuur 2.13: sinc kernel in het interval [−6, 6]

In deze thesis heb ik mij toegespitst op de randdetecterende methoden.

2.2.2 Anisotrope techieken

Correlatiemethode

De correlatie methode werd ontwikkeld door Li [LO01]. Naar deze methode wordt ookwel eens gerefereerd onder de naam NEDI (New Edge-Directed Interpolation).NEDI interpoleert elke pixel als de gewogen som van de 4 naburige pixels rondom zoalsbilineaire interpolatie, maar de gewichten worden telkens opnieuw berekend a.d.h.v. hoede pixels correleren met hun omgeving. Hoe die gewichten precies berekend worden, wordtuitgelegd nadat we de algemene methode uit de doeken hebben gedaan.Deze techniek zal de grootte van het beeld verdubbelen. Dat gebeurt in 2 stappen (ziefiguur 2.16). Eerst wordt maar een deel van het beeld geınterpoleerd, nl. de pixels waarbijde 4 naburige lage resolutie pixels een vierkant vormen rondom de te interpoleren pixel(figuur 2.17). Deze noemen we de diagonale pixels. Deze worden geınterpoleerd volgensde correlatie van de pixels in het venster dat we beschouwen met hun 4 naburige lageresolutie pixels die een vierkant vormen.We gaan dan over naar de 2de stap. Rond de nog te interpoleren pixels kunnen we nugeroteerde vierkanten vormen met de 4 naburige pixels indien we ook rekening houdenmet de pixels die werden berekend in de de vorige stap (figuur 2.18). Op basis van dediagonale pixels en de lage resolutie pixels van het oorspronkelijke beeld wordt dus de restvan het beeld geınterpoleerd. Deze worden dan geınterpoleerd volgens de correlatie vande pixels met hun 4 buren in het geroteerd vierkant venster dat we beschouwen.Het beeld dat men dan bekomt is bovendien off-center en dus moet er nog een transformatiegebeuren waarbij het beeld een halve pixel naar boven en links wordt verschoven. Indienmen het beeld wilt interpoleren naar een groter beeld dan 2x de oorspronklijke grootte,moet men de techniek nogmaals toepassen. Dit heeft als gevolg dat deze techniek enkeleen beeld kan vergroten tot een factor een macht van 2. Daarna moet men het beeld

15

Page 26: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 2.14: lhouse 4 maal uitvergroot met de kubische B-Spline methode

herschalen of verkleinen met een andere methode tot de gewenste grootte. Deze methodezal meestal een sinc methode zijn omdat die het meeste detail bewaart.

Elke pixel wordt berekend als de gewogen som van de 4 omringende originele pixels.Het speciale aan NEDI is hoe de gewichten worden berekend. Men gaat uit van de volgendestelling: de richtingen van de randen zijn invariant m.b.t. de resolutie. Dit betekent datwe in het originele beeld een willekeurige pixel kunnen nemen en die dan vergelijken metde 4 dichtst omringende diagonale pixels. Daaruit kunnen we dan een richting voor diebepaalde pixel afleiden die volgens de stelling dezelfde zal zijn op een hogere resolutie.Dit geeft dan aan in welke richting we moeten interpoleren, d.w.z. welke gewichten grootmoeten zijn en welke klein moeten zijn.Om de precieze waarde te weten te komen van de 4 onbekende gewichten nodig om denieuwe pixel te berekenen, hebben minimum 4 vergelijkingen nodig. We kijken op eenlagere resolutie naar de verhoudingen van een pixel t.o.v. zijn 4 omringende pixels ensteken die in een matrix.

Cw = y (2.18)

Hierin stelt C de matrix met dimensies (m,4) voor die per rij de 4 omringende pixels bevatrond elke pixel in vector y met lengte m. In de vector w van lengte 4 zitten de vooralsnogonbekende gewichten. De parameter m stelt de venstergrootte voor, ofwel de breedte vanhet vierkant gebied waarin we de pixels beschouwen waarvan we de 4 omringende pixelsgaan vergelijken. De venstergrootte moet dus minstens 2 zijn opdat het stelsel zoudenkunnen oplossen. Het venster is gecentreerd rond de te berekenen nieuwe pixel.Om de vector w te bekomen moeten we dus de matrix C aan de overkant van de vergelijkingkrijgen. Aangezien C mogelijk niet-vierkant is, kunnen we C niet inverteren. We zoekende kleinste kwadratenbenadering, en daarvoor vermenigvuldigen we beide zijden van devergelijking met de getransponeerde C matrix. De uiteindelijke formule om de gewichtente berekenen luidt dan als volgt:

w = (CT C)−1(CT y) (2.19)

De kans dat er hierbij singulariteiten optreden is erg groot. Het inverse van CT C, hetzogenaamde pseudo-inverse van C, zal namelijk niet altijd bestaan. Men zou denken dat

16

Page 27: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

een venstergrootte van 2 voor m meestal wel goed genoeg zou zijn maar spijtig genoeg isdat niet het geval. Er is nu nog een probleem dat veroorzaakt wordt door het numeriekoplossen van het stelsel. De oplossing hiervan is voor kleine vensters erg onstabiel en geeftzeer uiteenlopende oplossingen (heel grote gewichten, negatieve gewichten). Als men hetvenster vergroot, wordt de oplossing numeriek stabieler en worden de gewichten ook meergebruikelijk, al zijn er nog steeds vaak (weliswaar absoluut kleine) negatieve gewichten.Figuur 2.19 toont het resultaat van deze interpolatietechniek. Als het venster groter is,wordt uiteraard ook de matrix C groter en wordt dus het stelsel vergelijkingen oplossenveel trager. Hierin kruipt het meeste tijd bij het berekenen van een NEDI interpolatie.Een bijkomend probleem met grotere vensters is dat de richting verkeerd kan berekendworden als de omliggende pixels anders georıenteerd zijn dan de 4 dichtstbijzijnde.

AQua-2

De methode van AQua-2 [Mur05] is een vereenvoudiging van AQua-1 [MP04], wat op zicheen veralgemening is van de NEDI methode. De AQua-1 methode gebruikt de kleinstekwadraten van functionalen van intensiteiten i.p.v. gewoon intensiteiten, wat NEDI doet.Als men de gewichten bekijkt die de correlatiemethode genereert voor een beeld, dan zijner in de meeste gevallen 2 grote gewichten en 2 te verwaarlozen kleine voor elke pixeldie men interpoleert. Wat de AQua-2 methode doet, is dit veralgemenen en de 2 grotegewichten gelijkstellen aan 0.5 en de 2 kleine gewichten waarde 0 geven. Daardoor kanmen eigenlijk maar in 4 verschillende richtingen interpoleren: horizontaal, verticaal, en 2diagonale richtingen. Dit vereenvoudigt de berekening en is dus veel sneller te berekenendan NEDI.Concreet berekent men eerst voor elke pixel in het originele beeld een diagonale en eenniet-diagonale richting. Men neemt de 8 omringende pixels (figuur 2.20) in het originelebeeld in beschouwing daarvoor:

d1 = abs(1

2(p4 + p6) − p5),

d2 = abs(1

2(p3 + p7) − p5),

d3 = abs(1

2(p2 + p8) − p5),

d4 = abs(1

2(p1 + p9) − p5).

(2.20)

Als abs(d1 − d3) < TH dan is de richting neutraal in de niet-diagonale richtingen, zonietis de niet-diagonale richting horizontaal als d1 < d3, anders is die verticaal.Als abs(d2−d4) < TH dan is de richting diagonaal neutraal, zoniet is de diagonale richtingdiagonaal-1 als d2 < d4, anders is die diagonaal-2.De TH parameter drukt de gevoeligheid uit voor de gedetecteerde randen (hoe lager, hoegevoeliger). Elke lage resolutie pixel heeft nu een voorkeur voor horizontaal of verticaalen 1 van de 2 diagonale richtingen (wat we diagonaal-1 en diagonaal-2 noemen). Meninterpoleert dan weer in 2 stappen. Eerst worden de pixels geınterpoleerd m.b.v. deinformatie omtrent de voorkeur van de diagonale richting van de omliggende pixels. Inde 2de stap worden de andere pixels berekend m.b.v. de informatie over de verticale ofhorizontale voorkeursrichting. Telkens wordt er gekeken naar wat de voorkeur is van demeerderheid van de 4 dichtstbijzijnde lageresolutie pixels. Indien men geen richting kanconcluderen (b.v. als er 2 pixels 1-diagonaal zijn en 2 pixels 2-diagonaal) dan valt menterug op bilineaire interpolatie.

17

Page 28: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Edge-Directed Interpolation

Bij randgebaseerde technieken vertrekt men van een randenkaart die men vooraf genereert.Men kan hierbij gebruik maken van een ’LoG’ (Laplacian of Gaussian) filter. Op basisvan die kaart gaat men dan interpoleren langs de randen (en niet over de randen). DeLaplaciaans gefilterd beeld accentueert de gebieden van het beeld waar de intensiteit snelverandert. Die filter is erg gevoelig voor ruis dus wordt er eerst Gaussiaans gefilterd, datis een soort wazigheidsfilter waarmee ruis en detail wordt verwijderd. Figuur 2.22 geeftverschillende weergaven van de LoG filter. De 2-D LoG functie heeft de volgende vorm:

LoG(x, y) = − 1

πσ4

[

1 − x2 + y2

2σ2

]

e−

x2+y

2

2σ2 (2.21)

Volgens het artikel van Allebach over EDI [AW96] kan deze filter benaderd worden dooreen vereenvoudigde versie die computationeel efficienter te berekenen is, nl.

0 −1 0

−1 4 −1

0 −1 0

(2.22)

of

−1 −1 −1

−1 8 −1

−1 −1 −1

(2.23)

Deze filters worden ook coso filters genoemd (center-on, surround-off). Elke pixel krijgtvan de filter een waarde (hoog, laag, negatief of positief) en die geeft aan in welke matehij in de buurt is van een rand. Hoge negatieve en positieve waarden stellen de 2 kantenvoor van een rand. In figuur 2.22 zijn de verschillen te zien tussen de coso filter en deLoG filter. De pieken van negatieve en positieve waarden zijn hoger in de LoG filter watweergegeven wordt in een scherpere grijswaarde weergave van die filter t.o.v. coso filter.Bij EDI (Edge-Directed Interpolation, [AW96]) wordt er gekeken naar de tekens en degrootte van 4 de omringende LoG-waarden van de te interpoleren pixel om een rand teorienteren. Randen worden gevormd door de zogenaamde ’zero-crossings’ (plaats tussen2 pixels met tegengestelde tekens in de LoG filter waar de log waarde 0 zou wordenindien men die tussen de 2 punten zou interpoleren) te verbinden. Op figuur 2.23 wordtde techniek geıllustreerd. In figuur 2.22 kunnen we ook zien dat als we een coso filtergebruiken i.p.v. LoG filter, we eerst de data moeten filteren op te kleine ’zero-crossings’omdat we anders veel teveel ’zero-crossings’ krijgen.Deze manier van werken is niet ideaal. Zo geeft het verbinden van ’zero-crossings’ nietbepaald een egale rand. De waarden van de LoG filter zelf zijn ook niet altijd evenindicatief voor een particuliere rand. In vlakke gebieden van een beeld kan er ook eenartificiele rand ontstaan met deze manier van werken.

Jensen

Een andere manier om randen te detecteren is een functie proberen te vinden die de randvolgt. Jensen [JA95] specifieert een algoritme om een estimatie van een subpixel rand tegenereren in een venster van 3x3 pixels waarna er opnieuw gerasterd wordt op een gridvan hogere resolutie.

18

Page 29: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

2.2.3 Problemen en artefacten van niet-lineaire methoden

Niet-lineaire methoden kunnen ook lijden onder specifieke artefacten (figuur 2.24). Deproblemen hangen meestal samen met de specifieke eigenschappen van het beeld of detoegepaste techniek.

• Willekeurige pixels: sommige punten lijken verkeerd te zijn geınterpoleerd en geenverband te houden met de omgeving.

• Schilderseffect: in gebieden met een fijne textuur gaat de textuur verloren en wordtze vervangen door een streepachtig patroon. Gras, wolken en andere van naturewillekeurige vormen zijn vooral het slachtoffer.

• Segmentatie effect: het beeld lijkt te worden opgesplitst in aparte gebieden.

2.3 Schatten van richtingen in kleurbeelden

2.3.1 Verschillende kleurruimtes en hun effect op de interpolatie

Een beeld kan in verschillende soorten kleurenruimten opgeslaan worden. Hier zijn enkelevoorbeelden:

• RGB: kanalen voor rood, groen en blauw

• CMY en CMYK: kanalen voor cyaan(blauwgroen), magenta(roze), geel en indien Kerbij is, zwart. Deze kleurenruimte wordt gebruikt in printers.

• L*a*b*: kanalen voor luminantie, positie tussen magenta en groen, en de positietussen geel en blauw.

De klassieke manier waarop een beeld in kleur wordt voorgesteld is in de RGB kleuren-ruimte. Elk kanaal heeft een waarde van 0 tot 255 per pixel. Specifieke kleuren wordengevormd door de basiskleuren van elk kanaal bij elkaar toe te voegen. In totaal geeft dat16.777.216 mogelijke verschillende kleuren. Dat betekent ook dat, welke interpolatietech-niek je ook toepast, je deze 3 maal moet uitvoeren telkens op een elk kanaal. Dit komtomdat elk kanaal ook informatie bevat over de luminantie van het beeld, ofwel de helder-heid. Om dit te vermijden kan men voor NEDI eerst het beeld omzetten in grijswaardenen dan op basis van dat grijs beeld de gewichten berekenen. Met die gewichten wordt danelk van de 3 kleurkanalen op dezelfde manier geınterpoleerd. Dit spaart heel wat reken-werk uit en bovendien worden de relaties tussen de kleuren behouden wat heel belangrijkis. Op figuur 2.25 worden de 2 technieken vergeleken met elkaar.Als het beeld opgeslaan in de L*a*b* ruimte, hoeft men enkel de echte interpololatietech-niek toe te passen op het luminantie kanaal. De 2 andere kanalen mogen geınterpoleerdworden met een eenvoudige methode zoals bilineaire interpolatie omdat die niet erg veelveranderen.

19

Page 30: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

������

������� ��� ��

���������� ����

����

���������������������

��������

Figuur 2.15: Verband tussen de artefacten van lineaire methoden

20

Page 31: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

������������������ �������������������������������������������������������������

���� �����������������������������������������������������������������������������������������������

������ ������ ������� ������� ����������������������������������������������������������������

Figuur 2.16: NEDI overzicht

21

Page 32: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������������������� ����������������������������������������������������

���������������������������������������������������������� �������������������������������� ����

�������� ������������������������������������������������������ ��������������������������� ���������������������������������������

!����������������������������������������������"��������

Figuur 2.17: NEDI stap 1

22

Page 33: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������������������� �����������������������������

�����������

�������������

���������������������������������������������������������� �������������������������������� ����

�������� ������������������������������������������������������ ��������������������������� ���������������������������������������

!������������������������������������������������������"���������������

Figuur 2.18: NEDI stap 2

23

Page 34: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 2.19: lhouse 4 maal uitvergroot met de NEDI methode met venstergrootte 8x8 pixels

�� �� ��

�� �� ��

�� � �

Figuur 2.20: Posities van pixels bij berekening van richting van AQua-2

24

Page 35: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 2.21: lhouse 4 maal uitvergroot met de AQua2 methode met TH = 10

25

Page 36: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������

������������� � ��������

���� �������������� ��� ���� �������������� ���

�������������

Figuur 2.22: LoG en Coso filters toegepast op een beeld. Linksboven en rechtsboven werd de datavan de filters herschaald zodat 0 de grijswaarde 128 krijgt, dit enkel ter illustratie.

26

Page 37: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

����

������ ������

������ �������

�����������

�����������

Figuur 2.23: De blauwe pixel zal worden worden geınterpoleerd als het gemiddelde van de 4omringende naburige pixels, indien die pixels in kwestie tenminste zich niet over een rand bevinden.De rode pixel doet dat wel en zal worden vervangen door een waarde geextrapoleerd door deomgeving van de andere 3 pixels [AW96].

Figuur 2.24: Artefacten van niet-lineaire interpolatiemethoden: links NEDI met schilderseffect,midden lokale binarisatietechniek met segmentatie effect, rechts IFS met willekeurige pixels

27

Page 38: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 2.25: Links werd elk RGB kanaal apart geınterpoleerd en werd ook de correlatie berekendop basis van elk kanaal apart, rechts werd elke RGB kanaal apart geınterpoleerd maar werd decorrelatie van de gewichten voor alle kanalen telkens gehaald uit die van het grijswaardenkanaal

28

Page 39: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Hoofdstuk 3

Niet-lineaire interpolatietechniek

3.1 Uitbreidingen op NEDI

3.1.1 Vlakke gebieden bilineair interpoleren

Sommige stukken in het beeld zijn quasi vlak van kleur en hebben geen textuur noch rand.Het is dan ook weinig waarschijnlijk dat de te interpoleren pixel veel zal verschillen vanzijn 4 omringende pixels, noch van de echte hoge resolutie waarde. Een niet lineaire tech-niek kan in tegendeel soms deze vlakke stukken beeld op onnatuurlijke manier vervormen(met b.v. een schilderseffect of ringen). In dat geval kunnen we beter gewoon bilineairinterpoleren zonder kwaliteitsverlies en met veel snelheidswinst, hoewel dat afhangt vande hoeveelheid vlakke stukken in het beeld. Concreet zullen we bilineair interpoleren enkelen alleen als het verschil tussen de 4 omliggende pixels onder een bepaalde drempel is (b.v.5). In het midden van een klein vlak stuk beeld tussen 2 randen is er nu geen lichte streepmeer te zien.

3.1.2 Normalisatie van de gewichten

Als we NEDI uitvoeren, dan bekomen we 4 gewichten waarmee we dan de waarde van eennieuwe pixel kunnen berekenen aan de hand van de 4 omliggende pixels. Deze gewichtenhebben echter niet dezelfde eigenschappen die gewichten van lineaire methoden hebben.Er zijn negatieve gewichten en de som van alle gewichten is bijna nooit gelijk aan 1. Alswe de 2 grootste gewichten behouden en gelijkstellen aan 0.5 en de 2 andere op 0 zettendan bekomen we een beeld zoals dat van Aqua-2. Een methode om de bekomen gewichtenmeer te laten beantwoorden aan die van lineaire methoden is de volgende:

Figuur 3.1: links NEDI, rechts NEDI met vlakke stukken bilineair geınterpoleerd

29

Page 40: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 3.2: links NEDI, rechts NEDI gewichten genormaliseerd

• Negatieve gewichten gelijk stellen aan 0.

• De overige gewichten delen door de som van alle positieve gewichten.

Het beeld dat we dan bekomen is te zien in figuur 3.2. Het ringeffect is verdwenen metde genormaliseerde gewichten maar de rand is nu ook minder scherp. We kunnen ookgebruik maken van een LoG filter bij het normaliseren van de gewichten. De gewichtendie over zich over een rand bevinden zoals bij EDI [AW96] stellen we dan gelijk aan 0. Inde praktijk zien we dat de negatieve gewichten gegenereerd door NEDI bijna altijd overeenkomen met een waarde in de LoG filter over een rand.

3.1.3 Dynamische venstergrootte

Een variabele in de NEDI methode is de venstergrootte waarin we de correlatie van depixels met hun buren beschouwen. Een manier om te kijken of de venstergrootte goedgekozen is, dat wil zeggen niet te groot en niet te klein, is kijken naar het conditiegetal K

van de matrix in het volledige rechterlid van formule 2.19 voorgesteld als A.

K = ‖A‖∥∥A−1

∥∥ (3.1)

De norm van de matrix wordt voorgesteld als ‖A‖ en wordt gedefinieerd als het maximumvan de som van de absolute waarden van alle kolommen van de matrix.

‖A‖ = maxj

4∑

i=1

|aij| (3.2)

Het conditiegetal geeft aan of de matrix stabiel of onstabiel is. We beginnen bij de kle-inste venstergrootte en vergroten die met 2 totdat de matrix voldoende stabiliteit vertoont.Indien die erg groot blijkt te zijn, dan wordt het venster vergroot.

Met dynamische venstergrootte wordt er niet meer in de verkeerde richting geınterpoleerdop bepaalde plaatsen omdat het venster niet meer te groot gekozen wordt. Het effect isechter klein over het hele beeld gezien.

3.1.4 Antialias filter

Een andere manier om de C matrix in de formule 2.18 stabieler te maken is een antialiasfilter toe te passen op het beeld waarmee we de correlaties gaan beschouwen en dus de

30

Page 41: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 3.3: links NEDI, rechts NEDI met dynamische venstergrootte

gewichten gaan berekenen. Dit werd ook al voorgesteld door Zhao et al. [LZd03]. Defilter verwijdert detail en ruis in het beeld. Daardoor worden de waarden die in de matrixkomen meer afgevlakt en uitgemiddeld over elkaar (indien men gewoon het beeld zoubekijken zou het gewoon waziger zijn). Voor de interpolatie gebruiken we nog altijd deoriginele ongefilterde pixelwaarden. Dit heeft meer effect op de interpolatie dan alleen devenstergrootte te laten varieren. Als we als antialias filter een gemiddelde waarde filtermet parameters 3,5 en 7 gebruiken, hebben de volgende vormen:

1

9

1 1 1

1 1 1

1 1 1

(3.3)

1

25

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

(3.4)

1

49

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

(3.5)

We kunnen ook een Gaussiaanse filter toepassen:

G(x, y) =1

2πσ2e−

x2+y

2

2σ2 (3.6)

Voor σ = 1 wordt dat:

1

273

1 4 7 4 1

4 16 26 6 4

7 26 41 26 7

4 16 26 6 4

1 4 7 4 1

(3.7)

31

Page 42: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 3.4: links NEDI, rechts NEDI op gemiddeldewaardefilter met parameter 3, 5 en 7, uiterstrechts Gaussiaanse filter σ = 1

In figuur 3.4 zien we dat als we een te sterke antialiasfilter gebruiken op het beeld, erdan meer artefacten verschijnen en het moeilijker wordt voor NEDI om de juiste richtingte berekenen van een pixel bij ingewikkelde randen. Het enkel gebruik van de gemiddelde-waarde filter met parameter 3 en de Gaussiaanse filter geven beide een minieme verbeteringaan het beeld, maar in combinatie met andere verbeteringen is er een groter verschil.

3.1.5 Spatiale uitbreiding interpolatievenster

In plaats van over 4 pixels te interpoleren, kunnen we over meerdere pixels interpoleren.Deze uitbreiding werd ook al voorgesteld door Zhao et al. [LZd03]. Dit kan preciezerecorrelaties weergeven van de pixels met hun omringende pixels. Figuur 3.5 toont de ver-schillen met stap 1 en 2 t.o.v. de standaard NEDI methode. De interpolatie zelf gebeurtnu met de 4 pixels van de gewone NEDI interpolatie plus 8 andere pixels die zelf lineairgeınterpoleerd zijn tussen de rode en de blauwe pixels in de figuur 3.5. De reden waaromwe niet gewoon de lage resolutie pixels mogen nemen, is dat dan de correlatie niet meerzou kloppen. De correlatieafstand tussen de pixels in het venster is namelijk zo dat wegenoodzaakt zijn de pixels te nemen die precies liggen op de posities van de groene pixels,en die hebben we niet. Dus moeten we ze interpoleren.In plaats van enkel horizontaal, verticaal of diagonaal zijn er nu veel meer mogelijke direc-tionele verbanden. Dit heeft echter wel tot gevolg dat we aangezien we meer onbekendegewichten te berekenen hebben, we een grotere matrix nodig om de onbekenden stabiel teberekenen. Dat betekent dan weer onvermijdelijk een groter venster.

Op figuur 3.6 zien we een algemene verbetering van het beeld, met scherpere randenen minder verkeerd berekende richtingen waarlangs geınterpoleerd is.

3.1.6 Gewichten aan verschillende correlaties

Als het venster waarin we de correlatie beschouwen erg groot is, hebben de pixels aan derand van het venster mogelijks niet erg veel verband meer met de omgeving waarin we dete interpoleren pixel beschouwen. Aldus is de correlatie met hun buren minder belangrijk

32

Page 43: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

dan van deze die zich vlak in de buurt van de te interpoleren pixel in kwestie bevinden.Zo kunnen de pixels aan de rand van het venster zich aan een rand in het beeld bevindenterwijl deze in het midden van het venster zich in een vlakte in het beeld bevinden.Om dit op het beeld toe te passen, geven we verschillende gewichten aan de pixel en decorrelatie met zijn buren. Het gewicht hangt af van de afstand tot de te interpoleren pixel.Als gewichtsfunctie opteren we voor een dalende exponentiele functie.

f(x) = exp(−(x − 1)2

σ2) (3.8)

De gewichtsfunctie kan ook een te lokaal beeld veroorzaken waarbij de correlatie vande pixels die op grotere afstand in het venster bevinden, onvoldoende in rekening wordtgebracht. Dit is het geval voor σ gelijk aan 1 en in mindere mate voor σ gelijk aan 2. Insommige delen van het beeld treedt er ook een overdreven ringeffect op, wat de scherpteechter wel ten goede komt.Een groot voordeel van het gebruik van een gewichtsfunctie is dat de grootte van hetvenster veel minder belangrijk wordt aangezien de invloed van de veraf liggende pixelszeer klein is, hoe groot het venster ook is. Met deze aanpassing kan men dus het venstereigenlijk niet meer te groot kiezen.

3.1.7 Terugprojectie

Een procedure om een beeld te verbeteren is de volgende:

• Stap 1. Beeld A vergroten met een interpolatietechniek 1 tot beeld B.

• Stap 2. Beeld B weer verkleinen met een interpolatietechniek 2 tot beeld C.

• Stap 3. Beeld D als het verschil van beeld A en beeld C berekenen.

• Stap 4. Beeld D vergroten met een interpolatietechniek 3 tot beeld E.

• Stap 5. Beeld E optellen bij Beeld B en als de voorwaarden voldaan zijn, teruggaannaar stap 2.

Dit schema probeert iteratief het beeld te verbeteren door het verschil telkens bij het beeldop te tellen. De voorwaarden in stap 5 zijn b.v. dat het aantal maximum iteraties niet isbereikt en dat het beeld D voldoende verschilt van een volledig zwart beeld. Er zijn veelvariabelen in deze procedure (verschillende interpolatiemethoden gebruiken bij stap 1, 2en 4) en het kan ook met lineaire methoden gebruikt worden.We gebruiken terugprojectie met de volgende instellingen:

• Interpolatietechniek 1: NEDI

• Interpolatietechniek 2: sinc (Blackman-Harris)

• Interpolatietechniek 3: bikubisch

• Maximum 4 iteraties

33

Page 44: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Voor interpolatietechniek 2 kiezen we een hoogwaardige verkleintechniek, zoals de sincmethode. Het beeld D dat interpolatietechniek 3 zal vergroten zal meestal erg donkerzijn met maar enkele lichte pixels. Daarvoor kiezen we dan een gewone goede lineaireinterpolatietechniek zoals de bikubische methode. Het resultaat is te zien in figuur 3.8.Er is niet veel verschil te zien met de gewone NEDI methode maar met dat kan van beeldtot beeld verschillen.

3.1.8 LoG filter gebruik

Bij de 2 stappen van NEDI kunnen we de LoG waarden berekenen van de 4 pixels die de teinterpoleren pixel omringen (vierkant venster in stap 1, geroteerd vierkant venster in stap2). Het maximum van die LoG-waarden kan een indicatie geven in wat voor omgeving depixel zich bevindt. We onderscheiden 3 regio’s:

• Vlakte: LoG-waarden zijn allemaal onder een bepaalde drempelwaarde-1.

• Textuur, zachte rand of ingewikkelde rand: Maximale LoG-waarde is boven drempelwaarde-1 maar onder drempelwaarde-2.

• Harde rand: Maximale LoG-waarde is boven drempelwaarde-2.

In het geval dat we met een vlakte te maken hebben, gebruiken we de gewichten vanbilineaire interpolatie i.p.v. deze die de correlatiemethode ons zou geven.In geval van textuur gebruiken we de gewichten van bikubische of sinc interpolatie. Als deLoG-waarden zich tussen de 2 drempelwaarden bevinden, dan zijn de pixels wel verschil-lend van elkaar maar onvoldoende om echt een duidelijke rand te vormen. De gewichtenvan bikubisch of sinc interpolatie zouden een betere keuze kunnen zijn in dat geval. Alleenals de LoG-waarden hoog genoeg zijn gebruiken we de gewichten die de correlatiemethodegegenereerd heeft.Een belangrijk aspect van deze werkwijze is het bepalen vanaf welke drempelwaarde inde logfilter we een welbepaalde techniek gebruiken. Dat kan een vaste waarde zijn, of datkunnen we adaptief laten berekenen. De mediaan of het gemiddelde van alle waarden inde LoG filter zou kunnen fungeren als de drempelwaarde tussen randen en textuur. Dit isechter moeilijk te veralgemenen aangezien het ene beeld al wat meer randen zal bevattendan het andere.We zien in de figuur 3.9 dat de textuur van de bakstenen verbetert maar dat er somsartefacten rond sommige randen ontstaan met het gebruiken van deze techniek.

3.2 Combinaties van uitbreidingen

3.2.1 Algemeen

Verschillende van deze uitbreidingen combineren geeft enkele zeer goede resultaten. Zhaoet al. [LZd03] stelde de combinatie voor van een spatiale uitbreiding van het interpo-latievenster en een antialias filter voor. Sommige combinaties blijken beter te werken danandere. Zo is de combinatie van een spatiale uitbreiding van het interpolatievenster en denormalisatie van de gewichten zeer nefast voor de kwaliteit van het beeld, wat te zien isop figuur 3.10. Met 12 gewichten kan men blijkbaar niet zomaar gewichten 0 maken en isde balans tussen alle gewichten veel gevoeliger dan het was met 4 gewichten.

34

Page 45: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

3.2.2 Instellingen eigen techniek

We verkiezen NEDI toe te passen met de volgende uitbreidingen:

• Vlakke gebieden detecteren en bilineair interpoleren

• Antialias filter (Gaussiaanse filter)

• Spatiale uitbreiding van het interpolatievenster

• Gewichten in de correlatiematrix C

• Vaste venstergrootte 12x12 pixels

We maken gebruik van een LoG filter om de vlakke gebieden te detecteren. De bekomengewichten worden niet genormaliseerd. De nood aan een dynamische venstergrootte isteniet gedaan door het gebruik van gewichten in de correlatiematrix, waardoor we zonderprobleem de matrix C een vaste grootte mogen laten houden.In figuur 3.11 kunnen we het resultaat zien van de aanpassingen. De randen zijn scherpervan lichttoren en de bakstenen zijn ook scherper. De artefacten zijn ook veel minderaanwezig.

35

Page 46: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

���������������� ����������������� ��� ���������������������� ���������������� �� ����� ��������������� �� ��������� � ���� ������!�����

���������������� ����������� ��������� ���������� � � �������������� ������� ���� ������ ������� ����� ���"������������ �� ��� ������� � ���������������������� #����� � ����������� �������������������������$�������� ��� �������� ������������ ��������� �������� ������ ���� � ����������������������� ���������������� ��������� ������������

Figuur 3.5: Nedi met spatiale uitbreiding

36

Page 47: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 3.6: links NEDI, rechts NEDI met een spatiaal uitgebreid interpolatie venster

Figuur 3.7: linksboven NEDI, rechtsboven naar rechtsonderaan NEDI met gewichtfunctie dalendeexponentiele functie met verschillende parameters

37

Page 48: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 3.8: Terugprojectie met Nedi: links standaard NEDI methode, rechts met terugprojectie

Figuur 3.9: links NEDI, midden NEDI met bikubisch, rechts NEDI met sinc

38

Page 49: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 3.10: links standaard NEDI, rechts NEDI met spatiale uitbreiding van het interpolatieven-ster en normalisatie van de gewichten

Figuur 3.11: links standaard NEDI, rechts NEDI met al onze aanpassingen

39

Page 50: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Hoofdstuk 4

Experimentele resultaten

4.1 Methodologie

Om de verschillende interpolatie technieken te testen, moeten we een methode hebben dieeen kwantitatieve maat die aangeeft hoe goed de interpolatie gelukt is. We doen dat dooreen beeld van hoge resolutie te nemen, dat dan te verkleinen en dan het beeld van lageresolutie dat men daardoor bekomen heeft, weer te interpoleren naar de grootte van hethoge-resolutie beeld. Door daarna pixel per pixel te vergelijken met het originele hoge-resolutie beeld kunnen we een kwantitatieve maat vormen die aangeeft in welke mate hetgeınterpoleerde beeld met originele hoge-resolutie beeld verschilt.Er zijn verschillende manieren om het beeld van hoge resolutie te verkleinen. We kunnenhier de klassieke lineaire methoden toepassen om te verkleinen i.p.v. vergroten. We kiezener drie uit en passen die toe op een voorbeeld foto (figuur 4.1):

• Dichtste buur (figuur 4.2 linksboven): Dit is het equivalent van i.p.v. elke pixel teherhalen en zo het beeld te verdubbelen in lengte en breedte, enkel de even pixels(zowel verticaal als horizontaal) in het beeld bij te houden en zo het beeld te halverenin lengte en breedte. Het spreekt vanzelf dat er met deze techniek veel informatieverloren gaat uit het beeld.

• Bilineair (figuur 4.2 onderaan): Nu wordt het gemiddelde van 4 pixels opgeslaanvoor elke pixel in het nieuwe verkleinde beeld. Dit geeft zoals bij vergrote bilineaireinterpolatiebeelden wazige beelden.

• Sinc (figuur 4.2 rechtsboven): Deze methode behoudt het meeste detail bij hetverkleinen naar een lagere resolutie. Het verschil met het echte hoge resolutiebeeldzal hier het kleinst zijn.

4.2 MSE/PSNR/SSIM analyse

Het vergelijken van de beelden gebeurt door MSE (Mean Squared Error of kleinste kwadratis-che fout). Dit is de formule van MSE voor 2 beelden I en K bestaande uit mn pixels:

MSE =1

mn

m−1∑

i=0

n−1∑

j=0

‖I(i, j) − K(i, j)‖2 (4.1)

40

Page 51: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

De MSE waarde kan van beeld tot beeld erg verschillen, waardoor we de MSE waardetussen verschillende beelden niet kunnen vergelijken met elkaar. Met de PSNR (peaksignal-to-noise ratio, eenheid in dB) daarentegen kunnen we dat wel want daar wordt hetmaximale verschil in rekening gebracht. De formule van PSNR luidt als volgt:

PSNR = 10.log10(MAX2

MSE) = 20.log10

(MAX√MSE

)

(4.2)

De MAX variabele stelt de maximale pixel waarde in het beeld voor, voor 8 bits perkanaal is dat dus 255.Een recentere manier om 2 beelden te vergelijken is de Structurele Similariteits Index(SSIM) [WBSS04]. Het is gebaseerd op het meten van luminantieverschillen, contrastver-schillen en structurele verschillen. Deze methode houdt rekening met de menselijke per-ceptie van beelden. De hoofdfunctie van het menselijke visuele systeem is om structureleinformatie te vergaren uit de omgeving. De mate waarin er structurele informatie uit hetbeeld is verloren gegaan kan dus een goede maat zijn om fouten in het beeld te meten. DeSSIM resultaten gaan van 0 tot 1, waarbij 1 een perfecte overeenkomst van de 2 beeldenvoorstelt.

4.3 Resultaten

We hebben geopteerd om dichtste buur, bilineair, bikubisch, sinc, AQua-2, NEDI, NEDIvan Zhao et al. en onze eigen versie van NEDI interpolatie te vergelijken met elkaar.We berekenen de PSNR van het hele beeld maar ook van specifieke gebieden van hetbeeld waar de waarden van de LoG filter zich tussen bepaalde drempelwaarden bevinden.Zo kunnen we ook zien welke techniek het best presteert in vlakke gebieden, randen entextuurgebieden.

4.3.1 Beeld 1

De eerste figuur die we testen is een boot op het water, duidelijk afgelijnd t.o.v. de horizon(figuur 4.3). Hier geeft onze techniek de hoogste PSNR waarde voor het gehele beeld vande geteste technieken, te zien in figuur 4.4. In de vlakke gebieden zijn er technieken diebeter scoren dan maar daar zullen de verschillen nooit voldoende zichtbaar zijn met hetblote oog (figuur 4.8). De PSNR van de randpixels zijn het laagst (figuur 4.6) en daarscoort onze techniek ook goed. Daar wordt het verschil gemaakt met de andere methoden.In figuur 4.7 zien we het resultaat voor de textuurpixels. Met de sinc verkleining krijgenwe voor textuur slechtere resultaten dan met de andere NEDI methoden.De PSNR waarden voor dit beeld zijn het hoogste voor de bilineaire verkleining, en nietde sinc verkleining. Dit kan te maken hebben met het feit dat er veel vlakke stukkengecombineerd met duidelijke randen in het beeld zijn (figuur 4.5) en dat bilineaire inter-polatie daar beter voor geschikt is (geen ringartefacten in de vlakke stukken). Voor dedichtste buur verkleining zijn de waarden het laagst, wat wel verwacht was. Ook kunnenwe vaststellen dat de ene techniek een betere PSNR waarde laat optekenen met de eneverkleining dan de andere verkleining en vice versa voor de andere techniek. Zo heeft b.v.de sinc methode een betere PSNR met de bilineaire verkleining dan met de sinc verkleiningmaar heeft de bilineaire methode een betere PSNR met de sinc verkleining dan met debilineaire verkleining.

41

Page 52: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

De resultaten van de SSIM waarden 4.9 komen ongeveer overeen met de PSNR waarden.Toch zijn er enkele verassingen. Zo scoort de dichtste buur methode beter dan de bilin-eaire methode bij de bilineaire verkleining. De bikubische methode scoort ook over hetalgemeen erg goed voor een lineaire techniek.In figuren 4.10, 4.11 en 4.12 kunnen we het resultaat van de interpolaties op de verschil-lende verkleiningen zien. De leesbaarheid van de cijfers op het zeil van de boot is een goeieindicator voor de kwaliteit. Onze techniek levert scherpe resultaten op.

4.3.2 Beeld 2

Het 2de beeld dat we interpoleren is figuur 4.13 met veel textuur. Dit beeld is een huismet beschilderde muren waarvan veel detail zal verloren gaan bij het verkleinen.In de algemene PSNR resultaten (figuur 4.14) zien we dat er geen algemene winnaar isonder de technieken. De PSNR waarden zijn ook vrij laag wat betekent dat de interpolatieniet zo goed gelukt is. Met de bilineaire verkleining scoort onze methode goed maar metde sinc verkleining niet.Ook aan de randen is er geen echte koploper onder de methoden in deze figuur, er zijndan ook weinig duidelijke randen(figuur 4.16). Dit kunnen we deels verklaren a.d.h.v. hetLoG-filterbeeld (figuur 4.15) waarin te zien is dat bij de randpixels niet echt een duidelijkerichting aan te wijzen is. Zelfs de dichtste buur methode is in een geval zelfs niet deslechtste methode, nl. bij de bilineaire verkleining. Bij de bilineaire verkleining is metonze methode wel een verbetering t.o.v. de andere NEDI methoden te zien.Uit het textuurgebied zijn ook niet veel conclusies te trekken (figuur 4.17). Bij de bilineaireverkleining scoort onze methode beter dan de andere NEDI varianten, bij de de sincverkleining dan weer slechter.In de vlakke gebieden interpoleert de bilineaire methode duidelijk het best (figuur 4.18).Hier scoort onze methode lager dan de andere NEDI varianten.Figuur 4.20 toont de resulterende interpolaties aan. We zien dat onze techniek een scherperbeeld geeft met minder artefacten dan de andere NEDI methoden.De SIMM resultaten 4.19 geven wel goede waarden voor de voorgestelde aanpassingenaan NEDI. Bij de sinc verkleining krijgt de aangepaste NEDI methode een redelijk goedescore, al krijgt hij daar een middelmatige PSNR score.Dit beeld toont aan dat een algemene methode voor beeldinterpolatie moeilijk te vindenis voor bepaalde beelden, zoals deze waar bij het verkleinen er onherroepelijk informatieverloren gaat en er geen manier is om die weer terug te krijgen bij het vergroten. Eenalgemene opmerking die we wel kunnen maken is dat de relatief laagste scores gehaaldwerden wanneer dezelfde methode gebruikt werd om te verkleinen en weer te vergroten.

42

Page 53: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.1: Voorbeeld foto

43

Page 54: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.2: Rechtsboven sinc verkleining, linksboven dichtste buur verkleining, onderaan bilineaireverkleining

44

Page 55: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.3: Beeld Kodim09

45

Page 56: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

����

��

����

��

����

��

����

��

����

��

����

�������������

����� ��

��������

����

��� ��

!�"

!�"�#$� %���� &'

!�"�#������������'

Figuur 4.4: Algemene PSNR resultaten van Kodim09

46

Page 57: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.5: Pixels in de LoG-filter (drempelwaarden 50 voor vlakken, 100 voor textuur): links derand, midden de textuur, rechts de vlaktes (pixels telkens in het wit)

47

Page 58: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

� � � �� �� � � �� �� � � �� �� � � �� �� � � �� �� � � �

��� � ��

����

����� ��

��������

����� � � � �� � � �� � � ��� � � �����

� �

� � � ���

�������������

Figuur 4.6: Rand PSNR resultaten van Kodim09

48

Page 59: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

� �� � � �� �� � � �� �� � � �� �� � � �� �� � � �� �� � � �

��

� � ���

����

����� ��

��������

����

��� ��

!�"

!�"�#$� %���� &'

!�"�#������������'

Figuur 4.7: Textuur PSNR resultaten van Kodim09

49

Page 60: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

� � � �� �� � � �� �� � � �� �� � � �� �� � � �� �� � � �� �� � � �� �� � � ��

�������������

����� ��

��������

���� � � � �� � � �� � � ��� � � �����

'(

!"�#�$������������(

Figuur 4.8: Vlakte PSNR resultaten van Kodim09

50

Page 61: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � � � � �� � � � � �� � �� � �

��� � � ��

����

����� ��

��������

����� � � � � �� � � �� � � ��� � � � �����

� �

� � � ���

�������������

Figuur 4.9: SSIM resultaten van Kodim09

51

Page 62: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.10: Interpolaties van de sinc verkleining; bovenaan, van links naar rechts: dichtste buur,bilineaire, bikubische en sinc methode; onderaan, van links naar rechts: AQua-2, NEDI, NEDI(Zhao), NEDI (eigen versie)

52

Page 63: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.11: Interpolaties van de bilineaire verkleining; bovenaan, van links naar rechts: dichtstebuur, bilineaire, bikubische en sinc methode; onderaan, van links naar rechts: AQua-2, NEDI,NEDI (Zhao), NEDI (eigen versie)

53

Page 64: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.12: Interpolaties van de dichtste buur verkleining; bovenaan, van links naar rechts: dicht-ste buur, bilineaire, bikubische en sinc methode; onderaan, van links naar rechts: AQua-2, NEDI,NEDI (Zhao), NEDI (eigen versie)

54

Page 65: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.13: Beeld Kodim24

55

Page 66: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

��� � � � �� � � �� � � � �� �� � � � �� � � �� � � � �� �� � � � �� � � �� � � � �� �� � � � �� � � �� � � � �

��� � ��

����

����� ��

��������

����� � � � �� � � �� � � ��� � � � �����

� �

� � � ���

�������������

Figuur 4.14: Algemene PSNR resultaten van Kodim24

56

Page 67: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.15: Pixels in de LoG-filter (drempelwaarden 50 voor vlakken, 100 voor textuur): bovenaande rand, midden de textuur, onderaan de vlaktes (pixels telkens in het wit)

57

Page 68: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

� �� � � � �� � � �� � � � �� �� � � � �� � � �� � � � �� �� � � � �� � � �� � � � �� �� � � � �� � � �� � � � �

��� � ��

����

����� ��

��������

����� � � � �� � � �� � � ��� � � �����

� �

� � � ���

�����������

� �

Figuur 4.16: Rand PSNR resultaten van Kodim24

58

Page 69: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

� �� � � �� �� � � �� �� � � �� �� � � �� �� � � �� �

��

� � ���

����

����� ��

��������

����

��� ��

!�"

!�"�#$� %���� &'

!�"�#������������'

Figuur 4.17: Textuur PSNR resultaten van Kodim24

59

Page 70: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

� �� � � �� �� � � �� �� � � �� �� � � �� �� � � �� �� � � �� �� � � �� �� � � ��

�������������

����� ��

��������

���� � � � �� � � �� � � ��� � � �����

'(

!"�#�$������������(

Figuur 4.18: Vlakte PSNR resultaten van Kodim24

60

Page 71: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

�������������� ����� �������������

�����������������������

� � � �� � � �� � � �� � � �� � � �� � �� � � �� � � �� � � � � � � � � �� � � �

��� � � ��

����

����� ��

��������

����� � � � � �� � � �� � � ��� � � � �����

� �

� � � ���

�����������

� �

Figuur 4.19: SSIM resultaten van Kodim24

61

Page 72: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Figuur 4.20: Interpolaties van de sinc verkleining; bovenaan, van links naar rechts: dichtste buur,bilineaire, bikubische en sinc methode; onderaan, van links naar rechts: AQua-2, NEDI, NEDI(Zhao), NEDI (eigen versie)

62

Page 73: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Hoofdstuk 5

Besluit

Toepassingen voor beeldinterpolatie zijn aanwezig in veel verschillende industrietakken.In de medische beeldvorming wordt beeldinterpolatie gebruikt bij een CT of MRI-scanvoor de reconstructie van het gescande beeld. Hoge Definitie Televisie (HDTV) intro-duceert een hogere resolutie waardoor oudere programma’s geınterpoleerd moeten wordenom weergegeven te worden. Mobiele telefoons met een ingebouwde camera hebben vaakgeen optische zoom waardoor de enige manier om het beeld te vergroten een digitale zoomis, wat met beeldinterpolatie gerealiseerd kan worden.In deze thesis hebben we een veelheid aan technieken behandeld om digitale beelden teinterpoleren. Elke methode heeft zijn sterktes en zwaktes. De lineaire technieken zijnerg snel en bieden een redelijk resultaat in verhouding met de benodigde rekentijd dieze in beslag nemen, de bikubische methode in het bijzonder. NEDI is veel trager, maarkan een scherper beeld opleveren met minder trapvorming, iets wat onmiddelijk opvalt.NEDI introduceert echter enkele specifieke artefacten eigen aan de methode. Voorbeeldenhiervan zijn streepachtige patronen in textuur en in vlakke gebieden in het beeld. Met dewijzigingen in deze thesis kunnen deze gereduceerd worden waardoor de computationeleefficientie het hoofdnadeel wordt van NEDI-gebaseerde interpolatietechnieken.Er is al onderzoek gedaan naar verbeteringen aan NEDI. Zhao et al. [LZd03] stelden hetgebruik van een antialias filter voor in combinatie met een spatiale uitbreiding van hetinterpolatievenster. Andere mogelijke aanpassingen zijn het normaliseren van de interpo-latiegewichten of het gebruik van een LoG filter om specifieke delen van het beeld apartte interpoleren. De voorgestelde aanpassingen aan NEDI geformuleerd in deze thesis zijn:

• Antialias filter (Gaussiaanse filter) [LZd03]

• Spatiale uitbreiding van het interpolatievenster [LZd03]

• Vlakke gebieden detecteren met LoG filter en bilineair interpoleren

• Gewichten in correlatiematrix C gebruiken

Deze aanpassingen geven in sommige gevallen betere PSNR waarden, SSIM waarden enscherpere beelden. Beelden met veel textuur zoals wolken, gras of andere natuurlijke vor-men zijn moeilijker te interpoleren vanwege hun onvoorspelbare vorm op hogere resolutie.Beelden met duidelijke randen zoals geometrische vormen scoren betere PSNR waarden,vooral in de gebieden rond de randen. Ook de SSIM scores zijn soms beter met dezevoorgestelde aanpassingen. Aangezien SSIM [WBSS04] rekening houdt met de menselijke

63

Page 74: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

perceptie van beelden kan dit een betere aanwijzing zijn voor de kwaliteit van de interpo-latie.Zhao et al. [ZDH03] heeft een versie van NEDI ontwikkelt die in een enkele pass alle pixelsberekent, maar dit gaat deels ten koste de beeldkwaliteit. Men zou dit verder kunnenonderzoeken en of men het beeld rechtstreeks on-center zou kunnen interpoleren. Dit zoudan de PSNR waarden nog verder verbeteren. In bepaalde gebieden van beelden zoalstextuur kan NEDI slechte resultaten genereren. Er zou onderzoek kunnen gevoerd wordenom dat te verbeteren. Een andere richting waar onderzoek zou kunnen gevoerd worden isnaar een computationeel efficientere versie van NEDI.

64

Page 75: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

Bibliography

[ANW67] J. H. Ahlberg, E. N. Nilson, and J. L. Walsh. The Theory of Splines and TheirApplications. Academic Press, New York, 1967.

[AW96] J. Allebach and P. Wong. Edge-directed interpolation. IEEE, pages 707–710,1996.

[BSV02] Michael F. Barnsley, Dietmar Saupe, and Edward R. Vrscay, editors. Fractalsin Multimedia. Springer, 2002.

[DH90] P. E. Danielsson and M. Hammerin. High accuracy rotation of images. Tech-nical report, Linkoping University, Department of Electrical Engineering, Swe-den, 1990.

[DH92] P. E. Danielsson and M. Hammerin. Note: High accuracy rotation of images.CVGIP: Graph. Models Image Processing, 54:340–344, 1992.

[JA95] K. Jensen and D. Anastassiou. Subpixel edge localization and the interpolationof still images. IEEE transactions on image processing, 4(3):285–295, march1995.

[Key81] R. G. Keys. Cubic convolution interpoloation for digital image processing.IEEE Trans. Acoust., Speech, Signal Processing, ASSP-29(6):1153–1160, 1981.

[LGS99] T. M. Lehmann, C. Gonner, and K. Spitzer. Survey: Interpolation meth-odes in medical image processing. IEEE Transactions on medical imaging,18(11):1049–1075, November 1999.

[LLP06] H. Q. Luong, A. Ledda, and W. Philips. An image interpolation schemefor repetitive structures. In Lecture Notes in Computer Science 4141 (In-ternational Conference On Image Analysis And Recognition), pages 104–115,september 2006.

[LO01] Xin Li and Michael T. Orchard. New edge-directed interpolation. IEEE trans-actions on image processing, 10(10):1521–1527, October 2001.

[LP05] H. Q. Luong and W. Philips. Sharp image interpolation by mapping levelcurves. Proc. Visual Communications and Image Processing, pages 2012–2022,July 2005.

[LZd03] J. A. Leitao, M. Zhao, and G. de Haan. Content-adaptive video up-scaling forhigh definition displays. In Image and Video Communications and Processing(SPIE), volume 5022, pages 612–622, May 2003.

65

Page 76: Textuuradaptieve niet-lineaire beeldinterpolatielib.ugent.be/fulltxt/RUG01/001/312/590/RUG01-001312590... · 2010. 6. 7. · et al. [5]has also proposeda version of NEDIwhich com-putes

[Mei02] Erik Meijering. A chronology of interpolation, from ancient astronomy tomodern signal and image processing. Proceedings of the IEEE, 90(3):319–342,March 2002.

[MNV01] E. H. W. Meijering, W. J. Niessen, and M. A. Viergever. Quantitative evalu-ation of convolution-based methods for medical image interpolation. MedicalImage Analysis, 5(2):111–126, June 2001.

[MP04] D. D. Muresan and T. W. Parks. Adaptive quadratic (aqua) image interpola-tion. IEEE Transactions on Image Processing, 13(5):690–699, May 2004.

[Mur05] D. Darian Muresan. Fast edge directed polynomial interpolation. IEEE, pages990–993, 2005.

[Thi09] T. N. Thiele. Interpolationsrechnung. B. G. Teubner, Leipzig, 1909.

[Tze03] Fan-Yin Tzeng. Adaptive new edge-directed interpolation. Master’s thesis,University of California, 2003.

[Uns99] Michael Unser. Splines, a perfect fit for signal and image processing. IEEEsignal processing magazine, November 1999.

[WBSS04] Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. Image qualityassessment: From error visibility to structural similarity. IEEE Transactionson Image Processing, 13(4):600–612, April 2004.

[ZDH03] M. Zhao and G. De Haan. Content-adaptive video up-scaling. In Proc ASCI2003, pages 151–156, 2003.

66