SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ SOFTWARE FOR PROCESSING OF POINT CLOUDS FROM LASER SCANNING
Martin Štroner, Bronislav Koska1 Abstract At the department of special geodesy is developed software for processing and analysis of point clouds acquired by laser scanner in the frame of the grant project GA CR number 103/06/0094 "Processing and the Analysis of the Products of the Mass 3D Data Collection realized by Terrestrial Scanning Systems". The state of developing and next suggested aims is presented in the paper.
1
Úvod
Laserové skenovací systémy umožňují bezkontaktní určování prostorových souřadnic, např. pro libovolné terény, ale také pro 3D modelování a vizualizaci složitých staveb a konstrukcí, interiérů, různých prostor, atp., s mimořádnou rychlostí, přesností, komplexností a bezpečností. Slabým místem efektivního a exaktního využití skenovacích systémů je doposud používaný software na zpracování naměřených dat. Bez softwaru, který efektivně zpracovává měřená data a umožňuje jejich analýzu včetně výpočtů přesnosti, je zpracování jistým způsobem nepřesné a jeho výsledek problematický. V rámci grantového projektu GA ČR „Zpracování a analýza produktů hromadného sběru 3D dat terestrickými skenovacími systémy“ je vyvíjen software, který umožní nezávislé zpracování produktů měření laserových skenovacích systémů.
2
Funkční moduly programu
Program je vyvíjen v objektově orientovaném programovacím jazyce Borland Delphi. Pro zobrazování prostoru je využito rozhraní OpenGL (Open Graphics Library, [1], [2]), což je standard specifikující multiplatformní rozhraní (API – Application Programming Interface) pro tvorbu aplikací počítačové grafiky. Používá se při tvorbě CAD programů, aplikací virtuální reality, vizualizací a počítačových her. Množství zobrazovaných objektů (bodů, úseček, trojúhelníků atd.) vyžaduje, aby implementace byla hardwarová. 2.1 Jádro programu V současné době je zpracováno nízkoúrovňové základní objektové jádro programu pro správu, zobrazování a manipulaci s body a mračny bodů. Záznam každého bodu obsahuje (kromě jiných údajů) prostorové souřadnice X, Y, Z, hodnotu intenzity přijatého signálu, barvu, příznak viditelnosti a příznak výběru. Body jsou organizovány do samostatných pojmenovaných paměťových prostorů (bufferů) podle výběru uživatele. Zobrazení a úpravy probíhají vždy pouze v aktivním bufferu. Lze načíst data z různých souborů do oddělených prostorů, kopírovat či přesouvat je mezi nimi, vytvářet další buffery jako odkládací pro zrychlení a zefektivnění práce programu. Data lze do bufferů načítat z textového souboru v
1 Ing. M. Štroner, Ph.D., Ing. B. Koska: Katedra speciální geodézie, Fakulta stavební, České vysoké učení technické v Praze, Thákurova 7, 166 29 Praha 6 - Dejvice, e-mail:
[email protected], tel.: 00420 22435 4735
podobě souřadnic X Y Z nebo v podobě souřadnic X Y Z a intenzity přijatého signálu. Ukládat data do textového souboru lze ve stejných formátech. Při uložení dat do binárního souboru se ukládají nejen souřadnice a intenzita, ale také ostatní vlastnosti bodu. Jednou z vlastností bodů je jeho barva. Pro usnadnění a zvýšení přehlednosti při práci je v některých případech účelné vybrané body obarvit, což program také umožňuje. Barvy lze rovněž generovat z intenzit a z čísel bodů. Další možností zpřehlednění mračna bodů je skrytí nepotřebných bodů (které však nezmenší objem zpracovávaných dat). Program se skládá z hlavního formuláře programu, který umožňuje spouštění dalších palet s funkcemi a z okna zobrazujícího zpracovávaná data. Ovládací prvky programu jsou seskupeny do palet Pohledy, Výběr, Viditelnost, Barvy bodů, Hlášení, Repository, Nastavení, Funkce, SingleBody viz obr. 1.
obr. 1 – Hlavní formulář programu 2.2 Ovládání pohledů Základem zobrazení bodů je určení stanoviska pozorovatele a cílového bodu. Ten je vždy ve středu okna, pro usnadnění orientace je vykreslen výrazným červeným bodem. Souřadnice těchto dvou bodů spolu s určením vektoru směru vzhůru definují zobrazení. Změny zobrazení, tj. posuny a pootočení, jsou realizovány právě změnami těchto dvou bodů. Jsou k dispozici tři manipulace pro změny pohledu: otočení pohledu okolo cílového bodu, otočení pohledu okolo bodu pohledu, přiblížení/oddálení bodu pohledu od cílového bodu. Toto ovládání (kromě výběru cílového bodu) je také dostupné prostřednictvím tlačítek na paletě Pohledy. 2.3 Výběry bodů, viditelnost Výběr bodů je možný dvěma způsoby, hromadně (Multi mód) a s definovaným pořadím (Single mód). Výběr s definovaným pořadím je vhodný pro provádění např. výpočtů transformačního klíče, každý bod je označen křížkem a číslem viz obr. 3. Ve zvláštním formuláři je možné body mazat a zaměňovat viz obr. 2. Po výběru Single módu se jednotlivé body vybírají stiskem levého tlačítka myši.
obr. 2 – Tabulka pro práci s body v Single modu
Hromadný výběr se provádí v Multi módu, při stisknutém levém tlačítku myši se vybírané body tažením zarámují do výběrového obdélníku. Body lze také vybírat jednotlivě. Označením se bod vizuálně odliší zvětšením viz obr. 3. Lze zvolit nastavení: Nový, Přidat, Odebrat, Invertovat. Pro dočasné skrytí bodů jsou k dispozici funkce na paletě Viditelnost. Lze skrýt body Vybrané nebo Nevybrané, zobrazit všech skrytých bodů se provede tlačítkem Zobrazit Skryté.
obr. 3 – Zobrazení mračna bodů, bodů vybraných v Single módu a Multi módu 2.4 Funkce Do systému jsou implementovány jednoduché funkce pro získání informací o jednotlivých bodech, informace o mračnu bodů v aktivním bufferu. Dále je možno vypočítat pro dva označené body šikmou, vodorovnou délku a převýšení, zenitový úhel a směrník. Informace jsou zobrazovány v okně Hlášení. 2.5 Možnosti nastavení Formulář Nastavení umožňuje definovat základní ovládání programu. Lze volit krok v úhlu pro otáčení pohledu, krok v délce pro přibližování/oddalování, velikost zobrazovaných bodů, velikost vybraných bodů, barvu výběrového obdélníku. Déle také maximální vzdálenost vybíraného bodu od označeného bodu (není vhodné, aby bylo pro označení/odznačení jednoho bodu nutno kliknout přesně, ale vybírá se nejbližší bod a to tehdy, pokud není dále, než je maximální vzdálenost). Lze také nastavit barvu, velikost křížku a velikost písma pro označení bodů vybraných v Single módu. Všechna tato nastavení se ukládají do inicializačního souboru.
3
Vyvíjené funkce a moduly
Prezentované prvky implementované do programu bude nutné doplnit funkcemi, které využijí doposud připravené grafické a datové rozhraní a umožní zpracování měření laserového
skenování jak ve směru prokládání geometrickými primitivy, resp. jejich částmi, tak ve směru zpracování opírajícího se o trojúhelníkové sítě. Je plánováno do programu začlenit Virtuální laserový skener (VLS, blíže viz [3]) pro simulaci měření laserového skeneru a testování dalších funkcí programu. Do programu bude začleněna samostatně vyvíjená knihovna tříd SPATFIG (Spatial Figure – prostorový útvar, [4], [5]). Jedná se o knihovnu tříd a funkcí zabezpečujících ortogonální prokládání geometrických útvarů v prostoru (přímka, rovina, kružnice; koule, válec, kužel,…) v souladu s metodou nejmenších čtverců viz obr. 4. V knihovně jsou řešeny odhady směrodatných odchylek vyrovnaných neznámých koeficientů, jejich kovarianční matice a jsou uvažovány případné kovarianční matice měření. Knihovna je napsána v jazyce c++ a je šířena pod veřejnou licencí GNU GPL (viz [6]).
obr. 4 – Vizualizace první a poslední iterace proložení válce a kužele mračnem bodů (červeně je označen nejbližší bod na tělese od daného bodu) Pro výpočet transformací bude začleněna knihovna Alltran (viz [7] a [8]). Jedná se o knihovnu pro výpočet transformačního klíče a transformaci souřadnic pro různé transformace založené na metodě nejmenších čtverců. Knihovna je napsaná v jazyce c++ a je dostupná pod licencí GNU GPL. 3.1 Další funkce Kromě výše uvedených knihoven bude další vývoj programu směřovat také ke zpracování měření s využitím trojúhelníkových sítí. Předpokládá se implementace algoritmů pro generování trojúhelníkových sítí zachovávajících podmínku Delauneyovi triangulace a dalších souvisejících problémů včetně algoritmů zjemňování polí bodů se zachováním přesnosti následné aproximace tělesa generováním trojúhelníkové sítě.
4
Závěr
V článku je stručně popsán současný stav vývoje programu pro zpracování mračen bodů, kdy je funkční základní databázové a grafické jádro, a nastíněny cíle jeho dalšího vývoje. Vývoj bude dále pokračovat nejen doplňováním funkcí, ale také doplněním externě modifikovatelné lokalizace do libovolného jazyka. Článek byl zpracován v rámci grantového projektu GA ČR 103/06/0094 "Zpracování a analýza produktů hromadného sběru 3D dat terestrickými skenovacími systémy".
Literatura a odkazy [1] [2] [3] [4]
[5]
[6] [7]
[8]
Shreiner, D.: OpenGL Reference Manual. Addison-Wesley Professional, 1999. ISBN10: 0-201-65765-1 Shreiner, D. – Woo, M. – Neider, J. – Davis, T.: The Official Guide to Learning OpenGL, Version 1.1. Addison-Wesley Professional, 1997. Štroner, M.: Virtuální laserový skener. Stavební obzor. 2006, roč. 15, č. 6, s. 187-190. ISSN 1210-4027. Koska, B. – Pospíšil, J. – Štroner, M.: The Result Presentation of the Development of Laser and Optic Rotating Scanner LORS and Introduction of Public Library of Classes and Functions SPATFIG. In: Optical 3-D Measurement Techniques VII, Volume I. Vienna: TU Vienna, 2005, vol. 1, s. 63-73. ISBN 3-9501492-2-8. Koska, B.: Veřejná knihovna tříd a funkcí SPATFIG k ortogonálnímu prokládání obecných geometrických útvarù mračnem bodů. In: Aktuální problémy fotogrammetrie a DPZ 2005. Praha: ČVUT, Fakulta stavební, Katedra mapování a kartografie, s. 2933. ISBN 80-01-03417-8, 2005. http://www.gnu.org/licenses/gpl-faq.cs.html Koska, B. – Obr, V.: Dvoukroková metoda kalibrace digitální kamery s využitím nelineárních transformací. In: Aktuální problémy fotogrammetrie a DPZ. Praha: České vysoké učení technické v Praze, s. 38–41, ISBN 80–01-03619–7, 2006. http://k154.fsv.cvut.cz/~koska/projects/alltran/alltran.htm