• Nie Znaleziono Wyników

System sterowania optycznego z wykorzystaniem elementów AR

N/A
N/A
Protected

Academic year: 2021

Share "System sterowania optycznego z wykorzystaniem elementów AR"

Copied!
18
0
0

Pełen tekst

(1)

System sterowania optycznego

z wykorzystaniem elementów AR

Tomasz PAŁYS, Krzysztof MURAWSKI, Artur ARCIUCH

Instytut Teleinformatyki i Automatyki WAT,

ul. Gen. W. Urbanowicza 2, 00-908 Warszawa 46 tomasz.palys{krzysztof.murawski}{artur.arciuch}@wat.edu.pl

STRESZCZENIE: W artykule zaproponowano metodę kodowania wiązki lasera, którą zastosowano do sterowania systemem rzeczywistości rozszerzonej. Eksperymenty wykonano stosując laser czerwony emitujący falę o długości  = 650 nm i mocy P = 3 mW. Celem badań było sprawdzenie opracowanych metod modulacji i demodulacji kodowanego sygnału laserowego oraz zbadanie wpływu parametrów, takich jak: czas trwania impulsu lasera, rozdzielczość obrazu pozyskiwanego z kamery, liczba rejestrowanych klatek na sekundę na wynik demodulacji sygnału optycznego. Uzyskane wyniki pokazały, że proponowana metoda kodowania zapewnia transmisję niezbędnej liczby informacji w pojedynczej wiązce lasera (nie mniej niż 36 symboli przy skuteczności dekodowania wynoszącej 99,9%). Opracowany sposób kodowania umożliwia, na podstawie analizy sekwencji obrazów wideo, oddziaływanie na przebieg symulacji realizowanej w rzeczywistości rozszerzonej, w tym również rozróżnienie graczy i podejmowanych przez nich akcji. Jest to istotny postęp względem systemów interakcji stosowanych do wpływania na rzeczywistość rozszerzoną.

SŁOWA KLUCZOWE: sterowanie optyczne, rozszerzona rzeczywistość [AR], rozszerzona maszyna stanów [EFSM]

1. Wprowadzenie

Oddziaływanie na system rzeczywistości rozszerzonej AR może odbywać się przy użyciu różnych typów urządzeń [1], [2], [3]. Polega ono na wywołaniu celowych i planowanych wcześniej możliwych zachowań systemu, które dla „gracza” tworzą wrażenie interakcji [4]. Kluczową rolę, w tak rozumianej komunikacji, odgrywa system kodowania i dekodowania informacji [5]. Do ważniejszych jego parametrów zalicza się maksymalną długość alfabetu zakodowanych symboli oraz czas realizacji operacji kodowania i dekodowania

(2)

transmitowanej informacji. W rozważanym przypadku dane przeznaczone do zakodowania pozyskiwane są od użytkownika. Powstają one w wyniku oddziaływania na niego przez wzorce lub obiekty prezentowane na obrazie, które wymuszają na użytkowniku określone zachowanie. Zachowanie to rozpoznaje i analizuje system AR. W tym celu stosuje się markery [6], [7], sensory typu 9 DOF [8] lub układ kamer w tym kamery 3D [9], [10].

W systemie rzeczywistości rozszerzonej opartym na znacznikach gracz „obklejany” jest markerami, a następnie obserwowany przez układ optyczny składający się z wielu kamer. Podobny efekt uzyskuje się, gdy do obrazowania ruchu gracza używa się sensory typu 9 DOF, które pokazano na rysunku 1. Pozycję i aktywność gracza wyznacza się wówczas na podstawie danych odbieranych z akcelerometrów, żyroskopów oraz magnetometrów [11]. W rozwiązaniu pokazanym na rysunku pierwszym do określenia pozycji i ruchu gracza użyto 14 czujników. W innych konstrukcjach ruch wyznacza się stosując na przykład metody, które wyznaczają lokalne mapy głębi [12]. Na ich podstawie dokonuje się syntezy informacji i identyfikacji wybranych zachowań gracza [13].

Rys. 1. Widok gracza i widok obrazu gracza na ekranie monitora [14]

Komercyjny system AR, który użyto w badaniach, został wzbogacony o autorski układ sterowania, którego głównymi elementami są: kamera wideo - odbiornik, dekoder sygnału - urządzenie mikroprocesorowe, makieta broni strzeleckiej - manipulator wraz z urządzeniem kodującym. W nadajniku, do

(3)

