PRACA DYPLOMOWA MAGISTERSKA

Wielkość: px
Rozpocząć pokaz od strony:

Download "PRACA DYPLOMOWA MAGISTERSKA"

Transkrypt

1 POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRONIKI KIERUNEK: Elektronika i Telekomunikacja SPECJALNOŚĆ: Zastosowanie Inżynierii Komputerowej w Technice PRACA DYPLOMOWA MAGISTERSKA Metody łączenia scen rzeczywistych i wirtualnych Methods for combining virtual and real images AUTOR: Michał Adamkiewicz PROWADZĄCY PRACĘ: dr inż. Bartosz Jabłoński, I-6 OCENA PRACY: WROCŁAW 011

2 STRESZCZENIE Zagadnienie Rzeczywistości Rozszerzonej, którym określa się metody łączenia scen rzeczywistych i wirtulanych jest nowym sposobem wykorzystywania współcześnie szybko rozwijających się systemów wizyjnych. Wywodzi się ona z systemów Rzeczywistości Wirtualnej, która nie znalazła wielu zastosowań w urządzeniach elektronicznych. Tymczasem coraz więcej aplikacji z dziedziny Rzeczywistości Rozszerzonej pojawia się w przemyśle, nauce oraz systemach służących komunikacji oraz rozrywce. W nieniejszej pracy zaprezentowano współczesne zastosowania oraz rokowania co do przyszłości Rzeczywistości Rozszerzonej. Opisane zostały różne systemy wizyjne oraz ich oprogramowanie. W dalszej części pracy zbadano kluczowe techniki analizy oraz syntezy obrazu stosowane w systemach Rzeczywistości Rozszerzonej. Zaproponowano również nowy autorski system oraz przeprowadzono testy porównawcze jego oraz dwóch innych systemów. ABSTRACT The Augmented Reality concept which is a term for methods of real and artificial scenes synthesis is a new way of using currently fast developing vision systems. It derives from Virtual Reality systems which have never been commonly used and their future is uncertain. In the meantime Augmented Reality applications came out and were adapted in various domains of industry, science, communication and entertainment. This paper presents applications of Augmented Reality systems today and possibilities of usage in the future. It describes some of vision systems and software they use. Additionally it focuses on crucial techniques of image analysis and synthesis. In the last chapters of this work a new Augmented Reality system is presented. Results of comparsion with other commonly used systems has been also analyzed.

3 Spis treści 1. WSTĘP WPROWADZENIE CEL PRACY STRUKTURA PRACY RZECZYWISTOŚĆ ROZSZERZONA DEFINICJA OPROGRAMOWANIE ORAZ SPRZĘT DEDYKOWANY SYSTEMOM AR Współczesne zastosowania Ekrany OGRANICZENIA I PROBLEMY Ograniczenia technologiczne Problem detekcji i śledzenia markerów Problem kalibracji kamery PODSUMOWANIE METODY DETEKCJI MARKERÓW I ESTYMACJI WŁAŚCIWOŚCI OBIEKTÓW WIRTUALNYCH DETEKCJA KRAWĘDZI Filtr Gaussa Filtr Gaussa w przetwarzaniu obrazów cyfrowych Operator Sobela Algorytm RANSAC SYNTEZA ELEMENTÓW SYNTETYCZNYCH ZE SCENĄ RZECZYWISTĄ Model sceny w systemie Rzeczywistości Rozszerzonej Wyznaczenie pozycji kamery Algorytm Ortogonalnych Iteracji Kalibracja kamery Odzwierciedlenie warunków oświetlenia sceny na obiektach syntetycznych PODSUMOWANIE ISTNIEJĄCE SYSTEMY RZECZYWISTOŚCI ROZSZERZONEJ ARTOOLKIT

4 4. ARTOOLKIT PLUS ARTAG ALVAR PODSUMOWANIE PROPOZYCJA KONSTRUKCJI SYSTEMU RZECZYWISTOŚCI ROZSZERZONEJ ARSHARP WPROWADZENIE KONSTRUKCJA ALGORYTMU ŁĄCZENIA SCEN Detekcja pikseli krawędziowych Detekcja prostych linii Konstrukcja boków potencjalnych markerów Konstrukcja rogów potencjalnych markerów Konstrukcja potencjalnych markerów Identyfikacja markerów Optymalizacja PODSUMOWANIE WYNIKI EKSPERYMENTÓW NUMERYCZNYCH WSTĘP WYZNACZENIE OPTYMALNYCH PARAMETRÓW SYSTEMU ARSHARP PORÓWNANIE TRZECH SYSTEMÓW RZECZYWISTOŚCI ROZSZERZONEJ Wydajność Niezawodność PODSUMOWANIE BADAŃ SYSTEMU PODSUMOWANIE BIBLIOGRAFIA SPIS ILUSTRACJI

5 Wstęp Rozdział Wprowadzenie Od wielu lat technologie informacyjne (IT, ang. Information Technology) należą do najszybciej rozwijających się gałęzi światowej gospodarki. Produkty wchodzące na rynek, zarówno urządzenia jak i oprogramowanie często oferują nowe, niespotykane wcześniej funkcjonalności. Największą część odbiorców IT stanowią duże firmy, które z pomocą nowych technologii jeszcze bardziej napędzają rozwój rynku. Rozwijające się multimedia oferują nowe sposoby przedstawiania informacji, a mnogość i możliwości funkcjonalne urządzeń przenośnych przyczyniły się do pojawienia się Pokolenia Always-On, spędzającego większość życia w środowisku wirtualnym. Technologie stają się coraz bliższe człowiekowi, nowe interfejsy użytkownika, takie jak wyświetlacze dotykowe oferują coraz bardziej naturalne sposoby interakcji, a na przykład Microsoft Kinect jest w stanie rozpoznać ludzkie gesty. Informacja znajduje nowe drogi dotarcia do odbiorcy, czego sztandarowym przykładem są technologie oparte o systemy Rzeczywistości Rozszerzonej. Realizują one zadanie łączenia scen rzeczywistych oraz wirtualnych, dzięki nim elementy rzeczywiste oraz wirtualne mogą współegzystować w tej samej przestrzeni. 1. Cel pracy Celem pracy jest analiza współczesnych rozwiązań stosowanych w systemach Rzeczywistości Rozszerzonej, ich modyfikacja oraz stworzenie nowych algorytmów odpowiednich do zastosowania w tworzonym w ramach tej pracy systemie łączącym sceny rzeczywiste oraz wirtualne. W ramach pracy zostanie stworzona biblioteka programistyczna pozwalająca na programowanie aplikacji Rzeczywistości Rozszerzonej. Poznanie, analiza oraz modyfikacja rozwiązań stosowanych w istniejących już bibliotekach tego typu pozwoli na zaproponowanie własnego systemu o możliwie jak najlepszych charakterystykach oraz poznanie kluczowych problemów związanych z jego implementacją. Realizowany w ramach pracy magisterskiej system będzie zawierał system detekcji czarno-białych dwuwymiarowych markerów. Ich detekcja, identyfikacja oraz śledzenie będzie bazować na algorytmach wykrywania krawędzi. Zdecydowano się na wykorzystanie tych metod w celu uzyskania lepszego współczynnika wykrywalności markerów dla różnych warunków oświetlenia w stosunku do systemów 5

6 korzystających z progowania. Wiele istniejących systemów nie jest w stanie wykryć markera, który jest przysłonięty, choćby na małym fragmencie jednej z krawędzi. Tworzony system zostanie zaprojektowany pod kątem odporności na zakłócenia oraz przysłanianie markerów. 1.3 Struktura pracy Niniejsza praca magisterska stanowi dokładną analizę rozwiązań stosowanych w systemach Rzeczywistości Rozszerzonej oraz możliwości zastosowań jakie ze sobą niosą. W drugim rozdziale zaprezentowano definicję Rzeczywistości Rozszerzonej, jej obecne zastosowania, możliwości oraz ich znaczenie we współczesnym świecie. Opisano w nim również różnego rodzaju sprzęt pozwalający na jej wdrożenie, jego wady, zalety i możliwości zastosowania w konkretnych celach. Zaprezentowano też podstawowe problemy, jakie muszą pokonać programiści implementujący systemy Rzeczywistości Rozszerzonej. Trzeci rozdział przedstawia algorytmiczne podejście do problemu. Na podstawie istniejących prac traktujących o problemach przedstawionych w rozdziale drugim zaprezentowano podstawowe techniki algorytmiczne stosowane w celu wydajnej implementacji systemów Rzeczywistości Rozszerzonej. W rozdziale tym skupiono się na analizie obrazu, ekstrakcji cech kluczowych oraz ich przetwarzaniu w celu syntezy elementów wirtualnych. W czwartym rozdziale opisano najpopularniejsze biblioteki Rzeczywistości Rozszerzonej. Rozdział otwiera opis historycznej już dzisiaj biblioteki ARToolkit. Późniejsze konkurujące z nią systemy, w których udoskonalano zastosowane w niej rozwiązania oraz wprowadzano nowe podejścia również zostają przeanalizowane w celu wyznaczenia kierunku dalszych badań i implementacji własnego systemu. Rozdział piąty zawiera dokładny opis własnej propozycji systemu Rzeczywistości Rozszerzonej. Zaprezentowane w nim zostały wydajne sposoby wdrożenia opisanych wcześniej algorytmów na podstawie rozwiązań stosowanych w istniejących systemach. Algorytmy zostały usprawnione, przede wszystkim odnaleziono kilka złożonych obliczeniowo rozwiązań i zapronowano nowe, bardziej wydajne algorytmy. W rozdziale szóstym porównano działanie stworzonego systemu ARSharp oraz istniejących ARToolKit Plus oraz ALVAR. Ostatni, siódmy rodział stanowi podsumowanie pracy oraz propozycję dalszego rozwoju biblioteki ARSharp. 6

7 Rozdział Rzeczywistość Rozszerzona.1 Definicja Rzeczywistość Rozszerzona (ang. Augmented Reality, AR) jest terminem określającym metody łączenia scen rzeczywistych z elementami wirtualnymi wygenerowanymi przez komputer. Łączenie elementów wirtualnych i rzeczywistych zachodzi w czasie rzeczywistym. Ogólnie przyjętą definicję Rzeczywistości Rozszerzonej wysunął Ronald Azuma ([3],[4]). Według tej definicji Rzeczywistość Rozszerzoną charakteryzują następujące cechy: - łączy ze sobą sceny wirtualne i rzeczywiste - jest interaktywna w czasie rzeczywistym - poprawnie odwzorowuje wzajemne położenie obiektów Definicja ta celowo nie ogranicza Rzeczywistości Rozszerzonej do łączenia ze sobą wyłącznie obrazów, ponieważ coraz częściej spotyka się systemy oddziałujące na inne zmysły, takie jak słuch czy węch. Systemy Rzeczywistości Rozszerzonej wywodzą się z systemów Rzeczywistości Wirtualnej (VR), które zamykają użytkownika we w pełni syntetycznie wygenerowanym środowisku. Systemy AR należą do rodziny systemów Mixed Reality, którą zdefiniował Miligram [17], oraz przedstawioną na rysunku (-1). Rysunek -1: Kontinuum Miligrama 7

8 Dzięki Rzeczywistości Rozszerzonej percepcja użytkownika wzbogacona zostaje o wirtualne informacje, które mogą mu pomóc w wykonywaniu rzeczywistych zadań. Podstawą działania każdego systemu AR jest odnalezienie oraz ciągłe śledzenie wybranych punktów odniesienia na scenie rzeczywistej w celu odpowiedniego naniesienia na nią obiektów wirtualnych. Obecne rozwiązania bazują między innymi na detekcji i śledzeniu twarzy, kształtów, krawędzi i innych cech charakterystycznych obrazu. W przypadku zastosowań nawigacyjnych detekcja struktur na obrazie może zostać wzbogacona o dane o położeniu z odbiornika GPS, lub kompasu.. Oprogramowanie oraz sprzęt dedykowany systemom AR..1 Współczesne zastosowania Systemy Rzeczywistości Rozszerzonej zyskują coraz większą popularność. Systematycznie polepsza się jakość urządzeń optycznych, następuje miniaturyzacja komputerów, a ich ceny są coraz niższe. Czynniki te decydują o tym, że Rzeczywistość Rozszerzona stosowana jest w wielu dziedzinach życia, zaczynając od przemysłu rozrywkowego i reklamy, poprzez narzędzia użytkowe, kończąc na zastosowaniach specjalistycznych. Aplikacje mobilne W zastosowaniach mobilnych dominują programy nawigacyjne oraz gry. Oto przykładowe aplikacje dostępne obecnie na telefonach komórkowych: Wikitude jest aplikacją, która za pomocą algorytmów Rzeczywistości Rozszerzonej wyświetla informacje o otoczeniu użytkownika widocznym poprzez zamontowną w telefonie kamerę. Aplikacja określa położenie użytkownika za pomocą odbiornika GPS, kompasu oraz ackelereometru, następnie na tej podstawie uzyskuje informacje o istotnych punktach w otoczeniu z bazy danych. Istnieje kilka wersji tej aplikacji, każda z nich wyświetla informacje innego typu, np. o ważnych punktach turystycznych (Travel guide). Przykładowy ekran aplikacji przedstawia rysunek (-) pobrany ze storny producenta. Na podobnej zasadzie działają aplikacje takie jak Layar, czy SREngine. Rysunek -: Wikitude na urządzeniu iphone. (dostęp ) 8

9 TwittARound jest reprezentatem społecznościowych aplikacji AR. Za jego pomocą można zobaczyć, kto w okolicy postuje na serwisie Twitter. Na obraz z kamery naniesione zostają ikony reprezentujące aktywnych użytkowników znajdujących się w przestrzeni zawartej w polu widzenia kamery. Działanie aplikacji zaprezentowano na rysunku (-3). Rysunek -3: TwittARound na urządzeniu iphone. (dostęp ) Nearest Tube potrafi wskazać najbliższe stacje metra. Transmisje telewizyjne Podczas transmisji sportowych programy AR wykorzystywane są do wyświetlania istotnych informacji (np. linii spalonego) wirtualnie nałożonych na obraz areny sportowej nadawany na żywo, co ilutrsuje rysunek -4. Systemy AR coraz częściej pełnią rolę wirtualnej interaktywnej scenografii w studiach telewizyjnych niektórych programów. Z Rzeczywistości Rozszerzonej korzysta się też w celu nakładania wirtualnych reklam podczas różnego rodzaju transmisji, reklamy te mogą być inne dla każdej ze stacji telewizyjnych nadających dany program, a tym samym skierowane do widzów w konkretnym regionie nadawania. Rysunek -4: Żółta linia nałożona na obraz wideo w czasie rzeczywistym 9

10 Oprócz wymienionych wyżej zastosowań Rzeczywistość Rozszerzona aktualnie jest wdrażana i rozwijana w wielu innych dziedzinach, takich jak medycyna, militaria, edukacja, projektowanie, czy produkcja. W MIT Media Lab (laboratorium Szkoły Architektury i Planowania będącej częscią MIT) opracowano prototyp interfejsu użytkownika, będący realizacją pomysłu z filmu Raport Mniejszości [18]. Sterowanie w opisywanym interfejsie odbywa się za pomocą gestów dłoni. Istniejąca w rzeczywistości wersja interfejsu śledzi spejalne znaczniki zamontowane na opuszkach palców za pomocą zestawu kamer. W wersji filmowej zastosowano przeźroczysty wyświetlacz (Rysunek -5). Zastosowanie przeźroczystego wyświetlacza w przyszłości może otworzyć nowe zastosowania dla systemów Rzeczywistości Rozszerzonej. Może on posłużyć na przykład jako panel operatorski, który zapewni jednoznaczne rozpoznanie poszczególnych urządzeń oraz niemalże bezpośrednią interakcję z nimi. Rysunek -5: Kadr z filmu Raport Mniejszości.. Ekrany W skład każdego systemu AR wchodzi odpowiednio zaprogramowany komputer wyposażony w ekran oraz kamerę. Każde z zastosowań Rzeczywistości Rozszerzonej może wymagać innego, specyficznego dla realizowanego zadania sprzętu. Ekrany dedykowane do tych zastosowań używają zestawu komponentów optycznych, elektronicznych oraz mechanicznych w celu generacji obrazów pomiędzy oczami obserwatora, a fizyczną sceną, która ma zostać rozszerzona o elementy wirtualne. Ekrany noszone na głowie (ang. HWD - Head-Worn Displays) Według Bimbera[5] ekrany noszone na głowie można podzielić na trzy rodzaje w zależności od technologii generacji obrazu: ekrany VRD (ang. Virtual Rretinal Displays), w których niskiej mocy lasery generują obraz wprost na siatkówkę oka odbiorcy, ekrany HMD (ang. Head-Mounted Displays), które używają miniaturowych wyświetlaczy umiejscowionych naprzeciw oczu użytkownika, oraz ekrany HMPD (ang. Head-Mounted Projective Displays), które używają miniaturowych projektorów, lub ekranów LCD. 10

11 Ekrany VRD dają bardzo ostry obraz o wysokiej rozdzielczości z szerokim polem widzenia. Wyświetlacze te charakteryzują się następującymi wadami: Wyświetlanie monochromatycznych obrazów koloru czerwonego, Wyświetlacz nie reaguje na nastawność oka, w związku z czym ogniskowa oka musi być stała w celu poprawnej projekcji, Nie istnieją jeszcze ekrany umożliwiające widzenie stereoskopowe. Głównymi zaletami tych ekranów są: jasność, kontrast oraz niski pobór mocy, co czyni je nadającymi się do zastosowań mobilnych. W przyszłości planuje się wprowadzenie ekranów VRD dostrajających się do zmiany kształtu soczewki, a także wyświetlających pełną paletę barw w 3D, więc wszystkie największe wady tej technologii mogą zostać pokonane w przyszłości. Ekran korzystający z technologii VRD przedstawia rysunek (-6). Rysunek -6: Ekran VRD Brother AiRScouter. (dostęp ) Ekrany HMD są obecnie najczęściej używane w Rzeczywistości Rozszerzonej. Można je podzielić na dwie grupy: przeźroczyste, które generują obraz na przeźroczystym ekranie, oraz nieprzeźroczyste z zamontowaną kamerą, przez którą rejestrowany jest obraz widziany przed użytkownikiem i wyświetlany na wewnętrznym ekranie[19]. Ekrany przeźroczyste muszą przepuszczać tylko część światła widzianego w normalnych warunkach przez użytkownika, ponieważ działają na zasadzie częściowo odbijającego lustra. W lustrze znajdującym się po stronie oka użytkownika odbite zostaje światło wyemitowane przez miniaturowy wyświetlacz, a pozostałą część widzialnego obrazu tworzy światło rzeczywistego obrazu, które przenika ekran. Wady ekranów HMD: Niska rozdzielczość, Ograniczone pole widzenia, 11

12 Stała głębokość wyświetlanego obrazu. W przypadku przeźroczystych ekranów obiekty rzeczywiste i wirtualne znajdują się w bardzo oddalonych od siebie głębokościach pola widzenia. W związku z tym oko użytkownika musi przestrajać ogniskową w celu odczytania odpowiednich informacji, lub którąś z nich odbierać jako obraz rozmyty. W nieprzeźroczystych ekranach istnieje tylko jedna powierzchnia projekcji, więc zmiana ogniskowej nie jest wymagana. Ekrany nieprzeźroczyste wprowadzają błąd paralaksy związany z przesunięciem położenia kamery względem oczu użytkownika. Seryjnie produkowany ekran 3DVisor Z800 przedstawia rysunek (-7). Rysunek -7: Ekran HMD 3DVisor Z (dostęp ) Ekrany HMPD nie posiadają ekranu, lecz specjalną powierzchnię, która łączy ze sobą strumienie światła docierające do niej z dwóch różnych kierunków (ang. beam combiner). Skierowane są w nią miniaturowe projektory zamontowane w urządzeniu, a oprócz tego pada na nią światło z obiektów będących w polu widzenia użytkownika. Tak połączona wiązka światła pada na powierzchnie retrorefleksyjną przed oczami użytkownika, co powoduje projekcję obrazu na tej powierzchni. Urządzenia te charakteryzują się następującymi wadami: Niska rozdzielczość oraz jasność miniaturowych projektorów, Jasność i jakość obrazu zależy od warunków oświetlenia otoczenia. Przykładowy ekran HMPD przedstawia rysunek (-8). 1

13 Rysunek -8: Prototyp HMPD (dostęp ) Ekrany miniaturowe (ang. Hand-Held Displays) Ekrany te są obecne w wielu powszechnie używanych urządzeniach. Tablety, telefony komórkowe i inne mobilne urządzenia mają wbudowane tego rodzaju wyświetlacze. W urządzenia te często jest wbudowana kamera, a ich moce obliczeniowe dorównują mocom komputerów osobistych sprzed kilku lat, w związku z czym oferują odpowiednie środowisko do uruchamiania na nich programów Rzeczywistości Rozszerzonej. Urządzenia te są nieprzeźroczyste, a obraz otoczenia wyświetlany na ekranie jest odbierany przez kamerę. Istnieją też przeźroczyste odmiany mobilnych wyświetlaczy. Urządzenia mobilne posiadają następujące wady: Mały rozmiar ekranu znacząco ogranicza pole widzenia, Niska jakość sensorów optycznych w miniaturowych wbudowanych kamerach, Konieczne jest trzymanie urządzenia w ręce. Ekrany stosowane w tych urządzeniach odznacza przede wszystkim bardzo niska cena w stosunku do wszystkich odmian ekranów noszonych na głowie. Powstało już wiele popularnych aplikacji AR na tego typu urządzenia. Docelowym środowiskiem działania programu tworzonego w ramach tej pracy będzie właśnie urządzenie mobilne typu Smartfon. Ekrany przestrzenne (ang. Spatial Displays) Od wcześniej opisanych ekranów odróżnia je to, że są zintegrowane z użytkownikiem. Bimber[5] odróżnia trzy różne podejścia w zastosowaniu Rzeczywistości Rozszerzonej w tego typu urządzeniach: używa się ekranów przeźroczystych, nieprzeźroczystych, lub projekcji bezpośredniej. Oparte na tradycyjnych nieprzeźroczystych ekranach rozwiązanie jest często wykorzystywane np. w internetowych kampaniach reklamowych wykorzystujących programy AR. Systemy tego typu wyświetlają obraz z kamery wraz z wirtualnie dodanymi obiektami na zwykłym monitorze. Oto największe wady tego rozwiązania: Pole widzenia ograniczone do rozmiaru monitora, 13

14 Niski poziom integracji z użytkownikiem, co pogarsza wrażenia związane z odbiorem AR. Jest to rozwiązanie najtańsze ze wszystkich obecnie dostępnych. Ekrany Przeźroczyste mogą bazować na technologiach zastosowanych w ekranach typu HWD, lub HMDP. Ciekawą odmianą ekranów przestrzennych są ekrany oparte na projektorach, których promień światła z obrazem kierowany jest na powierzchnie obiektów fizycznych. Wady tego rozwiązania to: Rzucanie cieni przez obiekty fizyczne oraz użytkownika (w przypadku stosowania jednego tylko projektora), Ograniczenia związane z właściwościami powierzchni obiektu, na który skierowany jest projektor (rozmiar powierzchni, kształt, materiał, kolor)..3 Ograniczenia i problemy.3.1 Ograniczenia technologiczne Poprawna i jednoznaczna rejestracja cech obrazu rzeczywistego w celu naniesienia elementów wirtualnych leży u podstaw poprawnie działającego systemu AR. Precyzyjne i responsywne śledzenie ruchów kamery oraz punktów odniesienia stanowi duże wyzwanie dla twórców technologii opartych o Rzeczywistość Rozszerzoną. Responsywność oznacza krótki czas reakcji systemu na zmianę położenia kamery oraz punktów odniesienia, opóźnienie powinno być niezauważalne dla ludzkiego oka. Typowy, najprostszy system AR zawiera ekran i detektor ruchu wraz z odpowiednim oprogramowaniem. Jak podaje Xiang Zhang[1] aby system działał poprawnie właściwości obiektów wirtualnych oraz sceny rzeczywistej muszą być znane. Geometria kamery wirtualnej musi być zgodna z geometrią kamery rejestrującej świat rzeczywisty, co może być problemem np. przy tworzeniu tej samej aplikacji na różne typy urządzeń docelowych. Obecnie najczęściej spotykaną metodą śledzenia markerów jest śledzenie optyczne. Inne rozwiązania, takie jak kamera reagująca na podczerwień wykazują się wysoką precyzją, ale również wysoką ceną. Kamery wysokiej rozdzielczości mają duże rozmiary, a te mniejsze oferują niedostateczną dokładność do wielu zastosowań AR. Techniki śledzenia punktów charakterystycznych niewymagające sztucznych markerów (ang. markerless tracking) są najtrudniejsze w implementacji, ale otwierają przy tym najwięcej możliwości wykorzystania AR. Oprócz namierzania i śledzenia obiektów technologia wykonania ekranu omówiona w poprzednim podrozdziale decyduje o zastosowaniu systemu AR. Ostatnim z ważnych elementów w łańcuchu przetwarzania AR jest rendering obiektów wirtualnych w czasie rzeczywistym. Współczesne urządzenia, nawet niektóre telefony komórkowe mają wbudowane akceleratory grafiki 3D, więc mogą renderować obiekty o bardzo wysokim poziomie detali. Pozostaje jednak problem odpowiedniego ich wkomponowania w rzeczywistą scenę, odzwierciedlenie warunków oświetlenia, czy przysłaniania ich przez inne obiekty. 14

15 .3. Problem detekcji i śledzenia markerów W ramach tej pracy zostanie przeanalizowany problem detekcji czarno-białych markerów. W systemach Rzeczywistości Rozszerzonej markery pełnią dwie funkcje: Na podstawie ich położenia na obrazie D określa się położenie syntetycznych obiektów nakładanych na obraz rzeczywisty. Zazwyczaj w ich wnętrzu zakodowana jest informacja, np. w postaci kodu binarnego lub obrazu. Informacja ta jest niezbędna do jednoznacznej identyfikacji markera. Nawet wtedy gdy wiadomo, że na scenie znajduje się tylko jeden marker, zawsze istnieje możliwość błędnej klasyfikacji przez algorytm innych obiektów sceny jako markerów (ang. falsepositive). Przykładowe markery kodowane binarnie przedstawia rysunek -9. Rysunek -9: Dwa markery wydrukowane na białej kartce Xiang Zhang [1] wyodrębnił następujące kluczowe cechy wpływające na ocenę algorytmów śledzenia markerów: Używalność określa, jak łatwo jest zaimplementować system do zastosowań AR. Określa także kompatybilność systemu z różnymi platformami sprzętowymi i systemami operacyjnymi. Cecha ta może być określona jedynie w porównaniu z innym systemem. Wydajność jest miarą wymaganego czasu działania algorytmu niezbędnego do detekcji markera oraz czasu reakcji systemu na zmianę położenia markera. Dokładność określa błąd ekstrakcji cech z dwuwymiarowych obrazów. Wylicza się ją na podstawie średnich błędów cech ekstraktowanych przez system śledzenia markerów w odniesieniu do różnych jego ustawienia na scenie. Niezawodność określa, czy system może wykryć i śledzić marker w warunkach nieliniowych, chodzi o przypadek, kiedy np. obraz z niskiej jakości kamery ma nieodpowiednią ostrość albo znacznie przestrojoną perspektywę. Często lepsza ocena jednej z powyższych cech wpływa na spadek drugiej, w gestii projektanta algorytmu leży wybranie odpowiednich algorytmów i ich parametrów dla konkretnego zastosowania systemu. Na przykład system detekcji zawarty w bibliotece ARToolKit[1] jest efektywny w swoim działaniu jak wykazały testy w publikacji Zhanga. Bazuje on jednak na progowaniu, tzn. w pierwszym kroku działania algorytmu obraz jest binaryzowany w odniesieniu do pewnej z góry ustalonej progowej wartości natężenia kolorów. Zabieg ten jest przyczyną błędnych wyników przy różnych natężeniach oświetlenia, 15

16 nawet dla tej samej sceny. W wyniku tego niektórzy użytkownicy biblioteki zmodyfikowali jej kod w celu progowania lokalnego. System ARTag[6] natomiast został pierwotnie zaprojektowany pod kątem odporności na zmienne warunki oświetlenia oraz zasłanianie markerów. Zastosowano w nim metodę krawędziową, która zostanie dokładnie omówiona w następnych rozdziałach oraz zostanie zaimplementowana w tworzonym systemie Rzeczywistości Rozszerzonej..3.3 Problem kalibracji kamery Jak podaje Zhengyou Zhang[], metody kalibracji można podzielić na dwie podstawowe kategorie: -photogrammetric calibration kalibracja wykonywana poprzez obserwację obiektu, którego geometria w trójwymiarowej przestrzeni jest znana z dużą dokładnością. Obiekt ten składa się zazwyczaj z dwóch-trzech płaszczyzn do siebie prostopadłych. -self-calibration techniki w tej kategorii nie używają specjalnych obiektów kalibracji. Poprzez ruch kamery śledzącej statyczną scenę, na podstawie porównania jej obrazów z różnych punktów widzenia, możemy uzyskać parametry kamery. Metoda ta ma jedną wadę: nie można za pomocą tej techniki poznać wszystkich parametrów kamery część z nich musi być estymowana, więc nie zawsze otrzymamy dokładne wyniki. Zhengyou Zhang zaproponował rozwiązanie leżące pomiędzy dwiema wyżej wymienionymi metodami, ponieważ chociaż używamy wzorca daje on nam jedynie dwuwymiarową informację metryczną. Wzorzec ten może więc być wydrukowany na papierze. Metoda pozostawia nam dowolność - nie ważne, czy będziemy ruszać kamerą, czy wzorcem, parametry ruchy kamery nie muszą być znane. Metoda ta została zaimplementowana w bibliotece programistycznej ARToolKit, która będzie bliżej omówiona w dalszej części pracy..4 Podsumowanie Rzeczywistością Rozszerzoną określić można szerokie spektrum aplikacji tworzonych dla różnych, często niespokrewnionych ze sobą zastosowań. Wiele przedstawionych w tym rozdziale rozwiązań to prototypy we wczesnym stadium rozwoju. Obecnie największą popularność zdobywają aplikacje na urządzenia mobilne, ponieważ wymagają one najmniejszego nakładu ze strony użytkownika niemal na każdy średniej klasy telefon komórkowy tworzone są tego typu programy. Inne rozwiązania, takie jak specjalne okulary są jeszcze drogie oraz niedoskonałe pod wieloma względami, co zostało zaprezentowane we wcześniejszych podrozdziałach. Programy, które syntezę elementów przeprowadzają w oparciu o informacje zawarte na obserwowanym obrazie, jako punktu odniesienia zazwyczaj używają specjalnych markerów, inne metody niewymagające stosowania syntetycznych punktów odniesienia są trudne w implementacji oraz ograniczone do niewielu zastosowań jak np. śledzenie twarzy. W związku z tym w dalszej części pracy zostaną przeanalizowane algorytmy, które stosowane w systemach Rzeczywistości Rozszerzonej umożliwiły efektywne śledzenie czarno-białych markerów. 16

17 Rozdział 3 Metody Detekcji Markerów i estymacji właściwości obiektów wirtualnych W skład detektora markerów może wchodzić kilka algorytmów pozwalających wyodrębnić składowe struktury markera takie jak krawędzie, linie, ich zakończenia oraz rogi. W zależności od wyboru algorytmów oraz ich parametrów można uzyskać różne wyniki w działaniu detektora markerów dla różnych warunków otoczenia. W tym rozdziale zostanie dokonany przegląd algorytmów wykorzystywanych w systemach Rzeczywistości Rozszerzonej. 3.1 Detekcja krawędzi Detektory krawędzi są powszechnie wykorzystywanymi narzędziami do analizy obrazów cyfrowych. Stosuje się je m.in. w rozpoznawaniu obiektów, rekonstrukcji, rejestracji oraz kompresji obrazów. Kwadratowe struktury markerów są również wykrywane za pomocą wchodzących w ich skład krawędzi. Detekcja krawędzi jest procesem wykrywającym nieciągłości w fotometrycznych, geometrycznych oraz fizycznych właściwościach obiektu. Dzięki niej można uzyskać informacje na temat różnicy w nasyceniu kolorów, uskokach, krawędziach oraz przysłaniających się obiektach. Celem detekcji krawędzi jest lokalizacja tych różnic oraz identyfikacja ich przyczyn. Detekcja krawędzi często jest tylko składową wielu procesów obróbki obrazu, musi być więc wydajna oraz miarodajna. Krawędź to nagła zmiana intensywności (próg). W przypadku obrazów cyfrowych możemy mówić o zmianie składowych wartości kolorów pikseli. Krawędź idealną przedstawia poniższy rysunek: Rysunek 3-1: Model krawędzi idealnej 17

18 W rzeczywistych warunkach zmiana intensywności prawie nigdy nie jest punktowa. Przyczyną tego jest fakt, że krawędzie są wygładzane przez niedoskonałą soczewkę kamery, ograniczoną rozdzielczość matrycy aparatu, a także innego rodzaju zakłócenia. Przykładowe strefy przejściowe przedstawia poniższa ilustracja: Rysunek 3-: Modele krawędzi z progiem liniowym oraz nieliniowym Detektor krawędzi na wejściu otrzymuje cyfrowy obraz, na wyjściu natomiast zwraca mapę krawędzi. Mapa ta może zawierać takie informacje jak pozycja, intensywność, orientacja, czy skala krawędzi. Przykładowy obraz wejściowy oraz wynik operacji detekcji krawędzi przedstawia rysunek (3-3). Rysunek 3-3: Obraz wejściowy oraz jego mapa krawędzi 18

19 3.1.1 Filtr Gaussa Filtr Gaussa jest podstawą większości powszechnie używanych detektorów krawędzi. Funkcja Gaussa wygląda następująco: G ( xb) c ( x) ae, (3 1) gdzie parametry a, b i c > 0, a e (liczba Eulera). Wykres funkcji Gaussa jest symetryczną krzywą, w której parametr a odpowiada za maksymalną wartość funkcji w punkcie jej osi symetrii, parametr b określa pozycję owego maksimum na osi x, a c określa jak szybko funkcja zmierza to wartości 0. Rysunek (3-4) przedstawia przykładowe funkcje Gaussa dla różnych wartości jej parametrów. Rysunek 3-4: Funkcja Gaussa dla parametrów a = 1/(σ (π)), b = μ, c = σ 3.1. Filtr Gaussa w przetwarzaniu obrazów cyfrowych Przeprowadzając operacje na obrazach cyfrowych przetwarza się poszczególne składowe koloru piksela. W przypadku obrazów czarno-białych operujemy na jednej tylko składowej odcieniu szarości. Dwuwymiarową funkcję Gaussa opisuje się wzorem G ( x y 1 ( x) e, ) gdzie x oraz y to koordynaty piksela, σ to wariancja filtru, l to rozmiar funkcji Gaussa, przy czym (-l x, y l ). (3 ) 19

20 Przy przetwarzaniu obrazów cyfrowych należy określić rozmiar obszaru pikseli, który obejmować będzie dążąca do nieskończoności funkcja Gaussa. Obszar działania funkcji zazwyczaj wyznacza się ignorując wartości funkcji mniejsze niż 5% wartości jej maksimum. W odniesieniu do dwuwymiarowego obrazu oznacza to, że filtracji poddawane są tylko piksele leżące w wyznaczonym obszarze, co przedstawiono na rysunku (3-5). Rysunek 3-5: Funkcja Gaussa (koro błękitny) w odniesieniu do cyfrowego obrazu (kolor zielony) Filtracja Gaussa sprowadza się do wykonania splotu funkcji Gaussa z sygnałem, w tym przypadku dwuwymiarowym obrazem. Wynikiem działania funkcji splotu jest zmodyfikowany obraz, w którym wartość koloru każdego piksela jest wartością średnią wartości pikseli z sąsiedztwa pomnożonych przez przypisaną im wartość funkcji Gaussa. Obraz poddany tej filtracji zostaje rozmyty. Różnica obrazu pierwotnego oraz tego otrzymanego w wyniku filtracji Gaussa jest w rzeczywistości mapą jego krawędzi Operator Sobela Za pomocą Operatora Sobela można wyznaczyć gradient funkcji intensywności obrazu. Gradient w przetwarzaniu obrazów oznacza kierunkową zmianę intensywności koloru na płaszczyźnie obrazu. Operator Sobela dla każdego punktu obrazu zwraca wektor wskazujący kierunek gradientu. Operator ten bazuje na niewielkim (wymiar 3x3) całkowitoliczbowym filtrze stosowanym dla orientacji poziomej i pionowej. Operacja wyliczenia gradientu jest złożona obliczeniowo, dlatego operator Sobela rzadko stosowany jest globalnie, powszechnie stosuje się go tylko na pikselach krawędziowych obrazu, tzn. tych, dla których wartość ich odpowiedników na mapie krawędzi jest wyższa od określonego przez projektanta algorytmu progu. Na wyjściu Operatora Sobela otrzymujemy wektor, którego kierunek wskazuje kierunek zmiany koloru, a długość określa stopień intensywności tej zmiany. Otrzymany wynik określa kąt nachylenia krawędzi obrazu. 0

21 Matematyczna realizacja filtru sprowadza się do wyliczenia dwóch pochodnych, po jednej dla orientacji poziomej oraz pionowej. Operator korzysta z jąder o wymiarach 3x3, które przedstawia wyrażenie (3-3). (3 3). wektora: W wyniku otrzymujemy składowe wektora: G x oraz G y. Intensywność gradientu określa długość tego G G x G y. (3 4) Kierunek gradientu wyraża się wzorem: G y arctan( ). G x (3 5) Algorytm RANSAC Proste krawędzie na obrazie mogą zostać odnalezione na podstawie informacji o pikselach krawędziowych. Na podstawie informacji o ich położeniu oraz wektorze gradientu można znaleźć grupy pikseli krawędziowych tworzące krawędzie za pomocą algorytmu RANSAC[9]. Algorytm RANSAC (Random Sample Consensus) jest iteracyjną metodą stosowaną w celu estymacji parametrów poszukiwanego modelu matematycznego obiektu na podstawie zestawu danych, których tylko część poprawnie opisuje poszukiwany model, stopień tej poprawności jest różny dla każdej danej, a jego wartość nieznana i niemożliwa do jednoznacznego określenia. Jest to niedeterministyczny algorytm, ponieważ zwraca wynik jedynie z pewną poprawnością, która zwiększa się wraz ze wzrostem ilości iteracji. Algorytm ten bazuje na dwóch założeniach: Dane można podzielić na poprawnie oraz błędnie charakteryzujące model, wartość progowa błędu jest z góry ustalona przez projektanta algorytmu Za pomocą określonej, zazwyczaj niewielkiej ilości danych charakteryzujących model można estymować jego parametry za pomocą odpowiedniej procedury 1

22 Algorytm RANSAC sprowadza się do wykonania następującej procedury[7]: 1. Model jest tworzony na podstawie ustalonej liczby obiektów wybranych za pomocą losowania.. Następnie pozostałe obiekty ze zbioru porównywane są z utworzonym modelem. Jeśli obiekt pasuje do estymowanego modelu, jest również uznawany za należący do modelu. 3. Estymowany model jest uznawany za poprawny, jeśli ustalona minimalna ilość obiektów została sklasyfikowana jako poprawnie określająca model. 4. Jeśli model uznano za poprawny, zostaje on zapisany w pamięci wraz ze wszystkimi obiektami zaklasyfikowanymi wcześniej jako poprawnie go określające. 5. W ostatnim kroku wyliczony zostaje średni błąd wybranych obiektów dla aktualnego modelu. Procedura ta jest powtarzana określoną przez projektanta ilość razy. W każdej z iteracji porównujemy otrzymany model z najlepszym ze wszystkich modeli wcześniej uzyskanych. Jeśli średni błąd dla nowego modelu jest mniejszy niż dla najlepszego z dotychczas utworzonych, aktualny model staje się modelem najlepszym. Za pomocą algorytmu RANSAC można wykryć proste linie wchodzące w skład przetwarzanego obrazu. Aby tego dokonać stosuje się wersję algorytmu dostosowaną do tego zadania. W tym przypadku model jest tworzony na podstawie dwóch losowo wybranych pikseli leżących na krawędziach. Ich kierunki gradientu muszą być zgodne (projektant algorytmu definiuje maksymalną różnicę ich orientacji). Jeśli ich kierunki nie są zgodne, losowanie zostaje powtórzone. Wybrane piksele stanowią potencjalne końce prostej linii, przykład zaprezentowano na rysunku 3-6. Rysunek 3-6: Model prostej krawędzi wybrany losowo w pierwszym kroku algorytmu RANSAC Proces porównywania pozostałych pikseli z modelem składa się z dwóch etapów: w pierwszym porównywany jest kierunek wybranego piksela i jeśli jest on zgodny z modelem, sprawdzone zostaje, czy leży on na linii wyznaczonej przez model. Algorytm kończy działanie po przekroczeniu zadanej ilości iteracji lub w przypadku, kiedy wszystkie piksele obrazu leżą na jednej linii. Takie ułożenie pikseli jest wysoce prawdopodobne jeśli operujemy na fragmencie obrazu. W przypadku dużej ilości danych obraz

23 powinien zostać podzielony w celu optymalizacji działania algorytmu. Przykładowy model krawędzi utworzony na podstawie istniejących pikseli przedstawia rysunek 3-7. Rysunek 3-7: Model krawędzi oraz piksele wchodzące w jego skład Na podstawie zbioru linii łatwo można odnaleźć struktury ramek czarno-białych markerów. Składają się one z linii, których orientacje rozchodzą się w kierunkach od środka markera do pozostałej białej części kartki (poszukujemy czarnych markerów na białym tle). Po spróbkowaniu ich zawartości łatwo określić, które potencjalne markery zawierają w sobie poprawnie zakodowaną informację i to właśnie one trafiają do zbioru zidentyfikowanych markerów. 3. Synteza elementów syntetycznych ze sceną rzeczywistą W systemie Rzeczywistości Rozszerzonej, który łączy ze sceną rzeczywistą obiekty trójwymiarowe zachodzi potrzeba odpowiedniej estymacji pozycji tych obiektów. Techniki wizyjne zapewniają wysoką dokładność w rejestracji obiektów, w szczególności czarno-białych markerów, dla których koordynaty rogów uzyskanych na podstawie analizy obrazu odznaczają się niezauważalnym błędem w sprzyjających warunkach oświetlenia oraz położenia markera. Obiekty dwuwymiarowe można umiejscowić np. w punkcie przecięcia się przekątnych markera, aby odwzorować rotację oraz położenie obiektu trójwymiarowego należy sięgnąć do bardziej złożonych algorytmów. Każdy obiekt trójwymiarowy zawiera informacje o swojej geometrii zapisane w układzie odniesienia tego obiektu. Aby umieścić rozważany obiekt na scenie, musimy określić w którym miejscu sceny oraz pod jakim kątem będzie on widoczny. Możemy przyjąć, że położenie obiektu na scenie opisują trzy macierze: Macierz Świata (ang. World Matrix) określa położenie obiektu 3D w globalnym układzie odniesienia. W celu zmiany pozycji interesującego nas obiektu należy przeliczyć wartość jego macierzy świata. Macierz Widoku (ang. View Matrix) odzwierciedla położenie układu globalnego względem abstrakcyjnej kamery. Zmiany wartości tej macierzy wpływają na zmianę położenia całej 3

24 sceny, a jeśli jako układ odniesienia przyjmiemy scenę, to okazuje się, że zmiana ta decyduje o pozycji kamery. Macierz Projekcji (ang. Projection Matrix) Określa podstawowe właściwości perspektywy. Jej wartości decydują o tym, jak trójwymiarowa scena zostanie odzwierciedlona na dwuwymiarowej powierzchni obrazu widzianego przez odbiorcę. Poprawna synteza dwóch scen: rzeczywistej oraz wirtualnej musi poprawnie odzwierciedlać położenie obiektów przypisanych do konkretnych markerów. W tym celu należy dokonać transformacji dwuwymiarowych koordynatów rogów markera do sceny trójwymiarowej, której właściwości w rozważanym przypadku odzwierciedli macierz widoku. W procesie transformacji nie interesuje nas macierz świata marker w tym wypadku traktujemy jako wyznacznik globalnego układu współrzędnych Model sceny w systemie Rzeczywistości Rozszerzonej Celem algorytmu transformacji jest wyznaczenie sześciu stopni swobody kamery (ang. six degrees of freedom), które określają położenie oraz rotację w odniesieniu do każdej osi trójwymiarowego układu współrzędnych, co przedstawia rysunek 3-8. Rysunek 3-8: Sześć stopni swobody wirtualnej kamery (dostęp ) Ostatecznie zadanie wyznaczenia pozycji obiektów na scenie sprowadza się do wyznaczenia macierzy widoku, której wartości odpowiadają sześciu stopniom swobody kamery. Sześć stopni swobody, to inaczej tzw. parametry zewnętrzne kamery (ang. etrinsic camera parameters). Macierz parametrów zewnętrznych wygląda następująco[16]: M ext r r r r r r 1 3 r r r T x R T y R T z R T 1 T T 3 T x Ty T z gdzie współczynniki macierzy R oraz T określają rotację oraz przesunięcie kamery w układzie globalnym., (3 6) 4

25 Znając położenie obiektów na scenie należy jeszcze dobrać odpowiednią macierz projekcji, w celu poprawnego ich odzwierciedlenia na dwuwymiarowym obrazie. Współczynniki macierzy projekcji określają budowę ostrosłupa ściętego (ang. frustum), powstałego w wyniku przecięcia się sześciu płaszczyzn. Omawiany ostrosłup ścięty przedstawiono na rysunku 3-9. Decydują one o parametrach wewnętrznych kamery (ang. intrinsic camera parameters). Rysunek 3-9: Ostrosłup ścięty widoku oraz wirtualna kamera (dostęp ) Przedstawiony na powyższym rysunku ostrosłup ścięty określa pole widzenia wirtualnej kamery wszystkie obiekty znajdujące w jego wnętrzu będą dla niej widzialne. Jeśli przyjmiemy jako układ odniesienia przedstawioną na rysunku 3-8 kamerę, to[0]: górna, dolna oraz boczne płaszczyzny decydują o rozpiętości perspektywy wirtualnej kamery, płaszczyzna zawierająca ścianę położoną w miejscu ścięcia ostrosłupa obok kamery (ang. near plane) decyduje o minimalnej odległości w jakiej obiekty będą dla niej widzialne, równoległa do niej płaszczyzna zawierająca podstawę ostrosłupa (ang. far plane) decyduje o maksymalnej odległości w jakiej obiekty będą widzialne dla kamery W przypadku prawdziwej kamery ściany far plane oraz near plane nie istnieją kamera ma teoretycznie nieskończoną odległość widzenia. W związku z tym określenie pozycji tych dwóch ścian zostanie pominięte w procesie kalibracji wirtualnej kamery, programista wartości te dobierze według własnego uznania. W grafice trójwymiarowej określenie pozycji far plane służy przede wszystkim odciążeniu sprzętu: jeśli na scenie znajduje się wiele obiektów, to te najmniejsze położone daleko od kamery mogą zostać pominięte w czasie rendernigu. Płaszczyzna near plane wprowadzona została po to, aby nie renderować obiektów, które znajdą się blisko kamery i mogą przysłonić dużą część całej sceny, co zwykle jest niepożądane. Rozważmy macierz projekcji w ujęciu matematycznym. Równanie płaszczyzny w przestrzeni trójwymiarowej przedstawia wzór[0]: 5

26 6 0 D Cz By Ax. (3 7) W związku z tym macierz projekcji zawierająca w sobie informacje o sześciu płaszczyznach, w ujęciu ogólnym wygląda następująco: D C B A D C B A D C B A D C B A D C B A D C B A. (3 8) Jak dotąd opisane zostały zależności zachodzące w globalnym układzie współrzędnych, w którym będą renderowane obiekty trójwymiarowe. Model całej sceny składa się jednak z większej liczby układów współrzędnych, przedstawionych na rysunku 3-10: układ globalny, układ współrzędnych kamery, dwuwymiarowy układ współrzędnych obrazu. Rysunek 3-10: Układy współrzędnych wchodzące w skład modelu sceny[1] Przyjęto, że kamera rzeczywista zawsze znajduje się w punkcie C (Xc = 0; Yc = 0)[1], transformację z układu globalnego do układu kamery określa równanie[1]: w w w c c c z y x R T z y x, (3 9)

27 Transformację z układu globalnego do układu obrazu określa się: xu yu 1 M RT int x y z w w w, (3 10) M int gdzie macierz 0 c 0 M int : u0 v (3 11) zawiera wewnętrzne parametry kamery. Symbole oraz to współczynniki skali płaszczyzny obrazu odpowiednio w pionie oraz poziomie, c określa wzajemne nachylanie dwóch osi obrazu, a (u 0, v 0 ) odzwierciedla punkt centralny kamery na płaszczyźnie obrazu. Przy czym oraz można zapisać jako: f, x y f (3 1) gdzie f to ogniskowa kamery, a x oraz y, to rozmiar pojedynczego piksela w poziomie oraz pionie na płaszczyźnie obrazu. Aby skonstruować macierz projekcji wirtualnej kamery, która jest zgodna z macierzą kamery rzeczywistej, należy obliczyć kąt pola widzenia (ang. field of view, FOV) (Rysunek 3-11). Rysunek 3-11: Pole widzenia kamery (FOV) 7

28 Zależność między ogniskową kamery a jej polem widzenia wyraża się wzorem: f 1/ tan( FOV / ). (3 13) Za pomocą tej zależności, znając wartość ogniskową soczewki rzeczywistej kamery, możemy łatwo skonstruować ostrosłup ścięty frustum. W ten sposób dokonywana jest konstrukcja frustum w bibliotece programistycznej OpenGL. Uproszczona macierz projekcji w niej zastosowana umożliwia szybsze wykonywanie na niej operacji matematycznych[11]: f f / a 0 far near 0 0 far near * far * near far near 0, (3 14) gdzie: - near, far odległości od kamery do near plane oraz far plane, - f odległość ogniskowa - a pożądany stosunek wysokości do szerokości obrazu (ang. aspect ratio). 3.. Wyznaczenie pozycji kamery Opisana teraz zostanie metoda wyznaczania zewnętrznych oraz wewnętrznych parametrów kamery zaproponowana przez Shahzada Malika[16]. Większość rozwiązań wymaga znajomości odległości ogniskowej, natomiast w tej metodzie parametry kamery wyznaczane są automatycznie. Chociaż autokalibracja kamery nie zapewnia dużej dokładności, to jest rozsądnym rozwiązaniem w przypadku gdy nie mamy możliwości przeprowadzenia oddzielnego procesu pełnej kalibracji. Aby otrzymać kompletną macierz wszystkich niezbędnych transformacji, pomnóżmy macierz parametrów zewnętrznych (3-6) oraz macierz parametrów wewnętrznych (3-11) oraz przyjmijmy, że u 0, v 0 = 0: r11 r1 r13 t1 M intm ext r1 r r3 t, (3 15) r 31 r3 r33 t3 Jeśli założymy, że obserwowany marker określa płaszczyznę Z = 0 w koordynatach świata, możemy uprościć powyższe równanie: r H r r r r r 1 3 t1 t. (3 16) t 3 8

29 Ponieważ R to macierz rotacji, na podstawie własności jej ortogalności, można stwierdzić, że: r r r r r r 0 (3 17) r r r 1 (3 18) r r r 1 (3 19) 1 3 Wykorzystując te własnościu w odniesieniu do macierzy H możemy wyznaczyć wartości oraz h11h1( h1 h) h1h( h11 h1), (3 0) h h ( h h ) h h ( h h ) h11h1( h1 h) h1h( h11 h1), (3 1) h h ( h h ) h h ( h h ) Po wyznaczeniu wewnętrznych parametrów, pozostałe wartości macierzy mogą być wyliczone za pomocą pomiższych równań: r r r h h h / / r r r 1 3 h h h 1 3 / / r r r r r r r 1 3 r 31 1 r 11 r r r r 31 r 11 3 r 1 1 gdzie to współczynik skali, który może zostać wyliczony: 11 / h1 / 31 t t t 1 3 h h 13 h 3 33 / /, (3 ) 1. (3 3) h h 3..3 Algorytm Ortogonalnych Iteracji Jeden z algorytmów wyznaczania pozycji skalibrowanej wcześniej kamery zaproponowali Fakhreddine Ababsa oraz Malik Mallem[1]. Zaadaptowali oni algorytm Chien-Pinga Lu[15] zwany Algorytmem Ortogonalnych Iteracji. Rozpoznany marker używany jest w celu estymacji aktualnego położenia kamery w odniesieniu do globalnego układu współrzędnych. Na podstawie koordynatów czterech rogów markera na płaszczyźnie obrazu można wyznaczyć macierz reprezentująca przesunięcie oraz obrót kamery w świecie rzeczywistym. Załóżmy, że koordynaty punktu q i znajdującego się w przestrzeni kamery mogą być zrekonstruowane fizycznie, wtedy dla każdego obserwowanego punktu mamy: q Rp t, (3 4) i i gdzie: - R - rotacja położenia kamery, - t transformacja (przesunięcie) kamery. 9

30 Według Lu wyliczenie absolutnej orientacji sprowadza się do wyznaczenia wartości R oraz t na podstawie par q i oraz p i. Dla trzech, lub większej ilości punktów leżących na różnych liniach wartości R oraz t mogą zostać wyznaczone za pomocą metody najmniejszych kwadratów: n min Rp t q. (3 5) R, t i1 i i Startowym punktem właściwej części Algorytmu Ortogonalnych Iteracji jest określenie problemu estymacji za pomocą następującego wektora korelacji obiekt-ptrzestrzeń: e i ( I Vˆ )( Rp t), (3 6) i i gdzie Vˆ i jest wyliczone na podstawie wektora punktów obrazu vˆ i : vˆ vˆ t ˆ i i i t. vˆ ivˆ i V (3 7) Następnie poszukiwana jest najmniejsza suma błędu kwadratowego: n i1 n E( R, t) e ( I Vˆ )( Rp t). (3 8) i i1 i i Wszystkie informacje zawarte w zbiorze obserwowanych punktów obrazu {v i } są zapisane w zbiorze macierzy projekcji { Vˆ i }. Dla danej rotacji R, optymalna wartość t może zostać wyznaczona za pomocą przekształcenia wcześniejszego równania: t ( R) I Vˆ j ( Vˆ j I) Rp n n j j j (3 9) Aby to równanie było poprawnie zdefiniowane, 1 I n n V ˆ i i1 musi być macierzą dodatnio określoną. Warunek ten jest zawsze spełniony dla dowolnego zbioru różnych punktów obrazu, ponieważ dla dowolnego wektora trójwymiarowego x R, można wykazać, że: n n n n ˆ ˆ 1 t ˆ t ( ) ( ˆ t t x I V ) ( ) ( ˆ i x x x Vi x x x Vi Vi x x Vi x ) 0 (3 30) n n n n i1 i1 i1 i1 Wyrażenie x V ˆ x i może być większe lub równe zeru, natomiast ich suma będzie równa zeru tylko wtedy, kiedy wszystkie punkty sceny pobrane zostały z tego samego punktu obrazu. 30

31 Mając wzór na translację jako funkcję rotacji R oraz definiując: n ˆ 1 qi ( R) Vi ( Rp i t( R)) i q( R) qi ( R), (3 31) n równanie (3-5) można zapisać w postaci: n E( R) ( Rp t( R) q ( R)). (3 3) i1 i i Równanie to przypomina równanie estymacji absolutnej orientacji (3-5). W tym jednak przypadku nie da się go rozwiązać dla danego R, ponieważ macierz kowariancji pomiędzy {p i } oraz {q i (R)} sama jest zależna od R: n t M ( R) q i ( R) p i, gdzie p i pi p oraz q i ( R) qi ( R) qi ( R). (3 33) i1 i1 Jednakże R może zostać wyznaczone iteracyjnie: Zakładając, że k-ta estymacja R, to R (k), t (k) = t(r (k) ) oraz q i = R (k) p i + t (k), następną estymację R (k+1) można wyznaczyć rozwiązując równanie problemu absolutnej orientacji: R ( k1) n R i i i R k i1 ˆ ( k ) t ( ) arg min ( Rp t V q ) arg max tr R M ( R ), (3 34) ( ) Gdzie zestaw ˆ k V iq i to hipotetyczny zestaw punktów q i w równaniu (3-5). W celu wyznaczenia następnych estymacji korzystamy z równania (3-9): ( k1) ( k1) t t( R ) (3 35) następnie powtarzamy ten proces. Rozwiązanie R * problemu estymacji pozycji za pomocą algorytmu ortogonalnych iteracji na podstawie wzoru (3-34) dane jest wzorem: R * n * * arg min ( Rp t Vˆ ( R p t( R )). (3 36) R i1 i i i Rozwiązanie to nie zawsze odpowiada poprawnej pozycji w przestrzeni 3D. Algorytm Ababsy[1] wprowadza do przedstawionej powyżej metody inicjalizację algorytmu dla każdej z nowych klatek obrazu wideo wartościami odpowiadającymi położeniu markera w poprzedniej klatce. Dzięki temu, przy niewielkich zmianach położenia kamery obliczenie poprawnego rozwiązania zapewnia mniejsza ilość iteracji algorytmu Kalibracja kamery Kalibracja kamery nie jest wymagana, by nanieść na scenę elementy wirtualne. Często projektant programu nie ma możliwości kalibracji kamery, np. w przypadku gdy program jest tworzony na wiele urządzeń posiadających różne typy kamer. Przyjmuje się wtedy parametry domyślne, można pominąć zniekształcenie obrazu poprzez soczewkę, na urządzeniach mobilnych z małym ekranem przestrojenie pozycji obiektu 3D na obrzeżach obrazu kamery będzie wtedy ledwie zauważalne. W przypadku 31

32 profesjonalnego sprzętu parametry kamery są zazwyczaj podane przez producenta. Jeśli program ma działać na sprzęcie o nieznanych parametrach, a twórca systemu ma do niego dostęp, zawsze lepiej jest skalibrować kamerę. Spośród wielu metod kalibracji bazujących na różnych wzorcach jedną z najłatwiejszych do realizacji jest ta opisana przez Zhengyou Zhanga[], ponieważ jako wzorca używa kartki z wydrukowanymi na niej czarnymi kwadratami (Rysunek 3-1). Rysunek 3-1: Wzorzec służący kalibracji kamery W celu wyprowadzenia algorytmu kalibracji kamery najpierw należy zdefiniować podstawowe jej parametry. Za pomocą modelu kamery można określić relację pomiędzy dowolnym punktem M = [X, Y, Z] T w przestrzeni trójwymiarowej oraz jego odzwierciedleniem m = [u, v] T na dwuwymiarowym obrazie. Rozszerzając te wektory o dodatkowy wymiar otrzymujemy: m ~ = [u, v, t] T oraz M ~ = [X, Y, Z, 1] T. Według Zhang[] stosując macierz M int, określoną w równaniu (3-11), wektory te można opisać zależnością: sm~ ~ M [ R t] M, (3 37) int gdzie s jest globalnym współczynnikiem skali. W związku z tym, że punkt m ~ odzwierciedla homografię punktu M ~ : ~ sm HM H M r r, t (3 38) ~, dla int 1, gdzie r 1, r, to wartości z pierwszej i drugiej kolumny macierzy rotacji R. Wartość r 3 została pominięta, ponieważ przy wyznaczaniu parametrów kamery przyjmuje się, że badany obiekt (kartka ze wzorem kalibrującym) znajduje się w płaszczyźnie osi Z = 0. Wykorzystując fakt, że wektory r 1, r są ortogonalne, a macierz H=[h 1 h h 3 ] można wyznaczyć równania: h T T 1 1 M int M int h 0 (3 39) h T T 1 T T 1 1 M int M int h1 h M int M int h (3 40) Samą macierz H można wyznaczyć, np. metodą opisaną w poprzednim podrozdziale, po czym można przystąpić do procedury wyznaczenia macierzy M int. 3

33 B M 1 c cv0 u0 Utwórzmy macierz B: T int M 1 int B B B B B B 1 3 B B B c c 1 c( cv0 u0 ) v0 cv 0 u0 c( cv0 u0 ) v0 ( cv0 u0 ) v0 1 (3 41) B jest macierzą symetryczną opisaną sześciowymiarowym wektorem: b B B B B B B T 11, 1,, 13, 3, 33. (3 4) Przyjmując i-tą kolumnę macierzy H jako wektor h T i hi 1, hi, hi 3 (3 43) mamy: T T hi Bh j vij b, (3 44) gdzie v ij =[h i1 h j1,h i1 h j + h i h j1,h i h j,h i3 h j1 + h i1 h j3,h i3 h j + h i h j3,h i3 h j3 ] T. Stosując ograniczenia uzyskane w równaniach (3-39) oraz (3-40), dla danej homografii można stwierdzić, że: v T 1 T ( v11 v) b 0. (3 45) Jeśli zaobserwowano n klatek obrazu powyższe równanie można zapisać: Vb 0, (3 46) Gdzie V jest macierzą o wymiarach n x 6. Jeśli n 3, uzyskujemy unikalne rozwiązanie b, za którego pomocą można wyznaczyć macierz M int. 33

34 3..5 Odzwierciedlenie warunków oświetlenia sceny na obiektach syntetycznych Elementy syntetyczne w aplikacjach AR można podzielić na dwie czasem przenikające się grupy pod względem istoty ich prezentacji: Elementy informacyjne, np. znaczniki miejsc, strzałki, lub opisy tekstowe. Elementy te rozszerzają percepcję obserwatora sceny, jednak w jego świadomości są od niej łatwo rozróżnialne. Elementy, których zadaniem, oprócz przekazywania informacji jest zaistnienie w świadomości użytkownika jako integralna część sceny. Modyfikują one scenę postrzeganą przez użytkownika stając się częścią obserwowanego świata. Im bardziej realistycznie uda nam się wkomponować drugi wymieniony typ elementów w scenę rzeczywistą, tym lepsze będzie uzyskane tzw. user experience, tzn. użytkownik będzie bardziej zadowolony z korzystania z programu. Dlatego też oprócz poprawnego odwzorowania położenia obiektu na scenie warto spróbować odzwierciedlić istotną cechę wpływającą na to, jak sztuczny obiekt komponuje się ze sceną rzeczywistą oświetlenie. Aby tego dokonać, można skorzystać z algorytmu zaproponowanego przez Maisa Alnassera[]. Najpierw zdefiniujmy kluczowe dla prezentowanego algorytmu terminy. Definicje Cubemapa to zbiór sześciu tekstur nałożonych na sześcian będący modelem otoczenia obiektu. Może ona służyć do aproksymacji strumienia światła odbitego od obiektu. W celu wykonania cubemapy, należy wykonać sześć fotografii rzeczywistego otoczenia obiektu z jego pozycji, każda z nich odpowiadać będzie jednej ścianie otaczającego sześcianu. Radiancja jest terminem radiometrycznym określonym jako strumień promieniowania na jednostkę powierzchni na jednostkę kąta bryłowego. W układzie SI jednostką radiacji jest wat na steradian na metr kwadratowy (W sr -1 m - ). Steradian (sr) jednostka uzupełniająca układu SI określająca wartość kąta bryłowego. Jest to kąt bryłowy o wierzchołku w środku kuli, wycinający z powierzchni tej kuli pole równe kwadratowi jej promienia. Rysunek 3-13: Graficzna reprezentacja steradiana 34

35 BRDF dwukierunkowa funkcja rozkładu odbicia. Wyraża stosunek luminacji energetycznej mierzonej w kierunku obserwatora do natężenia napromieniowania badanego z kierunku padania promieniowania. Wartość funkcji BRDF w pełni charakteryzuje własności refleksyjne powierzchni odbijającej. Wielomiany Czebyszewa należą do klasy wielomianów ortogonalnych. Stanowią ortogonalną bazę do aproksymacji funkcji przy użyciu tzw. momentów Czebyszewa. Dyskretne momenty Czebyszewa w przeciwieństwie do momentów ciągłych nie wymagają dyskretyzacji. Radiancja zostanie zamodelowana w oparciu o cubemapę. Wadą tego rozwiązania jest konieczność definiowania takiej cubemapy dla każdego miejsca rzeczywistego w którym dokonujemy syntezy elementów, metoda ta ogranicza nie tylko miejsce, ale również warunki oświetlenia sceny rzeczywistej nie powinny się one znacząco różnić od warunków oświetlenia dla których zostały zrobione zdjęcia nałożone na cubemapę. Użycie cubemapy jako modelu globalnego oświetlenia umożliwia wyliczenie iluminacji w oparciu o obrazy, co mało obciąża sprzęt i zapewnia dokładne odwzorowanie warunków oświetlenia. Radiancja padająca na ekran kamery może być aproksymowana poprzez próbkowanie powierzchni sześcianu w dowolnym kierunku z jego wnętrza. Uzyskane próbki posłużą do konstrukcji oraz aproksymacji funkcji radiancji. Przyjmijmy, że p jest punktem w przestrzeni, natomiast ω i określa kierunek światła padającego na ten punkt, a ω o kierunek światła przez ten punkt odbitego. W tym wypadku radiancja L(p, ω o ) określa moc strumienia wychodzącego z punktu p na steradian w kierunku ω o na powierzchnię płaszczyzny ortogonalnej do tego kierunku. Dla ustalonej dodatniej całkowitej wartości N oraz dla wartości całkowitej i w przedziale [0, N-1], ortonorlmalne dyskretne wielomiany Czebyszewa t n (x) są zdefiniowane wzorem: t n( n1 n x x) (x 1 N) t ( x) t ( ), (3 47) gdzie: n,..., N 1, x 0,..., N 1, n 4n N 1 n, n n 1 N n n 3 N t ( x) N 0 1, oraz ( n 1) 1 n t ( x), 3(x 1 N). n( N 1) 35

36 W rozważanym przypadku jako N można przyjąć rozmiar obrazu jednej ściany, zakładając, że obrazy mają rozmiar NxN. Momenty Czebyszywa wejściowej radiancji wówczas określa się wzorem: L mn s 1 i0 s1 T t ( i) t ( j) L ( i, j), (3 48) j0 m n in gdzie 0 m, n N 1. Należy zauważyć, że L in zależy od wysokości oraz azymutu kątów zmapowanych na wartości całkowite i oraz j. W praktyce jako s przyjmuje się pierwiastek kwadratowy z liczby próbek pobranych w celu aproksymacji funkcji, w opisywanym przypadku ilości próbek pobranych z cubemapy. Można teraz wyliczyć radiancję na podstawie jej momentów Czebyszewa: k 1 k1 L ( i, j) T t ( i) t ( j), (3 49) in i0 j0 L mn m n gdzie k jest pierwiastkiem kwadratowym z liczby wymaganych współczynników. Dla funkcji BRDF równanie momentów Czebyszewa wygląda następująco: k 1 k1 f f ( i, j) T t ( i) t ( j), (3 50) c i0 j0 mn m n gdzie: T f mn s 1 s1 t ( i) t ( j) f ( i, j), (3 51) i0 m j0 n c Po wyliczeniu momentów Czebyszewa, należy wziąć pod uwagę właściwości refleksyjne powierzchni. Przy założeniu, że punkt p nie emituje żadnego światła, równanie globalnej iluminacji dla punktu p wygląda następująco: p N 1 N1 L T m0 n0 L mn T f mn. (3 5) Jak można wywnioskować z powyższego wzoru, wyliczenie luminacji dla dowolnego punktu p sprowadza się do wyliczenia momentów Czebyszewa dla wejściowej radiancji oraz funkcji BRDF. Te momenty mogą zostać wyliczone jednorazowo np. podczas inicjalizacji całego programu i zapisane w pamięci. Przyśpieszy to proces renderingu, ponieważ jedyną wymaganą operacją będzie wyliczenie sumy (3-37) dla każdego insteresującego nas punktu p. 36

37 3.3 Podsumowanie Struktura tego rozdziału odzwierciedla dwa podstawowe etapy, na jakie można podzielić syntezę scen rzeczywistej oraz wirtualnej. Pierwszy etap, to analiza obrazu i ekstrakcja z niego punktów kluczowych. W podrozdziale 3.1 omówiono algorytmy wykorzystywane przy ekstrakcji cech za pomocą metody krawędziowej zastosowanej między innymi w systemie ARTag[8]. Wybór oraz realizacja tych algorytmów decyduje o najważniejszych właściwościach całego systemu. Etap ten jest też najbardziej złożony obliczeniowo wiąże się z kilkuetapowym przetwarzaniem obrazów, dlatego na jego implementację twórcy systemów powinni zwrócić szczególną uwagę. Realizacja drugiego etapu przetwarzania syntezy elementów rzeczywistych oraz wirtualnych wymaga od twórcy algorytmu znajomości podstaw geometrii przestrzennej oraz optyki. Sam proces syntezy sprowadza się do tego samego w każdym z istniejących systemów: położenie elementów wirtualnych jest wyznaczane pomocą odpowiednich macierzy transformacji. Na tym etapie istniejące systemy rozróżnia: Sposób wyznaczenia macierzy parametrów wewnętrznych kamery: o autokalibracja o kalibracja za pomocą obserwacji wzorca o specyfikacja kamery dostarczona przez producenta wykorzystywanie różnych bibliotek do transformacji 3D oraz renderingu dodatkowe funkcjonalności, jak np. ukrywanie markerów sceny rzeczywistej, albo odzwierciedlenie warunków oświetlenia W następnych rozdziałach zostaną zrealizowane oraz przetestowane wybrane metody przetwarzania obrazów służące detekcji markerów. 37

38 Rozdział 4 Istniejące Systemy Rzeczywistości Rozszerzonej W niniejszej pracy porównane zostaną właściwości dwóch systemów detekcji markerów: ARToolKit Plus oraz ALVAR, a w oparciu o algorytmy zastosowane w tych systemach zostanie stworzony autorski system detekcji markerów: ARSharp. Jego właściwości zostaną porównane z pozostałymi dwoma systemami. Istnieje wiele bibliotek programistycznych umożliwiających implementację systemów Rzeczywistości Rozszerzonej, wybrane z nich zostaną omówione w tym rozdzialea. Głównym kryterium wyboru systemu markerów są zadania, jakie są w stanie zrealizować. Markery mogą pełnić rolę etykiet w systemach przemysłowych albo identyfikatorów przesyłek pocztowych. Są też powszechnie używane wśród wiodących systemów Rzeczywistości Rozszerzonej. Przedstawione w tym rozdziale systemy bazują na dwuwymiarowych markerach, które są przedmiotem zainteresowania tej pracy, a ich przykłady zaprezentowano na rysunku 4-1. Zadaniem tych systemów jest wydajna synteza sceny rzeczywistej oraz wirtualnej. Wydajność tych systemów w dużej mierze zależy od wydajności detekcji, dekodowania oraz estymacji pozycji markerów. Rysunek 4-1: Różne typy markerów[6] 38

39 4.1 ARToolKit ARToolKit to jeden z pierwszych dobrze udokumentowanych, otwartoźródłowych systemów Rzeczywistości Rozszerzonej. Został on zaprezentowany w 1999 roku, a prace nad jego rozwojem trwały do maja 007 roku. W systemie ARToolKit algorytm detekcji markerów można podzielić na następujące kroki: Obraz z kamery jest konwertowany do obrazu binarnego (biało czarnego), wartość graniczną między kolorem białym a czarnym wyznacza programista. Na otrzymanym obrazie odnajdywane są grupy połączonych pikseli krawędziowych. Ekstraktowane są kontury każdej z odnalezionych grup, a grupy otoczone przez cztery proste linie stają się potencjalnymi markerami. Na podstawie rogów każdego z potencjalnych markerów zostaje wyliczone dokładne położenie markera. Na tej podstawie wewnętrzny wzór zostaje przetworzony do postaci możliwie bliskiej położeniu prostopadłemu. Otrzymany wzór jest próbkowany jest za pomocą siatki o wymiarach NxN, (zazwyczaj 16x16, albo 3x3). Otrzymana informacja porównywana jest ze wzorem na podstawie wzajemnej korelacji. Jeśli pasuje ona do wzorca, odnaleziono marker. W związku z taką metodą identyfikacji stosowane w tym systemie markery nie muszą być kodowane za pomocą binarnej kratki, mogą przedstawiać np. symbole adekwatne do obiektów 3D nanoszonych na marker. W porównaniu z obecnie dostępnymi systemami AR, ARToolKit jest niedoskonały pod następującymi względami: wysokie prawdopodobieństwo błędnej identyfikacji w związku ze stosowaniem metody korelacji bez możliwości korekcji ewentualnych błędów, konieczność wprowadzania wzorców potencjalnych markerów do programu, konieczność progowania, co może doprowadzić do błędnych wyników przy różnych natężeniach oświetlenia, nawet dla tej samej sceny. W oparciu o zastosowane w systemie ARToolKit rozwiązania powstało wiele nowych doskonalszych systemów, jak np. ARToolKit Plus, który dorównuje współczesnym standardom. 4. ARToolKit Plus Grupa programistów z Uniwersytetu Technologicznego w Graz w Austrii stworzyła w oparciu o ARToolKit bibliotekę ARToolkit Plus[14]. Zachowano w niej wszystkie funkcjonalności związane z detekcją markerów, lecz w celu pozbycia się wad systemu macierzystego, rozszerzono go między innymi o: trzy możliwości kodowania oraz identyfikacji markerów: metoda korelacji, kodowanie binarne (zakres liczb: 51), kodowanie binarne z korekcją błędów BCH (zakres liczb: 4096) 39

40 możliwość stosowania markerów o różne grubości ramki nowy algorytm estymacji pozycji w przestrzeni 3D automatyczne progowanie (metoda adaptacyjna) obsługa nowych formatów obrazu (RGB565, odcienie szarości) nowe API oparte na klasach 4.3 ARTag System ARTag obsługuje dwuwymiarowe markery z kwadratową ramką. Wykrywa on krawędzie nie poprzez progowanie, lecz metodę krawędziową, opisaną w poprzednim rozdziale. Właściwość ta pozwala łatwiej wykryć markery dla różnych warunków oświetlenia. Z obrazu kamery ekstraktowane są wszystkie piksele krawędziowe (próbkowane co określoną ilość pikseli) i to one stanowią zbiór danych przyjmowanych na wejściu algorytmu. Rozwiązanie to zapewnia minimalizację ilości danych wejściowych, przy zachowaniu niewielkiej utraty informacji, nie tylko w przypadku systemów detekcji markerów, co zilustrowano na rysunku 4-. Rysunek 4-: Mapa pikseli krawędziowych obrazu ograniczona ilość danych umożliwia odczytanie podstawowych informacji z obrazu 40

41 Podobnie jak ARToolkit system ARTag odnajduje potencjalne markery poprzez odnalezienie konturu kwadratu. ARTag jest w stanie estymować położenie potencjalnego markera bez informacji o wszystkich jego krawędziach, w związku z czym jest w stanie wykryć częściowo zasłonięte markery. Dodatkowo w celu zwiększenia prawdopodobieństwa odnalezienia lekko rozmytych krawędzi system ten przeprowadza analizę jednego obrazu w trzech rozmiarach: oryginalnym, spróbkowanym do 50% oryginalnej wielkości, oraz spróbkowanym do 5% oryginalnej wielkości. Ostatecznym wynikiem działania algorytmu detekcji są współrzędne czterech rogów kwadratu. Współrzędne te określają homografię markera i na jej podstawie tworzy się siatkę próbkującą w celu analizy informacji zawartej w środkowej części markera. Część ta jest poddawana próbkowaniu w celu odczytania wartości (0, lub 1) dla każdego punktu siatki o wymiarach 6x6. Po odczytaniu wszystkie 36 bitów markera poddawane jest identyfikacji oraz korekcji błędów dla każdej z czterech możliwych orientacji markera. Spośród wszystkich 36 bitów tylko 10 bitów to bity znaczące, w których zakodowany jest numer ID, natomiast pozostałe bity służą do określenia orientacji markera oraz korekcji błędów odczytu. 4.4 ALVAR ALVAR jest komercyjnym zestawem bibliotek służących do tworzenia aplikacji Rzeczywistości Rozszerzonej. Cytując jego producentów, system ten charakteryzują następujące cechy: Dokładna wyznaczanie pozycji markera, Dwa typy kodowania markerów oraz możliwość tworzenia własnych metod kodowania, Odporność na przysłanianie markerów, Możliwość stosowania kilku markerów w celu dokładniejszej estymacji jednej pozy. System ten stosuje binaryzację obrazu w oparciu o automatycznie ustalaną wartość progu, podobnie jak ARToolKit Plus. Jednak w odróżnieniu od niego, obraz w tej bibliotece jest dzielony na regiony, dzięki czemu każdy z nich może przyjąć inną wartość progu. Umożliwia to wykrywanie markerów jednej sceny w różnych warunkach oświetlenia. Oprócz wymienionych powyżej cech, system ten między innymi odostępnia API detekcji bez wykorzystania markerów (markerless tracking), szerokie możliwości renderingu obiektów 3D, ukrywanie markerów oraz narzędzia służące do kalibracji kamery. 4.5 Podsumowanie Najważniejsze cechy zaprezentowanych systemów detekcji markerów zaprezentowano w tabeli 1. biblioteka detekcja krawędzi korekcja błędów detekcji odporność na przysłanianie ARToolKit progowanie nie nie ARToolKitPlus progowanie adaptacyjne tak nie ARTag metoda krawędziowa tak nie ALVAR progowanie adaptacyjne tak tak 41

42 z podziałem na regiony Tabela 1: Zestawienie najważniejszych cech omawianych systemów Oprócz cech zaprezentowanych w tabeli pod uwagę można wziąć dodatkowe funkcje oferowane twórcom programów opierających się na tych bibliotekach. Pod tym względem najlepiej wypada system ALVAR. Progrmista może też chcieć wprowadzić modyfikacje do systemu, w tym wypadku najlepszym możliwym wyborem będzie system ARToolKitPlus. Celem tej pracy jest stworzenie nowego rozwiązania uzupełniającego pewną lukę wśród bibliotek rzeczywistości rozszerzonej: wszystkie z nich napisane są w języku C++. Język C#, chociaż zarządzany, jest w stanie udźwignąć ciężar obliczeń związanych z zaawansowanym przetwarzaniem obrazów. Za jego pomocą zostanie dokonana próba implementacji biblioteki zapewniającej wydajną i odporną na zmienne warunki oświetlenia detekcję krawędzi, korekcję błędów detekcji oraz odpornośc na przysłanianie. 4

43 Rozdział 5 Propozycja konstrukcji systemu Rzeczywistości Rozszerzonej ARSharp W oparciu o rozwiązania zastosowane w wymienionych wcześniej systemach markerów stworzono własną bibliotekę Rzeczywistości Rozszerzonej. System ARSharp został napisany od podstaw w zarządzanym języku programowania C# (C Sharp), stąd też wywodzi się jego nazwa. 5.1 Wprowadzenie Zebrane informacje na temat algorytmów stosowanych w istniejących bibliotekach, pozwoliły wybrać mocne strony każdej z nich i połączyć je w jednym systemie. System został stworzony w oparciu o znane i wypróbowane algorytmy, które w czasie jego wczesnych testów zostały zmodyfikowane oraz usprawnione. Podczas tworzenia biblioteki największy nacisk położono na wydajny i odporny na różnego rodzaju zakłócenia system detekcji oraz identyfikacji markerów. Opisane w poprzednim rozdziale systemy Rzeczywistości Rozszerzonej różnią się od siebie nie tylko pod względem stosowanych w nich algorytmów. Głównym językiem programowania stosowanym w implementacji tych systemów jest C++, który bardzo dobrze sprawdza się w narzędziach służących do przetwarzania obrazów. Fakt ten od strony programisty chcącego napisać aplikację w oparciu o platformę.net wiąże się z koniecznością stosowania wrapperów tych bibliotek. Niedogodności, jakie to za sobą niesie, to ograniczone możliwości ich debugowania, oraz przede wszystkim konieczność sięgania po inne niż Visual Studio narzędzia programistyczne w przypadku potrzeby modyfikacji kodu źródłowego tych bibliotek. Ograniczenia certyfikacyjne aplikacji tworzonych dla systemu Windows Phone 7 nie dopuszczają możliwości korzystania z innych bibliotek niż te napisane na platformie.net, co wyklucza możliwość publikowania aplikacji stworzonych z pomocą tych bibliotek na urządzenia z systemem Windows Phone 7. Systemy opisane wcześniej zwykle korzystają z dodatkowych bibliotek takich jak OpenCV (przetwarzanie obrazów), czy OpenGL (rendering obiektów, transformacje 3D), oferują zależne od nich zestawy narzędzi dodatkowych. Wszystkie z nich posiadają wbudowaną obsługę kalibracji kamery, a np. system ARToolKit Plus wymaga podania ścieżki do pliku z parametrami kamery nawet jeśli nie są one znane, konieczne jest uzupełnienie zawartości tego pliku wartościami domyślnymi. To co odróżnia system ARSharp od 43

44 pozostałych bibliotek, to proste API, które pod wieloma względami pozostawia wolną rękę programiście kalibracja kamery, czy rendering obiektów 3D może zostać zaimplementowany w wybrany przez niego sposób. 5. Konstrukcja algorytmu łączenia scen Detekcja prostych linii, które w dalszych etapach działania algorytmu służą jako bazowe struktury wchodzące w skład markera została zaimplementowana w oparciu o rozwiązania zaproponowane przez J. C. Clarke a[6]. Jego metoda korzysta z filtru Gaussa, operatora Sobela oraz algorytmu RANSAC, które zostały opisane w poprzednich rozdziałach. Pomysł na algorytm detekcji markerów zaczerpnięto z projektu Martina Hizlera[10] Detekcja pikseli krawędziowych Program korzystający z biblioteki ARSharp musi działać w czasie rzeczywistym i być w stanie przetworzyć około 0 klatek o rozdzielczości 640x480 na sekundę, dlatego już w pierwszym etapie działania algorytmu dokonuje się radykalnego ograniczenia ilość danych wejściowych stosując segmentację oraz próbkowanie obrazu. Obraz dzielony jest na kwadratowe obszary (segmentacja), które są potem poddawane dalszemu przetwarzaniu. Wczesne testy aplikacji wykazały, że optymalny rozmiar boku takiego obszaru to od 5 do 40 pikseli. Za wartość domyślną uznano 30 pikseli. Każdy z takich segmentów poddawany jest filtracji Gaussa (macierz [-3, -5, 0, 3, 5]) wzdłuż linii skanujących (ang. scanlines), linie te rozmieszczone są w ostępach pięciu pikseli w pionie oraz poziomie. W systemie ARTag w celu polepszenia wykrywalności struktur o rozmytych krawędziach zastosowano resampling obrazu. W systemie ARSharp zastosowano podobne rozwiązanie: jeśli piksel zostanie uznany za nie leżący na krawędzi poddawany jest on filtracji Gaussa jeszcze raz, z tym, że macierz Gaussa próbkuje co drugi piksel. Test Gaussa w obu przypadkach przeprowadzany jest najpierw dla jednej z 3 składowych koloru (obsługiwany w bibliotece format koloru obrazu to RGB), jeśli test się powiedzie (wartość zwrócona przez filtr będzie większa od wartości progowej, domyślnie równej 500), sprawdzane są dwa pozostałe kolory, ponieważ poszukiwane są czarne markery na białym tle. Na każdym z otrzymanych pikseli krawędziowych wykonywany jest operator Sobela w celu wyliczenia jego orientacji, omówiony w podrozdziale Detekcja prostych linii Po otrzymaniu zestawów pikseli krawędziowych wraz z wyliczonymi wektorami orientacji algorytm przechodzi do następnego kroku - zbudowania za ich pomocą prostych linii. W tym celu wykonywany jest algorytm RANSAC dla każdego z segmentów. Pseudokod omawianej procedury przedstawia Algorytm 1. 44

45 Algorytm 1: Detekcja prostych linii za pomocą algorytmu RANSAC krok 1: Przypisz numer iteracji i = 0 krok : Wybierz w drodze losowania dwa różne piksele krawędziowe, których orientacje są zgodne (różnią się o więcej niż 6 stopni) z orientacją wyznaczonej za ich pomocą linii, posłużą one jako jej model. krok 3: Dla każdego z pozostałych pikseli krawędziowych przeprowadź test: a. Sprawdź czy leży w odległości mniejszej niż 3 piksele od linii, jeśli nie, kontynuuj działanie pętli b. Sprawdź, czy ma zgodną orientację z pikselem startowym, jeśli nie, kontynuuj działanie pętli c. Przypisz piksel krawędziowy do sprawdzanego modelu linii krok 4: Jeśli ilość pikseli w modelu linii >= 6, dodaj linię do zbioru wynikowego lines krok 5: Inkrementuj ilość iteracji i = i + 1 krok 6: Jeśli i < 10 wróć do kroku krok 7: Zwróć zbiór wynikowy lines 5..3 Konstrukcja boków potencjalnych markerów W algorytmie Hizlera[10] otrzymane w wyniku działania algorytmu RANSAC linie są ze sobą łączone na podstawie wzajemnej odległości oraz orientacji. Taki sposób postępowania sprawdza się jedynie wtedy, gdy na ekranie widoczne są markery dużych rozmiarów oraz odstępy między nimi przekraczają rozmiar segmentu. Wczesne testy wykazały, że zastosowanie tego algorytmu posiada istotne mankamenty: 1. Porównywanie linii, ich sortowanie i łączenie w ciągi znacząco wydłuża czas obliczeń.. W przypadku, gdy linie leżące na bokach dwóch równoległych markerów znajdą się w tym samym segmencie, zostaną one potraktowane jako jedna linia, co ilustruje rysunek 5-1. Rysunek 5-1: Błędnie zidentyfikowany brzeg markera 3. Jeżeli krawędź markera przebiega wzdłuż granic segmentów, linie wchodzące w jej skład mogą nie zostać połączone, co ilustruje rysunek

46 Rysunek 5-: Błąd detekcji wynikający z niedostatecznej ilości pikseli krawędziowych w jednym z segmentów W systemie ARSharp zrezygnowano z procedury łączenia za sobą linii. W celu uniknięcia błędu opisanego w punkcie drugim każda linia jest sprawdzana na całej swojej długości pod kątem poprawności orientacji pikseli krawędziowych (dopuszczalne odchylenie to 45 stopni). Sprawdzany jest co czwarty piksel leżący na linii, więc narzut obliczeniowy tej procedury jest niewielki. W następnym kroku linie są wydłużane wzdłuż boków. Algorytm wydłużania linii został zmodyfikowany w celu uzyskania wysokiej niezawodności na zniekształcenia markera: Algorytm : Rozciąganie wykrytych linii wzdłuż boków markera Parametry: slope wektor wyznaczony przez początkowy oraz końcowy punkt linii start, end punkty końcowe linii forward poruszaj się do przodu orientation średnia wektorów orientacji pikseli wchodzących w skład linii step krok, domyślnie krok 1: Dla forward = true przypisz direction = slope, w przeciwnym wypadku direction = -slope krok : Wyznacz aktualną pozycję p = start dla forward = true, lub p = end dla forward = false krok 3: Wyznacz nową pozycję p = p + direction * step; krok 4: Dla trzech sąsiadujących ze sobą pikseli: p, p + orientation, p orientation, wybierz pozycję o najwyższej wartości współczynnika Gaussa i przypisz ją do p. krok 5: Sprawdź, czy dla aktualnego p odchylenie wektora orientacji piksela mieści się w granicach 18 stopniu w stosunku do wektora orientation. Jeśli warunek jest spełniony wróć do kroku 3. krok 6: Dla piksela o pozycji p = p + direction * sprawdź, czy wartość pierwszego z jego kolorów jest większa niż 55. Jeśli tak, to linia wchodzi w skład potencjalnego rogu markera. W związku z tym, że pominięto krok łączenia ze sobą linii, może się zdarzyć tak, że po rozszerzeniu dużo z nich zostanie powielonych. W celu eliminacji powielonych linii przeprowadza się test sprawdzający 46

47 czy pozycje ich początków oraz końców nie są oddalone o odległość mniejszą niż 8 pikseli, jeśli tak, duplikaty zostają usunięte Konstrukcja rogów potencjalnych markerów Na wyjściu poprzedniego kroku algorytmu otrzymano linie, które mogą wchodzić w skład boków markera. Na podstawie linii zostaną zbudowane rogi, które w rzeczywistości są parami linii. W celu ich odnalezienia, dla każdej możliwej pary linii dokonuje się następującego testu: Algorytm 3: Sprawdzenie, czy para linii może należeć do rogu markera krok 1: Jeśli linie mają różne średnie orientacje, przejdź do następnego kroku, w przeciwnym razie zwróć fałsz. krok : Jeśli odległość od końca pierwszej linii do początku drugiej jest mniejsza niż 7 pikseli oraz odległość od końca drugiej linii do początku pierwszej jest większa niż 0, przejdź do następnego kroku. W przeciwnym razie zwróć fałsz. krok 3: Jeśli kąt między orientacjami tych linii jest nieujemny (iloczyn wektorowy orientacji jest większy niż 0) zwróć wartość prawda, w przeciwnym razie zwróć fałsz. W pierwszym kroku sprawdzane jest, czy linie nie są równoległe. Para linii tworząca róg powinna mieć końce położone blisko niego i rozchodzić się od siebie tworząc jego ramiona, co jest sprawdzane w kroku drugim. Poszukujemy ciemnych markerów na białym tle, wektory orientacji linii zawsze skierowane są w kierunku jaśniejszego koloru, dlatego też w kroku trzecim stawiane jest wymaganie co do dodatniej wartości kąta pomiędzy tymi orientacjami Konstrukcja potencjalnych markerów W wyniku działania poprzedniego kroku algorytmu otrzymano pary linii będące rogami. Algorytm odnajdywania markerów sprowadza się do odnalezienia ciągów rogów o wspólnych ramionach oraz odnalezienia ich punktów przecięcia, co zaprezentowano na poniższej ilustracji, gdzie czterema różnymi kolorami oznaczono cztery pary linii wchodzące w skład rogów (Rysunek 5-3). 47

48 Rysunek 5-3: Cztery pary linii tworzące strukturę markera Takie podeście do detekcji markerów niesie za sobą istotną zaletę. Jeśli nie wszystkie cztery rogi zostały wykryte, np. z powodu przysłaniania markera przez inny obiekt, możemy go uzupełnić. W przypadku wykrycia trzech rogów, czwarty może zostać estymowany w miejscu przecięcia się skrajnych końców pierwszego oraz ostatniego z trzech wykrytych rogów. W większości przypadków estymacja ta jest bardzo dokładna. Nawet jeśli tylko dwa rogi zostały wykryte, można spróbować połączyć dwa otwarte końce łańcucha linii, jeśli dobrze odwzorowują one brzegi markera, zostanie on wykryty poprawnie, linia łącząca te końce została zaznaczona na rysunku 5-4 kolorem niebieskim, rysunek 5-5 przedstawia działanie tego algorytmu. Rysunek 5-4: Odnalezienie rogów markera nieokreślonych w zestawie par ich ramion Rysunek 5-5: Działanie detektora - na ostatnim zdjęciu marker nie został poprawnie rozpoznany 48

49 5..6 Identyfikacja markerów Teraz, kiedy wszystkie wyraziste ciemne kwadratowe struktury o jasnym obramowaniu zostały odnalezione, należy podjąć próbę odczytania informacji w nich zawartych. W systemie ARSharp zdecydowano się zastosować markery o kodowaniu binarnym z siatką o rozmiarach 6x6 oraz grubością ramki równej 1/8 grubości całego markera. Cały marker może być więc potraktowany jako siatka 8x8, gdzie pierwsze i ostatnie wiersze i kolumny to jego obramowanie, natomiast w pozostałych zapisany jest kod binarny. Pierwszym etapem odczytania numeru ID jest mapowanie jego zawartości na siatkę o wymiarach 8x8 i możliwie najdokładniejsze odczytanie wartości próbek kolorów w punktach leżących w środku każdego z bitów markera. Problem sprowadza się do transformacji dwuwymiarowego markera na obrazie wideo do postaci przestrzennej oraz odczytania wartości próbek kolorów w kluczowych jego punktach. Rysunek 5-6: Punkt (X,Y) w koordynatach obrazu oraz ten sam punkt w koordynatach przestrzennych (x,y) Algorytm 4: Uzyskanie koordynatów próbki kwadratowego markera krok 1: Wybierz jeden z wierzchołków hipotetycznego markera (w przypadku ARSharp o rozmiarze 8x8), a jego koordynaty przypisz do a krok : Koordynaty pozostałych wierzchołków przypisz odpowiednio do b, c oraz d. krok 3: Wylicz wartości wektorów v = a b oraz w = a d. krok 4: Wylicz wartości r oraz s za pomocą równania (X,Y) = A + rv + sw, dla wybranego punktu wewnątrz markera, odpowiadającego interesującemu nas bitowi. krok 5: Używając wyliczonych w poprzednim kroku wartości r oraz v i korzystając z tego samego równania oblicz wartości koordynatów piksela(x,y) na obrazie kamery odpowiadającego interesującemu nas bitowi. 49

50 W pierwszym i drugim kroku wylicza się współrzędne wierzchołków hipotetycznego markera, jako wierzchołek a można przyjąć punkt (0,0). Dzięki wyliczonym w kroku trzecim wektorom w oraz v każdy punkt wewnątrz markera zarówno w przestrzennym(world), jak i dwuwymiarowym układzie współrzędnych(image) może być opisany równaniem: A + rv + sw, gdzie r oraz s to liczby rzeczywiste znajdujące się w przedziale [0, 1]. W układzie przestrzennym wektory v oraz w zawsze są ortogonalne, natomiast w układzie dwuwymiarowym dzieje się tak wyłączenie przypadku, w którym marker jest położony równolegle do krawędzi obrazu, co w przypadku markerów niesyntetycznych prawie nigdy nie zachodzi. W wyniku działania tego algorytmu otrzymano zbiór koordynatów pikseli odpowiadającym interesującym nas bitom. Należy teraz ustalić próg wartości nasycenia kolorów piksela powyżej którego uznamy go za reprezentujący wartość 1, a poniżej 0. Stała wartość tego progu w początkowych wersjach systemu była przyczyną błędnej identyfikacji markerów odnalezionych w miejscach o wyjątkowo wysokiej lub niskiej luminacji. W związku z tym próg wyznacza wartość średnia wartości maksymalnej oraz minimalnej spośród wszystkich otrzymanych próbek. Otrzymane dwuwymiarowe tablice bitów obracane są 3 razy o 90 stopni, tak aby uzyskać wszystkie możliwe orientacje markera. Każda z takich tablic transformowana jest do jednowymiarowego ciągu i poddawana identyfikacji za pomocą algorytmu opartego o kodowanie BCH[13]. Jeśli dla którejś z czterech orientacji markera udało się odczytać jego ID, wówczas jest ono jemu przypisywane Optymalizacja Segmentacja obrazu w pierwszej fazie działania algorytmu daje możliwość znacznego przyśpieszenia jego działania, co zauważył Hizler[10]. Posiadając informacje o obszarach wszystkich odnalezionych markerów w danej klatce obrazu, można zrezygnować z przetwarzania obrazu w całości w kilku następnych klatkach. Przetwarzane są tylko te segmenty, wewnątrz których marker znajdował się we wcześniejszej klatce przetwarzania. Efektywna metoda przedłużania linii zapewnia możliwość odnalezienia markera nawet wtedy, gdy częściowo wykroczy poza przetwarzane segmenty. W systemie ARSharp ilość klatek w których nie zachodzi przetwarzanie całego obrazu ustawiana jest parametrem, domyślna jego wartość to 5. Na wybór tego parametru składają się dwa czynniki decydującej o wartości, jaką powinien przyjąć: szybkość pobierania klatek przez kamerę zdolność obliczeniowa używanego sprzętu Dysponując kamerą, która pobiera niską ilość klatek na sekundę (np. 10, jak bywa w przypadku niskiej klasy kamer komputerowych), wartość parametru powinna być możliwie niska i nie przekraczać wartości 5. W przeciwnym razie czas pomiędzy pojawieniem się markerów na scenie, a ich wykryciem będzie zauważalny dla użytkownika. W przypadku lepszej kamery, zwracającej około 30 klatek na sekundę, ilość klatek, w których nie zachodzi przetwarzanie całego obrazu nie powinna być niższa niż 5, ponieważ sprzęt nie poradzi sobie z przetworzeniem tak dużej ilości pełnych klatek w ciągu sekundy. 50

51 5.3 Podsumowanie W czasie implementowania algorytmu okazało się, że istniejące algorytmy prezentowane w literaturze są jeszcze niedoskonałe pod wieloma względami. W związku z tym wprowadzono wiele zmian, mających na celu poprawę wydajności oraz zdolności detekcyjnej systemu, dzięki czemu udało się stworzyć w pełni używalny system Rzeczywistości Rozszerzonej. Segmentacja obrazu, która jest konieczna w celu uzyskania zadowalającego czasu obliczeń wprowadza niedogodności związane z koniecznością późniejszego scalania otrzymanych wyników. W połączeniu z niedeterministycznym algorytmem RANSAC końcowe wyniki nie zawsze były jednoznaczne dla tej samej klatki obrazu algorytm nie zawsze zwracał taką samą ilość odnalezionych markerów. Z tego powodu zrezygnowano ze scalania wyników, a niedeterministyczne właściwości algorytmu RANSAC zostały dzięki temu zniwelowane jeśli w którymś z segmentów algorytm nie wykrył istniejącej części krawędzi, to informacja ta została mogła zostać uzupełniona dzięki odnalezieniu jej fragmentu w segmencie sąsiednim. W następnym rozdziale właściwości stworzonego systemu zostaną porównane z innymi istniejącymi systemami Rzeczywistości Rozszerzonej. 51

52 Rozdział 6 Wyniki eksperymentów numerycznych 6.1 Wstęp W ramach testów zostaną porównane trzy systemy Rzeczywistości Rozszerzonej, których zadaniem jest śledzenie oraz identyfikacja kwadratowych markerów: ARToolkit Plus, ALVAR oraz ARSharp. Zdecydowano się na wybór tych właśnie systemów, ponieważ dwa pierwsze z nich są dziś powszechnie używane, reprezentują zarazem różne klasy rozwiązań, natomiast system ARSharp stworzony został w ramach niniejszej pracy. Zostaną one porównane pod względem następujących właściwości: używalności, wydajności oraz niezawodności, które zostały omówione w rodziale.3.. Najpierw zbadany zostanie system ARSharp, określone zostaną parametry optymalne, dla których system działa poprawnie w możliwie jak najszerszym spektrum warunków. Pozostałe dwa systemy również oferują możliwości parametryzacji niektórych cech, jednak w dalszych podrozdziałach zostaną przetestowane dla domyślnych optymalnych wartości, tak samo jak system ARSharp. Biblioteka ARToolkit Plus oferuje wsparcie dla trzech różnych systemów markerów, najlepszym z nich jest system oparty na kodowaniu BCH (siatka 6x6), takie samo kodowanie zostało zaimplementowane w bibliotece ARSharp, co pozwoli na jednoznaczne porównanie właściwości tych dwóch systemów. Parametry sprzętu na którym dokonano testów: - procesor Intel Pentium Dual-Core T400,.00 GHz GB pamięci RAM - kamera Logitech HD Pro Webcam C910 - system operacyjny Windows 7 3-bit 6. Wyznaczenie optymalnych parametrów systemu ARSharp W łańcuchu przetwarzania systemu ARSharp znajdują się algorytmy, których właściwości zależą od dużej liczby parametrów. Zmiana wartości części z tych parametrów nie niesie za sobą dużej zmiany w działaniu całego systemu, parametrom tym przypisano wartości stałe, wyznaczone na podstawie doświadczeń innych badaczy oraz wstępnych testów. Wyróżnione zostały cztery parametry kluczowe, które ustawiane są w głównym panelu aplikacji testowej (Rysunek 6-1). 5

53 Rysunek 6-1: Panel ustawień aplikacji testowej - Segment Size rozmiar segmentu, na które obraz zostaje podzielony w celu wydajnej analizy - RANSAC Iterations ilość iteracji algorytmu RANSAC dla pojedynczego segmentu - Threshold wartość progowa dla funkcji Gaussa - Edgels Required ilość pikseli krawędziowych wymaganych do utworzenia jednej linii Wyznaczanie parametrów działania systemu można ograniczyć do rozwiązania jednego problemu: należy dobrać parametry takie, dla których system będzie działał poprawnie w niedogodnych warunkach, zachowując przy tym niewielki czas obliczeń wymagany do przetworzenia jednej klatki obrazu. Możemy przyjąć, że warunki trudne dla systemu, to analiza niedoświetlonej z jednej strony, a prześwietlonej z drugiej strony tablicy niewielkich markerów. Warunki korzystne to analiza tablicy dwóch dobrze oświetlonych markerów. W ten sposób możemy zaproponować metodę estymacji parametrów optymalnych. Różnorodne warunki oświetlenia na jednej scenie (Rysunek 6-) odzwierciedlają spektrum poprawnego działania algorytmu. Rysunek 6-: Działanie w trudnych warunkach dla dobrze dobranych parametrów W środkowym obszarze sceny ze zdjęcia obserwujemy dogodne warunki oświetlenia markery są łatwo odróżnialne od tła. Dlatego optymalne parametry zostaną wyznaczone w niedogodnych warunkach oświetlenia, po czym działanie algorytmu zostanie sprawdzone na dobrze oświetlonej scenie z dużymi markerami. Wyznaczanie parametrów podzielone zostanie na dwa kroki. W pierwszym dokonana zostanie analiza czasu działania algorytmu, wybrane zostaną parametry dla których czas działania algorytmu jest możliwie najkrótszy. Potem wartości te zostaną poprawione tak, aby niewielkim kosztem (do kilkunastu milisekund) spróbować poprawić ilościową wykrywalność markerów. 53

54 Na podstawie prac ([6],[10]), wybrano zalecane parametry początkowe: Segment size RANSAC iterations Threshold Edgels Required Czas działania algorytmu detekcji w systemie ARSharp w zależności od wartości Threshold Suma Detekcja Sprawdzanie Rozszerzanie Detekcja Identyfikacja Threshold [ms] krawędzi[ms] RANSAC[ms] linii[ms] linii[ms] markerów[ms] markerów[ms] Tabela : Czas przetwarzania poszczególnych części algorytmu [ms] w zależności od wartości Threshold Czas przetwarzania [ms] Detekcja krawędzi RANSAC Sprawdzanie linii Rozszerzanie linii Detekcja markerów Identyfikacja markerów Threshold Wykres 1: Czas przetwarzania poszczególnych części algorytmu [ms] w zależności od wartości Threshold Sam czas przetwarzania nie świadczy o efektywności działania algorytmu, z niskim czasem przetwarzania należy połączyć możliwie dużą ilość wykrytych markerów. 54

55 Ilość wykrytych markerów na scenie z rysunku 6- w systemie ARSharp w zależności od wartości Threshold Threshold Ilość wykrytych markerów Threshold Ilość wykrytych markerów Tabela 3: Ilość wykrytych markerów w zależności od wartości Threshold Ilość wykrytych 4 markerów Threshold Wykres : Ilość wykrytych markerów (całkowita liczba: 4) w zależności od wartości Threshold Wykres 1 pokazuje, że czas detekcji pikseli krawędziowych lekko spada wraz ze wzrostem wartości progowej, różnica między skrajnymi czasami przetwarzania wynosi 9 milisekund. Dla znacznie większej ilości pikseli krawędziowych czas wykonywania pierwszego kroku algorytmu niewiele się powiększył. Świadczy to o tym, że sam proces wyliczania gradientu dla każdego z pikseli krawędziowych nie obciąża bardzo procesora, a większą część tego kroku zajmuje odczytywanie wartości pikseli z obrazu i wyliczanie dla nich wartości funkcji Gaussa. Długość wykonywania algorytmu RANSAC rośnie eksponencjalnie wraz ze zmniejszaniem się wartości progu threshold. To na tą część całego procesu poświęcana jest największa ilość czasu przetwarzania, dlatego w następnym kroku zostanie dobrana odpowiednia, jak najmniej obciążająca procesor ilość iteracji algorytmu RANSAC. Kierując się wykresem. wartość progową ustawiamy na 300 dla wartości większych zaobserwowano spadek ilości wykrytych markerów. 55

56 Aktualne parametry wyglądają następująco: Segment size RANSAC iterations Threshold Edgels Required Czas działania algorytmu RANSAC w systemie ARSharp w zależności od ilości jego iteracji ilość iteracji czas[ms] Tabela 4: Czas wykonywania algorytmu RANSAC w zależności od ilości jego iteracji Czas przetwarzania [ms] RANSAC iterations Wykres 3: Czas wykonywania algorytmu RANSAC w zależności od ilości jego iteracji Czas przetwarzania algorytmu RANSAC rośnie liniowo wraz ze wzrostem ilości jego iteracji. Dla wszystkich wartości uzyskano tą samą ilość wykrytych markerów z wyjątkiem wartości 5, dla której dla niektórych klatek algorytm nie wykrywał pojedynczych markerów. W związku z tym możemy przyjąć, że optymalna ilość tych iteracji wynosi 7 dla segmentu o rozmiarze 5. Ostateczne zestawienie optymalnych parametrów wygląda następująco: Segment size RANSAC iterations Threshold Edgels Required

57 6.3 Porównanie trzech systemów Rzeczywistości Rozszerzonej Metoda badawcza, za pomocą której przetestowane zostaną systemy Rzeczywistości Rozszerzonej zostanie oparta na tej zaproponowanej przez Zhanga[1]. Zbadane zostaną wszystkie kluczowe własności systemów dla różnych warunków ich pracy Wydajność Za miarę wydajności przyjęto czas przetwarzania jednej klatki obrazu. Zhang wyodrębnił następujące parametry decydujące o czasie przetwarzania: rozdzielczość obrazu, rozmiar tablicy markerów (rozpiętość obszaru obejmującego wszystkie markery) oraz ilość markerów. Badania zostały przeprowadzone dla dwóch rozdzielczości obrazu: 640x480px oraz 800x600px, ilość markerów wynosiła 1, 3 oraz 4, badanie wykonano przy dobrych warunkach oświetlenia. Wyniki zaprezentowano w tabeli 1. Rozdzielczość Rozmiar tablicy Ilość markerów ARSharp ARToolkit Plus ALVAR 55x x x x x x x x Tabela 4: Średnie czasy przetwarzania [ms] Czas przetwarzania [ms] ARToolKit Plus ARSharp ALVAR Ilość markerów Wykres 4: Czas detekcji w zależności od ilości markerów w rozdzielczości 640x480 57

58 Czas przetwarzania 10[ms] Ilość markerów ARToolKit Plus ARSharp ALVAR Wykres 5: Czas detekcji w zależności od ilości markerów w rozdzielczości 800x600 Jak wydać na powyższym wykresie, dla większej ilości markerów na scenie system ARSharp nie spisuje się odpowiadnio czas przetwarzania przekraczający 100 ms jest za duży do zastosowania go na obrazie wideo w czasie rzeczywistym. Większa ilość markerów na scenie skutkuje większą ilością krawędzi, a co za ty idzie większą ilośćia pikseli krawędziowych które algorytm musi przetworzyć. Jak pokazano na wykresie 1, czas przetwarzania algorytmu RANSAC rośnie wykładniczo wraz ze wzrostem ilości danych, fakt ten został odzwierciedlony na wykresie Niezawodność Niezawodność określa zdolność systemu do jednoznacznej detekcji i identyfikacji markerów w różnego rodzaju trudnych warunkach. Zhang zaproponował testy dla następujących przypadków: bardzo mały rozmiar markera, duże przestrojenie perspektywy oraz brak ostrości kamery. Oprócz tego zostaną rozważone dodatkowe dwa przypadki: tablica markerów prześwietlona z jednej i nieoświetlona z drugiej strony oraz markery częściowo zasłonięte. Kąt ustawienia kamery W pierwszym teście dokonano analizy średniego granicznego kąta poprawnej detekcji dla 10 markerów o różnych numerach ID. W tym celu zmontowano przedstawiony na poniższym zdjęciu zestaw badawczy: 58

59 Rysunek 6-3: Zestaw służący do wyznaczenia granicznego kąta poprawnej detekcji Badany system ARSharp ARToolKit Plus ALVAR Kąt grariczny Tabela 5: Zestawienie średnich kątów granicznych Rysunek 6-4: Graficzna reprezentacja kąta wykrywalności markera Badanie skuteczności algorytmu w zależności od wielkości markera Test sprawdzający rozpoznawalność markerów o bardzo małym rozmiarze przeprowadzono w następujący sposób: kamerę ustawioną na maksymalną wartość powiększenia skierowano na marker, stopniowo zmniejszając wartość powiększenia zanotowano średnią wartość graniczną (rozmiar markera w pikselach) dla której marker przestawał być rozpoznawalny dla zbioru dziesięciu markerów o różnych numerach ID. Kamera posiada wbudowany autofocus, który w miarę zmniejszania powiększenia 59

Mobilne Aplikacje Multimedialne

Mobilne Aplikacje Multimedialne Mobilne Aplikacje Multimedialne Technologie rozszerzonej rzeczywistości Krzysztof Bruniecki Rozszerzona rzeczywistość W odróżnieniu od rzeczywistości wirtualnej użytkownik NIE jest całkowicie zanurzony

Bardziej szczegółowo

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

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30 Wykład 4 mgr inż. 1/30 Synteza grafiki polega na stworzeniu obrazu w oparciu o jego opis. Synteza obrazu w grafice komputerowej polega na wykorzystaniu algorytmów komputerowych do uzyskania obrazu cyfrowego

Bardziej szczegółowo

Implementacja filtru Canny ego

Implementacja filtru Canny ego ANALIZA I PRZETWARZANIE OBRAZÓW Implementacja filtru Canny ego Autor: Katarzyna Piotrowicz Kraków,2015-06-11 Spis treści 1. Wstęp... 1 2. Implementacja... 2 3. Przykłady... 3 Porównanie wykrytych krawędzi

Bardziej szczegółowo

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych autor: Robert Drab opiekun naukowy: dr inż. Paweł Rotter 1. Wstęp Zagadnienie generowania trójwymiarowego

Bardziej szczegółowo

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych Parametryzacja obrazu na potrzeby algorytmów decyzyjnych Piotr Dalka Wprowadzenie Z reguły nie stosuje się podawania na wejście algorytmów decyzyjnych bezpośrednio wartości pikseli obrazu Obraz jest przekształcany

Bardziej szczegółowo

Metody kodowania wybranych cech biometrycznych na przykładzie wzoru naczyń krwionośnych dłoni i przedramienia. Mgr inż.

Metody kodowania wybranych cech biometrycznych na przykładzie wzoru naczyń krwionośnych dłoni i przedramienia. Mgr inż. Metody kodowania wybranych cech biometrycznych na przykładzie wzoru naczyń krwionośnych dłoni i przedramienia Mgr inż. Dorota Smorawa Plan prezentacji 1. Wprowadzenie do zagadnienia 2. Opis urządzeń badawczych

Bardziej szczegółowo

Animowana grafika 3D. Opracowanie: J. Kęsik.

Animowana grafika 3D. Opracowanie: J. Kęsik. Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl Rzutowanie Równoległe Perspektywiczne Rzutowanie równoległe Rzutowanie równoległe jest powszechnie używane w rysunku technicznym - umożliwienie

Bardziej szczegółowo

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych inż. Marek Duczkowski Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych słowa kluczowe: algorytm gradientowy, optymalizacja, określanie wodnicy W artykule

Bardziej szczegółowo

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

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 7 AiR III 1 Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może

Bardziej szczegółowo

Analiza obrazów - sprawozdanie nr 2

Analiza obrazów - sprawozdanie nr 2 Analiza obrazów - sprawozdanie nr 2 Filtracja obrazów Filtracja obrazu polega na obliczeniu wartości każdego z punktów obrazu na podstawie punktów z jego otoczenia. Każdy sąsiedni piksel ma wagę, która

Bardziej szczegółowo

Spośród licznych filtrów nieliniowych najlepszymi właściwościami odznacza się filtr medianowy prosty i skuteczny.

Spośród licznych filtrów nieliniowych najlepszymi właściwościami odznacza się filtr medianowy prosty i skuteczny. Filtracja nieliniowa może być bardzo skuteczną metodą polepszania jakości obrazów Filtry nieliniowe Filtr medianowy Spośród licznych filtrów nieliniowych najlepszymi właściwościami odznacza się filtr medianowy

Bardziej szczegółowo

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Piotr Dalka Przykładowe algorytmy decyzyjne Sztuczne sieci neuronowe Algorytm k najbliższych sąsiadów Kaskada klasyfikatorów AdaBoost Naiwny

Bardziej szczegółowo

Rzeczywistość rozszerzona w praktyce muzealnej

Rzeczywistość rozszerzona w praktyce muzealnej OPRACOWANIE ZAŁOŻEŃ WYKONANIA INSTALACJI MULTIMEDIALNEJ Muzeum X Pawilonu Rzeczywistość rozszerzona w praktyce muzealnej Opracowanie przedstawia zastosowanie rzeczywistości rozszerzonej (ang. Augmented

Bardziej szczegółowo

i ruchów użytkownika komputera za i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Promotor: dr Adrian Horzyk

i ruchów użytkownika komputera za i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Promotor: dr Adrian Horzyk System śledzenia oczu, twarzy i ruchów użytkownika komputera za pośrednictwem kamery internetowej i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Mirosław ł Słysz Promotor:

Bardziej szczegółowo

Przetwarzanie obrazów rastrowych macierzą konwolucji

Przetwarzanie obrazów rastrowych macierzą konwolucji Przetwarzanie obrazów rastrowych macierzą konwolucji 1 Wstęp Obrazy rastrowe są na ogół reprezentowane w dwuwymiarowych tablicach złożonych z pikseli, reprezentowanych przez liczby określające ich jasność

Bardziej szczegółowo

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy Wykorzystane materiały: Zadanie W dalszej części prezentacji będzie omawiane zagadnienie rozpoznawania twarzy Problem ten można jednak uogólnić

Bardziej szczegółowo

Samochodowy system detekcji i rozpoznawania znaków drogowych. Sensory w budowie maszyn i pojazdów Maciej Śmigielski

Samochodowy system detekcji i rozpoznawania znaków drogowych. Sensory w budowie maszyn i pojazdów Maciej Śmigielski Samochodowy system detekcji i rozpoznawania znaków drogowych Sensory w budowie maszyn i pojazdów Maciej Śmigielski Rozpoznawanie obrazów Rozpoznawaniem obrazów możemy nazwać proces przetwarzania i analizowania

Bardziej szczegółowo

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do 0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do obserwatora f) w kierunku od obserwatora 1. Obrót dookoła osi

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/6 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Manipulowanie przestrzenią 2 Przygotował: mgr inż. Maciej Lasota 1) Manipulowanie przestrzenią Istnieją dwa typy układów współrzędnych:

Bardziej szczegółowo

Podstawy grafiki komputerowej

Podstawy grafiki komputerowej Podstawy grafiki komputerowej Krzysztof Gracki K.Gracki@ii.pw.edu.pl tel. (22) 6605031 Instytut Informatyki Politechniki Warszawskiej 2 Sprawy organizacyjne Krzysztof Gracki k.gracki@ii.pw.edu.pl tel.

Bardziej szczegółowo

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38 Wykład 5 Potok Renderowania Oświetlenie mgr inż. 1/38 Podejście śledzenia promieni (ang. ray tracing) stosuje się w grafice realistycznej. Śledzone są promienie przechodzące przez piksele obrazu wynikowego

Bardziej szczegółowo

Filtracja obrazu operacje kontekstowe

Filtracja obrazu operacje kontekstowe Filtracja obrazu operacje kontekstowe Podział metod filtracji obrazu Metody przestrzenne i częstotliwościowe Metody liniowe i nieliniowe Główne zadania filtracji Usunięcie niepożądanego szumu z obrazu

Bardziej szczegółowo

Temat Zasady projektowania naziemnego pomiaru fotogrametrycznego. 2. Terenowy rozmiar piksela. 3. Plan pomiaru fotogrametrycznego

Temat Zasady projektowania naziemnego pomiaru fotogrametrycznego. 2. Terenowy rozmiar piksela. 3. Plan pomiaru fotogrametrycznego Temat 2 1. Zasady projektowania naziemnego pomiaru fotogrametrycznego 2. Terenowy rozmiar piksela 3. Plan pomiaru fotogrametrycznego Projektowanie Dokładność - specyfikacja techniczna projektu Aparat cyfrowy

Bardziej szczegółowo

Kalibracja kamery. Kalibracja kamery

Kalibracja kamery. Kalibracja kamery Cel kalibracji Celem kalibracji jest wyznaczenie parametrów określających zaleŝności między układem podstawowym a układem związanym z kamerą, które występują łącznie z transformacją perspektywy oraz parametrów

Bardziej szczegółowo

Trójwymiarowa grafika komputerowa rzutowanie

Trójwymiarowa grafika komputerowa rzutowanie Trójwymiarowa grafika komputerowa rzutowanie Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej Rzutowanie w przestrzeni 3D etapy procesu rzutowania określenie rodzaju rzutu określenie

Bardziej szczegółowo

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok Synteza grafiki 3D Pod pojęciem syntezy grafiki rozumiemy stworzenie grafiki

Bardziej szczegółowo

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

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 8 AiR III 1 Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może

Bardziej szczegółowo

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać układu równań liniowych Układ liniowych równań algebraicznych

Bardziej szczegółowo

Metody numeryczne Wykład 4

Metody numeryczne Wykład 4 Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

SYSTEMY PROJEKCJI STEREOSKOPOWEJ W ANIMACJACH KOMPUTEROWYCH. Techniki projekcji Generowanie wizyjnego sygnału stereoskopowego Instalacje mobilne

SYSTEMY PROJEKCJI STEREOSKOPOWEJ W ANIMACJACH KOMPUTEROWYCH. Techniki projekcji Generowanie wizyjnego sygnału stereoskopowego Instalacje mobilne SYSTEMY PROJEKCJI STEREOSKOPOWEJ W ANIMACJACH KOMPUTEROWYCH Techniki projekcji Generowanie wizyjnego sygnału stereoskopowego Instalacje mobilne Projekcja stereoskopowa Zasada działania systemu projekcji

Bardziej szczegółowo

Plan wykładu. Akcelerator 3D Potok graficzny

Plan wykładu. Akcelerator 3D Potok graficzny Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D

Bardziej szczegółowo

Filtracja obrazu operacje kontekstowe

Filtracja obrazu operacje kontekstowe Filtracja obrazu operacje kontekstowe Główne zadania filtracji Usunięcie niepożądanego szumu z obrazu Poprawa ostrości Usunięcie określonych wad obrazu Poprawa obrazu o złej jakości technicznej Rekonstrukcja

Bardziej szczegółowo

Manipulator OOO z systemem wizyjnym

Manipulator OOO z systemem wizyjnym Studenckie Koło Naukowe Robotyki Encoder Wydział Automatyki, Elektroniki i Informatyki Politechnika Śląska Manipulator OOO z systemem wizyjnym Raport z realizacji projektu Daniel Dreszer Kamil Gnacik Paweł

Bardziej szczegółowo

Akademia Górniczo-Hutnicza

Akademia Górniczo-Hutnicza Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Kalibracja systemu wizyjnego z użyciem pakietu Matlab Kraków, 2011 1. Cel kalibracji Cel kalibracji stanowi wyznaczenie parametrów określających

Bardziej szczegółowo

Wykład 4. Rendering (1) Informacje podstawowe

Wykład 4. Rendering (1) Informacje podstawowe Wykład 4. Rendering (1) Informacje podstawowe Z punktu widzenia dzisiejszego programowania gier: Direct3D jest najczęściej wykorzystywanym przez profesjonalnych deweloperów gier API graficznym na platformie

Bardziej szczegółowo

Laboratorium Optyki Falowej

Laboratorium Optyki Falowej Marzec 2019 Laboratorium Optyki Falowej Instrukcja do ćwiczenia pt: Filtracja optyczna Opracował: dr hab. Jan Masajada Tematyka (Zagadnienia, które należy znać przed wykonaniem ćwiczenia): 1. Obraz fourierowski

Bardziej szczegółowo

Rzeczywistość rozszerzona: czujniki do akwizycji obrazów RGB-D. Autor: Olga Głogowska 207 505 AiR II

Rzeczywistość rozszerzona: czujniki do akwizycji obrazów RGB-D. Autor: Olga Głogowska 207 505 AiR II Rzeczywistość rozszerzona: czujniki do akwizycji obrazów RGB-D Autor: Olga Głogowska 207 505 AiR II Czujniki w robotyce coraz większego znaczenia nabierają systemy pomiarowe umożliwiające interakcję robota

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Kinect vs VR, czyli technologie sensoryczne stosowane w konsolach do gier.

Kinect vs VR, czyli technologie sensoryczne stosowane w konsolach do gier. Kinect vs VR, czyli technologie sensoryczne stosowane w konsolach do gier. Miłosz Sułtanowski XBOX Kinect Źródło: https://img1.cgtrader.com/items/729760/29a0dd3746/xbox-360-kinect-3d-model-max-obj-3ds-fbx-dwg-mtl.jpg

Bardziej szczegółowo

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Chcąc osiągnąć realizm renderowanego obrazu, należy rozwiązać problem świetlenia. Barwy, faktury i inne właściwości przedmiotów postrzegamy

Bardziej szczegółowo

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 1 Regresja liniowa autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się z liniowym zadaniem najmniejszych

Bardziej szczegółowo

Rozpoznawanie obrazów

Rozpoznawanie obrazów Rozpoznawanie obrazów Laboratorium Python Zadanie nr 1 Regresja liniowa autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, M. Zięba, J. Kaczmar Cel zadania Celem zadania jest implementacja liniowego zadania

Bardziej szczegółowo

Analiza składowych głównych. Wprowadzenie

Analiza składowych głównych. Wprowadzenie Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących

Bardziej szczegółowo

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka Modelowanie jako sposób opisu rzeczywistości Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka 2015 Wprowadzenie: Modelowanie i symulacja PROBLEM: Podstawowy problem z opisem otaczającej

Bardziej szczegółowo

Przetwarzanie obrazów wykład 4

Przetwarzanie obrazów wykład 4 Przetwarzanie obrazów wykład 4 Adam Wojciechowski Wykład opracowany na podstawie Komputerowa analiza i przetwarzanie obrazów R. Tadeusiewicz, P. Korohoda Filtry nieliniowe Filtry nieliniowe (kombinowane)

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce Metody systemowe i decyzyjne w informatyce Laboratorium JAVA Zadanie nr 2 Rozpoznawanie liter autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się z problemem klasyfikacji

Bardziej szczegółowo

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory GRAFIKA Rodzaje grafiki i odpowiadające im edytory Obraz graficzny w komputerze Może być: utworzony automatycznie przez wybrany program (np. jako wykres w arkuszu kalkulacyjnym) lub urządzenie (np. zdjęcie

Bardziej szczegółowo

Aplikacje Systemów. Nawigacja inercyjna. Gdańsk, 2016

Aplikacje Systemów. Nawigacja inercyjna. Gdańsk, 2016 Aplikacje Systemów Wbudowanych Nawigacja inercyjna Gdańsk, 2016 Klasyfikacja systemów inercyjnych 2 Nawigacja inercyjna Podstawowymi blokami, wchodzącymi w skład systemów nawigacji inercyjnej (INS ang.

Bardziej szczegółowo

Urządzenia techniki komputerowej Identyfikacja i charakteryzowanie urządzeń zewnętrznych komputera. Budowa i zasada działania skanera

Urządzenia techniki komputerowej Identyfikacja i charakteryzowanie urządzeń zewnętrznych komputera. Budowa i zasada działania skanera Urządzenia techniki komputerowej Identyfikacja i charakteryzowanie urządzeń zewnętrznych komputera Budowa i zasada działania skanera Cel zajęć W toku lekcji nauczysz się: budowy i zasad działania skanera

Bardziej szczegółowo

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

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D autorzy: Michał Dajda, Łojek Grzegorz opiekun naukowy: dr inż. Paweł Rotter I. O projekcie. 1. Celem projektu było stworzenie

Bardziej szczegółowo

Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy)

Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy) Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy) klasa 3. PAZDRO Plan jest wykazem wiadomości i umiejętności, jakie powinien mieć uczeń ubiegający się o określone oceny na poszczególnych etapach edukacji

Bardziej szczegółowo

Problematyka budowy skanera 3D doświadczenia własne

Problematyka budowy skanera 3D doświadczenia własne Problematyka budowy skanera 3D doświadczenia własne dr inż. Ireneusz Wróbel ATH Bielsko-Biała, Evatronix S.A. iwrobel@ath.bielsko.pl mgr inż. Paweł Harężlak mgr inż. Michał Bogusz Evatronix S.A. Plan wykładu

Bardziej szczegółowo

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak OpenAI Gym Adam Szczepaniak, Kamil Walkowiak Plan prezentacji Programowanie agentowe Uczenie przez wzmacnianie i problemy związane z rozwojem algorytmów Charakterystyka OpenAI Gym Biblioteka gym Podsumowanie

Bardziej szczegółowo

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak Modelowanie i wstęp do druku 3D Wykład 1 Robert Banasiak Od modelu 3D do wydruku 3D Typowa droga...czasem wyboista... Pomysł!! Modeler 3D Przygotowanie modelu do druku Konfiguracja Programu do drukowania

Bardziej szczegółowo

kod produktu: 1DD042 Monitor ViewSonic VG2235m 779,76 zł 633,95 zł netto

kod produktu: 1DD042 Monitor ViewSonic VG2235m 779,76 zł 633,95 zł netto kod produktu: 1DD042 Monitor ViewSonic VG2235m 779,76 zł 633,95 zł netto OPIS ViewSonic VG2235m to 22-calowy monitor z rozdzielczością 1680 x 1050 i formatem obrazu 16:10. Wyposażono go w szereg rozwiązań

Bardziej szczegółowo

opracował Adam Nowiński

opracował Adam Nowiński opracował Adam Nowiński Projekt Glass, czyli? projekt rozwijany przez firmę Google mający na celu stworzenie okularów rozszerzonej rzeczywistości. Okulary te mają docelowo mieć funkcje standardowego smartfona,

Bardziej szczegółowo

Animowana grafika 3D. Opracowanie: J. Kęsik.

Animowana grafika 3D. Opracowanie: J. Kęsik. Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl Powierzchnia obiektu 3D jest renderowana jako czarna jeżeli nie jest oświetlana żadnym światłem (wyjątkiem są obiekty samoświecące) Oświetlenie

Bardziej szczegółowo

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

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 9 AiR III 1 Na podstawie materiałów autorstwa dra inż. Marka Wnuka. Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania

Bardziej szczegółowo

Grafika komputerowa. Dla DSI II

Grafika komputerowa. Dla DSI II Grafika komputerowa Dla DSI II Rodzaje grafiki Tradycyjny podział grafiki oznacza wyróżnienie jej dwóch rodzajów: grafiki rastrowej oraz wektorowej. Różnica pomiędzy nimi polega na innej interpretacji

Bardziej szczegółowo

Reprezentacja i analiza obszarów

Reprezentacja i analiza obszarów Cechy kształtu Topologiczne Geometryczne spójność liczba otworów liczba Eulera szkielet obwód pole powierzchni środek ciężkości ułożenie przestrzenne momenty wyższych rzędów promienie max-min centryczność

Bardziej szczegółowo

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

Bardziej szczegółowo

Kryteria oceniania z matematyki Klasa III poziom podstawowy

Kryteria oceniania z matematyki Klasa III poziom podstawowy Kryteria oceniania z matematyki Klasa III poziom podstawowy Potęgi Zakres Dopuszczający Dostateczny Dobry Bardzo dobry oblicza potęgi o wykładnikach wymiernych; zna prawa działań na potęgach i potrafi

Bardziej szczegółowo

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a TEMATYKA: Krzywe Bézier a Ćwiczenia nr 7 DEFINICJE: Interpolacja: przybliżanie funkcji za pomocą innej funkcji, zwykle wielomianu, tak aby były sobie równe w zadanych punktach. Poniżej przykład interpolacji

Bardziej szczegółowo

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16 Spis treści Przedmowa.......................... XI Rozdział 1. Pomiar: jednostki miar................. 1 1.1. Wielkości fizyczne i pozafizyczne.................. 1 1.2. Spójne układy miar. Układ SI i jego

Bardziej szczegółowo

Geometria analityczna

Geometria analityczna Geometria analityczna Paweł Mleczko Teoria Informacja (o prostej). postać ogólna prostej: Ax + By + C = 0, A + B 0, postać kanoniczna (kierunkowa) prostej: y = ax + b. Współczynnik a nazywamy współczynnikiem

Bardziej szczegółowo

3. FUNKCJA LINIOWA. gdzie ; ół,.

3. FUNKCJA LINIOWA. gdzie ; ół,. 1 WYKŁAD 3 3. FUNKCJA LINIOWA FUNKCJĄ LINIOWĄ nazywamy funkcję typu : dla, gdzie ; ół,. Załóżmy na początek, że wyraz wolny. Wtedy mamy do czynienia z funkcją typu :.. Wykresem tej funkcji jest prosta

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

SINGLE-IMAGE HIGH-RESOLUTION SATELLITE DATA FOR 3D INFORMATIONEXTRACTION

SINGLE-IMAGE HIGH-RESOLUTION SATELLITE DATA FOR 3D INFORMATIONEXTRACTION SINGLE-IMAGE HIGH-RESOLUTION SATELLITE DATA FOR 3D INFORMATIONEXTRACTION MOŻLIWOŚCI WYDOBYCIA INFORMACJI 3D Z POJEDYNCZYCH WYSOKOROZDZIELCZYCH OBRAZÓW SATELITARNYCH J. Willneff, J. Poon, C. Fraser Przygotował:

Bardziej szczegółowo

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H W O J S K O W A A K A D E M I A T E C H N I C Z N A W Y D Z I A Ł E L E K T R O N I K I Drukować dwustronnie P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H Grupa... Data wykonania

Bardziej szczegółowo

1. Potęgi. Logarytmy. Funkcja wykładnicza

1. Potęgi. Logarytmy. Funkcja wykładnicza 1. Potęgi. Logarytmy. Funkcja wykładnicza Tematyka zajęć: WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY KL. 3 POZIOM PODSTAWOWY Potęga o wykładniku rzeczywistym powtórzenie Funkcja wykładnicza i jej własności

Bardziej szczegółowo

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor S O M SELF-ORGANIZING MAPS Przemysław Szczepańczyk Łukasz Myszor Podstawy teoretyczne Map Samoorganizujących się stworzył prof. Teuvo Kohonen (1982 r.). SOM wywodzi się ze sztucznych sieci neuronowych.

Bardziej szczegółowo

KADD Metoda najmniejszych kwadratów funkcje nieliniowe

KADD Metoda najmniejszych kwadratów funkcje nieliniowe Metoda najmn. kwadr. - funkcje nieliniowe Metoda najmniejszych kwadratów Funkcje nieliniowe Procedura z redukcją kroku iteracji Przykłady zastosowań Dopasowanie funkcji wykładniczej Dopasowanie funkcji

Bardziej szczegółowo

8. Neuron z ciągłą funkcją aktywacji.

8. Neuron z ciągłą funkcją aktywacji. 8. Neuron z ciągłą funkcją aktywacji. W tym ćwiczeniu zapoznamy się z modelem sztucznego neuronu oraz przykładem jego wykorzystania do rozwiązywanie prostego zadania klasyfikacji. Neuron biologiczny i

Bardziej szczegółowo

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH Stereometria jest działem geometrii, którego przedmiotem badań są bryły przestrzenne oraz ich właściwości. WZAJEMNE POŁOŻENIE PROSTYCH W PRZESTRZENI 2 proste

Bardziej szczegółowo

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań TABELA ODNIESIEŃ EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA PROGRAMU KSZTAŁCENIA DO EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA OBSZARU KSZTAŁCENIA I PROFILU STUDIÓW PROGRAM KSZTAŁCENIA: POZIOM KSZTAŁCENIA: PROFIL KSZTAŁCENIA:

Bardziej szczegółowo

AUTOMATYCZNE ROZPOZNAWANIE PUNKTÓW KONTROLNYCH GŁOWY SŁUŻĄCYCH DO 3D MODELOWANIA JEJ ANATOMII I DYNAMIKI

AUTOMATYCZNE ROZPOZNAWANIE PUNKTÓW KONTROLNYCH GŁOWY SŁUŻĄCYCH DO 3D MODELOWANIA JEJ ANATOMII I DYNAMIKI AUTOMATYCZNE ROZPOZNAWANIE PUNKTÓW KONTROLNYCH GŁOWY SŁUŻĄCYCH DO 3D MODELOWANIA JEJ ANATOMII I DYNAMIKI Tomasz Huczek Promotor: dr Adrian Horzyk Cel pracy Zasadniczym celem pracy było stworzenie systemu

Bardziej szczegółowo

Temat ćwiczenia: Zasady stereoskopowego widzenia.

Temat ćwiczenia: Zasady stereoskopowego widzenia. Uniwersytet Rolniczy w Krakowie Wydział Inżynierii Środowiska i Geodezji Katedra Fotogrametrii i Teledetekcji Temat ćwiczenia: Zasady stereoskopowego widzenia. Zagadnienia 1. Widzenie monokularne, binokularne

Bardziej szczegółowo

f = -50 cm ma zdolność skupiającą

f = -50 cm ma zdolność skupiającą 19. KIAKOPIA 1. Wstęp W oku miarowym wymiary struktur oka, ich wzajemne odległości, promienie krzywizn powierzchni załamujących światło oraz wartości współczynników załamania ośrodków, przez które światło

Bardziej szczegółowo

I. Potęgi. Logarytmy. Funkcja wykładnicza.

I. Potęgi. Logarytmy. Funkcja wykładnicza. WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY TRZECIEJ LICEUM OGÓLNOKSZTAŁCĄCEGO ZAKRES PODSTAWOWY I. Potęgi. Logarytmy. Funkcja wykładnicza. dobrą, bardzo - oblicza potęgi o wykładnikach wymiernych; - zna

Bardziej szczegółowo

Laboratorium techniki laserowej Ćwiczenie 2. Badanie profilu wiązki laserowej

Laboratorium techniki laserowej Ćwiczenie 2. Badanie profilu wiązki laserowej Laboratorium techniki laserowej Ćwiczenie 2. Badanie profilu wiązki laserowej 1. Katedra Optoelektroniki i Systemów Elektronicznych, WETI, Politechnika Gdaoska Gdańsk 2006 1. Wstęp Pomiar profilu wiązki

Bardziej szczegółowo

Operacje przetwarzania obrazów monochromatycznych

Operacje przetwarzania obrazów monochromatycznych Operacje przetwarzania obrazów monochromatycznych Obraz pobrany z kamery lub aparatu często wymaga dalszej obróbki. Jej celem jest poprawienie jego jakości lub uzyskaniem na jego podstawie określonych

Bardziej szczegółowo

WYKŁAD 9 METODY ZMIENNEJ METRYKI

WYKŁAD 9 METODY ZMIENNEJ METRYKI WYKŁAD 9 METODY ZMIENNEJ METRYKI Kierunki sprzężone. Metoda Newtona Raphsona daje dobre przybliżenie najlepszego kierunku poszukiwań, lecz jest to okupione znacznym kosztem obliczeniowym zwykle postać

Bardziej szczegółowo

Estymacja wektora stanu w prostym układzie elektroenergetycznym

Estymacja wektora stanu w prostym układzie elektroenergetycznym Zakład Sieci i Systemów Elektroenergetycznych LABORATORIUM INFORMATYCZNE SYSTEMY WSPOMAGANIA DYSPOZYTORÓW Estymacja wektora stanu w prostym układzie elektroenergetycznym Autorzy: dr inż. Zbigniew Zdun

Bardziej szczegółowo

Przetwarzanie obrazów wykład 7. Adam Wojciechowski

Przetwarzanie obrazów wykład 7. Adam Wojciechowski Przetwarzanie obrazów wykład 7 Adam Wojciechowski Przekształcenia morfologiczne Przekształcenia podobne do filtrów, z tym że element obrazu nie jest modyfikowany zawsze lecz tylko jeśli spełniony jest

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z MATEMATYKI 2016/2017 (zakres podstawowy) klasa 3abc

WYMAGANIA EDUKACYJNE Z MATEMATYKI 2016/2017 (zakres podstawowy) klasa 3abc WYMAGANIA EDUKACYJNE Z MATEMATYKI 2016/2017 (zakres podstawowy) klasa 3abc 1, Ciągi zna definicję ciągu (ciągu liczbowego); potrafi wyznaczyć dowolny wyraz ciągu liczbowego określonego wzorem ogólnym;

Bardziej szczegółowo

Przewodnik po soczewkach

Przewodnik po soczewkach Przewodnik po soczewkach 1. Wchodzimy w program Corel Draw 11 następnie klikamy Plik /Nowy => Nowy Rysunek. Następnie wchodzi w Okno/Okno dokowane /Teczka podręczna/ Przeglądaj/i wybieramy plik w którym

Bardziej szczegółowo

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat BIBLIOTEKA PROGRAMU R - BIOPS Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat Biblioteka biops zawiera funkcje do analizy i przetwarzania obrazów. Operacje geometryczne (obrót, przesunięcie,

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Metody numeryczne I Równania nieliniowe

Metody numeryczne I Równania nieliniowe Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem

Bardziej szczegółowo

Piotr Targowski i Bernard Ziętek WYZNACZANIE MACIERZY [ABCD] UKŁADU OPTYCZNEGO

Piotr Targowski i Bernard Ziętek WYZNACZANIE MACIERZY [ABCD] UKŁADU OPTYCZNEGO Instytut Fizyki Uniwersytet Mikołaja Kopernika Piotr Targowski i Bernard Ziętek Pracownia Optoelektroniki Specjalność: Fizyka Medyczna WYZNAZANIE MAIERZY [ABD] UKŁADU OPTYZNEGO Zadanie II Zakład Optoelektroniki

Bardziej szczegółowo

Propozycje rozwiązań zadań otwartych z próbnej matury rozszerzonej przygotowanej przez OPERON.

Propozycje rozwiązań zadań otwartych z próbnej matury rozszerzonej przygotowanej przez OPERON. Propozycje rozwiązań zadań otwartych z próbnej matury rozszerzonej przygotowanej przez OPERON. Zadanie 6. Dane są punkty A=(5; 2); B=(1; -3); C=(-2; -8). Oblicz odległość punktu A od prostej l przechodzącej

Bardziej szczegółowo

Dokąd on zmierza? Przemieszczenie i prędkość jako wektory

Dokąd on zmierza? Przemieszczenie i prędkość jako wektory A: 1 OK Muszę to powtórzyć... Potrzebuję pomocy Dokąd on zmierza? Przemieszczenie i prędkość jako wektory Łódź żegluje po morzu... Płynie z szybkością 10 węzłów (węzeł to 1 mila morska na godzinę czyli

Bardziej szczegółowo

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

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 12 AiR III 1 Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może

Bardziej szczegółowo

Akwizycja obrazów. Zagadnienia wstępne

Akwizycja obrazów. Zagadnienia wstępne Akwizycja obrazów. Zagadnienia wstępne Wykorzystane materiały: R. Tadeusiewicz, P. Korohoda, Komputerowa analiza i przetwarzanie obrazów, Wyd. FPT, Kraków, 1997 A. Przelaskowski, Techniki Multimedialne,

Bardziej szczegółowo

Akademia Górniczo-Hutnicza

Akademia Górniczo-Hutnicza Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Kalibracja stereowizyjnego systemu wizyjnego z użyciem pakietu Matlab Kraków, 2011 1. System stereowizyjny Stereowizja jest działem szeroko

Bardziej szczegółowo

Praca kontrolna z matematyki nr 1 Liceum Ogólnokształcące dla Dorosłych Semestr 5 Rok szkolny 2014/2015

Praca kontrolna z matematyki nr 1 Liceum Ogólnokształcące dla Dorosłych Semestr 5 Rok szkolny 2014/2015 Praca kontrolna z matematyki nr 1 Liceum Ogólnokształcące dla Dorosłych Semestr 5 Rok szkolny 2014/2015 2 6 + 3 1. Oblicz 3. 3 x 1 3x 2. Rozwiąż nierówność > x. 2 3 3. Funkcja f przyporządkowuje każdej

Bardziej szczegółowo

Przekształcenia punktowe

Przekształcenia punktowe Przekształcenia punktowe Przekształcenia punktowe realizowane sa w taki sposób, że wymagane operacje wykonuje sie na poszczególnych pojedynczych punktach źródłowego obrazu, otrzymujac w efekcie pojedyncze

Bardziej szczegółowo

OKREŚLANIE WSPÓŁRZĘDNYCH KĄTOWYCH CELU PRZY UŻYCIU GŁOWICY WIZYJNEJ RAKIETY

OKREŚLANIE WSPÓŁRZĘDNYCH KĄTOWYCH CELU PRZY UŻYCIU GŁOWICY WIZYJNEJ RAKIETY Prof. WAT dr hab. inż. Jan PIETRASIEŃSKI Mgr inż. Kamil DZIĘGIELEWSKI Wojskowa Akademia Techniczna OKREŚLANIE WSPÓŁRZĘDNYCH KĄTOWYCH CELU PRZY UŻYCIU GŁOWICY WIZYJNEJ RAKIETY Streszczenie: W referacie

Bardziej szczegółowo