Wizualizacja obiektu widzianego przez kamerę stereowizyjną w trójwymiarze (metoda mapy głębokości)

Podobne dokumenty
Przetwarzanie obrazu stereo. Zuzanna Pietrowska 9 czerwca 2010

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 12 AiR III

Grafika komputerowa i wizualizacja

Rzutowanie z 4D na 3D

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Symulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007

System wspomagania harmonogramowania przedsięwzięć budowlanych

Przekształcenia geometryczne. Dorota Smorawa

Akademia Górniczo-Hutnicza

Wizualizacja płomienia

Przykłady oprogramowania wykorzystujacego Qt

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Wizualizacja pogody dla windsurferów

Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

WIZUALIZACJA I STEROWANIE ROBOTEM

Tworzenie nowego rysunku Bezpośrednio po uruchomieniu programu zostanie otwarte okno kreatora Nowego Rysunku.

Implementacja filtru Canny ego

PRZEWODNIK PO PRZEDMIOCIE

Informatyka studia stacjonarne pierwszego stopnia

Wzorce projektowe i refaktoryzacja

Akademia Górniczo-Hutnicza

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D

Mieszanie kolorów. Dorota Smorawa

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Rzutowanie DOROTA SMORAWA

Katedra Systemów Decyzyjnych Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska Narutowicza 11/ Gdańsk Poland

Środowisko badawcze metod segmentacji bazujących na modelach odkształcalnych w obrazowaniu biomedycznym

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Elementy analizy obrazu. W04

PRZEWODNIK PO PRZEDMIOCIE

Symulator tabletu z systemem Windows 8.

Prezentacja MS PowerPoint 2010 PL.

PROJEKT Z BAZ DANYCH

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Wizualizacja danych sensorycznych Projekt Tworzenie grafiki stereoskopowej. Marek Gulanowski

Dwufazowy system monitorowania obiektów. Karina Murawko, Michał Wiśniewski

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

1. Wprowadzenie. 1.1 Uruchamianie AutoCAD-a Ustawienia wprowadzające. Auto CAD Aby uruchomić AutoCada 14 kliknij ikonę

Automatyka i Robotyka studia stacjonarne drugiego stopnia

KARTA KURSU. Grafika komputerowa

WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA AUTOMATYKI. Robot do pokrycia powierzchni terenu

Rok akademicki: 2014/2015 Kod: IEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Język Java część 2 (przykładowa aplikacja)

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii:

Anna Fabijańska. Algorytmy segmentacji w systemach analizy ilościowej obrazów

Misja #1 Poznajemy Prophio.

System zarządzający grami programistycznymi Meridius

E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Edytor tekstu OpenOffice Writer Podstawy

SYSTEMY CZASU RZECZYWISTEGO (SCR)

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 3

Edytor tekstu MS Word 2010 PL: grafika. Edytor tekstu MS Word umożliwia wstawianie do dokumentów grafiki.

Język Java część 2 (przykładowa aplikacja)

Referat Pracy Dyplomowej

Laboratorium 9 (Więcej Aktywności, w Androidzie)

Program V-SIM tworzenie plików video z przebiegu symulacji

1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Typ danych. Karta ogólne. Rozmiar pola Liczba całkowita długa. Autonumerowanie. Rozmiar pola 50. Tekst. Rozmiar pola 50. Tekst. Zerowa dł.

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

1 Tworzenie brył obrotowych

Edytor tekstu MS Word 2010 PL. Edytor tekstu to program komputerowy umożliwiający wprowadzenie lub edycję tekstu.

Mapy myśli. Strona 1. Przykład mapy myśli z wykorzystaniem narzędzia

III. Przebieg ćwiczenia. 1. Generowanie i wizualizacja przebiegów oraz wyznaczanie ich podstawowych parametrów

DEMERO Automation Systems

Jak korzystać z Excela?

Tworzenie prezentacji w MS PowerPoint

Płatnik wersja a wersja 1.5

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Podczas tej lekcji przyjrzymy się, jak wykonać poniższy rysunek przy pomocy programu BobCAD-CAM

Zaawansowany kurs języka Python

Instrukcja obsługi przełącznika KVM ATEN CS661. Opis urządzenia. Instalacja urządzenia

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

