VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Podobné dokumenty
ZÁKLADNÍ ZOBRAZOVACÍ METODY

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

11 Zobrazování objektů 3D grafiky

ANALYTICKÁ GEOMETRIE V ROVINĚ

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 4.ročník MĚŘICKÝ SNÍMEK PRVKY VNITŘNÍ A VNĚJŠÍ ORIENTACE CHYBY SNÍMKU

Rovinné přetvoření. Posunutí (translace) TEORIE K M2A+ULA

Matematika I 12a Euklidovská geometrie

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

4. Statika základní pojmy a základy rovnováhy sil

Základní pojmy Zobrazení zrcadlem, Zobrazení čočkou Lidské oko, Optické přístroje

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

Michal Zamboj. December 23, 2016

Michal Zamboj. January 4, 2018

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

6. Vektorový počet Studijní text. 6. Vektorový počet

14. přednáška. Přímka

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2.

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

Projektivní geometrie. Ing. Zdeněk Krňoul, Ph.D. Katedra Kybernetiky Fakulta aplikovaných věd Západočeská univerzita v Plzni

Zavádění inovativních metod a výukových materiálů do přírodovědných předmětů na Gymnáziu v Krnově 07_10_Zobrazování optickými soustavami 1

RELIÉF. Reliéf bodu. Pro bod ležící na s splynou přímky H A 2 a SA a reliéf není tímto určen.

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 4.ročník SOUŘADNICOVÉ SOUSTAVY VE FOTOGRAMMETRII

Úvod do mobilní robotiky AIL028

4EK213 LINEÁRNÍ MODELY

Kalibrační proces ve 3D

GIS Geografické informační systémy

Zavedeme-li souřadnicový systém {0, x, y, z}, pak můžeme křivku definovat pomocí vektorové funkce.

GIS Geografické informační systémy

Cyklografie. Cyklický průmět bodu

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)

6. ANALYTICKÁ GEOMETRIE

Semestrální projekt. Vyhodnocení přesnosti sebelokalizace VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií

1 Projekce a projektory

kamerou. Dle optických parametrů objektivu mohou v získaném obraze nastat geometrická

Poznámka. V některých literaturách se pro označení vektoru také používá symbolu u.

Geometrické transformace pomocí matic

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Vybrané kapitoly z matematiky

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 4.ročník RELATIVNÍ A ABSOLUTNÍ ORIENTACE AAT ANALYTICKÁ AEROTRIANGULACE

Vzorce počítačové grafiky

Extrémy funkce dvou proměnných

Algoritmizace prostorových úloh

1 Připomenutí vybraných pojmů

SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1

Souřadnicové prostory

Funkce - pro třídu 1EB

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

Optická triangulace pro měření a vizualizaci 3D tvaru objektů

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

b) Po etní ešení Všechny síly soustavy tedy p eložíme do po átku a p ipojíme p íslušné dvojice sil Všechny síly soustavy nahradíme složkami ve sm

4EK213 LINEÁRNÍ MODELY

Stereofotogrammetrie

X = A + tu. Obr x = a 1 + tu 1 y = a 2 + tu 2, t R, y = kx + q, k, q R (6.1)

JAK NA HYPERBOLU S GEOGEBROU

Momenty setrvačnosti a deviační momenty

3 Projektivní rozšíření Ēn prostoru E n

3.2. ANALYTICKÁ GEOMETRIE ROVINY

Vzdálenosti ve sluneční soustavě: paralaxy a Keplerovy zákony

Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

Lingebraické kapitolky - Analytická geometrie

13 Barvy a úpravy rastrového

IB112 Základy matematiky

Digitální fotogrammetrie

19 Eukleidovský bodový prostor

6 Samodružné body a směry afinity

Elementární křivky a plochy

GEOMETRICKÁ OPTIKA. Znáš pojmy A. 1. Znázorni chod význačných paprsků pro spojku. Čočku popiš a uveď pro ni znaménkovou konvenci.

7.5.3 Hledání kružnic II

3. ÚVOD DO ANALYTICKÉ GEOMETRIE 3.1. ANALYTICKÁ GEOMETRIE PŘÍMKY

Rozvinutelné plochy. tvoří jednoparametrickou soustavu rovin a tedy obaluje rozvinutelnou plochu Φ. Necht jsou

Analytická geometrie lineárních útvarů

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

Funkce, funkční závislosti Lineární funkce

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Afinní transformace Stručnější verze

Centrovaná optická soustava

2. Kinematika bodu a tělesa

6.1 Vektorový prostor

4. Napjatost v bodě tělesa

GEODETICKÉ VÝPOČTY I.

VEKTOR. Vymyslete alespoň tři příklady vektorových a skalárních fyzikálních veličin. vektorové: 1. skalární

Analytická geometrie kvadratických útvarů v rovině

Geometrické vidění světa KMA/GVS ak. rok 2013/2014 letní semestr

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Vektorový součin I

Aplikovaná numerická matematika

M - Příprava na 3. čtvrtletní písemnou práci

Seriál II.II Vektory. Výfučtení: Vektory

Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát. Fotografický aparát

Další plochy technické praxe

Perspektiva jako matematický model objektivu

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘÍCÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF CONTROL AND INSTRUMENTATION 3D MODEL Z DVOJICE KAMER 3D SHAPE FROM CAMERA PAIR BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR JIŘÍ BASTL Ing. MILOSLAV RICHTER, Ph.D. BRNO 9

Ústav automatizační a měřící techniky ABSTRAKT: Cílem této bakalářské práce je vytvoření metod pro získání 3D dat. Tyto data mají být použitelná jako vstupní data pro algoritmy, které je zpracují do formátů zprostředkující prostorový vjem člověka. Je řešen problém rektifikace, kdy srovnáváme jeden snímek podle druhého, a výpočet modelu scény snímané dvěma kamerami. K rekonstrukci i rektifikaci je potřeba znát vzájemnou polohu kamer. Model kamery počítá s jednoduchým perspektivním promítáním. Transformace jsou počítány v homogenních souřadnicích. Poloha je získána kalibrací, snímáním kalibračního objektu. Výpočet modelu je založen na triangulaci korespondujících bodů, které jsou označeny (nasvíceny, nalepeny) na objektu. Body jsou zadávány ručně. Z vypočtených prostorových souřadnic objektu je generována hloubková mapa, která je společně s fotografií dodávající texturu výstupem pro další zpracování. Úlohy jsou prezentovány na snímcích velryby. Algoritmy jsou naprogramovány v prostředí Matlab. KLÍČOVÁ SLOVA: Homogenní souřadnice, rektifikace, kalibrace, triangulace, hloubková mapa

