13
Semestrální práce KIV/MHS Mixed-reality displej 14. července 2012 Lukáš Jirkovský [email protected]

SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

Semestrální práce KIV/MHSMixed-reality displej

14. července 2012 Lukáš Jirkovský[email protected]

Page 2: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

1 Zadání

Cílem práce je sestavit displej založený na projekci obrazu na průhlednou holografickoufólii.

2 Mixed-reality displej

Pod pojmem mixed-reality displej lze nalézt mnoho různých zobrazovacích zařízení. Častolze taková zařízení nalézt i pod pojmem augmented-reality displej. Ve své práci se zaměřímna zobrazení pomocí projekce na holografickou obrazovku. Takovéto zařízení lze nalézt podpojmy jako holographic screen[1], holographic diffuser screen[2] nebo holographic projectiondisplay [3, 4]. Většina dostupných holografických displayů je určena pro zpětnou projekci,tj. promítá se proti pozorovateli.

2.1 Princip

Obrazovka funguje na principu holografického difuzéru. Na rozdíl od běžného difuzéru seholografický difuzér chová jako difuzér jen za určitých podmínek. Pokud není obrazovkaosvícená, jeví se jako průhledná. Při osvícení (např. projektorem) display funguje jakodifuzér a je na něm vidět promítaný obraz. Přesné chování závisí na typu obrazovky,zejména jak byl difuzér vyroben. Postup výroby např. ovlivňuje úhel, pro který docházík maximálnímu rozptylu světla.

Jednou z možností, jak vyrobit holografický difuzér je vytvořit transmisní hologramklasického difuzéru [2]. Ukázka možného nastavení je na obrázku 1. Jiným možným přístu-pem, popsaným v [6], je použití oscilujícího paprsku. Podle [6] by měl být při vytvořeníH2 hologramu difuzér velmi účinný.

Obrázek 1: Nastavení pro vytvoření holografického difuzéru. Převzato z [2]

2

Page 3: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

3 Praktická část

Pro sestavení mixed-reality displeje jsem použil fólii KITAPON Holo-G [5] o rozměrech50cm×50cm. Tato fólie je určená pro zpětnou projekci. Její parametry jsou následující:

Tloušťka Pozorovací úhel Transmitance Zakalení [haze] Maximální zisk Teploty700 µm 140◦ 88% 34% 2 0-50◦

Transmitance určuje, nakolik je je fólie „průhledná.” Zakalení [haze] určuje míru rozptylusvětla ve fólii[7]. Maximální zisk určuje, kolikrát více světla fólie odrazí oproti povrchu,jehož barva je v Lambertově modelu difúzního osvětlení čistě bílá[8].

Samotná sestava se skládá ze dvou částí – stojanu držícího fólii, na kterou se promítáa nastavitelného podstavce pro projektor. Model sestavy je vidět na obrázku 2. Pro vy-tvoření modelů jsem využil FreeCAD[9]. Modely jsou dodány spolu se zdrojovými kódy adokumentací. Rozměry modelů odpovídají reálným rozměrům.

Obrázek 2: Model sestavy mixed-reality displeje.

3

Page 4: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

3.1 Vytvoření vlastního displeje

V rámci práce jsem se pokusil vytvořit hologram, který by šel použít pro promítání obrazu.Hologram byl vyroben podle postupu popsaného v [2], nákres rozmístění je na obrázku 1.Jde tedy o transmisní hologram difuzéru.

Pro vytvoření hologramu byl použit červený laser. Použité nastavení je schématickyznázorněno na obrázku 3. Laserový paprsek byl rozdělen pomocí hranolu na dva paprsky.Pro tvorbu hologramu bylo nutné oba paprsky zaostřit a „vyčistit” pomocí prostorovéhofiltru. Jedním z paprsků se svítilo přímo na holografickou desku. Druhým paprskem se naholografickou desku svítilo skrze difuzér.

laser

difuzér

holografickádeska

