Ortofotomapa w Agisoft Photoscan

Krótki poradnik o tym, jak utworzyć ortofotomapę w Agisoft Photoscan. Chodzi o sytuację, w której nie mieliście ustawionych fotopunktów, mierzonych GPS RTK lub tachimetrem, które moglibyście wykorzystać do zgeoreferowania modelu wyprodukowanego w Photoscan. Dysponujecie po prostu serią zdjęć (np. zrobionych z drona). Do wykonania zadania potrzebne będą:

  • seria zdjęć lotniczych interesującego was obszaru;
  • Program Agisoft Photoscan w wersji Pro;
  • Qgis
  • Numeryczny Model Terenu z pomiarów lidarowych, zakupiony za niewielkie pieniądze w serwisie CODGiK. Najprościej zakupić plik .asc. Najlepiej plik LAS, z którego można sobie samemu wyprodukować .asc.

Zakładam, że macie już jakieś obycie w Qgis i podstawową znajomość Photoscan. Niewielkie, ale jednak.

1. Zdjęcia lotnicze wrzucamy do programu i w czterech prostych ruchach (trwających niekiedy kilka godzin) uzyskujemy model 3D fotografowanego obszaru. Wszystkie cztery ruchy znajdziecie w menu „Workflow” – po kolei: „Align Photos” – „Build Dense Cloud” – „Build Mesh” – „Build Texture”. Im więcej zdjęć wrzucicie, tym lepszy uzyskacie wynik końcowy i tym dłużej będzie on przeliczany…

rozp72. W programie Qgis tworzymy nowy projekt. Wrzucamy do niego nasz NMT oraz podpinamy warstwę WMS z ortofotomapą z geoportal.gov.pl (stara instrukcja podłączenia warstw WMS jest tutaj – od tego czasu zmieniły się jednak adresy oraz szczegóły Qgisa. Aktualne adresy tu). We właściwościach projektu ustawcie układ 1992 lub 2000 (pamiętając o wyborze właściwej strefy).

model4rW moim przypadku użyłem stworzonego wcześniej projektu.

3. Od teraz będziecie pracowali na dwóch programach równocześnie. W Photoscan za pomocą funkcji „Create Marker” (prawy klik myszy – rozwijane menu kontekstowe) tworzycie markery zaznaczając charakterystyczne punty terenowe: skrzyżowania dróg, miedze na polach, narożniki budynków, etc.

model1rW tym przypadku punkt utworzono na skrzyżowaniu rowów melioracyjnych.

4. Dokładnie ten sam punkt musicie odnaleźć w Qgis z włączoną ortofotomapą geoportalu. Teraz wykorzystacie dwie funkcje programu. Pierwsza to wtyczka przechwytywania koordynatów. Pozwala ona przez wskazanie konkretnego punktu na mapie uzyskać jego koordynaty xy. W panelu wtyczki można ustawić układ odniesienia. Ustawcie tam koniecznie układ 1992 lub 2000.

model9rTeraz wystarczy tylko kliknąć na mapie Qgisa z włączoną ortofotomapą wskazując ten sam punkt, który zaznaczyliście w Photoscanie. Z panelu wtyczki skopiujcie po kolei najpierw wartość X, później Y, wklejając je do odpowiedniego panelu Photoscan:

model8rWłaśnie tutaj. W tym przypadku są to wartości w układzie 2000 strefa 7.

5. W ten sposób powinniście mieć już wartości XY, czyli lokalizację w dwóch wymiarach. Potrzebny nam jeszcze trzeci, czyli wysokość (Z). W tym celu korzystamy z narzędzia identyfikacji (strzałka). Aby je wykorzystać na drzewku warstw Qgis zaznaczcie warstwę z waszym NMT. Później wystarczy wskazać punkt na mapie z włączoną ortofotomapą z geoportal.gov.pl. Wskazujecie na ortofotomapie, ale zaznaczony jest NMT.

model2rW bocznym panelu wyświetli wam się, odczytana przez program z NMT, wartość wysokości. Skopiujcie ją i wklejcie do Photoscana.