Platforma WSiPnet.pl dla każdego ucznia

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Rok akademicki: 2012/2013 Kod: IET SW-s Punkty ECTS: 3. Kierunek: Elektronika i Telekomunikacja Specjalność: Systemy wbudowane

1. Pobieranie i instalacja FotoSendera

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Laborki GUI. dr Przemysław Juszczuk. Katedra Inżynierii Wiedzy

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Instrukcja obsługi notowań koszykowych w M@klerPlus

1.1 Zakładka Mapa. Kliknięcie zakładki "Mapa" spowoduje wyświetlenie panelu mapy:

4.Arkusz kalkulacyjny Calc

INŻYNIERIA OPROGRAMOWANIA

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1)

Systemy Informatyki Przemysłowej

Instrukcja użytkowania

Dodawanie grafiki i obiektów

Pracownia internetowa w szkole ZASTOSOWANIA

ABIX Cyfrowa edukacja z oprogramowaniem Open Source

Jak korzystać z zasobu książek elektronicznych Małopolskie Biblioteki Publiczne platformy IBUK Libra

6.4. Efekty specjalne

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom zaawansowany)

Transkrypt:

Rafał Toboła Wizualizacja obiektu widzianego przez kamerę stereowizyjną w trójwymiarze (metoda mapy głębokości) 14 czerwca 2009 Spis treści 1. Rozwiązywany problem.......................... 1 2. Funkcjonalność aplikacji.......................... 2 3. Interfejs graficzny aplikacji........................ 3 4. Diagram klas................................. 6 5. Diagram przepływu sterowania..................... 7 6. Wyniki eksperymentów.......................... 7 6.1. Scena z płytą CD............................ 8 6.2. Budynki.................................. 11 6.3. Scena z maską.............................. 17 6.4. Rzeźba i lampa.............................. 20 6.5. Pluszowe zabawki............................ 23 7. Wnioski Podsumowanie.......................... 26 Literatura..................................... 26 1. Rozwiązywany problem Przetwarzanie obrazów stereowizyjnych umożliwia bezinwazyjne mierzenie odległości. Stereowizja może mieć zastosowanie w wielu miejscach. Może być wykorzystana np. do pomiaru kształtu terenu, czy odległości od przeszkód dla robotów mobilnych. Robot manipulacyjny na podstawie mapy głębokości może rozpoznawać kształ i odległość obiektów, na których ma przeprowadzać jakieś operacje (wiercenie otworów, spawanie itp.). Przez ostatnie lata rozwinięto wiele metod na tworzenie mapy głębi na podstawie obrazów stereowizyjnych. Możemy je podzielić na cztery działy: oparte na cechach - algorytmy te wydzielają z obrazów pewne cechy, krawędzie, linie proste, krzywe. Dopasowanie następuje na podstawie odna- Instytut Informatyki, Automatyki i Robotyki, Politechnika Wrocławska, ul. Z. Janiszewskiego 11/17, 50-320 Wrocław, maj 2008. 1

lezienia takich elementów na obu obrazach. Wadą tej metody jest nieliczność informacji n.t. głębi obrazu; oparte na obszarach - obrazy dopasowywane są na podstawie poziomów szarości, czy tekstury. Wadą tej metody jest brak informacji o krawędziach; oparte na fazie - porównywane tutaj są transformaty Fouriera obrazów. Trzeba tutaj odnaleźć algorytm znajdujący globalne minimum; oparte na energii - algorytm minimalizuje równanie Euler a-lagrange a, które stowarzyszone jest z mapą głębi obrazów. Odległość można wyznaczyć na podstawie różnicy położenia tego samego punktu na obrazach uzyskanych z dwóch kamer. Rzutowanie punktu na obraz kamer przedstawiono na rysunku 1. Aby wyznaczyć odległość wystarczy skorzystać z prostej geometrycznej zależności: h = m f d, (1) gdzie: m odległość pomiędzy osiami optycznymi soczewek, f ogniskowa soczewek w kamerach, d rozbierzność (disparity), różnica względna pomiędzy położeniem tego samego punku na dwóch obrazach (x l x r). Rysunek 1. Rzutowanie tego samego punktu na obraz obu kamer 2. Funkcjonalność aplikacji Celem projektu było napisanie oprogramowania do przetwarzania obrazów stereowizyjnych. Program umożliwia stworzenie mapy głębi na podstawie dwóch zdjęć. Możliwe jest też zwizualizowanie obiektu odtworzonego na podstawie tejże mapy w trójwymiarze. W aplikacji, do znalezienia mapy głębokości, użyta została funkcja cvfindstereocorrespondence z biblioteki OpenCV[15]. Jest to implementacja algorytmu opisanego przez Birchfield a i Tomasi ego w [1]. Tam znaleźć można dokładny opis paramerów algorytmu. Program pozwala na wprowadzenie dwóch zdjęć i wyliczenie na ich podstawie mapy głębokości oraz zwizualizowanie obiektu w trójwymiarze za pomocą OpenGL. Możliwe jest też 2