zrcátkahranol

Obrázek 3: Nastavení pro vytvoření vlastního hologramu pro mixed-reality display.

Získaný hologram je z neznámého důvodu mléčně zakalený. Možnou příčinou by mohlbýt vyvolávací roztok nevhodný pro použitý typ holografické desky. Hologram je možnédobře využít pro promítání, je ale problém rozlišit účinek hologramu difuzéru od rozptylusvětla způsobeného zakalením.

4 Stojan na fólii

Stojan slouží k uchycení fólie. Ta je uchycena mezi dvěma lištami v horní části a dvěmalištami ve spodní části. Lišty ve spodní části je možno při povolených šroubech mírněposunovat nahoru a dolu, čehož lze využít pro lepší napnutí fólie. Render modelu stojanuje na obrázku 4.

4.1 Konstrukce

Použitý materiál: 2 × čtyřhran 10×10×1000mm, 2 × drážkovaná lišta 25×1000mm, 8× vrut 4×20, 4 × šroub do plechu 3,9×16 se zápustnou hlavou, 2 × šroub do plechu 3,9×13s půlkulatou hlavou, 4 × šroub M4×8, 6 × podložka, 4 × úhelník 70×70mm, dřevotřískovádeska 20×270×625mm

4

Page 5: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

(a) (b)

Obrázek 4: Model stojanu na fólii. (a) Pohled zepředu. (b) Pohled zboku.

Čtyřhrany slouží jako sloupky stojanu. Každý čtyřhran je pomocí dvou úhelníků přišrou-bován k dřevotřískové desce.

Fólie je upnuta mezi dvojicí lišt nahoře a dvojicí lišt dole. Pro tento účel jsem rozřízldvě metr dlouhé drážkované lišty. Tím jsem získal celkem čtyři půlmetrové lišty. Horní lištaje pevně upevněna ke sloupkům pomocí čtyř šroubů se zápustnou hlavou. K ní je pomocíšroubů M4 přišroubována druhá lišta. Do mezery mezi lištami je uchycena fólie.

V případě spodní dvojice lišt jsou přišroubovány obě lišty přímo ke sloupkům pomocídvou šroubů 3,9×13. Oproti konstrukci horních lišt jsou otvory pro šrouby ve spodníchlištách podlouhlé. To umožňuje při povolených šroubech lišty mírně posunovat nahoru adolu pro lepší vypnutí fólie. Spodní lišty jsou k sobě dále uchyceny jedním šroubem M4.

5 Podstavec projektoru

Podstavec projektoru umožňuje v diskrétních krocích měnit úhel, pod kterým projektorsvítí. Kromě projektoru je zde i možnost uchytit Kinect (popis jeho užití viz sekce 6).

5

Page 6: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

5.1 Konstrukce

Použitý materiál: dřevotřísková deska 20×290×370mm, dřevotřísková deska 20×290×95mm, dřevotřísková deska 20×290×275mm, dřevěná laťka 8×34×190mm, 2 × závěs20×80mm, závěs 50×30mm, 4 × vrut 4×40, 4 × vrut 4×20, 8 × vrut 3,5×25, 2 × vrut4×16, 2 × vrut 3×12, 4 × vrut 4×20 se zápustnou hlavou, 2 × podložka, 4 × vrut bezhlavy, 4 × šroub M4×16, 4 × matice M4, ocelový drát

Pevná část podstavce se skládá z dřevotřískové desky o rozměrech 20×290×370mm a deskyo rozměrech 20×290×95mm. Ty jsou spojeny pomocí čtyř vrutů 4×40. V pevné částipodstavce jsou dále čtyři vruty bez hlavy sloužící jako zarážky.

K pevné části je pomocí závěsů 20×80mm a osmi vrutů 3,5×25 upevněna pohyblivádřevotřísková deska, na které bude položen projektor. K této desce jsou v zadní části při-šroubovány konzoly, které zajišťují projektor proti sklouznutí při velkém náklonu desky.Aby bylo možno desku polohovat, je k ní pomocí zbylého závěsu připojena laťka. Zachy-cením laťky o vruty ve spodní části podstavce je možné měnit náklon horní desky.

