MAPV
Úlohy měření v rovině – přesná měření rozměrů, polohy, orientace
V této části se budeme zabývat měřením pomocí jedné kamery a možných výsledků, kterých při těchto měřeních dosáhneme i způsobům, jak tyto výsledky zlepšit. Stručně provedeme srovnání s možnostmi měření více kamerami a ukážeme jak měřit rozměry prostorových útvarů i s touto jedinou kamerou.
Při snímání scény dochází k velmi podstatnému procesu, kterým je ztráta jednoho rozměru zobrazované scény, ke které dochází při projekci na detektor. V této kapitole si rozebereme situace, při kterých tato ztráta nehraje větší roli, popřípadě si ukážeme jak situaci vyřešit aniž bychom potřebovali další pohled, který by mohl takto ztracenou informaci pomoci zjistit.
Měření pomocí pomocí jedné kamery se využívá převážně pro měření objektů v rovině. Za určitých okolností je však možné pomocí jedné kamery měřit i prostorové tvary, nebo polohu útvarů v prostoru. Na druhé straně i objekty v rovině můžeme sledovat pomocí více kamer, čímž zlepšíme přesnost výsledného vyhodnocení.
Pomocí jedné kamery můžeme měřit široké spektrum zadání.
Nejběžnějším typem jsou úkoly, kdy nezáleží na rozměrech, a není tedy
nutné se zabývat ztrátou prostorové informace. Takovými jsou
například úkoly zjišťující přítomnost a počet objektů, některé úkoly
zjišťující polohu nebo barvu těles ...
Dalšími jsou úkoly, kdy
již potřebujeme měřit. Objekty jsou sice obecně v prostoru, ale při
zobrazování je vazba mezi polohou a vzdáleností. Pokud jednu z těchto
informací známe, můžeme druhou při měření z jedné kamery dopočítat.
Známe-li tedy vzdálenost objektu v prostoru (v případě, že se objekty
v prostoru pohybují v dané rovině, nebo v jiné definované ploše,
kterých může být ve snímaném prostoru i více) můžeme dopočítat polohu
k tomuto útvaru a tedy i odvozené veličiny jako jsou rozměry a
rychlost. Pokud známe velikost objektu, můžeme z ní vypočítat jeho
vzdálenost. Zde je ovšem problém v situaci, kdy se objekt natočí
(toto natočení se stává neznámým parametrem, který zkreslí/zkrátí
rozměry objektu) a tím změní rozměr. V případě složitějších objetků
je možné z definovaných tvarů zjistit i toto natočení a z něj opět
provést výpočet polohy.
Poslední možností je měření jednou kamerou
za pomoci vzoru, který může být nasvícen, nebo přímo přítomen na
objektu. S touto dodatečnou informací se dá měřit prostorová
informace o objektech a to i velice kvalitně
Pro kvalitnější detekci a měření souřadnic je vhodné využít více kamer a to jak pro měření prosotorová tak pro měření plošná. Více kamer dodá více informací, které vedou ke kvalitnějším/přesnějším výsledkům.
Nejčastějšími měřenými veličinami při měření jednou kamerou jsou – vlastnosti objektu jako je barva, tvar, natočení. Dále potom určení polohy, rozměrů,
Pro práci s obrazem a výpočtem souřadnic je potřeba pracovat s transformacemi. Z hlediska výpočtů můžeme rozdělit tyto transformace na geometrické, které využívají „běžné“ eulerovské geometrie (triangulace). V případě, že je soustava a používaný matematický aparát lineární, lze z výhodou použít transformace projektivní (homogenní). V případě, že plochy, které chceme sledovat mají obecný tvar, můžeme použít libovolné transformace podávající dostatečnou možnost popisu mapování souřadnic plochy na detektor. Pro transformaci souřadnic lze použít matematický aparát využívaný v algoritmech warpingu a morphingu.
Homogenní souřadnice umožňují vyjádřit obecnou projektivní transformaci jako lineární operaci. Tím je možné snadno provádět i sklárání operací do jednoho celku a provádět je v jednom kroku. Díky linearitě je snadný i výpočet neznámých paramtrů, včetně možnosti výpočtů přeurčených soustav (nejmenší čtverce).
Důležité je stanovení směru transformace pro různé typy úloh. Můžeme používat transformaci přímou, nebo inverzní (zpětnou). Problém je v tom, že pro obecné (nelineární) transformace nemusí existovat jednoduchá inverzní funce a tedy nezle převést koeficienty vypočtené pro jeden směr na koeficienty transformace inverzní. Potom je vhodnější hledat koeficienty pro oba směry nezávazně.
V případě měření můžeme zjišťovat transformaci, která přivedla těleso do daného stavu. V opačném případě můžeme požadovat transformaci inverzní. To se děje například v situaci, kdy máme snímek zkreslený špatným směrem pohledu nebo zkreslený objektivem Zdálo by se tedy, že zpětná korekce souřadnic ze zkresleného na originální snímek je v tomto případě výhodnější. Není tomu tak. Při této transformaci jsme nucení vycházet ze souřadnic/pixelů výsledku a ty mapovat zpět. Bohužel se však může stát, že se některé pixely namapují „přes“ sebe a naopak jinde se nezapíše nic. Proto je vhodné postupovat opačně. Vyjde se z pixelu výsledku, který známe přesně a ten namapujeme do (známého) zkresleného snímku. Zde nedojde k přesnému „zásahu“ pixelu, ale máme možnost výsledek vypočítat jako vážený průměr okolních bodů.
Pokud chceme dosáhnout kvalitního měření, můžeme použít některou z technik, která nám dá kvalitnější, nebo přesnější vstupní data. Můžeme toho docílit například snížením šumu, tak že pořídíme více snímků a výsledek získáme jako průměr. Toto lze ovšem aplikovat pouze u statické scény. Další možností je využití metod pracujících se subpixelovou přesností získání polohy objektů ve snímku. Také je možné pořídit data z více zdrojů (kamer) a výsledky kombinovat.
Snižování šumu je možné nejenom získáním výsledného snímku z více snímků, ale též využitím filtrů, které potlačují šum – mají charakter dolní propusti. U hranových filtrů potom charakter propusti pásmové, kdy se využití střední frekvence reprezentující změny v obraze, a vysoké frekvence pocházející ze šumu se vyfiltrují.
Hledání hran využívá například subpixelovou metodu, která počítá s širším okolím, nebo více vstupy. Hodnota vypočítaná z více zdrojů je přesnější. Střed kruhového objektu můžeme získat tak, že vypočteme těžiště všech bodů hrany. Tím dojde ke zpřesnění polohy středu. Pokud i jednotlivé body hrany jsou určeny se subpixelovou přesností, je výsledek přesnější.
Na výsledek má též vliv kvantizace a disretizace. Pokud vypustíme každý druhý pixel při snímání (řádkování), bude výsledek méně přesný. Stejně tak z šedoténového snímku získáme lepší výsledky než ze s nímku binárního.
Pro měření je důležitý též proces kalibrace, při kterém získáváme
koeficienty nutné pro přesné měření. Kalibraci je nutné provést pro
odstranění zkreslení objektivu, a pro zjištění průmětu reálných
souřadnic na souřadnice detektoru. Toto lze provést i v jedné
transformaci – výsledkem je funkční předpis pro transformaci
souřadnic.
Transformace U = fu(x,y,z), V = fv(x,y,z) mapují
trojrozměrný prostor na detektor. Pokud nedojde ve scéně ke změnám,
je možné provést i transformace inverzní. V případě, že se scéna
změní, není možné tyto rovnice použít.
Transformace mezi systémy se též využívá pro „rovnání“ znímků. Nejčastějším použitím je rektifikace snímků a transforamce prováděné při tvorbě panoramat. Dochází k mapování pořízených snímků do společných prostorů. Rektifikace je změna polohy bodů mezi souřadnými systémy – například souřadným systémem detektoru, který je libovolně umístněn a výsledkem má být definovaný pohled. To se děje například při leteckém snímkování – snímky jsou pořízeny pod určitým úhlem, ale následně jsou převedeny na pohled „shora“. Na takovýchto snímcích je též vidět chyba způsobená tím, že body které nejsou ve společné rovině se při transformaci posunou a vytvářejí chybu. (Při pohledu shora potom vidíme například boky domů). Podobně se používá úpravy snímků pro stereofotogrammetrii (3D fotky, 3D TV) pro lidské vnímání. Pro člověka je nepříjemné, pokud jsou optické osy snímacích prvků odchýleny již o stupně. Protože není vždy možné nastavit snímače přesně, provádí se dotatečné úpravy natočení a měřítka. To se děje na základě kalibrace, nebo se videoprocesor snaží hledat na snímcích podobné (společné) útvary a snímky upravovat tak, aby tyto byly ve stejné vertikální poloze na obou snímcích. Při tvorbě panoramatických pohledů se více snímků upravuje tak, že se mapují na daný útvar. Nejčastěji dochází ke snímání z jednoho bodu více snímků s různými optickými osami na výšku i s různými pohledy ve vertikální rovině. Tyto snímky se potom mapují na definované útvary – pokud máme snímky pořízené takřka v jednom směru (širokoúhlý snímek, více kamer snímajících sousední plochy ....) potom můžeme mapovat na rovinu. Dalším mapováním je mapování na válec, které je velice jednoduché, nezobrazuje body nad a pod. To odstraňuje mapování na kouli, které je ovšem složitější na výpočty. Posledním mapováním je mapování na krychli, které díky rovinným transformacím je málo výpočetně náročné. Nasnímané snímky jsou promítnuty na daný útvar a následně se hledá překrytí sousedních snímků. Dochází ke třem základním transformacím – mapování na daný výsledný objekt, odstranění zkreslení optiky, korekce jasu (každý snímek má jiné jasové podmínky).
Pokud předpokládáme měření (v metrických souřadnicích) za pomoci jedné kamery, potom potřebujeme jistou apriorní znalost. Pokud známe útvar, po kterém se objekt pohybuje, můžeme použít tuto apriorní znalost a počítat zbývající souřadnice (polohu objektu) vzhledem k tomuto útvoru. Pokud známe tvar objektu, můžeme na základě jeho zvětšení určit jeho vzdálenost. Nelze však určit obě tyto vlastnosti zaráz (známe-li vzdálenost, vypočteme polohu/velikost. Známe-li velikost, vypočteme vzdálenost). Zvláštním případem je situace, kdy se objekt pohybuje v rovině. Potom dochází k mapování z roviny na rovinu, které je jednodušší (má méně koeficientů) než mapování obecné. Dále rozlišujeme situaci, kdy je rovina měření rovnoběžná s detektorem (a zjišťujeme pouze koeficienty zvětšní), nebo kdy roviny nejsou rovnoběžné (v tom případě musíme zjistit i natočení rovin vůči sobě). V některých případech je možné natočit čip vůči optické ose a tím zajistit aby byla zobrazovací rovina nekolmá k optické ose (hlavní výhodou je, že zatímco v „normálním“ uspořádání, kdy je měřená rovina natočená vůči optické ose má každý bod této roviny jinou hloubku ostrosti, při natočení čipu mají body v rovině měření stejnou hloubku ostrosti.) Existují i speciální objektivy (například pro focení výškových budov „jako zepředu“, kdy se fotí ze země vodorovně ale na snímku je celá budova).
Linearita zobrazení (tj. jestli se dá použít jednoduché (měřítko, lineární, projektivní ...) korekce) se zjištuje pomocí dvojpoměru. Pokud poměr čtyř bodů v originále a po projekci je stejný, jedná se o lineární transformaci.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
obecně nemusí být jedna, a nemusí to být nutně rovina, pro měření jsou nutné apriorní znalosti (ty získáme měřením (rozměr, nebo vzdálenost) nebo kalibrace (rozměr, velikost ve vzdálenosti), značením vzorem (moire, laser))
Tyto měření s jednou kamerou dodávají měření apriorní znalost, která je vztažena na dané místo detektoru
typy úloh
jednoduchá 2D transformace – rektifikace (například 3D snímky)
panoramata – mapování na kouli, válec, čtverec
měření rozměrů - euler x homogenní souřadnice, projekční a rovnoběžné zobrazení
subpixel
kvalitní vstup – lepší výsledky (preprocesing)
upřesněnií polohz na základě více hodnot (trajektorie) – Kalman – predikce, interpolace, vyhlazení křivky
Poslední změna 2010-02-19