|2017-10-26|
Geodezja, GIS, Teledetekcja, Software
GEODETA testuje: ContextCapture
Producenci coraz popularniejszych aplikacji przetwarzających zdjęcia do postaci modeli 3D zgodnie zapewniają, że pozwalają one w prosty sposób generować wysokiej jakości dane przestrzenne. Ile w tym prawdy?
Sprawdziliśmy to na przykładzie oprogramowania ContextCapture, które wcześniej znane było pod nazwą Acute3D, a w 2015 roku stało się częścią portfolio firmy Bentley Systems. Liczymy, że nasz test zaciekawi dwie zupełnie różne grupy odbiorców. Pierwszą stanowi wciąż nieliczne grono osób, które są obeznane z tego typu produktami (np. Agisoft Photoscan czy Pix4D) i wykorzystują je głównie do obróbki zdjęć z dronów. Z kolei druga, znacznie liczniejsza grupa to geodeci i specjaliści od GIS-u, którzy może i znają podstawy fotogrametrii, ale nie stosują tej wiedzy na co dzień. Wielu z nich z zainteresowaniem, ale i pewną rezerwą patrzy na możliwość łatwego przetwarzania zdjęć do postaci modeli 3D czy ortofotomap. Nasz test kierujemy przede wszystkim do tej drugiej grupy, choć i ci pierwsi – mamy nadzieję – znajdą tu kilka przydatnych refleksji.
Intuicyjne początki Test rozpoczęliśmy od skoku amatora na głęboką wodę: chcieliśmy wygenerować model 3D bez zaglądania do instrukcji obsługi. Wykorzystaliśmy do tego celu gotowe zestawy zdjęć udostępnione przez firmę Bentley Systems oraz laptop o przeciętnych parametrach sprzętowych. Już na wstępie program przestrzegał, że nasz sprzęt jest dość słaby. Niezrażeni zaczęliśmy zgłębiać interfejs użytkownika. Dojście do tego, jak wygenerować model 3D, zajęło nam niecałe 10 minut. Obsługa ContextCapture jest więc faktycznie intuicyjna. W poszczególnych krokach użytkownik ma wprawdzie do dyspozycji wiele opcji przetwarzania, ale na podstawie załadowanych danych program automatycznie sugeruje nam optymalne parametry pracy. Problemem nie okazał się również czas pracy. Przetworzenie kilkudziesięciu zdjęć o objętości 160 MB zajęło aplikacji około 10 minut. Gdy model 3D był już gotowy, generowanie innych produktów – chmury punktów czy ortofotomapy – przebiegło znacznie szybciej i również nie przysporzyło większych trudności.
Więcej danych, więcej problemów Jak można przypuszczać, zdjęcia zapewnione przez Bentleya do testów cechuje odpowiednia jakość i wzajemne pokrycie. Czy jednak generowanie modeli 3D będzie równie proste, gdy wykorzystamy własne dane? Sprawdziliśmy to na przykładzie zdjęć rzeźby znajdującej się na stołecznym Polu Mokotowskim, które wykonaliśmy przeciętnym smartfonem. Tym razem nie poszło już tak łatwo. W trakcie przetwarzania okazało się bowiem, że aplikacja nie rozpoznaje metadanych dla zdjęć z naszego aparatu, co może uniemożliwić aerotriangulację. Poza tym popełniliśmy błędy typowe dla początkujących użytkowników tego typu programów: pozyskane przez nas obrazy były za ciemne i miały niewystarczające wzajemne pokrycie. Mimo to model 3D udało się wygenerować, choć jego jakość nie była zadowalająca – na przykład kawałek nieba został uznany za górny element rzeźby. W tym miejscu nasuwa się refleksja, że w ContextCapture brakuje podstawowych narzędzi do edycji modeli 3D, choćby do ich przycinania. Obróbka możliwa jest tylko w zewnętrznych aplikacjach. Nauczeni doświadczeniem ponownie ruszyliśmy na Pole Mokotowskie, by wykonać więcej zdjęć rzeźby przy lepszej pogodzie. Za drugim podejściem otrzymaliśmy już znacznie lepszy model 3D (fot. 1). Biorąc pod uwagę, że bazuje on na zdjęciach ze smartfona, można nawet powiedzieć, że jego jakość pozytywnie nas zaskoczyła.
Fot. 1. Wynik modelowania rzeźby na podstawie zdjęć ze smartfona
Większość geodetów wykorzystuje jednak programy typu ContextCapture do edycji zdjęć lotniczych – przede wszystkim z dronów. Postanowiliśmy więc przetestować program również pod tym kątem. Do eksperymentu wykorzystaliśmy zdjęcia podwarszawskich Marek wykonane przez firmę MSP i udostępnione nam dzięki uprzejmości Warszawskiego Przedsiębiorstwa Geodezyjnego. Łącznie otrzymaliśmy 66 obrazów 37 Mpx w rozdzielczości około 2,5 cm. Choć to tylko fragment pojedynczego nalotu, to i tak zbiór jest wielokrotnie większy od tych wcześniej wykorzystanych przez nas na potrzeby testu (wszystkie pliki TIF zajęły 6,3 GB). Zgodnie z oczekiwaniami przetworzenie tych danych okazało się dla naszego komputera sporym wyzwaniem. Przy próbie obróbki ich w całości program ostrzegł, że nie dysponujemy odpowiednią pamięcią operacyjną. Na szczęście ContextCapture pozwala dzielić zadania na części. Wygenerowanie ortofotomapy nie stanowiło więc większego problemu, choć zajęło sporo czasu (około 3 godzin). Wniosek stąd oczywisty: jeśli chcemy inwestować w drona i oprogramowanie typu ContextCapture, konieczny jest też zakup komputera z nowoczesną kartą graficzną i odpowiednio rozbudowaną pamięcią. Na marginesie warto wskazać na drobny, choć nieco denerwujący feler ContextCapture. Przy dzieleniu obróbki na części wyświetlany przez program postęp przetwarzania danych ma się nijak do faktycznego czasu, jaki pozostał do otrzymania gotowego produktu. Aż przez 1/4 „mielenia” danych wyświetlał nam się bowiem komunikat 0%, co zrodziło wątpliwości, czy program w ogóle działa. Otrzymaną ortofotomapę nałożyliśmy na zdjęcia lotnicze z Geoportal.gov.pl i już na pierwszy rzut oka widać było, że dokładność naszego opracowania jest na poziomie kilku metrów. Wcale nas to jednak nie zdziwiło, gdyż dron wykorzystany do nalotu nie miał precyzyjnego odbiornika GPS, ponadto nie użyliśmy żadnych fotopunktów. W drugim podejściu chcieliśmy już uzyskać dokładniejsze opracowanie, a kluczem do jego wygenerowania były właśnie fotopunkty. Podczas tego etapu testu doszliśmy do wniosku, że – wbrew temu, co pisaliśmy wcześniej – producent ma jednak jeszcze spore pole do popisu, jeśli chodzi o zwiększenie intuicyjności programu. ContextCapture kilkakrotnie wyświetlił nam bowiem komunikat, że przetworzenie danych jest niemożliwie. Nie otrzymaliśmy jednak żadnej podpowiedzi, jaka może być tego przyczyna. Oczywiście metodą prób i błędów udało się zidentyfikować źródło problemów, ale przecież każda taka próba zajmuje od kilkudziesięciu minut do kilku godzin. Po paru podejściach można było jednak odtrąbić sukces i ogłosić wygenerowanie ortofotomapy o dokładności rzędu kilku pikseli, czyli typowej dla opracowań z dronów. Nie jest to więc czarna magia, choć – wbrew zapewnieniom niektórych dostawców dronów – osiągnięcie wyższej dokładności wymaga jednak pewnej wiedzy i wprawy.
Siatka czy chmura? Większość konkurentów ContextCapture projektowano przede wszystkim z myślą o generowaniu chmury punktów. Tymczasem Bentley podkreśla, że podstawowym produktem jego aplikacji jest tzw. reality mesh (w luźnym tłumaczeniu „siatka rzeczywistości”). Firma zachwala, że jest to przede wszystkim znacznie lżejszy typ danych, jego wyświetlanie w trzech wymiarach mniej obciąża pamięć komputera, a poza tym bardziej realistycznie odwzorowuje mierzoną rzeczywistość. Producent zapewnia ponadto, że reality mesh jest nie mniej dokładny niż chmura. Z badań przeprowadzonych na zlecenie Bentleya z wykorzystaniem danych z naziemnego skaningu laserowego wynika bowiem, że przy zachowaniu odpowiednich metod obróbki danych dokładność „siatki rzeczywistości” wynosi 2-3 piksele źródłowych zdjęć. Po naszym teście z pewnością możemy potwierdzić, że zaletą tego typu danych jest ich lekkość. Przykładowo model 3D rzeźby z Pola Mokotowskiego zajął 12,7 MB, czyli tyle, co 4 zdjęcia użyte do jego wygenerowania (1/7 wszystkich). Dla porównania: chmura punktów w skompresowanym formacie LAZ o podobnej szczegółowości zajmuje już 386 MB. Na marginesie dodajmy jednak, że czas generowania obu tych typów danych jest podobny. Potwierdzamy również, że reality mesh prezentuje się całkiem realistyczne. W połączeniu z lekkością sprawia to, że format ten dobrze nadaje się do prezentacji danych 3D w sieci, i to nawet bez szybkiego łącza czy mocnego sprzętu. Zresztą każdy może to łatwo zweryfikować, odwiedzając np. tę stronę. Schody zaczynają się jednak, gdy chcemy edytować reality mesh. W przypadku chmury punktów sprawa jest prosta: mamy do wyboru wiele aplikacji oferujących szerokie spektru m narzędzi do obróbki tego typu danych. „Siatka rzeczywistości” jest natomiast formatem obsługiwanym na razie tylko przez kilka aplikacji, przede wszystkim marki Bentley Systems (w szczególności Descartes i MicroStation Connect Edition). Co więcej, oferowane przez nie narzędzia mają znacznie ograniczone możliwości w stosunku do tych przeznaczonych do pracy z chmurą. Podsumowując, do pewnych zastosowań, w szczególności tych, gdzie kluczowa jest realistyczna wizualizacja, „siatka rzeczywistości” będzie dobrym rozwiązaniem. Rzut oka na finalistów nagród BeInspired z ostatnich lat (przyznawanych najciekawszym projektom zrealizowanym przy użyciu oprogramowania Bentleya) pokazuje, że reality mesh ma naprawdę szerokie pole zastosowań – również w geodezji. Jeśli jednak dane 3D chcemy poddać złożonemu modelowaniu, rozsądnym wyjściem wciąż pozostaje chmura punktów (ContextCapture potrafi z powodzeniem generować również i ten typ danych). Gwoli rzetelności podkreślmy, że generowanie modeli typu mesh nie jest domeną wyłącznie oprogramowania Bentleya. Tylko czy są one porównywalne do „siatki rzeczywistości”? Na to pytanie odpowiemy w dalszej części artykułu.
Nie tylko zdjęcia ContextCapture oferuje tworzenie modeli 3D nie tylko na podstawie zdjęć. Ciekawostką jest możliwość wykorzystania do tego celu… filmu. Wbrew pozorom nie jest to skomplikowana technologia, bo program po prostu wyodrębnia z nagrania z określonym interwałem pojedyncze klatki i dalej przetwarza je jak fotografie. Przetestowaliśmy to narzędzie na przykładzie wspomnianej wcześniej rzeźby z Pola Mokotowskiego, korzystając ponownie z kamery wbudowanej w smartfon. Jakość tak wygenerowanego modelu 3D okazała się jednak wyraźnie gorsza niż w przypadku zwykłych zdjęć (wynik prezentujemy na naszym kanale na YouTube – youtu.be/RiHpNcjcJ40). Nie można jednak wykluczyć, że gdybyśmy użyli profesjonalnej lustrzanki, wynik byłby przeciwny, bo przecież kluczowe w tej technologii jest wykonanie jak największej liczby różnych ujęć modelowanego obiektu. Geodetów z pewnością bardziej zainteresuje możliwość wykorzystania w ContextCapture chmury punktów ze skanowania laserowego. Program pozwala bowiem łączyć ten typ danych ze zdjęciami i na tej podstawie generować wspólny model 3D. Do czego może się to przydać? Na przykład gdy inwentaryzujemy linię kolejową, dla torów czy sieci trakcyjnej niezbędna jest wysoka dokładność, którą w przypadku modelowania zdjęć trudno uzyskać. Lepszym rozwiązaniem będzie więc skaning laserowy. Ale dla dalszego otoczenia trasy precyzja nie jest już tak ważna, pomiar za pomocą skanera byłby więc zbyt drogi i czasochłonny. W tego typu przypadkach odpowiedzią może być właśnie połączenie dwóch typów technologii.
Fot. 2. Porównanie modelu wygenerowanego ze zdjęć z drona (u góry) i chmury punktów z naziemnego skanowania laserowego (u dołu)
Rosyjska konkurencja Podsumowując nasz test, z chęcią wypowiedzielibyśmy się o intuicyjności ContextCapture czy o jakości generowanych przez niego danych. Trudno to jednak zrobić bez jakiegokolwiek punktu odniesienia. By go zyskać, postanowiliśmy pobieżnie poznać bodaj najpopularniejszą w kraju aplikację do tworzenia modeli 3D na podstawie zdjęć, czyli rosyjski Agisoft Photoscan. Jeśli chodzi o interfejs, jest on zupełnie inaczej zorganizowany niż w ContextCapture, choć nie mniej intuicyjny. Dotarcie do podstawowych funkcji aplikacji nie przysparza większych problemów. Ponadto producent oferuje kilka samouczków, które krok po kroku wyjaśniają, jak wykonać różne typy opracowań. Różnice dostrzeżemy natomiast w funkcjach – program nie oferuje bowiem ani pracy na filmach, ani łączenia danych ze skaningu i zdjęć. Z drugiej strony – w przeciwieństwie do ContextCapture – pozwala nie tylko na generowanie modeli 3D, ale także na ich podstawową edycję, klasyfikację chmury punktów, wykonywanie pomiarów czy pracę na zdjęciach wielospektralnych. Dla niektórych użytkowników istotną zaletą może ponadto okazać się opcja tworzenia skryptów w Pythonie. Największe zaskoczenie przyniosło nam porównanie tempa przetwarzania danych. Wyszliśmy z założenia, że skoro oba programy bazują na tej samej technologii (tj. algorytmach Semi-Global Matching), różnice w tym zakresie będą kosmetyczne. Tymczasem okazało się, że Agisoft te same dane „mielił” aż pięciokrotnie dłużej, a do tego „zamulał” komputer, czego w przypadku produktu Bentleya nie doświadczyliśmy (na marginesie dodajmy, że również w Agisofcie pasek postępu przetwarzania danych nijak miał się do faktycznie wykonanej pracy). Nie mniej ciekawie wypada wizualne porównanie modeli typu mesh wygenerowanych z obu programów. Rozbieżności widać już na pierwszy rzut oka (fot. 3). Model z Agisoftu jest bardziej szczegółowy. Przykład torów czy ścian budynku pokazuje jednak, że niekoniecznie przekłada się to na wierniejsze odwzorowanie mierzonych obiektów. Ta różnica w szczegółowości zdaje się potwierdzać zapewnienia firmy Bentley, że przy generowaniu reality mesh z modelu usuwane są zbędne węzły.
Fot. 3. Model typu mesh wygenerowany z tych samych zdjęć w oprogramowaniu ContextCapture (z lewej) i Agisoft (z prawej) [większy rozmiar]
Interesująco prezentuje się również porównanie tekstur (fot. 4). „Siatka rzeczywistości” jest zdecydowanie bardziej realistyczna. Przekłada się to jednak na nieco większy rozmiar modelu. Na dysku zajmuje on 16 MB, podczas gdy w przypadku opracowania Agisoftu jest to o 4 MB mniej.
Fot. 4. Model typu mesh wraz z teksturami wygenerowany z tych samych zdjęć w oprogramowaniu ContextCapture (z lewej) i Agisoft (z prawej) [większy rozmiar]
Mamy świadomość, że wielu czytelników oczekiwałoby również porównania dokładności obu opracowań. Uznaliśmy jednak, że jest to temat na tyle złożony (wymagający choćby analizy algorytmów obu programów), że pozostawiamy go ambitnym magistrantom i doktorantom.
Różne nie tylko logo Co wynika z naszego testu? Przede wszystkim to, że aplikacje przetwarzające zdjęcia do postaci modeli 3D, choć bazują na tej samej technologii, mogą znacząco się między sobą różnić, i dotyczy to nie tylko oferowanych narzędzi czy interfejsu użytkownika, ale także tempa pracy czy jakości wynikowych danych. Przekonaliśmy się ponadto, że tak mocno promowany przez Bentleya reality mesh to nie tylko marketingowy slogan, ale faktycznie unikatowy typ danych mający swoje zalety, ale i ograniczenia. Z pewnością „siatka rzeczywistości” otwiera nowe pola zastosowań dla modeli 3D. Szkoda tylko, że na razie jest to standard obsługiwany niemal wyłącznie przez aplikacje Bentleya. Ale nawet jeśli nie interesuje nas ten typ danych, ContextCapture potrafi generować również chmury punktów, modele terenu i pokrycia terenu czy ortofotomozaiki. Z perspektywy geodety istotna jest także możliwość posiłkowania się danymi ze skanowania laserowego. Wszystko to sprawia, że ContextCapture jest programem wszechstronnym, który sprawdzi się w różnorodnych zleceniach, jakie mogą trafić do firmy geodezyjnej. Jest też na tyle prosty w obsłudze, że nauka generowania dokładnych opracowań nie powinna być problemem dla żadnego geodety ze znajomością obsługi komputera. Warto więc pobrać darmową testową wersję ContextCapture, wykonać kilka różnych projektów i porównać go z konkurencyjnymi aplikacjami. Z pewnością będzie to cenna lekcja, ale i – jak to było w naszym przypadku – przyjemnie spędzony czas.
Więcej testów sprzętu i oprogramowania publikujemy na Geoforum.pl w dziale GEODETA testuje
Jerzy Królikowski
|