K horní pohyblivé desce je dále pomocí čtyř vrutů 4×20 a dvou podložek přidělán drátpro uchycení Kinectu. Tato část není v přiloženém modelu pro FreeCAD zahrnuta. Abybylo možné Kinect vložit, případně vyndat, je nutné drát nejdříve vyndat z jeho předníhozávěsu.

Rendery modelu podstavce z FreeCAD jsou na obrázku 5. Složený podstavec, včetněpřipojeného Kinectu a projektoru je na obrázku 6.

6 Uživatelské rozhraní s Kinect

Pro demonstraci mixed-reality displeje jsem navrhl uspořádání, ve kterém je použit mixed-reality displej, jehož sestavení bylo popsáno v sekci 3, pro zobrazovaní uživatelského roz-hraní a Kinect pro ovládání uživatelského rozhraní. Uživatelské rozhraní by se mělo ovládatpodobným způsobem, jako při použití dotykové obrazovky.

6.1 Princip ovládání

Ovládání kurzoru myši využívá hloubkové mapy získané pomocí Kinect. Protože imple-mentace obsahuje větší množství různých filtrů, které jsou nutné pro lepší funkcionalitu,ale které neovlivňují princip, jakým ovládací software funguje, v následujících odstavcíchshrnu pro přehlednost základní princip. Detailní popis implementace lze nalézt v sekci 6.2.Algoritmus ovládání lze rozdělit do několika kroků.

V prvním kroku, ještě před spuštěním ovládání, uživatel vybere část obrazu z Kinectu,která bude sloužit pro ovládání rozhraní. V našem případě jde o výběr rámu, ve kterémje uchycena holografická fólie. Zároveň se musí software zkalibrovat určením hloubky, vekteré fólie leží.

Ve druhém kroku je nalezena homografie pro přemapování vybrané části hloubkovémapy do obrazu o rozměrech 640px ×480px. Pomocí zkalibrované hloubky se transformují

6

Page 7: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

(a) (b)

(c) (d)

Obrázek 5: Model podstavce pro projektor. (a) Pohled zepředu. (b) Pohled zboku. (c)Pohled zezadu. (d) Pohled shora.

Obrázek 6: Složený podstavec projektoru s Kinectem a projektorem.

7

Page 8: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

hloubky z hloubkové mapy.Ve posledním kroku se detekují objekty ležící v zadaném rozmezí hloubek. Pohyb ob-

jektu v určité vzdálenosti od zkalibrované hloubky ovládá kurzor. Pokud je objekt dosta-tečně blízko fólii, registruje se zároveň držení tlačítka myši.

6.2 Implementace

Současná implementace vyžaduje použití X serveru a je testována pouze s operačnímsystémem GNU/Linux. Pro některé algoritmy zpracování obrazu jsem využil knihovnuOpenCV[10]. Pro implementaci uživatelského rozhraní jsem použil framework Qt[11]. Proovládání kurzoru myši je využito XLib a rozšíření XTest. V dalších odstavcích detailnějipopíši fungování ovládacího software.

Pokud je zapnuto mediánové filtrování (Median preprocess), je hloubková mapa předveškerým dalším zpracováním filtrována pomocí mediánového filtru z knihovny OpenCVpro okolí 5×5 pixelů.

Protože fólie zabírá jen část obrazu snímaného Kinectem, který je navíc perspektivnězdeformovaný, je nutné najít mapování pro promítnutí vybrané části obrazu na celý obraz.Pomocí knihovny OpenCV se vypočítá homografie pro získání mapování z vybrané částiobrazu na čtverec o jednotkové délce strany. Poté, opět pomocí knihovny OpenCV, jevybraná část obrazu přemapována na obraz o rozlišení 640×480px. Všechny následujícíoperace pracují již jen s transformovaným obrazem.

