workshop kinect

42
KINECT WORKSHOP Ivan Terra Universidade de Aveiro Mestrado Comunicação Multiméida / Interactivo Disciplina - Narrativas e Jogos Interactivos Disciplina - Multimédia em ambientes Artísticos

Upload: ivan-terra

Post on 07-Nov-2014

1.290 views

Category:

Technology


2 download

DESCRIPTION

Workshop Kinect - Mestrado de Comunicação Multimédia e Criação Artistica

TRANSCRIPT

Page 1: Workshop Kinect

KINECTWORKSHOP

Ivan Terra

Universidade de AveiroMestrado Comunicação Multiméida / Interactivo

Disciplina - Narrativas e Jogos InteractivosDisciplina - Multimédia em ambientes Artísticos

Page 2: Workshop Kinect

TÓPICOSEvolução dos controladores nos videojogos

Videojogos e a realidade mista

Interfaces Naturais Interação Gestual

Page 3: Workshop Kinect

TÓPICOSIntrodução ao Microsoft Kinect Kinect sensor Xbox 360 The Kinect Windows PC

Kinect hardware Video camera Depth camera Microfones

Potencionalidades do Kinect Projetos Kinect

Page 4: Workshop Kinect

TÓPICOSAsus Xtion Pro

Desenvolvimento com Kinect OpenNI

SDK Microsoft

Linguagens de programação Processing

Page 5: Workshop Kinect

EVOLUÇÃO

Page 6: Workshop Kinect

Evolução80”

90”

00”

10”

70”

Page 7: Workshop Kinect

WIIContrariando a tendência dos videojogos realistas, em 2006, a Nin-tendo revolucionou o mercado com jogos com imagens não realistas, mas apostando numa nova forma de interacção, onde o controlo dos vide-ojogos é feito através da movimentação do corpo (Ferreira, 2009).

Page 8: Workshop Kinect

Em junho de 2009 a Sony, anunciou o lançamento do Move um con-trolador de movimento combinado com a PlayStation Eye, uma pequena câmara já usada pela Playstation anteriormente.

Move

Page 9: Workshop Kinect

KINECTInicialmente chamado de projecto natal, o Kinect é lançado para o mercado em Novembro de 2010.

Este dispositivo permite a interação do utlizador sem ser preciso nenhum acessório.

Em pouco meses, tornou-se o produto electrónico mais rápido a ser vendido, entrando assim no Guinness.

Em 60 dias foram vendidos mais de 8 milhões

Page 10: Workshop Kinect

REALIDADE MISTA

Page 11: Workshop Kinect

REALIDADE MISTA

– Representação da realidade mista (Fumio & Paul, 1994)

Com o lançamento da Wii, Move e Kinect, entramos numa era de inter-faces gestuais, que permitem a mistura de realidades, entre a nossa sala e o videojogo.

Realidade virtual - o utilizador não vê directamente o cenário real.

Realidade mista - envolvem a fusão do mundo real e virtual, que se ref-erem genericamente como realidade mista, provavelmente a mais conhe-cido é a realidade aumentada.

Page 12: Workshop Kinect

INTERFACES NATURAIS

Page 13: Workshop Kinect

INTERFACES NATURAISAs Interfaces Naturais, também conhecido pela sua abreviatura NUI.

Não é uma tecnologia, mas sim uma experiência que pode ser criada usando a tecnologia. As interfaces naturais, podem ser criadas de diversas formas, desde a iteração táctil, ao multitoque, a captação de gestos, reconhecimento de voz, entre outros. Diferentes tecnologias de interacção são adequadas a diferentes situações (Wigdor & Wixon, 2011), não é porque conseguimos fazer interfaces gestuais que estas são apropriadas para todas as situações.

As interfaces naturais, representam uma revolução na computação, não só porque substituem a actual interacção, mas porque permitem expandir novos horizontes e porque reduzem o tempo de aprendizagem do utilizador.

Page 14: Workshop Kinect

INTERAÇÃO GESTUAL

Page 15: Workshop Kinect

INTERAÇÃO GESTUALAtualmente, a maioria das interfaces gestuais podem ser categorizados como “touchscreen” or “free-form”.

touchscreen - exigem que o utilizador toque directamente no dispositivo.

