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.

Modele 3D ze zdjęć od Autodesk

Pamiętacie jeszcze eksperymenty, jakie podejmowałem tutaj by uzyskać modele 3D z serii zdjęć? Zakładam rolę dokumentacyjną takich modeli w archeologii – możliwość utrwalenia nie tylko dwóch wymiarów dokumentowanej rzeczywistości, jak to ma miejsce przy tradycyjnych rysunkach, fotografiach i ortofotografiach archeologicznych, ale aspektu 3D. Dokumentacja taka na razie nie może zastąpić tej tradycyjnej, ale może i powinna stanowić jej uzupełnienie.

Do tej pory podejmowałem próby z serwisem Photosynth oraz serwisem Arc3D. Tym razem rozwiązanie dostarczane przez Autodesk, czyli programik 123D Catch. Program dostępny jest wyłącznie w wersji na Windows (spróbuję odpalić na Wine – planuje kolejne wpisy na ten temat). Rozwiązanie działa w chmurze – więc przypomina nieco poprzednio opisane, także w tym przypadku niezbędne jest połączenie z siecią.

Do wykonania modelu potrzebny jest zestaw zdjęć, najlepiej wykonanych w sposób analogiczny do tego, jaki wymagany jest do opisywanych wyżej serwisów. Niezwykle przejrzysty interfejs niemal prowadzi za rękę w procesie produkcji modelu. Ładujemy więc zdjęcia…

ObrazekMożna wybrać dwie opcje – powiadomienia przez e-mail lub czekania na wynik działania chmury. W przypadku przygotowanych przeze mnie modeli zabierało to na prawdę niewiele czasu – zaledwie kilka minut. Po ich upływie otwiera się takie okienko:

Obrazek

Na dole mamy kolekcję zdjęć stanowiących podstawę wykonania modelu. Okno robocze domyślnie wyświetla model z teksturą oraz miejscami z których wykonano zdjęcia.

Program ma możliwość szybkiego i łatwego importu do kilku formatów grafiki 3D (w tym dwg i obj) oraz klipów filmowych (można zaaranżować własną ścieżkę pracy kamery lub wybrać domyślną), automatycznie generując logo 123D Catch. Ważną funkcją jest możliwość ustawienia odległości między wybranymi punktami (w terenie można więc ustawiać własne markery np. siatki metrowej).

Generowana przez program chmura punktów ma nieco mniejszą gęstość niż w Arc3D. Dla porównania zamieszczam zrzuty:

Obrazek

Chmura punktów z Arc3D

Obrazek

Chmura punktów z 123D Catch.

Ale jednocześnie program generuje znacznie bardziej „kompletne” modele, lepiej radząc sobie z teksturą (znacznie mniej artefaktów, znacznie lepszy blending – płynne przejścia między poszczególnymi klatkami). Można porównać to na tych zrzutach:

Obrazek

Model teksturowany z Arc3D.

Obrazek

Model teksturowany z 123D Catch.

Jeszcze lepszy wynik uzyskał program w modelu grobu 24. Arc3D stworzył model niekompletny, nie dając sobie rady z odwzorowaniem skupiska kamieni we wschodniej części jamy.

Model Arc3d

Efekty pracy 123d Catch z tym samym materiałem zobaczycie na filmiku.

 Autodesk udostępnił bardzo ciekawe rozwiązanie. Na pewno będę jeszcze o nim pisał. Program oferuje sporo możliwości, które chciałbym jeszcze przetestować. Już teraz mogę z czystym sumieniem napisać, że oferuje możliwość pracy znacznie szybszą i wygodniejszą niż inne podobne rozwiązania, a efekty jego pracy uznać można za co najmniej zadowalające.

Aktualizacja (2.03.2012) – wygląda na to, że wyświetlał się niewłaściwy filmik. Teraz mam nadzieję będzie już dobrze.

Dokumentacja 3D z PhotoSynth – cz. 2

Dawno obiecana instrukcja tworzenia modelu z użyciem serwisu PhotoSynth, krok po kroku.

1. Pierwsza rzecz to konto w serwisie PhotoSynth. To chyba nie przekracza możliwości średnio rozgarniętego użytkownika komputera. Jest to wspólne konto z usługą Windows Live. Plusem jest to, że nie trzeba wymyślać loginu bo zostanie on utworzony z Twojego adresu mailowego.

2. W serwisie wybierz opcję Create a Synth. Serwis automatycznie poprowadzi Cię do instalacji programu PhotoSynth, który służy do ładowania zdjęć do serwisu.

3. Zdjęcia (powinien to być punkt zero). Generalnie najlepiej zrobić serię zdjęć z różnych kątów widzenia, obchodząc fotografowany obiekt dookoła i fotografując z mniej więcej tej samej odległości. Dodatkowo pulę zdjęć można wzbogacić o fotki detali. Im więcej zdjęć zrobisz tym lepiej.

4. Załaduj zdjęcia za pomocą aplikacji PhotoSynth. W programie możesz wybrać, czy swojego syntha udostępnisz innym, czy raczej pozostawisz go dla siebie oraz ramy prawne udostępnienia (np. public domain, czy Creative Commons).

