Skanowanie 3D

Z Technique.pl
Skocz do: nawigacja, szukaj

Skanowanie 3D

Przetestowaliśmy ostatnio (12.2012) możliwość skanowania trójwymiarowego. Na rynku jest dostępnych wiele skanerów i rozwiązań tego typu. My, z uwagi na ograniczony budżet, wybraliśmy oprogramowanie David 3.5.1. Staraliśmy się, aby niniejszy artykuł nie był ani kryptoreklamą, ani recenzją - stąd brak linku do strony producenta. Zainteresowani mogą sobie wygooglać ;)

Na podstawie dłuższej "zabawy" tym systemem staraliśmy się zebrać pewne doświadczenia i refleksje dotyczące skanowania 3D, które najprawdopodobniej dają się uogólnić na inne systemy skanowania niż posiadany przez nas. Należy zauważyć, że oryginalna instrukcja obsługi zawierają wystarczająco dużo szczegółów, aby zacząć zabawę. Również forum internetowe na stronie producenta jest cennym źródłem wiedzy. Mamy nadzieję, że niniejszy artykuł skłoni czytelników do własnych przemyśleń i zapobieże poczynieniu przez nich np. chybionych inwestycji.

Czym skanować?

System tego typu składa się z następujących elementów:

  • komputera z odpowiednim oprogramowaniem,
  • kamery,
  • lasera liniowego lub projektora (metoda światła strukturalnego),
  • narożnika kalibracyjnego,
  • skanowanego przedmiotu.

Mózg operacji

Powiedzmy sobie wprost. Czym bardziej dokładne skanowanie, tym komputer powinien być lepszy. Podstawowa akceleracja grafiki 3D jest raczej obowiązkowa. My używaliśmy dość starego komputera (chipset i815, procesor ok. 2GHz, 1GB pamięci) i przy bardziej skomplikowanych przedmiotach odczuwało się poważny dyskomfort - jak np. odświeżanie ekranu z częstotliwością poniżej 5fps przy obracaniu skanów na ekranie. Także obróbka danych, jak np. dopasowanie do siebie wielu skanów z różnych stron tego samego przedmiotu, utworzenia z nich jednego modelu bryłowego itp. zaczyna zajmować dużo czasu (w wypadku bardziej złożonych skanów nagle z parunastu sekund robi się parę minut). Ale w wypadku skanowania drobnych przedmiotów o niedużej rozdzielczości był jak najbardziej wystarczający.

Klaps!

Użyte oprogramowanie wymaga użycia kamery internetowej. Tzn. urządzenia, które komputer zobaczy jako kamerę internetową. Wg producenta działają też przemysłowe kamery ze sterownikami DirectShow.

Jednak nie za bardzo może być to najtańsza kamera internetowa. Nawet nie chodzi o rozdzielczość. Strategicznie ważnymi parametrami będą: ostrość i możliwość jej ustawiania, głębia ostrości, poziom szumów i odkształcenia geometryczne obrazu... Co do rozdzielczości kamery to 640x480 lub 800x600 jest absolutnie wystarczające.

Należy także pamiętać o kompresji obrazu przesyłanego z kamery do komputera. Użyta kamera nie może kompresować ani interpolować obrazu. Artefakty powstające w procesie kompresji i interpolacji, nawet niezauważalne przy normalnym użyciu kamery, powodują znaczne zakłócenia skanowanych powierzchni 3D.

My używaliśmy kamery internetowej wspominanej przez producenta oprogramowania na jego stronie internetowej - jest to jeden z najdroższych modeli "L*", a i tak w kontekście skanowania 3D jest to naszym zdaniem absolutne minimum. Wspomnimy tylko, że ceny przemysłowych kamer o odpowiednich parametrach kształtują się na poziomie >700eur. Nasza kamera ma sensor o rozdzielczości sprzętowej 1600x1200px i chyba najlepsze rezultaty dawała w trybie 800x600px 15fps.

Posiadane przez nas oprogramowanie wg opisów z forum producenta może współpracować też z aparatami fotograficznymi typu Canon EOS. Nie testowaliśmy tej możliwości. Zapewne użycie takiego aparatu usuwa większość wad zwykłych kamer internetowych. Jednak obecnie nie ma kompletnej listy wspieranych aparatów. Tzn. zakłada się, że z nowszymi modelami raczej działa, ze starszymi raczej nie.

Gwiezdne wojny

Najstarszą metodą skanowania jest użycie lasera liniowego. Testowaliśmy to. Nasze spostrzeżenia:

  • Laser nie musi być mocny. Skanując w półmroku lub ciemności można użyć dość słabych laserów.
  • Niezależnie od zastosowanych środków BHP (specjalne okulary ochronne) po paru godzinach zabawy i tak dochodzi do podrażnienia wzroku.
  • Dokładność skanowania zależy od ostrości wiązki - musi być jak najwęższa, czy też najcieńsza.
  • Tańsze lasery mają ustawianą ostrość wiązki, ale mają też problem z jej jakością - tzn. może się nie udać ustawienie ostrości na całej długości linii.
  • Średnie cenowo lasery nie mają ustawianej ostrości. Tzn. linie przez nie tworzone potrafią być często nawet dość ostre... ale szerokie/grube.
  • Droższe lasery z lepszą optyką... są drogie - co oznacza, że trzeba się już poważnie zastanowić nad uzasadnieniem takiego zakupu.
  • Trudno jest ustawić ostrość - bo trudno wpatrywać się w rzutowaną laserową linię przez lupę (kategorycznie odradzamy!)... może istnieją do tego celu specjalne przyrządy lub można je zrobić - nie wnikaliśmy w to zagadnienie.
  • Aby otrzymać naprawdę dobre rezultaty, ruch lasera (tzn. linii, którą rzutuje) powinien być zmechanizowany. Dzięki temu można też zrezygnować z ciągłego użycia powierzchni kalibracyjnych (więcej o nich w dalszej części artykułu).

Podsumowując, odradzamy użycie lasera. Wydaje się, że skanowanie przy użyciu lasera może być prostsze i dawać lepsze rezultaty w wypadku dużych przedmiotów (meble, samochody itp.). Oczywiście znajdzie się dużo osób, które przy użyciu lasera osiągają dobre rezultaty także w skali mikro, ale wymaga to odpowiedniego przygotowania i sporo doświadczenia.

Całkiem ładny model 3D otrzymany metodą światła strukturalnego i projektora DLP (uchwyt paska z XIX w. hełmu strażackiego, wysokość ok. 40mm).

Kino w domu - metoda światła strukturalnego

Szczęśliwie do skanowania 3D nie trzeba używać lasera. Istnieje też technika skanowania przy użyciu projektora lcd/dlp. Zaletą metody jest niewątpliwie to, że nie używa się światła laserowego. Wadą, że używa się projektora. O przydatności projektora (jakości uzyskiwanych skanów powierzchni 3D), naszym zdaniem decyduje:

  • Ostrość obrazu i głębia owej ostrości...
  • Minimalna odległość projektora od ekranu (czyli możliwość ustawienia ostrości). W naszym wypadku, do skanowania drobnych detali, użyliśmy samodzielnie wykonanej protezy z soczewką nasadzaną na projektor, dzięki czemu zmniejszyliśmy minimalną odległość od projektora do ekranu z 60 do ok. 30cm,
  • Piksele - chodzi o to, czy i na ile na ostrym obrazie można wyróżnić poszczególne piksele obrazu. Tzn. czy są wyraźnie oddzielone od siebie ciemnymi liniami. Jeżeli wyraźnie są, może to powodować cykliczne zakłócenia na skanowanych powierzchniach 3D.
  • Szumy i inne zakłócenia - tzn. ma być ich jak najmniej.

Używaliśmy do testów projektora DLP firmy "B*" w średniej cenie. Możemy powiedzieć tylko, że szumi, widać mu piksele i generuje inne zakłócenia uwidaczniające się na małym ekranie (na dużym ich nie widać!). Ale mimo to ten projektor daje całkiem zadowalające rezultaty. Producent oprogramowania ma swój całkiem niedrogi, inny typ projektora, który poleca na swojej stronie internetowej.

Należy pamiętać, że w wypadku użycia projektora, jego światło jest na tyle słabe, że zewnętrzne źródła światła wpływają na jakość skanowania. Tzn. Pomieszczenie powinno być zaciemnione i/lub warunki oświetlenia powinny być stałe, a światło rozproszone. Oświetlenie nie może się zmieniać w dowolny sposób, na różnych obszarach skanowanego przedmiotu (chodzi np. o pojawiające się i znikające cienie, odblaski itp.).

Jakość skanu można doraźnie polepszyć manipulując jasnością projektora - o dziwo, wydaje się, że takie globalne, równomierne zmiany intensywności oświetlenia nie wpływają na kalibrację systemu.

