VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ FACULTY OF MECHANICAL ENGINEERING ÚSTAV KONSTRUOVÁNÍ INSTITUTE OF MACHINE AND INDUSTRIAL DESIGN OPTIMALIZACE KALIBRACE KAMER FOTOGRAMMETRICKÉHO SYSTÉMU NAVRŽENÉHO PRO MĚŘENÍ ROTAČNĚ SYMETRICKÝCH VÝKOVKŮ OPTIMIZING THE CALIBRATION OF THE CAMERAS OF PHOTOGRAMMETRIC SYSTEM DESIGNED FOR THE MEASUREMENT OF ROTATIONALLY SYMMETRIC FORGINGS DIPLOMOVÁ PRÁCE MASTER'S THESIS AUTOR PRÁCE AUTHOR Bc. Jakub Hurník VEDOUCÍ PRÁCE SUPERVISOR Ing. Aneta Zatočilová, Ph.D. BRNO 2017
Zadání diplomové práce Ústav: Ústav konstruování Student: Bc. Jakub Hurník Studijní program: Strojní inženýrství Studijní obor: Konstrukční inženýrství Vedoucí práce: Ing. Aneta Zatočilová, Ph.D. Akademický rok: 2016/17 Ředitel ústavu Vám v souladu se zákonem č.111/1998 o vysokých školách a se Studijním a zkušebním řádem VUT v Brně určuje následující téma diplomové práce: Optimalizace kalibrace kamer fotogrammetrického systému navrženého pro měření rotačně symetrických výkovků Stručná charakteristika problematiky úkolu: Kalibrace fotoaparátů/kamer je základním předpokladem pro jejich použití v digitální fotogrammetrii. Kalibrace dvoukamerového systému, který byl navržen pro měření tvaru rotačních výkovků, je založena na jednoduchých matematických metodách. Pokročilejší metody kalibrace by měly zajistit vyšší přesnost kalibrace a tím zvýšit přesnost celého systému. Typ práce: výzkumná Projekt: specifický vysokoškolský výzkum Cíle diplomové práce: Cílem práce je optimalizace stávajícího řešení kalibrace kamer fotogrammetrického systému z hlediska přesnosti, rychlosti a uživatelské přívětivosti. Dílčí cíle diplomové práce: provedení rešerše a volba vhodných metod, návrh softwaru v prostředí MATLAB, experimentální ověření funkčnosti softwaru z hlediska stanovených kritérií. Požadované výstupy: software, průvodní zpráva, digitální data. Rozsah práce: cca 72 000 znaků (40 50 stran textu bez obrázků). Struktura práce a šablona průvodní zprávy jsou závazné: http://dokumenty.uk.fme.vutbr.cz/bp_dp/zasady_vskp_2017.pdf Fakulta strojního inženýrství, Vysoké učení technické v Brně / Technická 2896/2 / 616 69 / Brno
Seznam doporučené literatury: LUHMANN, T., et al. Close Range Photogrammetry: Principles, techniques and applications. Dunbeath, Caithness KW6 6EG, Scotland, UK: Whittles Publishing, 2011. s. 510. ISBN 978-18499- -057-2. ZATOČILOVÁ, A., Měření a vyhodnocování přímosti osy rotačních výkovků pomocí fotogrammetrie a analýzy obrazu. Brno: Vysoké Učení technické v Brně, Fakulta strojního inženýrství, 2014. 128 s. Termín odevzdání diplomové práce je stanoven časovým plánem akademického roku 2016/17 V Brně, dne L. S. prof. Ing. Martin Hartl, Ph.D. ředitel ústavu doc. Ing. Jaroslav Katolický, Ph.D. děkan fakulty Fakulta strojního inženýrství, Vysoké učení technické v Brně / Technická 2896/2 / 616 69 / Brno
ABSTRAKT V současné době na světě existuje pouze několik systémů, které umožňují měření rozměrové přesnosti rozměrných výkovků za tepla, přímo v procesu výroby. Tato práce se zabývá návrhem a realizací kalibrace kamer pro vyvíjený fotogrammetrický systém, určený pro zmíněné účely. Podmínky měření jsou velmi specifické - vysoká teplota a velké rozměry měřených polotovarů, prostředí těžké výroby. Použité metody jsou voleny s důrazem na spolehlivost a robustnost, s přihlédnutím k náročným podmínkách v průmyslových prostorách. Kalibrace je navržena pro rozměrné zorné pole, využívá kódovaných referenčních bodů ve scéně se známými souřadnicemi v prostoru. Výsledkem práce je kalibrační software vytvořený v prostředí MATLAB. KLÍČOVÁ SLOVA Fotogrammetrie, kalibrace kamer, kalibrace stereopáru, kódované kalibrační značky, rozeznávání kalibračních značek, MATLAB ABSTRACT At present, there are only a few systems in the world, that allow measurement of the dimensional accuracy of hot forgings directly in the manufacturing process. This work deals with the development of the calibration method of the cameras for the developed photogrammetric system, intended for the mentioned purposes. The conditions of measurement are very specific - high temperature and large dimensions of measured semi-finished products, environment of heavy industry. Employed methods are chosen with the emphasis on reliability of the system, taking into account the demanding conditions in the industrial premises. Calibration is designed for a large field of view, utilizing coded reference points in a scene with known spatial coordinates. The result of the work is the calibration software created in the MATLAB environment. KEYWORDS Photogrammetry, camera calibration, stereiopair calibration, coded calibration targets, calibration targets recognition, MATLAB
BIBLIOGRAFICKÁ CITACE HURNÍK, J. Optimalizace kalibrace kamer fotogrammetrického systému navrženého pro měření rotačně symetrických výkovků. Brno: Vysoké učení technické v Brně, Fakulta strojního inženýrství, 2017. 84 s. Vedoucí diplomové práce Ing. Aneta Zatočilová, Ph.D..
ČESTNÉ PROHLÁŠENÍ Prohlašuji, že tuto diplomovou práci Optimalizace kalibrace kamer fotogrammetrického systému navrženého pro měření rotačně symetrických výkovků jsem vypracoval samostatně, pod vedením vedoucí diplomové práce Ing. Anety Zatočilové, Ph.D. Současně prohlašuji, že jsem v seznamu uvedl všechny použité literární zdroje. V Brně dne 26. května 2017... Podpis autora
PODĚKOVÁNÍ Tímto bych chtěl poděkovat zejména vedoucí práce Ing. Anetě Zatočilové, Ph.D. za cenné rady a připomínky při tvorbě práce a za asistenci při realizování experimentů. Dále bych chtěl poděkovat rodině a přítelkyni za podporu.
OBSAH OBSAH 1 ÚVOD 15 1.1 Motivace 15 1.2 Představení problému 16 2 Shrnutí současného stavu poznání odborné problematiky 17 2.1 Blízká fotogrammetrie 17 2.2 Vybrané metody zpracování digitálního obrazu 17 2.2.1 Prahování 17 2.2.2 Detekce hran 18 2.2.3 Hranové operátory 19 2.2.4 Interpolace hodnot pixelů 20 2.2.5 Geometrická rektifikace obrazu 22 2.2.6 Měření bodových elementů v obraze 23 2.3 Analytické metody kalibrace kamer 25 2.3.1 Základní rovnice kalibrace kamery 25 2.3.2 Popis vnitřní geometrie kamery 26 2.3.3 Korekce zkreslení obrazu v důsledku nedokonalostí geometrie kamery 29 2.3.4 Přímá lineární transformace 29 2.3.5 Prostorová resekce 29 2.3.6 Kvalita kalibrace kamer 30 2.3.7 Kalibrace steropáru 30 2.4 Kódované kalibrační značky 32 2.4.1 Typy kódovaných kalibračních značek 33 2.4.2 Počet kruhových kalibračních značek typu barcode 33 2.4.3 Generování knihoven kalibračních značek 34 2.5 Dekódování referenčních značek 34 2.5.1 Metoda dekódování kruhových kódovaných značek 34 2.5.2 Umělé neuronové sítě 35 2.6 Původní řešení kalibrace kamer 37 2.7 Aplikace kalibrace kamer v prostředí MATLAB 38 3 Analýza problému a cíl práce 40 3.1 Cíl práce 40 3.2 Vymezení a nástin řešení problémů 40 3.2.1 Návrh kódovaných kalibračních značek a metody jejich detekce 40 3.2.2 Návrh metody detekce elips a měření jejich středů 41 3.2.3 Volba analytické metody kalibrace kamer 41 4 Materiál a metody 43 4.1 Použitá technika 43 4.1.1 Použitý fotoaparát 43 4.1.2 Systém TRITOP 43 4.2 Metody 44 4.2.1 Návrh kalibračních značek 44 4.2.2 Detekce elips v obrazu 46 4.2.3 Měření souřadnic středů elips 47 4.2.4 Dekódování kalibračních značek 49 4.2.5 Výpočet nelineárních parametrů kamery 51 4.2.6 Kalibrace stereopáru 54 5 Výsledky 57 13
OBSAH 5.1 Generování knihoven kalibračních značek 57 5.2 Spolehlivost detekce kalibračních značek v obraze 57 5.3 Přesnost měření souřadnic středů kalibračních značek 60 5.4 Spolehlivost dekódování kalibračních značek 60 5.5 Ověření přesnosti kalibrace nelineárních parametrů kamery 63 5.6 Ověření přesnosti kalibrace stereopáru 66 5.7 Výpočetní náročnost algoritmů 67 6 Diskuze 68 6.1 Algoritmus detekce kalibračních značek v obraze 68 6.2 Metoda výpočtu souřadnic kalibračních značek v obraze 68 6.3 Metoda dekódování kódovaných kalibračních značek 69 6.4 Metoda kalibrace kamer 69 6.4.1 Metoda určení nelineárních parametrů kamery 69 6.4.2 Kalibrace stereopáru 70 7 Závěr 71 8 Seznam použitých zdrojů 72 9 Seznam použitých zkratek, symbolů a veličin 74 10 Seznam obrázků a grafů 76 11 Seznam tabulek 78 12 Seznam příloh 79 Příloha 80 14
ÚVOD 1 ÚVOD Tato práce se zabývá vylepšením metody kalibrace kamer pro fotogrammetrický systém měřící rozměrovou přesnost rotačně symetrických výkovků, zejména přímost osy, přímo v procesu výroby. Diplomová práce navazuje na výsledek disertační práce Ing. Anety Zatočilové, Ph.D, Měření a vyhodnocování přímosti osy rotačních výkovků pomocí fotogrammetrie a analýzy obrazu. 1.1 Motivace Díky měření rozměrů výkovku přímo v procesu výroby je možné případnou výchylku osy odstranit tříbodovým lisem bez nutnosti opakovaného ohřevu dílu a tím dosáhnout vyšší rozměrové přesnosti polotovaru, tento proces je znázorněn na Obr. 1-1. To s sebou nese omezení přídavků na obrábění a tím snížení množství potřebného materiálu [1]. Výhodou je také zjednodušení obrábění takového polotovaru. Vyvíjený fotogrammetrický systém je navrhován pro kontrolu přímosti osy rotačně symetrických výkovků pro lodní, petrochemický a energetický průmysl [2]. Rozměry takových výrobků mohou dosahovat i více než 20 metrů na délku nebo 6 metrů v průměru. Povrch těchto součástí během výroby dosahuje teplot 850 1250 º C. I přes tyto rozměry a teplotu se v praxi pro měření běžně používají kontaktní měřidla, etalony a kalibry [1]. Tento způsob může být nebezpečný a jsou získána pouze částečná data. Způsob je navíc pomalý, může tedy dojít k vychladnutí výkovku během měření, pak je nutné výkovek před rovnáním znovu ohřát. Jako vhodnou, bezpečnější, komplexnější, automatizovanější, rychlejší, nicméně dražší alternativou se jeví bezkontaktní metody měření [2], [3]. Používané bezkontaktní metody měření pro tuto specifickou aplikaci jsou založené buď na principu TOF (time of flight), nebo na principu aktivní blízké fotogrammetrie [3]. Běžné fotogrammetrické systémy tu selhávají kvůli vysoké teplotě samotného výkovku dochází k záření jeho povrchu [3]. Toto záření má odlišné vlastnosti než viditelné světlo, způsobuje rozmazání snímku výkovku a interferuje s paprsky projektorů aktivních systémů, je tedy nutné použít spektrálně selektivní metodu. 1 1.1 Obr. 1-1 Schéma použití systému LaCam od společnosti Ferrotron krok 1) znázorňuje snímání výkovku, kork 2) automatickou identifikaci výkovku, krok 3) vyhodnocení dat z měření (přímost jeho osy), krok 4) znázorňuje vyrovnání výchylky osy tříbodovým lisem [4] 15
ÚVOD Ostré fotografie objektů o vysoké teplotě lze ale pořídit i běžnými kamerami s CCD čipy za použití barevného filtru propouštějícího světlo o vlnových délkách blízkých infračervenému záření [5]. Tento poznatek ukazuje možný potenciál měřícího systému založeného na principu pasivní fotogrammetrie pro měření rozměrové přesnosti rozžhavených součástí. Takový systém by byl ve srovnání se systémy založenými na TOF nebo aktivní fotogrammetrii výrazně levnější. 1.2 Představení problému Na Ústavu Konstruování vznikl návrh fotogrammetrického systému využívající kamery s CMOS čipy k měření přímosti osy rotačně symetrických výkovků, viz Obr. 1-2 [2]. Systém je navržen s důrazem na minimální pořizovací náklady, rychlost a jednoduchost měření a měl by být levnější a jednodušší alternativou ke stávajícím systémům pro měření rozměrové přesnosti výkovků přímo v procesu výroby. Kamery snímají výkovek z radiálního směru, obrazové osy svírají přibližně pravý úhel. Obraz je vyhodnocován pomocí aplikace navržené v prostředí výpočetního softwaru MATLAB, je snímána silueta objektu. Tento systém byl zatím použit pouze v laboratorních podmínkách při měření rotačně symetrických ocelových polotovarů za studena i za tepla. Při testování bylo dosaženo uspokojivých výsledků. Fotogrammetrický systém je nicméně stále ve fázi vývoje, používá pouze základní metody kalibrace kamer, detekce hran nebo lokalizace středů referenčních značek, navíc je například během kalibrace nutný vstup uživatele, který prodlužuje celkovou dobu měření. Cílem práce je zdokonalit proces kalibrace kamer z hlediska přesnosti, spolehlivosti a celkové rychlosti tohoto procesu. Při výběru metod bude kladen důraz na přesnost a spolehlivost systému. Obr. 1-2 Testování fotogrammetrického systému navrženého na Ústavu Konstruování [1] 16
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY 2 SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY 2.1 Blízká fotogrammetrie Blízká fotogrammetrie zahrnuje metody interpretace a měření obrazu za účelem studia tvaru a polohy objektu z jeho fotografií [6]. Výsledkem fotogrammetrického měření objektu je jeho rekonstrukce v digitální formě (množina bodů v souřadném systému) nebo formě grafické. Blízká fotogrammetrie a její principy se uplatňují v mnoha oborech ve stavebnictví a architektuře, v inženýrství a průmyslu, v kriminalistice, medicíně, přírodních vědách nebo počítačovém vidění. Aby byla možná rekonstrukce a měření trojrozměrného objektu ze série dvourozměrných fotografií, je třeba popsat proces vznikání obrazu ve fotoaparátu z hlediska geometrie drah paprsků světla odrážejících se od objektu a dopadajících na fotografický čip nebo fotografický film. Při tomto popisu se využívá principu centrální projekce. V obecném případě je třeba znát jak orientaci kamery v prostoru (vnější orientace), tak její vnitřní geometrii (vnitřní parametry ohnisková vzdálenost, zkreslní objektivu apod.) proces získávání těchto údajů se nazývá kalibrace kamery. Paprsky nicméně určují pouze směr k danému bodu. Aby bylo možné získat polohu bodu v prostoru, je nutné, aby se daný bod vyskytoval na dvou nebo více fotografiích určí se jako průsečík dvou nebo více paprsků. Z hlediska metod zpracování obrazu představuje fotogrammetrie spojení mnoha oborů. Zasahuje do oboru fotografie, grafiky, zpracování obrazu, počítačového vidění nebo počítačově podporovaného projektování (CAD). 2.2 Vybrané metody zpracování digitálního obrazu Techniky zpracování obrazu umožňují přesné měření bodů obrazu bez zásahu uživatele nebo z obrázku extrahují pouze důležité informace (např. hrany) a tím snižují objem dat, se kterými se pracuje [6]. Metody pracují s černobílými obrázky, tedy s obrázky tvořenými odstíny šedé (dle jasu), nicméně není problém je aplikovat na barevné složky obrazu. Počet odstínů šedé záleží na kvantizační hloubce obrazu (pro černobílý obraz běžně 8 bitů 256 odstínů šedé). 2.2.1 Prahování Prahování je metoda rozdělení pixelů obrazu do tříd dle hodnoty jejich jasu [6]. V nejjednodušším případě jsou použity pouze dvě třídy, v obecném případě probíhá třídění dle vztahu 2.1: g 1 pro g T 1 g 2 pro g > T 1 g T g (g) =...... 2 (2.1) g n 1 pro g > T n 2 g T n 1 { g n pro g > T n 1 Kde g je algoritmem určená hodnta pixelu dle třídy, g n je hodnota jasu n-té třídy, pixely jsou do tříd rozdělovány podle prahové hodnoty T n, která je určena uživatelem, nebo například jako hodnota ležící uprostřed mezi lokálními extrémy v histogramu četností hodnot jasu pixelů (např. Otsuova metoda). Metoda je jednoduchá a výpočetně nenáročná, nicméně vykazuje špatné výsledky v komplexnějších scénách a neobsahuje žádný filtr vůči šumu (výsledek úpravy obrazu tímto algoritmem lze vidět např. na Obr. 2-1. 2 2.1 2.2 2.2.1 17
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Obr. 2-1 Příklad použití prahování, dělení do dvou tříd dle uživatelem určeného prahu 2.2.2 Detekce hran Hrany objektů na fotografii představují základní a nejdůležitější data obrazu pro měření geometrických elementů [6]. Je důležité je proto určit s co nejvyšší přesností a to na subpixelové úrovni. Hrany zachycené na snímku při bližším pohledu většinou tvoří pozvolný přechod mezi plochami s různými hodnotami jasu, pokrývající několik pixelů. Tento přechod lze chápat jako nekonstatní posloupnost stupňů šedé. Přesné určení hranového bodu lze realizovat pomocí metod subpixelové hranové interpolace, využívající nultou, první nebo druhou numerickou derivaci. Teoreticky může být hranový bod určen s přesností až na 0,015 pixelu pro 8 bitový obrázek. Používají se následují metody: Metoda zachování momentů metoda zachování momentů používá přímo hodnot pixelů, bez diferenciálního filtru. Jedná se o rychlou jednoduchou metodu přímo generující výsledek, bez nutnosti jakýchkoli dalších interpolací. Tato metoda je používána např. v algoritmu Zhou operator pro detekci elips [6]. Hrana je definována pomocí momentů 1., 2. a 3. řádu (rov. 2.2): n M i = 1 n g j i j=1 i = 1, 2, 3 (2.2) Kde m i je moment řady i-tého řádu, n je počet prvků řady, g j je hodnota jasu j-tého pixelu. Pomocí momentů jsou definovány následující parametry (2.3, 2.4, 2.5): σ 2 = M 2 M 1 2 (2.3) s = M 3 + 2M 1 3 3M 1 M 2 σ 3 (2.4) p 1 = 1 1 [1 + s 2 4 + s 2 ] (2.5) Pomocí parametru p 1 pak lze definovat přesnou polohu hrany x E dle vztahu 2.6: 18
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY x E = np 1 (2.6) Výsledek lze vidět na Obr. 2-2 červená barva. Metoda zero crossing tento princip využívá druhé numerické derivace dat. V okolí hrany má druhá derivace své lokální maximum a minimum. V okolí přechodu přes nulovou hodnotu mezi maximem a minimem jsou data proloženy přímkou (Obr. 2-2 - modře) nebo parabolou. Z průběhu získané funkce lze určit její průsečík s nulovou hodnotou. Metoda korelace tato metoda může pracovat s nultou, první i druhou derivací. Metoda vyžaduje vzor hrany, který je prokládán daty pomocí metody nejmenších čtverců. Na Obr. 2-2 je znázorněn příklad prokládání dat první derivace parabolou. Obr. 2-2 Metody subpixelové detekce hran červeně data nulté derivace a metoda zachování momentů, zeleně první derivace a metoda korelace, modře druhá derivace a metoda zero crossing 2.2.3 Hranové operátory Hranové operátory slouží k nalezení hran se subpixelovou přesností v rámci celého obrazu a tím dojde ke snížení množství informací v obraze a jeho binarzaci [7]. V současné době je k dispozici mnoho hranových operátorů založených na různých matematických principech. Operátory mohou být založené na první derivaci, z níž jsou vypočteny gradienty a podle nich určeny hrany (Robertsův, Sobelův nebo Prewittův operátor) nebo na druhé derivaci a principu zero crossing (Laplacian of Gaussian (LOG) operátor, Cannyho operátor). Testy operátorů ukazují, že nejlepších výsledků z hlediska přesnosti a odolnosti vůči šumu lze dosáhnout pomocí operátorů založených na druhé derivaci, zvláště Cannyho algoritmu, nicméně za cenu složitého výpočtu a tím dlouhého výpočetního času [7], [8]. Cannyho algoritmus využívá principů pravděpodobnosti pro eliminaci chyb a spojování hran. Před samotným procesem hledání hran je obraz vyhlazen filtrem, aby byl zredukován vliv šumu. Jádrem operátoru jsou nalezeny potenciální hranové body, jimž jsou přiřazeny odpovídající síly (pravděpodobnosti). Počet potenciálních hran je zredukován použitím spodní hraniční hodnoty pro sílu hrany. Takto získané hrany jsou tlusté (pravděpodobná poloha hrany silnější než daný práh může ležet i přes 2.2.3 19
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY několik pixelů vedle sebe) a nemusí být kontinuální následuje proces zeštíhlení hran a jejich pospojování. Výsledek lze vidět na Obr. 2-3. Obr. 2-3 Výsledek úpravy obrazu Cannyho operátorem červenou barvou jsou zvýrazněny nalezené hrany [6] 2.2.4 Interpolace hodnot pixelů Jedná se o metody určení hodnot jasu v obraze, v bodech, ležících mimo diskrétní síť pixelů (jejichž souřadnice leží v obrázku, ale jsou reálné, nikoliv přirozené), z jejich okolí [6]. Používají se zejména při rektifikaci 1 obrazu. Existují různé metody lišící se svým principem, výpočetními nároky a přesností. Nejpoužívanější metody interpolace lze dle jejich řádu rozdělit do následujících kategorií: interpolace nultého řádu metoda nejbližšího souseda ( nearest neigbour ) interpolace prvního řádu bilineární interpolace interpolace druhého řádu např. bikubická kovoluce Metoda nejbližšího souseda je nejjednodušší a nejrychlejší, nicméně vede k nejhorším vizuálním výsledkům znehodnocení některých detailů jak z hlediska vizuálního, tak z hlediska přesnosti. Pixelu výstupu, mající reálné souřadnice v původním obraze, je přiřazena hodnota jasu jeho nejbližšího souseda, což lze matematicky vyjádřit vztahem 2.7: g = s(round(x), round(y)) (2.7) Kde g je hodnota jasu daného pixelu výstupního obrazu, x a y jsou souřadnice v souřadném systému vstupního obrazu a s je funkce vstupního obrazu. Bilineární interpolace využívá k interpolaci hodnoty pixelu jeho okolí o rozměrech 2 2. Jedná se o vážený průměr přilehlých pixelů, kde jsou váhy určeny relativními obsahy pokrytými plochou pixelu výstupu. Hodnota pixelu výstupu lze vyjádřit rovnicí 2.8: g = F 1 s(i, j) + F 2 s(i + 1, j) + F 3 s(i, j + 1) + F 4 s(i + 1, j + 1) (2.8) Pro relativní obsahy (váhy) pak platí vztah 2.9: F 1 + F 2 + F 3 + F 4 = 1 (2.9) Kde g je výstupní hodnota interpolovaného pixelu, s je matice vstupního obrazu a i, j jsou indexy okolí odpovídající váhám F 1 F 4 dle Obr. 2-4. Bilineární interpolace je výpočetně nenáročná a generuje mírně vyhlazené interpolace dobré kvality. 1 Obecný proces transformace polohy všech obrazových prvků z jednoho souřadnicového systému do systému jiného 20
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Bikubická konvoluce využívá k interpolaci hodnoty pixelu jeho okolí o rozměrech 4 4. Jedná se o nejlepší a výpočetně nejnáročnější metodu interpolace výpočet trvá až 10 déle než u metody nejbližšího souseda. Tato metoda se používá pouze v případech, kde je potřeba mimořádně kvalitní výstup. Konvoluční okno je určeno vztahem 2.10: df(x) = x 3 2 x 2 + 1 pro x < 1 df(x) = x 3 + 5 x 2 8 x + 4 { pro 1 x < 2 (2.10) df(x) = 0 jiný případ Konvoluční okno je aplikováno dle vztahů 2.11 a 2.12: a(n) = s(i 1, j + n 2)df(dx + 1) + s(i, j + n 2)df(dx) +s(i + 1, j + n 2)df(dx 1) + s(i + 2, j + n 2)df(dx 2) (2.11) pro n = 1, 2, 3, 4 g = a(1)df(dy + 1) + a(2)df(dy) + a(3)df(dy 1) (2.12) + a(4)df(dy 2) Kde g je výstupní hodnota interpolovaného pixelu, s je matice vstupního obrazu a i, j jsou indexy okolí dle Obr. 2-4. Srovnání vásledků všech tří metod lze vidět na Obr. 2-5. Obr. 2-4 Znázornění okolí interpolovaného pixelu [6] Obr. 2-5 Srovnání metod interpolace vlevo metoda nejbližšího souseda, uprostřed bilineární interpolace, vpravo bikubická konvoluce [6] 21
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY 2.2.5 Geometrická rektifikace obrazu Jedná se modifikaci souřadnic a hodnot jasu pixelů vstupního obrazu za účelem vytvoření transformovaného obrazu výstupního (např. viz Obr. 2-8) [6]. Rektifikace zahrnuje například následující operace: translace a rotace změnu měřítka nebo velikosti korekci zkreslení objektivu projektivní rektifikaci - převod z centální projekce do paralelní (Obr. 2-8) mapování textur na CAD modely Transformace obvykle probíhá ve dvou fázích: transformace souřadnic pixelů interpolace hodnot jasu pixelů výstupního obrazu Pro běžné použití jako je translace, rotace, změna měřítka nebo zkosení je používán model afinní transformace [6]. Ta je dána vztahy 2.13: Y = Y 0 + m X x sin(α) m Y y cos(α + β) X = X 0 + m X x cos(α) m Y y (2.13) sin(α + β) Kde X 0 a Y 0 jsou souřadnice počátku nového souřádného systému, α je úhel rotace, β je úhel zkosení a m X respektive m Y jsou měřítka os x respektive y. Tyto parametry jsou znázorněny na Obr. 2-6. Obr. 2-6 Afinní rovinná transformace [6] Pro rektifikaci obrazu se obvykle používá tzv. nepřímá transformace (Obr. 2-7). Souřadnice výsledného obrazu se transformují inverzní transformací do souřadného systému vstupního obrazu, zjednodušuje se tak proces interpolace jasu pixelů. Výsledky interpolací se poté uloží do výstupního obrazu. Obr. 2-7 Přímá (černě) a nepřímá (červeně) geometrická rektifikace (x vstupní obraz, x výstupní obraz [6] 22
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Obr. 2-8 Příklad aplikace geometrické rektifikace obrazu zachycení historické fasády [6] 2.2.6 Měření bodových elementů v obraze Měřenými obrazovými body jsou v blízké fotogrammetrii zejména referenční, vazebné nebo poziční značky [6]. Ty bývají většinou kruhové v obraze se vlivem centrální projekce zobrazují jako elipsy. Jejich střed lze určit následujícími způsoby: Manuální měření objekt je měřen manuálně uživatelem na obrazovce. Tímto způsobem lze dosáhnout přesnosti břibližně na 0,2 pixelu [6]. Metoda těžiště jedná se o jednoduchou a rychlou metodu měření souřadnic středů středově symetrických objektů těžiště je považováno za střed takového obrazce. Jde o vážený průměr souřadnic pixelů v oblasti, matematicky lze vyjádřit vztahy 2.14: x 0 = n i=1 x itg i n i=1 tg i, y 0 = n i=1 y itg i n i=1 tg i 0 pro g < T,t = { 1 pro g T (2.14) Kde x 0 a y 0 jsou souřadnice středu oblasti určené touto metodou, x i a y i jsou souřadnice i-tého pixelu v oblasti, g i je hodnota jeho jasu, t je váha pixelu a T je práh (určí hranici značky) předpis v rovnici platí pro hledání těžiště bílé oblasti [6]. Zhouův elipsový operátor Zhouův operátor generuje od počátečního bodu sady horizontálních a vertikálních paprsků, na nichž jsou detekovány hrany. Z přímky je takto vytvořena úsečka, středy horizontálních i vertikálních úseček jsou poté proloženy přímkami, průsečík přímek tvoří střed elipsy. Schéma tohoto postupu lze vidět na Obr. 2-9 [6]. Hvězdicový elipsový operátor - z počátečního bodu vytvoří daný počet radiálních paprsků, mířících do všech směrů. Podél těchto paprsků jsou detekovány hrany. Detekovanými hranami je proložena rovnice elipsy. Z rovnice elipsy je poté určen její střed, případně další parametry. Obecná rovnice elipsy má tvar dle vztahu 2.15 [9]: Ax 2 + Bxy + Cy 2 2 (2Ax 0 + By 0 )x (2Cy 0 + Bx 0 )y + Ax 0 (2.15) + Bx 0 y 0 + Cy 2 0 = 1 Kde A, B, C jsou parametry elipsy, x 0 a y 0 jsou souřadnice středu elipsy a x a y jsou kartézské souřadnice bodů elipsy. Parametry elipsy jsou definovány vztahy 2.16 [9]: A = cos2 (α) a 2 + sin2 (α) b 2 B = 2 cos(α) sin(α) ( 1 a 2 1 b 2) C = sin2 (α) a 2 + cos2 (α) b 2 (2.16) 2.2.6 23
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Kde α je natočení elipsy, a je hlavní a b vedlejší poloosa. Metoda těžiště dosahuje výborných výsledků při hledání středu malých oblastí (i méně než 5 pixelů v průměru), kde by ostatní algoritmy selhávaly [6]. Při detekci větších objektů nicméně nedosahuje takové přesnosti, jako jiné metody. Elipsové operátory hvězdicový a Zhouův patří mezi nejpřesnější metody určení středů elips, nicméně pro jejich aplikaci je nutné mít kvalitní obraz kalibračních značek, jejich průměr by měl být dle Obr. 2-10 vyšší než při použití ostatních algoritmů (ideálně 15 až 25 pixelů, při dalším zvyšování průměru už nedochází k dalšímu zlepšení přesnosti). Jsou také výpočetně náročnější než ostatní metody a potřebují výchozí hodnotu pro souřadnice středu, která leží uvnitř elipsy. Z těchto operátorů je spolehlivější a přesnější hvězdicový operátor. Obr. 2-9 Elipsové operátory schéma hvězdicového a Zhouova operátoru [6] Obr. 2-10 Srovnání oblasti použitelnosti a přesnosti metod měření středů elips v obraze vodorovná osa znázorňuje průměr hledaného bodu v pixelech, svislá osa pak přesnost detekce polohy středu v souřadném systému je porovnána metoda těžiště ( centroid ), metoda prokládání obrazu nejmenšími čtverci ( least-squares ) a elipsové operátory Zhouův a hvězdicový ( ellipse operator ) [6] 24
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY 2.3 Analytické metody kalibrace kamer V rámci kalibrace kamer, tedy zjišťování jejich vnější orientace a vnitřních parametrů, probíhají následující procesy [6]: extrakce informací z obrazu (referenční značky, vázací body, referenční vzdálenosti, geometrické elementy) měření získaných obrazových bodů pro kalibraci kamery (značky, body atd.) výpočet vnitřních parametrů a vnější orientace kamery dle analytické metody kalibrace Dle použití se dělí metody kalibrace kamer na kalibraci jednosnímkovou, kalibraci stereopáru a kalibraci vícesnímkovou. Rešerše se vzhledem k zaměření práce zaměřuje na možnosti jednosnímkové kalibrace, případně kalibrace stereopáru. 2.3.1 Základní rovnice kalibrace kamery Základní rovnice kalibrace kamery zahrnuje celkem 6 parametrů vnější orientace souřadného systému kamery (vnějších parametrů kamery) vůči globálnímu souřadnému systému, je založená na rovnicích kolinearity a vyjadřuje transformaci z globálního souřadného systému do souřadného systému snímku [6]. Jako model kamery je použit model dírkové komory, založený na centrálním promítání. Vnější a některé vnitřní parametry kamery, ze kterých odvození rovnic vychází, jsou znázorněny na Obr. 2-11. 2.3 2.3.1 Obr. 2-11 Znázornění parametrů vnějších a některých vnitřních parametrů kamery [6] Globální souřadný systém X, Y, Z je umístěn náhodně v prostoru. Souřadný systém kamery x, y, z má počátek ve středu promítání O, osa z je totožná s optickou osou kamery, osy x a y jsou rovnoběžné s hranami snímku. Vektor X0 symbolizuje posunutí z počátku globálního souřadného systému do souřadného systému snímku. Rotace ω, φ, κ jsou po řadě rotace okolo os X, Y, Z z globálního souřadného systému do souřadného systému kamery. 25
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Bod P respektive bod P je bod objektu, respektive bod obrazu, na který je bod P promítnut. Vektor X resp.x znázorňuje posunutí do zobrazováného bodu P z počátku globálního souřadného systému respektive souřadného systému kamery. Vektor x znázorňuje posunutí z počátku souřadného systému kamery do bodu snímku P, nejsou uvažovány vlivy nedokonalosti optické soustavy. Rovina snímku je od počátku souřadného systému kamery posunuta o záporný parametr c (ohnisková vzdálenost). H je tzv. principální bod (bod, kde optická osa protne rovinu snímku). Transformace z globálního souřadného systému do souřadného systému kamery je dána rovnicí 2.17: X = X 0 + mrx (2.17) Kde m je měřítko snímku - poměr vzdálenosti v obrazu (její složka rovnoběžná s rovinou obrazu) a odpovídající zobrazené vzdálenosti ve snímku, R je matice rotace vytvořená z úhlů ω, φ a κ. Po vyjádření x a dosazení možných imperfekcí vzniklých nedokonalostmi optiky a vnitřní geometrie kamery vypadá rovnice následovně (2.18): x x 0 Δx = 1 m R 1 (X X 0 ) (2.18) Kde vektor x znázorňuje reálné posunutí ze středu promítání kamery do bodu P, zatížené chybou zobrazení, x 0 je vektor posunutí ze středu snímku do principálního bodu H = [x 0, y, z ] a Δx je vektor deformací vzniklý nedokonalostmi optiky 0 v daném bodě. Rovnici lze zapsat ve tvaru rov. 2.19: x x 0 Δx [ y y 0 Δy ] = 1 r 11 r 21 r 31 X X 0 m [ r 12 r 22 r 32 ] [ Y Y 0 ] (2.19) z r 13 r 23 r 33 Z Z 0 Kde z = c, tedy záporně vzatá ohnisková vzdálenost. Po úpravách a vyjádření jsou odvozeny následující výsledné rovnice transformace mezi souřadným systémem snímku a souřadným systémem globálním (základní rovnice blízké fotogrammetrie rovnice 2.20): x = x 0 + Δx + z r 11(X X 0 ) + r 21 (Y Y 0 ) + r 31 (Z Z 0 ) r 13 (X X 0 ) + r 23 (Y Y 0 ) + r 33 (Z Z 0 ) y = y 0 + Δy + z r (2.20) 12(X X 0 ) + r 22 (Y Y 0 ) + r 32 (Z Z 0 ) r 13 (X X 0 ) + r 23 (Y Y 0 ) + r 33 (Z Z 0 ) Rovnice jsou řešeny přiřazováním známých prostorvých souřadnic referenčních značek souřadnicím jejich obrazu ve snímku. Každá značka poskytne 2 použitelné podmínky. 2.3.2 Popis vnitřní geometrie kamery Vnitřní geometrie kamery zahrnuje parametry lineární, které byly představeny v předchozí kapitole (ohnisko, principální bod snímku 2 ), ale také odchylky od teoretického modelu centrálního zobrazení (Obr. 2-12) způsobené nedokonalostmi 2 Formulace ohnisko a principální bod snímku, nikoli kamery je použita záměrně. Přestože by se mohlo zdát, že tyto parametry jsou pro danou kameru při daném nastavení kontantní, většina kamer vykazuje nestálost těchto hodnot, tedy nestálost vnitřní geometrie, v jednotlivých snímcích například díky pohybu samotného fotografického čipu, ke kterému dochází i vlivem obyčejného manuálního zacházení [10]. Děje se tak i u profesionálních zrcadlovek používaných pro fotogrammetrické aplikace. Pohyb čipu je způsoben řešením uchycení čipu v digitálních kamerách. 26
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY objektivu (radiální, tangenciální zkreslení) nebo afinní odchylky vzniklé nekolmostí fotografického čipu na optickou osu objektivu [6]. Obr. 2-12 Schéma reálného zobrazení bodu P na obrazový bod P O je střed zobrazení, c je ohnisková vzdálenost, M je střed snímku, x, y, z je souřadný systém snímku, H je principální bod, x p a y p jsou reálné souřadnice bodu P, vektor x směřuje do teoretických souřadnic obrazu bodu P, Δr, skládající se ze složek Δx a Δy, je posunutí v důsledku zkreslení [6] Radiální zkreslení obrazu je charakterizováno posunem obrazových bodů v radiálním směru od bodu principálního (viz Obr. 2-13). Matematicky ho lze po rozepsání do Taylorova polynomu a úpravách vyjádřit rovnicemi 2.21 [6]: Δx rad = x K 1 r 2 + x K 2 r 4 + x K 3 r 6 + Δy rad = y K 1 r 2 + y K 2 r 4 + y K 3 r 6 (2.21) + Kde r je vzdálenost daného obrazového bodu od bodu pricípálního dle 2.22: r = x 2 + y 2 (2.22) Dále Δx rad a Δy rad jsou chyby vzniklé radiálním zkreslením, K 1, K 2, K 3 jsou konstanty typické pro daný objektiv a zaostření a x a y jsou souřadnice bodu obrazu nezatížené chybou. Pro méně přesné aplikace je použit pouze první člen Taylorova rozvoje, nejnáročnější aplikace používají první 3 členy [6]. Příklad vlivu radiálního zkreslení lze vidět na Obr. 2-13. Radiální zkreslení je obvykle nejvýznamnější složkou celkového zkreslení v důsledku nedokonalostí vnitřní geometrie kamery, ostatní složky bývají v méně přesných aplikacích zanedbávány [6]. Obr. 2-13 Vlevo příklad deformace obrazu vlivem radiálního zkreslení osy x a y tvoří souřadnicový systém čipu fotoaparátu, čeveně vyznačená posunutí - korekce, vpravo korekční křivka na vodorovné ose je vzdálenost obrazového bodu od bodu principálního v mm, na svislé pak velikost radiálního zkreslení v μm [6] 27
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Tangenciální zkreslení je způsobeno hlavně nekolinearitou optických os čoček objektivu. Zkreslení lze vyjádřit rovnicemi 2.23 [6]: Δx tan = B 1 (r 2 + 2x 2 ) + 2B 2 x y Δy tan = B 2 (r 2 + 2y 2 (2.23) ) + 2B 1 x y Kde r je určeno rovnicí 2.22, Δx tan a Δy tan jsou chyby vzniklé tangenciálním zkreslením, B 1, B 2 jsou konstanty tangenciálního zkreslení a x a y jsou souřadnice bodu obrazu nezatížené chybou. Příklad vlivu tangenciálního zkreslení lze vidět na Obr. 2-14. Obr. 2-14 Příklad deformace obrazu vlivem tangenciálního zkreslení osy x a y tvoří souřadnicový systém čipu fotoaparátu, čeveně vyznačená posunutí korekce [6] Afinní zkreslení může být způsobeno nekolmostí čipu fotoaparátu na optickou osu objektivu nebo různými měřítky souřadnicových os snímku. Zkreslení lze vyjádřit rovnicemi 2.24 [6]: Δx aff = C 1 x + C 2 y (2.24) Δy aff = 0 Kde Δx aff a Δy aff jsou chyby vzniklé afinním zkreslením, C 1, C 2 jsou konstanty afinního zkreslení a x a y jsou souřadnice bodu obrazu nezatížené chybou. Příklad vlivu afinního zkreslení lze vidět na Obr. 2-15. Obr. 2-15 Příklad deformace obrazu vlivem afinního zkreslení osa x a y tvoří souřadnicový systém čipu fotoaparátu, čeveně vyznačená posunutí korekce [6] Celková odchylka od modelu středového promítání je určena dle následujících rovnic, sumou kompenzací zmíněných vlivů, nejsou-li zanedbány, dle rov. 2.25 [6]: Δx = Δx rad + Δx tan + Δx aff Δy = Δy rad + Δy tan + Δy (2.25) aff 28
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY 2.3.3 Korekce zkreslení obrazu v důsledku nedokonalostí geometrie kamery Pokud jsou známy vnitřní parametry kamery včetně parametrů zkreslení v důsledku nedokonalostí kamery, je možné provést korekci snímku tak, aby souřadnice bodů snímku lépe odpovídaly modelu středového zobrazení. Vzhledem k závislosti složek zkreslení obrazu na zkreslením nezatížených souřadnicích bodů ve snímku a vzhledem k tomu, že neexistuje přímé analytické řešení těchto rovnic, je nutné korekci zkreslení provádět iteračně [6]. Korekci lze provést například způsobem, uvedeným vztahem 2.26, využívající 2 iterací [11]: x = x Δ(x Δ(x )) (2.26) Kde x jsou souřadnice korigovaných obrazových bodů, x jsou souřadnice obrazových bodů zatížené zkreslením a Δ je funkce reprezentující zkreslení v jednotlivých bodech. Nepřesnost po dvou iteracích obvykle dosahuje maximálně 0,1 pixelu [11]. Pokud je třeba vyšší přesnost, je nutné použít více iterací. 2.3.4 Přímá lineární transformace Jedná se o lineární řešení základních rovnic fotogrammetrie (2.20), lze vypočítat pouze lineární parametry kamery, nelineární parametry kamery jsou zanedbány [6]. Jde o přímé určení parametrů kamery ze soustavy lineárních rovnic. Pro určení orientace kamery podle tohoto algoritmu je třeba znát úplné prostorové souřadnice minimálně 6 referenčních značek v obrazu (značky nesmí ležet v rovině). Algoritmus nepotřebuje počáteční hodnoty pro své řešení, je rychlý a jednoduchý. Je často používán pro výpočet počátečních hodnot pro iterační řešení např. prostorové resekce. Nevýhodou je zmíněné zanedbání nelineárních parametrů kamery. Úprava základních rovnic blízké fotogrammetrie pro tuto metodu vychází z odstranění závislosti členů matice rotace, členy matice rotace tedy vystupují jako 9 nezávislých parametrů. Rovnice vypadají po úpravách následujícím způsobem (rovnice 2.27) [6]: x = L 1X + L 2 Y + L 3 Z + L 4 L 9 X + L 10 Y + L 11 Z + 1 y = L 5X + L 6 Y + L 7 Z + L (2.27) 4 L 9 X + L 10 Y + L 11 Z + 1 Kde X, Y a Z jsou prostorové souřadnice referenčních bodů, x a y jsou souřadnice obrazu referenčních bodů ve snímku, L 1 až L 11 jsou parametry. Pokud je referenčních značek v obrazu více než 6, soustava rovnic nemá analytické řešení, její řešení je odhadováno metodou lineárních nemenších čtverců. Po zjištění parametrů transformace jsou z těchto parametrů určeny lineární (nebo linearizované) parametry kamery: Principální bod, ohnisková vzdálenost, souřadnice středu zobrazení a matice rotace. 2.3.5 Prostorová resekce Jedná se o iterační linearizované řešení základních rovnic fotogrammetrie rovnic 2.20. Způsob řešení je podrobně uveden v literatuře [6] - rovnice jsou řešeny algoritmy pro řešení problému nelineárních nejmenších čtverců. Výhodou tohoto řešení je, při dostatečném rovnoměrném prostorovém rozmístění referenčních značek, možnost výpočtu, kromě parametrů polohy a lineárních parametrů kamery (jako je ohnisková vzdálenost nebo principální bod), také nelineárních parametrů kamery a to z jediného snímku. Tato výhoda algoritmu je klíčová např. pro aplikace, kde je použita kamera s neznámou nebo nestálou vnitřní geometrií (amatérské kamery). Nevýhodou metody 2.3.3 2.3.4 2.3.5 29
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY je delší výpočetní čas a nutnost použití počátečních hodnot pro výpočet (určených například pomocí přímé lineární transformace, počáteční hodnoty nelineárních parametrů kamery lze pro normální objektivy volit nulové). Tato metoda je základem pro algoritmus vícesnímkové samokalibrace bundle adjustment. 2.3.6 Kvalita kalibrace kamer Známe-li parametry zobrazení z globálního souřadného systému do souřadného systému snímku, respektive všechny uvažované vnitřní i vnější parametry kamery, lze body v prostoru promítnout na čip fotoaparátu a porovnat tyto souřadnice se souřadnicemi změřenými přímo ve fotografii [12]. V ideálním případě by mělo dojít ke shodě těchto souřadnic, v praxi jsou souřadnice nicméně zatíženy chybou. Chybu lze vyjádřit rovnicemi 2.28 a 2.29: dx = x F x (X 0, Y 0, Z 0, ω, φ, κ, x 0, z, Δx, X, Y, Z) dy = y F y (X 0, Y 0, Z 0, ω, φ, κ, y 0, z, Δy (2.28), X, Y, Z) d = dx 2 + dy 2 (2.29) Kde funkce F x a F y značí pravou stranu rovnic 2.20, po dosazení tedy dostaneme reprojekci bodů do roviny obrazu. Odchylky dx dy (složky vektoru d ) vyjadřují vzdálenost obrazových bodů od jejich reprojekcí v osách x a y. Kvalitu kalibrace pak lze vyjádřit jako délku vektoru d. 2.3.7 Kalibrace steropáru Ke kalibraci stereopáru lze přistupovat stejně jako k jednosnímkové kalibraci, tedy určením absolutní polohy každé kamery v prostoru pomocí referenčních bodů, druhým přístupem je určení polohy kamer stereopáru vůči sobě a poté určit polohu tohoto svázaného systému v prostoru pomocí referenčních bodů [6]. Druhou metodu lze použít za předpokladu, že se snímky překrývají alespoň v 50 % zabírané plochy [6]. Pro určení relativní polohy kamer se využívá tzv. vázacích bodů. Vázací body jsou jakékoli body v prostoru zachycené na obou snímcích, není nutné znát jejich přesné souřadnice. Tyto body, vyskytující se na obou snímcích, je nutné přiřadit k sobě. Svázání polohy kamer stereopáru je realizováno pomocí vazeb koplanarity, viz rovnice 2.32, jedná se o minimalizaci determinantu, který vyjadřuje objem rovnoběžnostěnu, jehož strany jsou vektory b, r a r (definovány rovnicemi 2.30, 2.31 a 2.33). Minimalizace je řešena metodou nelineárních nejmenších čtverců, detailní řešení je uvedeno v literatuře [6]. Pro účely svázání obrazů kamer je zaveden modelový souřadný systém, viz Obr. 2-16 a rovnice 2.30. Pro svázání kamer je třeba minimálně 5 vázacích bodů. Body musejí být rozprostřeny rovnoměrně po oblasti, kde se snímky překrývají a nesmějí ležet na válcové ploše, která by zároveň protínala střed promítání kamer. Poloha relativního souřadného systému v systému absolutním se poté určí pomocí bodů referenčních, pro určení absolutní polohy systému jsou třeba 3 referenční body, mohou být totožné s body vázacími. 30
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Obr. 2-16 Znázornění modelového souřadného systému kamer xm, ym, zm počátek je umístěn do středu promítání jedné z kamer [6] Následující rovnice jsou odvozeny pro případ, že dominantní složkou vektoru základny b je složka bx, pro každý bod lze psát [6]: x m1 = 0 ω 1 = 0 y m1 = 0 φ 1 = 0 z m1 = 0 κ 1 = 0 x m2 = bx ω 2 (2.30) y m2 = by φ 2 z m2 = bz κ 2 bx = 1 (2.31) 1 x 1 x 2 G = by y 1 y 2 = 0 bz z 1 z 2 (2.32) Kde: b r 1 r 2 z 2 a 11 a 12 a 13 x 2 [ y 2 ] = [ a 21 a 22 a 23 ] [ y 2 ] z a 31 a 32 a 33 2 z 2 (2.33) r 2 A x 2 Kde x m1, y m1, z m1 a x m2, y m2, z m2 jsou středy promítání kamer v modelovém s. s., ω 1, φ 1, κ 1 a ω 2, φ 2, κ 2 jsou natočení souřadných systémů kamer vůči souřadnému systému modelovému. Vektor b, tvořící základnu stereopáru, je volen v měřítku tak, aby složka bx byla rovno 1. Souřadnice x 1, y 1, z 1 respektive x 2, y 2, z 2 jsou souřadnice vázacích bodů v 1., respektive 2. snímku (střed souřadného systému snímku je zde v principálním bodu, z 1 respektive z 2 je záporně vzaté ohnisko prvního repsektive druhého snímku), matice A je matice rotace vytvořená z úhlů ω 2, φ 2, κ 2, což jsou rotace podél os x, y, z. Funkce G je minimalizovaná funkce, tuto funkci lze psát pro kterýkoli vazebný bod. Minimalizace je provedena metodou nelineárních nejmenších čtverců. Algoritmus pro výpočet potřebuje počáteční hodnoty. 31
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Po nalezení globálního minima následuje rekonstrukce vazebných bodů v modelovém souřadném systému. Vychází se z rovnic měřítka (rov. 2.34), odkud jsou eliminovány modelové souřadnice, výsledkem jsou rovnice 2.35 [6]. x m = y m = z m = λ x 1 y 1 z 1 x m bx x 2 = y m by y 2 = z m bz z 2 = µ (2.34) Odkud: λ = bxz 2 bzx 2 x 1 z 2 z 1 x 2 µ = bxz (2.35) 1 bzx 1 x 1 z 2 z 1 x 2 Modelové souřadnice jsou pak dány rovnicemi 2.36 a 2.38 [6]: x m = λx 1 z m = λz 1 (2.36) y m1 = λy 1 y m2 = by + µy 2 (2.37) y m = y m1 + y m2 (2.38) 2 py m = y m2 y m1 (2.39) Kde x m, y m, z m jsou souřadnice vazebných bodů v modelovém souřadném systému. Díky nepřesnostem měření existují 2 řešení pro souřadnice vazebných bodů ve směru osy y m (rovnice 2.37). Souřadnice y m1, respektive y m2 jsou rekonstrukce vazebných bodů z první, respektive druhé kamery. Rozdíly py m (rovnice 2.39) těchto souřadnic, které vajadřují paralaxu ve směru osy y, tedy neschopnost paprsků z jednotlivých kamer se protnout v jednom bodě, reflektují kvalitu určené relativní orientace, nicméně se jedná o rozdíly souřadnic v modelovém souřadném systému. Tento rozdíl lze převést do měřítka globálního souřadného systému pomocí rovnice 2.40 [6]: py pj = z py z mj (2.40) mj Kde py pj jsou hledané rozdíly, index j je index vazebného bodu. Vyjádření kvality relativní orientace v měřítku globálního s. s. s pyp lze pak vypočítat dle vztahu 2.41 [6]: s pyp = 1 n 2 py pj Kde n je celkový počet vazebných značek. n i=1 (2.41) 2.4 Kódované kalibrační značky Kódované kalibrační značky mohou být použity k automatizování procesu kalibrace kamer, kde je například potřeba identifikovat referenční body. Značky se skládají ze středu značky a obrazce sloužícího její k identifikaci. Kalibrační značky musejí splňovat následující požadavky[6]: neměnnost kódu v závislosti na pozici, rotaci a velikosti značky neměnnost kódu v závislosti na perspektivním zkreslení algoritmus dekódování musí být dostatečně robustní a rychlý přesně měřitelný střed značky 32
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY dostatečné množství unikátních značek minimální rozměr značky 2.4.1 Typy kódovaných kalibračních značek Kódované kalibrační začky mohou být kódovány na principu čárového kódu (horní řada značek na Obr. 2-17), kdy jsou značky kódovány černými nebo bílými poli (bity), nebo na principu série bodů unikátně rozmístěných v lokálním souřadném systému kalibrační značky (Obr. 2-17, spodní řada značek) [6]. Alfanumericky kódované kalibrační značky vykazují oproti výše jmenovaným menší spolehlivost a dekódování je výpočetně náročnější. Střed značky může být určen kruhovým nebo čtvercovým elementem (čtvercové jsou často používané zejména v aplikacích spojených s rozšířenou realitou z jejich 4 rohů lze přibližně určit polohu kamery) [13]. Mezi často používané značky pro fotogrammetrické systémy jednoznačně patří značky kruhové typu barcode konkrétně třetí geometrie z leva na prvním řádku na Obr. 2-17 podobnou geometrii používá systém TRITOP [14], scanreference [15], MoveInspect technology DPA [16] nebo rhinophoto [17]. 2.4.1 Obr. 2-17 Kódované kalibrační značky [6] 2.4.2 Počet kruhových kalibračních značek typu barcode Problém určení maximálního počtu unikátních kruhových kalibračních značek typu barcode v závislosti na počtu bitů (Obr. 2-17, třetí typ z leva) je analogický k tzv. problému náhrdelníku ( necklace problem ), kdy je náhrdelník pevně položen v rovině a lze se na něj dívat jen z jedné strany nelze ho převrátit, stejně jako nelze převrátit kalibrační značku (je potištěná pouze jedna její ). Maximální možný počet unikátních kalibračních značek N v závislosti na počtu bitů n je tedy dán předpisem 2.42 [18]: γ(n) N(n) = 1 n φ(d i)2 i=1 n d i (2.42) Kde d i jsou dělitelé čísla n, γ(n) je počet dělitelů čísla n a φ(x) je Eulerova funkce. Řešení předpisu pro různá n lze vidět v Tab. 2-1: 2.4.2 Tab. 2-1 Maximální počet unikátních kruhových kalibračních značek typu barcode v závislosti na počtu bitů [18] n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 N(n) 2 3 4 6 8 14 20 36 60 108 188 352 632 1182 2192 33
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY 2.4.3 Generování knihoven kalibračních značek S. Garrido-Jurado se ve svém článku [13] zabýval návrhem čtvercových kódovaných kalibračních značek a metodami jejich rozeznání s důrazem na maximální spolehlivost. Design značek byl zvolen dle Obr. 2-18, počet bitů značek byl volen uživatelem. Byl vyvinut generátor knihoven, který měl za účel výběr ideální množiny o počtu prvků, který byl zadán uživatelem dle potřeby scény. Prvky ideální množiny splňovaly následující kritéria: maximální odlišení jednotlivých značek v rámci knihovny od sebe maximální počet přechodů bitů (maximální počet změn barvy v rámci každého řádku kalibrační značky) Generátor značek n n pracoval následujícím způsobem [13]: Vygenerování n semi-náhodných vektorů o délce n složených z prvků 0 a 1 (všechny řádky kalibrařní značky) vektory s vyšším počtem bitových přechodů mají vyšší pravděpodobnost generace. Uložení vektorů na řádky do čtvercové matice (kalibrační značka). Vygenerování všech 4 různých rotací kalibrační značky ( rotace zde vznikne otočením matice o 90 º). Porovnání všech 4 rotací se všemi prvky již uloženými v knihovně. Výpis počtu rozdílných bitů (Hammingovu vzdálenost) vůči všem prvkům v knihovně pro každou rotaci, výběr nejnižší hodnoty. Porovnání nejnižší hodnoty s prahovou hodnotou jestliže je Hammingova vzdálenost vyšší než prahová hodnota, pak se kalibrační značka uloží do knihovny. Cyklus běží znovu, pokud do knihovny již určitý počet kroků není uložena žádná značka, prahová hodnota je snížena o 1. Proces je ukončen, když počet prvků v knihovně dosáhne uživatelem zadaného počtu. Navržené značky dosahovaly vyššího rozlišení od sebe navzájem než nejlepší v současné době používané kódované kalibrační značky, s tím souvisí i vyšší spolehlivost dekódování takových značek. Výsledek práce autorů byl implementován do volně dostupné knihovny ArUco pro C++. Obr. 2-18 Příklady čtvercových kalibračních značek generovaných algoritmem vyvinutým ve článku [13] 2.5 Dekódování referenčních značek Přiřazení kódu kalibračním značkám je realizováno na základě kódu, kterým je kalibrační značka idetifikována. Typy kódů jsou popsány v kapitole 2.4.1. Rešerše se v této části zaměřuje na dekódování kruhových kalibračních značek typu barcode, které jsou z představovaných typů značek ve zmiňované kapitole nejpoužívanější. 2.5.1 Metoda dekódování kruhových kódovaných značek Li, Z. ve své práci [19] navrhuje metodu rozpoznávání 14 bitových kruhových kalibračních značek typu barcode. Navržený algoritmus začíná naskenováním okolí 34
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY středu kalibrační značky, skenování je uskutečněno v rozestupech po 5 º, je tedy získán 72 bitový kód. Ten je poté převeden na kód 14 bitový. Z předchozím algoritmem detekovaných elips v obraze jsou získány údaje o jejich geometrii délka hlavní a vedlejší poloosy a úhel natočení hlavní poloosy. Elipsa je inverzní afinní transformací převedena na jednotkovou kružnici, nulový úhel na jednotkové kružnici je označen jako úhel 1. Čárový kód je skenován z úhlu 1 jediným paprskem proti směru hodinových ručiček, v každém kroku je úhel posunut o 1 º (úhel je měřen na jednotkové kružnici). Krokování pokračuje, dokud není detekován přechod z bílé oblasti do černé. Úhel přechodu je označen jako starovní úhel. Skenování probíhá v binárním obraze, který je získán metodou prahování (metodu prahování využívá i knihovna ArUco). Ze startovního úhlu začíná skenování po směru hodinových ručiček. Hodnota prvního bitu je stanovena na 1. První krok je 7,5, každý další poté 5 º. Úhly jsou měřeny na jednotkové kružnici. V každém kroku je určena hodnota bitu. Tímto postupem je získán 72 bitový kód. Posledním krokem je převod 72 bitového kódu na 14 bitový. V 72 bitovém kódu jsou hledány skupiny 5 nul nebo jedniček v řadě, symbolizující 1 bit 14 bitového kódu. 2.5.2 Umělé neuronové sítě Jedná se o jeden z algoritmů často používaných v oboru umělé inteligence, sítě napodobují fungování neuronových sítí živočichů [20]. Používají se například k rozpoznávání prvků obrazu (rozpoznání ručně psaného textu, číslic, čárových kódů [21], objektu na obrázku,..), zvuku (rozpoznání mluveného slova), signálů, předvídání vývoje časových řad nebo seskupování prvků podle jejich chování. Příklad schématu neuronové sítě lze vidět na Obr. 2-19. 2.5.2 Obr. 2-19 Schéma neuronové sítě navržené pro rozpoznání ručně psaných číslic v obraze o rozměrech 28 28 pixelů - levá vrstva (sloupec) jsou vstupní neurony hodnoty pixelů vstupního obrazu, prostřední vrstva je tzv. skrytá vrstva, levá vrstva obsahuje výstupy, jsou použity neurony typu sigmoid [20] 35
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Umělé neuronové sítě jsou strukturovány do vrstev, všechny neurony v sousedních vrstvách jsou mezi sebou vzájemně spojeny. Každé spojení má svoji váhu, každý neuron svoji citlivost a práh citlivosti. Existují různé typy neuronů, dle jejich matematické funkce například sigmoid nebo perceptron. Nejčastěji používaný je typ sigmoid. σ(z) σ(z) Obr. 2-20 Znázornění neuronu a jeho matematických funkcí vlevo funkce sigmoidu, vpravo funkce perceptronu, do neuronu vstupují vstupy x1 x3, z neuronu vede výstup [20] Schéma neuronu a jeho možných matematických funkcí lze vidět na Obr. 2-20. Matematická funkce sigmoidu, respektive perceptronu je dána vztahem 2.43: 1 σ(z) (2.43) 1 + e z Respektive 2.44: 0 když z 0 σ(z) = { (2.44) 1 když z > 0 Kde z je určeno vztahem 2.45: z = w j x j + b j (2.45) kde σ(z) je výstupní hodnota neuronu o j vstupech, w j je váha vstupu x j, b je práh citlivosti neuronu. Jednotlivé váhy a prahy citlivosti neuronů jsou určeny procesem trénování neuronové sítě. Pro trénování sítě musí být vytvořena tréninková knihovna sada vstupů, k nimž jsou přiřazeny výstupy. Šířka a komplexnost tréninkové knihovny ovlivňuje spolehlivost neuronové sítě. Trénování probíhá iteračně, jsou navrhovány hodnoty vah a prahů citlivosti neuronů tak, aby suma chyb vyhodnocení všech prvků v tréninkové knihovně byla co nejmenší. Proces trénování sítí probíhá v některých aplikacích během celé délky jejich života na základě zpětných vazeb vyhodnocení. 36
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY 2.6 Původní řešení kalibrace kamer Kalibrace kamer v aplikaci vyvinuté Ing. Anetou Zatočilovou, Ph.D, kterou má za úkol tato práce vylepšit, je provedena jako jednosnímková (konfigurace měřícího systému je stručně uvedena v úvodu práce). Úkony v rámci kalibrace probíhají v následujícím pořadí [2]: Příprava testovací scény: Instalace kamer (obrazové osy musejí být přibližně kolmé a musejí směřovat radiálně do předpokládaného středu měřeného vzorku. Použitými kamerami jsou kamery Canon EOS 500D s objektivy s proměnnou ohniskovou vzdáleností. Vložení prizmat a měřeného vzorku podélná osa vzorku musí být kolmá na rovinu optických os objektivů. Rozmístění kalibračních značek ve scéně bylo použito až 20 nekódovaných kalibračních značek. Změření prostorových souřadnic značek systémem TRITOP. Samotná kalibrace: Odstranění radiálního zkreslení objektivu na základě uživatelem zadané konstanty k dle vztahu: s = r (1 + k r 2 ), kde s je korigovaná vzdálenost daného bodu od středu fotografie a r je vzdálenost nekorigovaná (filosofií je aplikace inverzního zkreslení), vztah i konstanta byly voleny na základě iteračně provedené minimalizace chyby polohy značek po zpětné transformaci, postup musel být proveden uživatelem 3, v případě použití kamer s pevnou vnitřní geometrií by tento iterační proces určení konstanty k měl být realizován pouze při instalaci systému a případné úpravě zaostření. Nalezení kalibračních značek v obraze obraz je převeden na binární pomocí metody prahování (hodnota prahu zadána uživatelem), odsud jsou poté vypsány spojité světlé oblasti a z nich vybrány oblasti eliptického tvaru požadované velikosti (potenciální kalibrační značky) podle následujících kritérií: - minimální obsah oblasti - maximální obsah oblasti - poměr obsahu oblasti a obsahu její konvexní obálky - poměr počtu pixelů eliptické oblasti počítané z poloos původní oblasti vůči počtu pixelů v původní oblasti Konkrétní hodnoty kritérií jsou nastaveny uživatelem. Určení souřadnic středů kalibračních značek ve snímku určeno metodou těžiště eliptické oblasti v obraze. Přiřazení plošných souřadnic kalibračních značek ve snímcích prostorovým souřadnicím kalibračních značek změřených systémem TRITOP tento úkon byl řešen vstupem uživatele. 2.6 3 Uživatel náhodně zvolil konstantu k, nechal proběhnout kalibraci a poté zpětnou transformaci kalibračních značek do roviny fotografického čipu. Byla vyčíslena chyba kalibrace, která vyjadřovala odchylku zpětně rekonstruovaných poloh značek od výchozích souřadnic. Uživatel zkusmo volil konstanty a tím tuto chybu minimalizoval. Autorem aplikace nicméně byla navržena metodika automatického provedení tohoto kroku popsané kroky podle návrhu by byly realizovány automaticky, nicméně tato metoda nebyla realizována. 37
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Aplikace analytické metody kalibrace kamer výsledkem je určení lineárních parametrů kamery. Pro interakci s uživatelem bylo vytvořeno dialogové okno (Obr. 2-21). Obr. 2-21 Dialogové okno pro nastavení parametrů kalibrace kamer kalibračním značkám na obou snímcích vlevo dole, respektive jejim 2D souřadnicím ve snímku (tabulka vlevo nahoře) jsou uživatelem přiřazeny jejich 3D souřadnice změřené systémem TRITOP (tabulka vlevo uprostřed), lze editovat prahové parametry převodu obrázku na binární práh, nebo kritéria pro vyhledávání eliptických oblastí v binárním snímku (tabulka vpravo nahoře), měnit lze i horizontální a vertikální velikost pixelu fotografického čipu kamery nebo koeficient radiálního zkreslení, výsledky kalibrace jsou umístěny v tabulce vpravo dole [1] 2.7 Aplikace kalibrace kamer v prostředí MATLAB Prostředí MATLAB nabízí dvě aplikace pro kalibraci kamer Single Camera Calibration App a Stereo Camera Calibrator [22], [23]. Účelem první zmíněné aplikace je kalibrace vnitřních parametrů jedné kamery. Aplikace je schopna vypočítat parametry radiálního zkreslení objektivu až do třetího členu Taylorova rozvoje. Kromě zkreslení radiálního lze kalibrovat i zkreslení tangenciální a afinní. Po výpočtu lze parametry zkreslení vypsat nebo uložit pro budoucí použití pro odstranění zkreslení snímku. Pro kalibraci kamery je využíváno pravidelného rovinného šachovnicového pole. Jiné druhy kalibračních polí nejsou podporovány, avšak lze použít funkce využívané aplikací samostatně a jako vstupy do nich použít libovolné souřadnice, například vygenerované uživatelem vytovřeným algoritmem. Tyto body však musí ležet v rovině. Aplikace je použitelná do zorného úhlu 95 stupňů. Doporučeno je použít pro kalibraci 10 20 snímků, minimálně však 3. Snímky by měly být pořízeny tak, aby bylo dosaženo rovnoměrného rozmístění bodů v objemu, v němž se bude nacházet objekt, který bude fotografován. Uživatelské rozhraní aplikace lze vidět na Obr. 2-22. 38
SHRNUTÍ SOUČASNÉHO STAVU POZNÁNÍ ODBORNÉ PROBLEMATIKY Obr. 2-22 Uživatelské prostředí aplikace Single Camera Calibration App v MathWorks Matlab vlevo lišta s importovanými snímky, uprostřed zobrazen vybraný snímek, kde lze vidět detekované body šachovnicového vzoru, vpravo nahoře pak sloupcový graf průměrných odchylek pixelů po rekalkulaci v jednotlivých snímcích a jejich průměrná hodnota, vpravo dole jsou pak znázorněny relativní polohy šachovnicových polí na jednotlivých snímcích vůči souřadnému systému kamery Kalibrace stereopáru funguje podobně jako kalibrace jedné kamery, také pracuje s šachovnicovým polem a jejím účelem je výpočet a export vnitřních i vnějších parametrů stereopáru, včetně parametrů nelineárních. 39
ANALÝZA PROBLÉMU A CÍL PRÁCE 3 ANALÝZA PROBLÉMU A CÍL PRÁCE 3.1 Cíl práce Cílem práce je optimalizace stávajícího řešení kalibrace kamer fotogrammetrického systému z hlediska přesnosti, rychlosti a uživatelské přívětivosti. Dílčí cíle diplomové práce: Provedení rešerše a volba vhodných metod Návrh softwaru v prostředí MATLAB Experimentální ověření funkčnosti softwaru z hlediska stanovených kritéri Fotogrammetrický systém pro kontrolu přímosti osy rotačně symetrických výkovků, jehož vylepšením se zabývá tato práce, pracuje pouze se základními metodami kalibrace kamer nebo měření souřadnic středů kalibračních značek. Cílem této práce je použít pokročilejší analytické metody kalibrace a výpočtu souřadnic středů elips, aby byl výstup kalibrace přesnější a použít robustnější metodu detekce elips v obraze, aby byl systém schopen spolehlivě pracovat i za špatných světelných podmínek. Zároveň je nutné celý proces kalibrace nejlépe plně automatizovat. S tím souvisí nutnost použití kódování kalibračních značek a algoritmu pro jejich automatické rozpoznávání, nutnost použití algoritmu, který vypočítá a automaticky kompenzuje zkreslení snímků nebo algoritmus detekce elips, jehož výkon bude co možná nejvíce invariantní vůči změně světelných podmínek nebo míry šumu. Výsledek bude ověřen z hlediska dosažené přesnosti, spolehlivosti a rychlosti. 3.2 Vymezení a nástin řešení problémů Řešení práce spočívá ve výběru a implementaci vhodných algoritmů, které nahradí stávající metody za účelem dosažení přesnějších a spolehlivějších výsledků kalibrace nebo nahrazení vstupu uživatele. Problémy kalibrace jsou následující: Nespolehlivá detekce elips v obraze, zejména ve špatných světelných podmínkách Nepřesné měření souřadnic středů elips Manuální rozpoznávání kalibračních značek, celková nustnost mnoha vstupů uživatele Nevyřešená metoda kalibrace nelineárních parametrů kamery, celkově nepřesná kalibrace kamer Výběr nových, vhodnějších, metod je realizován na základě následujících kritérií: Maximální přesnost Maximální spolehlivost, robustnost Maximální míra autonomie Mezi kritérii nijak výraznamně nefiguruje faktor rychlosti výpočtu, přesto bude v druhé řadě uvažován. Maximální doba celého měření i vyhodnocení byla stanovena v řádech minut na běžném počítači, tedy je možné použít i velice výpočetně náročné algoritmy. 3.2.1 Návrh kódovaných kalibračních značek a metody jejich detekce Volba typů kalibračních značek je omezena způsobem měření jejich polohy v prostoru systémem TRITOP. Kalibrační značky budou tedy kruhové, střed musí být bílý na černém pozadí. Jako vhodný systém kódování se jeví kód typu barcode (podobný, jako 40
ANALÝZA PROBLÉMU A CÍL PRÁCE využívá systém TRITOP) je jednoduchý a pro účely blízké fotogrammetrie je nejpoužívanější. Rovněž je výhodou možnost během experimentů použít kalibrační značky, které používá přímo systém TRITOP, nicméně jako alternativa bude z důvodu dosažení nejvyšší možné spolehlivosti dekódování značek vygenerována originální knihovna přesně s potřebným množstvím značek umístěných ve scéně (podobně jako v kapitole 2.4.3, aby bylo dosaženo maximálního rozlišení značek jak od sebe samotných, tak od okolí). S touto knihovnou budou nalezené značky porovnávány pomocí neuronových sítí (vyspělý a jednoduchý algoritmus, schopný řešit i velmi složité úkoly rozpoznávání byl zvolen kvůli jeho robustnosti). Kromě automatizace procesu bude kódování značek s sebou nést další výhodu, kterou je možná vyšší citlivost hledání elips - nalezená elipsa bez kódování bude na základě přiřazování kódu vyřazena, čímž se zabrání chybám kalibrace. 3.2.2 Návrh metody detekce elips a měření jejich středů Stávající řešení hledání elips využívající pevného uživatelem stanoveného prahu pro vytvoření binárního obrazu, ze kterého jsou detekovány elipsy, není příliš spolehlivé, obzvlášť ve špatných světelných podmínkách. Výsledek algoritmu je vysoce závislý na světelných podmínkách, práh je tedy nutné často manuálně upravovat. Detekce elips bude nyní probíhat na binárním obraze, který bude z původního obrazu vytvořen Cannyho hranovým operátorem, který by měl zajistit správné nalezení hran i za špatných světelných podmínek, případně velké urovně šumu v obraze. Elipsy budou detekovány podle podobných kritérií, jako jsou ty stávající velikosti, poměru obsahu oblasti a její konvexní obálky a nakonec podle míry podobnosti jejich tvaru elipse. Měření souřadnic středů elips bylo v rámci původního řešení prováděno metodou těžiště eliptické oblasti. Tato metoda bude nově použita pouze pro generování počátečních hodnot pro hvězdicový elipsový operátor, který je z prezentovaných algoritmů detekce elips nejpřesnější. Metoda těžiště bude sloužit pouze pro generování počátečních hodnot. Tomu musí být s ohledem na přesnost přizpůsoben i průměr kalibračních značek ten musí být volen tak, aby měly značky ve snímku průměr 15 až 25 pixelů. Jako metoda detekce hranic elipsy bude použita metoda zachování momentů z důvodu její přesnosti a jednoduchosti. Pro interpolaci honot pixelů ležících na jednotlivých paprscích operátoru bude použita metoda bikubické konvoluce díky vysoké kvalitě interpolovaných pixelů. 3.2.3 Volba analytické metody kalibrace kamer Kalibrace kamer v rámci současného řešení neumožňovala výpočet zkreslení způsobeného nedokonalostmi konstrukce kamery. Korekce byla původně provedena před spuštěním samotné kalibrace (nebyl brán v úvahu principální bod, konstanty byly stanoveny manuálně uživatelem, byl použit pouze první člen Taylorova rozvoje radiálního zkreslení). Pro výpočet parametrů kamery byla použita metoda přímé lineární transformace, která je schopna vypočítat pouze lineární parametry kamery. Strategie nového algoritmu kalibrace bude spočívat v přesném výpočtu nelineárních vnitřních parametrů kamery, který bude proveden pouze jednou při instalaci systému a následné aplikaci těchto určených hodnot při každém měření pro kompenzaci zkreslení snímků. Jako analytická metoda kalibrace se nabízí, vzhledem ke konfiguraci kamer systému, kalibrace stereopáru. 3.2.2 3.2.3 41
ANALÝZA PROBLÉMU A CÍL PRÁCE Pro výpočet parametrů zkreslení snímků bude implementována metoda prostorové resekce. S použitím předpokladu, že konstanty zkreslení snímků jsou v různých snímcích při stejném zaostření stejné, bude algoritmus zpřesněn dodáním mnoha vstupů z různých fotografií, respektive optimalizační úloha bude probíhat na mnoha kalibračních fotografiích zároveň, aby bylo dosaženo rovnoměrného hustého rozmístění kalibračních bodů v zorném poli, respektive v budoucím měřícím objemu. To by mělo zajistit maximální přesnost určených konstant. Fotografie mohou být pořízeny například z jednoho místa při otáčení kamery okolo její optické osy. Pro získání počátečních hodnot pro iterační řešení prostorové resekce v každém snímku poslouží metoda přímé lineární transformace, která je velmi robustní a rychlá. Získané konstanty zkreslení budou uloženy a používány pro korekci při každém měření. Jako kalibrační pole bude použito husté prostorové kalibrační pole tvořené kódovanými značkami, jejichž přesná poloha bude určena fotogrammetrickým systémem TRITOP, případně jiným. Po dokončení kalibrace nelineárních parametrů kamery bude většina značek odebrána a budou ponechány jen značky nutné pro algoritmus kalibrace kamer, který bude probíhat při každém měření velké množství značek v prostoru by mohlo překážet provozu výroby. Kalibrace kamer prováděná při každém měření s sebou nese výhodu, že poloha kamer vůči sobě nemusí být dokonale fixní, čehož by v průmyslovém prosotoru v tomto měřítku mohlo být dosaženo pouze obtížně. Samotná kalibrace, která bude probíhat během každého měření, bude probíhat následujícím způsobem metodou přímé lineární trasformace budou určeny počáteční hodnoty pro prostorovou resekci, která využije již získané přesně určené nelineární parametry kamery. Prostorová resekce přesně určí lineární parametry kamery a jejím výstupem jsou rovněž korigované souřadnice kalibračních značek v souřadném systému kamery. Tyto souřadnice poslouží jako vstup pro algoritmus kalibrace stereopáru, který zpřesní vnější parametry kamer systému. Jako alternativa navrženého postupu by mohla sloužit přímo aplikace softwaru MATLAB Single Camera Calibration App nebo Stereo Camera Calibrator. Nevýhodou těchto aplikací je nutnost použití v tomto případě velice velkého kalibračního šachovnicového pole v kombinaci s velkým počtem kalibračních snímků, aby byl kalibrován celý objem, ve kterém se může nacházet měřený objekt - kamery mají obrovské zorné pole, zabíraná plocha má být až 20 metrů široká. Kalibrační pole musí být navíc přesné a rovinné, rovněž by se obtížně převáželo. Další nevýhodou šachovncového kalibračního pole je pak nižší podmíněnost řešení oproti využití trojrozměrného kalibračního pole z toho vyplývá nutnost použití většího počtu kalibračních snímků. Aplikace rovněž nevyhovuje z důvodu překročení maximálního zorného úhlu kamery, kterou lze aplikací kalibrovat. Použití šachovnicového pole pro kalibraci nicméně má i výhodu - odpadá nutnost použití fotogrammetrického systému během instalace systému (nicméně je nutné vyrobit zmíněné šachovnicové pole). 42
MATERIÁL A METODY 4 MATERIÁL A METODY 4.1 Použitá technika 4.1.1 Použitý fotoaparát Pro testování navržených metod kalibrace kamer bude použita běžná digitální zrcadlovka s objektivem s pevným ohniskem. Parametry sestavy shrnuje Tab. 4-1. 4 4.1 4.1.1 Tab. 4-1 Parametry použité digitální zrcadlovky a objektivu [24] Tělo fotoaparátu Nikon D3000 Typ snímače CCD Rozlišení snímače [px] 3872 2592 (10,2 Mpx) Velikost čipu Objektiv Ohnisková vzdálenost 23,6 15,8 mm Nikon 50mm f/1,8 AF-S NIKKOR G 50 mm 4.1.2 Systém TRITOP Systém TRITOP je v práci použit jako referenční měřící systém nebo jako měřící systém pro určení poloh referenčních značek v prostoru. TRITOP je mobilní přesný optický měřící systém určený k měření polohy diskrétních bodů [14]. Využívá se pro účely kontroly kvality, deformační analýzy nebo digitalizace. Systém používá digitální zrcadlovku Nikon D300s s objektivem s pevnou ohniskovou vzdáleností, dále je zrcadlovka osazena bleskem a wifi modulem. Sada dále obsahuje měřítkové tyče, orientačních kříže a referenční značky. Součástí je rovněž software TRITOP. Systém používá 15bitové kruhové kódované kalibrační značky a také značky nekódované (bílý kruh na černém pozadí) různé velikosti, dle požadavků scény (viz Obr. 4-1, celkový počet kódovaných značek je 428, ideální průměr značky na snímku je 10 pixelů). Základním výstupem měření jsou souřadnice středů nekódovaných kalibračních značek v trojrozměrném souřadném systému. Měření v objemu 1 0,5 0,5 m může dosahovat přesnosti 0,015 mm, měření v objemu 10 5 5 m může dosahovat přesnosti 0,2 mm [25]. 4.1.2 Obr. 4-1 Fotogrammetrický systém TRITOP [26] 43
MATERIÁL A METODY 4.2 Metody Navržené metody budou voleny s primárním důrazem na přesnost a spolehlivost procesu kalibrace, sekundárně pak na rychlost procesu. Tab. 4-2 shrnuje původně použité metody a jejich náhradu. Tab. 4-2 Základní přehled původních metod použitých v rámci kalibrace kamer a jejich náhrad Původně použito Nahrazeno Úprava obrazu pro Prahování Cannyho hranový operátor detekci elips Měření souřadnic středů elips Metoda těžiště Hvězdicový elipsový operátor Kalibrační značky Kruhové, až 20 ks Kruhové kódované typu barcode Metoda dekódování kalibračních značek Rozpoznání uživatelem (vstup uživatele) Neuronová síť, porovnání s knihovnou (automatické) Určení zkreslení snímků Určeno uživatelem Prostorová resekce aplikovaná na sadu snímků Analytická metoda kalibrace kamer Přímá lineární transformace Kalibrace stereopáru 4.2.1 Návrh kalibračních značek Kalibrační značky jsou navrženy jako kruhové, typu barcode, jejich geometrie lze vidět na Obr. 4-2 stejnou geometrii používají kalibrační značky systému TRITOP. Rozměry jsou závislé na parametru a ten bude volen dle potřeby scény, tak, aby průměr středu značky v obraze byl 15-25 pixelů, dle oblasti použitelnosti elipsových operátorů (dle Obr. 2-10). Pro uložení unikátního kódu slouží mezikruží mezi černým kruhem, ohraničující bílý střed značky a černou čtvercovou plochou tvořící vnější hranici značky (na Obr. 4-2, oblast mezi kružnicemi o průměru 2a a 3a). Tato oblast je rovnoměrně rozdělena na výseče, jejichž počet odpovídá počtu bitů. Číslice kódu jsou do těchto výsečí ukládány, číslice 1 je symbolizována bílou výsečí, číslice 0 černou výsečí (příklad na Obr. 4-2). Obr. 4-2 Geometrie kalibrační značky v závislosti na parametru a (15bitová značka), kód odshora po směru hodinových ručiček - 010101010101010 Dle článku [13] je navržen algoritmus pro generování knihoven kódů kalibračních značek. Principem je výběr knihovny s právě potřebným počtem kalibračních značek, které nejlépe splňují následující 3 hlavní kritéria: Maximálně se odlišují samy od sebe z důvodu zamezení záměny kódů značek (maximalizace Hammingovy vzdálenosti mezi kódy značek, nutno brát v úvahu, že se jedná o cyklický kód, tedy nelze určit jeho počátek a konec). 44
MATERIÁL A METODY Maximálně se odlišují od nekódovaných značek, nebo od náhodných eliptických objektů ve scéně (od případu, kdy je celé kódované mezikruží bílé). Maximálně se odlišují od nekódovaných značek, nebo od náhodných eliptických objektů ve scéně (od případu, kdy je celé kódované mezikruží černé). A jedno vedlejší: Obsahují maximální množství přechodů bitů (černé a bílé) - doplňkové kritérium postavené na nižší úroveň než předchozí 3 (zamezení splývání jednotlivých bitů např. při velkém perspektivním zkreslení), kritérium rovněž přispívá k zamezení záměny kalibračních značek s náhodnám eliptickým elementem v obraze. Navržený skript pro genrování kódů n-bitových značek (n je vstupem uživatele) pracuje v následující posloupnosti nejdříve jsou vygenerovány všechny cyklické permutace s opakováním (kompletní knihovna všech unikátních kalibračních značek), následně je z kompletní knihovny vybráno m značek (m je vstupem uživatele, žádaný počet kalibračních značek), které nejlépe splňují výše popsaná kritéria: Vygenerování náhodného vektoru o délce n, jehož prvky jsou 0 a 1. Vygenerování n různých rotací vektoru ( rotace zde vznikne přesunutím posledního prvku vektoru na první pozici vektoru). Porovnání všech rotací s řádky matice cyklických permutací, kde jsou unikátní cyklické permutace ukládány na jednotlivé řádky. Jestliže se ani jedna rotace neshoduje s ani jedním řádkem matice, náhodný vektor je uložen do matice cyklických permutací na nově vytvořený poslední řádek. Výpočet pracuje v cyklech, cyklus je ukončen v momentě, kdy jsou nalezeny všechny cyklické permutace jejich počet je určen dle řešení tzv. problému náhrdelníku. Vytvoření matice kritérií počet řádků odpovídá počtu řádků matice cyklických permutací, počet sloupců je roven počtu hlavních kritérií (3). Řádek matice kritérií ukazuje míru splnění jednotlivých kritérií odpovídající cyklické permutace. Připravení matice výsledné knihovny na její jednotlivé řádky budou postupně vypisovány kódy, které nejlépe splňují kritéria. Výpočet počtu bílých bitů každé cyklické permutace (sečtení prvků vektoru), výpočet počtu černých bitů, uložení obou hodnot do prvních dvou sloupců do odpovídajícího řádku matice kritérií. Vygenerování n rotací každé cyklické permutace ( rotace zde opět vznikne přesunutím posledního prvku vektoru na první pozici). Porovnání každé rotace každé cyklické permutace se všemi prvky knihovny. Do matice kritérií do odpovídajícího řádku do třetího sloupce se pro každou permutaci vypíše nejnižší hodnota počtu rozdílných bitů (Hammingova vzdálenost) oproti nejvíce podobnému prvku knihovny. Výpočet počtu přechodů mezi 0 a 1 v rámci vektoru permutace, vydělení tohoto čísla počtem bitů n (dělení je nutné z důvodu podřízení tohoto kritéria kritériím ostatním maximální hodnota nesmí přesáhnout 1), přičtení této hodnoty ke všem hodnotám na odpovídajícím řádku matice. 45
MATERIÁL A METODY Výběr minima každého řádku permutace na řádku s nejvyšším minimem nejlépe vyhovuje kritériím je uložena do výsledné knihovny. Výpočet probíhá v cyklech, dokud počet řádků knihovny nedosáhne zadaného počtu m dosažení výsledku. Značky s danými kódy jsou poté manuálně graficky vytvořeny ve vhodném grafickém programu. 4.2.2 Detekce elips v obrazu Detekce elips probíhá v binárním obraze, který je upraven Cannyho algoritmem. Cannyho hranový operátor je již obsažen jako funkce v softwaru MATLAB. Jedná se o nejlepší hranový operátor [7], je schopný efektivně naleznout spojité hrany objektů v obraze, i když je zatížen velkou mírou šumu. Porovnání výkonu metody prahování a Cannyho hranového operátoru na scéně zobrazené na Obr. 4-3 lze vidět na Obr. 4-4 a Obr. 4-5. V další fázi detekce je obraz rozdělen na spojité oblasti (spojité hrany) a jsou vypsány některé jejich vlastnosti. Nejdříve jsou aplikovány kritéria pro vytřídění konvexních útvarů požadované velikosti, jejichž excentricita nepřesahuje danou mez: Délka hlavní poloosy oblasti není větší než daná mez. Délka hlavní poloosy oblasti není menší než daná mez. Délka vedlejší poloosy oblasti není menší než daná mez. Poměr délek hlavní a vedlejší poloosy není vyšší než daná mez. Poměr obsahu konvexní obálky oblasti a obsahu vyplněné oblasti (obsah ohraničený konturou) není vyšší než daná mez. Následně jsou odstraněny neeliptické objekty zbytek po proložení bodů kontur obecnou rovnicí elipsy 2.15 nelineární metodou nejmenších čverců není vyšší než daná mez. (počáteční hodnoty pro iterační výpočet lze vypočítat z parametrů spojitých oblastí dle rovnic 2.16). Obr. 4-3 Použitá scéna pro srovnání metody prahování a Cannyho algoritmu 46
MATERIÁL A METODY Obr. 4-4 Aplikace metody prahování na testovací scénu, práh 0,1 Obr. 4-5 Aplikace Cannyho algoritmu na testovací scénu, citlivost 0,1 4.2.3 Měření souřadnic středů elips Pro přesné měření souřadnic středů elips byl vybrán hvězdicový elipsový operátor, protože souřadnice elips jsou vstupem pro kalibraci kamer, kde jsou kladeny velké nároky na přesnost tohoto měření. Proložení dat získaných Cannyho hranovým operátorem elipsou totiž nemusí dosahovat dostatečné přesnosti, protože operátor v softwaru MATLAB nepracuje na subpixelové úrovni přesnosti MATLAB používá pro reprezentaci obrazu matice (jeden prvek matice reprezentuje hodnotu jasu jednoho pixelu), hranice jsou vyjádřeny jednotlivými prvky matice, souřadnice jednotlivých bodů hran jsou tedy zaokrouhleny. Takto získané parametry elipsy se nicméně hodí jako výchozí hodnoty právě pro iterační řešení elipsového operátoru. Lze modifikovat následující parametry elipsového operátoru: počet radiálních paprsků počet radiálních kroků okolo předpokládané hany Navržený elipsový operátor funguje následujícím způsobem: 4.2.3 47
MATERIÁL A METODY Vytvoření parametrických rovnic přímek radiálních paprsků (vstupem je počet radiálních paprsků a střed výchozí elipsy, vzniklé při proložení dat z Cannyho algoritmu při kontrole eliptického tvaru). Dosazení těchto rovnic do výchozí rovnice elipsy získání přibližných poloh hranových bodů. Vygenerování sady souřadnic ležících na radiálních paprscích symetricky okolo přibližných poloh hranových bodů (vstupními hodnotami jsou rovnice radiálních paprsků a počet radiálních kroků). Interpolace hodnot jasu v těchto bodech (mají obecně reálné souřadnice) zde velice záleží na přesnosti, byla tedy použita metoda bikubické konvoluce. Vstupem je černobílý obraz neupravený hranovým operátorem. Nalezení hrany ve vektoru interpolovaných hodnot bodů použitou metodou je metoda zachování momentů, díky její jednoduchosti a přesnosti. Proložení nalezených hranových bodů obecnou rovnicí elipsy 2.15 pomocí metody nelineárních nejmenších čtverců. Určení středu elipsy ze zmíněné rovnice elipsy. Obr. 4-6 Detekce elips v prostředí MATLAB červený symbol o uprostřed elipsy značí střed elipsy proložené daty z Cannyho operátoru, červené symboly o na hranicích elipsy značí průsečíky radiálních paprsků s touto elipsou, modré tečky jsou souřadnice interpolovaných pixelů na radiálních paprscích, zelená na okrajích symbolizují hrany nalezené metodou zachování momentů a zelené ve středu elipsy značí střed elipsy proložené nalezenými hranovými body výsledek elipsového operátoru, operátor pracuje s 16 radiálními paprsky a počet kroků okolo očekávané hrany je 5 na každou stranu Znázornění funkce algoritmu lze vidět na Obr. 4-6. Navržený algoritmus maximálně využívá již získaných údajů z předchozího proložení dat z Cannyho operátoru elipsou. Díky tomu je možné pro detekci hran použít malý počet hustě rozmístěných bodů okolo předpokládané polohy hrany to má za následek přesné určení polohy hrany a nízký počet interpolací pixelů, což vede ke snížení výpočetního času. Všechny koeficienty výchozí rovnice elipsy jsou dále použity při prokládání získaných hranových bodů elipsou to má za následek rychlou konvergenci řešení a nízký výpočetní čas. Počet radiálních paprsků byl volen na základě snahy získat maximum informací z hranice elipsy. Nejčastější průměr elipsy v obrazu byl uvažován jako 20 pixelů, obvod elipsy byl aproximován obvodem kruhu, bylo bráno v úvahu, že interpolované body paprsků berou v úvahu okolí 4 4, tedy: n πd 4 16 (4.1) 48
MATERIÁL A METODY Kde n je počet radiálních paprsků. Počet kroků symetricky okolo aproximace hrany byl zkusmo na základě experimentů stanoven na 10. 4.2.4 Dekódování kalibračních značek Návrh způsobu dekódování kódů kalibračních značek čerpá částečně z článku Li, Z. [19], nicméně pro zvýšení robustnosti používá neuronové sítě a výrazně hustější skenování pracuje s celou plochou čárového kódu. Vstupem pro neuronové sítě je skenovaný čárový kód (celá jeho šířka zajištění maximální odolnosti dekódování vůči případným nečistotám). Čárový kód ve snímku bývá deformován, proto je nutné pro jeho skenování použít inverzní afinní zobrazení. Algoritmus lze rozdělit na dvě hlavní části, a sice na úkon skenování čárového kódu a poté na samotné dekódvání čárového kódu. Algoritmus skenování funguje následujícím způsobem: Získání parametrů afinní deformace středů kalibračních značek, úhel hlavní poloosy vůči kladné poloose x souřadného systému snímku, délky hlavních a vedlejších poloos, souřadnice středů. Vygenerování nezkreslených a neposunutých souřadnic bodů, které budou skenovány - celkem 210 radiálních paprsků (slenování po 1,7 ), na každém je vytvořeno 20 bodů, v mezikruží, kde se nachází kód. Mezikruží je vázáno na jednotkový kruh, který symbolizuje střed značky. Bodům, ve kterých bude provedeno skenování, jsou přiřazeny kartézské i polární souřadnice, počátkem souřadnic je střed značky. Výsledek je schématicky zobrazen na Obr. 4-7 vlevo. Afinní transformace vygenerované kartézské souřadnice skenovacích bodů jsou pomocí afinní transformace promítnuty do obrazu tak, aby se jednotkový kruh promítl na hranici středu kalibrační značky v obraze. Jsou použity informace zjištěné v prvním bodu postupu. Výsledek lze vidět na Obr. 4-7 vpravo. 4.2.4 Obr. 4-7 Vlevo radiální paprsky v mezikruží, ve kterém je očekáván kód (dle geometrie značky), vázané na jednotkový kruh (uprostřed), vpravo afinní transformace Přiřazení jasu souřadnicím pomocí metody bikubické konvoluce opět kvůli zajištění maximální robustnosti. Inverzní polární transformace ze skenovaného mezikruží je vytovřen obdélník - vytovření odélníkové matice jasů skenovaných bodů, matice má rozměry 210 20 (na jednotlivých řádcích se nalézají jasy skenovacích bodů ležících na jednotlivých radiálních paprscích). 49
MATERIÁL A METODY Prahování získaného obrazu Otsuho metodou. Pootočení kódu naskenovaný kód má obecné natočení cílem operace je natočit kód tak, aby matice začínala hranicí bitů (aby nerozdělovala bit). Matice je podél delšícho rozměru rovnoměrně rozdělena na n sekcí, kde n je počet bitů rozpoznávaných značek. Je vypočítán rozptyl každé sekce, ty jsou sečteny, dále je poslední řádek matice převeden na její počátek (před první řádek) a postup se opakuje. Zařazení posledního řádku na počátek matice se opakuje 210/n (po délku celého bitu). Je vybrána a uložena rotace s nejnižší sumou hodnot rozptylů. Tento způsob zajistí maximální robustnost i pokud bude obraz zatížen množstvím šumu, případně pokud kód bude mírně poškozen. Obr. 4-8 Naskenovaný 15 bitový kód, byla provedena inverzní polární transformace, při skenování je odstraněna afinní deformace, která by se projevila různou délkou bitů (zelené čáry oddělují jednotlivé bity) a byla provedena rotace zajišťující, že hranice obrázku leží na hranici bitů, které jsou odděleny zelenými svislými čarami Po naskenování čárového kódu je kód vyhodnocován pomocí umělých neuronových sítí: Obdélníková matice je rozdělena na matice jednotlivých bitů (podle zelených čar na Obr. 4-8), matice jednotlivých bitů jsou po řádcích převedeny na sloupcové vektory. Každý sloupcový vektor (bit) je použit jako vstup pro neuronovou síť pomocí ní jsou určeny pravděpodobnosti, že hodnota vyhodnocovaného bitu je 1, fungují ve smyslu přirozeně vytvořeného konvolučního okna. Jsou vypočítány odchylky každé rotace získaného pravděpodobnostního vektoru od každého prvku knihovny značek, které jsou použity ve scéně. K pravděpodobnostním kódům jsou přiřazeny kódy značek v knihovně, která je uložena externě v souboru aplikace excel, od kterých má daný pravděpodobnostní kód nejmenší odchylku, avšak tato odchylka musí být nižší než daný práh, pokud by odchylka byla vyšší, značka je vyhodnocena jako nekódovaná 4. Jsou uloženy výsledky, tedy souřadnice středů kódovaných značek, jejichž vyhodnocení se zdařilo, s k nim asociovanými kódy. Algoritmus umožňuje jednoduchý import knihoven kódů kalibračních značek bitové kódy značek jsou uloženy externě v souboru aplikace excel. K realizaci rozpoznávání bitů pomocí neuronových sítí je potřeba neuronové sítě nejdříve nastavit a natrénovat. V rámci této práce nebylo nutné samotné neuronové sítě programovat, software MATLAB umožňuje jejich jednoduchou tvorbu a trénování (pomocí integrované knihovny). Hotovou síť je poté možné uložit jako funkci. Byla použita standardní jednoduchá třívrstvá struktura jako je na Obr. 2-19. Vstupem pro neuronovou síť jsou jednotlivé pixely obrazu bitu, které jsou uspořádány 4 Práh je nutné volit dostatečně nízký, aby nedocházelo k záměnám kalibračních značek, což by bylo pro algoritmus kalibrace kamer kritické. Na základě experimentů, aby bylo dosaženo téměř stoprocentní pravděpodobnosti, že nedojde k záměně kódů, ke které jsou náchylné zejména kalibrační značky systému TRITOP, kvůli jejich nízké Hammingově vzdálenosti, pramenící z jejich velkého počtu, byl práh volen 0,1. 50
MATERIÁL A METODY do sloupcového vektoru, výstupem je pravděpodobnost, že daný bit je 1. Počet neuronů v prostřední vrstvě byl stanoven na 10 (výchozí, defaultní hodnota). Trénink neuronových sítí probíhal vytvořením tréninkové knihovny manuálním rozpoznáním bitů náhodných značek v 6 snímcích, viz příloha. K tréninku bylo použito celkem 2299 rozpoznaných bitů. Spolehlivost neuronových sítí na tréninkové knihovně znázorňuje Obr. 4-9. Obr. 4-9 Matice nejistoty neuronových sítí 2299 vyhodnocených bitů, 99,7 % z nich je trénovanou neuronovou sítí přiřazeno do správné výstupní třídy 4.2.5 Výpočet nelineárních parametrů kamery V rámci procesu kalibrace kamer jsou nejdříve, v rámci instalace systému, pořízeny snímky hustého kalibračního pole, složeného z kódovaných referenčních značek. Souřadnice těchto značek v prostoru jsou známy. Toto pole zabírá celé zorné pole kamery. Pole musí být trojrozměrné značky nesmí ležet v rovině. Snímky pole lze fotit z jednoho místa, avšak s postupným otáčením kamery okolo její optické osy, aby bylo dosaženo distribuce značek ideálně po celém kaliborvaném objemu, ve kterém se bude nacházet měřený objekt. Během celé kalibrace i po ní musí zůstat kamera v plně manuálním režimu a nesmí se měnit veškerá nastavení. Kalibrovány jsou všechny složky zkreslení jak radiální (první tři členy Taylorova rozvoje), tak tangenciální a afinní. Řešení je prováděno numerickou metodou řešení problému minimalizace nelineárních nejmenších čtverců trust-region reflective, kterou prostředí MATLAB přímo obsahuje jako funkci. Derivace v rámci tohoto algoritmu jsou prováděny numericky, pro vyšší přesnost je použita centrální derivace. Funkce F x a F y (rovnice 4.3) pro každý kalibrační snímek jsou seřazeny dou sloupcového vektoru F m (rovnice 4.4) a jsou simultánně minimalizovány. Parametry v rovnicích lze rozdělit na známé, neznámé, avšak pro všechny snímky shodné a neznámé, které se liší pro každý snímek: 4.2.5 51
MATERIÁL A METODY Známé parametry: x i, y i, X i, Y i, Z i Neznámé parametry shodné pro všechny snímky: K 1, K 2, K 3, B 1, B 2, C 1, C 1 Neznámé parametry lišící se pro jednotlivé snímky, obsažen principální bod a ohnisko dle [10]: X 0i, Y 0i, Z 0i, ω i, φ i, κ i, x 0i, y 0i, c i Počáteční hodnoty pro iterační výpočet jsou určeny přímou lineární transformací (z matice rotace, která je výsledkem algoritmu, jsou získány úhly) a nelineární parametry jsou voleny nulové dle [6]. Aby byl problém řešitelný jmenovanou metodou nejmenších čtverců v MATLABu, je nutné použít tuto funkci iteračně (funkce plní pouze účel distribuce získaných chyb nejmenších čtverců z počátečních hodnot mezi parametry zkreslení), s tím, že rovnice 4.2 nevstupují do řešení jako funkce neznámých parametrů z důvodu linearizace problému. Tato korekce chyb funkcí nelineárních nejmenších čtverců je iteračně opakována, dokud není změna parametrů bezvýznamná (5 až 10 ). Celý algoritmus je poté opakován, dokud klesá suma chyb nejmenších čtverců (zhruba 5 ). x ci = x i x 0i Δx radi Δx tani Δx affi y ci = y i y 0i Δy radi Δy tani Δy (4.2) affi Korigované hodnoty dle rovnic 4.2 jsou připraveny v prvním kroku z hodnot počátečních, v dalších pak z hodnot určených v předchozím kroku. F xi = x i + x 0i c i k xi./n i + Δx radi + Δx tani + Δx affi F yi = y i + y 0i c i k yi./n i + Δy radi + Δy tani + Δy (4.3) affi F xi F yi F m = (4.4) F xn F yn] [ Kde jsou parametry určeny rovnicemi 4.5, matice rotace rovnicí 4.6 a složky zkreslení pak rovnicemi 4.7, 4.8, 4.9. a 4.10: Kde: k xi = r 11i (X i X 0i ) + r 21i (Y i Y 0i ) + r 31i (Z i Z 0i ) k yi = r 12i (X i X 0i ) + r 22i (Y i Y 0i ) + r 32i (Z i Z 0i ) N i = r 13i (X i X 0i ) + r 23i (Y i Y 0i ) + r 33i (Z i Z 0i ) r 11i r 12i r 13i R i = [ r 21i r 31i r 22i r 32i r 23i ] = r 33i cosφ i cosκ i cosφ i sinκ i sinφ i = [ cosω i sinκ i + sinω i sinφ i cosκ i sinω i sinκ i cosω i sinφ i cosκ i cosω i sinκ i sinω i sinφ i sinκ i sinω i cosκ i + cosω i sinφ i sinκ i sinω i cosφ i ] cosω i cosφ i Δx radi = K 1 x ci. r i2 + K 2 x ci. r i 4 + K 3 x 6 ci. r i Δy radi = K 1 y ci. r i. 2 + K 2 y ci. r i. 4 + K 3 y ci. r i. 6 (4.5) (4.6) (4.7) Δx tani = B 1 (r i. 2 + 2x ci. 2 ) + 2B 2 x ci. y ci Δy tani = B 2 (r i. 2 + 2y ci. 2 ) + 2B 1 x ci. y ci Δx affi = C 1 x ci + C 2 y ci Δy affi = 0 (4.8) (4.9) 52
MATERIÁL A METODY r i = ((x ci ). 2 + (y ci ). 2 ). 1 2 (4.10) Kde x i a y jsou sloupcové vektory souřadnic středů referenčních značek, které jsou i měřeny v obraze, x ci a y ci jsou sloupcové vektory korigovaných souřadnic těchto značek v obraze, x 0i a y 0i jsou souřadnice principálního bodu snímku, c i je ohniskvá vzdálenost, Δx radi, Δy radi, Δx tani, Δy tani, Δx affi, Δy affi jsou složky radiálního, tangenciálního a afinního zkreslení uložené ve sloupcových vektorech, K 1, K 2, K 3, B 1, B 2, C 1, C 1 jsou konstanty radiálního, tangenciálního a afinního zkreslení, r i je sloupcový vektor korigovaných vzdáleností daného bodu od bodu principálního, X 0i, Y 0i, Z 0i jsou souřadnice středu promítání kamery, matice R i je matice rotace souřadného systému kamery podél os X, Y, Z vytořená z úhlů natočení souřadného systému kamery v systému absolutním ω i, φ i, κ i, X i, Y i, Z i jsou sloupcové vektory souřadnic referenčních značek v prostoru, F m je minimalizovaná funkce a F xi a F yi jsou její složky. Dolní index i je index kalibrační fotografie, celkem je použito n fotografií. Operace./,.,. n jsou operace dělení, násobení a umocňování provedené mezi odpovídajícími si prvky vektorů. Všechny parametry vnitřní orientace kamery a všechny souřadnice v souřadném systému kamery jsou dosazovány v pixelech. Po dokončení optimalizační úlohy algoritmus zobrazí průměrné hodnoty chyb rekalkulace pro jednotlivé kalibrační snímky (tyto hodnoty reprezentují kvalitu kalibrace), ze kterých uživatel rozhodne, zda je kalibrace provedena uspokojivě. Výsledkem optimalizační úlohy jsou tedy: Přesné polohy a rotace souřadných systémů kamer v prostoru Délka ohniska, principální bod každého snímku Parametry radiálního, tangenciálního a afinního zkreslení všech snímků Poslední jmenované parametry jsou uloženy do souboru.xlsx a jsou poté používány při každé kalibraci před každým měřením pro odstranění zkreslení objektivu. Vzhled uživatelského rozhraní lze vidět na Obr. 4-10. Obr. 4-10 Podoba uživatelského prostředí aplikace pro výpočet nelineárních parametrů kamery umožňuje uživateli vybrat kalibrační fotografie, vybrat soubory s knihovnou kódů kalibračních značek nebo jejich prostorovými souřadnicemi, upravovat parametry pro detekci elips v obraze, kontrolovat rozmístění značek v kalibračním objemu, výsledky binarizace obrazu, či algoritmu pro rozpoznávání kódů kalibračních značek a zobrazuje výsledky provedeného výpočtu, pokud uživatel shledá kalibraci jako uspokojivou, nalezené parametry lze uložit 53
MATERIÁL A METODY 4.2.6 Kalibrace stereopáru Kalibrace stereopáru probíhá dle popisu v kapitole 2.3.7, nicméně před samotným řešením jsou souřadnice vazebných bodů ve snímcích korigovány vůči zkreslení. Po nalezení kalibračních značek ve snímcích je provedena přímá lineární transformace pro získání počátečních hodnot pro prostorovou resekci. Pomocí té je ze snímků odstraněno zkreslení metodou prostorové resekce, kdy jsou konstanty nelineárního zkreslení kamer předem známy. Zároveň jsou zpřesněny důležité konstanty pro další iterační výpočty. Následuje svázání obrazu kamer stereopáru v modelovém souřadném systému a dále výpočet transformace z modelového souřadného systému do souřadného systému absolutního. Výpočet lze rozdělit do třech kroků: Krok 1 zkreslení je v každém snímku odstraněno na základě prostorové resekce. Postup výpočtu je analogický jako v kapitole 4.2.5, nicméně konstanty nelineárního zkreslení kamer jsou předem určeny. - Známé parametry: x i, y i, X i, Y i, Z i, K 1, K 2, K 3, B 1, B 2, C 1, C 1 - Neznámé parametry lišící se pro jednotlivé snímky, obsažen principální bod a ohnisko dle [10]: X 0i, Y 0i, Z 0i, ω i, φ i, κ i, x 0i, y 0i, c i Kde i je index snímku. Výstupem z tohoto kroku jsou kromě neznámých parametrů - velmi přesných lineárních parametrů kamery, také korigované souřadnice referenčních značek x ci a y ci. Krok 2 fotografie jsou svázány dle rovnic 4.12, tedy minimalizací funkce G, která je určena rovnicemi 4.13, metodou nelineárních nejmenších čtverců ( trust-region reflective ). Rovnice jsou nicméně odvozeny pro případ, kdy je dle Obr. 2-16 dominantní složkou vektoru základny b v modelovém souřadném systému složka bx, čemuž konfigurace kamer fotogrammetrického systému neodpovídá dominantní složkou je by. Úloha je řešena ekvivalentně. Volíme měřítko vektoru základny tak, aby platila rov. 4.11: by = 1 (4.11) Tedy: bx x c1j x c2j G j = 1 y c1j y c2j (4.12) bz z 1 z 2 b r 1j r 2j Kde index j je index vazebného bodu (celkem je použito n vzabených bodů) a vektor r 2 je určen rovnicí 2.33, do níž jsou dosazeny korigované hodnoty souřadnic referenčních značek v odpovídajícím snímku. Matice rotace v této rovnici je určena rovnicí 4.6, dosazeny jsou hodnoty ω 2, φ 2, κ 2. Vstupem do této funkce jsou hodnoty vypočítané v předchozím kroku, z nich lze také vpočítat počáteční hodnoty pro iterační řešení. Minimalizovaná funkce G má tvar: G 1 G = [ ] (4.13) G n - Známé parametry: x 1j, y 1j, x 2j, y 2j 54
MATERIÁL A METODY - Neznámé parametry: ω 2, φ 2, κ 2, bx, bz Výstupem tohoto kroku tedy jsou parametry relativní orientace kamer v modelovém souřadném systému, tedy výše uvedené neznámé parametry. Krok 3 rekonstrukce bodů v modelovém souřadném systému a určení kvality relativní orientace kamer. Při výpočtu měřítka λ a µ eliminací modelových souřadnic v rovnicích 2.34 jsou uvažovány jako dominantní složky vektoru b by a bz, výsledek znázorňují rovnice 4.14: λ j = byz 2 bzy 2cj y 1cj z 2 z 1 y 2cj µ j = byz (4.14) 1 bzy 1cj y 1cj z 2 z 1 y 2cj Modelové souřadnice x mj, y mj, z mj jsou pak dány rovnicemi 4.15: y mj = λ j y 1j z mj = λ j z 1 x m1j = λ j x 1j x m2j = bx + µ j x 2j x mj = x (4.15) m1j + x m2j 2 px mj = x m2j x m1j (4.16) Kvalita relativní orientace je určena rozdíly px mj, definovanými v rovnici 4.16, které vajadřují paralaxu ve směru osy x m v modelovém souřadném systému, v měřítku globálního s. s. tuto paralaxu vyjadřuje rov. 4.17: px pj = z 1 z mj px mj (4.17) Vyjádření kvality relativní orientace v měřítku globálního souřadného systému s pxp lze pak vypočítat dle vztahu 4.18 [6]: n s pxp = 1 n px 2 pj j=1 (4.18) Krok 4 výpočet transformace mezi modelovým a globálním souřadným systémem. Transformace obsahuje posunutí, rotaci a měřítko. Výpočet je proveden minimalizací funkce H (rovnice 4.19) metodou nelineárních nejmenších čtverců (použitá metoda opět trust-region reflective), počáteční hodnoty jsou známy z kroku 1. Je předpokládáno, že jsou známy souřadnice všech vazebných bodů v prostoru X j, Y j, Z j. - Známé parametry: x mj, y mj, z mj, X j, Y j, Z j - Neznámé parametry: X 01, Y 01, Z 01, ω r, φ r, κ r, m Funkce H je dána vztahem: H 1 H = [ ] (4.19) Kde: H n 55
MATERIÁL A METODY X j X 01 x mj H j = [ Y j ] ([ Y 01 ] + mr [ y mj ]) (4.20) Z j Z 01 z mj Kde X 01, Y 01, Z 01 vyjadřuje posunutí mezi souřadnými systémy, m je měřítko, R je matice rotace mezi souřadnými systémy, určená rovnicí 4.6 a úhly ω r, φ r, κ r. Počáteční hodnoty pro výpočet lze určit z výsledných parametrů v kroku 2. Výsledkem algoritmu jsou parametry stereopáru: ω 2, φ 2, κ 2, bx, bz, X 01, Y 01, Z 01, ω r, φ r, κ r, m. Pro usnadnění ovládání algoritmu uživatelem bylo vytvořeno grafické rozhraní (Obr. 4-11). Obr. 4-11 Uživatelské rozhraní aplikace kalibrace stereopáru umožňuje uživateli vybrat fotografie, nahrát soubory se souřadnicemi referenčních značek nebo nelineárními parametry kamer, kontrolovat výsledky dekódování značek, upravovat parametry detekce elips v obraze, kontrolovat dosaženou přesnost kalibrace nebo prostorové uspořádání referenčních značek a kamer, výsledky správně provedené aplikace lze uložit 56
VÝSLEDKY 5 VÝSLEDKY 5.1 Generování knihoven kalibračních značek Pomocí naprogramovaného algoritmu inspirovaného generáterem knihoven kalibračních značek ArUco byla vygenerována knihovna kalibračních značek knihovna 15 bitových značek o 30 členech. Výsledek lze vidět na obrázku Obr. 5-1. 5 5.1 Obr. 5-1 Knihovna 30 kalibračních značek s 15 bitovým kódem 5.2 Spolehlivost detekce kalibračních značek v obraze Test spolehlivost detekce elips v obraze byl proveden na různých testovacích scénách, pro prověření spolehlivosti a robustnosti algoritmu byl použit fotoaparát na mobilním telefonu (LG Nexus 5, 8 MPx). Byly použity scény, kde bylo rozpoznávání elips ztíženo špatnými světelnými podmínkami, gradientním jasem snímku nebo celkovou členitostí scén. Značky byly snímány z různých pozorovacích úhlů. Hlavní poloosa elips (středů kalibračních značek) na snímcích měřila od 15 do 25 pixelů. Pro některé scény bylo nutné optimalizovat citlitvost hledání hran Cannyho algoritmem (dle světelných podmínek ve scéně). Byla realizována komparace nově navrženého algoritmu s algoritmem původním. Pro srovnání metod byla vybrána scéna s velkými rozdíly v jasu jejích jednotlivých částí. Výsledky lze vidět na Obr. 5-2, Obr. 5-3 a jsou shrnuty v Tab. 5-1. Algoritmus byl dále testován na dalších scénách (Obr. 5-4, Obr. 5-5), aby byly nalezeny jeho limity. 5.2 57
VÝSLEDKY Tab. 5-1 Porovnání výsledků nově navrženého algoritmu a původního algoritmu pro nalezení elips na testovací scéně 1 (Obr. 5-2, Obr. 5-3) Původní algoritmus Nově navržený algoritmus Počet nenalezených 6 0 značek (celk. počet 15) Počet falešných cílů 6 1 Obr. 5-2 Testovací scéna 1, rozdílné světelné podmínky částí snímku, vyhodnocení nově navrženým algoritmem (citlivost Cannyho algoritmu 0,1) Obr. 5-3 Testovací scéna 1, rozdílné světelné podmínky částí snímku, vyhodnocení původním algoritmem, práh 0,1 58
VÝSLEDKY Obr. 5-4 Testovací scéna 2, gradientní světelné podmínky, vysoká úroveň šumu, vyhodnocení pomocí nově navrženého algoritmu (citlivost Cannyho algoritmu 0,1, 1 falešně pozitivní, 1 značna nenalezen Obr. 5-5 Testovací scéna 3, členitá scéna, dobré světelné podmínky (citlivost 0,4, 0 falešně pozitivních, všechny značky nalezeny) 59
VÝSLEDKY 5.3 Přesnost měření souřadnic středů kalibračních značek Přesnost byla měřena ve dvou scénách, každá obsahovala 18 kalibračních značek. Značky na snímcích měly průměr přibližně 15-25 pixelů. Souřadnice středů značek ve snímcích byly vypočítány původním a poté nově navrženým algoritmem (metodou těžiště a hvězdicovým operátorem) a tyto hodnoty byly porovnány s hodnotami referenčními (určenými systémem TRITOP software systému umožňuje vypsání souřadnic značek v každém snímku, viz Obr. 5-6). Byly určeny statistické veličiny jako je průměrná odchylka, maximální odchylka, rozptyl, směrodatná odchylka a poloměr kruhu okolo vypočtených souřadnic, ve kterém s 95% pravděpodobností leží referenční hodnota souřadnic, viz Tab. 5-2. Elipsový operátor využíval 16 radiálních paprsků pro detekci hran a okolo očekáváných hran bylo symetricky interpolováno 10 bodů pro následnou aplikaci momentové metody. Obr. 5-6 Obrázek ze softwaru systému TRITOP - scéna zachycená kamerou systému TRITOP a informace o poloze bodů v souřadném systému obrázku Tab. 5-2 Porovnání přesnosti výsledků původně použité metody těžiště a nově použité metody hvězdicového operátoru (jako reference byl použit systém TRITOP), výpočet probíhal na statistickém souboru 36 značek, celkem ve dvou fotografiích (18 + 18), průměr značek ve snímcích 15-25 pixelů, podklady umístěny v příloze v Tab. P 1 a Tab. P 2 Metoda těžiště Hvězdicový operátor Průměrná odchylka [px] 0,0704 0,0196 Maximální ochylka [px] 0,1342 0,0449 Rozptyl [px 2 ] 0,0062 0,0005 Směrodatná dochylka [px] 0,0786 0,0227 Poloměr intervalu spolehlivosti 95% [px] 0,1294 0,0374 5.4 Spolehlivost dekódování kalibračních značek Test spolehlivosti dekódování kalibračních značek byl prováděn jednak na scénách se špatnými světelnými podmínkami (Obr. 5-7), jednak na scénách, kde byly kalibrační značky zabírány pod velkými úhly (Obr. 5-8), aby byly prověřeny slabiny algoritmu. Použita byla vytvořená 30 členná knihovna kalibračních značek. 60
VÝSLEDKY Obr. 5-7 Test algoritmu dekódování kalibračních značek za špatných světelných podmínek 10 značek rozpoznáno správně, 20 nerozpoznáno, 0 záměn Obr. 5-8 Test algoritmu dekódování kalibračních značek značky snímány pod reltivně velkým úhlem 24 značek rozpoznáno správně, 6 nerozpoznáno, 0 záměn Byla rovněž vytvořena knihovna kódovaných kalibračních značek, které používá systém TRITOP (Obr. 5-9 a Obr. 5-10). Této knihovny bylo využíváno při realizaci všech dalších experimentů a to z důvodu jednoduchosti. 61
VÝSLEDKY Obr. 5-9 Kódované kalibrační značky systému TRITOP rozpoznané algoritmem dekódování kalibračních značek Obr. 5-10 Kalibrační kříže systému TRITOP rozpoznané algoritmem dekódování kalibračních značek 62
VÝSLEDKY 5.5 Ověření přesnosti kalibrace nelineárních parametrů kamery Parametry kamery byly určovány pomocí navržené aplikace, celkem bylo provedeno 6 experimentů, každý experiment spočíval ve vytvoření 5 8 různých snímků hustého kalibračního pole (protokol z měření kalibračního pole systémem TRITOP lze vidět na Obr. P 4 v příloze průměrná chyba souřasnic kalibračních značek ve scéně byla 0,01645 mm). Příklad vhodných kalibračních fotografií pro 1 experiment lze vidět na Obr. 5-11. Byla zkoumána přesnost rekalkulace kalibračních značek do obrazové roviny a také opakovatelnost měření. 5.5 Obr. 5-11 Příklad vhodných kalibrařních fotografií Detailní výsledky experimentu lze vidět v tab. P 3 v příloze. Průměrnou přesnost rekalkulace na kalibračních fotografiích před a po korekci zkreslení snímků zachycuje Obr. 5-12. d' [px] 1.1 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 Lineární transformace Prostorová resekce 0.0 1 2 3 4 5 6 Číslo experimentu Obr. 5-12 Chyby rekalkulace d v jednotlivých experimentech, porovnání průměrných chyb rekalkulace bez korekce zkreslení (výpočet pouze pomocí přímé lineární transformace) a po ní (výpočet a korekce vůči zkreslení pomocí prostorové resekce) Vypočítané parametry zkreslení, které byly vypočítány v rámci jednotlivých experimentů znázorňuje Obr. 5-13. 63
VÝSLEDKY Obr. 5-13 Konstanty nelineárního zkreslení kamery Nikon D3000 s objektivem Nikkor 50 mm, grafy vycházejí z tabulky uvedené v příloze, která obsahuje výsledky celkem 6 experimentů Vypočítané parametry určují zkreslení, které lze zobrazit například ve formě vektorového pole (Obr. 5-14). Obr. 5-14 Vektorové pole znázorňující zkreslení snímku určené z konstant vypočítaných v rámci experimentu 1, souřadné osy v pixelech Pro porovnání bylo nicméně pro názornost zvoleno zjednodušené zobrazení, kde je velikost zkreslení vykreslena jako plocha nad souřadným systémem snímku. Pro vizuální porovnání velikosti a opakovatelnosti jednotlivých složek zkreslení pomocí ploch byly vybrány výsledky experimentu 1 a 2. Plochy velikosti zkreslení a jeho složek pro zmíněné experimenty lze vidět na Obr. 5-15 - Obr. 5-18. 64
VÝSLEDKY Obr. 5-15 Velikost celkového zkreslení, vlevo experiment 1, vpravo experiment 2, osy x a y značí souřadný systém snímku v pixelech, na svislé ose je znázorněna velikost zkreslení v daném bodě v pixelech Obr. 5-16 Velikost radiálního zkreslení, vlevo experiment 1, vpravo experiment 2, osy x a y značí souřadný systém snímku v pixelech, na svislé ose je znázorněna velikost zkreslení v daném bodě v pixelech Obr. 5-17 Velikost tangenciálního zkreslení, vlevo experiment 1, vpravo experiment 2, osy x a y značí souřadný systém snímku v pixelech, na svislé ose je znázorněna velikost zkreslení v daném bodě v pixelech 65
VÝSLEDKY Obr. 5-18 Velikost afinního zkreslení, vlevo experiment 1, vpravo experiment 2, osy x a y značí souřadný systém snímku v pixelech, na svislé ose je znázorněna velikost zkreslení v daném bodě v pixelech Jediná složka zkreslení, která lze přímo porovnat ve dvourozměrném grafu, je radiální zkreslení, díky jeho středové souměrnosti. Porovnání křivek radiálního zkreslení, které jsou vypočítány v rámci jednotlivých experimentů, lze vidět na Obr. 5-19. Zkreslení [px] 25 20 15 10 5 Exp1 Exp3 Exp2 Exp4 Exp5 Exp6 0 0 500 1000 1500 2000 2500 Vzdálenost od středu [px] Obr. 5-19 Porovnání velikosti radiálního zkreslení pro jednotlivé experimenty (Exp1 až Exp6) 5.6 Ověření přesnosti kalibrace stereopáru Algoritmus kalibrace steropáru byl testován na kalibračním poli, které bylo změřeno systémem TRITOP (protokol z měření lze vidět na Obr. P 5 v příloze). Kalibrační pole obsahovalo zhruba 40 značek. Objem, ve kterém byly značky rozmístěny a který byl snímán kamerou, měl rozměry přibližně 750 500 200 mm. Pro experiment byl použit pouze jediný fotoaparát. Pomocí tohoto fotoaparátu bylo v rámci jednotlivých experimentů kalibrační pole snímáno ze dvou stran. Příklad takto vzniklé dvojice fotografií lze vidět na Obr. 5-20. V rámci experimentu byl nejdříve vytvořen model zkreslení optické soustavy kamer (použity 4 snímky, průměrná chyba rekalkulace referenčních značek do roviny obrazu dosahovala 0,99 pixelu). Výslekdy experimentu lze vidět v tabulce Tab. 5-3. 66
VÝSLEDKY Obr. 5-20 Příklad fotografií kalibračního pole Tab. 5-3 Výsledky experimentů v rámci ověření přesnosti kalibrace stereopáru s pxp je hodnota paralaxy ve směru osy x, d abs je průměrná odchylka rekalkulace referenčních souřadnic ve smyslu vzdálenosti těchto odpovídajících si bodů v prostoru a n je počet vazebných značek Experiment s pxp [mm] d abs [mm] n [-] 1 0,041 0,032 16 2 0,068 0,026 20 3 0,048 0,027 18 4 0,063 0,028 20 5 0,057 0,032 20 6 0,046 0,025 19 7 0,046 0,034 19 Prům. hodnoty 0,053 0,029 19 5.7 Výpočetní náročnost algoritmů Výpočty probíhaly na notebooku s procesorem Intel Core i7 2670QM a 16GB RAM. Testy ukázaly, že výpočetní čas algoritmu určování nelineárních parametrů kamery roste přibližně v závislosti na druhé mocnině počtu kalibračních snímků, viz Obr. 5-21. Kalibrace stereopáru pak trvá přibližně 25 sekund. Čas [min] 18 16 14 12 10 8 6 4 2 0 0 1 2 3 4 5 6 7 8 9 Počet snímků [-] Obr. 5-21 Výpočetní čas nelineárních parametrů kamery, prokládanou křivkou je polynom druhého řádu 5.7 67
DISKUZE 6 DISKUZE Diskuze obnáší zhodnocení výsledků jednotlivých experimentů, které byly koncipovány tak, aby byly odhaleny nedostatky použitých metod a algoritmů, případně zhodnotily jejich limity nebo porovnaly vlastnosti nově navržených algoritmů vůči algoritmům původním. 6.1 Algoritmus detekce kalibračních značek v obraze Spolehlivost nově navržené detekce eliptických objektů v obraze byla vyhodnocena jako velmi dobrá, prokázala podstatně větší odolnost vůči šumu, špatným nebo nekonstantním světelným podmínkám a v obraze nacházela pouze eliptické objekty. Algoritmus byl zároveň porovnán s algoritmem původně použitým, kde nově navržená metoda dosahovala podstatně lepších výsledků. Cannyho algoritmus jako metoda pro vytvoření binárního obrazu zajišťuje metodě výbornou citlivost a velkou míru invariance vůči světelným podmínkám, což má za následek, např. při detekci značek v obraze se silně proměnným jasem, nalezení značek jak v tmavém, tak ve světlém pásmu. Další výhodou vysoké invariance vůči světelným podmínkám je, že uživatel musí upravovat práh citlivosti pouze zřídka. Z hlediska výpočetního času je sice Cannyho operátor výrazně pomalejší než metoda prahování, nicméně jeho výstupem je pouze malé množství kontinuálních hran, které vstupují do dalších fází algoritmu, čímž výrazně klesá výpočetní čas těchto dalších fází. Kritéria pro vytřídění eliptických oblastí z binárního obrazu oproti původní metodě zůstaly nezměněny, až na rodílné řešení kritéria podobnosti dané oblasti elipse. Nové řešení, založené na prokládání hranových bodů oblasti elipsou, je sice relativně pomalé, nicméně je velice spolehlivé, jak vyplývá z testů, např. Obr. 5-4. Toto řešení navíc generuje velmi přesné počáteční hodnoty pro hvězdicový operátor, který díky tomu velice rychle konverguje. 6.2 Metoda výpočtu souřadnic kalibračních značek v obraze Hvězdicový operátor v použitých kalibračních scénách vykazoval dle předpokladu vysokou shodu s referenčními souřadicemi. Průměrná odchylka dosahovala pouze přibližně 0,02 pixelu, zatímco průměrná chyba původně použitého algoritmu, založeného na metodě těžiště, byla více než trojnásobná (0,07 pix). Referenční souřadnice od bodu určeného hvězdicovým operátorem ležely s 95% pravděpodobností v kruhu o poloměru 0,037 pixelu, v případě metody těžiště byl tento poloměr 0,129 pixelu. Tyto hodnoty nicméně nelze brát jako přesnost algoritmu, přestože o ní vypovídají. Jedná se pouze o míru shody s referenčními souřadnicemi, které jsou také zatíženy chybou, nicméně u referenčního systému se zde předpokládá, že je dostatečně přesný. Reálná chyba algoritmu by měla být ještě nižší. Z hlediska výpočetního času je výrazně náročnější hvězdicový operátor. To je dáno jednak tím, že v rámci hvězdicového operátoru musí celá metoda těžiště proběhnout kvůli generování počátečních podmínek, jednak tím, že elipsový operátor obsahuje další, výpočetně náročné metody, jako je například bikubická konvoluce nebo prokládání hranových bodů elipsou metodou nelineárních nejmenších čtverců. V měřítku celkového výpočetního času programu je tento čas nicméně stále téměř zanedbatelný. 68
DISKUZE 6.3 Metoda dekódování kódovaných kalibračních značek Metoda dekódování kalibračních značek v kombinaci s kódovanými značkami vytvořenými algoritmem popsaným v kapitole 4.2.1 prokázala výbornou spolehlivost ve scéně se špatnými světelnými podmínkami a vyšší úrovní šumu na Obr. 5-7 dokonce naráží na limity samotné detekce elips v obraze. Méně spolehlivá se pak ukazuje, pokud jsou kalibrační značky fotografovány pod většími pozorovacími úhly, nicméně pro vyvíjenou aplikaci algoritmus velice dobře postačuje. Nejdůležitější faktor byl velice dobře splněn během testů i dalších experimentů nedocházelo k záměnám kódů značek. Algoritmus je schopný pracovat s libovolnými knihovnami kalibračních značek stejné geometrie a stejného počtu bitů. Uživateli stačí vytvořit soubor aplikace excel s čísly značek a jejich bitovým kódem. Díky tomu bylo možné během experimentů využívat přímo kalibrační značky systému TRITOP. 6.4 Metoda kalibrace kamer 6.4.1 Metoda určení nelineárních parametrů kamery Přesnost a spolehlivost metody kalibrace nelineárních parametrů kamery se na základě experimentů ukázala jako velmi dobrá, průměrná hodnota odchylky rekalkulace kalibračních bodů do roviny obrazu byla v rámci všech experimentů nižší než 0,1 pixelu, což je méně než desetinová chyba oproti kalibraci kamery ze snímků, kde nebylo korigováno zkreslení. Dále byla prokázána dostatečná opakovatelnost i při použití pouze 5 až 8 snímků křivky radiálního zkreslení, které u použité kamery dominovalo, se na základě grafu na Obr. 5-19 v rámci jednotlivých experimentů lišily pouze nepatrně, přestože se v jednotlivých experimentech výrazněji lišily koeficienty u druhého a třetího členu Taylorova rozvoje radiálního zkreslení. Relativně dobrou opakovatelnost vykazovaly také koeficienty tangenciálního zkreslení, přestože použitá kamera vykazovala tuto chybu dle očekávání velmi malou. Špatná opakovatelnost pak byla zaznamenána u koeficientů afinního zkreslení, které použitá kamera vykazovala pouze minimální. Zbylou nekorigovanou nepřesnost, která je vzhledem k nízké hodnotě chyby rekalkulace referenčních značek do roviny obrazu minimální, případně horší opakovatelnost nevýrazných složek zkreslení kamery, lze primárně vysvětlit jako vliv nepřesnosti kalibračního pole. Průměrná chyba souřadnic referenčních značek byla v tomto případě přibližně 0,016 mm. Sekundárně jsou tyto nedokonalosti způsobeny kombinací vlivů jako je nepřesnost detekce elips v obraze, vliv chyb zobrazení, které vznikají v důseldku nepřesnosti geometrie optické soustavy kamery, které nelze popsat prezentovanými rovnicemi nebo nepřesnost vniklou aproximací rovnic zkreslení optické soustavy, případně dalších vlivů. Vysoká dosažená přesnost je vykoupena vyššími výpočetními nároky ty stoupají přibližně v závislosti na druhé mocnině použitých kalibračních snímků. Lze říci, že kvalitní kalibrace nelineárních parametrů jedné kamery trvá na běžném PC přibližně 10 20 minut. Takový čas je přijatelný vzhledem k faktu, že tento úkon bude prováděn pouze jednou při instalaci systému. 6.3 6.4 6.4.1 69
DISKUZE 6.4.2 Kalibrace stereopáru Přesnost kalibrace stereopáru byla ověřena na celkem 7 sadách fotografií. Hlavní sledovanou hodnotou byla průměrná odchylka rekalkulovaných souřadnic kalibračních značek od referenčních souřadnic v prostoru. Tato hodnota činila průměrně 0,029 mm jedná se o vzdálenost odpovídajících si bodů v prostoru. Tato chyba byla dosažena v měřícím objemu přibližně 750 500 200 mm pomocí digitální zrcadlovky s rozlišením 10,2 MPx. Rovněž je přijatelná průměrná odchylka odpovídajících si bodů rekalkulovaných z informací z jednotlivých kamer (parametr s pxp ), která byla průměrně 0,05 mm. Obě hodnoty jsou pro vyvíjenou aplikaci více než dostačující. Výpočetní nároky aplikace jsou také přijatelné kalibrace na běžném osobním PC trvá přibližně 25 sekund. Je-li brána v úvahu průměrná chyba referenčních souřadnic referenčních značek, která je dle Obr. P 5 0,018 mm, lze říci, že celý algoritmus kalibrace dokonce naráží na limit přesnosti kalibračního pole dalo by se předpokládat, že pokud by bylo k dispozici přesnější kalibrační pole, měřené odchylky by byly menší a tím by byla celková přesnost systému vyšší. 70
ZÁVĚR 7 ZÁVĚR V rámci diplomové práce vznikla aplikace pro kalibraci kamer v prostředí MATLAB, která je spolehlivá, generuje přesné výsledky a vyžaduje naprosté minimum uživatelských vstupů. V rámci vývoje bylo dosaženo: návrh dobře rozlišitelných kódovaných kalibračních značek robustní algoritmus detekce eliptických bodů (potenciálních kalibračních značek) v obraze přesná metoda měření souřadnic středů eliptických objektů v obraze spolehlivá metoda automatického dekódování kódů kalibračních značek metoda výpočtu nelineárních parametrů kamery přesná metoda kalibrace stereopáru Metoda kalibrace je přizpůsobena svojí aplikaci: Jako kalibrační pole používá prostorové pole kódováných kalibračních značek o známé poloze, tím se vyhýbá nutnosti použití velmi velkého rovinného kalibračního pole s pravidelným vzorem (kalibrace bude prováděna v místě instalace systému). Kalibrace může probíhat spolehlivě i za zhoršených světelných podmínek nebo v případě vyšší úrovně šumu v obraze. Metoda je velmi přesná přestože by i méně přesná kalibrace splňovala požadavky současné aplikace, pro další možný vývoj aplikace je výhodou nebude významě ovlivňovat získané výsledky. Výpočetní čas celé kalibrace je relativně dlouhý, nicméně splňuje kladené požadavky. Další vývoj obnáší implementaci algoritmu kalibrace do původní aplikace pro měření rotačně symetrických výkovků. Navržené algoritmy je také možné optimalizovat, aby bylo dosaženo kratšího výpočetního času a spolehlivější konvergence například nahradit ve všech algoritmech matici rotace, využívající goniometrické funkce za matici rotace využívající funkce algebraické. Také lze optimalizovat řešení úlohy probíhající v rámci všech algoritmů využívající metodu nelineárních nejmenších čtverců dostupnou jako funkci v prostředí MATLAB, tak, aby probíhala způsobem uvedeným v literatuře [6]. Dále lze vyzkoušet i jiné metody pro rozpoznávání kódů kalibračních značek jako je například momentová metoda nebo Fourierovy deskriptory, případně optimalizovat stávající řešení neuronových sítí a porovnat výsledky těchto algoritmů s použitou metodou. 7 71
SEZNAM POUŽITÝCH ZDROJŮ 8 SEZNAM POUŽITÝCH ZDROJŮ [1] TIAN, Zhisong. Dimension measurement of hot large forgings with a novel timeof-flight system. The International Journal of Advanced Manufacturing Technology [online]. 2009, 44(1-2), 125-132 [cit. 2016-10-20]. DOI: 10.1007/s00170-008-1807-8. ISSN 02683768. [2] ZATOČILOVÁ, Aneta. Měření a vyhodnocování přímosti osy rotačních výkovků pomocí fotogrammetrie a analýzy obrazu. Brno, 2014. [3] JIA, Zhenyuan. An improved image acquiring method for machine vision measurement of hot formed parts. Journal of materials processing technology [online]. 2010, 210(2), 267-271 [cit. 2016-10-20]. DOI: 10.1016/j.jmatprotec.2009.09.009. ISSN 09240136. [4] MITEQ. FERROTRON A MINTEQ DIVISION [online]. c2011 [cit. 2016-11-02]. LaCamForge. <http://www.minteq.com/fileadmin/user_upload/minteq/ PDF/M- FE-30-PDF-Forge Jan2011_.pdf >. [5] DWORKIN, S B. Image processing for machine vision measurement of hot formed parts. Journal of materials processing technology [online]. 2006, 174(1-3), 1-6 [cit. 2016-10-20]. DOI: 10.1016/j.jmatprotec.2004.10.019. ISSN 09240136. [6] LUHMANN, Thomas. Close range photogrammetry: principles, techniques and applications. Dunbeath: Whittles Publishing, 2011. ISBN 978-1-84995-057-2. [7] BHADAURIA, H.S. Comparison between Various Edge Detection Methods on Satellite Image. International Journal of Emerging Technology and Advanced Engineering [online]. 2013, 3(6), 324-328 [cit. 2016-11-02]. ISSN 2250-2459. Dostupné z: http://www.ijetae.com/files/volume3issue6/ijetae_0613_54.pdf [8] SHRIVAKSHAN, G.T. A Comparison of various Edge Detection Techniques used in Image Processing. International Journal of Computer Science Issues [online]. 2012, 5(9), 269-278 [cit. 2016-11-02]. ISSN 1694-0814. Dostupné z: http://www.ijcsi.org/papers/ijcsi-9-5-1-269-276.pdf [9] KALMAN, Dan. General Equation of an Ellipse. The Journal of Online Mathematics and Its Applications [online]. 2008, 8(1) [cit. 2016-11-09]. Dostupné z: http://www.maa.org/external_archive/joma/volume8/kalman/general.html [10] ROBSON, S. Principal Point Behaviour and Calibration Parameter Models for Kodak DCS Cameras. Photogrammetric Record [online]. 1998, 16(92), 165-186 [cit. 2017-05-04]. DOI: 10.1111/0031-868X.00119. ISSN 0031868X. [11] Melen, T. Geometrical modelling and calibration of video cameras for underwater navigation. Norges tekniske høgskole, Institutt for teknisk kybernetikk, 1994. [cit. 2017-05-03]. [12] KWON, Young-Hoo. DLT Method Calibration Error. Kwon3D [online]. 1998, [cit. 2017-05-04]. <http://www.kwon3d.com/>. [13] GARRIDO JURADO, S. Automatic generation and detection of highly reliable fiducial markers under occlusion. Pattern recognition [online]. 2014, 47(6), 2280-2292 [cit. 2016-11-06]. DOI: 10.1016/j.patcog.2014.01.005. ISSN 00313203. [14] GOM. Photogrammetry v7.5 SR1 Maunal Basic [online]. [cit. 2016-11-06]. < http://docslide.us/documents/photogrammetry-v7-5-sr1-adv-1st-en-rev-c- 1.html>. [15] scanreference. scanreference [online]. [cit. 2016-11-06]. <http://www.scanreference.com/>. 72
SEZNAM POUŽITÝCH ZDROJŮ [16] Aicon3D. MoveInspect Technology DPA [online]. [cit. 2016-11-06]. <http://aicon3d.com/products/moveinspect-technology/dpa/at-a-glance.html>. [17] rhinophoto. For successful 3d digitizing with your camera [online]. [cit. 2016-11- 06]. < http://www.rhinophoto3d.com/>. [18] Weisstein, Eric W. "Necklace". [online]. [cit. 2016-11-08]. MathWorld--A Wolfram Web Resource. <http://mathworld.wolfram.com/necklace.html >. [19] LI, Zhanli. Research on Decoding Method of Coded Targets in Close-range Photogrammetry. Journal of Computational Information Systems [online]. 2010, 6(8), 2699-2705 [cit. 2016-12-11]. Dostupné z: http://www.jofcis.com/ [20] NIELSEN, Michael A. Neural Networks and Deep Learning. Determination Press [online]. 2015. [cit. 2016-11-17]. [21] LIAO, Hong-Yuan. A bar-code recognition system using backpropagation neural networks. Engineering applications of artificial intelligence [online]. 1995, 8(1), 81-90 [cit. 2016-12-11]. DOI: 10.1016/0952-1976(94)00059-V. ISSN 09521976. [22] MathWorks MATLAB Documentation. Single Camera Calibration App [online]. [cit. 2016-11-06]. < https://www.mathworks.com/help/vision/ug/single-cameracalibrator-app.html>. [23] MathWorks MATLAB Documentation. Stereo Camera Calibrator [online]. [cit. 2016-11-06]. <https://www.mathworks.com/help/vision/ref/stereocameracalibratorapp.html?searchhighlight=stereo%20camera%20calibrator&s_tid=doc_srchtitl e>. [24] Nikon. Products & Support D3000 [online]. [cit. 2017-05-06]. <http://imaging.nikon.com/lineup/dslr/d3000/spec.htm>. [25] Trilion Quality Systems. TRITOP CMM [online]. [cit. 2016-11-06]. GOM. <http://trilion.com/wp-content/uploads/2012/01/tritop-portable-cmm.pdf>. [26] 3D4U TECHNOLOGY. TRITOP [online]. [cit. 2016-11-06]. GOM. <http://www.3d4u.com.tr/en/products/tritop/> 73
SEZNAM POUŽITÝCH ZKRATEK, SYMBOLŮ A VELIČIN 9 SEZNAM POUŽITÝCH ZKRATEK, SYMBOLŮ A VELIČIN Symbol Jednotka Význam A - matice rotace s. s. kamery 2 v modelovém s. s. A, B, C - parametry obecné rovnice elipsy b - práh citlivosti neuronu b(bx, by, bz) mm vektor základny stereopáru B 1, B 2 - koeficienty tangenciálního zkreslení c mm, px ohnisková vzdálenost kamery C 1, C 2 - koeficienty afinního zkreslení d (d x, d y) mm, px chyba rekalkulace ref. značek do roviny obrazu d abs mm chyba rekalkulace ref. značek v prostoru F x, F y - funkce promítání mezi globálním s. s. a s. s. kamery g - hodnota jasu pixelu g - hodnota jasu přiřazená pixelu na základě dané funkce G mm 2, px 2 podmínka koplanarity (funkce) K 1, K 2, K 3 - koeficienty radiálního zkreslení L 1.. L 11 - parametry přímé lineární transformace m - měřítko M i - moment řady i-tého řadu r mm, px vzdálenost obrazového bodu od středu snímku R - matice rotace podél os X, Y, Z s - diskrétní funkce obrazu s pyp mm parametr kvality relativní orientace kamer T - práh třídy w - váha vstupu neuronu x, y - souřadnice v souřadném systému matice obrazu x (x, y, z ) mm, px souřadnice v s. s. kamery nezatížené chybou promítání x (x, y, z ) mm, px souřadnice v s. s. kamery zatížené chybou promítání x 0, y 0 mm, px souřadnice principálního bodu ve snímku x 0, y 0 - souřadnice středu eliptické oblasti v obraze x m, y m, z m - souřadnice v modelovém s. s. X(X, Y, Z) mm vektor souřadnic bodu v globálním s. s. X 0 (X 0, Y 0, Z 0 ) mm vektor souřadnic středu promítání v globálním s. s. Δ mm, px funkce zkreslení Δx (Δx, Δy ) mm, px vektor zkreslení obrazu v s. s. kamery Δx aff, Δy aff mm, px složky afinního zkreslení obrazu v s. s. kamery Δx rad, Δy rad mm, px složky radiálního zkreslení obrazu v s. s. kamery mm, px složky tangenciálního zkreslení obrazu v s. s. kamery λ - měřítko zobrazení ve snímku z kamery 1 stereopáru Δx tan, Δy tan 74
SEZNAM POUŽITÝCH ZKRATEK, SYMBOLŮ A VELIČIN µ - měřítko zobrazení ve snímku z kamery 2 stereopáru σ - matematická funkce neuronu Φ - Eulerova funkce ω, φ, κ rad rotace daného souřadného systému okolo os globálního s. s. X, Y, Z 75
SEZNAM OBRÁZKŮ A GRAFŮ 10 SEZNAM OBRÁZKŮ A GRAFŮ Obr. 1-1 Schéma použití systému LaCam... 15 Obr. 1-2 Testování fotogrammetrického systému na Ústavu Konstruování... 16 Obr. 2-1 Příklad použití prahování... 18 Obr. 2-2 Metody subpixelové detekce hran... 19 Obr. 2-3 Výsledek úpravy obrazu Cannyho operátorem... 20 Obr. 2-4 Znázornění okolí interpolovaného pixelu... 21 Obr. 2-5 Srovnání metod interpolace... 21 Obr. 2-6 Afinní rovinná transformace... 22 Obr. 2-7 Přímá a nepřímá geometrická rektifikace... 22 Obr. 2-8 Příklad aplikace geometrické rektifikace obrazu... 23 Obr. 2-9 Elipsové operátory schéma hvězdicového a Zhouova operátoru... 24 Obr. 2-10 Srovnání oblasti použitelnosti metod měření středů elips v obraze... 24 Obr. 2-11 Znázornění parametrů vnějších a některých vnitřních parametrů kamery 25 Obr. 2-12 Schéma reálného zobrazení bodu P na obrazový bod P... 27 Obr. 2-13 Příklad deformace obrazu vlivem radiálního zkreslení... 27 Obr. 2-14 Příklad deformace obrazu vlivem tangenciálního zkreslení... 28 Obr. 2-15 Příklad deformace obrazu vlivem afinního zkreslení... 28 Obr. 2-16 Znázornění modelového souřadného systému kamer... 31 Obr. 2-17 Kódované kalibrační značky... 33 Obr. 2-18 Příklady čtvercových kalibračních značek... 34 Obr. 2-19 Schéma neuronové sítě... 35 Obr. 2-20 Znázornění neuronu a jeho matematických funkcí... 36 Obr. 2-21 Dialogové okno pro nastavení parametrů kalibrace kamer... 38 Obr. 2-22 Uživatelské prostředí aplikace Single Camera Calibration App... 39 Obr. 4-1 Fotogrammetrický systém TRITOP... 43 Obr. 4-2 Geometrie kalibrační značky v závislosti na parametru a... 44 Obr. 4-3 Použitá scéna pro srovnání metody prahování a Cannyho algoritmu... 46 Obr. 4-4 Aplikace metody prahování na testovací scénu, práh 0,1... 47 Obr. 4-5 Aplikace Cannyho algoritmu na testovací scénu, citlivost 0,1... 47 Obr. 4-6 Detekce elips v prostředí MATLAB... 48 Obr. 4-7 Radiální paprsky v mezikruží, afinní transformace... 49 Obr. 4-8 Naskenovaný 15 bitový kód... 50 Obr. 4-9 Matice nejistoty neuronových sítí... 51 Obr. 4-10 Uživatelské prostředí aplikace pro výpočet nelineárních parametrů kamer... 53 Obr. 4-11 Uživatelské rozhraní aplikace kalibrace stereopáru... 56 Obr. 5-1 Knihovna 30 kalibračních značek s 15 bitovým kódem... 57 Obr. 5-2 Testovací scéna 1, rozdílné světelné podmínky částí snímku, vyhodnocení nově navrženým algoritmem... 58 Obr. 5-3 Testovací scéna 1, rozdílné světelné podmínky částí snímku, vyhodnocení původním algoritmem... 58 Obr. 5-4 Testovací scéna 2, gradientní světelné podmínky, vysoká úroveň šumu, vyhodnocení pomocí nově navrženého algoritmu... 59 Obr. 5-5 Testovací scéna 3, členitá scéna, dobré světelné podmínky... 59 Obr. 5-6 Obrázek ze softwaru systému TRITOP - scéna zachycená kamerou systému TRITOP a informace o poloze bodů v souřadném systému obrázku... 60 Obr. 5-7 Test dekódování kalibračních značek za špatných světelných podmínek.. 61 76
SEZNAM OBRÁZKŮ A GRAFŮ Obr. 5-8 Test algoritmu dekódování kalibračních značek značky snímány pod reltivně velkým úhlem 24 značek rozpoznáno správně, 6 nerozpoznáno, 0 záměn 61 Obr. 5-9 Kódované kalibrační značky systému TRITOP rozpoznané algoritmem dekódování kalibračních značek... 62 Obr. 5-10 Kalibrační kříže systému TRITOP rozpoznané algoritmem dekódování kalibračních značek... 62 Obr. 5-11 Příklad vhodných kalibrařních fotografií... 63 Obr. 5-12 Chyby rekalkulace d v jednotlivých experimentech... 63 Obr. 5-13 Konstanty nelineárního zkreslení kamery Nikon D3000... 64 Obr. 5-14 Vektorové pole znázorňující zkreslení snímku... 64 Obr. 5-15 Velikost celkového zkreslení... 65 Obr. 5-16 Velikost radiálního zkreslení... 65 Obr. 5-17 Velikost tangenciálního zkreslení... 65 Obr. 5-18 Velikost afinního zkreslení... 66 Obr. 5-19 Porovnání velikosti radiálního zkreslení pro jednotlivé experimenty... 66 Obr. 5-20 Příklad fotografií kalibračního pole... 67 Obr. 5-21 Výpočetní čas nelineárních parametrů kamery... 67 77
SEZNAM TABULEK 11 SEZNAM TABULEK Tab. 2-1 Maximální počet unikátních kruhových kalibračních značek... 33 Tab. 4-1 Parametry použité digitální zrcadlovky a objektivu... 43 Tab. 4-2 Základní přehled původních metod použitých v rámci kalibrace kamer a jejich náhrad... 44 Tab. 5-1 Porovnání výsledků nově navrženého algoritmu a původního algoritmu pro nalezení elips na testovací scéně... 58 Tab. 5-2 Porovnání přesnosti výsledků původně použité metody těžiště a nově použité metody hvězdicového operátoru... 60 Tab. 5-3 Výsledky experimentů v rámci ověření přesnosti kalibrace stereopáru... 67 78
SEZNAM PŘÍLOH 12 SEZNAM PŘÍLOH Příloha 1 Tab. P 1, Scéna 1, export ze systému TRITOP Příloha 2 Obr. P 1, Výsledky měření středů kalibračních značek scény 1 Příloha 3 Tab. P 2, Scéna 2, export ze systému TRITOP Příloha 4 Obr. P 2, Výsledky měření středů kalibračních značek scény 2 Příloha 5 Obr. P 3, Snímky pro tvorbu knihovny pro trénink neuronových sítí Příloha 6 Tab. P 3, Výsledky výpočtů nelineárních parametrů kamery Příloha 7 Obr. P 4, Protokol o měření kalibrační scény systémem TRITOP 1 Příloha 8 Obr. P 5, Protokol o měření kalibrační scény systémem TRITOP 2 Příloha 9 Aplikace v prostředí MATLAB Příloha 10 Návod k obsluze aplikace 12 79
PŘÍLOHA PŘÍLOHA Tab. P 1 Výsledky měření středů kalibračních značek scény 1, kde n je číslo značky, d je průměr značky, x 0 a y 0 jsou referenční souřadnice středu kalibrační značky ve snímku, x a y jsou souřadnice určené danou metodou a δ je hodnota odchylky dle vztahu δ = (x 0 x) 2 + (y 0 y) 2 Č. značky n [-] Průměr značky d [px] TRITOP x 0 [px] y 0 [px] Původní algoritmus (prahování + těžiště) x [px] y [px] δ [px] Nový algoritmus (hvězdicový operator) x [px] y [px] 1 26,95 520,76 1902,49 520,80 1902,46 0,05 520,78 1902,49 0,02 2 21,71 670,85 1285,18 670,75 1285,17 0,11 670,81 1285,18 0,04 3 25,41 797,62 1722,08 797,58 1722,03 0,06 797,58 1722,09 0,04 4 22,77 853,9 1412,6 853,97 1412,58 0,07 853,89 1412,62 0,02 5 23,77 1054,99 1549,23 1055,06 1549,22 0,07 1055,01 1549,26 0,03 6 25,35 1273,36 1697,73 1273,36 1697,73 0,00 1273,35 1697,72 0,02 7 22,56 1296,71 1391,88 1296,78 1391,90 0,07 1296,72 1391,89 0,02 8 26,69 1503,17 1850,82 1503,17 1850,84 0,02 1503,15 1850,82 0,02 9 21,44 1515,29 1249,72 1515,31 1249,74 0,03 1515,30 1249,71 0,02 10 22,96 2778,08 1453,21 2777,99 1453,16 0,11 2778,06 1453,21 0,02 11 23,46 3076,8 1527,14 3076,70 1527,05 0,13 3076,76 1527,12 0,04 12 27,69 3295,42 2057,01 3295,42 2057,06 0,05 3295,42 2057,02 0,01 13 25,72 3346,88 1823,89 3346,79 1823,87 0,09 3346,87 1823,89 0,01 14 23,79 3396,28 1604,03 3396,31 1604,09 0,07 3396,26 1604,05 0,02 15 21,97 3439,16 1409,36 3439,19 1409,40 0,05 3439,18 1409,37 0,03 16 20,46 3476,32 1235,04 - - - 3476,29 1235,02 0,04 17 24,06 3721,04 1683,96 3720,98 1683,94 0,06 3721,04 1683,96 0,01 18 24,52 4045,74 1762,46 4045,63 1762,47 0,11 4045,70 1762,46 0,04 δ [px] Obr. P 1 Scéna 1, export ze systému TRITOP 80
PŘÍLOHA Tab. P 2 Výsledky měření středů kalibračních značek scény 2, kde n je číslo značky, d j průměr značky, x 0 a y 0 jsou referenční souřadnice středu kalibrační značky ve snímku, x a y jsou souřadnice určené danou metodou a δ je hodnota odchylky dle vztahu δ = (x 0 x) 2 + (y 0 y) 2 Č. značky n [-] Průměr značky d [px] TRITOP x 0 [px] y 0 [px] Původní algoritmus (prahování + těžiště) x [px] y [px] δ [px] Nový algoritmus (hvězdicový operator) x [px] y [px] 1 18,63 913,35 2158,14 913,23 2158,08 0,13 913,34 2158,14 0,01 2 16,40 945,47 1657,19 945,38 1657,16 0,10 945,45 1657,20 0,02 3 18,04 1079,93 2011,82 1079,93 2011,79 0,03 1079,92 2011,82 0,01 4 16,75 1087,75 1760,03 1087,67 1760,10 0,11 1087,74 1760,05 0,02 5 17,22 1239,39 1867,38 1239,34 1867,31 0,09 1239,40 1867,41 0,03 6 16,69 1394,24 1731,51 1394,18 1731,55 0,07 1394,25 1731,52 0,02 7 17,98 1399,2 1980,62 1399,09 1980,61 0,11 1399,18 1980,61 0,03 8 16,08 1538,39 1604,95 1538,29 1604,91 0,11 1538,38 1604,96 0,01 9 18,49 1561,99 2093,7 1562,02 2093,76 0,07 1561,99 2093,72 0,02 10 16,78 2421,01 1744,89 2420,98 1744,89 0,03 2421,02 1744,89 0,01 11 17,15 2624,47 1797,67 2624,55 1797,66 0,08 2624,46 1797,67 0,01 12 19,11 2740,47 2205,86 2740,49 2205,89 0,04 2740,46 2205,87 0,01 13 18,11 2790,11 2027,55 2790,13 2027,58 0,04 2790,11 2027,55 0,00 14 17,29 2839,73 1851,91 2839,79 1851,91 0,06 2839,73 1851,91 0,01 15 16,49 2884,98 1689,63 2884,90 1689,63 0,08 2884,99 1689,64 0,01 16 15,83 2926,23 1538,69 2926,23 1538,71 0,02 2926,24 1538,70 0,02 17 17,42 3055,97 1907,6 3056,03 1907,56 0,07 3055,95 1907,60 0,02 18 17,64 3269,89 1961,35 3269,97 1961,30 0,09 3269,90 1961,35 0,01 δ [px] Obr. P 2 Scéna 2, export ze systému TRITOP 81
PŘÍLOHA Obr. P 3 Snímky pro tvorbu knihovny pro trénink neuronových sítí 82
PŘÍLOHA K1 [ 10-9 ] K3 [ 10-24 ] B1 [ 10-8 ] B2 [ 10-8 ] C1 [ 10-4 ] C2 [ 10-4 ] d'res [px] d'dlt [px] Tab. P 3 Výsledky výpočtů nelineárních parametrů kamery v rámci jednotlivých experimentů konstanty K 1, K 2, K 3, B 1, B 2, C 1 a C 2 jsou vypočítané nelineární parametry kamery, d res respektive d DLT jsou chyby rekalkulace referenčních bodů do roviny obrazu metodou prostorové resekce s vypočítanými parametry vnitřní oreintace kamery respektive metodou přímé lineární transformace z nekorigovaných snímků, n je celkový počet detekovaných značek ve všch použitých snímcích a N je počet použitých kalibračních snímků Číslo scény 1 2 3 4 5 6-1,57-1,67-1,68-1,73-1,60-1,65 K2[ 10-17 ] -1,54 4,30 3,95 6,41-0,28 2,58 4,43-3,94-2,94-6,75 2,85-0,30 6,92 5,38 7,83 7,16 6,18 5,64-2,70-2,79-3,07-3,18-2,71-2,17 2,11 1,49 2,07 2,40 1,28 1,38 1,10-0,29-0,52-0,27-0,60-1,21 0,074 0,077 0,065 0,082 0,074 0,071 1,033 0,879 0,903 0,915 0,894 0,773 n [-] 314 296 319 386 271 402 N [-] 6 6 6 8 5 8 83
PŘÍLOHA Obr. P 4 Protokol o přesnosti měření kalibrační scény systémem TRITOP pro test přesnosti a opakovatelnosti algoritmu kalibrace nelineárních parametrů kamery Obr. P 5 Protokol o přesnosti měření kalibrační scény systémem TRITOP pro test přesnosti algoritmu kalibrace stereopáru 84