Spisu treści:

DIY Skaner 3D oparty na świetle strukturalnym i wizji stereo w języku Python: 6 kroków (ze zdjęciami)
DIY Skaner 3D oparty na świetle strukturalnym i wizji stereo w języku Python: 6 kroków (ze zdjęciami)

Wideo: DIY Skaner 3D oparty na świetle strukturalnym i wizji stereo w języku Python: 6 kroków (ze zdjęciami)

Wideo: DIY Skaner 3D oparty na świetle strukturalnym i wizji stereo w języku Python: 6 kroków (ze zdjęciami)
Wideo: SMARTTECH - What is a 3D scanner? 2024, Listopad
Anonim
DIY Skaner 3D oparty na świetle strukturalnym i wizji stereo w języku Python
DIY Skaner 3D oparty na świetle strukturalnym i wizji stereo w języku Python
DIY Skaner 3D oparty na świetle strukturalnym i wizji stereo w języku Python
DIY Skaner 3D oparty na świetle strukturalnym i wizji stereo w języku Python

Ten skaner 3D został wykonany przy użyciu tanich konwencjonalnych elementów, takich jak projektor wideo i kamery internetowe. Skaner 3D światła strukturalnego to urządzenie skanujące 3D do pomiaru trójwymiarowego kształtu obiektu za pomocą rzutowanych wzorów światła i systemu kamer. Oprogramowanie zostało opracowane na podstawie światła strukturalnego i wizji stereo z językiem Pythona.

Rzutowanie wąskiego pasma światła na trójwymiarową powierzchnię tworzy linię oświetlenia, która wydaje się zniekształcona z innych perspektyw niż rzutnik i może być wykorzystana do dokładnej geometrycznej rekonstrukcji kształtu powierzchni. Poziome i pionowe pasy światła są rzutowane na powierzchnię obiektu, a następnie przechwytywane przez dwie kamery internetowe.

Krok 1: Wprowadzenie

Wstęp
Wstęp
Wstęp
Wstęp

Automatyczne urządzenia do akwizycji 3D (często nazywane skanerami 3D) pozwalają na budowanie bardzo dokładnych modeli rzeczywistych obiektów 3D w sposób efektywny kosztowo i czasowo. Eksperymentowaliśmy z tą technologią w skanowaniu zabawki, aby udowodnić jej wydajność. Specyficzne potrzeby to: średnio-wysoka dokładność, łatwość obsługi, przystępny koszt urządzenia skanującego, samodzielne rejestrowanie danych o kształcie i kolorze, wreszcie bezpieczeństwo operacyjne zarówno dla operatora, jak i skanowanych obiektów. Zgodnie z tymi wymaganiami zaprojektowaliśmy tani skaner 3D oparty na świetle strukturalnym, który przyjmuje wszechstronne podejście do wzorów kolorowych pasków. Przedstawiamy architekturę skanera, przyjęte technologie oprogramowania oraz pierwsze efekty jego zastosowania w projekcie dotyczącym pozyskania zabawki 3D.

Projektując nasz tani skaner, zdecydowaliśmy się wdrożyć jednostkę emitującą za pomocą projektora wideo. Powodem była elastyczność tego urządzenia (umożliwiająca eksperymentowanie z dowolnym rodzajem wzoru świetlnego) oraz jego szeroka dostępność. Czujnik może być urządzeniem niestandardowym, standardowym aparatem cyfrowym lub kamerą internetową. musi obsługiwać wysokiej jakości przechwytywanie kolorów (tj. akwizycję dużego zakresu dynamicznego) i możliwie z wysoką rozdzielczością.

Krok 2: Oprogramowanie

Oprogramowanie
Oprogramowanie

Język Python był używany do programowania z trzech powodów, jeden jest łatwy do nauczenia i implementacji, dwa możemy użyć OPENCV do procedur związanych z obrazami, a trzy można go przenosić między różnymi systemami operacyjnymi, dzięki czemu możesz używać tego programu w systemie Windows, MAC i Linux. Możesz również skonfigurować oprogramowanie do współpracy z dowolnym rodzajem kamery (kamerami internetowymi, lustrzankami lub kamerami przemysłowymi) lub projektorem o natywnej rozdzielczości 1024X768. Lepiej używać kamer o rozdzielczości ponad dwukrotnej. Osobiście przetestowałem wydajność w trzech różnych konfiguracjach, pierwsza była z dwiema równoległymi kamerami kinowymi Microsoft i małym przenośnym projektorem, druga była z dwiema kamerami kinowymi Lifecam, które obracały się o 15 stopni względem siebie i projektorem Infocus, ostatnia konfiguracja była z kamerami firmy logitech i projektor Infocus. Aby uchwycić chmurę punktów powierzchni obiektu, należy przejść przez pięć kroków:

1. Wyświetlanie wzorów szarości i przechwytywanie obrazu z dwóch kamer "SL3DS1.projcapt.py"

2. Przetwarzanie 42 obrazów z każdej kamery i kodów punktów przechwytywania „SL3DS2.procimages.py”

2. Regulacja progu wyboru maskowania dla obszarów do obróbki "SL3DS3.adjustthresh.py"

4. Znajdź i zapisz podobne punkty w każdej kamerze "SL3DS4.calcpxpy.py"

5 Oblicz współrzędne X, Y i Z chmury punktów „SL3DS5.calcxyz.py”