6. Dla przeciętnego modelu powinno wam wystarczyć 5-6 punktów. Im więcej zrobicie, tym dokładniejszy powinien być gotowy produkt. Nie ma jednak sensu robić ich zbyt wiele. Mając gotowe punkty musicie zbudować ortofotomapę. W panelu „Workflow” kliknijcie „Build Orthomosaic”.

model6rUstawcie układ odniesienia dla powstającego pliku (może być ten sam, który macie dla projektu Qgis).

model5rW panelu na zrzucie jest Local Coordinates, zmieńcie to na wybrany układ odniesienia.

7. Ostatni krok to wyeksportowanie ortofotomapy. Wybierzcie „File” i „Export Orthomosaic” oraz format, do którego chcecie wyeksportować plik (najprościej i najbardziej uniwersalnie – tiff). Gotowy plik wystarczy wrzucić do Qgis.

model7rI gotowe.

Ortofotografie z Photoscan i Qgis – porównanie

W trakcie prac w Ostrowitem wykonujemy masę dokumentacji elektronicznej. Można podzielić ją na dwie grupy: dokumentację 2D i 3D. Część ortofotografii 2D przygotowywana jest w Gimpie (później georeferowana w Qgis), część zaś bezpośrednio za pomocą modułu georeferencyjnego Qgis, z wykorzystaniem pomiarów tachimetrem lub GPS RTK. W przypadku fotogrametrii trójwymiarowej posługujemy się głównie programem PhotoScan firmy Agisoft. Zazwyczaj jednak sporządzenie modelu ostatecznie kończy się wyeksportowaniem go do ortofotografii, co bardzo wygodnie robi się w Photoscanie dzięki funkcji punktów georeferencyjnych oraz obsłudze naszych rodzimych układów odniesienia (92 i 2000). Przy okazji wykonywania dokumentacji zaistniała możliwość porównania wyników obu procedur, a więc ortofotografii uzyskanych w module georeferencyjnym Qgis oraz wyeksportowanych z PhotoScan. Wyniki będę prezentował jako zrzuty z okna mapy Qgis.

zrzut16Na początek georeferowane w Qgis zdjęcie dwóch grobów szkieletowych z wczesnego średniowiecza.

zrzut17I te same groby na ortofotografii z Photoscan.

Różnice nie są przy tej skali specjalnie duże. Kiedy jednak powiększymy obrazek…

zrzut18Qgis.

zrzut19PhotoScan.

Widać już pewne różnice dotyczące rozdzielczości, a także drobne różnice w oddaniu geometrii obiektu. W przypadku georeferowania w Qgis mamy do czynienia ze zniwelowaniem zniekształcenia fotografii wynikającego z perspektywy. Przy fotografowaniu obiektów o pewnej formie przestrzennej, a więc nie idealnie płaskich powierzchni, pojawiają się pewne błędy. W PhotoScan zgeoreferowany model jest rzeczywiście rzucany do ortofotografii w danym układzie odniesienia.

Różnica rozdzielczości jest bardziej widoczna przy dokładniejszej skali:

zrzut20Qgis.

zrzut21PhotoScan.

PhotoScan robi model i jego teksturę z całego pakietu fotografii. W Qgis posłużyłem się pojedynczym zdjęciem. Efektem jest znaczna różnica rozdzielczości, doskonale czytelna pomimo użycia tego samego aparatu w obu przypadkach.

Ortofotomapy z PhotoScan są więc znacznie lepszej jakości. Jest jednak jeszcze jeden aspekt tej sprawy: czasochłonność. Dla wykonania ortofotografii w Qgis wystarczy pojedyncze zdjęcie. Program przelicza ją w czasie krótszym niż minuta. PhotoScan wymaga zestawu zdjęć. Model, który posłużył do wykonania ortofotografii w tym wpisie powstał na podstawie około 60 fotografii. Na moim laptopie stworzenie modelu wymagało ponad 3 godzin pracy programu…

Kontynuujemy badania w Rozprzy

Tygodniowy epizod ostrowicki nie zmienił naszej zasadniczej aktywności związanej z badaniami w Rozprzy. Nadal trwają, choć zgodnie z planem miały się już zakończyć. W poprzednim wpisie rozprzańskim skoncentrowałem się na wykopie nr 1, który założyliśmy w miejscu fosy grodziska.

