Przetwarzanie obrazu stereo. Zuzanna Pietrowska 9 czerwca 2010

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

Akademia Górniczo-Hutnicza

KATEDRA MECHANIKI I PODSTAW KONSTRUKCJI MASZYN. Instrukcja do ćwiczeń laboratoryjnych z elementów analizy obrazów

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Wizualizacja pogody dla windsurferów

Instalowanie certyfikatów celem obsługi pracy urządzenia SIMOCODE pro V PN z poziomu przeglądarki internetowej w systemie Android

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

Transformacja współrzędnych geodezyjnych mapy w programie GEOPLAN

Instrukcja użytkowania

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

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

5.2. Pierwsze kroki z bazami danych

Próbny sprawdzian szóstoklasisty z Nową Erą

Akademia Górniczo-Hutnicza

ERGODESIGN - Podręcznik użytkownika. Wersja 1.0 Warszawa 2010

Aplikacja projektu Program wycinki drzew i krzewów dla RZGW we Wrocławiu

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Podręcznik użytkownika programu. Ceremonia 3.1

ROZDZIAŁ 11 - DODATKI SPIS TREŚCI

Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu?

INSTRUKCJA OBSŁUGI ⓫ Dodatki

INSTRUKCJA obsługi certyfikatów

Kurs walut. Specyfikacja projektu. Marek Zając

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

Spis treści. 1 Moduł Mapy 2

INSTRUKCJA DO OPROGRAMOWANIA KOMPUTEROWEGO

E-DEKLARACJE Dokumentacja eksploatacyjna 2017

Opis preprocesora graficznego dla programu KINWIR -I

Instrukcja użytkownika

Analiza i przetwarzanie obrazów

Płace VULCAN. 2. W polu nad drzewem danych ustaw rok, za który chcesz utworzyć deklaracje.

Synchronizator plików (SSC) - dokumentacja

Analiza i przetwarzanie obrazo w

System Wymiany Informacji. Instrukcja obsługi mapy

MODELER MODUŁ KOREKCJI DYSTORSJI SOCZEWKI WERSJA ZEWNĘTRZNA UPROSZCZONA INSTRUKCJA OBSŁUGI PROGRAMU

Instalacja i obsługa aplikacji MAC Diagnoza EW

Menu Narzędzia w Edytorze symboli i Edytorze Widoku aparatów


Instrukcja obsługi programu Creative Fotos

- 1 Laboratorium fotografii cyfrowej Foto Video Hennig

Divar - Archive Player. Instrukcja obsługi

Ministerstwo Finansów

2.2 Opis części programowej

Zad. 6: Sterowanie robotem mobilnym

7 Business Ship Control dla Symfonia Handel

Instrukcja podłączenia i programowania modułu

Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na r.

Podręcznik użytkownika. Instrukcje

Tworzenie własnych map dla UI-View

7 Business Ship Control dla Systemu Zarządzania Forte

Implementacja filtru Canny ego

Forex PitCalculator INSTRUKCJA UŻYTKOWNIKA

Zad. 1: Sterowanie mimika

Instrukcja użytkownika

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

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

Garmin Custom Maps / Mapy Użytkownika

Instrukcja obsługi programu PLOMP PLUS FM

Jak zamówić zdjęcia przez FotoSender?

PODRĘCZNIK UŻYTKOWNIKA PRACOWNIK SPZOZ

WSCAD. Wykład 5 Szafy sterownicze

Wykaz stali z projektu.

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Spis treści. Wstęp. Niniejsza instrukcja jest przeznaczona dla użytkowników systemu wspomagającego planowanie przestrzenne.

DARMOWA PRZEGLĄDARKA MODELI IFC

INTRUKCJA KORZYSTANIA Z APLIKACJI INTERNETOWEJ

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

1. Opis okna podstawowego programu TPrezenter.

Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

