Pergunta

Estou interessado em escrever algum código homebrew para o Microsoft Kinect Console. Eu tenho alguns aplicativos que acho que traduziriam bem para a plataforma. Eu estive brincando com a ideia de dar uma chance usando o Drivers e bibliotecas OpenKinect. Obviamente, isso seria muito trabalho, mas estou me perguntando quanto. Alguém tem experiência com o OpenKinect? Você obtém apenas os dados de vídeo/áudio bruto do dispositivo ou alguém escreveu abstrações de nível superior para facilitar as tarefas comuns?

Foi útil?

Solução

o OpenKinect A biblioteca é basicamente um motorista - pelo menos por enquanto - então Não espere muitas funções altas dele. Você vai mais ou menos conseguir o dados não tratados de ambos profundidade e a vídeo máquinas fotográficas.
Isso é basicamente uma matriz recebida em uma função de retorno de chamada cada vez que um quadro chegar.

Você pode tentar seguir as instruções fornecidas no Site OpenKinect, é muito rápido de instalar e experimentá -lo, e você pode jogar um pouco com o glview Aplicação fornecida para ter uma sensação do que é possível. Eu configurei algumas demos usando opencv, e obtive resultados bem legais, embora eu não tivesse muita experiência em visão computacional, então só posso encorajá -lo a experimentar você mesmo!

 
Como alternativa, se você está procurando funções mais avançadas, o Framework Openni acabou de ser lançado nesta semana e fornece alguns algoritmos impressionantes de alto nível, como Rastreamento de esqueleto e alguns reconhecimento de gestos. Parte da estrutura é algoritmos proprietários do PrimeSense (como o poderoso módulo de rastreamento do esqueleto ...). Ainda não tentei e não sei o quão bem ele se integra ao Kinect e ao SO diferente, mas como um monte de caras de diferentes grupos (OpenKinect, Willow Garage ...) estão trabalhando duro nisso que não deveria não ser um problema dentro de uma semana.

Outras dicas

Elaborando mais sobre o que Jules Olleon escreveu, eu trabalhei com o Openni (http://www.openni.org) e os algoritmos acima dele (Nite), e eu recomendo o uso dessas estruturas. Ambas as estruturas são bem documentadas e vêm com inúmeras amostras das quais você pode começar.

Basicamente, Openni Abstrai os detalhes de nível inferior para trabalhar com o sensor e seu driver para você e oferece uma maneira conveniente de obter o que deseja de um "gerador" (por exemplo, XN :: DepthGenerator para obter os dados de profundidade bruta). O Openni é de código aberto e gratuito para usar em qualquer aplicativo. O Openni também lida com a plataforma-abstração para você. Atualmente, o OpenNi é suportado e funciona bem para o Windows 32/64 e o Linux, e está sendo transportado para o OSX. As ligações estão disponíveis para uso em várias linguagens de programação (C, C ++, .NET, Python e algumas outras que acredito).

Nite tem interfaces adicionais construídas acima do OpenNi, que oferecem resultados de nível superior (por exemplo, rastreie um ponto manual, esqueletos, análise de cena etc.). Você deseja verificar as sutilezas da licença da Nite em relação a quando/onde você pode usá -la, mas ainda é provavelmente a maneira mais fácil e rápida de obter análise (por exemplo, esqueleto) por enquanto. O NITE é de código fechado, portanto, o PrimeSens precisa fornecer uma versão binária para você usar. Atualmente, as versões Windows e Linux estão disponíveis.

Não trabalhei com o OpenKinect, mas tenho trabalhado com o Openni e o Sensorkinect há alguns meses para minha pesquisa. Se você planeja trabalhar com dados brutos da Kinect, eles funcionam muito bem para fornecer profundidade e vídeo (eles não suportam controle de motor). Eu o usei com C ++ e OpenGL no Windows 64bit e no Ubuntu 32bits, com quase nenhuma modificação no código. É muito fácil aprender se você conhece C ++ básico. Instalá -lo pode ser um pouco de dor de cabeça.

Para recursos mais avançados, como detecção de esqueletos, reconhecimento de gestos, etc., eu recomendo o uso dos médios como o Nite com o Openni ou os fornecidos aqui: Middlewares desenvolvido em torno do Openni em vez de reinventar a roda. O Nite também é muito fácil de usar depois de trabalhar o Openni; Por exemplo, o reconhecimento conjunto é algo em torno de 10 a 20 linhas extras de código.

Algo que eu recomendaria ao meu eu mais jovem seria aprender e trabalhar com um mecanismo básico de jogo (por exemplo, unidade), em vez de diretamente com o OpenGL. Isso lhe daria gráficos muito melhores e mais agradáveis, menos complicados e também permitiria que você integre facilmente seu programa com outras ferramentas, como Physx. Não tentei, mas sei que existem alguns plugins para o uso de drivers Kinect em unidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top