Brno Univesity of Technology The Faculty of Electrical Engineering and Communication Department of Control, Measurement and Instumentation ABSTRACT: The aim of this bachelor thesis is to create methods for obtaining 3D data from D images. This data will be used as an input data for algorithms which will process them into data formats creating 3D perception. The images are processed and data are counted to obtain 3D information. The main problems are rectification and finding camera transformations. In this work problem of rectification when we compare one image according to the other is solved as well as the problem of calculation of the model of a scene scanned with two cameras. For reconstruction and rectification it is necessary to know transformations for relative positions of both cameras. The simple perspective projection model is used for camera. The transformations are calculated in homogeneous coordinates. The position is obtained by calibration, by scanning the calibration object. Calculation of the model is based on triangulation of corresponding points which are marked (shined, sticked) on the object. Points are entered manually. From calculated 3D coordinates of the object depth map is generated that together with the photography imparting texture is an output for further processing. The tasks are presented on images of a whale. The algorithms are programmed in Matlab. KEYWORDS: homogeneous coordinates, rectification, calibration, triangulation, depth map

B i b l i o g r a f i c k á c i t a c e BASTL, Jiří. 3D model z dvojice kamer. Brno:,, 8. 45 s., 4 s. příloh. Vedoucí práce Ing. Miloslav Richter, Ph.D..

P r o h l á š e n í Prohlašuji, že svou bakalářskou práci na téma 3D model z dvojice kamer jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení a následujících autorského zákona č. / Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení 5 trestního zákona č. 4/96 Sb. V Brně dne : Podpis: P o d ě k o v á n í Děkuji tímto... za cenné připomínky a rady při vypracování bakalářské práce. V Brně dne : Podpis:

7 OBSAH. ÚVOD.... APARÁTY PRO PRÁCI S 3D DATY...3. Homogenní souřadnice...3. Transformace v prostoru...4.. Posunutí...4.. Rotace...4..3 Změna měřítka...6..4 Rovnoběžné promítání...6..5 Středové promítání...6..6 Aplikace transformací:...6..7 Model kamery...8.3 Epipolární geometrie...8 3. ZÍSKÁVÁNÍ 3D DAT... 3. Triangulace... 3.. Aktivní triangulace... 3.. Pasivní triangulace... 4. KALIBRACE...6 4. Kalibrační scéna...6 4. Kriteriální funkce...8 4.. Hledání minima kriteriální funkce...8 4.3 výsledky kalibrace...8 5. REKTIFIKACE...9 6. REKONSTRUKCE...3 6. Delaunayho triangulace...3 6. Přesnost modelu...33 7. FORMÁTY 3D...35 7. STL...35 7. VRML...35 7.3 X3D...36 8. APLIKACE...37

8 8. Funkce pro geometrické transformace...37 8. Funkce pro práci s obrazem...37 8.3 Funkce pro rekonstrukci objektu...38 8.4 Funkce pro vytvoření hloubkové mapy...39 9. ZÁVĚR A VÝSLEDKY...4 LITERATURA...44 SEZNAM OBRÁZKŮ Obr. Anaglyph[]... Obr. Sirds[]... Obr. 3 Rotace v prostoru... 5 Obr. 4 - Natočení, posunutí... 7 Obr. 5 - Posunutí, natočení... 7 Obr. 6 Epipolární geometrie... 9 Obr. 7 Aktivní triangulace (D) [5]... Obr. 8 Pasivní triangulace... Obr. 9 Stereoskopické snímky [5]... 3 Obr. Neparalelní kamery... 4 Obr. Kalibrační scéna roh... 7 Obr. Kalibrační scéna kostka... 7 Obr. 3 Prostorové body... 3 Obr. 4 Triangulované body... 3 Obr. 5 Soudkovitost... 33 Obr. 6 Natočení v osách z a x... 4 Obr. 7 Natočení v ose z... 4 Obr. 8 Textura k hloubkové mapě... 4 Obr. 9 Hloubková mapa... 43 Obr. Levý snímek původní... Obr. Pravý snímek rektifikovaný... Obr. Pravý snímek původní... Obr. 3 Pravý snímek nerektifikovaný...

9 Obr. 4 Levý snímek původní... 3 Obr. 5 Pravý snímek rektifikovaný... 3 Obr. 6 Hloubková mapa... 4

. ÚVOD Vidění je pro člověka jeden z nejdůležitějších smyslů. Získává z něj nejvíce informací a používá ho k běžným činnostem, které by mu bez zraku dělaly velké potíže. S rozvojem aplikací, které potřebují získávat informaci o svém okolí, nastává otázka, jestli by stroj nemohl vidět podobně jako člověk. Tímto problémem se zabývá počítačové vidění. Člověk vnímá prostor díky tomu, že má dvě oči. Díky tomu pozná, které předměty jsou vzdálené a které blízké, že míč, na který se dívá, je koule a ne kruh namalovaný na desce. Provádí tak zcela přirozeně rekonstrukci prostorové scény. V této bakalářské práci se zabývám problémem jak scénu zrekonstruovat, mám-li k dispozici dva snímky, podobně jako člověk má dvě oči. Samotná rekonstrukce prostorové scény patří k základním úlohám počítačového vidění a nachází uplatnění v mnoha odvětvích a praktických problémech jako je převod reálných objektů do CAD programů, v medicíně, v architektuře, vojenských aplikacích, v robotice, zábavním průmyslu aj. V dnešní době se ve výpočetní technice nejčastěji setkáme s prezentací objektů pomocí D obrázků. Rozvíjí se ale aplikace, které člověku zprostředkují vnímání 3D prostoru. Nejčastěji se v těchto aplikacích používá metoda, kdy jsou člověku různými způsoby promítány dva snímky, každý pro jedno oko. Protože člověk má oči umístěné paralelně, musí být snímky sesouhlaseny tak, jako by je pořizovaly dvě paralelní kamery. Kdyby tomu tak nebylo, vjem člověka při pohledu na ně by nebyl přirozený. Proto se musí provádět korekce větších zkreslení tzv. rektifikace. Pro představu uvádím možnosti uplatnění rektifikovaných snímků a hloubkové mapy, které jsou výsledkem této práce. Jedním ze způsobů, jak zajistit, aby každé oko vidělo svůj obraz je anaglyph. Anaglyph je obrázek, který se skládá ze dvou paralelních snímků, které se překrývají a každý z nich je obarven jinou barvou.