podanie sześciu parametrów, jakich do obliczeń potrzebuje zaimplementowany algorytm. Za jego pomocą można też dokonać zapisu mapy głębokości do popularnych formatów graficznych. 3. Interfejs graficzny aplikacji Interfejs użytkownika programu, jaki pojawia się po uruchomieniu aplikacji, pokazany został na rysunku 2. Daje on możliwość wprowadzenia lewego oraz prawego obrazu, podania parametrów algorytmu, wyznaczenia oraz zapisania mapy głębokości, jak również pokazania obrazów stereowizyjnych, mapy głębokości i zwizualizowania w trójwymiarze odtworzonej sceny. Rysunek 2. Interfejs użytkownika po uruchomieniu programu Przykład przeprowadzonej wizualizacji znajduje się na rysunku 3. Model 3d może być obracany, przybliżany oraz przesuwany przy pomocy klawiatury i myszy. Istnieje również możliwość odczytania wysokości danego punktu z wizualizacji 3d, wystarczy wcisnąć klawisz Shift oraz kliknąć lewym klawiszem myszy w miejsce, którego wysokość nas interesuje. Wynik pojawi się w polach,,x:,,,y:,,,z:. 3

Rysunek 3. Interfejs użytkownika z przykładową wizualizacją w OpenGL Po kliknięciu w przycisk Pokaż obrazy stereowizyjne pojawi nam się okno z prawym oraz lewym obrazem jak na rysunku 4, natomiast po kliknięciu w Pokaż mapę głębokości, zobaczymy okno jak na rysunku 5, pokazujące nam obliczoną przez algorytm mapę głębokości. Rysunek 4. Okno wyświetlające obrazy stereowizyjne 4

Rysunek 5. Okno wyświetlające mapę głębokości 5

4. Diagram klas Diagram klas przedstawiono na rysunku 6. W programie zaimplementowane zostały wzorce projektowe Singleton (klasa Context), Adapter (klasy Image, OpenCVImage) oraz Strategia (klasy StereoAlgorithm, OpenCVStereoCorrenspondence)[19]. Rysunek 6. Diagram klas 6

5. Diagram przepływu sterowania Rysunek 7. Diagram aktywności 6. Wyniki eksperymentów Eksperymenty przeprowadzone zostały dla pięciu par zdjęć stereowizyjnych oraz czterech zestawów parametrów. Wyniki przedstawiono poniżej. 7

6.1. Scena z płytą CD Rysunek 8. Scena z płytą CD: lewy obraz Rysunek 9. Scena z płytą CD: prawy obraz 8

Rysunek 10. Scena z płytą CD, parametry. Constant oclusion penalty: 12, constant match revard: 3, highly reliable region: 3, moderately reliable region: 3, slightly reliable region: 3, max disparity: 70. Rysunek 11. Scena z płytą CD, parametry. Constant oclusion penalty: 25, constant match revard: 5, highly reliable region: 12, moderately reliable region: 15, slightly reliable region: 25, max disparity: 50. 9

Rysunek 12. Scena z płytą CD, parametry. Constant oclusion penalty: 15, constant match revard: 3, highly reliable region: 6, moderately reliable region: 8, slightly reliable region: 15, max disparity: 70. Rysunek 13. Scena z płytą CD, parametry. Constant oclusion penalty: 55, constant match revard: 9, highly reliable region: 3, moderately reliable region: 44, slightly reliable region: 5, max disparity: 150. 10

6.2. Budynki Rysunek 14. Budynki: lewy obraz 11

Rysunek 15. Budynki: prawy obraz 12

