Kalibrace snímků fotogrammetrie s běžným digitálním aparátem Jakub Šolc Úvod Fotogrammetrie je obor, který se zabývá analýzou geometrických vztahů mezi objekty, jež jsou zachyceny na fotografickém snímku. Neocenitelnou roli hraje fotogrammetrie při zaměřování a dokumentaci kulturních památek, měření těžko přístupných objektů, při vyhodnocování leteckého snímkování a následné tvorbě mapy, při dokumentaci dopravních nehod atd. Mezi její výhody proti přímému měření patří i to, že v okamžiku pořízení snímku je uchován celkový stav a není ještě potřeba vědět, co bude později na snímku předmětem měření. Nejjednodušší metodou je tzv. jednosnímková fotogrammetrie. Ta vychází z vyhodnocení pouze jednoho snímku. V takovém případě není možno ze snímku získat třírozměrnou informaci. Pokud však předpokládáme, že měřený objekt je rovinný, je třetí rozměr dán rovinou objektu. Výslednou formou zpracovaného snímku je tzv. fotoplán, což je snímek transformovaný do roviny objektu, jako např. půdorys podlahy (viz obr. 2). Vícesnímková fotogrammetrie umožňuje vypočítat prostorové souřadnice bodů, jež jsou zachyceny překryvu několika různých snímků. Pro kolmý průmět měřeného objektu do roviny se používá termín ortofoto. Fotoplán je tedy speciálním případem ortofota. Obr. 1 a 2. Původní snímek podlahy a fotoplán (ortofoto) získaný projektivní transformací. Radiální distorze není odstraněna, což je patrné na prohnutí linie na horním okraji. K fotogrammetrii se využívají měřické komory, které mají přesně určené geometrické parametry, jako např. ohniskovou vzdálenost, polohu středu objektivu, středu a FSv ČVUT, katedra matematiky, MÚ AV ČR, UI AV ČR, e-mail: solc@mat.fsv.cvut.cz Tento článek je podpořen programem Informační společnost č. 1ET43415. 1
okrajů snímku, malé zkreslení objektivu atd. Aby bylo možno eliminovat nevyhnutelné optické vady, měly by být tyto parametry neměnné. Tyto značné nároky na komory vysvětlují poměrně vysoké ceny, které mohou dosahovat i řádu milionů Kč, což tuto technologii značně prodražuje. Pro práci s nižší požadovanou přesností by bylo možné vystačit i s levnějšími přístroji. Je však třeba překonat několik zásadních obtíží. Mezi ně patří zejména korekce zkreslení objektivu. Ukazuje se, že hlavní složka deformace obrazového pole se vyskytuje v radiálním směru, tj. ve směru od středu snímku, a je závislá pouze na vzdálenosti od středu snímku (viz obr. 3). Tuto složku nazýváme radiální distorzí objektivu. xx, yy, Dxs, Dsy 5 1 15 2 4 6 8 1 12 14 16 18 2 Obr. 3. Měřená deformace obrazového pole. Hlavní součástí je radiální distorze. Podaří-li se popsat průběh radiální distorze objektivu, je pak možno ke každému snímku vytvořit jeho nedeformovaný vzor. Bohužel radiální distorze významně závisí na zaostření objektivu a nastavení zoomu, proto nelze najít univerzální formuli pro radiální distorzi. Je však možné pořídit několik kalibračních snímků při podobných hodnotách zoomu a zaostření jako na vyhodnocovaném snímku a pak podle nich vybrat nejvhodnější model radiální distorze. Proto je třeba vyvinout metodu, jak s relativně malým úsilím vyhodnotit kalibrační snímek. Pro zjištění radiální distorze zde navrhuji tento postup: Nejdříve je potřeba sejmout kalibrační snímek, na kterém jsou v pravidelných rozestupech vyznačeny body o známých souřadnicích. Provést na snímku měření snímkových souřadnic obrazů vyznačených bodů. K tomu lze s výhodou použít algoritmus automatického rozeznávání, který zde bude popsán. 2
Správně provést přiřazení správných (tzv. skutečných) souřadnic k souřadnicím na snímku. Nalézt transformační klíč, který popisuje transformaci mezi skutečnými a snímkovými souřadnicemi. Pomocí klíče převést body z skutečných souřadnic na správné snímkové. Z rozdílů snímkových souřadnic měřených a správných získáme hodnoty distorze. Vytvořit vhodný model radiální distorze a případně jej použít k tvorbě ortofota. Automatické rozpoznání kalibračních bodů Nejdříve je potřeba kalibrační snímek vyfotit. Na snímku by měly být zřetelně zobrazeny jednoznačně identifikovatelné body o známých souřadnicích. Vhodné je uspořádání kalibračních bodů do čtvercové sítě s pravidelnými rozestupy (viz obr. 4). Vybereme zvláště ostře vykreslený výřez s obrazem bodu a nazveme jej vzorek. Nyní popíšeme postup, jak pomocí vzorku automaticky rozpoznat ostatní body. Výchozí obrázek lze popsat funkcí f : {,..., M} {,..., N} R, která každému bodu obrazového pole ve tvaru obdélníku (M + 1) (N + 1) přiřadí barvu. Barva bývá zpravidla kódována jako 3 bajty RGB, pro jednoduchost se omezme pouze na celkovou intenzitu osvětlení reprezentovanou jedním reálným číslem. Obdobně označme h : { m,..., m} { n,..., n} R funkci popisující vzorek o rozměrech (2m + 1, 2n + 1) pixlů s referenčním bodem o souřadnicích [, ]. Obr. 5. Vzorek h. Obr. 4. Kalibrační snímek f. Jako míra shody části obrázku se vzorkem může být použita korelace K K(x, y) = Cov(f xy, h) V ar(fxy ) V ar(h) = 3
= m (f(x + i, y + j) Ef xy ) (h(i, j) Eh) (f(x + i, y + j) Ef xy ) 2 m (h(i, j) Eh) 2, (1) kde f xy (i, j) = f(x + i, y + j) pro (i, j) { m,..., m} { n,..., n}. Vypočtěme tedy hodnotu funkce K : [m, M m] [n, N n] R v každém bodě jejího definičního oboru. V místech, kde se obrázek nejvíce podobá vzorku, má funkce K lokální maxima, a tam se také nacházejí rozpoznané kalibrační body. Výpočet podle formule (1) je časově značně náročný (vyžaduje cca O(M N mn) operací), nabízí se proto efektivnější postup. V čitateli (1) si všimněme dvojité sumy, která se podobá konvoluci (u v)(x, y) = R u(x t 1, y t 2 )v(t 1, t 2 ) dt 1 dt 2. 2 Fourierovu transformaci funkce u označíme F F T (u) podle názvu algoritmu jeho rychlé diskrétní implementace. Fourierova transformace má vlastnost, že konvoluce přejde na bodový součin dvou funkcí. Platí tedy F F T ( (u v)(x, y) ) = F F T ( u(x, y)) F F T (u(x, y) ). Pokud v následujících úpravách označíme h (i, j) = h( i, j) a v nedefinovaných bodech rozšíříme tuto funkci nulou, platí = Cov(f xy, h) = = i= j= (f(x + i, y + j)h(i, j) = f(x i, y j)h( i, j) = f(x i, y j)h (i, j) = (f h )(x, y). Diskrétní konvoluci v čitateli (1) tedy můžeme počítat pomocí algoritmu rychlé Fourierovy transformace (F F T ) a inverzní Fourierovy transformace (IF F T ). Pokud jsou f xy a h centrované, tj. za předpokladu Ef xy = Eh =, můžeme korelaci (1) vyjádřit ve tvaru K(x, y) = IF F T ( F F T (f xy ) F F T (h ) ) V ar(fxy ). (2) V ar(h ) Ve jmenovateli (2) je variance vzorku V ar(h ), která nezávisí na x a y, lze tedy funkci K vydělit touto konstantou na závěr nebo místo funkce h použít normovanou funkci h / V ar(h ). Pokud nám záleží pouze na poloze lokálních maxim, není třeba korelaci normovat, poloha maxima se násobením funkce konstantou nemění. Bohužel druhý člen V ar(f xy ) na poloze bodu závisí. Vzorek je však možné volit tak, aby variance byla téměř konstantní. Snímek musí být rovnoměrně osvětlen a 4
vzorek by měl mít rozměry soudělné s roztečí kalibrační mřížky, pak totiž výřez ze snímku o rozměrech [x m, x + m] [y n, y + n] obsahuje celý počet periodicky se opakujících kalibračních značek. Ve výřezu je nezávisle na poloze v souhrnu stejné poměrné zastoupení všech barev pixlů a je v tom případě Ef xy i V ar(f xy ) konstantní. Je proto možné zanedbat i tuto varianci a hledat maxima funkce K (x, y) = IF F T ( F F T (f xy ) F F T (h ) ). Obr 6. Funkce K má poměrně dobře ohraničená lokální maxima udávající polohu rozeznaných kalibračních značek. Obrázek zachycuje výřez. Předpoklad centrovaných veličin lze odstranit. Označme N = (2m + 1)(2n + 1). Střední hodnotu můžeme psát jako Eh = 1/N m n h(i, j). Čitatel v (1) má po roznásobení tvar = Eh (f(x + i, y + j) Ef xy ) (h(i, j) Eh) = f(x + i, y + j) h(i, j) Ef xy f(x + i, y + j) + h(i, j) Ef xy Eh = = K (x, y) N Ef xy Eh N Eh Ef xy + N Ef xy Eh. Za výše uvedených požadavků na kalibrační snímek a rozměry vzorku stojí v posledním výrazu funkce K (x, y) a poté již jen konstanty, které polohu lokálních maxim nemění. Subpixelová přesnost Subpixelové přesnosti dosáhneme, pokud budeme hledat maximum funkce K, která interpoluje funkci K na okolí lokálního maxima. Nechť se maximum nachází v bodě [, ]. Interpolaci hledáme ve tvaru K (x, y) = Ax 2 + By 2 + Cx + Dy + E. Pro bod [, ] a sousední body [1, ], [ 1, ], [, 1], [, 1] sestavíme soustavu pěti rovnic o pěti neznámých A,B,C,D,E. Po obecném vyřešení je možno najít polohu extrému interpolující funkce v závislosti na hodnotách v pěti daných uzlech. 5
Hledáme-li extrém na okolí bodu [, ], poloha extrému interpolační funkce je x = y = K ( 1, ) K (1, ) 2K ( 1, ) 4K (, ) + 2K (1, ), K (, 1) K (, 1) 2K (, 1) 4K (, ) + 2K (, 1). Určení transformačního klíče Nyní budeme používat více souřadných systémů. Soustava snímkových souřadnic popisuje polohu pixlu na snímku. Bod [,, 1] je v některém rohu snímku, osa x vede vodorovně, osa y svisle a osa z vede kolmo k rovině snímku ve směru od středu objektivu. (Bod v rovině snímku má tedy z = 1.) Osa objektivu prochází tzv. hlavním bodem, pro jednoduchost předpokládejme, že se tento bod nalézá ve středu snímku 1 ). Soustava skutečných souřadnic je dána skutečnými souřadnicemi bodů, které jsou zachyceny na snímku. Označme x i, y i snímkové souřadnice, které jsme určili ze snímku podle popsaného postupu. Označme X i, Y i odpovídající skutečné souřadnice. Vztah mezi souřadnicemi N id bodů v obou těchto systémech lze vyjádřit ve tvaru x i y i z i = r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 1 X i Y i 1, kde x i = x i z i, y i = y i z i a kde r 11, r 12, r 13, r 21, r 22, r 23, r 31, r 32 jsou neznámé parametry transformace. Tuto (přeurčenou) soustavu pro všech N id bodů převedeme do tvaru ( xi y i ) ( ) r 13 Xi Y = i 1 x i X i x i Y i r 21, X i Y i 1 y i X i y i Y i r 22 r 23 r 31 i = 1,..., N id, (4) r 32 a řešíme metodou nejmenších červců. Poté pomocí (3) převedeme všechny skutečné souřadnice do soustavy snímkových souřadnic a označíme je x s,i, y s,i. r 11 r 12 (3) Určení radiální distorze Označme (dx i, dy i ) deformaci v bodě (x s,i, y s,i ). Konkrétně, je tedy (dx i, dy i ) = (x s,i x i, y s,i y i ). 1 ) Radiální distorze se v obecném případě též měří od hlavního bodu. 6
Radiální distorze d(x, y) je podle definice složka deformace ve směru ze středu, čili pokud střed snímku má souřadnice [c x, c y ], je v převedených (tj. nedeformovaných) bodech d(x s,i, y s,i ) = dx i(x s,i c x ) + dy i (y s,i c y ) (xs,i c x ) 2 + (y s,i c y ). 2 35 Radialni distorze 6 Radialni distorze 6 3 4 1 4 25 2 5 2 2 Osa y 2 5 2 15 1 5 5 1 15 2 25 3 35 4 45 5 Osa x Obr. 7, 8. Měřená distorze v radiálním směru. 4 6 8 1 1 15 35 3 25 2 Osa y 15 1 5 1 2 Osa x 3 4 5 4 6 8 1 V ideálním případě je radiální distorze závislá pouze na vzdálenosti od středu snímku, označme tuto funkci D(r). (Viz obr. 9.) Experimenty ukazují, že pro aproximaci funkce je vhodný polynom 4. stupně D(r) = A 1 r 4 + A 2 r 3 + A 3 r 2 + A 4 r + A 5 8 6 4 2 2 4 6 8 1 12 2 4 6 8 1 12 Obr. 9. Závislost radiální distorze na vzdálenosti od středu snímku. Aproximace funkcí D(r). Pomocí metody nejmenších čtverců pro měřená data d(x s,i, y s,i ) odhalíme koeficienty polynomu D(r). Z povahy věci je zřejmé, že ve středu snímku by měla být 7
distorze nulová. Člen A 5 proto nahradíme nulou. Dalším rozumným požadavkem je, aby distorze d(x, y) na okolí hlavního bodu byla C 1 -hladká. Vzhledem k rotační symetrii d(x, y) z toho pro D(r) plyne podmínka dd dr () =. Tato podmínka není automaticky splněna, neboť distorze na okolí středu závisí na měřítku transformace, které je svým způsobem obsaženo v transformačním klíči. Je však možno splnění této podmínky vynutit odečtením lineárního trendu od D(r). Protože dd dr () = A 4, jako model normalizované radiální distorze můžeme použít D n (r) = A 1 r 4 + A 2 r 3 + A 3 r 2. Idealni distorze 5 1 15 2 4 6 8 1 12 14 16 18 2 Obr. 1. Deformace obrazu příslušná radiální distorzi určené funkcí D n (r). 35 Residualni distorze 4 3 3.5 25 3 2 2.5 2 15 1.5 1 1 5.5 5 1 15 2 25 3 35 4 45 5 Obr. 11. Velikost zbytkové deformace obrazu po odstranění vlivu radiální distorze. Rozměr 1 pixlu odpovídá cca,1 mm. 8
Residualni distorze 5 1 15 2 4 6 8 1 12 14 16 18 2 Obr. 12. Zbytková deformace obrazu po odstranění vlivu radiální distorze. Přetvoření snímku na ortofoto Normalizovaná radiální distorze D n (r) popisuje distorzi v (nezkresleném) bodě (x s,i, y s,i ), který je ve vzdálenosti r od středu snímku, resp. hlavního bodu. Pokud máme převést snímek na ortofoto, je třeba nejdříve změřit snímkové souřadnice identických bodů. Na snímku je ovšem změříme zkreslené radiální distorzí. Označme souřadnice zkresleného bodu (x, y ) a jeho vzdálenost od středu r. Pro výpočet transformačního klíče jsou však potřeba souřadnice tohoto bodu nepoškozené distorzí (x, y), jehož vzdálenost r je zatím neznámá. Řešíme tedy inverzní úlohu: najít r tak, aby r = r + D n (r). Označme r = r + dr a rozviňme D n (r) v Taylorovu řadu se středem v r. Potom je r = r+d n (r +dr) = r+d n (r )+ 1 1! dd n dr (r )dr+ 1 d 2 D n 2! dr 2 (r )dr 2 + 1 d 3 D n 3! dr 3 (r )dr 3 +... Protože je přibližně dr = D n (r) a D n (r) je polynom 4. stupně, můžeme použít vzorec r = r+d n (r ) 1 1! dd n dr (r )D n (r )+ 1 d 2 D n 2! dr 2 (r )D n (r ) 2 1 d 3 D n 3! dr 3 (r )D n (r ) 3 +... (5) Testy ukazují, že tato formule poskytuje pro běžné hodnoty distorze lepší přesnost než,2 pixlu. Pomocí (3) vypočítáme nezkreslené snímkové souřadnice identických bodů a z nich poté transformační klíč postupem jako výše. 9
Ortofoto konstruujeme tak, že ke každému bodu o souřadnicích X, Y na ortofotu nalezneme odpovídající bod na výchozím zkresleném snímku a přiřadíme bodu X, Y hodnotu odpovídajícího pixlu. Z projektivní transformace získáme souřadnice na nezkresleném snímku x = r 11X + r 12 Y + r 13 r 31 X + r 32 Y + 1, y = r 21X + r 22 Y + r 23 r 31 X + r 32 Y + 1. (6) Tedy na zkresleném snímku má bod X, Y souřadnice x, y ze vzorců r = (x c x ) 2 + (y c y ) 2, Shrnutí výsledků x = x + D n (r) x c x, r y = y + D n (r) y c y. r Experimenty potvrzují, že radiální distorze vskutku závisí na ohniskové vzdálenosti. Bylo provedeno měření ve třech polohách zoomu: f=38 mm, f=2 mm, f=38 mm (ekvivalent f pro kinofilm). Porovnání funkcí viz obr. 13. Grafy distorze na obr. 7 12 příslušejí měření pro f=38 mm. Na obrázcích 11 a 12 je znázorněna reziduální distorze, čili velikost zbytkové chyby po odstranění vlivu radiální distorze. Pro větší ohniskové vzdálenosti jsou hodnoty distorze menší a proto jsou grafy více poznamenány šumem (menší odstup signálu od šumu). Protože jsou však hodnoty korekce menší, je zobrazení přesnější. Pro největší ohniskovou vzdálenost f =38 mm je zobrazení přesné na cca 3 pixly, což dává možnost korekci zanedbat. Identické body je vhodné volit na kružnici vepsané obrazovému poli, neboť tam bývá radiální korekce nulová nezávisle na nastavení zoomu. 1 Vsechna f, normalizovana 5 f=38 mm 5 f=2 mm 1 15 2 f=38 mm 25 3 35 4 2 4 6 8 1 12 14 Obr. 13. Porovnání distorze pro různá nastavení zoomu. 1
Aplikace Nyní předvedu poněkud neobvyklé využití výše popsané kalibrace snímku. Na snímcích můžeme vidět průčelí kostela Srdce Páně v Klatovech. Od objektu není takový odstup, aby se celá fasáda vešla na jeden snímek. 11
Snímky můžeme převést na ortofota a odstranit radiální distorzi. Pokud jsou snímky správně kalibrované a oba snímky zachycují objekt ve stejné rovině, měly by veškeré linie na objektu navazovat a lze snímky snadno napojit. Na spojeném snímku pozorujeme původní okraje snímků jako šikmé čáry zkreslené projektivní transformací. Výsledný snímek získáme oříznutím okrajů. Obrázek můžeme případně opět transformovat projektivním zobrazením, aby působil jako pohled z určitého bodu. 12
13