Obr. Anaglyph[] Podíváme-li se na obrázek přes brýle, které mají každé sklo opatřeny barevným filtrem, uvidíme v každém oku pouze jeden ze snímků, protože druhý bude odfiltrován. Zcela odlišný přístup nabízí obrázek SIRDS (Single Image Random Dot Stereograms). Sirds je založen na principu, že každý bod objektu se zobrazí na stínítku ležící před ním v místech, kde ho protínají paprsky směřující od jednotlivých bodů objektu k očím pozorovatele. Proto když se na sirds díváme, musíme zaostřit zrak jakoby za obrázek. Místa, kde paprsky jednotlivých bodů stínítko protínají, závisí na jejich vzdálenosti od stínítka. Proto je pro generování sirds obrázků potřeba hloubková mapa, která nám tuto informaci dodává.

Obr. Sirds[]

3. APARÁTY PRO PRÁCI S 3D DATY Počítání transformací je vhodné realizovat v homogenních souřadnicích, které nám umožní reprezentovat potřebné geometrické operace jako násobení matic.. HOMOGENNÍ SOUŘADNICE Uvažujeme-li bod X v Eukleidovské geometrii, můžeme si ho představit jako uspořádanou dvojici čísel X[x, x ] v rovině nebo uspořádanou trojici čísel X[x, x, x 3 ] v prostoru. Máme-li projektivní zobrazení f: R R z dvourozměrného prostoru R do jednorozměrného prostoru R, potom se nám každý bod v ploše přetransformuje na přímku. Představíme-li si dvourozměrný bod v nekonečné vzdálenosti, tak se nám zobrazením f zobrazí na přímku na bod v konečné vzdálenosti. Toho se s výhodou využívá při definování bodů v nekonečnu. Zavádí se proto projektivní prostor P n, který vznikne rozšířením n-rozměrného Eukleidovského prostoru o jeho n- rozměrný prostor. Bod v projektivním prostoru vyjadřujeme pomocí homogenních souřadnic: Bod v projektivním prostoru P n je n rozměrný vektor x = (x, x,, x n ), který má alespoň jednu souřadnici různou od nuly. Poslední souřadnice se nazývá váha bodu. Vztah mezi bodem v Eukleidovském a bodem v projektivním prostoru je následující: R n P n : ( x, x,.., xn ) ( x, x,.., xn,) () Bod ležící v nekonečnu nazýváme nevlastním bodem a platí pro něj, že jeho váha je nulová. Můžeme ho zapsat ve tvaru: X ( x, x,.., xn,) () Převod bodů z projektivního prostoru do Eukleidovského provedeme podělením jeho váhou. Nevlastní body převádět nemůžeme.

4. TRANSFORMACE V PROSTORU Transformace můžeme s výhodou realizovat pomocí homogenních souřadnic. Počítáním v homogenních souřadnicích převedeme transformaci na maticové násobení. Skládání transformací je potom realizováno pouhým násobením matic. Chceme-li například bod P[x, x, x 3, w] T transformovat podle transformace T a potom podle transformace T, stačí provést: P = T T P (3) Jednotlivé transformační matice mohou vyjadřovat změnu polohy bodů vůči souřadnému systému, nebo změnu polohy souřadného systému vůči bodům. Pro účely hledání vzájemné polohy kamer jsou vhodnější transformace, kdy se body nemění a mění se poloha souřadného systému. Následující transformační matice proto vyjadřují změny souřadného systému vůči konstantním bodům... Posunutí Posunutí bodu X o vektor t[t x, t y, t z ] T můžeme zapsat: r X = X t (4) nebo pomocí homogenních souřednic transformační maticí posunutí: T T = X Y Z t t t (5).. Rotace V prostoru může rotaci realizovat rotací bodu kolem každé osy x, y, z o úhly ω, φ, χ viz obr.3

5 Obr. 3 Rotace v prostoru...rotace kolem osy x: T Rx = cos( ω) sin( ω) sin( ω) cos( ω) (6)...Rotace kolem osy y: T Ry cos( ϕ) = sin( ϕ) sin( ϕ) cos( ϕ) (7)...3Rotace kolem osy z: T Rz cos( ϕ) = sin( ϕ) sin( ϕ) cos( ϕ) (8)

6..3 Změna měřítka Parametry S x, S y a S z udávají změnu měřítka v jednotlivých osách x, y, z. T Scale S x = S y S z (9)..4 Rovnoběžné promítání Výsledkem rovnoběžného promítání je průmět bodů do roviny xy rovnoběžnými paprsky kolmých na tuto rovinu. T P Rovn = ()..5 Středové promítání Převádí trojrozměrný objekt do dvojrozměrného prostoru. Obraz na projekční ploše vznikne z průsečíků prostorových paprsků směřujících od každého bodu objektu do středu promítaní s projekční plochou. Uvedené rovnice transformují objekt do roviny xy se středem promítání na ose z ve vzdálenosti d od počátku souřadnic. T P = () / d..6 Aplikace transformací: Při hledání pozice kamery potřebujeme body zobrazit z obecných souřadnic do souřadnic kamery. To můžeme provést tak, že body nejprve posuneme a potom kolem os obecných souřadnic natočíme. Vhodnější řešení ale je, když body nejprve

7 otočíme a potom posuneme, protože takto budou parametry transformací odpovídat parametrům ve skutečnosti. Lépe je situace vidět na analogii v dvojrozměrném prostoru(obr. 4 a obr. 5) Obr. 4 - Natočení, posunutí Obr. 5 - Posunutí, natočení

8 Potřebujeme-li potom zjistit, jaké souřadnice má bod daný v souřadnicích kamery v obecných souřadnicích, aplikujeme transformace v obráceném pořadí se zápornými parametry kamery...7 Model kamery Model kamery uvažuje pouze perspektivní projekci scény na projekční plochu. Nepočítá se zkreslením vlivem vad objektivu jako je soudkovitost nebo nesouosost. Pro transformaci bodu z prostoru do obrazové roviny kamery můžeme použít složenou transformaci: T = T T T T T () P T Rz Výsledkem součinu je matice, která má třetí řádek nulový. Je to důsledek promítání, kdy se redukuje souřadnice z. Po vypuštění tohoto řádku dostáváme: cos( ϕ)cos( χ) cos( ω)sin( χ) sin( ω)sin( ϕ)cos( χ) sin( ω)sin( χ) sin( ω)sin( ϕ)cos( χ) X cos( ϕ)sin( χ) sin( ω)sin( ϕ)sin( χ) cos( ω)cos( χ) cos( χ)sin( ω) cos( ω)sin( ϕ)sin( χ) Y (3) sin( ϕ) sin( ω)cos( ϕ) cos( ω)cos( ϕ) Zt d d d d Protože je transformace počítaná v homogenních souřadnicích, musíme transformovaný bod ještě převést do kartézských souřadnic, tzn. podělíme jej váhou bodu..3 EPIPOLÁRNÍ GEOMETRIE Epipolární geometrie udává vzájemné vztahy mezi dvěma kamerovými systémy a využívá se k jeho popisu a k rekonstrukci bodů. Mějme dvě kamery, jak ukazuje obr. 6: Ry Rx

