.NET Framework Developer Center > Fóruns do .NET Development > .NET Development - Geral > Qual a melhor maneira de capturar movimentos através de um WebCam?
Fazer uma PerguntaFazer uma Pergunta
 

PerguntaQual a melhor maneira de capturar movimentos através de um WebCam?

  • sábado, 7 de novembro de 2009 1:11Guijermous Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Estou desenvolvendo um projeto que se baseia em MOCAP (Motion Capture ), que pode ser definido como a captura de movimentos de um meio real e passado para um meio digital. No meu caso, é um estudo inicial que foi desenvolvido, e tal tecnologia seria empregada em um jogo desenvolvido em Flash.
    Eu e meu grupo conseguimos desenvolver um algoritmo que consegue capturar um objeto de cor somente Azul. Foi o mais fácil que conseguimos
    desenvolver. Para capturar, é capturada a imagem, feita uma subtração de canais para achar os tons azuis da imagem, e depois diversas etapas, como convolução da imagem e binarização, achando o ponto onde há a maior concentração de azul e pegando as cordenadas desse ponto. As coordenadas são jogadas para um arquivo do tipo .txt (texto), e são lidas a todo momento no jogo em Flash desenvolvido por mim. É importante enfatizar que a imagem inteira não é analisada, é analisada os pontos de 5 em 5 pixels, diminuindo o processamento.
    A idéia é jogar o jogo através da WebCam através de um objeto. Isso futuramente poderia ser desenvolvido e aplicado a deficientes físicos, jogos educativos e interativos.
    Porém, tal processamento de imagem não é tão bom.. as vezes captura coordenadas erradas, não reconhece o tom de azul, confunde o tom de azul com o do fundo, por exemplo. E como há diversas capturas de imagem e é realizada uma análise a todo momento, o algoritmo não se torna muito eficiente.
    Alguém poderia me ajudar, sugerir de alguma forma algum método ou tecnologia, algoritmo, idéia, linguagem, qualquer coisa que conseguisse implementar um algoritmo mais eficiente e rápido, que possibilitasse jogar o jogo de modo que mais se aproximasse do tempo real?
    Obrigado!

Todas as Respostas

  • sábado, 7 de novembro de 2009 19:28Ari C. Raimundo Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Guijermous,

    Minha sugestão de idéia seria colocar dispositivos eletrônicos (sensores inerciais) em diversos pontos no jogador que pudessem determinar a localização espacial (X, Y e Z) desses pontos em relação a um determinado referencial. Com isso, seria possível determinar o movimento e orientação do jogador.

    É difícil tentar sugerir algo sem conhecer como é a interface com o jogo ou sistema que você está desenvolvendo.

    Em relação à deficiência do sistema em reconhecer o objeto de cor azul, vocês já tentaram aumentar a saturação da imagem e então partir para a binarização?

    Em meu projeto de conclusão de curso da faculdade (Eng. Computação) desenvolvi um sistema para diagnosticar o tipo de escoliose em pacientes. Uma imagem era capturada de uma câmera e pontos azuis (por coincidência) eram identificados na imagem e posteriormente utilizarmos para determinar o tipo de escoliose. Nesse projeto, modifiquei a saturação da imagem, realizei uma limiarização e então determinei as coordenadas dos pontos por correlação.

    Espero ter ajudado.

    Att.

    Ari C. Raimundo
  • domingo, 8 de novembro de 2009 16:01Guijermous Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Esses sensores, seria caro?
    A idéia é fazer tudo usando coisas baratas, do dia a dia, e que é ensinado em sala de aula entende? Mas caso fosse viável usar sensores, seria bacana..

    Já mudamos sim a saturação, tudo isso.. tentamos fazer com que identificasse da melhor maneira a cor.. mas mesmo assim, é muito lento, isso que é o pior entende?
    Falhas na identificação da cor azul não é o pior, o pior é o delay que tem.. se fosse em tempo real seria ótimo, e essa é minha meta entende?

    Obrigado
  • domingo, 8 de novembro de 2009 21:43Ari C. Raimundo Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Guijermous,

    Eu nunca utilizei esse tipo de sensor, mas sei que existem. Não tenho idéia de preço também, mas acredito se um pouco caro (R$ 200 ou +).

    Espero ter ajudado.

    Att.

    Ari C. Raimundo