Jak działają gesty 3D

Feb 10 2012
Przed graficznym interfejsem użytkownika potrzebowaliśmy poleceń tekstowych do obsługi naszych komputerów. Ale może nie minąć dużo czasu, zanim będziemy mogli wykonywać naszą pracę, gestykulując rękoma. Jakie narzędzia to umożliwiają?
Kamera ZCam firmy 3DV System była wrażliwym na ruch poprzednikiem dzisiejszej technologii systemu gestów 3D.

Jak przedefiniujesz interfejs użytkownika? Jakie kroki musisz podjąć, aby zmienić sposób interakcji ludzi z technologią? To nie tylko kwestia opracowania odpowiednich narzędzi. Musisz także wziąć pod uwagę sposób, w jaki ludzie chcą korzystać z gadżetów. Najbardziej zaawansowany technologicznie interfejs nic nie znaczy, jeśli po prostu nie czujesz się dobrze, gdy zabierasz go na przejażdżkę.

Ale wkraczamy w erę, w której musimy ponownie przyjrzeć się interfejsom użytkownika. Każdego roku komputery pojawiają się w coraz większej liczbie gadżetów i aplikacji. W ciągu dekady nawet najbardziej podstawowe urządzenie może pomieścić rodzaj komputera. Wraz z rosnącym naciskiem na wideo 3D, nowy sposób wykorzystania tego trzeciego wymiaru wymaga innowacyjnego podejścia.

System gestów 3D to jeden ze sposobów sprostania temu wyzwaniu. Na najbardziej podstawowym poziomie system gestów 3D interpretuje ruchy w przestrzeni fizycznej jako polecenia. Zastosowania takiej technologii obejmują całe spektrum komputerów, od gier wideo po zarządzanie danymi. Jednak stworzenie działającego systemu gestów 3D wiąże się z wieloma wyzwaniami.

Kilku inżynierów próbowało stworzyć systemy, które mogą interpretować nasze ruchy jako polecenia komputerowe. Ale jakie rodzaje zastosowań umożliwią te systemy? A jakie rodzaje komponentów są potrzebne do złożenia systemu gestów 3D?

Zawartość
  1. Wymiary systemu gestów 3D
  2. Wykrywanie i projekcja
  3. Iść głębiej
  4. Mały lekki gest
  5. Poza obiektywem
  6. Notka autora

Wymiary systemu gestów 3D

Xbox Kinect wykorzystuje światło podczerwone do wyświetlania siatki przed kamerą — czujniki mierzą siatkę podczas jej deformacji i rejestrują dane jako ruch.

Części systemu gestów 3D można podzielić na dwie główne kategorie: sprzęt i oprogramowanie. Razem te elementy interpretują twoje ruchy i przekładają je na polecenia. Możesz strzelać do zombie w grze wideo, poruszać się po menu, szukając kolejnego hitu do obejrzenia w wieczór filmowy, a nawet zająć się kolejną wspaniałą amerykańską powieścią, po prostu się przemieszczając.

Po stronie sprzętu będziesz potrzebować systemu kamer , komputera i wyświetlacza. System kamer może mieć wbudowane dodatkowe elementy do wykrywania głębi — często używa się projektora na podczerwień i czujnika podczerwieni. Komputer pobiera dane zebrane przez kamerę i czujniki, analizuje liczby i wyświetla obraz na wyświetlaczu, dzięki czemu można zobaczyć wyniki. Wyświetlacz przedstawia dane w sposób, który pozwala ocenić, jak daleko musisz się przesunąć, aby manipulować tym, co się dzieje.

Po stronie oprogramowania będziesz potrzebować aplikacji, które faktycznie przekształcają informacje zebrane przez oprogramowanie w sensowne wyniki. Nie każdy ruch stanie się poleceniem – czasami możesz wykonać przypadkowy ruch, który komputer myli z instrukcją. Aby zapobiec niezamierzonym poleceniom, oprogramowanie gestów 3D ma algorytmy korekcji błędów .

Po co martwić się korekcją błędów? Gest może wymagać spełnienia progu pewności, zanim oprogramowanie zarejestruje go jako polecenie. W przeciwnym razie korzystanie z systemu może być ćwiczeniem frustracji. Wyobraź sobie, że pracujesz nad ważnym trójwymiarowym rysunkiem, poruszając rękoma, aby zmienić jego rozmiar i kształt. Nagle kichasz, a delikatna praca, którą wykonałeś do tej pory, zostaje zrujnowana, ponieważ twoje mimowolne działania powodują dramatyczne zniekształcenie rysunku.