kodowania wiązki lasera, użyto opracowaną metodę kodowania wykorzystującą zbocza sygnału: narastające i opadające. Odbicie wiązki lasera od ekranu (tarczy) obserwuje kamera wideo. Atrakcyjność sugerowanego podejścia wynika z możliwości oddziaływania na AR nawet, gdy odległość między ekranem i graczem dochodzi do 600 m lub więcej – zależnie od parametrów układu optycznego kamery.

Opracowana metoda kodowania eliminuje problemy wskazane jako zasadnicze w artykule [15]. Metoda kodowania przedstawiona w [15] wzorowana była na wykorzystaniu protokołu transmisji danych realizowanej w standardzie RS-232.

2. Środowisko sprzętowe

Modulację wiązki światła lasera realizuje koder pokazany na rysunku 2. Głównym elementem kodera jest mikrokontroler AT89s8253 taktowany z częstotliwością f = 22,1184 MHz. Koder realizuje algorytm kodowania sygnału omówiony w rozdziale 4. Wynik działania algorytmu w postaci ciągu sygnałów logicznych (wartości binarnych) wyprowadzany jest szeregowo na końcówki mikrokontrolera (wskazane podczas konfiguracji) – P1.2 lub P1.3. Końcówki te w przypadku podania „jedynki” logicznej dołączają zasilanie do układu diod laserowych (niewidocznych na rysunku 2).

(4)

Opracowana wersja układu i oprogramowania stwarza możliwość jednoczesnego sterowania dwóch wiązek lasera. Dodatkowo mogą być one kluczowane sygnałem binarnym lub falą prostokątną generowaną przez mikrokontroler na końcówce P1.0. Własność tę wykorzystano na przykład w pracy [16] do sterowania jasnością oświetlacza pracującego w zakresie bliskiej podczerwieni. Aktywowanie końcówek P1.2 lub P1.3 następuje po identyfikacji opadającego zbocza sygnału na końcówce P3.2 mikrokontrolera (JP1). W prezentowanym układzie przycisk dołączony do złącza JP1 wyprowadzono dla użytkownika. Podobnie, w celu umożliwienia ręcznej oraz zdalnej konfiguracji pracy układu, wyprowadzono przycisk dołączony do złącza JP2 oraz złącze komunikacyjne pracujące w standardzie RS-485. Podanie sygnału wysokiego na linię P0.4 (w wyniku zwarcia kontaktów złącza JP2) wprowadza układ w stan konfiguracji. Wówczas przycisk dołączony do złącza JP1 służy do wyboru identyfikatora gracza w systemie komputerowym. Wybór sygnalizowany jest użytkownikowi przy użyciu diody LED dołączonej do końcówki mikrokontrolera P1.1 i zapisywany w pamięci nieulotnej EEPROM.

Opisywane czynności mogą zostać również wykonane z poziomu programu nadrzędnego po podłączeniu układu kodera do komputera typu IBM PC. Widok układu kodującego zaprezentowano na rysunku 3a, a jego umiejscowienie na makiecie broni strzeleckiej pokazano na rysunku 3b.

3. Stanowisko badawcze

Badanie technik kodowania i dekodowania wiązki lasera wykonano w kontrolowanych warunkach laboratoryjnych. Eksperyment przeprowadzono wykorzystując kamerę firmy Allied Vision typ Manta G-201 wyposażoną w obiektyw o ogniskowej F = 8 mm i filtr pasmowo-przepustowy. Modulacji podlegała wiązka lasera wytwarzana przez moduł laserowy o mocy P  3 mW emitujący wiązkę o długości fali  = 650 nm.

Stanowisko laboratoryjne opracowano wykorzystując dostępny komercyjnie system rzeczywistości rozszerzonej Virtual Battlespace 3 (VBS3), który uzupełniono o autorski system kodowania (rysunek 3) oraz dekodowania wiązki lasera. Oprogramowanie VBS3 wykorzystano do generowania scenariuszy, w ramach których system AR oddziaływał na użytkownika.

Przykładową scenę pokazano na rysunku 4a. Generowany obraz przekazywano do multimedialnego serwera Delta 2208 firmy 7th Sense. Serwer rozdzielał obraz pomiędzy trzy projektory, które wyświetlały go w rozdzielczości 1920  1200 pikseli. W eksperymencie użyto projektory ProjectionDesign F35 AS3D WUXGA oraz ekran w kształcie półsfery o wymiarach 12 m  3 m, przedstawiony na rysunku 4b. Użytkownik znajdował się w odległości ok. 3 m

(5)

od powierzchni ekranu. Podczas badań gracz wyposażony został w makietę broni strzeleckiej krótkiej, Smith & Wesson Springfield, którą uzupełniono o system kodowania pokazany na rysunku 3a. Zadaniem gracza było oddanie strzału w ściśle określonych sytuacjach, wymuszanych przez system AR. Strzały te były obserwowane przez kamerę, a następnie dekodowane w czasie rzeczywistym.