9 Obr. 6 Epipolární geometrie Spojnice středů obou kamer C, C tvoří bázi. V průsečících báze a obrazových rovin leží epipóly e, e. Průmět m (resp. m ) bodu M musí ležet na přímce danou průsečíkem příslušné obrazové roviny s epipolární rovinou určenou bází a bodem M. Tuto přímku l m (resp. l m ) nazýváme epipolární přímka. Vztah mezi body m a m je určen fundamentální maticí F: m' T F m = (4) Tímto omezením se zjednodušuje problém hledání korespondujících bodů ve snímcích, protože korespondující bod nemusíme hledat v celém snímku, ale pouze v okolí epipolární přímky. Ze znalosti fundamentální matice a projekčních matic lze určit polohu bodů v prostoru.

3. ZÍSKÁVÁNÍ 3D DAT Metod jak určit prostorové souřadnice rekonstruovaného předmětu je mnoho. Mým úkolem je zrekonstruovat předmět ze snímků pořízených dvěma kamerami. Tato technika patří mezi triangulační metody, ale není to jediný možný způsob, jak lze v prostoru provést triangulaci. V této kapitole se proto zaměřuji na popis triangulačních metod s přihlédnutím na pořizování dat vhodných pro zpracování člověkem. Při psaní této kapitoly jsem převážně čerpal z [5]. 3. TRIANGULACE Triangulace používá pro výpočet souřadnic měřeného bodu trojúhelník, který může být tvořen třemi objekty: Měřený objekt, světelný zdroj, kamera Měřený objekt, kamera, kamera Podle toho, jestli k výpočtu využíváme geometrické uspořádání osvětlení nebo ne, rozlišujeme triangulaci aktivní nebo pasivní. 3.. Aktivní triangulace Metoda je založená na osvětlení předmětu zdrojem světla a následovného vyhodnocení deformace světelného vzoru. Jako světelný zdroj může být použit: světelný paprsek (D triangulace) světelný pruh (D triangulace) strukturovaný světelný svazek (3D triangulace)

Obr. 7 Aktivní triangulace (D) [5] 3.. Pasivní triangulace Protože rekonstrukce ze dvou snímků je metodou pasivní triangulace, je tento odstavec rozveden více jak ostatní a jsou zde uvedeny matematické vztahy, které se při rekonstrukci používají. Základ této metody spočívá v pořízení minimálně dvou snímků jedné scény. Bod v prostoru a jeho průměty v projekčních plochách tvoří triangulační trojúhelník, ze kterého počítáme souřadnici bodu (obr.8). Ne vždy potřebujeme pro triangulaci dvě nezávislé kamery. Při snímání statické scény si vystačíme s jednou kamerou, kterou posouváme. U dynamické scény potřebujeme kamer více.

Obr. 8 Pasivní triangulace Existují dva přístupy, jak vypočítat souřadnice bodu. Jedním je rekonstrukce z kalibrovaných kamer, kdy potřebujeme znát parametry obou kamer a druhým je rekonstrukce z nekalibrovaných kamer. Druhý způsob je založen na výpočtu fundamentální matice z korespondencí v obrázcích, která se potom použije k určení 3D struktury zobrazené scény. Metody pro výpočet modelu jsem vytvořil pro případ, kdy jsou parametry kamer známé a následující text se zabývá pouze touto úlohou. 3...Stereovidění Je speciální případ pasivní triangulace, kdy projekční roviny snímků leží ve společné rovině. Lidské oko vytváří středový obraz pozorovaného předmětu na sítnici. Pokud pozorujeme předměty oběma očima, vidíme je prostorově nebo stereoskopicky. Je to dáno tím, že pravé a levé oko vytváří na sítnici vždy samostatný obraz. Tyto obrazy jsou odlišné. Sdružené zorné paprsky se protínají v příslušném bodě v prostoru. Techniky založené na stereovidění se snaží napodobit lidský zrakový systém. Místo očí používají dva snímače (CCD kamery) s rovnoběžnými optickými osami, jejichž vzájemná vzdálenost středů je asi 65 mm (přibližně stejná jako vzdálenost očí). Získají tak dva stereoskopické snímky. [5]

3 Stereoskopické snímky jsou dva perspektivní obrazy. Důležitý je úhel, který svírají oba sdružené paprsky, tzv. úhlová paralaxa (viz. úhel γ na Obr. 9). Bod P je měřený bod a body L a R jsou ohniska kamer. Pro body bližší pozorovateli je paralaxa větší než pro body vzdálenější. Aby se prostorové vidění náležitě uplatnilo, nesmí její velikost klesnout pod určité minimum.[5] Obr. 9 Stereoskopické snímky [5] Souřadnice bodů pak spočítáme podle [5] takto:,, (4, 5, 6) Nevýhoda této metody je, že kamery musejí být umístěné přesně v paralelních pozicích. 3...Obecný pohled kamery Každý bod je určený průsečíkem projekčních paprsků p a p. Tyto přímky jsou dané středy kamer C [C x, C y, C z ] a C [C x, C y, C z ] a promítnutými body m a m v projekčních rovinách kamer, jak ukazuje obr. :

4 p : x y z = C = C = C x y z kde: ( ) p : a C x m x t a t b t c prot =, ( C ) x y z = C = C = C x y z kde: ( C m ) a x x b y m y r a r b r c (, ) =, = ( ) pro r =, ( C m ) b y y, (7) c (, ) C z m z, (8) =, = ( C m ) c z z Obr. Neparalelní kamery Protože se vždy do výpočtu zanese nějaká chyba (body snímku jsou diskrétní, model kamery neodpovídá skutečnému), přímky p a p se nikdy neprotnou v jednom bodě. Rekonstruovaný bod M bude ale určitě ležet v blízkosti bodu, který má od obou přímek nejmenší vzdálenost. Tato vzdálenost bude závislá na parametrech t a r z rovnic (7) a (8): ( x x ) ( y y ) ( z ) p (9) p z Vzdálenost bude minimální, budou-li její parciální derivace rovny nule:

