Korekcija distorzije projiciranih videoslik v realnem času Zmago JEREB, Janez DIAC izvleček: Članek predstavlja metodo za korekcijo distorzije projiciranih videoslik v realnem času. Metoda temelji na zaznavi in karakterizaciji te geometrijske popačitve z uporabo referenčne slike, ki jo sestavlja mreža pravokotnih črt. Projicirana referenčna slika je posneta s fotoaparatom in analizirana z uporabo tehnik strojnega vida. Dobljene karakteristike distorzije se prenesejo v namensko razvit slikovni procesor, ki temelji na integriranem vezju FPGA in omogoča korekcijo videoslike v realnem času. Članek podaja ključne elemente metode in njeno tehnološko implementacijo. Predstavljeni so rezultati testiranj, ki ponazarjajo primernost metode za odpravo geometrijskih popačenj, ki nastanejo pri projekciji na ukrivljeno površino. Ključne besede: videoprojekcija, FPGA, geometrijsko popačenje, trapezno popačenje, ukrivljen zaslon, realni čas ■ 1 Uvod Projekcija je že dobro uveljavljen način prikaza videoslik večjega formata. Videoprojektorji se uporabljajo v kinodvoranah za prikaz filmov, v podjetjih kot predstavitveni mediji in v gospodinjstvih kot sestavni elementi hišnega kina. V novejšem času se pojavljajo tudi mikroprojektorji, ki omogočajo projiciranje slike iz mobilnega telefona [1, 2]. Skupna značilnost vseh projekcijskih sistemov je projiciranje slike na proji-cirno površino - zaslon. Optika projektorja je zasnovana tako, da omogoča prikaz geometrijsko nepopačene slike na raven zaslon, pri čemer se predpostavlja, da je optična os projektorja usmerjena pod pravim kotom v sredino zaslona. V večini primerov taka postavitev ni mogoča in je projektor pritrjen pod strop ali postavljen na mizo. Taka Zmago Jereb, univ. dipl. inž., Kolektor Group d.o.o., Idrija Prof. dr. Janez Diaci, univ. dipl. inž., Univerza v Ljubljani, Fakulteta za strojništvo postavitev povzroči poševno projekcijo in v trapez deformirano prikazano sliko na zaslonu. Večina projektorjev ima že vgrajen sistem korekcije, ki temelji na spremembi postavitve leč v objektivu [3, 4] ali uporabi tehnik digitalne obdelave slike [5], ki korigirajo trapezno deformacijo. V primeru postavitve projektorja poševno glede na zaslon tako po horizontali kot po vertikali ali v primeru projiciranja na ukrivljen zaslon pa dobimo sliko, popačeno v dveh oseh, ki je omenjeni sistemi ne morejo popraviti. S prihodom digitalnih i ntegri ranih vezij FPGA (angl. Field Programmable Gate Array), ki omogočajo obdelavo slik v realnem času, so se pojavile alternativne možnosti za korekcijsko transformacijo. V literaturi so opisani primeri uporabe integriranih vezij FPGA na področju geometrijskih transformacij slike, ki zajemajo razširitve slike na več zaslonov, sestavljenih v videozid [6], ter različne korekcije popačitev [7, 8], ki jih povzročajo različni optični sistemi. Projekcija na ukrivljen zaslon je v literaturi še slabo opisana in ima zato velik aplikativni potencial. Lahko bi bila zanimiva predvsem na področju oglaševanja, saj bi prikaz geometrijsko pravilne slike na nenavadnem ukrivljenem zaslonu pritegnil veliko pozornost mimoidočih. V članku je predstavljena nova metoda korekcije geometrijskih popačenj videoslik, do katerih pride pri projiciranju na ukrivljen zaslon. Nova metoda bistveno razširi uporabnost videoprojektorjev. Poleg že mogoče korekcije trapezne deformacije, omogoča tudi korekcijo deformacij, ki jih povzroča projekcija na ukrivljen zaslon neznane oblike. Metoda temelji na karakterizaciji popačenja z uporabo znane referenčne slike. Ta predstavlja množico referenčnih točk, ki omogočajo določitev parametrov korekcijske transformacije. Matematični algoritmi korekcijske transformacije so implementirani v namensko razvit slikovni procesor, ki je umeščen kot dodatni element med videopredvajalnik in projektor in temelji na sodobnem programirljivem integriranem vezju FPGA, ki omogoča korekcijo videoslike v realnem času. ■ 2 Metoda korekcije Metoda korekcije temelji na predpostavki uporabe digitalne slike. Ta je Slika 1. Zapis digitalne slike zapisana v računalniški pomnilnik kot polje diskretnih barvnih točk, v katerem vsaka točka hrani zapis o barvi in intenziteti svetlobe. Na področju prikaza slik se uporablja barvni prostor RGB, ki za vsako točko določa intenziteto posamezne osnovne barve (rdeča (R), zelena (G), modra (B)) [9]. Zapis slike v obliki polja (S) je prikazan na sliki 1. Število stolpcev (n) in vrstic (m) polja (S) določa širino in višino slike v točkah. Vsaka izmed točk predstavlja trirazsežni (R, G, B) vektor intenzitet osnovnih barv. V računalništvu se običajno uporabljajo 24-bitne slike, kar pomeni, da imamo za vsako točko na voljo 256 različnih vrednosti intenzitete posamezne barve. Črno barvo tako predstavlja vrednost s = (0,0,0), popolnoma belo pa s = (255,255,255) [9]. Druge barve dobimo z mešanjem komponent. Predstavljeni matematični zapis slike v obliki polja je osnova za digitalno transformacijo slike z uporabo matematičnih algoritmov. V obravnavi predstavljene metode je predpostavljena slika formata XGA (1024 x 768 točk) s tremi osnovnimi barvami (R, G, B) s po 8-bitno barvno ločljivostjo [1 0]. Shematska organizacija metode je prikazana na sliki 2. Slikovni procesor je umeščen med predvajalnik videovsebin in videoprojektor. Procesor sprejme sliko iz predvajalnika, jo geometrijsko korigira in pošlje projektorju. Korekcija slike predstavlja geometrijsko preoblikovanje osnovne slike na način, ki omogoča prikaz geometrijsko pravilne slike na zaslonu. Pred pričetkom prikazovanja videovsebin se izvede karakterizacija geometrijskih popačenj projicirane slike. Temu sta namenjena fotoapa- rat in slikovni komparator v povratni vezavi. S fotoaparatom zajeta projicirana referenčna slika se v slikovnem komparatorju primerja z originalno, na osnovi te primerjave pa določimo ustrezne parametre transformacije, ki odpravlja popačenja projicirane slike, ki jih posredujemo slikovnemu procesorju. Referenčna slika je sestavljena iz mreže črnih črt na beli podlagi, ki sliko enakomerno razdelijo na enake med višino in širino slike enako % [10]. Ker lahko območje korigirane slike odstopa od tega razmerja, ga je potrebno ustrezno zmanjšati po ustrezni osi in s tem ohraniti razmerje. Koordinatni sistem je umerjen tako, da sta širina in višina območja korigirane slike (v točkah) enaki originalni sliki (1024 x 768), referenčne točke pa se preslikajo v novo določeni koordinatni sistem. Iz umerjenih referenčnih točk je določena projekcijska transformacija iz originalne v projicirano sliko. Transformacija je določena s funkcijama l[x,y) in g(x,y), ki določata transformaciji v horizontalni in vertikalni osi slike. Transformacijski funkciji sta določeni kot seriji zlepkov linearnih funkcij, ki potekajo med sosednjimi referenčnimi točkami v horizontalni in vertikalni smeri. Vrednosti funkcij med referenčnimi točkami so določene z bilinearno interpolacijo [9]. Slika 2. Shematska organizacija metode. Vhodna videoslika (S'n) se v slikovnem procesorju geometrijsko preoblikuje v korigirano sliko (So"t), ki se kot geometrijsko pravilna slika projicira na zaslon. dele. Preseki vertikalnih in horizontalnih črt predstavljajo referenčne točke (slika 7a, b). Izmerjene koordinate referenčnih točk na projicirani sliki je potrebno pred primerjavo z originalnimi koordinatami umeriti. Postopek umerjanja določa, kakšni bosta oblika in velikost korigirane slike. Postopek je grafično predstavljen na sliki 3. Izhodišče koordinatnega sistema je postavljeno na položaj, kjer x-os sovpada z najnižjo točko zgornjega roba slike. Podoben princip je uporabljen za določitev y-osi. Desni rob in spodnji rob slike sta omejena enako kot pri določitvi izhodišča koordinatnega sistema - z geometrijo deformirane slike. Tako pridobljeno območje definira prostor, kjer bo korigirana slika. Obravnavana metoda predpostavlja sliko velikosti XGA, kjer je razmerje Korekcija slike v slikovnem procesorju je zasnovana na principu vzvratne transformacije (angl. Backward mapping) [9], ki za vsako točko izhodne slike določi ustrezno vrednost intenzitete barv iz vhodne slike. Matematični model lahko zapišemo kot: (x,y)= S'" (f (x,y),g(x,y)) (1) Slika 3. Umerjanje projicirane referenčne slike Točki izhodne slike na me- stu {x,y) določimo intenziteto barv iz vhodne slike ^n(/(x,y),g(x,y)). Ker so vrednosti za intenzitete barv slike določene le na celoštevilskih vrednostih (x,y), transformirane koordinate (f(x,y),g(x,y)) pa določajo decimalne vrednosti, je potrebno enačbo (1) dopolniti na način, ki upošteva prispevke celoštevilskih točk iz okolice obravnavane decimalne koordinate. Predstavljena metoda za ta namen uporablja bilinearno interpolacijo, ki v izračunu izhodne točke upošteva prispevke intenzitet štirih okoliških celoštevilčnih točk, ki obdajajo decimalno transformacijsko vrednost koordinat: (x,y) = [1 -{x},{x} L g J) (L/J, [ g)]} L g J) J, [ g D (L/J, (/1, 1 -{ y} . {y}. (2) Slika 4. ZBzZnava refejenčnih točk s pomočjo strojnega vida v programskem okolju »NI Vision Builder« Elementi {x}, [x1 in LxJ določajo decimalni, zgornji in spodnji celoštevilski del spremenljivke x. Spremenljivki f in g sta okrajšavi za transformacijski funkciji /(x,y) in g(x,y). V smislu kvalitete korigirane slike bi dosegli boljše rezultate z uporabo interpolacije višje stopnje (npr. bikubična interpolacija), ki bi v izračun zajela večje število okoliških točk, vendar bi s tem bistveno otežili implementacijo metode v strojno opremo. ■ 3 Implementacija algoritmov Algoritmi slikovnega komparatorja ne predstavljajo časovno kritičnega procesa in so zaradi lažje izvedbe implementirani v aplikacijo, ki teče na osebnem računalniku. Slikovni komparator je zasnovan na principu strojnega vida, s pomočjo katerega določimo koordinate referenčnih točk prikazane slike. Aplikacija je bila izvedena na podlagi programskega paketa »NI Vision Builder«, ki ponuja že izdelane funkcije s področja strojnega vida (slika 5). Algoritem zaznave referenčnih točk temelji na funkciji »Patern matching« [11], ki v zajeti sliki išče območja, podobna referenčni predlogi, za ka- tero je bila uporabljena predloga presečišča dveh črt referenčne slike. Po zaznavi referenčnih točk program te ustrezno umeri in posreduje slikovnemu procesorju preko serijske RS232 podatkovne povezave. Videozapis je sestavljen iz sekven-ce slik, ki se na zaslonu prikazujejo s frekvenco 60 Hz. Vsaka slika ima velikost 1024 x 768 točk in je predstavljena s tremi osnovnimi barvami (R, G, B) s po 8-bitno ločljivostjo intenzitete. Vsaka slika predstavlja 1 35 Mbajtov podatkov, ki jih je potrebno obdelati vsako sekundo. Tolikšna procesna moč je z uporabo osebnega računalnika ali mikrokrmilnikov težko dosegljiva. Za implementacijo algoritmov slikovnega procesorja je bilo zato izbrano integrirano vezje FPGA. Vezje FPGA predstavlja programirlji-vo polje logičnih vrat, v katero lahko zapišemo poljubno logično funkcijo, ki se zaradi arhitekture vezja lahko izvaja zelo hitro in ustreza hitrostnim zahtevam slikovnega procesorja. Shematski prikaz implementacije slikovnega procesorja je prikazan na sliki 5. Slikovni procesor sprejema in oddaja podatke o sliki z uporabo komunikacijskega protokola DVI [12]. Za poenostavitev sprejema podatkov o sliki sta slikovnemu procesorju dodani vezji (Texas Instruments TFP101 in TFP410), ki serijski protokol DVI pretvorita v paralelnega in s tem poenostavita delo s podatki o sliki. Algoritem korekcijske transformacije je implementiran v vezje FPGA (Xilinx Spartan3E1600), ki je nadgrajeno z dvema podatkovnima pomnilnikoma P1 in P2 (Cypress CY7C1059DV33). Pomnilnika sta namenjena shranjevanju podatkov o videosliki. Medtem ko eden izmed pomnilnikov shranjuje sliko, drugi omogoča dostop vez- Slika 5. Shematska zasnova slikovnega procesorja Slika 6. Postavitev eksperimentalnega sistema ju FPGA do že sprejete slike. Vezje FPGA sliko ustrezno korigira in jo pošlje naprej videoprojektorju. Implementacija transformacijskih algoritmov v vezju FPGA zavzema 1300 logičnih rezin, 16 množilnikov velikosti 18 x 18 bitov, 180 vhodno-izhodnih linij in 54 kbitov notranjega polnilnika. ■ 4 Rezultati testiranj Za vrednotenje delovanja metode je bil izveden preizkus. Postavitev njegovih elementov je prikazana na sliki 6. Uporabljeni so bili videoprojektor Hitachi-ED-X12, digitalni fotoaparat Canon EOS 350D z objektivom EF-S 18-55 mm, osebni računalnik in slikovni procesor. Metoda je bila preizkušena za primer popačitve, ki jo povzroča projekcija na ukrivljen zaslon (slika 7a, b). Popačitev smo simulirali s premikom spodnjih robov projekcijskega zaslona. Analiza na sliki 7(c, d) prikazuje primerjavo napak med popačeno in korigirano sliko. Odstopanja so ponazorjena z vektorji odstopanj za vsako referenčno točko. Točke na slikah določajo idealno geometrijsko lego referenčnih točk, daljice pa velikost in smer odstopanja izmerjenih referenčnih točk. Velikost največjega odstopka meritve je označena s številčno vrednostjo, ki predstavlja odmik v točkah slike. Rezultati kažejo, da metoda bistveno izboljša geometrijo popačene videoslike. Največje odstopanje popačene slike je znašalo 1 37 slikovnih točk, porazdelitev popačenj pa prikazuje urejeno strukturo premikov referenčnih točk. Odstopanja na korigirani sliki predstavljajo neurejena naključno razporejena odstopanja z največjo napako 4 slikovne točke. Kot pomanjkljivost predstavljene metode se je izkazala uporaba fotoaparata v povratni zanki. Čeprav metoda omogoča korigiranje slike v realnem času, to temelji na predhodni in enkratni karakterizaciji popačenj in ne omogoča aktivnega prilagajanja spremembam popačitev. V nadaljnji študiji bosta raziskana možnost uporabe kamere v povratni zanki in projiciranje referenčne slike z uporabo laserja v nevidnem (IR) področju. Tak sistem bi omogočal interaktivno prilagajanje korekcije spreminjajoči se obliki projekcijskega zaslona. ■ 5 Zaključek Predstavljena je nova metoda za geometrijsko korekcijo projicirane slike v realnem času. Metoda omogoča razširitev uporabe projekcijskih sistemov na področje prikaza slike na ukrivljen zaslon, katerega geometrija ni vnaprej poznana, in temelji na zaznavi in karakterizaciji geometrijskih popačitev na podlagi projekcije referenčne slike, ki je zajeta s fotoaparatom in analizirana z uporabo strojnega vida. Rezultati meritev referenčne slike so uporabljeni za geometrijsko korekcijo slike v slikovnem procesorju, ki vhodno sliko s transla-cijo točk preoblikuje na način, Slika 7. Popačena (a) in korigirana (b) slika, projicirana na ukrivljen zaslon. Največja napaka na popačeni sliki znaša 137 točk (c), na korigirani pa 4 točke. ki omogoča projekcijo geometrijsko Literatura pravilno oblikovane prikazane slike. Slikovni procesor je zasnovan na [1] osnovi integriranega vezja FPGA in omogoča korekcijo videoslike v realnem času. Rezultati testiranj so pokazali, da metoda omogoča učinkovito [2] korekcijo popačitev, ki nastanejo pri projekciji na ukrivljeno površino. V metodi je za izračun transformira- [3] nih točk slike uporabljena bilinearna interpolacija, ki sliko nekoliko zamegli, zato bi bilo v nadaljnjem delu metodo smiselno dopolniti z algoritmi, ki [4] bi po transformaciji izboljšali kontrast in s tem ostrino prikazane slike. Omejitve uporabe metode so se po- [5] kazale pri zaznavanju popačitev, saj metoda predpostavlja karakterizacijo popačenj pred projekcijo videovse- [6] bin. Podane so smernice za nadaljnje delo, kjer bo raziskana možnost dopolnitve metode na način, ki bo omogočal sprotno določanje popačitev slike in s tem prikazovanje geometrijsko pravilne slike na zaslon, [7] ki spreminja obliko. J. Klausner: Cellular phone with built in optical projector for display of data, United States Patent, US6489934, 2002. [R. Ryf, G. Chen: The Alcatel-Lucent microprojector: What every cell phone needs, Bell Labs Technical Journal, 14/2009. J. Biles: Method and apparatus for distortion correction in optical projectors, United States Patent, US5355188, 1994. R. Mitsuo: Projector system including keystone correction, United States Patent, US5706062, 1998. K. Kimura: Projector executing keystone correction, United States Patent, US697421 7, 2005. A. Skarabot, G. Ramponi, L. Buriola: FPGA Architecture for a Video Wall Image Processor, Symposium of Electronic Imaging, San Jose, California, 2001. Lin Qiang, Nigel M. Allinson: FPGA-based Optical Distortion Correction for Imaging Systems, Department of Electronic and Electrical Engineering, University of Sheffield, UK, 2001. [8] K. T. Gribbon, C. T. Johnston, D. G. Bailey: A Real-time FPGA Implementation of a Barrel Distortion Correction Algorithm with Bilinear Interpolation, Image and Vision Computing, Pal-merston North, New Zealand 26-28 Nov., p. 49, 2003. [9] B. Sing, Y. Kang, T. Xin: Image-Based Rendering, Prentice Hall, 2008. [10] Winn L. Rosch: Hardware bible, Now Publishers Inc, p. 860, 2003. [11] Christopher G. Relf: Image acquisition and processing with LabVIEW, CRC Press, p. 182, 2004. [12] Digital Display Working Group, Digital Visual Interface, 1999, www.ddwg.org/lib/dvi_10.pdf, [2010]. Correcting distortion of projected video images in real time Abstract: The paper presents a method for correcting distortion of projected video images in real time. A reference image consisting of a rectangular mesh of reference lines is used to characterize the distortion introduced by the projection system. The positions of reference line intersections are measured with computer vision software and transmitted to a specially developed digital image processor. The processor is implemented using a field programmable gate array (FPGA) and allows frame-by-frame correction of video image distortion in real time. The paper presents the key elements of the method and its implementation. Experiments are reported that show that the method can significantly reduce distortion of images projected onto a warped screen. Key words: video projection, FPGA, geometric distortion, keystone correction, warped screen, real time Popravek V reviji Ventil 16/2010/5, oktober je bila v članku z naslovom Razvoj generatorja tokovnih pulzacij kapljevine, str. 424, avtorjev Andreja Sveteta, Petra Sambola, Jožeta Kutina in Ivana Bajsica, objavljena nepravilna slika 4. Pravilna slika 4 je: Za neljubo napako se avtorjem in bralcem iskreno opravičujemo. Uredništvo Slika 4. Shema krmiljenja polprevodniskega releja