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.

Reklamy

Jeśli w Ubuntu nie działa wam Photoscan

W nowej wersji Ubuntu (15.10) nie działa nowy Agisoft Photoscan (wersja 1.2.2). Program się nie uruchamia. Najprostszym wyjściem jest używanie starszej wersji aplikacji. Na pewno działa 1.1.6.

Wyjaśnieniem problemu jest komunikat, który pojawia się, gdy spróbujemy uruchomić program z konsoli:

zrzut248Problemem są biblioteki Qt programu. Rozwiązaniem problemu jest po prostu usunięcie bibliotek programu i zmuszenie go w ten sposób z korzystania z bibliotek systemowych. Trzeba więc trwale usunąć pliki znajdujące się w katalogu „photoscan-pro” (w wersji podstawowej programu ten katalog pewnie nazywa się inaczej): libQtCore.so.4, libQtGui.so.4, libQtNetwork.so.4, libQtOpenGL.so.4.

Po ich usunięciu program uruchamia się z wykorzystaniem tych bibliotek zainstalowanych w systemie. I działa:

zrzut249zrzut247

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…

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.