a)

b)

Rys. 3. Moduł kodujący sygnał lasera (a), widok zamontowanego urządzenia (b) [14]

4. Metoda kodowania sygnału optycznego

Metoda kodowania sygnału laserowego została przebadana dla N=36 kodowanych symboli. Domyślnym stanem modułu laserowego jest stan „wyłączony”, co objawia się brakiem plamki lasera na ekranie, a tym samym na obrazie. Jednocześnie przyjęto czas emisji pojedynczego bitu ramki kodowej TW, format ramki [BS, B1, …, BP+1, BE, BC], gdzie BS – bit startu, BE – bit stopu,

BC - bit końca ramki, Bk – bit kodu dla 1 ≤ k ≤ P+1. Parametr P jest zależny od

(6)

bity ramki kodowej formuje końcówka P1.2, która odpowiada za włączenie i wyłączenie modułu laserowego. Bit startu i bit stopu mają zawsze wartość jeden. Bit BC zawsze przyjmuje wartość zero. Odpowiada to przejściu ze stanu emisji kolejnych bitów ramki, do wyłączenia modułu laserowego. W badaniach dotyczących systemu kodowania sprawdzono wpływ czasu emisji bitu TW na skuteczność dekodowania nadawanych symboli. Wyznaczono też zależność określającą wymagany czas emisji bitu TW w funkcji częstotliwości obrazów pozyskiwanych z kamery.

a)

b)

Rys. 4. Środowisko rzeczywistości rozszerzonej: przykładowy kadr (a), układ wizualizacji wraz z ekranem w kształcie półsfery (b) [14]

Zasadę kodowania ramki przedstawia rysunek 5. Trzydzieści sześć symboli, N = 36, rozmieszczono na ośmiu poziomach od p=0 do p=7. Na poziomie p=0, umieszczono osiem symboli. Każdy wyższy poziom zawiera

(7)

o jeden symbol mniej. Na ostatnim poziomie p = P – 1 umieszczono tylko jeden symbol. Każdemu symbolowi, oddzielnie dla każdego poziomu, przypisano numer porządkowy m. Kodowany symbol można wówczas zapisać w postaci

K = m + 0,5p (2P + 1 – p), gdzie 0 ≤ p < P = 8. Szerokość impulsu jest

uzależniona od parametru m oraz p, a czas przerwy pomiędzy impulsami nie zmienia się i wynosi TW. Przykład kodowania symbolu z poziomu p = 4 (pierwszy od dołu) oraz symbolu z poziomu l = 0 (drugi od dołu) przedstawia rysunek 5. W przykładzie czas TW był równy 0,025 s.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 m=1 m=2 m=3 m=4 m=5 m=6 m=7 m=8 p=0 p=1 p=2 p=3 p=4 p=5 p=6 p=7 0 0.025 0.05 0.075 0.1 0.125 0.15 0.175 0.2 0.225 0.25 0.275 0.3 t0 t1 t2 t3 t4 t5 BT=1 B1 B2 B3 B4 B5 B6 B7 B8 B9 BP=1 BE=0

Rys. 5. Schemat kodowania symboli i ramka kodowa dla symbolu 30

Kodowanie parametru v odbywa się przez przypisanie w ramce kodowej bitom od B1 do Bm-1 wartości jeden, a bitowi Bm wartości zero. Jeżeli symbol znajduje się na poziomie zerowym to bitom od Bm+1 do BP+1 przypisuje się wartość jeden. W przeciwnym wypadku bitom od Bm+1 do Bp+l nadawana jest wartość jeden, a bitowi Bm+p+1 wartość zero, co odpowiada zakodowaniu parametru p. Pozostałym bitom kodowym nadawana jest wartość jeden. W obu przypadkach bit stopu zawsze przyjmuje wartość jeden, a ramkę kończy bit końca ramki BE = 0. Podanie zera logicznego na końcówkę P1.2 mikrokontrolera

(8)

wyłącza moduł laserowy. Przykład kodowania symboli 5, 11 i 23 przedstawia rysunek 6. Uwzględniając, wartości bitów startu i stopu, które są zawsze równe jeden, można zauważyć, że szerokość pierwszego generowanego impulsu wynosi pTW. Dla symboli z poziomu p = 0 szerokość drugiego impulsu jest równa (P + 2 – m)TW, a dla pozostałych poziomów pTW. Trzeci impuls jest generowany tylko dla symboli z poziomów 0 < p < P. Jego szerokość jest równa (P + 1 – m – p)TW. 0 0.025 0.05 0.075 0.1 0.125 0.15 0.175 0.2 0.225 0.25 0.275 a) b) c) 0.3 BT=1 B1=1 B2=1 B3=1 B4=1 B5=0 B6=1 B7=1 B8=1 B9=1 BP=1 BE=0 BT=1 B1=1 B2=1 B3=0 B4=1 B5=0 B6=1 B7=1 B8=1 B9=1 BP=1 BE=0 BT=1 B1=1 B2=0 B3=1 B4=1 B5=1 B6=0 B7=1 B8=1 B9=1 BP=1 BE=0