Transformovaný obraz je výrazně zašuměný. Proto jsem implementoval několik filtrů,které redukují vliv šumu na výsledky. Jedním z nich je již zmiňovaný mediánový filtr,použitý v předzpracování. Další filtry jsou aplikované na transformovaný obraz. Jsou jimieroze a otevření (opening), poskytované knihovnou OpenCV, a vlastní jednoduchý binárnífiltr. Eroze a otevření používají čtvercové jádro o velikosti 3×3px vyplněné jedničkami.V případě binárního filtru se pro každý pixel vypočte binární AND mezi dvěma předchozímipixely, zpracovávaným pixelem a dvěma následujícími pixely (celkem je tedy zpracovánopět pixelů). Pokud je hodnota AND nenulová, ponechá se původní hodnota pixelu, jinakse hodnota pixelu nastaví na nula. Tento algoritmus je aplikován nejprve v horizontálnímsměru a následně ve vertikálním (jedná se vlastně o separabilní filtr s 2D jádrem).

Protože homografie, kterou jsme získali, neříká nic o hloubce transformovaného obrazu,je nutné získat jeho hloubku jinak. Hloubku lze nastavit ručně, preferovaný způsob jeale její získání z hloubkové mapy. Při kliknutí na tlačítko Calibrate Depth se získá 20vzorků v každém rohu vyznačeného čtyřúhelníka. Ze vzorků se spočte průměr. Protože šumvýrazně mění průměr, vypustí se hodnoty menší než 100 a větší než průměr + 100 (získánoexperimentálně) a spočítá se nový průměr. Tento průměr se použije jako hodnota hloubky.Pomocí bilineární interpolace se následně spočítají hloubky pro celý transformovaný obraz.

Interpolované hloubky definují plochu, vůči které se bude v transformovaném obrazedetekovat pozice objektu (např. ruky) pro ovládání kurzoru. V uživatelském rozhraní jemožno pro detekci definovat několik prahů vzdálenosti. Pokud je rozdíl hloubek menší nežnastavení Noise nebo je větší než nastavení Movement, má být daný pixel ignorován anastaví se na nula. Pro ostatní hloubky se nastaví pixel na konstantu odpovídající buď

8

Page 9: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

detekci kliknutí nebo detekci pohybu. Zpracovaný obraz se zobrazuje v pravé části obra-zovky, kde světlejší šedá značí pixely detekované ve vzdálenosti pro kliknutí a tmavší šedápro zbytek detekovaného objektu (pouze pohyb myši).

Následuje poslední krok, a tím je nalezení odpovídající pozice kurzoru a zjištění „stisku”tlačítka. Obraz je procházen po řádcích, dokud není nalezen první pixel s nenulovou hod-notou. Z něj je spuštěn algoritmus pro nalezení hranice oblasti. Po nalezení hranice oblastije spočteno její těžiště. To se použije jako pozice kurzoru (zobrazuje se jako čtvereček).Protože se kvůli šumu pozice kurzoru často výrazně mění mezi snímky, je možné zapnoutprůměrování pozice z posledních osmi snímků. Dále je zde volba Extremes Removed, kdyse po vypočtení průměru zahodí snímky, ve kterých se kurzor posunul o vzdálenost větší,než je směrodatná odchylka a spočítá se nový průměr. Nakonec je zde volba Limit Ac-celeration, která omezuje akceleraci kurzoru. Pro detekci kliku se získá hodnota pravéhodolního souseda prvního nalezeného pixelu v posledních osmi snímcích. Pokud alespoň vedvou z nich hodnota odpovídala hloubce pro kliknutí, detekuje se stisknutí tlačítka myši.

6.3 Použití

Obrázek 7: Uživatelské rozhraní ovladače myši.

Přesná nastavení závisí na aktuální konfiguraci. V následujícím textu shrnu tedy jen několiktipů, jak nastavit ovládání pomocí Kinect.

