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.

Reklamy

Nowy Moonlight – przeglądarka Silverlight dla Linux

Jeszcze niedawno pisałem, że serwis PhotoSynth jest niedostępny dla linuksów, a w międzyczasie zostałem całkowicie zaskoczony. Zaktualizował mi się Moonlihght czyli linuksowa wersja Silverlight opracowywana przez Novell.

Wersja 3.99.0.2 jest dostępna od 24 lutego (według oficjalnej strony) i wygląda na to, że jest to zapowiedź wersji 4 (Preview). W każdym razie już teraz możliwe jest przeglądanie serwisu PhotoSynth:

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.

Dokumentacja 3D z PhotoSynth – cz. 1

Dokumentacja 3D jest w archeologii bardzo trendy i w ogóle cool. Niestety jest też zwykle droga, bo wymaga zakupu drogiego sprzętu do skanowania 3D, lub przynajmniej nieco tańszego, ale nadal drogiego oprogramowania, jak Photomodeler Skaner (za drobne blisko 10 tys., mają specjalną stronę dla archeologów) lub ImageMaster od Topcona (też reklamują się dla archeologów, niestety ceny nie udało mi się odnaleźć) czy tańszy PhotoScan. Pierwsze dwa programy mają spore możliwości, zwłaszcza jeśli chodzi o współpracę z tachimetrami, umożliwiając w wielu przypadkach zastąpienie skanerów 3D.

Okazuje się, że trójwymiarowe modele z serii zdjęć można uzyskać też metodami nieco bardziej budżetowymi. W grę wchodzi wykorzystanie opensource’owych aplikacji Bundler i PMVS, co jednak wiąże się z koniecznością samodzielnej kompilacji (Linux) lub kombinowania ze skryptami (Windows – namiary tutaj). Oczywiście można też spróbować z ArcheOS i jego pythonowym gui na OpenSource Photogrammetry Toolkit, o którym pisałem ostatnio. Moje własne próby na wirtualizowanym ArcheOS nie przyniosły jednak pozytywnych rezultatów. Proces przygotowania modelu przebiegł dość gładko, udało się uzyskać plik ply, ale pliku nie udało się później otworzyć w Meshlab. W każdym razie dokładny tutorial pracy znajdziecie na tej stronie. Może uda się komuś z Was.

Na razie najlepszą metodą jaką znalazłem jest wykorzystanie serwisu PhotoSynth udostępnianego przez Microsoft. Jako zatwardziały linuksiarz (linuksowiec… użytkownik linuksa…) musiałem przesiąść się na czas prób na Windows, bo tylko z pokładu tego systemu można ten serwis obsługiwać. Efektem jest taki synth:

(trzeba kliknąć w odnośnik, bo WordPress nie chce puszczać synthów w opcji embed)

http://photosynth.net/embed.aspx?cid=a9696b2a-9a04-408c-a76b-81926d770303&delayLoad=true&slideShowPlaying=false

By móc go oglądać potrzebna jest wtyczka Silverlight w wersji 4, więc z pokładu linuksa będziemy musieli obejść się smakiem (wersja linuksowa czyli moonlight jest sporo z tyłu, odpowiada w. 2). W ramach rekompensaty zrzuty:

To wersja „zdjęciowa”, nazywana w systemie 3D view.

I wersja chmury punktów.

To co tutaj widać to grób 24 z Ostrowitego. Najciekawszy z obiektów grobowych, jakie do tej pory udało nam się odnaleźć.

Chmurę punktów z PhotoSynth można odzyskać. Można dokonać jej obróbki w darmowym oprogramowaniu, by uzyskać model 3D. O taki jak na zrzucie poniżej:

Tutorial krok po kroku pozwalający to uzyskać pojawi się wkrótce na blogu…