Rys. 6 Przykład kodowania: a) symbol 5 (m = 5; p = 0); b) symbol 11 (m = 3, p = 1); c) symbol 23 (m = 2; p = 3)

5. Metoda dekodowania sygnału optycznego

Dekodowanie symbolu optycznego realizowane jest na podstawie analizy sekwencji obrazów pozyskanych z kamery. W pierwszej kolejności wyznaczana jest funkcja aktywacji modułu laserowego u(t). Dekodowanie symbolu odbywa się przy zastosowaniu rozszerzonej skończonej maszyny stanów.

Wyznaczenie wartości funkcji aktywacji

Ze względu na zastosowanie pasmowo-przepustowego filtru optycznego, do dalszej analizy wykorzystywana jest tylko składowa czerwona R obrazu.

W przypadku użycia kamery monochromatycznej analizowana jest składowa luminancji. W obliczeniach reprezentowana jest ona w postaci macierzy R. Na podstawie wartości elementów macierzy R wyznaczana jest wartość funkcji aktywacji modułu laserowego u(t) w dyskretnych chwilach czasu nTS, n  N. Pseudokod właściwy dla algorytmu wyznaczania wartości

(9)

u(t) przedstawia rysunek 7. W pierwszej kolejności dokonywana jest

maksymalizacja kontrastu składowej koloru czerwonego. Następnie, dla macierzy R, wyznaczana jest macierz odchyleń względnych od średniej E, której wartości elementów wyznacza się ze wzoru:

= −

gdzie: rij – element macierzy R o współrzędnych i oraz j uzyskany w wyniku operacji maksymalizacji kontrastu,

i, j – odpowiednio numer wiersza i kolumny macierzy R,

ravg – wartość średnia macierzy R (składowej koloru czerwonego obrazu po wykonaniu operacji maksymalizacji kontrastu),

rmax – maksymalna wartość składowej R obrazu uzyskana po operacji maksymalizacji kontrastu obrazu.

W przypadku badania, na obrazie, obserwowana jest co najwyżej jedna plamka lasera. Plamkę tę wyznacza się na podstawie wartości macierzy E. Gdy maksymalna wartość elementu macierzy E przekracza wartość zadanego progu

h, to uznaje się, że laser jest włączony. Wówczas funkcja aktywacji u(t)

przyjmuje wartość jeden, zero w przeciwnym wypadku. Wykres maksymalnej wartości odchylenia względnego od średniej w funkcji czasu zarejestrowany dla symbolu K = 24 i czasu TW = 0,025 s przedstawia rysunek 8. Wykrycie plamki lasera, wymusza wyznaczenie macierzy B, którą uzyskuje się w trakcie binaryzacji macierzy E. Binaryzację realizuje się zgodnie ze wzorem bij = {255, dla eij > h; 0, dla eij ≤ h), gdzie h – zadany próg binaryzacji. Wynikiem binaryzacji są obszary w macierzy B (plamy), z których największa określa położenie wskazu lasera. Dla niej oblicza się momenty zwykłe M00, M01, M10

i środek ciężkości. UstawPróg(h); while (isRunning) Opóźnij(Ts); ramka = DajOstatniąRamkę(); R=MaksymalizujKonrast(ramka.R); E=(R-Średnia(R))/Maksimum(R); if (Maksimum(E)>h) B = WykonajBinaryzację(E,h); M = WyznaczNajwiększyObszar(B); DetekcjaPlamki(ramka.znacznikCzasu,1,M10/M00,M01/M00); else DetekcjaPlamki(ramka.znacznikCzasu,0,0,0);

(10)

Rys. 8. Maksymalna wartość odchylenia względnego od średniej w funkcji czasu dla K = 24 i TW = 0.025 s [14]

Rozszerzona maszyna stanów

Dekodowanie symbolu realizuje rozszerzona skończona maszyna stanów

EFSM. Na wejście EFSM podawana jest macierz G o strukturze [T, x, y], gdzie T