Przykładowy skan 3D w oknie programu David 3.5.1. Widoczne zafalowania powierzchni to wynik interferencji pomiędzy ciemnymi liniami oddzielającymi piksele obrazu z projektora i matrycą kamery (model samochodu w skali 1:43 Duńskiej firmy Tekno z przełomu lat '60 i '70).

Spotkajmy się na rogu

Narożnik kalibracyjny - jest to przedmiot służący do kalibracji naszego systemu skanującego. Dokładniej, jest to narożnik utworzony z dwóch płaskich powierzchni ustawionych pod kątem 90 stopni. Na jego skrzydłach są naniesione specjalne wzory, dzięki którym oprogramowanie skanujące może się zorientować w przestrzeni. Umożliwia to również eliminację części zniekształceń optycznych powstających w obiektywach kamery i projektora. Strategicznie ważne jest:

  • Powierzchnie muszą być płaskie. Jeżeli do powierzchni z np. MDF'u przyklejamy wydrukowane na papierze wzory kalibracyjne, bezwzględnie muszą one przylegać na całej powierzchni (klej w spray'u dobrze się sprawdza) i być ustawione równo.
  • Powierzchnie muszą być ustawione dokładnie pod kątem 90 stopni. Zazwyczaj ustawia się je częścią wklęsłą do projektora/kamery, ale nic nie stoi na przeszkodzie, aby zrobić to odwrotnie.
  • Rozmiar powierzchni powinien być dobrany do rozmiaru skanowanego przedmiotu, rozmiaru obrazu rzutowanego przez projektor i kąta widzenia kamery.
  • W wypadku użycia projektora lub zmechanizowanego lasera, narożnik kalibracyjny jest potrzebny tylko w trakcie kalibracji. W wypadku użycia lasera trzymanego w ręku, narożnik musi być cały czas widoczny w kadrze.

Aniołki

Skanowane przedmioty mają swoje ograniczenia. A dokładniej, aby otrzymać zadowalające rezultaty, skanowany przedmiot powinien posiadać odpowiednio przygotowaną powierzchnię.

  • Raczej nie uda się zeskanować przedmiotu czarnego lub błyszczącego o ile nic się z nim nie zrobi.
  • W celu otrzymania dobrej jakościowo zeskanowanej powierzchni, przedmiot powinien być najlepiej biały i matowy.

Cóż, powoduje to, że idealnymi przedmiotami odpowiednimi do prowadzenia testów są gipsowe aniołki... Pozostałe przedmioty należy albo pomalować na biało-matowo, albo chociaż równomiernie pokryć talkiem, kredą lub mąką. Można tez zaopatrzyć się w specjalne spraye kredowe.

Nie da się ukryć, że przygotowanie powierzchni przedmiotu jest pewną uciążliwością. Pomijając kwestię brudu "w pracowni", to potem taki przedmiot trzeba wyczyścić lub umyć, a nie każdy przedmiot jest wodoodporny. Oczywiście można skanować przedmioty w stanie naturalnym (w wypadku skanowania z teksturą jest to wręcz wymagane), ale rezultaty będą lepsze lub gorsze zależnie od jasności i matowości(?) ich powierzchni.

Nasz testowy aniołek. Wysokość części widocznej na skanie to ok. 30mm.


Trzeba pamiętać, że w wypadku niektórych przedmiotów, przygotowanie ich do skanowania będzie decydującym kosztem całej operacji - np. w wypadku skanowania "prawdziwych" samochodów, jak wynika z opisów z forum producenta oprogramowania, trzeba poświęcić dwa dni na przygotowanie, dzień na skanowanie i kolejny dzień na mycie... A wszystko razem musi się odbywać w pomieszczeniu zamkniętym, sporo większym od samochodu oraz o ustabilizowanej temperaturze.

Skanowanie

Mając złożony cały system możemy przystąpić do skanowania. Generalnie sekwencja czynności jest dość dobrze opisana w instrukcji oprogramowania, więc tą część potraktujemy skrótowo.

Kalibracje