5 ( ) ( ) ( ) c c b b a a r c b a t C c C b C a t p p z y x Δ Δ Δ = () ( ) ( ) ( ) c c b b a a t c b a r C c C b C a r p p z y x Δ Δ Δ =, () kde, x x x C C C = Δ y y y C C C = Δ, z z z C C C = Δ Pro = t p p a = r p p dostaneme: () ( ) ( ) Δ Δ Δ Δ Δ Δ = z y x z y x C c C b C a C c C b C a r t c b a c c b b a a c c b b a a c b a Ze soustavy rovnic () spočítáme parametry t a r, které když dosadíme do rovnic (7) a (8), dostaneme body ležící na přímkách, které mají od sebe nejmenší vzdálenost. Rekonstruovaný bod M leží v poloviční vzdálenosti mezi těmito body.

6 4. KALIBRACE Abychom mohli provést rektifikaci nebo rekonstrukci, musíme znát parametry a vzájemnou polohu jednotlivých kamer. Tyto údaje získáváme kalibrací. Kalibrace se provádí na základě znalosti scény, na kterou se kamera dívá. Tuto scénu nazýváme kalibrační a je popsána níže. Samotné hledání parametrů kamery je založeno na principu, že body kalibrační scény se musí zobrazit na body snímku kalibrační scény právě tehdy, když parametry kamery odpovídají parametrům kamery, která snímala kalibrační scénu. Hledáme tedy takové parametry, které nám zajistí, že se body kalibrační scény zobrazí na snímek kalibrační scény. Takto určíme polohu u obou kamer. Vzájemná poloha kamer, kterou potřebujeme pro rektifikaci se potom spočítá jako rozdíl jednotlivých složek vektoru parametrů. Samotný model kamery vnáší do snímku nepřesnosti dané konstrukcí kamery a její optickou soustavou. Jde zejména o deformace snímku, kterými je zejména soudkovitost. Optická osa kamery nemusí také procházet přesně středem zachyceného snímku. Tyto nepřesnosti pro jednoduchost zanedbávám. 4. KALIBRAČNÍ SCÉNA Je objekt o známých rozměrech, které potom srovnáváme s odpovídajícími rozměry zachycených na snímku. Aby byla kalibrace dobře podmíněná, tzn. aby se nestalo že dvě kamery dívající se na kalibrační scénu z jiných pohledů zachytily totožné obrazy, musí být jednotlivé body kalibrační scény dobře prostorově rozmístěné. Na Obr. a Obr. jsou kalibrační scény, se kterými jsem testoval. Jedná se o roh místnosti se značkami o známých roztečích (Obr. ) a Rubikovu kostku (Obr. ).

7 Obr. Kalibrační scéna roh Obr. Kalibrační scéna kostka

8 4. KRITERIÁLNÍ FUNKCE Je funkce, která udává měřítko podobnosti spočítaného a skutečného snímku. Můžeme ji definovat jako součet kvadrátů odchylek jednotlivých bodů přes všechny kalibrační body: F krit = n i= r r ( ) A A skut, i spoč, i, (7) kde n je počet kalibračních bodů A skut, n je souřadnice bodu na stínítku a A spoč, n je bod získaný transformací. Je zřejmé, ze kriteriální funkce je závislá také na sedmi parametrech. Nalezení polohy kamery se tady zredukovalo na hledání minima kriteriální funkce. 4.. Hledání minima kriteriální funkce Hledání minima funkce více proměnných je poměrně složitá úloha. Řeší se většinou iteračními metodami, kdy v jednotlivých iteracích měníme parametry vstupující do funkce, a podle hodnot kriteriální funkce upravujeme parametry vstupující v dalším kroku. V mých funkcích využívám funkce Matlabu fminsearch. 4.3 VÝSLEDKY KALIBRACE Úspěch kalibrace závisí na přesnosti zadání kalibračních bodů a na nalezení absolutního minima kriteriální funkce (7). Určení správného minima je závislé na výchozím bodu (počátečních podmínkách), od kterého se začíná prostor parametrů prohledávat. Experimentálně jsem zjistil, že většinou stačí zadat správný kvadrant kamery v obecných souřadnicích a metoda konverguje k absolutnímu minimu. Pro kalibraci jsem používal dvě kalibrační scény. Rubikovu kostku a roh místnosti v laboratoři. Samotná Rubikova kostka se příliš neosvědčila, protože má malé rozměry. Pro rekonstrukci velryby jsem ke kalibraci použil Rubikovu kostku společně s body na zadní desce stolu. Tím se přesnost zlepšila a pro rekonstrukci modelu byla přijatelná.

9 5. REKTIFIKACE Chceme-li použít dva snímky jako vstupní data pro metody, které člověku zprostředkují prostorový vjem (anaglyph, 3D kino), musí být snímky pořízené kamerami, které jsou umístěné paralelně. Kdyby tomu tak nebylo, vjem člověka by nebyl přirozený. Musíme proto kamery buď přesně nastavit do paralelních poloh, nebo provést rektifikaci snímků. Rektifikace snímku je obecně operace, kterou srovnáváme daný snímek do jiné roviny. Tuto transformaci můžeme provést tak, že jeden ze snímků promítneme do roviny druhého snímku. Promítnutí snímku z kamery do obrazové roviny kamery provedeme tak, že každý bod snímku transformujeme podle transformace T: T TRx TRy TRz TT TP, Rovn =, (8), přičemž parametry matice rotace jsou: ω = ω - ω, φ =φ - φ, χ = χ - χ, parametry matice posunutí jsou X t, =, Y t = Y Y, Z t = Z Z a obraz se promítá rovnoběžným promítáním. Do transformace je zahrnuta ještě změna měřítka, které se upravuje podle zadané velikosti úseček v obou obrazech. Vertikální poloha rektifikovaného snímku je upravena podle krajních bodů této úsečky. Takto můžeme s úspěchem rektifikovat snímky pořízené paralelně umístěnými fotoaparáty, které ale byly vůči sobě natočeny jen kolem optické osy z o nějaký úhel χ. Jsou-li snímky vůči sobě natočeny i v jiných osách, je metoda použitelná pro snímky plošných objektů, např. při leteckém snímkování. U snímku prostorové scény nemůžeme nahradit ztracený třetí rozměr, proto pro velké úhly a neplošný objekt metoda selhává. Pro malé úhly je metoda použitelná, můžeme ji proto použít pro drobné korekce nepřesného nastavení dvou paralelních kamer.