– szerokość impulsu, x i y – współrzędne plamki lasera. W przyjętym rozwiązaniu macierz G reprezentuje pojedynczy impuls wyodrębniony z funkcji aktywacji modułu laserowego u(t). Zgodnie z założeniami przyjętymi w punkcie IV każdy symbol kodowany jest przez kilka impulsów, dwa lub trzy – zależnie od poziomu p. Stąd na podstawie stanu s i wyznaczanych macierzy G wskazywane są symbole Ki  {, K1,…, Kn,…, KN}, gdzie  oznacza „brak symbolu”, K1, …, KN reprezentują zdekodowane symbole, a N określa dopuszczalną liczbę dekodowanych symboli.

Rozszerzona skończona maszyna stanów została zdefiniowana jako 6 elementowy zbiór uporządkowany EFSM = (S, s0, V, I, K, A). Poszczególne

symbole oznaczają: S – zbiór stanów EFSM; s0 – stan początkowy; V – zbiór

zmiennych EFSM; I – macierz impulsów opisanych w postaci G; K – zbiór możliwych symboli generowanych przez EFSM; A – zbiór dozwolonych przejść między stanami EFSM. Diagram stanów oraz elementy zbioru A przedstawia rysunek 9.

(11)

a0:(–,–,–,m:=0p:=0TE:=0,,s0)

a1:(s0,I=[T,x,y],0<x(T)≤P,m:=x(T)TE:=czas,,s1)

a2:(s1,I=[T,x,y],l(T)≤Px(czas-TE)=1,p:=x(T)TE:=czas,,s2)

a3:(s2,I=[T,x,y],l(T)=P+1x(czas-TE)=1,TE:=czas,K:=g(),s3)

a4:(s1,I=[T,x,y],l(T)=P+2x(czas-TE)=1,TE:=czas,K:=g(),s3)

a5:(s1,–,l(czas-TE)+2>P,m:=0TE:=0,,s0) a6:(s2,–,l(czas-TE)+1>P,m:=0p:=0TE:=0,,s0) a7:(s3,–,–,m=0p=0TE:=0,,s0) gdzie: x(t)=round(t/TW) l(t)=f(t)+m+p g()=m+0.5p(2P+1-p) I O s0 s1 s2 s3 a1 a2 a3 a4 a5 a6 a7 a0

Rys. 9. Rozszerzona maszyna stanów (EFSM)

Zbiór stanów S maszyny EFSM zdefiniowano jako {s0, s1, s2, s3}. Stan s1 reprezentuje pozycję symbolu K wyznaczoną w ramach poziomu kodowania, a s2 określa poziom, na którym znajduje się symbol. Stan s3 utożsamiany jest z wyłączeniem modułu laserowego, a s0 jest stanem początkowym EFSM. Zbiór

zmiennych maszyny V zdefiniowano jako {p, m, TE, czas, X, Y}, gdzie zmienne

p i m wskazują parametry symbolu K, zmienna TE określa czas pojawienia się na wejściu macierzy G, czas wskazuje czas jaki upłynął od pojawienia się na wejściu macierzy G, a X i Y oznaczają współrzędne plamki lasera wyznaczone dla pierwszego impulsu. Zbiór A zdefiniowany jako {ak: (s, I, strażnik, a, K, s’)}, oznacza, że jeżeli EFSM znajduje się w stanie s, a na wejściu I pojawi się macierz [T, x, y], to przejście do stanu s’ jest możliwe pod warunkiem, że wyrażenie logiczne strażnik jest prawdziwe. Tylko w tym przypadku na wyjściu

EFSM wyznaczony zostanie poszukiwany symbol Ki. Wyjście maszyny ze stanu początkowego s0 oznacza postawienie hipotezy H0 o detekcji symbolu.

W kolejnych chwilach czasu, jeżeli nie zostaną spełnione ograniczenia czasowe, maszyna samoczynnie powraca do stanu s0, co jest równoznaczne z odrzuceniem

(12)

hipotezy H0. Przyjęcie hipotezy H0, odbywa się tylko i wyłącznie w chwili

przejścia maszyny do stanu s3. Wtedy i tylko wtedy na wyjściu wskazywany jest

symbol Ki, co oznacza jego rozpoznanie. Określenie symbolu wyjściowego odbywa się na podstawie zmiennych m i p. W pozostałych przypadkach na wyjście EFSM podawany jest element .

6. Wyniki badań

Eksperyment przeprowadzono dla zbioru testowego zawierającego N = 36 symboli, K  {Kn: n = 1,…,N}. Każdy symbol zakodowano techniką omówioną w rozdziale 4. W ten sposób uzyskano kody, których poszczególne bity sterują modułem laserowym („1” – ON, „0” – OFF). Test polegał na X = 100 krotnym nadaniu zbioru testowego. Łącznie nadano i zdekodowano 3600 symboli. Eksperyment podzielono na dwie części. W pierwszej określono wpływ czasu