Po otrzymaniu maila zapraszającego do udziału w korzystaniu z aplikacji ProfiAuto Usługi dla Serwisu, należy użyć przycisku Aktywuj aplikację.

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Opis modułu pl.id w programie Komornik SQL-VAT

Konwerter XML Dla Programów Symfonia Kadry i Płace oraz Forte Kadry i Płace

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury

ibcslabel v2 Instrukcja instalacji systemu

Instrukcja instalacji certyfikatu kwalifikowanego w programie Płatnik. wersja 1.8

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Cover sheet. WinCC (TIA Portal) FAQ Listopad 2012

Tworzenie i modyfikacja modelu geologicznego

Gogle wirtualnej rzeczywistości (VR) Pro

MECHANIZM WYMIANY DANYCH ORAZ ROZLICZEŃ APTEKA NFZ

BRIDGE CAD ABT - INSTRUKCJA OBSŁUGI

Instrukcja obsługi programu

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

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

Rozdział 4: PIERWSZE KROKI

Zad. 5: Sterowanie robotem mobilnym

PORTAL LOKALNY. Częstochowa- miejski system informacji turystycznej. Przygotowała: Monika Szymczyk

Instrukcja obsługi. SpinRyb v0.87. Maciej Nalewczyński

Rozdział 5. Administracja kontami użytkowników

Wykorzystanie serwisów WMS w oprogramowaniu GEO-MAP

Tom 6 Opis oprogramowania

INSTRUKCJA KALIBRACJI TRUETRUE

1. Cel i zakres dokumentu Słownik pojęć użytych w instrukcji... 3

DesignCAD 3D Max 24.0 PL

Instrukcja dla osoby potwierdzającej profil zaufany

Transkrypt:

Przetwarzanie obrazu stereo Zuzanna Pietrowska 9 czerwca 2010 1

Spis treści 1 Cel projektu 3 2 Opis rozwiązywanego problemu 3 3 Opis funkcjonalności aplikacji 4 4 Interfejs graficzny aplikacji 4 5 Diagram klas 6 6 Schemat przepływu sterowania 7 7 Przykładowe efekty pracy aplikacji 8 7.1 Robot.................................... 9 7.2 Osoba.................................... 11 7.3 Pluszowy królik............................... 13 7.4 Koleżanka Gosia.............................. 15 7.5 Inne - testy przeprowadzone zanim dodano reprojekcje......... 17 7.6 Bez kalibracji................................ 21 8 Podsumowanie 22 2

1 Cel projektu Celem projektu było stworzenie systemu przetwarzania obrazu z dwóch jednakowych kamer internetowych. Punkt wyjścia stanowiła aplikacja, wyznaczająca mapę rozbieżności na podstawie obrazu z lewego i prawego oka, napisana z wykorzystaniem bibliotek OpenCV, libqglviewer oraz Qt4. 2 Opis rozwiązywanego problemu Wiele układów robotycznych podejmuje stosowne decyzje i działania na podstawie informacji pochodzącej z systemów wizyjnych. Komputery starają się naśladować możliwości jakie dają nam nasze oczy przez znajdowanie podobieństw w obrazach dostarczanych przez dwie kamery. Analiza pobieranych zdjęć oraz znajomość wzajemego położenia kamer stereowizyjnych, pozwala nie tylko generować pozycję widzianych punktów w przestrzeni trójwymiarowej, lecz również oceniać odległość do przedmiotów we współrzędnych rzeczywistych. Szukanie podobieństw między obrazami z obu kamer może być kosztowne pod względem obliczeniowym, przez co robot może za długo myśleć. Dlatego też w praktyce, dzięki znajomości geometrii systemu stereowizyjnego zawęża się przeszukiwany obszar, wykorzystując geometrię linii epipolarnych [3]. Przy przetwarzaniu obrazu stereo z wykorzystaniem dwóch kamer można wyróżnić cztery zasadnicze podproblemy: usunięcie zniekształceń wprowadzanych przez soczewki kamer, rektyfikację oraz kalibrację kamer, znalezienie podobieństw między lewym i prawym obrazem, w wyniku tworzona jest mapa różnic między obrazami, zamiana powyższej na mapę głębi wyrażoną w rzeczywistych jednostkach przez triangulację. Rektyfikacja oznacza dopasowanie dla kątów i odległości między kamerami. Kalibracja to proces określania zależności przestrzennej między kamerami. Mapa, którą uzyskujemy dzięki funkcji cvfindstereocorrespondence, realizującej algorytm Birchfield a i Tomasi ego, dostarcza informacji odnośnie kształtu trójwymiarowej sceny, wzajemnego położenia na niej przedmiotów oraz odległości, która wyrażona jest przez rozbieżność d [3]. Triangulacja możliwa jest wtedy gdy poznamy parametry wiążące lokalne ułady współrzędnych obu kamer/oczu. Wówczas posiadaną informację o odległości i położeniu widzianych przedmiotów zamienić możemy na informację wyrażoną w jednostkach rzeczywistych, w jakich skalibrowane zostały kamery, np. przy użyciu funkcji cvreprojectimageto3d [2] [1]. W wyniku tego zabiegu uzyskamy pokolorowaną mapę głębi. Po odpowiednim przetworzeniu, trzecią współrzędną koloru można wykorzystać np. do rozpoznawania dokładnej odległości do przeszkód przy nawigacji robotów mobilnych. Powyższe wyrazić można zależnością: Q x y d 1 = 3 X Y Z W, (1)

Współrzędne rzeczywiste widzianego obiektu to (X/W, Y/W, Z/W ). Macierz Q opisuje parametry kamer, (x, y) to współrzędne punktu na mapie rozbieżności, a d to rozbieżność między obrazem widzianym przez lewe oraz prawe oko. 3 Opis funkcjonalności aplikacji Przy realizacji projektu użyto kamer Logitech QuickCam Chat. W celu zapewnienia powtarzalnych warunków eksperymentów zostały one złączone na sztywno. Rysunek 1: Zestaw stereowizyjny wykorzystywany na potrzeby projektu Dotychczasową funkcjonalność aplikacji, opisaną w [5], rozszerzono o szereg nowych możliwości. Gdy kamery stereowizyjne są podłączone do komputera aplikacja umożliwia przeprowadzenie kalibracji oraz rektyfikacji kamer. Po naciśnięciu przycisku Kalibracja, najpierw wyświetlony zostanie stosowny komunikat, a następnie co dwie sekundy pobierane, a następnie wizualizowane, będą obrazy z kamer. Jeżeli algorytm prawidłowo rozpoznał wierzchołki użytej do kalibracji szachownicy zostaną one wyrysowane na wyświetlanym obrazie 2. Po prawidłowym wczytaniu 30 par próbnych obrazów, proces zostanie zakończony i pojawi się komunikat informujący jaki błąd dopasowania udało się uzyskać. Parametry szachownicy użytkownik podaje w stosownych polach głównego okna aplikacji. Obliczone macierze, które wykorzystywane są przy tworzeniu mapy głębi zapisywane są do oddzielnych plików w formacie XML. Przycisk Obrazy z kamer umożliwia rozpoczęcie pobierania obrazów stereowizyjnych. W przypadku gdy istnieją pliki kalibracyjne, są one wczytywane i użyte do korekcji uzyskanych obrazów oraz przekształcenia disparity map w mapę głębi. W przeciwnym razie disparity map jest obliczane na podstawie niepoprawionych zdjęć i nie jest zamieniane na jednostki kalibracji. Gdy użytkownik przerwie czytanie obrazu z kamer przez zamknięcie okna pokazującego mapę, bądź naciśniećie klawisza Escape, program obliczy i zwizualizuje widzianą scenę w trójwymiarze (podobnie jak poprzednio można nią obracać przy użyciu myszki, etc.). Następnie istnieje możliwość wyświetlenia widzianej jako ostatniej disparity map oraz zapisania jej. Uzyskano generowanie oraz wizualizowanie obu map w czasie prawie rzeczywistym. 4 Interfejs graficzny aplikacji Interfejs graficzny istniejącej aplikacji został rozwinięty. Główne okno widoczne jest na ilustracji 3. Komunikacja z użytkownikiem zrealizowana jest za pośrednictwem okien 4