Algorytmy korekcji błędów wymagają, aby Twoje działania pasowały do ​​wcześniej przypisanych gestów z pewnym poziomem pewności, zanim akcja zostanie wykonana. Jeśli oprogramowanie wykryje, że Twoje ruchy nie spełniają wymaganego poziomu pewności, może je zignorować i nie przełożyć ich na polecenia. Oznacza to również, że konieczne może być wykonanie gestu w bardzo specyficzny sposób, zanim system go rozpozna.

Niektóre polecenia mogą nie być tak czułe jak inne. Miałyby one znacznie niższy próg ufności. Na przykład przeskakiwanie między obrazami poprzez przesuwanie dłoni w lewo lub w prawo nie jest tak naprawdę poleceniem o znaczeniu krytycznym. Przy niższych wymaganiach dotyczących ufności system będzie łatwiej akceptował polecenia.

Wykrywanie i projekcja

Rozpoznawanie gestów to tylko część pracy oprogramowania. Musi również współpracować z aplikacjami, aby wykonywane gesty przekładały się na znaczące działania na ekranie. W przypadku niektórych aplikacji jest to całkiem proste. Przeglądanie albumu zdjęć może polegać tylko na kilku gestach, aby poruszać się po zdjęciach i powiększać lub pomniejszać widoki. Każdy z tych gestów może być dość prosty.

Ale inne programy mogą wymagać większej różnorodności złożonych gestów. Załóżmy, że właśnie wróciłeś do domu z najnowszą wersją „Extreme Table Tennis Pro Elite” i jesteś gotowy, aby sprawdzić swoje umiejętności w walce z najtrudniejszymi przeciwnikami komputerowymi, aby kiedykolwiek podnieść wiosło. Wrzucasz swoją grę do systemu konsoli, który ma komponent gestów 3D i podnosisz własne wiosło. Co się potem dzieje?

System analizuje scenę przed nim. Wykrywa obecność wiosła w dłoni. Gdy gra się rozpoczyna, obserwujesz ekran i czekasz, aż przeciwnik zwolni się z woleja na zagrywkę. Gdy cyfrowa piłka krzyczy w twoim kierunku, system gestów 3D określa, gdzie piłka naprawdę poszłaby w kontekście twojej fizycznej przestrzeni, gdyby była rzeczywistym obiektem stałym.

Wykonujesz swój ruch, przygotowując nikczemny powrót z szaloną rotacją wsteczną. Teraz system 3D musi przeanalizować twoją reakcję, wykreślić ją w stosunku do toru lotu piłki i określić, czy nawiązałeś kontakt, czy całkowicie go wyczułeś. Zakładając, że twoje niesamowite umiejętności w tenisie stołowym cię nie zawiodły, skutecznie uderzasz piłkę. Teraz system musi określić, gdzie poleci piłka cyfrowa na podstawie twoich rzeczywistych ruchów fizycznych. Oprogramowanie wyświetla tor lotu, a piłka podąża za nim.

Niektóre gry mogą nie zawierać fizycznego rekwizytu. Twoje postępy w grze będą całkowicie zależeć od ruchów, które wykonujesz swoim ciałem. Zadaniem systemu jest upewnienie się, że podejmowane przez Ciebie działania wpływają na postęp w grze. A wszystkie te działania należy uwzględnić w samej grze. To wielka robota! Dlatego niektóre aplikacje wymagają określonego ruchu, aby skalibrować system przed rozpoczęciem.

Iść głębiej

Typowy aparat rejestruje świat jako dwuwymiarowy obraz. Pojedynczy obiektyw kieruje światło na czujnik, a urządzenie rejestrujące przechwytuje dane. Chociaż możemy wywnioskować, jak daleko lub blisko znajduje się obiekt od kamery na podstawie jego rozmiaru, tak naprawdę nie możemy rozróżnić trójwymiarowego obrazu z dwuwymiarowego systemu kamer.

To ograniczenie stwarza problem z interfejsami opartymi na gestach. Jeśli staniesz przed normalnym aparatem i wymachujesz rękami, aparat może uchwycić ruch w poziomie i pionie. Komputer z odpowiednim oprogramowaniem może być w stanie zinterpretować te ruchy jako polecenia. Ale co, jeśli zbliżysz ręce do aparatu? System 2D nie może zinterpretować tych ruchów. A systemy 2D mogą mieć trudności z odróżnieniem użytkownika od tła.

Jak więc nauczyć kamerę widzenia w trzech wymiarach? Jednym ze sposobów jest dodanie drugiej kamery – nazywa się to systemem kamer stereo . Każda kamera rejestruje obrazy w tej samej przestrzeni fizycznej. Strumienie danych z dwóch kamer trafiają do jednego komputera, który porównuje obrazy i na podstawie uzyskanych informacji wyciąga wnioski dotyczące głębokości. Dwie kamery nie muszą znajdować się obok siebie - możesz ustawić jedną, aby patrzeć na pomieszczenie, a druga może być ustawiona tak, aby patrzyła na podłogę z sufitu.

W pewnym sensie naśladuje to, jak ludzie postrzegają głębię. Zwykle oceniamy, jak daleko coś jest od nas, na podstawie kilku wskazówek wizualnych. Jeden z nich pochodzi z paralaksy . Odnosi się to do tego, jak oba oczy postrzegają tę samą scenę pod nieco różnymi kątami. Gdybyś miał narysować proste linie od oczu do obiektu w polu widzenia, zobaczyłbyś, że te dwie linie zbiegają się. Nasze mózgi łączą informacje z naszych oczu, aby stworzyć obraz w naszych umysłach.

Gotcha!

Filmowcy wykorzystali ograniczenia kamer 2D do tworzenia efektów specjalnych. Na przykład wymuszona perspektywa może sprawić, że obiekt będzie wydawał się większy lub mniejszy niż jest w rzeczywistości, umieszczając go w odpowiedniej odległości od kamery. Kilka ujęć z serii „Władca Pierścieni” wykorzystało ten efekt, aby hobbici wydawali się istotami wielkości kufla w świecie wielkości człowieka.

Mały lekki gest

Co porusza się z prędkością 299 792 458 metrów na sekundę w próżni? Nie, to nie króliczek kurzu. Jest lekki . Może się to wydawać ciekawostką, ale prędkość światła przydaje się, gdy budujesz system gestów 3D, szczególnie jeśli jest to aranżacja czasu lotu.

Ten rodzaj systemu gestów 3D łączy czujnik głębokości i projektor z kamerą. Projektor emituje światło w postaci impulsów – zazwyczaj jest to światło podczerwone, które jest poza spektrum światła widzialnego dla ludzi. Czujnik wykrywa światło podczerwone odbite od wszystkiego przed projektorem. Zegar mierzy, ile czasu zajmuje opuszczenie projektora przez światło, odbicie obiektów i powrót do czujnika. Gdy obiekty się poruszają, czas potrzebny do przebycia światła będzie się zmieniać, a komputer interpretuje dane jako ruchy i polecenia.

Wyobraź sobie, że grasz w tenisową grę wideo za pomocą systemu gestów 3D. Stoisz w gotowości, czekając na podanie od swojego wysoko rozstawionego przeciwnika komputerowego. System gestów 3D odnotowuje Twoje położenie w stosunku do otoczenia — światło podczerwone pada na Ciebie i odbija się z powrotem do czujnika, przekazując komputerowi wszystkie dane potrzebne do poznania Twojej pozycji.

Twój przeciwnik podaje piłkę, a ty ruszasz w ruch, machając ręką do przodu, aby przechwycić piłkę. W tym czasie projektor emituje impulsy światła podczerwonego miliony razy na sekundę. Gdy Twoja ręka oddala się od kamery , a następnie zbliża się do niej , czas potrzebny na dotarcie światła podczerwonego do czujnika zmienia się. Zmiany te są interpretowane przez oprogramowanie komputera jako ruch i dalej interpretowane jako polecenia gry wideo. Twoja reprezentacja w grze wideo zwraca serwis, zdobywa punkt, a wirtualny tłum szaleje.