free-form - não exigem que o utilizador toque ou tenha de manusear o objeto directamente. Às vezes, um controlador ou luva é usado como um dispositivo de entrada, mas cada vez mais o dispositivo de entrada é apenas corpo, como é o caso do Kinect.

Page 16: Workshop Kinect

KINECT

Page 17: Workshop Kinect

KINECT XBOX360

Page 18: Workshop Kinect

KINECT XBOX360

100 €Para ligar ao PC necessário ligar o trasnformador*não incluido em pacotes com a xbox 360 S

Page 19: Workshop Kinect

KINECT PARA WINDOWS

lançado a 1 de fevereiro 2012.Preço 250 Dólares SDK Licença comercial para aplicaçõeshttp://www.microsoft.com/en-us/kinectforwindows/

Page 20: Workshop Kinect

KINECT HARDWARE

Page 21: Workshop Kinect

KINECT HARDWARECâmara RGB 640 x 480 30 FPSUma câmara de profundidadeUm projetor de infra-vermelhosMicrofone arraySoftware

Page 22: Workshop Kinect

KINECT HARDWARE

Page 23: Workshop Kinect

PROJECTOS KINECT

Page 24: Workshop Kinect

VIDEOS

Page 25: Workshop Kinect

ASUS XTION PRO

Page 26: Workshop Kinect

Xtion PRO

Saiu em Abril/Maio de 2011Preço $149.00desenvolvido para ComputadoresSDK de desenvolvimentoLicença Comercial

Page 27: Workshop Kinect

DESENVOLVIMENTO KINECT

Page 28: Workshop Kinect

KINECT OPENNI

A organização OpenNI é uma organização sem fins lucrativos que promove a compatibilidade das aplicações e dos disposi-tivos de interacção natural. Um dos objetivos da organização OpenNI é acelerar a introdução de aplicações interacção natu-ral no mercado.

Desenvolvendo uma framework open source.

A PrimeSense, a empresa parceira do Kinect, e a ASUS, são par-ceiros.

http://www.openni.org/

Page 29: Workshop Kinect

KINECT OPENNI

Primeira frameworks estável do kinectDisponível para Windows XP , vista, seven 32/64Bits Linux Ubuntu 10.10, 32/64Bits apenas testado em Windowns seven 32 e 64 btis

Page 30: Workshop Kinect

KINECT OPENNI

Processing

http://code.google.com/p/simple-openni/

Unity 3Dhttp://zigfu.com/en/

Emulador de Teclas via gestoshttp://projects.ict.usc.edu/mxr/faast/

(várias linguagens)

Page 31: Workshop Kinect

KINECT SDK

1º SDK Beta lançado em junho de 2011-não comercial

Versão 1 Fevereiro 2012

Compativel com Windows apenas

Software: Microsoft® Visual Studio® 2010 Express or other Visual Studio 2010 edition .NET Framework 4.0 http://www.microsoft.com/en-us/kinectforwindows/

Page 32: Workshop Kinect

KINECT FAASTLet’s try

Page 33: Workshop Kinect

KINECT UNITY3D

Page 34: Workshop Kinect

KINECT PROCESSING

Page 35: Workshop Kinect

KINECT OPEN NI

Instalar OPEN NI

http://www. simple-openni.googlecode.com/files/OpenNI_NITE_Installer-Win32-0.26.zip

1 OpenNI Installer2 NITE Installer3 Sensor4 Driver Kinect

OU All-in-one OpenNI Kinect Auto Driver Installer

http://www.brekel.com/?page_id=160

Page 36: Workshop Kinect

KINECT PROCESSING

Instalar Processing http://processing.org/download/

Download:http://simple-openni.googlecode.com/files/SimpleOpenNI-0.26.zip

Copiar o conteudo da pasta libary para a pasta libraries do processing, normamente encontra-se na pasta dos documentos/Procossegin/libraries

Page 37: Workshop Kinect