Wynikiem jest plik PLY z informacjami o współrzędnych i kolorze punktów na powierzchni obiektu. Możesz otwierać pliki PLY za pomocą oprogramowania CAD, takiego jak produkty Autodesk lub oprogramowania typu open source, takiego jak Meshlab.

www.autodesk.com/products/personal-design-a…

Aby uruchomić te programy w Pythonie, należy zainstalować Python 2.7, moduł OPENCV i NUMPY. Opracowałem również GUI dla tego oprogramowania w TKINTER, które można znaleźć w kroku szóstym z dwoma przykładowymi zestawami danych. Dodatkowe informacje na ten temat można znaleźć na następujących stronach internetowych:

docs.opencv.org/modules/calib3d/doc/camera_…

docs.opencv.org/modules/highgui/doc/reading…

www.3dunderworld.org/software/

arxiv.org/pdf/1406.6595v1.pdf

mesh.brown.edu/byo3d/index.html

www.opticsinfobase.org/aop/fulltext.cfm?uri…

hera.inf-cv.uni-jena.de:6680/pdf/Brauer-Bur…

Krok 3: Konfiguracja sprzętu

Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu
Konfiguracja sprzętu

Sprzęt składa się z:

1. Dwie kamery internetowe (Logitech C920C)

2. Projektor Infocus LP330

3. Statyw kamery i projektora (wykonany z płyt akrylowych 3 mm i drewna HDF 6 mm wycinanego laserowo)

Dwie kamery i projektor należy podłączyć do komputera z dwoma wyjściami wideo, np. notebooka, a ekran projektora skonfigurować jako rozszerzenie pulpitu głównego systemu Windows. Tutaj możesz zobaczyć obrazy kamer, projektora i stojaka. Plik rysunku gotowy do wycięcia załączamy w formacie SVG.

Projektor to Infocus LP330 (rozdzielczość natywna 1024X768) o następujących specyfikacjach. Jasność:650 lumenów Natężenie światła barwnego:**Kontrast (Pełne wł./wył.):400:1 Automatyczna przysłona:Nie Rozdzielczość natywna:1024x768 Współczynnik proporcji:4:3 (XGA) Tryby wideo:**Tryby danych:MAX 1024x768 Moc maksymalna:200 W Napięcie:100V - 240V Rozmiar (cm) (WxSxG):6 x 22 x 25 Waga:2,2 kg Żywotność lampy (pełna moc): 1 000 godziny Typ lampy:UHPL Moc lampy:120 W Ilość lampy:1 Typ wyświetlacza:2 cm DLP (1) Standardowy obiektyw zmiennoogniskowy: 1,25:1 Ostrość:Ręczny Rzut Odległość (m): 1,5 - 30,5 Rozmiar obrazu (cm): 76 - 1971

Ten projektor wideo służy do rzutowania uporządkowanych wzorów świetlnych na skanowany obiekt. Strukturalny wzór składa się z pionowych i poziomych pasków białego światła, które są zapisywane w pliku danych, a kamery internetowe rejestrują te zniekształcone paski.

Najlepiej używać tych kamer, które są sterowane programowo, ponieważ musisz dostosować ostrość, jasność, rozdzielczość i jakość obrazu. Możliwe jest używanie lustrzanek cyfrowych z pakietami SDK, które są dostarczane przez każdą markę.

Montaż i testy przeprowadzono w Kopenhaskim Fablabie przy jego wsparciu.

Krok 4: Eksperymentowanie ze skanerem

Eksperymentowanie ze skanerem
Eksperymentowanie ze skanerem
Eksperymentowanie ze skanerem
Eksperymentowanie ze skanerem
Eksperymentowanie ze skanerem
Eksperymentowanie ze skanerem

Do testowania systemu została użyta zabawka-ryba i można zobaczyć przechwycony obraz. Cały przechwycony plik, a także wyjściowa chmura punktów znajduje się w załączonym pliku, możesz otworzyć plik chmury punktów PLY za pomocą Meshlab:

meshlab.sourceforge.net/

Krok 5: Inne wyniki skanowania

Niektóre inne wyniki skanowania
Niektóre inne wyniki skanowania
Niektóre inne wyniki skanowania
Niektóre inne wyniki skanowania
Niektóre inne wyniki skanowania
Niektóre inne wyniki skanowania
Niektóre inne wyniki skanowania
Niektóre inne wyniki skanowania

Tutaj możesz zobaczyć skany ludzkiej twarzy i skan 3d ściany. Zawsze są jakieś punkty odstające z powodu odbić lub niedokładnych wyników obrazu.

Krok 6: GUI skanera 3D

GUI skanera 3D
GUI skanera 3D

Aby przetestować oprogramowanie do skanowania 3d w tym kroku, dodaję dwa zestawy danych, jeden to skan ryby, a drugi to tylko płaska ściana, aby zobaczyć dokładność. Otwórz pliki ZIP i uruchom SL3DGUI.py. Aby zainstalować, sprawdź krok 2. Wyślij wiadomość na moją skrzynkę odbiorczą, aby uzyskać wszystkie kody źródłowe.

Aby użyć części do skanowania 3d, musisz zainstalować dwie kamery i projektor, ale w przypadku innych części wystarczy kliknąć przycisk. Aby przetestować przykładowe dane, najpierw kliknij proces, następnie próg, dopasowanie stereo i na końcu chmurę punktów. Zainstaluj Meshlab, aby zobaczyć chmurę punktów.

meshlab.sourceforge.net/

Zalecana: