Mar
02
2011

Kinect, czyli przełom

Nie wiem, czy Kinect jest (lub będzie) rewolucyjnym kotrolerem do gier. Pierwsze recenzje są raczej umiarkowane, ale też niewiele jest gier potrafiących wykorzystać jego możliwości, a programiści dopiero zapoznają się z nowym sprzętem. Jestem natomiast przekonany, że Kinect, a raczej technologia (rozumiana jako hardware i software), która po raz pierwszy została w nim wykorzystana, okaże się przełomem w komunikacji człowiek – maszyna i nie tylko. Istotne jest zrozumienie, że Kinect to rzeczywiście nowa jakość – to narzędzie wzbogacające obraz z tradycyjnej kamery o informacje o jego głębi – jest to więc, dosłownie i w przenośni, dodanie nowego wymiaru do strumienia wideo.

Kinect + openNI + XNA + JigLibX from ARBUZZ on Vimeo.


Generowanie mapy głębi nie jest pomysłem nowym – od dawna znane są algorytmy stereoskopowe pozwalające wyliczyć ją na podstawie obrazu z dwóch odpowiednio umieszczonych kamer. Rozwiązanie te są jednak ułomne, wolne i nieprecyzyjne. Kinect daje nam natomiast “za darmo” gotową klatkę z mapą głębi – i jest to niesamowity krok naprzód w bardzo wielu dziedzinach związanych z komputerowym przetwarzaniem obrazu. Sposobów na wykorzystanie nowych możliwości są tysiące, o czym najlepiej świadczy zalew coraz to nowych filmów dokumentujących coraz bardziej wymyślne zastosowanie Kinecta (polecam bloga kinecthacks). To wszystko to jednak dopiero połowa dobroci – drugą jest oprogramowanie zgodne z kinectem. Umożliwia ono wyodrębnienie ze strumienia danych pozycji sylwetki ludzkiej – pozycje i orientacje kilkunastu punktów ciała (kark, dloń, łokieć itp.). Informacje te można wykorzystać np. do zanimowania trójwymiarowego modelu postaci w grze. Oporgramowanie to dostępne jest publicznie – jako tzw. middleware używany z OpenNI, czyli nowym frameworkiem standaryzującym rozwiązania naturalnego intefejsu użytkownika.

Wszystko to – wraz z dostępnymi od niedawna sterownikami do Kinecta – oznacza możliwość stosunkowo łatwego wykorzystania nowych możliwości, i to zarówno pod Windowsem, jak i na Linuksie czy Macu (ostatnio pojawiły się nawet sterowniki pod Androida).

Sięgaj tam, gdzie wzrok nie sięga from ARBUZZ on Vimeo.

Co to wszystko oznacza? Oprogramowanie oparte na przetwarzaniu obrazu wciąż potrafi zaskoczyć – dla wielu ludzi magią jest wciąż detekcja czy rozpoznawanie twarzy, rzeczywistość rozszerzona czy rozpoznawanie tekstu. Postęp tych dziedzinach uzależniony jest jednak od jakosci kamer i mocy przerobowej komputerów – jest to więc (ewolucyjny) postęp ilościowy. Dodanie do tego mapy głebi jest skokiem jakościowym – daje zupełnie nowe możliwości, jest swego rodzaju rewolucją. Kojarzyć się to może z różnicą między telefonią stacjonarną a komórkową – niby funkcjonalność podobna (chodzi wciąż o rozmowy głosowe) ale dostaliśmy wolność komunikowania się niezależnie od miejsca. I SMSy. I MMSy. I kolorwe ekraniki. I książkę adresową. I internet. No może bez Internetu.

Wziąwszy to wszystko razem stwierdzić można, że Kinect to nie tylko nowy gadżet. Jego potencjał wykracza daleko poza rozemocjonowanych nastolatków skaczących przed ekranem telewizora. Kinect to możliwość przeglądania zdjęć z wakacji kontrolując je ruchem dłoni (można zaimponować znajomym fotkami z Egiptu – taka okazja może się ponownie długo nie nadarzyć). To trójwymiarowy skaner. Interktywne plazmy reklamowe na witrynach. Interaktywne instalacje atystyczne. Sterowanie robotami (np. w medycynie). Motion capture. Zaawansowana rzeczywistość rozszerzona.

To wszystko nie odnosi się naturalnie tylko do Kinecta, ale do klasy urządzeń, których Kinect jest pierwszą emanacją, a które wkrótce zapewne zaleją rynek. Wygląda na to, słynna wizja sterowania komputerem znana z Raportu Mniejszości może ziścić się szybciej niż się jeszcze niedawno wydawało. Ale bez rękawiczek. Trochę szkoda, bo fajne były (z trzema palcami).

***

Aktualnie pracujemy nad naszą pierwszą instalacją z użyciem Kinecta w połączeniu z video mappingiem – jak tylko skończymy wrzucimy klip na bloga.

Written by arbuzz in: Wyrób własny | Tags: , ,

5 Comments »

  • Well done getting this out to people to use, wish I had it 4 weeks ago.

    Cheers,
    Mark.

    Comment | March 2, 2011
  • Arthur

    thank you for making this available! this will be very useful to me to experiment with for learning XNA and programming kinect

    Comment | March 6, 2011
  • Jamison

    I’m having trouble getting this to build properly; how do I have it reference the JigLibX properly?

    Comment | May 11, 2011
  • Pete

    Awesome !!

    Comment | May 17, 2011
  • Mikhail

    Hi! What you’ve done is great! I’m trying to do the same thing. I’ve started with XNA skinning sample. In my code I receive joints data from Kinect, than calculate bone vectors, than calculate rotation matrices for each bone from parent bone to target bone. But unfortunately the model moves very strange (looks like each bone transform uses it’s own coordinate system). I’m completely stuck.
    Could you share the code, please?

    Comment | March 5, 2012

RSS feed for comments on this post. TrackBack URL

Leave a comment

*

Theme: TheBuckmaker.com Wordpress Themes | JustHost Help Section, Akupunktur Heilung