TW, na skuteczność detekcji symboli K. Badanie przeprowadzono dla trzech rozdzielczości kamery: 640  480, 800  600 i 1024  768 pikseli. W każdym badaniu czas trwania bitu TW był zmieniany i przyjmował wartości z zakresu od 0,025 s do 0,055 s z krokiem równym 0,001 s. Dla każdej próby wyznaczono skuteczność detekcji nadanego symbolu oraz średnią skuteczność detekcji symboli należących do zbioru testowego. Uzyskane wyniki poddano aproksymacji wykładniczej, której wynik pokazano na rysunku 10.

Dla rozdzielczości 640  480 pikseli obrazy pozyskiwano średnio co 0,015 s (FPS = 66,66 Hz). Dla TW wynoszącego 0,030 s osiągnięto skuteczność detekcji nie gorszą niż 90%. Skuteczność detekcji symboli na poziomie 100% osiągnięto, gdy obrazy pozyskiwano co 0,036 s (FPS = 27,77 Hz). Porównywalne zależności uzyskano dla rozdzielczości: 800  600 pikseli i 1024  768 pikseli. W drugiej części badań użyto miniaturową, szybką kamerę typu OptiTrack 120 Slim, przeznaczoną do zastosowań typu motion capture. Kamerę wyposażono w obiektyw o ogniskowej F = 16 mm oraz filtr pasmowo-przepustowy o 0 = 650 nm i  = ± 10 nm. Badania przeprowadzono

dla rozdzielczości 640 x 480 pikseli i liczbie pozyskiwanych klatek wynoszącej

FPS = 120 Hz, (rysunek 11).

Drugą część eksperymentu podzielono na dwa etapy. W pierwszej kolejności potwierdzono, że czasTW ma podobny wpływ na skuteczność detekcji symboli, jak miało to miejsce w pierwszej części eksperymentu. Badania przeprowadzano zmieniając czas trwania bitu TW od 0,014 s do 0,030 s z krokiem 0,001 s. W tym przypadku, dla czasu TW większego niż 0,025 s, uzyskano skuteczność dekodowania nadawanych symboli wynoszącą powyżej 99%. Uzyskane wyniki przedstawia rysunek 12.

(13)

Rys. 10. Skuteczność detekcji w funkcji czasu trwania bitu TW i badanych

rozdzielczości obrazu [14]

Rys. 11. Skuteczność detekcji w funkcji czasu trwania bitu TW

(14)

Rys. 12. Detekcja symbolu K24, TW = 0,025 s, rozdzielczość obrazu 640 x480 pikseli

W drugim etapie sprawdzono skuteczność rozpoznawania symboli dla TW wynoszącego 0,024 s i 0,025 s. Dla TW = 0,024 s uzyskano skuteczność rozpoznawania symboli nie gorszą niż 91,67%, Wyniki szczegółowe zawarto w tabeli 1 i 2. Najniższą skuteczność wynoszącą 67% uzyskano dla symbolu K12.

Skuteczność wynoszącą 100% uzyskano dla symboli: K1, K2, K3, K7, K8, K9, K14, K15, K16, K21, K24, K34, K36. Żaden symbol nie został błędnie rozpoznany.

W trzystu przypadkach nastąpiło opuszczenie stanu s0 jednak, z uwagi na

niespełnienie ograniczeń czasowych, nie wyznaczono symbolu. Dla TW większych od 0,025 s uzyskano skuteczność detekcji wynoszącą powyżej 99%.

7. Podsumowanie

Artykuł przedstawia metodę kodowania i dekodowania sygnału laserowego opracowaną w celu sterowania systemem rzeczywistości rozszerzonej. Cechy charakterystyczne opracowanej metody kodowania to: stały czas emisji ramki kodowej, pojedyncza lub dwukrotna, przerwa między impulsami, silne ograniczenia czasowe na szerokość impulsów i przerw pomiędzy nimi. Stały czas emisji ramki, równy (3 + P)TW, pozwolił ograniczyć liczbę błędnych detekcji nadawanego symbolu. Przyjęte ograniczenia na szerokość impulsu zmniejszają liczbę błędów II rodzaju, ale wymuszają zastosowanie kamer cechujących się stałym czasem pozyskiwania obrazów.

O d c h y l e n i e w z g l ę d n e o d ś r e d n i e j t0 = 0 . 0 0 0 t1 = 0 . 1 0 0 t2 = 0 . 1 3 3 t3 = 0 . 2 2 5 t4 = 0 . 2 5 9 t5 = 0 . 2 7 5

(15)