DSC05347Odkryliśmy tam przede wszystkim starszy wykop, z lat 60. XX wieku, ale także nawarstwienia związane z wypełniskiem fosy oraz nasypem zewnętrznego wału grodziska. Okazało się, że zachowały się dość nikłe ślady konstrukcji zewnętrznego stoku fosy:

DSC05608W postaci takich oto pionowych palików oraz dość chaotycznie rozrzuconych poziomych żerdzi, dranic i gałęzi oraz kamieni. Żadnej skomplikowanej konstrukcji. Wedle poprzedniej ekipy badawczej fosa miała funkcjonować w XIII i XIV wieku. Być może tak było, ale znaleziony przez nas materiał ceramiczny sugeruje, że wypełniana była jeszcze co najmniej w wieku XV. Zobaczymy jeszcze jakie będą wyniki analiz dendrochronologicznych i radiowęglowych,

Prawdziwą niespodzianką były jednak wyniki prac w wykopie 2. Właściwie jego celem było przebadanie jednego z paleokoryt Luciąży, które udało się zidentyfikować na zdjęciach lotniczych oraz w geofizyce, a później potwierdzić odwiertami. Jednak już od samego początku coś było nie tak…

DSC05764W zachodniej części wykopu pojawiła się okazała sosnowa belka i stabilizujące ją pionowe paliki, układające się po obu jej stronach. Początkowo myśleliśmy, że to konstrukcja drogi…

DSC06245Kiedy jednak podobna konstrukcja pojawiła się w południowo – wschodniej części wykopu, zaczęliśmy podejrzewać, że chodzi o coś zupełnie innego. Najpewniej jakiś zbiornik wodny, obudowany drewnem.

W jego wypełnisku, które jest w całości starannie przesiewane i płukane:

DSC06187_v1Pojawia się głównie materiał zabytkowy z okresu późnego średniowiecza, od XIII po XV wiek. Oprócz fragmentów naczyń ceramicznych są to fragmenty przedmiotów skórzanych, gwoździe, fragment naczynia szklanego oraz

mms_1taka, na przykład, maleńka kostka do gry (długość jednego boku to jakieś pół centymetra),

DSC06191_v1czy też fragmenty drewnianego talerza.

A ponadto mnóstwo drewnianych ścinków, gałęzi, orzechy laskowe czy nawet szyszki świerkowe.

DSC05810Każdego dnia rano wita nas taki widok. I nie ma właściwie większego znaczenia, czy padało, czy też nie. Bez pompy nie zdziałalibyśmy w Rozprzy zbyt wiele.

DSC05885_v1Ale dzięki tej dużej „wilgotności” wypełniska doskonale zachowują się wszelkie drewniane konstrukcje. Takie jak ten słupek, pięknie zaostrzony, trzymany rękami Przyrodnika. Proszę zwrócić uwagę na okazałe bicepsy przyrodnika – ich uzyskanie było możliwe tylko dzięki zastosowaniu chmielowych suplementów diety.

DSC06348_v1Przyrodnik, dzięki swojej tężyźnie fizycznej, doskonale daje sobie radę w walce z dwoma straszliwymi wężami.

DSC_1364Aspekt metodyczny badań – wykonywanie zdjęć do dokumentacji fotogrametrycznej. W pracy archeologicznej doskonale sprawdzają się aparaty z ruchomym ekranikiem.

zrzut ekranu174Wielką pomocą jest dla nas Photoscan. Ułatwia on znacznie nie tylko wykonywanie dokumentacji 3D, ale także ortofotografii, zwłaszcza w sytuacji, w której mamy do czynienia z licznymi, pionowymi konstrukcjami w dnie wykopu, które utrudniają jej wykonanie bardziej „tradycyjnymi” metodami.

zrzut ekranu175Wszystko trafia później do Qgisa.