KINECT PROCESSINGAtivar camâras import SimpleOpenNI.*;SimpleOpenNI context;void setup(){ context = new SimpleOpenNI(this); // enable depthMap generation if(context.enableDepth() == false) { println(“Can’t open the depthMap, maybe the camera is not connected!”); exit(); return; } if(context.enableRGB() == false) { println(“Can’t open the rgbMap, maybe the camera is not connected or there is no rgbSensor!”); exit(); return; } // enable skeleton generation for all joints context.enableUser(SimpleOpenNI.SKEL_PROFILE_ALL); background(200,0,0); stroke(0,0,255); strokeWeight(3); smooth(); size(context.depthWidth() + context.rgbWidth() + 10, context.rgbHeight()); }

Page 38: Workshop Kinect

KINECT PROCESSINGMostrar camâras e chamar função de esqueletovoid draw(){

context.update(); // draw depthImageMap image(context.depthImage(),0,0); // draw irImageMap image(context.rgbImage(),context.depthWidth() + 10,0); // draw the skeleton if it’s available if(context.isTrackingSkeleton(1)) drawSkeleton(1);

}

Page 39: Workshop Kinect

KINECT PROCESSINGDraw Skeleton// draw the skeleton with the selected jointsvoid drawSkeleton(int userId){ /// to get the 3d joint data context.drawLimb(userId, SimpleOpenNI.SKEL_HEAD, SimpleOpenNI.SKEL_NECK);

context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_LEFT_SHOULDER); context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_LEFT_ELBOW); context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_ELBOW, SimpleOpenNI.SKEL_LEFT_HAND);

context.drawLimb(userId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_RIGHT_SHOULDER); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_RIGHT_ELBOW); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_ELBOW, SimpleOpenNI.SKEL_RIGHT_HAND);

context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_TORSO); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_TORSO);

context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_LEFT_HIP); context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_HIP, SimpleOpenNI.SKEL_LEFT_KNEE); context.drawLimb(userId, SimpleOpenNI.SKEL_LEFT_KNEE, SimpleOpenNI.SKEL_LEFT_FOOT);

context.drawLimb(userId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_RIGHT_HIP); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_HIP, SimpleOpenNI.SKEL_RIGHT_KNEE); context.drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_KNEE, SimpleOpenNI.SKEL_RIGHT_FOOT); }

Page 40: Workshop Kinect

KINECT PROCESSING SimpleOpenNI events

void onNewUser(int userId){ println(“onNewUser - userId: “ + userId); println(“ start pose detection”); context.startTrackingSkeleton(userId); }

void onLostUser(int userId){ println(“onLostUser - userId: “ + userId); }

void onStartCalibration(int userId){ println(“onStartCalibration - userId: “ + userId);}

void onEndCalibration(int userId, boolean successfull){ println(“onEndCalibration - userId: “ + userId + “, successfull: “ + successfull);

if (successfull) { println(“ User calibrated !!!”); context.startTrackingSkeleton(userId); } else { println(“ Failed to calibrate user !!!”); println(“ Start pose detection”); context.startPoseDetection(“Psi”,userId); }}

void onStartPose(String pose,int userId){ println(“onStartPose - userId: “ + userId + “, pose: “ + pose); println(“ stop pose detection”); context.stopPoseDetection(userId); context.requestCalibrationSkeleton(userId, true);}

void onEndPose(String pose,int userId){ println(“onEndPose - userId: “ + userId + “, pose: “ + pose);}

Page 41: Workshop Kinect

REFERÊNCIASFumio, K., & Paul, M. (1994). A taxonomy of mixed reality. Paper presented at the IEICE Transactions on Information Systems, Vol E77-D, No.12 December 1994

Guiness. (2011). Kinect Confirmed As Fastest-Selling Consumer Electronics Device

Medeiros, R. T. (2011). O controle em suas mãos: a evolução da interação entre jogador e videogame. Universidade de Brasília, Brasília.

Microsoft. (2009). Xbox 360 Fact sheet

Saffer, D. (2008). Designing Gestural Interfaces. In M. Treseler (Eds.), O’Reilly Media, Inc.

Svedström, T. (2010). Gesture interfaces. Aalto university school of science and technology - Faculty of Information and Natural Sciences

Wigdor, D., & Wixon, D. (2011). Brave NUI World: Designing Natural User Interfaces for Touch and Gesture (1st ed.). San Francisco, CA, USA: Morgan Kaufmann Publishers

Xbox (Producer). (2011) Xbox Xbox. retrieved from http://support.xbox.com/pt-pt/pages/kinect/body-controller/default.aspx

http://www.microsoft.com/en-us/kinectforwindows/

http://openni.org/

http://code.google.com/p/simple-openni/

http://zigfu.com/

http://www.brekel.com/

http://projects.ict.usc.edu/mxr/faast/

Page 42: Workshop Kinect

[email protected]

GAME OVER!!!