Rysunek 16. Budynki, parametry. Constant oclusion penalty: 12, constant match revard: 3, highly reliable region: 3, moderately reliable region: 3, slightly reliable region: 3, max disparity: 70. 13

Rysunek 17. Budynki, parametry. Constant oclusion penalty: 25, constant match revard: 5, highly reliable region: 12, moderately reliable region: 15, slightly reliable region: 25, max disparity: 50. 14

Rysunek 18. Budynki, parametry. Constant oclusion penalty: 15, constant match revard: 3, highly reliable region: 6, moderately reliable region: 8, slightly reliable region: 15, max disparity: 70. 15

Rysunek 19. Budynki, parametry. Constant oclusion penalty: 55, constant match revard: 9, highly reliable region: 3, moderately reliable region: 44, slightly reliable region: 5, max disparity: 150. 16

6.3. Scena z maską Rysunek 20. Scena z maską: lewy obraz Rysunek 21. Scena z maską: prawy obraz 17

Rysunek 22. Scena z maską, parametry. Constant oclusion penalty: 12, constant match revard: 3, highly reliable region: 3, moderately reliable region: 3, slightly reliable region: 3, max disparity: 70. Rysunek 23. Scena z maską, parametry. Constant oclusion penalty: 25, constant match revard: 5, highly reliable region: 12, moderately reliable region: 15, slightly reliable region: 25, max disparity: 50. 18

Rysunek 24. Scena z maską, parametry. Constant oclusion penalty: 15, constant match revard: 3, highly reliable region: 6, moderately reliable region: 8, slightly reliable region: 15, max disparity: 70. Rysunek 25. Scena z maską, parametry. Constant oclusion penalty: 55, constant match revard: 9, highly reliable region: 3, moderately reliable region: 44, slightly reliable region: 5, max disparity: 150. 19

6.4. Rzeźba i lampa Rysunek 26. Rzeźba i lampa: lewy obraz Rysunek 27. Rzeźba i lampa: prawy obraz 20

Rysunek 28. Rzeźba i lampa, parametry. Constant oclusion penalty: 12, constant match revard: 3, highly reliable region: 3, moderately reliable region: 3, slightly reliable region: 3, max disparity: 70. Rysunek 29. Rzeźba i lampa, parametry. Constant oclusion penalty: 25, constant match revard: 5, highly reliable region: 12, moderately reliable region: 15, slightly reliable region: 25, max disparity: 50. 21

Rysunek 30. Rzeźba i lampa, parametry. Constant oclusion penalty: 15, constant match revard: 3, highly reliable region: 6, moderately reliable region: 8, slightly reliable region: 15, max disparity: 70. Rysunek 31. Rzeźba i lampa, parametry. Constant oclusion penalty: 55, constant match revard: 9, highly reliable region: 3, moderately reliable region: 44, slightly reliable region: 5, max disparity: 150. 22

6.5. Pluszowe zabawki Rysunek 32. Pluszowe zabawki: lewy obraz Rysunek 33. Pluszowe zabawki: prawy obraz 23

Rysunek 34. Pluszowe zabawki, parametry. Constant oclusion penalty: 12, constant match revard: 3, highly reliable region: 3, moderately reliable region: 3, slightly reliable region: 3, max disparity: 70. Rysunek 35. Pluszowe zabawki, parametry. Constant oclusion penalty: 25, constant match revard: 5, highly reliable region: 12, moderately reliable region: 15, slightly reliable region: 25, max disparity: 50. 24

Rysunek 36. Pluszowe zabawki, parametry. Constant oclusion penalty: 15, constant match revard: 3, highly reliable region: 6, moderately reliable region: 8, slightly reliable region: 15, max disparity: 70. Rysunek 37. Pluszowe zabawki, parametry. Constant oclusion penalty: 55, constant match revard: 9, highly reliable region: 3, moderately reliable region: 44, slightly reliable region: 5, max disparity: 150. 25