3 6. REKONSTRUKCE Tato kapitola popisuje postup, který jsem použil při konstrukci bodů. Problém je popsán na modelu velryby, který jsem rekonstruoval. Kapitole je popsán postup při tvorbě hloubkové mapy a je zde diskutována chyba modelu. Jako rekonstruovaný objekt jsem zvolil předmět s hladkým povrchem, na který by se dal nasvítit vzor šachovnice z projektoru. Uzly šachovnice slouží jako korespondující body pro následnou rekonstrukci. Místo nasvícení projektorem jsem ale nakonec zvolil nalepení značek. Protože jsem neměl k dispozici dva fotoaparáty umístěné v pevné bázi, fotil jsem scénu vždy dvakrát ze dvou pohledů. Jednou s kalibračním vzorem a podruhé bez vzoru. Snímky se vzorem jsem použil ke kalibraci kamer a druhé pro rekonstrukci bodů. Jako kalibrační objekt jsem použil Rubikovu kostku, protože má známé rozměry a bylo snadnější použít již vyrobený předmět, než kalibrační objekt vyrábět. Přesnost kalibrace je ovlivněna silnými hranami, jejichž průsečíky určují kalibrační body. Chyba je ale minimalizována, protože kalibraci počítám z více bodů. Negativně je chyba ovlivněna malými rozměry kostky, ale pro předměty srovnatelné do velikosti a vzdálenosti je přesnost dostatečná. Korespondující body jsem z obrázku snímal ručně. Nejprve jsem provedl kalibraci kamer. Jejich parametry jsem hledal pomocí funkce fminsearch, která hledá minimum funkce více proměnných. Souřadnice bodů jsem nepočítal pomocí minimalizace rovnice (9). Využil jsem funkci fminsearch, kterou jsem hledal bod v prostoru, který po transformování do obou snímků podle nalezených parametrů kamer má od obou korespondujících bodů nejmenší vzdálenost. Tak jsem získal prostorové souřadnice bodů na obr. 3. Modré body odpovídají mraku rekonstruovaných bodů, červené jsou jejich průměty v rovině xy.

3 Obr. 3 Prostorové body Abychom mohli vytvořit hloubkovou mapu, které by odpovídala textura z některé fotografie, musíme se na body dívat z pohledu kamery, která fotografii pořídila. Jinými slovy musíme měřit vzdálenosti bodů od obrazové roviny kamery. Tato rovina je určena natočením kamery a jedním bodem roviny. Protože při měření nepoužíváme perspektivu a zajímají nás hlavně poměr hloubek jednotlivých bodů, můžeme vzdálenosti měřit od libovolné roviny rovnoběžné s obrazovou rovinou. Přiřazením hloubek bodům z obrázku dostaneme data k vytvoření hloubkové mapy, která bude korespondovat s fotografií. Aby byl využit celý rozsah odstínů hloubkové mapy, jsou hloubky bodů převzorkovány tak, aby nejbližšímu bodu odpovídala bílá barva a nejvzdálenějšímu černá. Nejprve vzdálenosti normuji tak, aby nejbližší bod měl hodnotu a nejvzdálenější. Následně souřadnici hloubky násobím počtem jasových úrovní. Protože jsou body na objektu rozmístěné řídce, musíme ostatní body dopočítat. To provádím tak, že každé tři body proložím plochou. Každý bod této plochy má odstín (hloubku) odpovídající interpolaci odstínům bodů, které plochu definují. Pro rozdělení bodů na trojúhelníky používám Delaunayho triangulaci.

3 6. DELAUNAYHO TRIANGULACE Triangulace byla vymyšlena Borisem Delaunay v roce 934. Algoritmus slouží k rozdělení množiny bodů z n-rozměrného prostoru do sítě konvexních trojúhelníků. Definice: Delaunayho triangulace pro množinu P bodů v rovině je triangulace DT(P) taková, že pro každý bod z P platí, že se nenachází v jakémkoli konvexním trojúhelníku tvořeném z bodů množiny P.[9] Pro množinu bodů, které leží na jedné přímce nemá triangulace řešení. Pro čtyři body, které leží na jedné kružnici je triangulace nejednoznačná. Obr. 4 Triangulované body Interpolace barvy trojúhelníku je prováděna tak, že nejdříve se interpoluje barva hran trojúhelníka a následovně se dopočítává po řádcích barva mezi hranami.

33 6. PŘESNOST MODELU Kvalita modelu závisí na více faktorech. Jedná se především o přesnost kalibrace kamer, vzdálenost snímaného objektu od kamer, přesnost zadání korespondujících bodů a vzdálenost kamer. Kvalita také závisí na zvoleném modelu kamery. Přesnost kalibrace negativně ovlivňuje malá velikost kalibračního předmětu. Nepřesnosti, vzniklé špatným zadáním kalibračních bodů, můžeme zmírnit zadáním více bodů, čímž se chyba minimalizuje. Chyba vzniklá při kalibraci se na modelu umocní, když rekonstruovaný objekt leží ve větší vzdálenosti než z které byla focena kalibrační scéna. Leží-li předmět v menší vzdálenosti než kalib. scéna, chyba se projeví méně. Přesnost zadání korespondujících bodů více ovlivní body vzdálenější. Je to dáno tím, že paralaxa paprsků určující bod je menší a tedy její malá změna zapříčiní velkou změnu polohy průsečíku paprsků. Do modelu se také promítá chyba modelu kamery, který neuvažuje vady objektivu (soudkovitost, nesouosost). Tato vada je názorně vidět na Obr. 5. Obraz vznikl rekonstrukcí bodů umístěných v ploše. Kamery byly kalibrovány podle kalibračního rohu v rohu laboratoře a byly umístěny přibližně ve stejné vzdálenosti, z které byla focena kalibrační scéna. V levé části je pohled ze shora, v pravé je pohled z boku, na kterém je vidět prohnutí plochy vlivem soudkovitosti. Obr. 5 Soudkovitost Kdybychom chtěli tuto chybu odstranit, museli bychom použít jiný model kamery.

34 Přesnost výpočtu prostorových souřadnic jsem určil z rekonstruované plochy na obr. 5. Poměry vzdáleností mezi body zůstaly zachovány, došlo však přibližně k 5% zvětšení scény. K účelu rekonstrukce modelu objektu je tato chyba přijatelná, avšak pro případné měření by byla metoda nepoužitelná a chyba by se musela odstranit nebo korigovat.

35 7. FORMÁTY 3D mohl uložit. V této kapitole uvádím možné formáty do kterých by se vypočítaný model 7. STL STL je formát pro ukládání 3D objektů složených z polygonů. Byl vytvořen pro účely stereolitografie a používá se v mnoha CAD aplikacích. Jsou dvě verze tohoto formátu binární a textový. Objekt je popsaný pomocí vrcholů ploch, které tvoří jeho povrch, a z normálových vektorů těchto ploch, které určují jejich orientaci. Ve formátu není uložena žádná informace o textuře nebo barvě objektu a data nejsou žádným způsobem komprimovaná. Struktura ASCII STL souboru: solid nazev_objektu //uvozeni zacatku nazev facet normal n_ n_ n3_ //urceni normály outer loop //polygon vertex v_ v_ v3_//souradnice vrcholu vertex v_ v_ v3_//souradnice vrcholu vertex v3_ v3_ v33_//souradnice vrcholu 3 endloop endfacet facet normal n_ n_ n3_ //urceni normály outer loop //polygon vertex v_ v_ v3_//souradnice vrcholu vertex v_ v_ v3_//souradnice vrcholu vertex v3_ v3_ v33_//souradnice vrcholu 3 endloop endfacet... endsolid //uvozeni konce 7. VRML VRML je programový standart pro definování interaktivní (webové) 3D grafiky. Je vytvořen tak, aby byl použitelný na různorodých zařízeních a v širokém spektru aplikačních oblastí jako je inženýrská a vědecká vizualizace, multimediální prezentace, zábavní průmysl, webové stránky a virtuální realita. Tento jazyk byl navržen pro popis trojrozměrných scén obsahující aktivní i pasivní objekty.

36 Prostorová tělesa lze popsat pomocí seznamu souřadnic vrcholů a plochami specifikovanými indexy svých vrcholů do seznamu vrcholů. Základní geometrická tělesa mají definována vlastní klíčová slova a není nutné je popisovat pomocí rozložení do trojúhelníků. O to se musí postarat prohlížeč VRML souborů, který spolupracuje s grafickým akcelerátorem. Scéna je popsaná pomocí objektů, které jsou hierarchicky uspřádány do stromové struktury. To umožňuje manipulovat s jednotlivými objekty i se scénou jako celkem. 7.3 X3D X3D je nástupce VRML a opravuje jeho nedostatky a přidává některé další vlastnosti. Jedná se především o možnost použít syntaxi založenou na XML. To s sebou přináší o něco složitější strukturu kódu, ale zpracování je jednodušší.

37 8. APLIKACE Metody pro rektifikaci snímků a výpočet 3D dat jsem naprogramoval v Matlabu. Zde uvádím popis některých funkcí. 8. FUNKCE PRO GEOMETRICKÉ TRANSFORMACE Základní geometrické operace jsou realizovány následujícími funkcemi. Vstupy jsou parametry příslušné operace, výstupem je matice, která operaci realizuje v homogenních souřadnicích. rotacex(o) rotacey(f) rotacez(k) promitani(d) posunuti(x,y,z) rovnpromitani scale(sx,sy,sz) Tyto funkce jsou použity ve funkci transformace(xt,yt,zt,o,f,k,d), která generuje transformaci, která přetransformuje bod v obecných souřadnicích tak, jak by jej viděla kamera mající parametry Xt,Yt,Zt,o,f,k,d. Funkce transformujbody(n,ibody,t) přetransformuje body uložené v proměnné ibody podle transformace T. 8. FUNKCE PRO PRÁCI S OBRAZEM Funkce nactibody(name,n) načte n bodů z bitmapy s názvem v parametru name. Souřadnice bodů jsou uloženy ve sloupcových vektorech a uspořádány do pole, které je předáno na výstup.

38 Souřadnice bodu v obrázku jsou [u,v]. Počátek soustavy souřadnic je v obrázku v levém horním rohu, osa u směřuje k pravému hornímu rohu a osa v k dolnímu levému rohu. Snímek kamery má střed soustavy souřadnic umístěný v místě, kde projekční plochu protíná osa objektivu. Počítám s ideálním případem, kdy je tento střed umístěn ve středu snímku. Abych mohl body obrázku považovat za body snímku kamery, musím souřadnice obrázku přetransformovat do souřadnic kamery. K tomu slouží funkce trobrsour a trsourobr. Funkce trobrsour(body,info) transformuje souřadnice obrázku do souřadnic kamery. Proměnná body obsahuje body z obázku, parametr info je struktura obsahující parametry obrázku. Funkce trsourobr(body,info) transformuje souřadnice kamery do souřadnic obrázku. Funkce rektifikuj(name, name, param, param) rektifikuje bitmapy name a name, které byly pořízeny kamerami s parametry param a param. Parametry kamer slouží ke srovnání rozdílného natočení kamer. Funkce očekává zadání dvou bodů v každém snímku pro srovnání měřítka a vertikálního posunu. Úsečka, kterou body určují musí ležet v rovině rovnoběžné s obrazovou rovinou kamery, ke které snímky rektifikujeme. 8.3 FUNKCE PRO REKONSTRUKCI OBJEKTU Funkce kfcerekonstrukce(bod,t,t,bodsn,bodsn) počítá hodnotu minimalizační funkce pro nalezení prostorové souřadnice bodu, který má v prvním snímku souřadnici bodsn a ve druhém bodsn. T,T jsou parametry kamer. Parametr bod je souřadnice bodu v prostoru. Čím menší je hodnota funkce, tím více se souřadnice bodu blíží k souřadnicím bodu, který když transformujeme podle parametrů T a T, se zobrazí na body bodsn a bodsn.

39 Funkce rekonstrukce(points, p, p) vypočítá prostorové souřadnice korespondujících bodů v obrázcích. Parametr POINTS obsahuje souřadnice bodů z obrázků. Souřadnice jednotlivých bodů jsou reprezentovány sloupcovými vektory, jednotlivé body jsou řazeny do řádku. Proměnná má čtyři řádky -. a. jsou určen pro body z prvního obrázku, 3. a 4. pro body z druhého obrázku. Parametry p, p jsou parametry jednotlivých kamer. 8.4 FUNKCE PRO VYTVOŘENÍ HLOUBKOVÉ MAPY Funkce rovinan(param, A) vypočítá koeficienty obecné rovnice roviny, ve které leží promítací rovina kamery. Parametr param udává parametry kamery, parametr A je bod, který leží v promítací rovině. Funkce hloubky(ro, points) vypočítá vzdálenosti bodů uložených v points od roviny určené normálovou rovnicí s parametry ro. Funkce Line(p, p) vloží na výstup funkce pole sloupcových vektorů. Každý sloupec odpovídá bodu úsečky, kterou definují body p a p. Funkce DrawLine(p, p, obr) - p a p definují úsečku, která se vykreslí do matice obr obsahující obrazová data. Pozice bodu v obr je dána první a druhou souřadnicí bodu. Třetí souřadnice udává barvu bodu v obrázku. Barva jednotlivých bodů je lineární interpolací barvy krajních bodů. Funkce vykreslitrojuhelnik(bod, bod, bod3, obr) vykreslí do matice obr trojúhelník tvořený body bod, bod, bod3. Nejprve se vykreslí a spočítají strany trojúhelníku. Poté se po vykreslují úsečky mezi stranami. Úsečky se vykreslují po řádcích, musíme zajistit, aby byly spojeny body ve stejných úrovních. Na jednom řádku může ležet více bodů. Abychom trojúhelník vykreslili správně, musíme vykreslovat body, které na řádku od sebe leží nejdále. Tím, že je barva interpolována nejdříve na hranách a potom v řádcích

