Microsoft Kinect: Crie aplicações interativas
()
About this ebook
Related to Microsoft Kinect
Related ebooks
Arquitetura de software distribuído: Boas práticas para um mundo de microsserviços Rating: 0 out of 5 stars0 ratingsInteligência Artificial como serviço: Uma introdução aos Serviços Cognitivos da Microsoft Azure Rating: 3 out of 5 stars3/5Construct 2: Crie o seu primeiro jogo multiplataforma Rating: 5 out of 5 stars5/5Android nativo com Kotlin e MVVM: Simplificando técnicas avançadas Rating: 0 out of 5 stars0 ratingsReact Native: Desenvolvimento de aplicativos mobile com React Rating: 5 out of 5 stars5/5App Inventor: Seus primeiros aplicativos Android Rating: 0 out of 5 stars0 ratingsGuia prático de TypeScript: Melhore suas aplicações JavaScript Rating: 0 out of 5 stars0 ratingsPlay Framework: Java para web sem Servlets e com diversão Rating: 0 out of 5 stars0 ratingsRSpec: Crie especificações executáveis em Ruby Rating: 0 out of 5 stars0 ratingsCodeIgniter: Produtividade na criação de aplicações web em PHP Rating: 0 out of 5 stars0 ratingsApache Cassandra: Escalabilidade horizontal para aplicações Java Rating: 0 out of 5 stars0 ratingsCucumber e RSpec: Construa aplicações Ruby com testes e especificações Rating: 0 out of 5 stars0 ratingsYesod e Haskell: Aplicações web com Programação Funcional pura Rating: 0 out of 5 stars0 ratingsVRaptor: Desenvolvimento ágil para web com Java Rating: 0 out of 5 stars0 ratingsSpock framework: Testes automatizados para Java, Android e REST Rating: 0 out of 5 stars0 ratingsApache Lucene: Sistemas de busca com técnicas de Recuperação de Informação Rating: 0 out of 5 stars0 ratingsDSL: Quebre a barreira entre desenvolvimento e negócios Rating: 0 out of 5 stars0 ratingsiReport: Crie relatórios práticos e elegantes Rating: 0 out of 5 stars0 ratingsJSF Eficaz: As melhores práticas para o desenvolvedor web Java Rating: 0 out of 5 stars0 ratingsAzure: Coloque suas plataformas e serviços no cloud Rating: 0 out of 5 stars0 ratingsAutomatizando Testes de Software Com Selenium Rating: 0 out of 5 stars0 ratingsCaixa de Ferramentas DevOps: Um guia para construção, administração e arquitetura de sistemas modernos Rating: 0 out of 5 stars0 ratingsProtractor: Lições sobre testes end-to-end automatizados Rating: 0 out of 5 stars0 ratingsModernização de Aplicação no Microsoft Azure: Explorando o potencial da nuvem Rating: 0 out of 5 stars0 ratingsAplicações mobile híbridas com Cordova e PhoneGap Rating: 0 out of 5 stars0 ratingsCurso Intensivo De Desenvolvimento Frontend Rating: 0 out of 5 stars0 ratingsCordova avançado e PhoneGap: Um guia detalhado do zero à publicação Rating: 0 out of 5 stars0 ratingsDesenvolvimento efetivo na plataforma Microsoft: Como desenvolver e suportar software que funciona Rating: 0 out of 5 stars0 ratingsScala: Como escalar sua produtividade Rating: 0 out of 5 stars0 ratingsAkka & Akka Streams: Construa sistemas distribuídos com atores Rating: 0 out of 5 stars0 ratings
Programming For You
Arduino: Guia para colocar suas ideias em prática Rating: 5 out of 5 stars5/5Python e mercado financeiro: Programação para estudantes, investidores e analistas Rating: 5 out of 5 stars5/5Lógica de Programação: Crie seus primeiros programas usando Javascript e HTML Rating: 3 out of 5 stars3/5O universo da programação: Um guia de carreira em desenvolvimento de software Rating: 5 out of 5 stars5/5Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva Rating: 5 out of 5 stars5/5Scrum 360: Um guia completo e prático de agilidade Rating: 5 out of 5 stars5/5HTML5 e CSS3: Domine a web do futuro Rating: 4 out of 5 stars4/5Python: Escreva seus primeiros programas Rating: 4 out of 5 stars4/5Introdução a Data Science: Algoritmos de Machine Learning e métodos de análise Rating: 0 out of 5 stars0 ratingsAprenda a programar com Python: Descomplicando o desenvolvimento de software Rating: 5 out of 5 stars5/5MySQL: Comece com o principal banco de dados open source do mercado Rating: 4 out of 5 stars4/5Introdução à programação em C: Os primeiros passos de um desenvolvedor Rating: 4 out of 5 stars4/5Lógica de programação com Portugol: Mais de 80 exemplos, 55 exercícios com gabarito e vídeos complementares Rating: 0 out of 5 stars0 ratingsTrilhas Python: Programação multiparadigma e desenvolvimento Web com Flask Rating: 4 out of 5 stars4/5Kotlin com Android: Crie aplicativos de maneira fácil e divertida Rating: 4 out of 5 stars4/5Certificação Linux Essentials Rating: 4 out of 5 stars4/5Desbravando Java e Orientação a Objetos: Um guia para o iniciante da linguagem Rating: 5 out of 5 stars5/5Business Intelligence: Implementar do jeito certo e a custo zero Rating: 4 out of 5 stars4/5O Programador Apaixonado: Construindo uma carreira notável em desenvolvimento de software Rating: 5 out of 5 stars5/5Desenvolva jogos com HTML5 Canvas e JavaScript Rating: 4 out of 5 stars4/5Desenvolvimento de Jogos em HTML5 Rating: 5 out of 5 stars5/5Consultoria Especializada e Estratégias De Trade De Forex Rating: 0 out of 5 stars0 ratingsDesenvolvimento web com PHP e MySQL Rating: 3 out of 5 stars3/5ECMAScript 6: Entre de cabeça no futuro do JavaScript Rating: 5 out of 5 stars5/5Estruturas de Dados: Domine as práticas essenciais em C, Java, C#, Python e JavaScript Rating: 0 out of 5 stars0 ratingsArduino prático: 10 projetos para executar, aprender, modificar e dominar o mundo Rating: 3 out of 5 stars3/5Orientação a Objetos em C#: Conceitos e implementações em .NET Rating: 5 out of 5 stars5/5Aplicações web real-time com Node.js Rating: 5 out of 5 stars5/5APIs REST: Seus serviços prontos para o mundo real Rating: 5 out of 5 stars5/5Aprofundando em Flutter: Desenvolva aplicações Dart com Widgets Rating: 5 out of 5 stars5/5
Reviews for Microsoft Kinect
0 ratings0 reviews
Book preview
Microsoft Kinect - Gabriel Schade Cardoso
Sumário
Capítulo 1: Antes de tudo
1.1 Sobre o autor
1.2 Agradecimentos
Capítulo 2: Introdução a interfaces naturais
2.1 Apresentando o Kinect
2.2 O que você encontrará neste livro
2.3 Antes de começar
Capítulo 3: Primeira aplicação com o sensor
3.1 Criando o projeto AuxiliarKinect
3.2 Criando a regra de nossa aplicação
3.3 Testando e depurando nossa aplicação
3.4 Continuando
Capítulo 4: Acelerômetro e eixo motorizado
4.1 Acelerômetro
4.2 Eixo motorizado
Capítulo 5: Fluxo de cores
5.1 Formatos
5.2 Aplicação
5.3 Refatoração
Capítulo 6: Fluxo de profundidade
6.1 Formatos
6.2 Entendendo um pouco mais sobre a profundidade
6.3 Aplicação
Capítulo 7: Fluxo de esqueleto do usuário
7.1 Esqueleto do usuário
7.2 Desenhando o esqueleto do usuário
Capítulo 8: Rastreando e identificando movimentos
8.1 Iniciando a estrutura base para detectar movimentos
8.2 Utilizando poses em nossa aplicação
8.3 Finalizando a estrutura base para detectar movimentos
8.4 Utilizando gestos em nossa aplicação
Capítulo 9: Interagindo com a aplicação através do KinectInteractions
9.1 Principais conceitos
9.2 Melhorando nossa aplicação com os controles do KinectInteractions
9.3 Utilizando o fluxo de interação
Capítulo 10: Utilizando os microfones do sensor
10.1 Inicializando a fonte de áudio e detectando a direção do som
10.2 Detectando comandos de voz
10.3 Conclusão
Bibliografia
Visite o site da Editora Casa do Código e conheça os livros com preços promocionais - www.casadocodigo.com.br.
Capítulo 1:
Antes de tudo
Esta obra é resultado do trabalho e esforço direto e indireto de diversas pessoas e este primeiro capítulo é dedicado a agradecimento das pessoas envolvidas e para que você possa saber mais sobre o autor.
1.1 Sobre o autor
Gabriel Schade Cardoso, eu, sou um jovem de 23 anos, graduado em Ciência da Computação e amante da tecnologia, em especial a área de desenvolvimento de software. Meu primeiro computador foi aos 10 anos de idade, presente que mudou minha vida. Como quase todos os garotos dessa idade eu gostava muito de video games e de jogar RPG com meus amigos. Isso me influenciou para utilizar meu computador para pesquisar sobre como os jogos eram criados e mesmo sem perceber aos 11 anos eu já estava estudando programação e criando jogos simples.
Depois disso não foi difícil decidir o que eu queria fazer da vida, comecei a explorar a programação fora da área de jogos e sou fascinado por isso até hoje. Tenho sorte de conseguir trabalhar com o que gosto, estou com cinco anos de experiência na área de desenvolvimento de software e nesse tempo acumulei conhecimentos nas linguagens Java, C++, Javascript e claro, C#.
Atualmente além de trabalhar na área de desenvolvimento de software, também escrevo com frequencia no blog: www.programadorpoliglota.com.br e busco participar de eventos na comunidade técnica e ciêntifica, através de artigos, palestras e apresentações.
1.2 Agradecimentos
Como já dito anteriormente, esta obra é fruto de esforço direto e indireto de muitas pessoas e este trecho é dedicado aos agradecimentos de todos os envolvidos neste projeto.
Agradeço, À minha mãe, Eulália, por sempre estar comigo, até nos momentos mais difíceis. À minha melhor amiga e irmã Daniela, por ser minha conselheira e confidente. À toda minha família, por ser a luz dos momentos mais escuros. À minha professora Ana Elisa, pois sem ela, eu nunca teria tido interesse pelo Kinect e este livro jamais teria sido escrito. A todos os meus amigos, que são a estrutura vital que me empurra para cima. À Editora Casa do Código, por oferecer toda a estrutura necessária para esta obra e por acreditar em mim e neste projeto.
A todas essas pessoas fica o meu mais sincero obrigado.
Capítulo 2:
Introdução a interfaces naturais
Formas inovadoras de interação com o usuário têm sido propostas por interfaces focadas ao paradigma de interface natural ao longo dos anos. Os softwares em diversas áreas não devem exigir que o usuário tenha grande conhecimento em computação para usá-lo, devem sempre buscar por simplicidade e facilidade.
A primeira interface com o usuário a aparecer foi a CLI (Command Line Interface) que utiliza comandos de entrada textuais específicas para desempenhar funções em um aplicativo, algo que exigia uma grande curva de aprendizado. Algum tempo depois surgiu a famosa GUI (Graphical User Interface) que utiliza janelas gráficas, mouse, botões e diversos outros componentes visuais, arrisco dizer que graças à GUI os computadores conseguiram atingir tantas pessoas e se popularizar tão rápido. Hoje em dia este conceito é o mais utilizado em sistemas operacionais e aplicações.
Devido à quantidade de usuários e demanda por aplicações cada vez mais intuitivas e simples surgiu o conceito de NUI (Natural User Interface) ou simplesmente interfaces naturais. Este tipo de interface foca em utilizar uma linguagem natural para a interação humana com o aplicativo, como gestos, poses e comandos de voz [null] [null].
2.1 Apresentando o Kinect
Como proposta de interface natural inicialmente focada para a área de jogos, a empresa Microsoft em parceria com a empresa israelita PrimeSense construiu o sensor de movimentos que hoje é chamado de Kinect. O hardware do Kinect teve boa parte herdado pelo hardware do PrimeSense. Na figura 2.1 podemos visualizar o irmão mais velho
do Kinect.
Fig. 2.1: Sensor da PrimeSense
O Kinect certamente causou uma revolução na área de interações com jogos, pois a partir de agora, não é mais necessário utilizar um controle: o sensor capta movimentos e comandos de voz do usuário, abrindo um leque de possibilidades totalmente novo, utilizando a linguagem natural para a interação com os jogos.
Inicialmente o sensor Kinect era conhecido pelo codinome Projeto Natal, fazendo referência à cidade brasileira Natal, isso ocorreu devido ao fato de que um dos idealizadores do projeto foi um brasileiro chamado Alex Kipman [null].
A figura 2.2 exibe o sensor concebido pela Microsoft, podemos notar que, apesar de um design mais elegante e robusto ele possui grandes semelhanças com o PrimeSense.
Microsoft KinectFig. 2.2: Microsoft Kinect
Em fevereiro de 2011, quatro meses após o sensor ter sido lançado no Brasil, a Microsoft anunciava o lançamento oficial de um SDK (software development kit) que pode ser obtido de forma gratuita. Com este kit de desenvolvimento a Microsoft permite que desenvolvedores possam criar aplicativos para computadores nas linguagens C++, C# e Visual Basic utilizando o hardware Kinect, ou seja, a limitação de que o Kinect era um dispositivo apenas para a área de jogos não era mais verdadeira [null].
Atualmente existem três tipos diferentes de Kinect, iremos diferenciá-los pelos seguintes nomes: Kinect, Kinect for Windows e Kinect for Xbox 360. O sensor conhecido comercialmente como Kinect for Windows possui um hardware diferenciado, seus microfones possuem uma melhor qualidade e ele é capaz de rastrear o usuário mais próximo ao sensor ou quando ele estiver sentado. Explicaremos melhor sobre isso ao decorrer do livro.
A diferença mais importante que você deve ter em mente agora é entre o Kinect for Xbox 360 e os outros. Esta diferença trata-se do cabo de conexão do sensor, esta versão é vendida somente junto com um console Xbox 360 e seu cabo de conexão possui uma entrada específica, caso seu sensor seja deste tipo é necessário comprar um adaptador para conectar o Kinect em um computador, a figura 2.3 ilustra o cabo e o adaptador para este tipo de sensor.
Kinect for Xbox 360 e seu adaptadorFig. 2.3: Kinect for Xbox 360 e seu adaptador
O sensor possui um hardware que oferece diversos recursos que iremos explorar ao longo do livro, os principais são: Emissor de luz infravermelho, sensor RGB, sensor infravermelho, eixo motorizado e um conjunto de microfones dispostos ao longo do sensor. A figura 2.4 apresenta uma visão do interior do sensor com indicativos de onde estão localizados estes recursos [null].
Kinect por dentroFig. 2.4: Kinect por dentro
2.2 O que você encontrará neste livro
Este livro é escrito para desenvolvedores que já possuem conhecimento referente aos principais conceitos relacionados à orientação a objetos e que já tiveram contato com à linguagem C#, para facilitar a compreensão de desenvolvedores menos experiêntes nessa linguagem será dado pequenas explicações sobre alguns conceitos da linguagem. Nos capítulos iniciais iremos desenvolver aplicações de testes e a partir do capítulo 4 iremos construir uma aplicação até o fim do livro. Estas implementações serão focadas em conceitos de interfaces naturais específicos utilizando um sensor Kinect. As aplicações criadas neste livro não irão levar em consideração padrões arquiteturais e melhorias de performance, será levado em consideração a clareza e facilidade de entendimento do leitor e todas as implementações terão seu código centralizado no repositório: https://github.com/gabrielschade/CrieAplicacoesInterativascomoMicrosoftKinect.
Ao longo deste livro nos capítulos mais avançados iremos construir uma aplicação utilizando todos os conceitos e recursos estudados, no fim do livro teremos uma aplicação completa utilizando o Kinect.
A grande meta deste livro é encorajar e iniciar o leitor a ingressar neste mundo desafiador (e muito divertido!) da programação seguindo os conceitos de NUI através do sensor Kinect, o que invariavelmente irá envolver bastante teoria e prática, de uma forma fluída, simples e divertida!
2.3 Antes de começar
Antes de começarmos a falar da nossa primeira aplicação, é necessário que você tenha feito o download do SDK, ele é gratuito e pode ser baixado através deste link: http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx. Além da ultima versão do SDK, também é aconselhável já fazer o download do developer toolkit e do Microsoft Speech Platform SDK para utilizarmos em nossas futuras implementações.
Neste livro utilizaremos o Visual Studio 2012 como IDE de desenvolvimento, caso você ainda não possua esta ferramenta, existe uma versão gratuita que pode ser baixada através do link: http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products.
É importante lembrar que caso você possua um Kinect for Xbox 360 é preciso que você tenha um adaptador para conectá-lo ao seu computador.
Capítulo 3:
Primeira aplicação com o sensor
Neste capítulo aprenderemos a codificar e testar uma aplicação que utilize o sensor Kinect. Esta aplicação será bastante simples e terá o intuito de termos o primeiro contato com este tipo de programação. Ela terá como função reconhecer se o usuário está com a mão direita acima da altura de sua cabeça e notificar o usuário exibindo uma mensagem em um diálogo quando isso acontecer, simples não?
A primeira coisa que temos que fazer é criar nosso projeto do tipo WPF Application no Visual Studio e adicionar a referência para o SDK do Kinect.
WPF Applications
Windows Presentation Foundation ou simplesmente WPF é um tipo de projeto proposto no Visual Studio para aplicações desktop para Windows, apesar do Kinect não se limitar a aplicações WPF, existem diversas ferramentas inclusas no SDK que nos auxiliam neste tipo de projeto. Para saber mais sobre WPF acesse: http://msdn.microsoft.com/pt-br//library/ms754130.aspx
Para adicionar a referência para o SDK do Kinect basta pressionar o botão direito do mouse sobre o seu projeto e selecionar a opção "Add Reference...". Será aberta uma janela para selecionar o assembly que deseja adicionar em seu projeto, pesquise pela palavra Kinect, selecione o assembly Microsoft.Kinect e pressione o botão OK, conforme ilustra a figura 3.1. Com isso nosso projeto já está preparado para a implementação, vamos codificar!