Innym sposobem odwzorowania trójwymiarowego ciała jest użycie metody zwanej światłem strukturalnym. Dzięki takiemu podejściu projektor emituje światło – ponownie poza spektrum światła widzialnego – w formie siatki. Gdy siatka napotyka obiekty fizyczne, ulega zniekształceniu. Czujnik wykrywa to zniekształcenie i przesyła dane do komputera, który mierzy zniekształcenie. Gdy się poruszasz, twoje ruchy spowodują zniekształcenie siatki na różne sposoby. Te różnice tworzą dane, których komputer potrzebuje, aby zinterpretować twoje ruchy jako polecenia.

System gestów 3D nie musi opierać się na jednym podejściu technologicznym. Niektóre systemy mogą wykorzystywać kombinację wielu technologii, aby dowiedzieć się, gdzie jesteś i co robisz.

Uzyskiwanie uchwytu na gesty

Niektóre systemy gestów wykorzystują jeden lub więcej kontrolerów zamiast kamer do wykrywania ruchu. Przykładami są pilot Nintendo Wii i kontroler Sony Move. Urządzenia te zawierają dodatkowe czujniki wykrywające orientację i przyspieszenie.

Poza obiektywem

Kinect jest obecnie prawdopodobnie najbardziej rozpoznawalnym systemem gestów 3D na rynku konsumenckim, ale wkrótce dołączy do niego wiele innych produktów.

Czy sterowanie gestami 3D to interfejs przyszłości? Będzie to zależało od pomysłowości inżynierów, wydajności różnych systemów i zachowania użytkowników. Zaprojektowanie działającego interfejsu użytkownika to nie lada zadanie — istnieją setki nieudanych produktów, które w takim czy innym czasie miały zrewolucjonizować sposób, w jaki wchodzimy w interakcję z maszynami. Aby systemy gestów 3D mogły uniknąć tego samego losu, będą musiały być użyteczne i niezawodne. Zależy to nie tylko od technologii, ale i psychologii użytkownika.

Jeśli dany gest nie ma sensu dla użytkownika, może nie chcieć korzystać z systemu jako całości. Prawdopodobnie nie chciałbyś wykonywać "Hokey Pokey" tylko po to, aby zmienić kanał - ale jeśli to zrobisz, to w porządku, nie osądzamy cię. Stworzenie dobrego systemu to nie tylko doskonalenie technologii, ale także przewidywanie, jak ludzie będą chcieli z niej korzystać. To nie zawsze jest łatwe.

Na rynku jest już kilka systemów gestów 3D. Kinect Microsoftu jest prawdopodobnie systemem najbardziej znanym przeciętnemu konsumentowi. Pozwala sterować konsolą Xbox 360 za pomocą gestów i poleceń głosowych. W 2012 r. Microsoft ogłosił plany włączenia funkcjonalności podobnej do Kinect do komputerów z systemem Windows 8. Społeczność hakerska naprawdę zainteresowała się Kinect, manipulując nim w różnych projektach, od technologii skanowania 3D po robotykę.

Na targach CES 2012 kilka firm zaprezentowało urządzenia z funkcją rozpoznawania gestów 3D. Jedna firma, SoftKinetic, zademonstrowała system czasu przelotu, który pozostawał dokładny nawet wtedy, gdy obiekty znajdowały się zaledwie kilka cali od kamery. System czasu przelotu mierzy odległości w oparciu o szybkość odbijania się światła od obiektu w oparciu o prędkość światła. Jeśli firmy chcą włączyć funkcje rozpoznawania gestów do komputera lub tabletu, będą musiały polegać na systemach, które mogą obsługiwać gesty wykonywane blisko obiektywu.

W przyszłości możemy zobaczyć tablety z formą tego oprogramowania do rozpoznawania gestów. Wyobraź sobie, że kładziesz tablet na biurku i kładziesz przed nim ręce. Kamera i czujniki tabletu wykrywają położenie Twoich dłoni i mapują wirtualną klawiaturę. Następnie możesz po prostu pisać na pulpicie, tak jakbyś miał pod palcami prawdziwą klawiaturę, a system śledzi każdy ruch palca.

Prawdziwym testem dla systemów gestów 3D są wyświetlacze 3D. Dodanie głębi do naszych wyświetlaczy daje nam możliwość odkrywania nowych sposobów manipulowania danymi. Na przykład wyobraźmy sobie trójwymiarowy wyświetlacz pokazujący dane ułożone w formie ułożonych w stos pudełek rozciągających się w trzech wymiarach. Dzięki wyświetlaniu gestów 3D możesz wybrać określone pudełko, nawet jeśli nie znajdowało się na szczycie stosu, po prostu sięgając w stronę kamery. Te systemy gestów i wyświetlania mogą stworzyć wirtualny świat, który jest równie wciągający, co elastyczny.