7. Wnioski Podsumowanie Jako możliwości na przyszłość przewidywane jest zaimplementowanie metod opartych na minimalizacji energii [2], [3], [4]. Ciekawym pomysłem wydaje się też implementacja algorytmów stereowizyjnych na kartach graficznych firmy NVIDIA z rodziny 8000 i nowszych, przy pomocy interfejsu programistycznego CUDA [11], [10]. Skorzystać tutaj można również z powstających gotowych bibliotek [25], [24]. Literatura [1] Stan Birchfield, Carlo Tomasi, Depth Discontinuities by Pixel-to-Pixel Stereo, ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/96/1573/cs-tr-96-1573.pdf. [2] Luc Robert, Rachid Deriche, Dense Depth Map Reconstruction: A Minimalization and Regularization Approach which Preserves Discontinuities, https://eprints.kfupm.edu.sa/33986/1/33986.pdf. [3] Natalia Slesareva, Andrés Bruhn, Joachim Weickert, Optic Flow Goes Stereo: A Variational Method for Estimating Discontinuity-Preserving Dense Disparity Maps, http://www.mia.uni-saarland.de/publications/slesareva-dagm05.pdf. [4] Luis Alvarez, Rachid Deriche, Javier Sńchez, Joachim Weickert, Dense Disparity Map Estimation Respecting Image Discontinuities: A PDE and Scale-Space Based Approach, ftp://ftp.inria.fr/inria/publication/publi-pdf/rr/rr-3874.pdf. [5] Pedro F. Felzenszwalb, Daniel P. Huttenlocher, Efficient Belief Propagation for Early Vision, http://people.cs.uchicago.edu/ pff/papers/bp-long.pdf. [6] Kuk-Jin Yoon, In So Kweon, Adaptive Support-Weight Approach for Correnspondence Search, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 28, no. 4, april 2006, http://perception.inrialpes.fr/people/yoon/pami2006 stereo.pdf. [7] James Davis, Ravi Ramamoorthi, Szymon Rusinkiewicz, Spacetime Stereo: A Unifying Framework for Depth from Triangulation, http://graphics.stanford.edu/papers/spacetimestereo/spacetimestereo final.pdf. [8] Thomas Brox, Andrés Bruhn, Nils Papenberg, Joachim Weickert, High Accuracy Optimal Flow Estimation Based on a Theory for Warping, http://www.mia.uni-saarland.de/publications/brox-eccv04-of.pdf. [9] Christoper Zach, Thomas Pock, Horst Bischof, A Globally Optimal Algorithm for Robust TV-L Range Image Integration, http://www.icg.tugraz.at/pub/pdf/iccv07 paper.pdf. [10] Thomas Pock, Markus Grabner, Horst Bischof, Real-time Computation of Variational Methods on Graphics Hardware, http://www.icg.tugraz.at/pub/pdf/cvww07 pock.pdf. [11] Joe Stam, Stereo Imaging with CUDA, http://dfn.dl.sourceforge.net/sourceforge/openvidia/stereoimaging.pdf. [12] J.P. Mellor, Seth Teller, Tomás Lozano-Pérez, Dense Depth Maps from Epipolar Images, http://people.csail.mit.edu/seth/pubs/aim-1593.pdf. [13] T. Kanade, A Stereo Machine for Video-Rate Dense Depth Mapping and Its New Applications, http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.33.4657. [14] Pascal Fua, A parallel stereo algorithm that produces dense depth maps and preserves image features, http://cvlab.epfl.ch/publications/publications/1993/fua93.pdf. [15] Open Computer Vision Library, http://opencv.willowgarage.com/wiki/. 26

[16] Biblioteka Qt, http://www.qtsoftware.com. [17] Biblioteka libqglviewer, http://www.libqglviewer.com. [18] Generator dokumentacji kodu źródłowego Doxygen, http://www.doxygen.org. [19] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Wzorce projektowe, WNT 2005. [20] Kevin Hawkins, Dave Astle, OpenGL: Programowanie Gier, Helion 2003. [21] Richard S. Wright jr, Michael Sweet, OpenGL: Księga Eksperta, Helion 1999. [22] Neon Helium, nehe.gamedev.net. [23] www.cplusplus.com. [24] GpuCV: GPU-accelerated Computer Vision, https://picoforge.int-evry.fr/cgi-bin/twiki/view/gpucv/web/. [25] Biblioteka oparta na kartach graficznych firmy NVIDIA, http://gpu4vision.icg.tugraz.at. [26] Przetwarzanie obrazów stereowizyjnych na karcie graficznej, http://gpu4vision.icg.tugraz.at/videos/range.mpg. 27