Tab. 1. Zbiorcze wyniki detekcji symboli dla TW = 0,024s i obrazu

o rozdzielczości 640  480 pikseli

Liczba symboli testowych 3 600

Liczba detekcji 3 300

Liczba nierozpoznanych symboli 300

Skuteczność 91,67%

Tab. 2. Szczegółowe wyniki detekcji badanych symboli

Symbol Liczba symboli w zbiorze testowym Liczba poprawnych detekcji Skuteczność dekodowania [%] K1 100 100 100 K2 100 100 100 K3 100 100 100 K4 100 80 80 K5 100 83 83 K6 100 86 86 K7 100 100 100 K8 100 100 100 K9 100 100 100 K10 100 99 99 K11 100 96 96 K12 100 67 67 K13 100 94 94 K14 100 100 100 K15 100 100 100 K16 100 100 100 K17 100 96 96 K18 100 91 91 K19 100 77 77 K20 100 97 97 K21 100 100 100 K22 100 93 93 K23 100 84 84

(16)

Symbol Liczba symboli w zbiorze testowym Liczba poprawnych detekcji Skuteczność dekodowania [%] K24 100 100 100 K25 100 81 81 K26 100 92 92 K27 100 69 69 K28 100 86 86 K29 100 82 82 K30 100 74 74 K31 100 93 93 K32 100 90 90 K33 100 92 92 K34 100 100 100 K35 100 98 98 K36 100 100 100

Wykazano, że stosując proponowaną metodę możliwe jest rozróżnienie komend zakodowanych w wiązce lasera, ze skutecznością wynoszącą 99,9%. Stosując kamery o parametrach zbliżonych do użytych modeli, czas trwania bitu TW nie powinien być krótszy niż 3TS, gdzie TS – interwał między dwoma pozyskiwanymi ramkami obrazu.

Algorytm kodowania sygnału laserowego z powodzeniem może być implementowany w systemie wbudowanym. W wykonanej implementacji algorytm kodowania wymagał 57,1 bajtów pamięci danych (pamięć adresowana bajtowo i bitowo) oraz 3 664 bajtów pamięci programu.

Literatura

[1] OLSEN D. R., NIELSEN T., Laser pointer interaction. [In] Proceedings of the SIGCHI conference on Human factors in computing systems, 2001, pp. 17-22, https://doi.org/10.1145/365024.365030.

[2] VOGT F., WONG J., FELS S., CAVENS D., Tracking Multiple Laser Pointers for Large Screen Interaction. Extended Abstracts of ACM UIST 2003, 2003, pp. 95-96.

(17)

[3] SOETEDJO A., NURCAHYO E., Developing of Low Cost Vision-Based Shooting Range Simulator. [In] IJCSNS International Journal of Computer Science and Network Security, vol. 11, no. 2, 2011, pp. 109-113.