Wkrótce powinniśmy zakończyć ten etap prac. Dalsze, wiążące się z rozpoznaniem innego paleokoryta oraz szerszym rozpoznaniem samego grodziska, powinny się odbyć wczesną jesienią. Do tego czasu może będziemy już dysponować wynikami niezależnych datowań próbek z wykopów 1 i 2…

Testuję PhotoScan (na Linuksie)

PhotoScan firmy Agisoft stał się ostatnio standardem w zakresie fotogrametrii 3D w archeologii. Rosjanie zdobyli rynek przebojem oferując znacznie niższe ceny niż producencie dotychczas dominujących na tym rynku programów komercyjnych oraz znacznie przyjemniejszy interfejs i „workflow” niż w przypadku  większości rozwiązań open source. Po pierwszych próbach z różnymi narzędziami, w tym Arc3D, Photosynth czy Hypr3D zatrzymałem się 123D Catch od Autodesk. Niekoniecznie dlatego, że produkował najlepsze chmury punktów, ale dlatego, że proces ich otrzymywania jest zautomatyzowany i w całości odbywa się poza moim komputerem. Miało to spore znaczenie na moim starym MacBooku, który na dwóch rdzeniach Core2Duo, przy 2 GB RAMu ledwo zipał próbując samemu wyliczać chmurę z użyciem narzędzi działających lokalnie.

Z nowym laptopem (nowy był rok temu, ale nadal to czterordzeniowy i7, karta od NVidii i 8GB RAMu, więc nie jest tragicznie) da się już zrobić coś więcej. Postanowiłem więc wypróbować rosyjski wynalazek. Zwłaszcza, że udostępniono wersję działającą pod Linuksem, która w dodatku nie wymaga instalacji.

zrzut ekranu147Tak wygląda produkcja modelu średniowiecznej jamy z Ostrowitego.

zrzut ekranu146I obciążenie systemu w trakcie pracy.

zrzut ekranu148Model przed teksturowaniem.

zrzut ekranu149Oraz po zakończeniu teksturowania. Odnoszę wrażenie, że jakość tekstury to szczególnie mocna strona programu.

zrzut ekranu150Porównanie modelu zrobionego w 123D Catch (po lewej) i PhotoScanie (po prawej). W obu przypadkach wykorzystano wyeksportowane pliki obj. DO wyświetlenia chmury użyto oczywiście Meshlaba.

zrzut ekranu151Zbliżenie detalu – fragmenty ceramiki naczyniowej. Po lewej 123D Catch, po prawej PhotoScan. Jakość tekstury w drugim przypadku jest znacznie wyższa.

zrzut ekranu152I podgląd chmury punktów (po lewej 123D Catch, po prawej PhotoScan) – gęstość punktów jest wyższa w przypadku 123D Catch.

zrzut ekranu153I siatka trójkątów.

mesh2 Inny przykład – grób 50 z Ostrowitego. Pokazuję go dlatego, że w tym przypadku 123D Catch miał olbrzymie kłopoty ze stworzeniem poprawnego modelu. Po lewej 123D Catch, po prawej PhotoScan. Różnica jakościowa, zwłaszcza w zakresie tekstury, w przypadku modelu PhotoScanu jest ewidentna.

mesh3Gęstość chmury w przypadku 123D Catch (po lewej) jest znacznie wyższa. Jednak program miał spore problemy z właściwym skonstruowaniem modelu. W przypadku PhotoScan punktów jest mniej, ale kształt jamy został zrekonstruowany znacznie lepiej.

Być może dla pełnego porównania powinienem te same modele złożyć także n.p. w Arc3D, by sprawdzić jak wygląda postęp w przypadku tego narzędzia. Jak znajdę nieco czasu, to pewnie to zrobię.

Wkrótce rozpoczynamy sezon wykopaliskowy. Wygląda na to, że okazji do dalszych prób z programem będzie jeszcze wiele.

Udostępnianie modeli 3D na stronie internetowej

Sketchfab to serwis umożliwiający dzielenie się modelami 3D poprzez stronę internetową. Obsługuje dość szeroką gamę najpopularniejszych typów plików, a nawet eksportery dla kilku najbardziej popularnych programów graficznych, w tym blendera. Umożliwia nie tylko wyświetlanie, ale także interakcję z modelami, przez co wydaje się być ciekawą alternatywą dla filmików, które zdarza mi się zamieszczać, lub statycznych zrzutów ekranu. Niestety, w wersji darmowej istnieje ograniczenie wielkości pliku do 50 MB. Obsługa jest dość prosta. Wymaga oczywiście rejestracji i podania adresu e-mail.

W kontekście archeologicznym serwis wydaje się być całkiem ciekawą platformą do udostępniania modeli 3D tworzonych w trakcie wykopalisk. Oczywiście sposób utworzenia modelu (za pomocą narzędzi Open Source, Arc3D, 123d Catch, Agistoft) nie ma znaczenia. Ważne by sporządzić plik w odpowiednim formacie. Jeśli tekstury znajdują się w osobnym pliku należy je spakować wraz z właściwym modelem w jedno archiwum zip.

WordPress (jako platforma blogowa, nie zaś cms) nie obsługuje pluginu Sketchfab i z powodów bezpieczeństwa nie pozwala na ich instalację. W związku z tym nie mogę tutaj osadzić swojego modelu, dlatego zamieszczam zrzut:

geo58

I link – możecie sprawdzić model bezpośrednio na stronie. W tym przypadku jest to spąg pieca kultury wielbarskiej, z resztkami rusztu.

Hypr3D kolejny sposób na uzyskanie modeli 3D

Wydaje się, że technika SfM pozwalająca na uzyskiwanie modeli 3D z serii dwuwymiarowych fotografii staje się szalenie modna. Organizowane są konferencje, także archeologiczne, pojawiają się kolejne wersje aplikacji droższych i tańszych o zróżnicowanych możliwościach. Pojawiają się też internetowe serwisy pozwalające na przeprowadzenie całej procedury on-line.

Jednym z taki serwisów jest Hypr3D, który postanowiłem przetestować dla moich szanownych Czytelników (to oczywista nieprawda – postanowiłem przetestować go dla siebie, ale wynikami dzielę się z Wami). Serwis przypomina nieco PhotoSynth od Microsoft ale daje dodatkowe możliwości:

1. Celem serwisu jest tworzenie modeli. Inaczej niż w PhotoSynth nie ma potrzeby stosowania jakiś wymyślnych skryptów by pozyskać model z serwisu. Sam serwis udostępnia linki do modeli w różnych formatach (w tym chmury punktów ply) i różnych rozdzielczościach:

2. Przeglądanie modeli jest oparte w serwisie na popularnej technologii flash. Jakkolwiek budzi ona szereg wątpliwości u różnej maści programistycznych purystów, to póki co jest dostępna na wszystkie główne platformy systemowe (t.j. Windows, MacOSX i Linux). To się ponoć ma zmienić, ale na razie właściwie każdy internauta może oglądać wyniki pracy Hypr3D, inaczej niż ma to miejsce z technologią Silverlight Microsoftu, która jest wspierana wyłącznie na Windows i MacOSX. Wtyczka Moonligt (implementacja tej technologii, jaką przygotował Novell, od dawna już nie chce współpracować z kolejnymi wersjami Firefoksa).

3. Przeglądarka Hypr3D ma też wersję embed, więc jest możliwość dzielenia się modelami na stronach internetowych.
http://www.hypr3d.com/models/4f5b0c18b9d90c0001000002/embedded_viewer

Oczywiście WordPress nie akceptuje tej przeglądarki (podobnie jak nie akceptuje PhotoSynth), więc możecie jedynie zajrzeć pod link powyżej.

Możliwość udostępniania modeli przez sieć wydaje się być szczególnie interesująca nie tylko w kontekście popularyzacji wyników badań, ale także np. konsultowania poszczególnych obiektów z innymi badaczami, za pośrednictwem sieci.

Jak przebiega proces tworzenia modelu?

1. Pierwszym krokiem jest założenie konta w serwisie. Oczywiście konieczne jest podanie e-maila, ale nie ma potrzeby weryfikacji konta za pośrednictwem mailowym.

2. Serwis w prosty, przejrzysty sposób prowadzi nas przez proces ładowania zdjęć. Tworzenie modelu przebiega całkowicie automatycznie.

