.NET Framework Developer Center >
Fóruns do .NET Development
>
.NET Development - Geral
>
Qual a melhor maneira de capturar movimentos através de um WebCam?
Qual a melhor maneira de capturar movimentos através de um WebCam?
- 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
- 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 - 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 - 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