4 mezi stěnami trojúhelníku, dostaneme plochu, jejíž barva plynule přechází mezi barvami vrcholů. Funkce depthmap(dm_controlpoints, height, width) vykreslí hloubkovou mapu. Parametr DM_controlPoints je pole sloupcových vektorů. První a druhá souřadnice udává polohu bodu v hloubkové mapě, třetí souřadnice udává odstín bodu. Parametry height a width udávají rozměry hloubkové mapy.

4 9. ZÁVĚR A VÝSLEDKY V této bakalářské práci jsem popsal metody vhodné pro získávání 3D dat s přihlédnutím na pozdější zpracování (tvorba anaglyfphu a sirds), které umožní člověku vnímat data jako prostorová. Pro metody, které vyžadují stereoskopické snímky (Anaglyph), je nejvhodnější snímky pořizovat stereoskopickými kamerami, kdy přímo dostaneme fotografie vhodné pro vytvoření anaglyphu. Chceme-li použít snímky, které nebyly pořízené stereoskopickými kamerami, musíme provádět rektifikaci. Ta nám ale nemůže zcela vykompenzovat chyby ve snímcích, proto je vhodné mít kamery umístěné co nejvíce paralelně, aby rektifikace korigovala pouze malé odchylky. Pro tvorbu obrázků sirds potřebujeme znát hloubkovou mapu. Hloubkovou mapu můžeme vypočítat některou triangulační metodu. Dalším úkolem bylo vytvoření metod pro rektifikaci snímků. Ke správné rektifikaci je potřeba znát vzájemnou polohu kamer, kterou získám kalibrací jednotlivých kamer. Rektifikace pracuje s D souřadnicemi obrázku. Nemůže nahradit ztracený třetí rozměr skutečné scény. Proto sice srovná body v jednotlivých snímcích tak, aby odpovídající si body ležely na stejných řádcích, ale už nezajistí správnou polohu bodu na řádku. Tím dochází ve snímku k deformacím. Názorně je tento jev vidět na obr. 6 (přední hrana Rubikovy kostky je v každém snímku nakloněna na jinou stranu). Obr. 6 Natočení v osách z a x Jsou-li kamery vůči sobě natočeny pouze v ose z, rektifikace snímky pouze natočí a k žádné deformaci nedochází.

4 Obr. 7 Natočení v ose z Dalším mým úkolem bylo vytvořit metody pro získání 3D dat vhodných pro sestavení hloubkové mapy nebo modelu. Prostorové souřadnice modelu jsem určil pasivní triangulací z dvojice snímků. Z těchto dat počítám hloubkovou mapu, která odpovídá jednomu ze snímků. Obr. 8 Textura k hloubkové mapě

43 Obr. 9 Hloubková mapa V hloubkové mapě jsou zřetelné chyby způsobené nedostatkem bodů pro rekonstrukci a použitou metodou interpolace. Jedná se o světlé výběžky z těla velryby a neostré obrysy. Řešením by bylo použití více bodů. Další zlepšení by mohlo přinést i uvažování hran z fotografie, z kterých by se dala získat informace o přechodech ve scéně.

44 LITERATURA [] ROTHER, C. Multi-View Reconstruction and Camera Recovery using a Real or Virtual Reference Plane. Stockholm, 3. 5 s. ISBN 9-783-4-6. [] Přednáška předmětu MAPV, VUT FEKT: 3D měření [3] KRAUS, Karl. Photogrammetrie : Volume Fundamentals and Standard Processes. Köln : Dümmler, c. 397 s. ISBN 3-47- 78684-6. [4] MATOUCH, Radek. 3D Rekonstrukce triangulační metodou pro stereomikroskop. [s.l.], 6. 68 s. České vysoké učení technické v Praze, Fakulta elektrotechnická. Vedoucí diplomové práce Ing. Tomáš Pajdla, PhD. Dostupný z WWW: <https://dip.felk.cvut.cz/browse/pdfcache/matoucr_6dipl.pd f>. [5] KALOVÁ, Ilona, HORÁK, Karel. Optické metody měření 3D objektů. Elektrorevue [online]. 5, roč. 5, 3 [cit. 9-5-]. Dostupný z WWW: <http://www.elektrorevue.cz/clanky/53/index.html>. [6] STLA Files : ASCII stereolithography files [online]. [9], Last revised on 7 March 9 [cit. 9-6-]. Dostupný z WWW: <http://people.sc.fsu.edu/~burkardt/data/stla/stla.html>. [7] PAVEL, Tišnovský. VRML : jazyk pro popis virtuální reality. ROOT.CZ [online]. 7 [cit. 9-6-]. Dostupný z WWW: <http://www.root.cz/clanky/vrml-jazyk-pro-popis-virtualnireality/#k8>. ISSN -839. [8] PAVEL, Křížek. Rekonstrukce 3D scény [online]. Created on June 9, 3 [cit. 9-6-]. Dostupný z WWW: <http://cmp.felk.cvut.cz/cmp/courses/pvi3/projects/uloha/krizekp /index.html#lit>.

45 [9] Wikipedia : Delaunay triangulation [online]. [9], last modified on 5 May 9 [cit. 9-6-]. Dostupný z WWW: <http://en.wikipedia.org/wiki/delaunay_triangulation>. [] ISO/IEC 9775-:8. Extensible 3D [cit. 9-6-]. Dostupný z WWW: < http://www.web3d.org/x3d/> [] TRIDAKT [online]. c6, poslední aktualizace: 6. 5. 9 [cit. 9-6-5]. Dostupný z WWW: <http://3dakt.cz/>. [] Vern's SIRDS Gallery [online]. [996], Last Updated: Wed Sep 8:44:45 MDT 998 [cit. 9-6-5]. Dostupný z WWW: < http://www.vern.com/images/>.

SEZNAM PŘÍLOH Příloha Příloha Příloha 3 Obrázková příloha: Rektifikované snímky Obrázková příloha: Hloubková mapa Přiložené CD s zdrojovými kódy a elektronickou podobou BP

Příloha Obr. Levý snímek původní Obr. Pravý snímek rektifikovaný

Obr. Pravý snímek původní Obr. 3 Pravý snímek nerektifikovaný

Obr. 4 Levý snímek původní Obr. 5 Pravý snímek rektifikovaný

Příloha Obr. 6 Hloubková mapa