Rysunek 2: Przykładowe okno wyświetlane podczas kalibracji kamer Rysunek 3: Interfejs użytkownika po naciśnięciu przycisku Obrazy z kamer, gdy są pliki kalibracyjne dialogowych [4]. Podczas kalibracji dla obrazów z obu kamer wyświetlane są okna jak na zdjęciu 2, gdzie jeżeli algorytm rozpoznał wierzchołki szachownicy są one zaznaczane. Przy czytaniu obrazów z kamer, otwierają się okna z obrazami z lewego i prawego oka, mapą rozbieżności oraz z mapą głębi( o ile udało się wczytać plik z odpowiednią macierzą do reprojekcji). Przykładowe okna widoczne są na rycinie 5. Gdy czytanie z kamer zostanie przerwane, aplikacja wizualizuje scene w 3D. 5

Rysunek 4: Okna z disparity map oraz depth map podczas pracy programu Rysunek 5: Widok na aplikację po przerwaniu czytania z kamer 5 Diagram klas Przedstawiony na rysunku 6 diagram klas stworzony został w programie umbrello. Dodane zostały klasy kamery oraz kalibracja, pozostałe zostały zmodyfikowane zgodnie z potrzebami. 6

Rysunek 6: Diagram klas 6 Schemat przepływu sterowania Przedstawiony na rysunku 22 diagram przepływu sterowania stworzony został w programie umbrello. Uwzględnia on tylko część dodaną do aplikacji w ramach tego projektu, pozostała część nie uległa zmianie i jest opisana w [5]. 7

Rysunek 7: Diagram przepływu sterowania 7 Przykładowe efekty pracy aplikacji W tym rozdziale przedstawione zostaną zrzuty ekranu przeprowadzone podczas pracy aplikacji. Błąd kalibracji przy którym wykonywane były badania wynosi 1.70066. Parametry wprowadzone dla algorytmu Birchfield a i Tomasi ego dla każdego z testów widoczne są na zrzucie ekranu przedstawiającym rekonstrukcję trójwymiarowej sceny. 8

7.1 Robot Obraz z lewego oka Obraz z prawego oka Rysunek 8: Obrazy widziane przez kamery stereowizyjne Rysunek 9: Disparity map 9

Rysunek 10: Rekonstrukcja sceny w 3D Rysunek 11: Depth Map 10

7.2 Osoba Obraz z lewego oka Obraz z prawego oka Rysunek 12: Obrazy widziane przez kamery stereowizyjne Rysunek 13: Disparity map 11

Rysunek 14: Rekonstrukcja sceny w 3D Rysunek 15: Depth Map 12

7.3 Pluszowy królik Obraz z lewego oka Obraz z prawego oka Rysunek 16: Obrazy widziane przez kamery stereowizyjne Rysunek 17: Disparity map 13

Rysunek 18: Rekonstrukcja sceny w 3D Rysunek 19: Depth Map 14

7.4 Koleżanka Gosia Obraz z lewego oka Obraz z prawego oka Rysunek 20: Obrazy widziane przez kamery stereowizyjne Rysunek 21: Disparity map 15

Rysunek 22: Rekonstrukcja sceny w 3D Rysunek 23: Depth Map 16

7.5 Inne - testy przeprowadzone zanim dodano reprojekcje Osoba Rysunek 24: Disparity map Rysunek 25: Rekonstrukcja sceny w 3D 17