Po wybraniu kamery i metody skanowania (laser lub światło strukturalne), kalibrujemy system. Najpierw kamerę, w wypadku użycia projektora w drugim kroku projektor. Przed tym należy pamiętać o ustawieniu ostrości zarówno projektora, jak i kamery. Te parametry mają wpływ na kalibrację. O dziwo, wydaje się, że jasność projektora i wirtualny czas otwarcia migawki kamery nie mają wpływu na kalibrację i możemy tymi parametrami później bezkarnie "kręcić", nie musząc ponownie kalibrować systemu (w wypadku czasu otwarcia migawki należy pamiętać, aby nie wpaść w zakres interferencji ze źródłami światła i kompresji obrazu przesyłanego z kamery do komputera). Potem możemy skanować.

Przykadowy skan 3D. Ten skan składa się z ponad 48000 trójkątów, a mimo to wydaje się niedokładny. Może to ilustrować skalę problemu przy przetwarzaniu skomplikowanych modeli 3D utworzonych metodą skanowania.

Gdzie mój model?

Niestety. Prawie zawsze zeskanowanie przedmiotu będzie wymagać więcej niż jednego skanu. Tzn. Wykonuje się wiele skanów, obracając przedmiot po każdym skanie i dbając o to, aby kolejne skany wzajemnie się uzupełniały.

Kolejne skany przykładowego przedmiotu w widoku rozstrzelonym.


Nawet w wypadku stosunkowo płaskich przedmiotów o charakterze "płaskorzeźby", powinno się wykonać więcej niż jeden skan. Usunie to potencjalne "dziury" ze skanów i generalnie poprawi ich jakość. Podczas składania w model 3D, wielokrotnie powielone podczas skanowania fragmenty powierzchni zostaną uśrednione.

Przykład skanu przedmioty typu "płaskorzeźba". Ten model wymagał 3 skanów wykonanych pod różnymi kątami (średnica ok. 30mm).

Czy to koniec?

Nie. Wiele skanów tego samego przedmiotu trzeba połączyć w jeden model. Ponieważ przedmiot był obracany, poszczególne skany trzeba ze sobą spasować. Posiadane przez nas oprogramowanie radzi sobie z tym całkiem nieźle z automatu. Jednak gdy czasem wystąpią problemy z łączeniem czy też sklejaniem skanów, to niestety narzędzia do ręcznego pasowania poszczególnych skanów ze sobą są dość słabe.

Użyte przez nas oprogramowanie próbuje także dostosowywać jakość tworzonego ostatecznie modelu w zależności od zasobów komputera na którym to się odbywa. Prawdopodobnie głównie dotyczy to pamięci operacyjnej. Program podczas ostatecznego tworzenia modelu 3D czasem samoczynnie zmniejsza jego rozdzielczość, a czasem w ogóle odmawia jego stworzenia, dopóki ręcznie nie zmniejszy się oczekiwań odnośnie wyników pracy. Niestety nie bardzo da się w ten proces ingerować (albo jeszcze nie wiemy jak to zrobić...).

Wstępnie złożone skany w jeden model. Powierzchnie pochodzące od różnych skanów są w różnych kolorach. Widać, że samoczynne spasowanie poszczególnych skanów trochę zawiodło. Ten model 3D będzie wymagał jeszcze wiele pracy.


Na szczęście istnieją całkiem sprawne darmowe programy, które bardzo dobrze radzą sobie z obróbką skanów i rekonstrukcją powierzchni, aczkolwiek są skomplikowane w użyciu i wymagają już pewnej wiedzy i wprawy (jak np. Meshlab).

Podsumowanie

Metoda skanowania 3D w wielu wypadkach wydaje się bardzo obiecująca. Przy odrobinie wprawy można uzyskiwać bardzo dobre rezultaty. Nawet jeżeli skanowanie i utworzenie modelu jakiegoś przedmiotu zajmie parę godzin, to w wypadku odtwarzania istniejących detali, może to być szybsze i prostsze niż modelowanie ich od podstaw w programach typu CAD. Dotyczy to przede wszystkim przedmiotów zawierających wiele krzywizn. Metoda jest w szczególności przydatna, gdy odtworzenia wymaga przedmiot już niedostępny w handlu.

Metoda ma też swoje wady. Otrzymane modele 3D są powłokami i nie są parametryczne, co utrudnia późniejszą cyfrową obróbkę i ich ew. modyfikacje. No i oczywiście ładne opracowanie skomplikowanego modelu może zabrać bardzo wiele godzin pracy.

Stosując podobne metody trzeba też sobie zdawać sprawę z zagadnień związanych z prawami autorskimi...


W wypadku zainteresowania czytelników technologiami "szybkiego prototypowania" będziemy kontynuować tą tematykę.


Autor: dr inż. Szymon Dowkontt


Powrót