Po spuštění poskytovaného programu Kinect Mouse je prezentováno uživatelské roz-hraní (obrázek 7). S jeho pomocí umístíme stojan s fólií a podstavec. Při umisťování fólieje nutné zejména dbát na to, aby byla fólie pro Kinect co nejprůhlednější. Podle náhleduhloubkové mapy nastavíme stojan s fólií a podstavec projektoru tak, aby bylo v náhledu co

9

Page 10: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

nejlépe vidět scénu za fólií. Tmavé odstíny (viditelné převážně ve spodní části fólie) značíneprůhlednou, či špatně průhlednou část fólie, je nutné co nejvíce eliminovat. I přesto vždynějaké v obrazu zůstanou.

V dalším kroku je nutné nastavit, ve které části obrazu se budou detekovat objekty proovládání kurzoru myši. To nastavíme tažením rohů čtyřúhelníku zobrazeného v náhleduhloubky. Modrá strana čtyřúhelníku určuje horní hranu obrazu. V pravé části obrazu sepak zobrazuje filtrovaný náhled této části obrazu přemapované na obdélník.

Dalším důležitým krokem je nastavení hloubky plochy, která bude sloužit jako referenčníplocha pro detekci přítomnosti objektů. Hloubka je zadána v rohových bodech čtyřúhelníku.Velmi doporučuji její automatické nastavení, které se dělá pomocí tlačítka Calibrate Depth.Pro tento účel je dobré dočasně nastavit rohy čtyřúhelníku nastavit tak, aby ležely naviditelné části rámu fólie. Po nastavení hloubky je vhodné nastavit čtyřúhelník dále odokrajů rámu, protože šum je u nich výraznější. Hloubku lze také zadat ručně pomocíčtyř kolonek ve skupině Depth Calibration. Pozice kolonky odpovídá příslušnému rohuve výchozím nastavení čtyřúhelníku. Tyto kolonky zároveň zobrazují hloubku při použitíautomatické detekce hloubky.

Po nastavení referenční hloubky je nutno nastavit hloubky pro detekci (SensitivitySettings) a odstranit šum (nastavení Filtering). Nyní už se budeme při nastavování zajímatjen již o náhled v pravé části obrazu. Ten zobrazuje přemapovaný obraz a detekovanou po-zici kurzoru (čtvereček). Pokud je čtvereček bílý, bylo detekováno stisknutí tlačítka myši.Pokud se šum vyskytuje rovnoměrně v rámci celého obrazu, je možné ho redukovat na-stavením zvýšením hodnoty Noise. Pokud chceme změnit hloubky, ve kterých se detekujekliknutí a pohyb myši, přenastavíme hodnoty u Movement a Click.

Pro zlepšení detekce je vhodné ve Filtering nastavit Median Preprocess. Další nastavenízávisí na situaci. Obvykle se osvědčilo nastavení 3–4 pro Binary Filter a 1–2 pro Opening.

V tuto chvíli by měl být program připraven k použití. Zachytávání myši se spustítlačítkem Start Capture a zastaví se tímtéž.

Dále je možné experimentovat i s nastaveními Cursor Processing. Ty ovlivňují, jestli sepozice kurzoru nějakým způsobem průměruje, případně nastavují limit pro pohyb. Předna-stavené hodnoty způsobují zpoždění kurzoru, ale snižují výskyt náhodného pohybu kurzoruzpůsobeného šumem.

7 Výsledky

7.1 Displej

Na sestavený mixed-reality displej lze promítat a za vhodných světelných podmínek jeobraz většinou dobře rozeznatelný. Fotografie zkonstruovaného displeje je na obrázku 8.Během experimentů s displejem jsem zjistil několik zajímavých vlastností.

Viditelnost promítaného obrazu se výrazně zhoršuje, pokud je zdroj světla na stejnéstraně fólie jako projektor. Naopak osvětlení z opačné strany problémy nezpůsobuje.