Czy te systemy zastąpią sprawdzone interfejsy, do których przywykliśmy? Jeśli tak, prawdopodobnie zajmie to kilka lat. Ale przy odpowiedniej inżynierii i badaniach mogą pomóc zmienić stereotypowy obraz stacjonarnego komputerowego nerda w aktywnego kreatora danych.

Notka autora

Pomysł na ten artykuł wpadłem na pomysł po mojej wizycie na CES 2012. Wygląda na to, że co roku na targach pojawia się nowy trend. W 2012 roku trendem tym było ponowne wymyślenie interfejsu użytkownika. Wydawało się, że każda firma próbowała dodać do swoich produktów systemy sterowania gestami i głosem. Ale nie podniecaj się – może minąć rok lub dwa, zanim te innowacje trafią do powszechnej elektroniki użytkowej.

Powiązane artykuły

  • Jak działa Microsoft Kinect
  • 5 najlepszych hacków Kinect
  • Jak działa Wii
  • Jak działa Playstation Move
  • Jak ludzie będą łączyć się z komputerami w przyszłości?

Więcej świetnych linków

  • SoftKinetic
  • GestureTek

Źródło

  • Bodker, Susanne. „Przez interfejs: podejście do działalności człowieka w projektowaniu interfejsu użytkownika”. CRC Prasa. 1990.
  • Iddan, Gavriel J. i wsp. „System obrazowania 3D”. Patent Urzędu Patentowego i Znaków Towarowych Stanów Zjednoczonych nr 7 224 384. http://patft.uspto.gov/netacgi/nph-Parser?Sect2=PTO1&Sect2=HITOFF&p=1&u=/netahtml/PTO/search-bool.html&r=1&f=G&l=50&d=PALL&RefSrch=yes&Query=PN/7224384
  • Krah, Christoph H. „Trójwymiarowy system obrazowania i wyświetlania”. Zgłoszenie patentowe Urzędu Patentowego i Znaków Towarowych Stanów Zjednoczonych nr 20110298798. http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l= 50&s1=20110298798
  • Krzesło, Eric i in. "Komputerowy system gier wideo z wykrywaczem pozycji ciała, który wymaga od użytkownika przyjmowania różnych pozycji ciała." Zgłoszenie patentowe Urzędu Patentowego i Znaków Towarowych Stanów Zjednoczonych nr 20100210359. http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l= 50&s1=20100210359
  • Latta, Stephen G. i in. „Klawiatura gestami”. Zgłoszenie patentowe Urzędu Patentowego i Znaków Towarowych Stanów Zjednoczonych nr 20100199228. http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l=50&s1=20100199228
  • Latta, Stephen G. i in. „Architektura systemu rozpoznawania gestów”. Patent Urzędu Patentowego i Znaków Towarowych Stanów Zjednoczonych nr 7 996 793. http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l=50&s1=7996793
  • Pinault, Gilles i in. „Rejestr i system rozpoznawania woluminów”. Zgłoszenie patentowe Urzędu Patentowego i Znaków Towarowych Stanów Zjednoczonych nr 20100208035. http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l= 50&s1=201000208035
  • Ringbeck, Thorsten. „Kamera czasu lotu 3D do wykrywania obiektów”. PMDTechnologies GmbH. 12 lipca 2007 r. (10 lutego 2012 r.) http://www.ifm.com/obj/O1D_Paper-PMD.pdf
  • Silver, William i in. „Metoda i aparatura do interfejsu człowieka do systemu wizyjnego maszyny”. Patent Urzędu Patentowego i Znaków Towarowych Stanów Zjednoczonych nr 7,957,554. http://patft.uspto.gov/netacgi/nph-Parser?Sect2=PTO1&Sect2=HITOFF&p=1&u=/netahtml/PTO/search-bool.html&r=1&f=G&l=50&d=PALL&RefSrch=yes&Query=PN/7957554
  • Wallack, Aaron i in. „Metody i urządzenia do praktycznego systemu wizyjnego 3D”. Zgłoszenie patentowe Urzędu Patentowego i Znaków Towarowych Stanów Zjednoczonych nr 20100303337. http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l= 50&s1=20100033337