VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY Estimace parametrů fotoaparátu/objektivu SEMESTRÁLNÍ PROJEKT AUTOŘI PRÁCE VEDOUCÍ PRÁCE Bc. Šimon Bilík Bc. Marek Farba Bc. Pavel Popovský Ing. Petr Gabrlík BRNO 2016
Obsah 1 Zadání... 3 2 ÚVOD... 4 3 TEORETICKÝ ROZBOR... 5 3.1 Parametry kamerové kalibrace [1]... 5 3.2 Zkreslení... 6 3.2.1 Radiální zkreslení... 6 3.2.2 Tangenciální zkreslení... 7 3.3 Typy kalibrace [2]... 8 3.4 Princip kalibrace využívající 2D rovinu... 8 3.5 Softwarové nástroje... 9 3.5.1 Maltab Camera Calibrator... 9 3.5.2 Agisoft Lens... 10 4 ESTIMACE PARAMETRŮ CANON POWERSHOT G16... 11 4.1 Ověření vlivu vysunutí zoomovacího objektivu na parametry dvojice F-O... 11 4.1.1 Popis experimentu:... 11 4.1.2 Podmínky experimentu:... 11 4.1.3 Pořízení referenčních dat:... 11 4.1.4 Pořízení měřených dat:... 12 4.1.5 Způsob zpracování naměřených dat:... 12 4.1.6 Vyhodnocení naměřených dat:... 12 5 Estimace parametrů Sony α7+28mm objektiv... 18 5.1 Popis experimentu:... 18 5.1.1 Základní parametry fotoaparátu Sony α7 [1]... 18 5.1.2 Podmínky experimentu... 18 5.1.3 Způsob zpracování naměřených dat... 19 5.1.4 Zpracování parametrů pomocí matlab skriptu... 19 5.1.5 Vyhodnocení naměřených dat... 20 5.1.6 Externí spoušť realizovaná Arduinem:... 28 6 Program robota Epson C4... 29 6.1 Příprava komunikace s robotem... 29 6.2 Módy ovládání... 29 7 Závěr a návrhy na zlepšení experimentu... 30 8 Použité zdroje... 31 9 Přílohy:... 32 2
1 Zadání Estimace parametrů fotoaparátu/objektivu.cílem projektu je vyzkoušet různé SW nástroje a přístupy estimace parametrů fotoaparátu a objektivu pro použití ve fotogrammetrii. Řešitelé se seznámí s významem jednotlivých kalibračních parametrů, měření bude provedeno s různými přístroji, objektivy a metodami. Výsledkem by měly být praktické poznatky a postupy, jak kalibraci provádět a jaký nástroj zvolit. 3
2 ÚVOD Při použití jakéhokoliv fotoaparátu dochází vlivem nedokonalostí jeho optické soustavy ke zkreslení výsledného obrázku (viz kapitola Teoretický rozbor). Při použití fotoaparátu ke každodenním nebo uměleckým účelům tento jev není tak důležitý, nebo se jej naopak využívá (fish-eye camera). Při použití fotoaparátu k měřickým účelům je ale tento jev nežádoucí a snažíme se jej proto kompenzovat. Kompenzace zkreslení spočívá v jeho matematickém popsání za znalosti tzv. intrinsických (vnitřních) parametrů soustavy fotoaparátu a objektivu a následné softwarové korekci výsledného obrázku. Klíčovou částí je právě zjištění vnitřních parametrů soustavy fotoaparátu, mezi které patří: ohnisková vzdálenost, radiální a tangenciální zkreslení, posun centrální osy soustavy, zkosení pixelů čipu. Zjišťování těchto parametrů se nazývá kalibrace fotoaparátu. Cílem projektu je zjistit možnosti různých nabízených softwarových nástrojů a pro tento účel vhodný vybrat. Zároveň bychom rádi navrhli univerzální částečně automatizované řešení pro kalibraci jakéhokoliv digitálního fotoaparátu. 4
3 TEORETICKÝ ROZBOR V této kapitole rozebereme veličiny, vztahy a metody kamerové kalibrace. 3.1 Parametry kamerové kalibrace [1] Tato kapitola se týká modelu jednoduché kamera bez čoček a zkreslení dírková kamera.vnější (extrinsické) parametry kamery slouží k převedení vnějších světových souřadnic scény do vnitřních souřadnic kamery. V této práci se kalibrací těchto parametrů nezabýváme.jedná se o: translaci rotaci Vnitřní (intrinsické) parametry kamery slouží k transformaci bodů v 3D soustavě kamery do 2D pixelových souřadnic. Jedná se o: ohniskovou vzdálenost (focal length) optické centrum (principal point) zkosení (skew coefficient) Obrázek 1 Přepočet souřadnic Odvození vztahu pro přepočet mezi světovými souřadnicemi a souřadnicemi obrázku pomocí tzv. kamerové matice: w faktor zvětšení x,y souřadnice v obrázku X,Y,Z světové souřadnice P kamerová matice ww[xx yy 1] = [XX YY ZZ 1]PP 5
E extrinsická matice I intrinsická matice PP = EEEE PP = RR ff xx 0 0 tt ss ff yy 0 cc xx cc yy 1 R matice rotace t translace f x, f y ohnisková vzdálenost v pixelech c x, c y souřadnice optického centra s koeficient zkosení (nenulový pokud nejsou obrazové osy kolmé) Další vztahy: ff xx = FF pp xx, ff yy = FF pp yy F ohnisková vzdálenost ve světových jednotkách (mm) p x, p y velikost pixelu ve světových jednotkách (mm) ss = ff yy tan αα Obrázek 2 Popis parametrů zkosení Pro nás bude důležitá intrinsická matice vnitřních parametrů 3.2 Zkreslení Předchozí vztahy platí pro model ideálního promítání bez čoček. Při použití čoček však dochází k různým optickým zkreslením, které je pro přesný popis skutečné kamery potřeba matematicky popsat. Existují 2 základní typy zkreslení, které budeme určovat - radiální a tangenciální. 3.2.1 Radiální zkreslení Radiální zkreslení je způsobeno odlišným lomem světla na krajích čočky oproti lomu ve středu. Se vrzůstající vzdáleností od optické osy čočky r roste nebo klesá zvětšení čočky. Podle toho rozlišujeme tzv. poduškové (zvětšení roste s r) a soudkové zkreslení (zvětšení klesá s r). 6
Obrázek 3 Popis radiálního zkreslení Matematický popis radiálního zkreslení: r vzdálenost od optického středu čočky x,y nezkreslené souřadnice pixelů k1, k2, k3 koeficienty radiálního zkreslení xx dd = xx(1 + kk1 rr2 + kk2 rr4 + kk3 rr6) yy dd = yy(1 + kk1 rr2 + kk2 rr4 + kk3 rr6) Obrázek 4 Soudkovité radiální zkreslení v praxi 3.2.2 Tangenciální zkreslení Tangenciální zkreslení se objevuje, když obrazová promítací rovina a soustava čoček nejsou dokonale rovnoběžné. Zkreslení se potom v obraze projeví jako nepřirozená perspektiva. xx dd = xx + [2 pp1 xx yy + pp2 (rr2 + 2 xx2)] yy dd = yy + [pp1 (rr2 + 2 yy2) + 2 pp2 xx yy] x,y nezkreslené souřadnice v obrázku r2 = x2 + y2 p1,p2 koeficienty tangenciálního zkreslení 7
Obrázek 5 Nalevo snímek s nekompenzovaným tangenciálním zkreslením, napravo po kompenzaci 3.3 Typy kalibrace [2] Kalibrace kamery znamená nalezení parametrů soustavy objektiv / kamera. Potřebujeme ji pro korekci zkreslení čoček, měření velikosti objektů a k určení pozice kamery ve scéně. Nás zajímají pouze dříve zmíněné vnitřní parametry optické soustavy. Ke kalibraci potřebujeme vhodný kalibrační objekt, u kterého známe určité parametry. Dle typu tohoto objektu můžeme kalibrace rozdělit na následující typy: a) Kalibrace využívající 3D objekt Kalibrace je založená na snímkování 3D objektu, jehož poloha je v prostoru známá, většinou se využívají dvě nebo tři na sebe kolmé roviny. Tato metoda poskytuje nejpřesnější výsledky, ale zpravidla vyžaduje drahé vybavení a náročnou práci v laboratoři. b) Kalibrace využívající 2D rovinu Kalibračním objektem je rovina, která se snímkuje z různých pozic tak, že se pohybuje buď s rovinou, nebo s fotoaparátem. Pro výpočet ale není nutné parametry tohoto pohybu znát. Tento postup je snadný a často používaný. c) Kalibrace využívající 1D linii Tato relativně nová technika využívá kalibrační objekt složený z několika kolineárních bodů. Kamera může být kalibrována například snímkováním linie pohybujícího se kolem pevného bodu. d) Autokalibrace Metoda je založená na snímkování statické scény za vhodného předpokladu tvaru vnitřních parametrů. S dostatečným počtem snímků je možné urči vnitřní i vnější parametry projekčních modelů. Jelikož počet odhadovaných parametrů je podstatně větší než v předešlých případech, je tato technika matematicky složitější. Hledání odpovídajících si bodů v nedefinované scéně je výpočetně náročné. 3.4 Princip kalibrace využívající 2D rovinu Tímto způsobem jsme se rozhodli naši kameru kalibrovat.ke kalibraci se používá tzv kalibrační mřížky s definovaným vzorem (např.: šachovnice). Mřížka se nasnímá pod různými 8
úhly (minimálně 2 snímky) a ve snímcích jsou softwarovým algoritmem vyhledávány odpovídající si body. Postup kalibrace je následující: 1. Vytištění vzoru a jeho umístění na rovný povrch. 2. Pořízení několika snímků kalibrační roviny z různých pozic. 3. Detekce bodů na snímcích. 4. Určení pěti prvků vnitřní orientace a všech prvků vnější orientace pomocí analytického řešení. 5. Určení koeficientů radiální distorze pomocí metody nejmenších čtverců. 6. Vylepšení určení všech parametrů minimalizací. K přesné kalibraci je nezbytné zaručit přesnou rovinnost kalibrační mřižky a ověřit správnost spárování odpovídajících si bodů. 3.5 Softwarové nástroje Všechny kalibrační experimenty provádíme na dvou dostupných softwarových nástrojích. Prvním je Matlab toolbox CameraCalibrator a zdarma dostupný Agisoft Lens. Výsledky obou nástrojů porovnáme a vyhodnotíme. 3.5.1 Maltab Camera Calibrator Modul obsahuje GUI zobrazující Detekované body. Výstupem kalibrace je Matlab struktura obsahující všechny informace o kalibračním sezení včetně zamítnutých fotografií, estimačních chybách. Výhodou Camera Calibratoru je jeho otevřené, byť mírně složitější prostředí. Ukazuje chyby v detekovaných obrázcích a zřetelně o tom uživatele informuje. Umožňuje kalibraci 3 radiálních a 2 tangenciálních koeficientů + skew faktor. Obrázek 6 Prostředí Maltab Camera Calibrator 9
3.5.2 Agisoft Lens Agisoft je minimalistické řešení přehledně zobrazující výsledné parametry. Pracuje s formátem.xml vstupních i výstupních dat. Jeho výhodou je možnost aproximovat radiální i tangenciální zkreslení 4 koeficienty. Nevýhodou je uzavřené prostředí, kdy nedá uživateli vědět na kterých snímcích nedetekoval kalibrační šachovnici (verze 1.3 ). Obrázek 7 Prostředí Agisoft Lens 10
4 ESTIMACE PARAMETRŮ CANON POWERSHOT G16 V této kapitole jsou nejprve popsány původně navržené experimenty, následně pak skutečně provedené a na konci jsou tyto změny zdůvodněny spolu s návrhy na další zlepšení. 4.1 Ověření vlivu vysunutí zoomovacího objektivu na parametry dvojice F-O Jako část řešení semestrálního projektu jsme se rozhodli prověřit, zda je dosud používaný fotoaparát Canon PowerShot G16 vhodný pro použití ve fotogrammetrii. Při konzultaci jsme byli upozorněni na skutečnost, že fotoaparát má vysunovací objektiv a že kvůli tomuto faktu nemusí být zajištěna stálost parametrů insitrické matice. Problém vzniká proto, že vysunovací objektiv má drobné vůle ve svém mechanismu a nejsme schopni odhadnout do přesně jaké polohy se vysune. Dalším možným problémem je pevnost mechanického upevnění, která je velmi pravděpodobně menší, než u fotoaparátů s pevným objektivem. Zde by tedy mohlo docházet k ovlivnění vnitřních parametrů například kvůli vibracím, nebo samovolným pohybem objektivu. V následujícím textu je tedy popsán experiment, kterým jsme se rozhodli prověřit tyto vlivy, způsob vyhodnocení dat a závěr, zda je vybraný fotoaparát vhodný pro výše zmíněnou aplikaci. 4.1.1 Popis experimentu: Při návrhu tohoto experimentu jsme se rozhodli prověřit drift parametrů fotoaparátu a objektivu získaných při opakovaném vypínání po každé sekvenci (20 opakování) a zapínání fotoaparátu proti referenčním hodnotám těchto parametrů, které jsme získali zpracováním 10 vyfocených sekvencí bez vypínání fotoaparátu. Tento experiment měl za úkol pouze prokázat závislost insitrických parametrů na vysunutí objektivu, proto byla všechna data zpracována pouze v programu Matlab. 4.1.2 Podmínky experimentu: Experiment probíhal za standartních podmínek - byla fotografována referenční šachovnice z programu Matlab nalepená na plastové desce. Ta byla umístěná na robotickém rameni, které vykonávalo stejnou sekvenci 45 pohybů jako u ostatních experimentů. Fotoaparát byl umístěn na stativu, jehož střed se nacházel 50 cm od paty robotického ramene a byl nastaven na následující parametry: Čas závěrky: 1/20 s Clona: 4,0 Zaostření: 40 cm ISO: 100 Formát ukládání: JPEG Místnost byla plně osvětlena zářivkami a za robotické rameno jsme z důvodu rychlejšího zpracování v programu umístili modré fotografické pozadí. Pořizování snímků bylo realizováno za pomocí dálkové spouště vytvořené na platformě Arduino, která spínala s intervalem 5s. Spuštění sekvence a spouště bylo voleno tak, aby při pořízení snímku bylo rameno s šachovnicí vždy v klidové poloze. 4.1.3 Pořízení referenčních dat: Jako referenční data jsme zvolili průměr z 10 zpracovaných sekvencí, které byly vyfoceny bez mezivypínání fotoaparátu. S fotoaparátem na stativu nebylo během tohoto měření vůbec hýbáno a pro rozlišení jednotlivých sekvencí byly na desku lepeny čísla s pořadím. V programu jsou data získaná během jednotlivých sekvencí pojmenována s příponou RP, průměrná hodnota každého parametru pak s příponou P. 11
4.1.4 Pořízení měřených dat: Soubor dat, na kterém jsme ověřovali vliv polohy objektivu na vnitřní parametry soustavy, jsme získali vyfocením 20 sekvencí, mezi kterými jsme však fotoaparát vypínali a zapínali. Opětovným vypnutím a zapnutím jsme tedy získali 20 souborů dat s různou polohou objektivu vůči referenci. V programu jsou data získaná během jednotlivých sekvencí pojmenována s příponou M průměrná hodnota každého parametru pak s příponou MP. Obrázek 8 Fotografie experimentální sestavy 4.1.5 Způsob zpracování naměřených dat: Všechny pořízené fotografie byly zpracovány v již popsaném Camera Calibration toolboxu, který je součástí programu Matlab. Po přijetí snímků byly vypočítány všechny parametry a případně vyřazeny fotografie, které vykazovaly velkou chybu. Následně byla data uložena jako soubor s příponou.mat a to ve formátu Camera_Parameters_1_X pro referenční soubory a ve formátu Camera_Parameters_X+1_1 pro měřené soubory. Po ručním zpracování všech souborů dat je možné spustit skript Zpracovani_V4.m, který vypočítá průměrné hodnoty všech parametrů a jejich nejistoty pro referenční i měřené soubory. Tento skript také vykreslí tyto hodnoty do grafů, které vždy v dvojici porovnávají drift referenčních a měřených hodnot s jejich průměrnými hodnotami, v grafech s měřenými hodnotami jsou pak navíc zobrazeny průměrné hodnoty referencí. Grafy jsou vždy popsány a to i na osách a v legendě. Skript počítá vždy se souborem 10 referenčních hodnot a 20 měřených. 4.1.6 Vyhodnocení naměřených dat: V této části textu jsou popsány jednotlivé soubory parametrů, kdy jsou vždy u sebe zobrazeny grafy vyhodnocení reference a měřených dat. Jednotlivé parametry jsou vždy zobrazeny v závislosti na pořadí opakování sekvence. 12
Posun ohniskové vzdálenosti: Obrázek 9 Obrázek 10 Referenční hodnota ohniskové vzdálenosti vyšla průměrně 6,2615 ± 0,0006 mm a měřené 6,2666 ± 0,0053 mm. Zatím co nejistota měření bez vypínání fotoaparátu se pohybuje v řádech desetin μm, tak se nejistota měření při opětovném zasouvání objektivu pohybuje v řádech jednotek μm. Je patrný i rozdíl průměrných hodnot ohniskové vzdálenosti. 13
Posun skew faktoru: Obrázek 11 Obrázek 12 Referenční hodnota skew faktoru vyšla průměrně 5,3573 ± 0,1247 a měřené 4,6271 ± 0,4811. Při porovnání referenčních hodnot a hodnot získaných po vypínání fotoaparátu je patrný o řád větší rozptyl měřených parametrů, stejně jako větší nejistota měření. Na vliv pozice objektivu lze usuzovat i u tohoto parametru. 14
Posun souřadnic optického středu: Obrázek 13 Obrázek 14 Referenční souřadnice optického středu vyšly průměrně [2014,1 ± 0,7 1518,4 ± 0,7] px a měřené [2005,0 ± 5,4 1512,3 ± 4,2] px. Vzniklý rozdíl v řádu jednotek pixelů u souboru s vypínáním je pravděpodobně způsoben posunem objektivu v rovině rovnoběžné se snímačem. Opět si můžeme povšimnout menšího rozptylu u měření bez vypínání fotoaparátu. Rozdíly měřeného souboru proti referenčnímu se pohybují v jednotkách pixelů. 15
Posun parametrů tangeciálního zkreslení: Obrázek 15 Obrázek 16 Referenční hodnoty tangenciálního zkreslení vyšly průměrně [0,9899 ± 5,7730e-5 1,8000 ± 0,4619e-4] a měřené [2,1589 ± 5,7730e-5 9,6286±0,6114e-4 ]. Změna těchto parametrů je zřejmě způsobena změnou náklonu roviny objektivu vůči rovině snímače při vysouvání a zasouvání objektivu. 16
Posun parametrů radiálního zkreslení: Obrázek 17 Obrázek 18 Referenční hodnoty radiálního zkreslení vyšly průměrně [-0,6613 ± 12,4e-3-0,4491 ± 0,2003 2,3852 ± 0,9213] a měřené [-0,0265 ± 0,0044-0,1327 ± 0,0726 1,4315 ± 0,3321]. Drift těchto parametrů je pravděpodobně způsoben změnou vzdálenosti objektivu od snímače. 17
5 Estimace parametrů Sony α7+28mm objektiv Cílem experimentu je získat parametre fotoaparátu Sony α7 s vyměnitelným objektivem, kterého ohnisková vzdálenost je 28mm. Pro získaní těchto parametrů využijeme program Agisoft Lens(v 0.4.1 beta 64bit build 1718) a Camera Calibrator (Computer Vision System Toolbox v7.1 R2016a) od Matlabu. 5.1 Popis experimentu: Při návrhu tohoto experimentu jsme se rozhodli získat parametry fotoaparátu a objektivu při použití dvou různých šachovnic. S každou šachovnicí bylo pořízeno 10 sérií kalibračních snímků. Cílem experimentu bylo získat a porovnat základní parametry fotoaparátu při použití dvou různých šachovnic a vyhodnocení parametrů dvěma nezávislými estimačními programy. 5.1.1 Základní parametry fotoaparátu Sony α7 [1] Velikost senzoru : 35.80 23.90 mm Maximální rozlišení: 6000 x 4000 Pixel 5.1.2 Podmínky experimentu První papírová šachovnice byla přilepena k plastové desce pomocí lepící pásky. Druhá šachovnice byla vytisknuta na lepící fólii a následně přilepená na tu samou plastovou desku. Plastové deska byla umístěná na robotickém rameni, které vykonávalo stejnou sekvenci 45 pohybů jako u ostatních experimentů. Fotoaparát byl umístěn na stativu, jehož střed se nacházel 50 cm od paty robotického ramene a byl nastaven na následující parametry: Čas závěrky: 1/20 s Clona: F/3,5 ISO: 100 Formát ukládání: JPEG Režim ostření: manuálně Formát ukládaných dat jsme zvolili JPEG. Raw data jsme nemohli použít, protože matlab nedokázal analyzovat ten typ dat(.arw). Místnost byla plně osvětlena zářivkami a za robotické rameno jsme z důvodu rychlejšího zpracování v programu umístili modré fotografické pozadí. Pořizování snímků bylo realizováno za pomocí dálkové spouště vytvořené na platformě Arduino, která spínala s intervalem 5s. Spuštění sekvence a spouště bylo voleno tak, aby při pořízení snímku bylo rameno s šachovnicí vždy v klidové poloze. Na začátku experimentu se šachovnice v základní pozici manipulátoru automaticky zaostřila a pak režim ostření nastavil na manuální, aby bylo zajištěno stejných podmínek během celého experimentu. 18
Obrázek 19 Pořizovaní kalibračních fotek Sony α7 5.1.3 Způsob zpracování naměřených dat Všechny pořízené fotografie byly nejdříve pečlivě roztřízené do jednotlivých sérií. Složky "Sony a7_28mm\nalepka\fotky\1...10" a "Sony a7_28mm\papir\fotky\1...10". Následně proběhlo zpracování všech dvaceti sérií snímků v již popsaném Camera Calibration toolboxu, který je součástí programu Matlab. Po přijetí snímků byly vypočítány všechny parametry a případně vyřazeny fotografie, které vykazovaly velkou chybu. Matlab při analýze vkládaných fotografií vždy asi třetinu zamítnul. Z tohoto důvodu bylo nutné fotografie znovu vytřídit, respektive zamítnuté snímky se přesunuly do složky s názvem x. Následně byla pomocí nabídky "Save Sessions" výsledná data kalibrace uložena jako soubor s příponou.mat a to ve formátu Camera_Parameters_1_X. Vytřízené fotografie se importovali do programu Agisoft Lens, tlačidlem "calibrate" se spustila kalibrace, před jejím započetím se nastavili shodné parametre estimace a taktéž proběhlo zpracování všech dvaceti sérií snímků. Po ukončení jednotlivých kalibrací se výsledné parametre estimace vyexportovali do příslušných.xml souborů. 5.1.4 Zpracování parametrů pomocí matlab skriptu Po ručním zpracování všech souborů dat je možné spustit skript "Analyzuj_parametre.m", který načte potřebné data z.xml a.mat souborů, vykreslí v grafech dvojice parametrů z Agisoftu a Matlabu a vypočítá průměrné hodnoty všech parametrů. Grafy jsou vždy popsány a to i na osách a v legendě. Skript je vcelku robustní a při dodržení stávající hierarchie je možné analyzovat libovolný počet kalibračních sérií. Na začátku je nutné definovat velikost pixelu sloužící na přepočet ohniskové vzdálenosti z pixelů na milimetry. Následně se automaticky zjistí počet kalibračních sérií, nealokuje se 19
potřebný prostor pro všechny proměnné, vyčtou se parametry z.mat a.xml souborů a vykreslí se grafy. Pro vyčtení.xml hodnot jsem použil automaticky generovaný skript, získaný pomocí matlab funkce importovat data, který jsem následně dle potřeby upravil na funkci (xml_read.m). V případe jiné verze Agisoftu je potřebné zmíněnou funkci přizpůsobit. 5.1.5 Vyhodnocení naměřených dat V následující části práce se na obrázcích Obrázek 4 až Obrázek 13 nachází dvojice gráfů vykreslující vypočtené parametry, zkoumaného fotoaparátu a objektivu. První jsou vždy hodnoty parametrů papírové šachovnice a následně hodnoty parametrů získaných pomocí snímků nalepené šachovnice. Jednotlivé grafy porovnávají parametry získané ze shodných kalibračních fotografií ale z různých programů. Obrázek 20 Ukázka kalibrační fotografie - papírové šachovnice Obrázek 21 Ukázka kalibrační fotografie - nalepená šachovnice 20
Obrázek 22 Obrázek 23 21
Obrázek 24 Obrázek 25 22
Obrázek 26 Obrázek 27 23
Obrázek 28 Obrázek 29 24
Obrázek 30 Obrázek 31 25
Z gráfů na obrázcích Obrázek 23 až Obrázek 31 a z tabulky 1 vyplívá, že jednotlivé parametry fotoaparátu mají při použití nalepené šachovnice vždy menší hodnotu standardní směrodatné odchylky a tudíž jsou jednoznačně přesnější. Taktéž jsou všechny až na jedinou hodnotu standardní směrodatné odchylky parametrů vypočtené matlabem menší než při výpočtu pomocí Agisoftu, z čeho vyplívá, že Matlab jednotlivé hodnoty parametrů spočítal přesněji. Ačkoli nemáme k dispozici referenční hodnotu parametrů, nemůžeme jednoznačně prohlásit, která z hodnot naměřených parametrů je nejblíže k skutečné hodnotě parametrů zkoumaného fotoaparátu a objektivu. Ale na základě práce s jednotlivými programy a jejich výsledků budeme považovat za nejpřesnější hodnoty získané matlabem a to konkrétně jejich průměr při použití nalepené šachovnice, které jsou uvedeny v tabulce 3 a také v příloze B: v souboru " Parametry_Sony_a7_28mm.mat ". V příloze jsou taktéž všechny kalibrační fotky, soubory a skripty příslušné tomuto experimentu. Pro zdokonalení výsledků by bylo možné zvýšit počet kalibračních sérií, vyrobit větší a přesnější kalibrační šachovnici a zvážit konverzi raw dat na podporovaný formát. Papírová šachovnice Nalepená šachovnice Zkratka Průměr Odchylka Průměr Odchylka cx_a 2,94E+03 2,08E+00 2,95E+03 1,18E+00 cx_m 2,94E+03 1,00E+00 2,95E+03 4,28E-01 cy_a 1,98E+03 3,96E+00 1,96E+03 2,69E+00 cy_m 1,98E+03 1,16E+00 1,95E+03 6,39E-01 fx_a 4,79E+03 5,20E+00 4,79E+03 1,47E+00 fx_a_mm 2,86E+01 3,18E-02 2,86E+01 9,90E-03 fx_m 4,76E+03 9,49E-01 4,75E+03 4,53E-01 fx_m_mm 2,84E+01 5,70E-03 2,84E+01 2,70E-03 fy_a 4,79E+03 5,07E+00 4,80E+03 1,24E+00 fy_a_mm 2,86E+01 3,29E-02 2,87E+01 9,30E-03 fy_m 4,77E+03 9,69E-01 4,76E+03 4,52E-01 fy_m_mm 2,85E+01 5,80E-03 2,84E+01 2,70E-03 k1_a 8,38E-02 1,84E-02 1,90E-03 4,20E-03 k1_m 8,57E-02 1,29E-02 3,27E-02 1,30E-03 k2_a -1,08E+00 1,91E-01-2,13E-01 6,63E-02 k2_m -1,33E+00 1,66E-01-7,74E-01 1,82E-02 k3_a 3,53E+00 6,40E-01 1,04E+00 2,70E-01 k3_m 5,44E+00 7,35E-01 4,10E+00 8,17E-02 p1_a -1,40E-03 1,95E-04-2,20E-03 6,66E-05 p1_m -3,93E-04 1,22E-04-2,50E-03 2,38E-05 p2_a -2,70E-03 4,03E-04-1,80E-03 9,93E-05 p2_m -2,40E-03 2,31E-04-1,50E-03 4,15E-05 skew_a 1,08E+01 5,21E-01 2,21E+00 1,46E-01 skew_m 7,32E+00 3,95E-01 2,01E+00 4,30E-02 Tabulka 1 Hodnoty vypočtených parametrů fotoaparátu Sony a7 s 28mm objektivem 26
Význam Souřadnice optického středu v ose X Agisoft [pixel] Souřadnice optického středu v ose X Matlab [pixel] Souřadnice optického středu v ose Y Agisoft [pixel] Souřadnice optického středu v ose Y Matlab [pixel] Ohnisková vzdálenost v ose X Agisoft [pixel] Ohnisková vzdálenost v ose X Agisoft [mm] Ohnisková vzdálenost v ose X Matlab [pixel] Ohnisková vzdálenost v ose X Matlab [mm] Ohnisková vzdálenost v ose Y Agisoft [pixel] Ohnisková vzdálenost v ose Y Agisoft [mm] Ohnisková vzdálenost v ose Y Matlab [pixel] Ohnisková vzdálenost v ose Y Matlab [mm] Radiální skreslení koeficient k1 Agisoft [-] Radiální skreslení koeficient k1 Matlab [-] Radiální skreslení koeficient k2 Agisoft [-] Radiální skreslení koeficient k2 Matlab [-] Radiální skreslení koeficient k3 Agisoft [-] Radiální skreslení koeficient k3 Matlab [-] Tangenciální skreslení koeficient p1 Agisoft [-] Tangenciální skreslení koeficient p1 Matlab [-] Tangenciální skreslení koeficient p2 Agisoft [-] Tangenciální skreslení koeficient p2 Matlab [-] Zkosení pixelu Agisoft Zkosení pixelu Matlab Zkratka cx_a cx_m cy_a cy_m fx_a fx_a_mm fx_m fx_m_mm fy_a fy_a_mm fy_m fy_m_mm k1_a k1_m k2_a k2_m k3_a k3_m p1_a p1_m p2_a p2_m skew_a skew_m Tabulka 2 Vysvětlivky použitých zkratek v Tabulka 1 Význam Zkratka Hodnota Souřadnice optického středu v ose X Matlab [pixel] cx_m 2946,16800621362 Souřadnice optického středu v ose Y Matlab [pixel] cy_m 1951,61561891303 Ohnisková vzdálenost v ose X Matlab [pixel] fx_m 4753,09136899715 Ohnisková vzdálenost v ose Y Matlab [pixel] fy_m 4756,77829786672 Radiální skreslení koeficient k1 Matlab [-] k1_m 0,0326604075636543 Radiální skreslení koeficient k2 Matlab [-] k2_m -0,774009339395914 Radiální skreslení koeficient k3 Matlab [-] k3_m 4,10411838590874 Tangenciální skreslení koeficient p1 Matlab [-] p1_m -0,0024519299580095 Tangenciální skreslení koeficient p2 Matlab [-] p2_m -0,0015337691901153 Zkosení pixelu Matlab skew_m 2,00581853181404 Tabulka 3 Výsledné parametry fotoaparátu Sony a7 s 28mm objektivem 27
5.1.6 Externí spoušť realizovaná Arduinem: Při všech experimentech bylo nutné fotit v pravidelných okamžicích. Ideální a časově optimální řešení by bila synchronizace externí spouště s manipulátorem Epson. To by bylo však vcelku náročné a proto jsme se pro naše účely rozhodli pro nejjednodušší verzi externí spouště realizované na platformě Arduino a to konkrétně Arduino Nano. Externí spoušť není nic jiného než elektronický řízený spínač, který zkratuje dva vstupní kontakty připojené k fotoaparátu v stanovených časových intervalech. Tuto funkci realizuje jednoduchý program využívající přerušení nastavené na konstantní hodnotu. V našem případe jsme se rozhodli pro čas mezi jednotlivými snímky 5 sekund. Synchronizaci jsme po několika testech vyřešili tak, že po vyfocení prvního snímku jsme okamžitě spustili sekvenci poloh manipulátoru. Program " Externa_spoust.ino " se nachází v příloze A: Arduino program externí spouště a k jeho přeložení je nutné naimportovat použitou knihovnu "TimerOne.h". 28
6 Program robota Epson C4 K pohybování mřížky je využíván 6 osý průmyslovýrobot Epson C4 (případně C3), který je k dispozici v kanceláři Ing. Adama Chromého v CEITEC výzkumném centru. Pro jeho ovládání je použita C# knihovna. Program slouží k nastavení 45 různých pozic kalibrační mřížky. 6.1 Příprava komunikace s robotem Před spuštěním programu Epson je třeba nastavit IP adresa PC (pro správnou adresu je třeba zeptat se pracovníků). Spustíme robotaa inicializujeme programování na ovládacím boxu. Nejprve musíme zadat správnou adresu robota (0) Poté můžeme stistknutím tlačítka Otevření TCP otevřít komunikaci s robotem (1). Po úspěšném připojení se vlevo dole objeví nápis Connected. Dalším krokem je odbrždění robotu tlačítkem Inicializace (2). Robot nastavíme do výchozí pozice tlačítkem Home pozice (3). 6.2 Módy ovládání Program obsahuje dva módy: Manual a Auto. Manual je vhodný pro první spuštění sestavy a ověření všech kroků, zda někde nehrozí kolize. Tlačítkem Další krok (4) robot přesuneme do další pozice. Číslo dalšího kroku lze změnit v textovém poli Krok (5) Mód Auto slouží k ovládání již ověřených pozic robotu. Nejprve je potřeba ručně nastavit prodlevu v ms mezi jednotlivým nastavováním pozic textové pole (6). Hodnota musí odpovídat prodlevě časové spouště. Výchozí hodnota je 5000 ms. Po nastavení prodlevy lze pozicování spustit tlačítkem Spust sestavu (7). V módu Auto probíhaly naše veškeré experimenty. Pozicování robota lze ukončit tlačítkem Zavření TCP (8). Během celého experimentu je potřeba být ve střehu a mít nouzové vypínání robota stále na dosah! Obrázek 32 Program robota Epson C4 29
7 Závěr a návrhy na zlepšení experimentu Experiment podle nás jasně dokázal, že intrinsické parametry soustavy fotoaparát-objektiv závisí i na velmi malých změnách polohy vysunutí objektivu. Proti původnímu očekávání na poloze vysunutí závisí i parametry radiálního a tangenciálního zkreslení, tato závislost ovšem není tak významná jako u intrinsické matice. Při měření referenčních souborů, kdy nedocházelo k vypínání fotoaparátu mezi snímáním jednotlivých sekvencí se také projevil mírný drift parametrů. Ten může být způsoben jistou tolerancí při zpracování fotografií (zejména při nalezení odpovídajících si bodů), tak i drobnými změnami polohy objektivu, který není dokonale fixován. Tyto změny však bývají výrazně menší, než při zpracování souborů s vypínáním. Drift parametrů získaných ze souborů s vypínáním je nejvíce patrný u změny ohniskové vzdálenosti, která je o řád větší, než u souborů bez vypínání. Významný posun parametrů můžeme pozorovat u všech prvků intrinsické matice, například je možné zmínit výrazný posun optického středu. U těchto parametrů také můžeme pozorovat větší rozptyl. Předpokládáme, že tyto změny jsou vyvolány změnou polohy roviny objektivu proti rovině snímače a to ve všech směrech. Změna vzdálenosti obou rovin se nejvíce projeví v parametrech ohniskové vzdálenosti a radiálního zkreslení, změna jejich vzájemné orientace pak v parametrech skew faktoru, optického středu a tangenciálního zkreslení. Fotoaparát s výsuvným objektivem proto podle nás není vhodný pro aplikace vyžadující přesnou znalost parametrů intrinsické matice a zkreslení, protože není možné zaručit stálost těchto parametrů při otřesech, nebo vysouvání a zasouvání objektivu. V experimentu estimace parametrů Sony α7+28mm objektiv jsme analyzovali tento pár fotoaparát objektiv pomocí Matlabu a Agisoftu a pro stanovení parametrů jsme použili dvě různé šachovnice. Výsledkem experimentu je že, Matlab je za cenu větší složitosti přesnější nástroj pro estimaci parametrů. Taktéž jsme dokázali, že výsledné parametry nalepené šachovnice jsou přesnější než při šachovnici papírové. 30
8 Použité zdroje [1] What Is Camera Calibration? [online]. [cit. 2017-05-05]. Dostupné z: https://www.mathworks.com/help/vision/ug/cameracalibration.html?requesteddomain=www.mathworks.com [2] HOFMANOVÁ, Alžběta. Určení prvků vnitřní orientace digitálního fotoaparátu. Plzeň, 2014. Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra matematiky. [3] Α7 Perfection for all. SONY [online]. [cit. 2017-05-05]. Dostupné z: http://www.sony.com/electronics/interchangeable-lens-cameras/ilce-7-body-kit 31
9 Přílohy: Příloha A: Arduino program externí spouště Příloha B: Soubory, skripty a fotky k experimentu Sony a7 28mm Příloha C: Matlab skript a fotky k experimentu CANON POWERSHOT G16 Příloha D: Program robota Epson C4 Příloha E: Dokumentace 32