[4] EBRAHIMPOUR-KOMLEH H., TEKIYEHBAND M., Design of an interactive whiteboard system using computer vision techniques. Proceedings of 6th International Symposium on Mechatronics and its Applications 2009 (ISMA '09), 2009, pp. 423-426.

[5] WANG J.-T.,SHYI C.-N.,THOU.-W. ,FONG C. P. , Design and Implementation of Augmented Reality System Collaborating with QR Code. Computer Symposium (ICS), 2010 International, 2010, pp. 414-418,

https://doi.org/10.1109/COMPSYM.2010.5685477.

[6] UKIDA H.,KAJI S.,TANIMOTO Y.,YAMAMOTO H. , Human Motion Capture System Using Color Markers and Silhouette. Instrumentation and Measurement Technology Conference, IMTC 2006, Proceedings of the IEEE, 2006, pp. 151-156, https://doi.org/10.1109/IMTC.2006.328334.

[7] SMERAGLIUOLOA A.,HILLC N.,DISLAD L.,PUTRINO D., Validation of the Leap Motion Controller using markered motion capture technology. Journal of Biomechanics, Vol. 49, No. 9, 2016, pp. 1742-1750,

http://doi.org/10.1016/j.jbiomech.2016.04.006.

[8] BARCZEWSKA K.,DROZD A., Comparison of methods for hand gesture recognition based on Dynamic Time Warping algorithm. [In] Proceedings of the 2013 Federated Conference on Computer Science and Information Systems, 2013, pp. 207-210.

[9] LEBIEDŹ J.,SZWOCH M., Virtual Sightseeing in Immersive 3D Visualization Lab. [In] Proceedings of the 2016 Federated Conference on Computer Science and Information Systems, M. Ganzha, L. Maciaszek, M. Paprzycki (eds). ACSIS, Vol. 8, 2016, pp. 1641-1645, http://dx.doi.org/10.15439/2016F227.

[10] BOTHE T.,GESIERICH A.,LI W.,KOPYLOW C.,KOPP N.,JUPTNER W., 3D-Camera for Scene Capturing and Augmented Reality Applications. 3DTV Conference, 2007, pp. 1-4, https://doi.org/10.1109/3DTV.2007.4379469.

[11] PAŁYS T.,ŻORSKI W., Enhanced movement tracking with Kinect supported by high-precision sensors. [In] Proceedings of the 2015 Federated Conference on Computer Science and Information Systems, M. Ganzha, L. Maciaszek, M. Paprzycki (eds). ACSIS, Vol. 5, 2015, pp. 883-888,

http://dx.doi.org/10.15439/2015F166.

[12] MURAWSKI K.,ARCIUCH A.,PUSTELNY T., Studying the influence of object size on the range of distance measurement in the new Depth From Defocus method. [In] Proceedings of the 2016 Federated Conference on Computer Science and Information Systems, M. Ganzha, L. Maciaszek, M. Paprzycki (eds). ACSIS, Vol. 8, 2016, pp. 817-822, http://dx.doi.org/10.15439/2016F136.

(18)

[13] KIM N. W.,LEE H., Developing of vision-based virtual combat simulator. [In] Proceedings of International Conference on IT Convergence and Security (ICITCS), Macao, China, 2013, pp. 1-4.

[14] PAŁYS T.,ARCIUCH A.,WALCZAK A.,MURAWSKI K.,Method of laser beam coding for control systems. Proceedings SPIE 10455, 12th Conference on Integrated

Optics: Sensors, Sensing Structures, and Methods, 2017, pp. 104550A-1-104550A-4, http://dx.doi.org/10.1117/12.2280805.

[15] GKDESIGN ENGINEERING: RS-232 Laser Transceiver. Electronics Australia, 1997, pp. 56-61.

[16] MURAWSKI K.,RÓŻYCKI R.,MURAWSKI P.,MATYJA A.,REKAS M., An Infrared Sensor for Monitoring Meibomian Gland Dysfunction”. Acta Physica Polonica A, Vol. 124, No 3, 2013, pp. 517-520,

http://dx.doi.org/10.12693/APhysPolA.124.517.

Optical driving for computer system with augmented reality features

ABSTRACT The paper proposes a laser beam encoding method that is used to control an augmented reality system. Experiments were performed using a red laser emitting a wavelength of λ = 650 nm with power of P = 3 mW. The purpose of the study was to investigate methods of modulation and demodulation of the encoded laser signal, and to examine the influence of parameters such as: laser pulse duration, camera image resolution, the number of recorded frames per second on the demodulation result of the optical signal.

Obtained results show that the proposed coding method provides the transmission of the necessary information in a single laser beam (no less than 36 codes with a decoding efficiency of 99.9%). The developed coding method enables, based on the sequence analysis of video images, the influence on the course of the simulation performed in augmented reality, including distinguishing players and actions taken by them. This is an important advancement in relation to interaction systems used to influence augmented reality.

KEYWORDS: optical driving, augmented reality [AR], extended finite state machine [EFSM]

Cytaty

Powiązane dokumenty

Przykładowa konfiguracja systemu z wykorzystaniem modułu USBHostSlave składa się ze złącza USB, układu warstwy fizycznej UWF, modułu USBHostSlave oraz bloku

Dodatkowo Narodowy program zwalczania chorób nowotworowych (jeœli pragnie siê utrzymaæ tê nazwê) powinien mieæ zrównowa¿one finansowanie dotycz¹ce nowotworów krwi.

Bezprzewodowy czujnik temperatury “Sensor” może mierzyć temperaturę otoczenia gdy nie jest to możliwe przy użyciu głowicy.. Może być zastosowany w dużych przestrzeniach

D la oszacow ania pew ności działania system u lub urządzenia sterow ania ruchem kolejow ym korzysta się z pojęć: bezpieczności i niezaw odności.... Przez kom puter

U kład sterow ania dokonuje program ow ego zatrzym ania, blokady kolejnego rozruchu oraz sygnalizuje w ystąpienie aw arii. D la tej grupy aw arii sterow nik w ym aga

Charakterystyczna postać równań dynamiki z wyszczególnieniem członu liniowego, nieliniowego oraz niepewnego Jest wyprowadzona dla modelu robota planarnego o dwóch

W pierwszej kolejności wymaga się więc, by suma czasów operacji nie przekraczała czasu cyklu linii, a operacje równoczesne były wykonywane w tym samym

S.yg~er; Ko-nnuisrowe^o Sterowania... System Komputerowego