3. Serwis jest zasadniczo darmowy, przy czym przewidziano opłaty za przekroczenie limitu objętości. Administratorzy mają także w planach naliczanie opłat za dodatkowe usługi, które będą implementowane do serwisu.

4. Serwis ma możliwość stworzenia modelu na podstawie filmu wykonanego aparatem lub nawet telefonem komórkowym. Tej opcji jednak nie sprawdzałem. Nie wiem jak działa.

5. Czas tworzenia modelu jest stosunkowo krótki. Łącznie z ładowaniem zdjęć całość nie trwałą dłużej niż pół godziny.

Jaka jest jakość uzyskanych wyników?

Otworzyłem wyeksportowany przez Hypr3D plik collada w najwyższej dostępnej rozdzielczości w Meshlab. Model wygląda znacznie lepiej niż na wbudowanej w serwis przeglądarce:

Jeśli chodzi o szczegóły i jakość odwzorowania, to optycznie wygląda lepiej niż w PhotoSynth, ale gorzej niż w Arc3D i 123D Catch. Nie mam zarzutów do jakości tekstury. Widać wyraźnie, że na modelu brak jest niedokładności i artefaktów widocznych na modelu w przeglądarce Hypr3D.

Chmura punktów z Hypr 3D. To grób 29 z Ostrowitego, który jest tu ostatnio probierzem dla programów i serwisów SfM. Przypomnę chmury dla tego samego grobu pokazywane już w serwisie:

Arc3D

123D Catch

Serwis ma swój program na iOS, który wytropiłem w Apple AppStore. Szkoda, że brak jest jego odpowiednika w sklepie Androida (teraz Google Play). Apki jednak nie testowałem, nie wiem czy pozwala wyłącznie na podgląd, czy też umożliwia tworzenie modelu.

Usługa nadal się rozwija. Wydaje się, że ważnym elementem powinno być teraz poprawienie jakości modeli wyświetlanych w systemowej przeglądarce Hypr3D. Dopiero wtedy będzie mógł rzeczywiście służyć jako platforma wymiany modeli w sieci.

Autodesk 123D Catch na Linux (i nie tylko)

Opisany wczoraj program na linuksie działa!

Oczywiście jest to wersja na Windows, ale przyzwoicie instaluje się za pomocą wine. Zbudowałem dla próby dwa różne modele. W zasadzie działają wszystkie funkcje programu poza zapisem filmu. Tutaj występują jakieś problemy z kodowaniem i albo otrzymujemy plik, który nie daje się odtworzyć, albo program się wysypuje. Nie ma jednak problemu by plik z zapisanym projektem otworzyć na innej partycji lub innym komputerze, z systemem Windows. Automatycznie pobierze on z chmury Autodesku wszystkie zdjęcia wykorzystane do stworzenia modelu i uruchomi projekt tak by można było odtworzyć i zapisać film.

Tak to wygląda na Mageia, z KDE.

Nie ma najmniejszych problemów z porozumiewaniem się programu z chmurą Autodesk.

Wygląda na to, że program zagości na moim laptopie i w końcu będę mógł na bieżąco sprawdzać jakość modeli podczas badań w terenie.

Wytropiłem w programie jeszcze jedną istotną funkcję. Pisałem bowiem wcześniej, że gęstość chmury przezeń produkowana nie jest największa. Otóż nie jest tak źle. Nie zauważyłem bowiem opcji pozwalającej na wybór jakości chmury punktów.

Funkcja ta pozwala na wybór jakości chmury:

Jakość chmury dla opcji „Maximum” jest już całkiem dobra. Dla porównania dwie chóry przygotowane dla tego samego obiektu:

Chmura na ustawieniach standardowych.

Chmura na ustawieniach maksymalnych.

Różnica gęstości jest całkiem spora.

Możemy teraz porównać jakość chmury grobu 29, jaki obserwowaliśmy w poprzednim wpisie:

Chmura punktów z programu Arc3D

Chmura z 123D Catch na ustawieniach standardowych.

Chmura z 123D Catch na ustawieniach maksymalnych.