Córeczka sąsiadów Obraz z lewego oka Obraz z prawego oka Rysunek 26: Obrazy widziane przez kamery stereowizyjne (zrzut ekranu w różnych chwilach) Rysunek 27: Disparity map 18

Rysunek 28: Rekonstrukcja sceny w 3D Robot i królik Obraz z lewego oka Obraz z prawego oka Rysunek 29: Obrazy widziane przez kamery stereowizyjne 19

Rysunek 30: Disparity map Rysunek 31: Rekonstrukcja sceny w 3D 20

7.6 Bez kalibracji Osoba Rysunek 32: Disparity map osoby z wcześnieszych zdjęć dla nieskalibrowanych kamer. Parametry algorytmu: constant oclusion penalty 25, constant match reward 5, highly reliable region 12, moderately reliable region 15, slightly reliable region 25, max disparity 50 21

8 Podsumowanie Układ stereowizyjny zwłaszcza przy kalibracji jest bardzo wrażliwy na warunki oświetlenia. Obrazy z obu kamer pobierane są jeden za drugim lecz widocznie czas trwania operacji jest na tyle znaczący by wprowadzać zaburzenia procesu. Podczas pracy z aplikacją zauważono, że pewien problem dla algorytmu Birchfield a i Tomasi ego stanowią szybkozmienne obiekty takie jak np. materiały w kratę. Kłopoty sprawiają również krawędzie. Mimo to stereowizja daje wystarczająco dobre efekty gdy kalibracja kamer jest przeprowadzona z błędem nie większym niż 2.0. Podczas eksperymentów zauważono, że gdy błąd wykonania kalibracji jest zbyt duży, wyniki pracy kamer są gorsze niż w przypadku gdy kalibracja nie została wogóle przeprowadona. Patrząc na zrzut ekranu 12 zauważyć można na obrazach widzianych przez kamery refleks światła. W tym miejscu disparity map oraz depth map są znacznie zaburzone. Stąd wniosek, że w pewnych warunkach oświetlenia system stereowizyjny nie będzie się sprawdzał. Kamery mogą zostać miejscami oślepione. By wyeliminować ten efekt należałoby usuwać z obrazów skazy, które nie wynikają z właściwości soczewek. W podrozdziale 7.6 zamieszczono mapę rozbieżności generowaną przez algorytm w przypadku gdy dla kamer nie przeprowadzono kalibracji, a co za tym idzie nie skorygowano na obrazach służących do jej wyznaczenia zakłóceń wprowadzanych przez soczewki. Jakość uzyskanej w ten sposób informacji pozostawia wiele do życzenia. Następnym krokiem w pracy z systemem stereowizyjnym, który warto zrealizować jest pobieranie współrzędnych koloru dla punktu z mapy głębi oraz analiza uzyskanych wyników. Określenie błędu z jakim rozpoznawana jest odległość do przedmiotów pozwoli ocenić możliwość wykorzystania stworzonego kodu w nawigacji robotów mobilnych. Ciekawym pomysłem wydaje się również implementacja algorytmu, rozpoznającego przeszkody na podstawie mapy głębi z wykorzystaniem pewnych technik progowania, segmentacji obszarów. W zastosowaniach praktycznych warto wiedzę uzyskaną na podstawie obrazów z kamer konfrontować z danymi innego pochodzenia (fuzja danych sensorycznych). Literatura [1] Open Source Computer Vision Library Reference Manual. Intel Corporation. [2] OpenCV Documentation. May 7, 2009. [3] G. B.. A. Kaehler. Learning OpenCV. O Reilly, 2008. [4] D. Molkentin. The Book of Qt4. The Art of Building Qt Applications. William Pollock, 2006. [5] R. Tobola. http://sequoia.ict.pwr.wroc.pl/ kreczmer/wds/projekty/projekty.html, 2009. 22