5. Po przesłaniu zdjęć serwery Microsoftu wezmą się za pracę i w efekcie otrzymasz gotowego syntha zamieszczonego w serwisie. Opcje podglądu umożliwią oglądanie go jako widok 3d (rodzaj interaktywnej mozaiki ze zdjęć, widok 2d – galerię zdjęć, chmurę punktów oraz tzw. overview – chmurę punktów z wektorami załadowanych fotografii.

6. Teraz pora na import chmury punktów z serwisu Microsoft. Można to zrobić na różne sposoby, w tym tutorialu wykorzystamy jeden z nich. Ze strony Visual Experiments ściągnij Photosynth Toolkit. Paczkę rozpakuj, aby uzyskać dostęp do wszystkich zawartych w niej aplikacji. Powinno to wyglądać tak:

7. Uruchom narzędzie Download Sytnh. W pojawiającym się okienku zaznacz katalog do którego chcesz zaimportować model oraz potwierdź chęć ściągnięcia miniatur w oknie dialogowym. W innym oknie metodą kopiuj-wklej wstaw adres do Syntha.

8. Możesz następnie uruchomić opcję podglądu ściągniętego modelu (Watch PhotoSynth Output), choć nie jest to konieczne. Możesz też użyć narzędzia Download HD Synth Pictures – stworzy ono w katalogu docelowym folder HD. Jego zawartość przenieś do katalogu distort. Jeśli nie chcesz ściągać zdjęć HD to do tego katalogu wrzuć te same zdjęcia, które wysyłałeś do PhotoSyntha, w tej samej kolejności.

9. Użyj opcji Prepare for PMVS2. W jej efekcie otrzymasz nowy plik launch_pmvs_(nazwa_pliku) – jest to skrypt, który będziesz musiał uruchomić poprzez zwykły dwuklik na jego ikonce. W tym momencie pracę rozpocznie aplikacja PMVS2, która dodatkowo „podrasuje” chmurę otrzymaną z PhotoSyntha:

10. Efektem całej dotychczasowej procedury jest otrzymanie pliku o rozszerzeniu ply. To model, który możesz poddać dalszej obróbce. Do tego celu użyjemy programu MeshLab. Ściągnij i zainstaluj MeshLab (u mnie na Windows Seven 64 bit wersja 64-bitowa nie pracowała stabilnie – notorycznie się wywalała więc zainstalowałem wersję 32 bitową; istnieje też wersja Linux i MacOSX). MeshLab umożliwia pracę z chmurami punktów i jest całkowicie darmowym narzędziem. Nie wchodząc w szczegóły warto zapoznać się z podstawowymi elementami interfejsu:

Istotne będą dla nas następujące elementy:

  1. Otwieranie nowego pliku – pod tą ikoną otworzysz wygenerowany wcześniej model.
  2. Otwieranie bocznego panelu z drzewem warstw. Lepiej mieć go otwartego – pomaga orientować się w sytuacji.
  3. Zestaw ikon pomagających wybrać sposób renderowania modelu. Możesz tutaj przerzucać między trybem przeglądania chmury punktów, siatki trójkątów lub modelu z wygładzaniem i bez niego, a także włączanie lub wyłączanie tekstury.
  4. Narzędzie zaznaczania punktów (najlepiej używać w trybie pracy na chmurze punktów)
  5. Narzędzie zaznaczania trójkątów (najlepiej używać w trybie pracy na siatce trójkątów)
  6. Narzędzie usuwania zaznaczonych trójkątów
  7. Narzędzie usuwania zaznaczonych punktów.

11. Po otwarciu chmury punktów użyj narzędzi zaznaczania i usuwania punktów do wyeliminowania wszystkich dodatkowych punktów, nie pasujących do modelu:

Zaznaczone punkty podświetlają się na czerwono. Model prawdopodobnie będzie miał sporo takich „dodatkowych”, zbędnych punktów. Usuwaj rozważnie, bo opcja powrotu w MeshLab nie działa najlepiej.

12. Wejdź w: Filters – Normals, Curvatures, and Orientation – Compute Normals for Point sets, by utworzyć normale (jak to jest po polskiemu?). Należy wybrać parametr, którego domyślna wartość to 10. Można ją pozostawić.

13. Stwórz powierzchnię (siatkę trójkątów) dla chmury punktów. Wejdź w: Filters -Point Set – Surface Reconstruction: Poisson Reconstruction. W oknie dialogowym powinieneś ustawić następujące wartości: Octree Depth = miedzy 10 a 12, Solver Divide = między 7 a 8, Samples per Node = 1 (domyślne), Surface offseting = 1 (domyślne). Wciśnij Apply. Pojawi się nowy wpis w drzewie warstw na panelu bocznym – to nowo utworzony model – powierzchnia z siatki trójkątów.

Może wyjść coś takiego, jak to co na zrzucie powyżej, ale zwykle pojawia się „bąbel” jak poniżej:

14. Zlikwiduj zbędne elementy wykorzystując narzędzia zaznaczania i usuwania trójkątów:

W efekcie otrzymasz model:

15. Model może zostać pokolorowany, używając kolorów zapisanych w chmurze punktów. W tym celu wejdź w Filters – Sampling – Vertex Attribute Transfer. Pojawi się okno w którym domyślnie zaznaczona jest opcja „Transfer Color” – pozostaw ją. Wybierz „Source Mesch” – tu ustaw z rozwijanej listy nazwę pierwotnej chmury punktów. Wybierz „Target Mesh” – tu ustaw z rozwijanej listy nazwę stworzonego modelu (pomoże Ci w tym otwarty panel boczny z drzewem warstw). W rubryce „Max Dist Search (abs and %), w okienku procentów ustaw 3.000. Wybierz Apply. Po wykonaniu procedury możesz ponownie użyć tego okna, w rubryce procentów wpisując 0.300. Możesz zamknąć okno. Model będzie pokolorowany:

16. Korzystając z opcji File – Export Mesh As zapisz plik.

Uzyskujesz model, którego jakość jest gorsza niż w przypadku Arc3D, ale za to brak jest tutaj rozmaitych ograniczeń jakie wiążą się z tworzeniem modeli w tym systemie (dość surowe rygory związane ze sposobem wykonywania zdjęć). Dalsza obróbka polegająca na stworzeniu tekstur ze zdjęć powinna znacząco podnieść potencjał dokumentacyjny modelu.

Dokumentacja 3D z Arc3D (aktualizacja 7.03.2011)

Oprócz możliwości rekonstrukcji 3D, które podawałem w pierwszym wpisie o PhotoSynth istnieje także inna, o której dzisiaj słów kilka.

Arc3d to serwis utrzymywany i opracowany przez Uniwersytet w Louven. System pozwala na przygotowanie modelu 3D na podstawie serii fotografii. Cały proces odbywa się na komputerach serwisu, co pozwala nam zaoszczędzić czas i zasoby naszego sprzętu. Jak to działa w praktyce:

1. Ze strony serwisu ściągamy aplikację Arc3D. Umożliwia ona upload zdjęć na serwery Arc3D. Istnieje wersja Windows i Linux (jak zwykle źródła do samodzielnej kompilacji). Aplikacja wygląda tak:

2. Aplikacja przeprowadza wstępną selekcję zdjęć i pomaga zalogować się do serwisu. W trakcie logowania konieczne jest podanie ważnego adresu e-mail. Będzie on konieczny do odzyskania gotowych modeli. Po zakończeniu procedury tworzenia modelu serwis wysyła dwa maile z linkami do ściągnięcia archiwów zip z modelami.

3. Tworzenie modelu trwa zwykle więcej niż 15 minut, jak podaje instrukcja na serwisie. Dobrze jest zapoznać się z tą instrukcją jeszcze przed rozpoczęciem zdjęć.

4. Arc3D oddaje użytkownikowi obecnie dwa modele: jeden stworzony według starszych algorytmów, drugi, który zwykle tworzony jest szybciej, według nowego algorytmu określanego jako eksperymentalny. Modele należy otwierać w Meshlab i tam można je poddawać dalszej obróbce.

W przypadku mojego modelu starszy algorytm okazał się kompletną porażką. Ale wiem, że nie zawsze tak jest.

Nowy algorytm dał wynik świetny pod względem precyzji odwzorowania, ale mocno niekompletny. Prawdopodobnie wynika to ze stosunkowo niewielkiej ilości zdjęć (11), które wysłałem na serwer.

A tak wygląda porównanie modeli stworzonych w PhotoSynth (z obróbką w Meshlab) i w Arc3D (bez obróbki). W dalszej kolejności obie chmury punktów zostaną połączone:

[Jak widać nie chodzi tutaj o pseudo 3d zrobione na zasadzie animacji poklatkowej, czy zestawienia zdjęć, a normalne modele 3D]

Dokładny tutorial prezentujący sposób uzyskania chmury punktów z PhotoSynth i jej dalszą obróbkę pojawi się wkrótce.

Aktualizacja (7.03.2011):

Właśnie otrzymałem od Arc3D nowy model grobu 24, stworzony z większej ilości zdjęć. Efekt jest świetny:

Model teksturowany (tekstura wymaga drobnych retuszy)

Model bez tekstury. Dobrze czytelne są kości (bardzo słabo zachowane in situ) oraz kamienie, które zapadły się do wnętrza jamy po destrukcji drewnianej konstrukcji grobowej.

Chmura punktów.

Tym razem udało się odtworzyć zasięg niemal całej jamy, plastykę jej wnętrza (wraz z doskonale czytelnym poprzecznym rowkiem po legarze konstrukcji grobowej), układ kości obu szkieletów. Jakość chmury i modelu jest zdecydowanie wyższa niż uzyskana z PhotoSynth. Sam proces budowy modelu tym razem trwał nie dłużej niż pół godziny do 45 minut.