10

Page 11: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

Pokud je displej pozorován z malé vzdálenosti, světelnost (a tedy i viditelnost) promí-taného obrazu je výrazně nerovnoměrná. To je dáno rozdílem pozorovacích úhlů pro jed-notlivé části displeje. Když se díváme kolmo na střed displeje, okraje vidíme pod velkýmúhlem. Při sledování z větší vzdálenosti, kdy jsou pozorovací úhly menší, tento problémpostupně mizí. Dalším pozorovaným problémem, který je znatelný hlavně při pozorováníz menší vzdálenosti, je nepříjemný rozptyl světla při promítání světlých barev (zejménabílé barvy). Ten se projevuje i u větších pozorovacích úhlů.

Obrázek 8: Mixed-reality displej.

11

Page 12: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

7.2 Ovládání pomocí Kinect

Kvalita ovládání pomocí Kinect je ovlivněna zejména přítomností šumu a částečnou ne-průhledností fólie. Fólie je u současné sestavy pro Kinect špatně průhledná zejména ve svéspodní části. Fólie také způsobuje znekvalitnění hran objektů.

Kvůli zmíněným problémům je ovládání pomocí Kinectu značně nepřesné. Dodatečnézpracování, nutné pro snížení jejich vlivu, zanáší do ovládání viditelné zpoždění (detailyviz sekce 6.2).

8 Závěr

V rámci práce jsem sestavil mixed-reality displej s využitím fólie Kitapon Holo-G. Dálejsem vyzkoušel vytvořit hologram, který by šlo využít jako mixed-reality displej. Na vzniklýhologram je možno dobře promítat. Hologram je ale mléčně zabarvený. Práci jsem se po-kusil rozšířit o ovládání uživatelského rozhraní, promítaného na displej, pomocí Kinect.Protože je fólie v některých místech pro Kinect „neprůhledná” a zvyšuje šum v již výraznězašuměném obraze, je ovládání velmi nepřesné.

12

Page 13: SemestrÆlní prÆce KIV/MHSlobaz/mhs/semestralky/2012/Jirkovsky/... · 2012-07-15 · systØmem GNU/Linux. Pro nìkterØ algoritmy zpracovÆní obrazu jsem vyu¾il knihovnu OpenCV[10]

Reference

[1] Holographic screen. In: Wikipedia: the free encyclopedia [online]. [cit. 2012-06-30].http://en.wikipedia.org/wiki/Holographic_screen

[2] Ackermann, G. K., Eichler J. Holography: A Practical Approach. Weinheim: Wiley-VCH, 2007, 318 s. ISBN 35-274-0663-8.

[3] activ8-3D [online]. [cit. 2012-06-30]. http://www.activ8-3d.co.uk/

[4] In-Ventech [online]. [cit. 2012-06-30]. http://www.in-ventech.com/

[5] ADWINDOW adhesive projection screens [online]. [cit. 2012-06-30]. http://www.adwindow.net/

[6] Polaroid Corporation. Transmission holographic diffuser made and used to effect la-teral color constancy in rear screen projection display systems. Vynálezce: Michael M.Wenyon. IPC: G02B 532; G02B 502; G03B 2156. United States. Patent 5796499. 1997.

[7] Transmission Screen. Vynálezce: Masahiro Harada, Hideki Etori, Hirohide Nakata. Uni-ted States. Patent 20090002817. 2005.

[8] Understand optical projection screen gain [online]. [cit. 2012-7-11]. http://www.dnp-screens.com/DNP08/Technology/Basic-Visual/Screens/Screen-gain.aspx

[9] FreeCAD: A parametric 3D CAD modeler [online]. [cit. 2012-07-11]. http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page

[10] OpenCV [online]. [cit. 2012-07-14]. http://opencv.willowgarage.com/wiki/

[11] Qt - Cross-platform application and UI framework [online]. [cit. 2012-07-11]. http://qt.nokia.com/

13