Kuvanlaadunparantaminen Mikko Nuutinen 21.3.2013
Luennon sisältö Termistöä Kuvanentisöinti Terävyys unsharp masking Kohina non-local means Linssivääristymän korjaus Kuvanlaadunehostaminen Kontrasti Auto-levels Retinex
Oppimistavoitteet Periaatteellinen ero kuvanentisöinnin ja kuvanlaadunehostamisen välillä Kuvan terävöitys unsharp masking Kuvan kohinanpoisto gaussin- ja mediaanisuodin NLmeans -menetelmä Kuvan kontrastin kasvattaminen auto-levels retinex
Kuvanlaadunparantamisen termistöä Kuvanentisöinnin image restoration tarkoitus on korjata kuva vastaamaan alkuperäistä näkymää Yleisesti tarkoituksena on poistaa tai kompensoida kuvan taltioinnissa syntynyt laatuvika joka vääristää kuvaa verrattaessa sitä alkuperäiseen näkymään Laatuvikoja ovat mm. epäterävyys kohina linssivirhe Kuvanehostamisella image enhancement pyritään lopputulokseen joka on visuaalisesti mahdollisimman miellyttävä Menetelmästä riippuen kuvaa voidaan samanaikaisesti sekä ehostaa että entisöidä; raja menetelmien välillä on muutenkin hieman epäselvä
Kuvanentisöinti - kuvan yleinen heikennysmalli Kuvan entisöinti pohjautuu perinteisesti kuvan heikennysmalliin Yleinen malli spatiaalisessa avaruudessa g x y h x y f x y n x y h x y funktio laatuheikennykselle nx y funktio kohinalle fx y alkuperäinen kuva Sama taajuusavaruudessa G u v H u v F u v N u v Kuvanentisöinnin päämäärä on estimoida fxy
Kuvanentisöinti tavoite on löytää alkuperäinen signaali Alkuperäinen näkymä Alipäästösuodatus: Esimerkiksi kameran näytteistys aiheuttaa pisteenleviämistä Kohina: Esimerkiksi kamerassa useita kohinalähteitä Kuvanentisöinnin tavoite on löytää alkuperäinen signaali näkymä vääristyneestä signaalista
Kuvanehostaminen tavoite on tuottaa visuaalisesti mahdollisimman miellyttävä lopputulos Kuva näkymästä Kuvan kontrastia kasvatettu Kuvaa yliterävöitetty* Kuvanehostamisessa on tavoitteena muokata kuva visuaalisesti mahdollisimman miellyttäväksi * Huomaa ero kuvanentisöinnissä tapahtuvaan terävöitykseen joka kompensoi kuvauksessa tapahtunutta epäterävöitymistä kun taas kuvanehostuksessa terävöitys muokkaa kuvaa visuaalisesti mahdollisimman miellyttäväksi
Kuvan entisöinti - epäterävöitys Kuvan epäterävöityminen voidaan yleistää tapahtuvaksi epäterävyys-funktion konvoluutiolla Epäterävyys-funktioita mm. kameran pisteenleviämisfunktio ja liike-epäterävyys Alkuperäinen kuva Liike-epäterävä kuva
Kuvan entisöinti - epäterävöitys Käänteissuodatus Jos epäterävyysfunktio on tiedossa niin yksinkertaisin tapa palauttaa alkuperäinen kuva on käänteissuodatus eli käänteiskonvoluutio Heikennysmalli taajuusavaruudessa Fourier Käänteissuodatus alkuperäiselle kuvalle Fuv v u N v u F v u H v u G v u H v u N v u H v G u v u F Toimisi hyvin jos kuvassa ei olisi kohinaa!
Kuvan entisöinti - epäterävöitys Käänteissuodatus ilman kohinaa Liike-epäterävä kuva kun prosessissa ei ole kohinalähteitä Entisöity liike-epäterävä kuva =palautettu alkuperäinen kuva G u v H u v F u v F u v G u v H u v Esimerkiksi yksittäiselle kameralle voisi mitata epäterävyysfunktion ja näin ollen tuotetun kuvan voisi palauttaa vastaamaan alkuperäistä näkymää mutta koska kuvassa on käytännössä aina kohinaenergiaa niin tämä ei ole mahdollista
Kuvan entisöinti - epäterävöitys Käänteissuodatus kuvassa kohinaa v u H v u N v u H v G u v u F v u N v u F v u H v u G Liike-epäterävä kuva kun prosessiin on lisätty kohinalähde Entisöity liike-epäterävä kuva
Kuvan entisöinti/ehostus epäterävöitys unsharp masking Unsharp-masking on yleisesti käytössä useassa kuvankäsittelyohjelmistossa Menetelmä tuottaa ylipäästökuvan unsharp mask USM vähentämällä kuvasta kuvan sumennetun version Kuvan terävöitys toteutetaan kolmen kuvan avulla: ylipäästökuva alkuperäinen kuva sekä korkeamman kontrastin alkuperäinen kuva Terävöitetty kuva syntyy niin että jos USM saa pienen arvon niin käytetään alkuperäisen kuvan intensiteettiarvoja ja jos USM saa korkean arvon niin käytetään korkeamman kontrastin kuvan pikseliarvoja http://www.cambridgeincolour.com/tutorials/unsharp-mask.htm
Kuvan entisöinti/ehostus epäterävöitys unsharp masking - = Tuotetaan terävöitetty kuva valitsemalla pikseliarvot joko korkeamman kontrastin kuvasta tai alkuperäisestä kuvasta riippuen ylipäästökuvan intensiteettiarvoista = Korkeamman kontrastin kuva Ylipäästökuva Alkuperäinen kuva Terävöitetty kuva Tuotetaan ylipäästökuva vähentämällä sumennettu versio alkuperäisestä http://www.cambridgeincolour.com/tutorials/unsharp-mask.htm
Kuvan entisöinti/ehostus epäterävöitys unsharp masking Unsharp masking ei kasvata kuvan resoluutiota vaikka se saa esimerkiksi tekstidokumentin näyttämään terävämmältä Prosessi ei tuota ideaalista terävää reunaa vaan se yli- ja alivahvistaa reuna-alueita Alkuperäinen Terävöitetty http://www.cambridgeincolour.com/tutorials/unsharp-mask.htm
Kuvan entisöinti/ehostus epäterävöitys unsharp masking Alkuperäinen Terävöitetty http://www.cambridgeincolour.com/tutorials/unsharp-mask.htm
Kuvan entisöinti - kohina Kuvassa esiintyvällä kohinalla tarkoitetaan kirkkauden satunnaista vaihtelua kuvassa Yleisiä kohinatyyppejä kuvaprosessoinnin alueella: Gaussinen kohina on pikseliriippumatonta eli se vaihtelee satunnaisesti eikä ole riippuvaista pikseliarvosta tai naapuripikseleistä Suola-pippuri -kohina on impulsiivinen kohina joka havaitaan tummina pisteinä vaaleilla kuva-alueilla ja vastaavasti vaaleina pisteinä tummilla alueilla. Johtuu esimerkiksi kameran kennon ns. kuolleista pikseleistä Raekohina on kuvan vaaleilla alueilla esiintyvä kohinatyyppi joka johtuu sensorin havaitsemien fotonien lukumäärän vaihtelusta
Kuvan entisöinti - kohina Gaussin / keskiarvoistava suodin Jokainen pikseli saa naapurustoalueen keskiarvoisen intensiteettiarvon Vähentää kohinaa mutta samalla myös kuvan yksityiskohtia Ei toimi hyvin Suola-pippuri-kohinan tapauksessa Sopii paremmin raekohinalle Suodatetussa kuvassa vaaleita läiskiä Suola-pippuri-kohina Keskiarvoistavalla suotimella suodatettu suola-pippuri-kohinainen kuva
Kuvan entisöinti - kohina Mediaani-suodin Naapuruston pikselit lajitellaan pienimmästä suurimpaan arvoon ja valitaan pikselin arvoksi mediaani Vähentää varsinkin suola-pippuri kohinaa Suola-pippuri-kohina Mediaanisuotimella suodatettu suolapippuri-kohinainen kuva
Kuvan entisöinti - kohina Non-Local Means -algoritmi Taustateoria: jos esimerkiksi yhdeksän saman väriarvon pikseliä keskiarvoistetaan niin pikselin kohinakeskihajonta keskimäärin pienenee kolmannekseen; tai vastaavasti 16 pikselin keskiarvo pienentää hajonnan neljäsosaan Idea: Non-Local Means etsii kuvasta näitä saman väriarvon pikseleitä; ajatuksena on että pikseleiden ei tarvitse olla lähellä toisiaan vrt. keskiarvoistava suodin ja kuvan yksityiskohdat säilyvät mahdollisesti paremmin Miten samankaltaiset pikselit löydetään? p1 p8 p1 p2 p3 p4 p5 P6 p7 p8 p9 p2 p9 p4 p3 p5 p7 p6
Kuvan entisöinti - kohina Non-Local Means -algoritmi Haetaan käsiteltävälle pikselille väriltään samanlaisia pikseleitä etsimällä samankaltaisia naapurustoalueita / blokkeja Samankaltaisuus lasketaan blokkikohtaisesti lasketuilla euklidisilla etäisyyksillä Euklidinen etäisyys määrittää painokertoimen sille miten löydettyä samankaltaista pikseliä painotetaan keskiarvoistavassa kohinasuodatuksessa. Esim. kuvan blokkien q1 ja q2 keskipisteen väriarvot saavat korkean painotuskertoimen kun taas blokin q3 saa matalan kun pisteelle p lasketaan uusi kohinasuodatettu estimaatti A. Buades B. Coll J.M. Morel "A review of image denoising algorithms with a new one" Multiscale Modeling and Simulation 4 2 490-530 2005.
Kuvan entisöinti - kohina NL Means -algoritmi A. Buades B. Coll J.M. Morel "A review of image denoising algorithms with a new one" Multiscale Modeling and Simulation 4 2 490-530 2005.
Kuvan entisöinti - kohina NL Means menetelmä NL Means menetelmä toimii varsin hyvin ainakin jos kohina on tyypiltään Gaussista
Kuvan entisöinti - kohina NL Means menetelmä On-line demo http://demo.ipol.im/demo/bcm_non_local_means_denoising/ http://www.ipol.im/pub/art/2011/bcm_nlm/
http://en.wikipedia.org/wiki/distortion_%28optics%29 Linssivääristymän korjaaminen Linssivääristymä luokitellaan tyyny- tai tynnyrivääristymäksi Etenkin heikkolaatuisen kameran optiikka saattaa tuottaa molempia vääristymätyyppejä samanaikaisesti
Linssivääristymän korjaaminen Lasketaan uudet pikselisijainnit linssivääristymän korjausyhtälön avulla Jos vääristymä on tynnyrivääristymä niin K1 on positiivinen ja jos vääristymä on tyynyvääristymä niin K1 on negatiivinen Parametri K1 siirtää korjatun kuvan pikselisijainteja joko lähemmäksi tai kauemmaksi kuvan optisesta keskipisteestä missä: = vääristyneen kuvapisteen sijainti = korjatun kuvapisteen sijainti = optinen keskipiste = radiaalinen vääristymävakio = tangentiaalinen vääristymävakio = http://en.wikipedia.org/wiki/distortion_%28optics%29
Linssivääristymän korjaaminen Tynnyrivääristymä Korjattu tynnyrivääristymä http://www.kenrockwell.com/tech/correctinglensdistortion.htm
Kuvanlaadunehostaminen - kontrasti Heikko kontrasti on yleinen ongelma varsinkin matalalaatuisilla kameroilla otetuissa kuvissa
Kuvanlaadunehostaminen - kontrasti Auto-levels menetelmä Histogrammi-perustainen menetelmä joka löytyy jossakin muodossa lähes kaikista kuvankäsittelyohjelmista Yksinkertainen toteuttaa ja laskea Auto-levels menetelmä aloittaa etsimällä kuvan histogrammin minimi- ja maksimiarvot Minimi- ja maksimiarvojen avulla intensiteettiarvot levitetään koko skaalalle output = input input_low input_high input_low 1/gamma
Kuvanlaadunehostaminen - kontrasti Auto-levels menetelmä Auto-levels 2000 1500 1000 500 0 0 50 100 150 200 250 1500 1000 500 0 0 50 100 150 200 250
Kuvanlaadunehostaminen - kontrasti Auto-levels menetelmä Auto-levels 1500 1500 1000 1000 500 500 0 0 50 100 150 200 250 0 0 50 100 150 200 250
Kuvanlaadunehostaminen - kontrasti Auto-levels menetelmä Auto-levels 1000 1000 500 500 0 0 50 100 150 200 250 Tässä tapauksessa kuvan kohde erottuu ehkä huonommin prosessoinnin jälkeen. Tämä johtuu siitä että auto-levels on globaali menetelmä ja alkuperäisen kuvan intensiteettijakauma on valmiiksi laaja. 0 0 50 100 150 200 250
Kuvanlaadunehostaminen - kontrasti Multiscale Retinex with Color Restoration menetelmä Retinex on alun perin Edwin Landin 1971 kehittämä malli ihmisen näköjärjestelmälle Näköjärjestelmän mallintamisen lisäksi jo Land itse ehdotti Retinex:in käyttämistä kuvankorjauksessa Perusidea on prosessoida kuva niin että se muistuttaa enemmän havaittua näkymää Retinex terävöittää kuvaa pakkaa sen dynamiikkaa sekä tekee valkotasapainoprosessointia Alkuperäinen teoria perustuu ns. satunnaissiirtymä random walk konseptiin Satunnaissiirtymä-konseptissa pikselin kirkkaus lasketaan useiden satunnaisesti valittujen polkujen päätepikselien intensiteettien suhteiden keskiarvosta i n i j k k=1 /n
Kuvanlaadunehostaminen - kontrasti Single Scale Retinex menetelmä Nykyään perus-retinex perustuu pikselin ja alipäästetyn kuvan pikselin suhteeseen Käytössä on single-scale SSR multi-scale MSR ja multi-scale with color restoration MSRCR Retinex-menetelmät Käytännössä kuvan pikseliarvot jaetaan gaussisesti suodatetun kuvan pikseliarvoilla. F on gaussin-suodatin R x y log I i jossa I i i x y log F x y I x y x y on kuvan kanavan i intensiteettijakauma i
Kuvanlaadunehostaminen - kontrasti Single Scale Retinex menetelmä Kuva jaetaan pikselikohtaisesti gaussisesti suodatetulla kuvalla Alkuperäinen kuva Gaussisesti suodatettu kuva Retinex-menetelmän tulos
Kuvanlaadunehostaminen - kontrasti Multiscale Retinex menetelmä Koska keskialue/tausta operaattorin taustan leveys = suotimen leveys vaikuttaa sävyntoistoon niin käyttämällä useampaa skaalaa saadaan usein parempilaatuisia kuvia Kapea tausta tuottaa haaleat sävyt mutta tuo yksityiskohtia esille Leveä tausta säilyttää sävyinformaation mutta kuvan yksityiskohdat tummassa ja vaaleassa päässä eivät säily R x y i jossa W k 1 k K W k log I i x y log on skaalan k painokerroin F k x y I i x y
Kuvanlaadunehostaminen - kontrasti Multiscale Retinex menetelmä Z. Rahman D.J. Jobson G.A. Woodel Retinex Processing for Automatic Image Enhancement Journal of Electronic Imaging 131 2004.
Kuvanlaadunehostaminen - kontrasti Multiscale Retinex with Color Restoration menetelmä Yleinen Retinex-funktio tekee kuvista harmahtavia jos ne rikkovat harmaa-maailma* oletusta lokaalisti tai globaalisti Tähän on kehitetty kanavakohtainen värinkorjaus-funktio N on kanavien lukumäärä jossa log 1 N n n i i y x I y x NI y x K k i k i k i i y x I y x F y x I W y x a y x R 1 log log Käytännössä jos yksittäisen kanavan intensiteetti on suuri suhteessa toisiin kanaviin niin kyseinen kanava saa suuren painokertoimen *harmaa-maailma oletuksen mukaan kuvan keskimääräinen sävy on keskiharmaa
Kuvanlaadunehostaminen - kontrasti Multiscale Retinex with Color Restoration menetelmä Z. Rahman D.J. Jobson G.A. Woodel Retinex Processing for Automatic Image Enhancement Journal of Electronic Imaging 131 2004.
Kuvanlaadunehostaminen - kontrasti Multiscale Retinex with Color Restoration menetelmä MSRCR
Kuvanlaadunehostaminen - kontrasti Multiscale Retinex with Color Restoration menetelmä MSRCR
Kuvanlaadunehostaminen - kontrasti Multiscale Retinex with Color Restoration menetelmä MSRCR
Kuvanlaadunehostaminen - kontrasti MSRCR+Auto-levels Auto-levels ei toimi tai paranna kuvaa jos kuvassa on samanaikaisesti paljon tummia ja kirkkaita pikseleitä koska se on globaali menetelmä Retinex parantaa kontrastia myös lokaalisti Esim. kasvattaa tummien varjo-alueiden kontrastia Retinex saattaa jättää kuvan edelleen harmaaksi se pakkaa kuvan dynamiikan intensiteettiskaalan keskialueelle Kun Auto-levels-funktio toteutetaan Retinexin jälkeen niin saadaan hyvin toimiva sovellus automaattiselle kuvankorjaukselle
Kuvanlaadunehostaminen - kontrasti MSRCR+Auto-levels Auto-levels MSRCR+Auto-levels
Kuvanlaadunehostaminen - kontrasti MSRCR+Auto-levels Auto-levels MSRCR+Auto-levels
Kuvanlaadunehostaminen - kontrasti MSRCR+Auto-levels Auto-levels MSRCR+Auto-levels