API - Motion Tracker

Propaganda
API – Motion Tracker
Câmera Interativa para CyberTv
Nome do projeto inicial: Visão computacional como possibilidade de interação uma CyberTv
Título do protótipo: Tvicam – câmera interativa para CyberTv
Coordenação: Alexandra Cristina Moreira Caetano (MidiaLab – UnB)
Equipe de Desenvolvimento:
Francisco de Paula Barretto (Analista e Desenvolvedor de Software);
Gustavo Bezerra Leite Antunes (Desenvolvedor do Hardware/Câmera Infravermelha);
Erisvaldo Gadelha Saraiva Júnior (Desenvolvedor Software/Integração da Câmera ao Ginga-J);
Rodolfo Arruda Santos (Colaborador/Desenvolvedor de Software)
API – Motion Tracker
Câmera Interativa para CyberTv
O API Motion Tracker integra a pesquisa prática-teórica sobre uso
de visão computacional, por meio de câmera com infravermelho Tvicam, como possibilidade de interação que culminou no
desenvolvimento de API que possa ser utilizada em propostas de
interação com a CyberTv (TDI - Tv digital interativa).
A utilização de câmera com infravermelho para captação de
movimento aumenta a precisão, pois o uso deste dispositivo
garante uma melhor definição da imagem e cores, mesmo em
ambientes que não se tenha boa iluminação. Com isso o
mapeamento da posição do atuador não se vê prejudicado ou
influenciado diretamente pela luminosidade do ambiente, como nos
casos em que a infravermelho não é utilizado.
As pesquisas artísticas que fazem uso de visão computacional
como interface de interação buscam trabalhar algoritmos que
permitam ao atuador manter interação com elementos virtual ou
elementos que serão construídos a partir do movimento, ou do
mapeamento de pontos do corpo desta pessoa.
A pesquisa para utilização de visão computacional em interação
com a TV digital, ou melhor, com os conteúdos disponibilizados na
TV digital, podem seguir a princípio dois caminhos:
(1) Interagir com os conteúdos já disponibilizados digitalmente;
(2) Introduzir elementos digitais para que seja realizada a
interação com estes elementos por meio de reconhecimento de
movimento.
Escolhemos a segunda proposta para o projeto Câmera Interativa
para CyberTv.
Início da pesquisa de desenvolvimento
Com o intuito de desenvolver um protótipo de hardware a ser
integrado à TV digital e que funcionasse com uma API para
aplicações com visão computacional, partiu-se para o estudo da
TV digital e dos novos recursos que permitem a interação com
conteúdos e serviços disponibilizados. Focou-se no estudo do
middleware GINGA, padrão brasileiro de TV digital, a fim de
prover a interatividade.
O estudo da arquitetura do Ginga-J, que permite o
desenvolvimento de aplicações em Java, e também de outras
linguagem compatíveis com o desenvolvimento de softwares
para TV digital, foi o ponto de partida para o desenvolvimento
da biblioteca de reconhecimento de movimento por meio de
câmera conjugado com placa de leds infravermelho.
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Desenvolvimento de software
Milestone do projeto
•Declaração de Definição de Escopo (DDE);
•Declaração de Definição de Requisitos (DDR);
•Captação de imagens com detecção de movimento;
•Interpretação das imagens captadas;
•Integração com o Ginga-J.
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Declaração da Definição de Escopo - DDE
Descrição das atividades que fazem parte do escopo do projeto de
software:
•Possibilitar interação com conteúdo de TVD interativa;
•Disponibilizar biblioteca para que aplicações de TVD interativa
possam, por sua vez, prover acesso a esse tipo de interação;
•Utilizar webcam;
•Seguir as normas da TVD brasileira;
•Documentação do sistema;
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Declaração da Definição de Escopo - DDE
Atividades que NÃO fazem parte do escopo do projeto de software:
•A aplicação ser de arquitetura web;
•A aplicação possuir banco de dados;
•Englobar todas as configurações de decodificadores;
•Prover integração com outras aplicações de TVD interativa que não
utilizem as bibliotecas geradas neste protótipo;
•Prover atualização e eventuais mudanças que não identificadas
como pertencentes ao escopo;
•Integração com outros sistemas
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Cronograma de Entregas
Marcos do Projeto
Entregas
Previsão de Início
Previsão de Término
Elaboração do
Documento de
Definição de Escopo
O documento em sua versão
final.
Abril/2010
Maio/2010
Elaboração do
Documento de
Definição de
Requisitos
O documento em sua versão
final.
Abril/2010
Maio/2010
Módulo de captura
de imagens
Versão funcional implementando
todos os requisitos.
Junho/2010
Julho/2010
Módulo de
interpretação de
imagens
Versão funcional
implementando todos os
requisitos.
Julho/2010
Agosto/2010
Encapsulamento dos
métodos
desenvolvidos em
uma biblioteca
Versão funcional de uma
biblioteca Java.
Agosto/2010
Outubro/2010
Aplicação protótipo
em Ginga-J
Versão funcional implementando
todos os requisitos.
Setembro/2010
Novembro/2010
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Definição das Tecnologias
-Utilização de um emulador Ginga-J, desenvolvido em Java, no
LAVID_UFPb, e compatível com a IDE Eclipse.
-Utilização da API Java Media Framework 2.1 (JMF), para
desenvolvimento da visão computacional, que nos permitirá
reconhecer e capturar imagens da câmera, possibilitando assim o
tratamento necessário das imagens.
-A API JMF 2.1 é compatível com a nova versão do emulador Ginga-J
desenvolvida pelo LAVID, que integrará a versão full do middleware.
A API JMF 2.1 (que permite a utilização da API da Câmera
Interativa), ao contrário de sua versão 1.0, não faz parte das APIs
obrigatórias que compõem o primeiro Set-Top Box
comercializado.
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Erisvaldo Gadelha Saraiva Júnior (Desenvolvedor Software/Integração da Câmera ao Ginga-J)
Fig. 1 – Teste de detecção e captura de imagens utilizando
JMF2.1.1e e câmera infravermelho.
Fig. 2 – Teste realizado com o emulador Ginga-J
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Ambiente de Desenvolvimento
(1) Linux Ubuntu
(2) IDE Eclipse Galileo
(3) API JMF 2.1.1e
A instalação do JMF 2.1.1e foi realizada com sucesso, culminando
na realização de alguns testes, entre eles, o de reconhecimento dos
dispositivos de captura de vídeo (webcam).
Os testes de reconhecimento foram realizados com webcams
comuns buscando verificar a compatibilidade com as mesmas,
visto que o projeto para o desenvolvimento do hardware baseavase em modelos simples.
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Testes com a câmera
(1º) reconhecimento da câmera pelo JMFRegistry, responsável
pelo acesso e comunicação com o hardware da câmera.
(2º) teste utilizando uma aplicação de teste, desenvolvida em
Java, que utiliza a API JMF para acessar a câmera, capturar a
imagem e exibir o vídeo em tempo real em um applet.
Fig. 3 – Teste realizado no ambiente Windows
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Fig. 4 – Teste de código no Windows java acessando e
exibindo a imagem capturada da webcam
Fig. 5 – Repetição do teste de código java e webcam
com filtro infravermelho.
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Pesquisa Algorítmica
Para o desenvolvimento da API foi realizada pesquisa algorítmica a fim de se
ter como base um algoritmo que atendesse aos requisitos do projeto de
reconhecimento de movimento por visão computacional. Foram testados
vários algoritmos de detecção de movimento utilizando JMF 2.1.1e e outras
plataformas tais como OpenCV (Open Computer Vision), o intuito era definir
o algoritmo (independente da linguagem de implementação) a ser utilizado e
depois, se necessário, “migrá-lo” para a linguagem Java.
A API, desenvolvida em JAVA, complementa e permite o acesso às
funções da câmera por meio de um algoritmo de edge detection ou detecção
de borda. O algoritmo de edge detection ou detecção de bordas é uma
ferramenta fundamental no processamento de imagens e visão computacional,
particularmente quanto ao uso dos recursos de detecção e de extração de
características, que visam a identificação de pontos em uma imagem digital
em que o brilho muda drasticamente imagem ou mais formalmente apresenta
descontinuidades.
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Rodolfo Arruda Santos (Colaborador/Desenvolvedor de Software)
A utilização do algoritmo junto à tvicam – câmera com infravermelho objetiva
minimizar este tipo de erro, pois possibilita o mapeamento da imagem mesmo
na ausência de iluminação.
Portanto o algoritmo detecta a borda dos objetos, mapeando o movimento
através da diferença entre frames subseqüentes.
Fig. 6 – Resultado da aplicação do
algoritmo edge detection
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Integração com o emulador Ginga
Após a implementação da API, tornava-se necessário a integração
da mesma com o emulador do Ginga-J, visto que a API JMF 2.1
não integra o Set-Top Box comercializado. A integração com o
emulador foi um sucesso. Entretanto esbarramos em uma
dificuldade operacional.
Para que fosse possível testar a API e a câmera desenvolvida,
realizou-se uma simulação junto ao emulador do Ginga, visto que
o desenvolvimento da API JMF 2.1 integrada ao midleware ainda
encontra-se em processo de pesquisa e implementação.
necessários para limitar a corrente individual de cada led.
ATENÇÃO!!! A API não roda na versão do emulador Ginga que
hoje está disponível para download.
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Erisvaldo Gadelha Saraiva Júnior (Desenvolvedor Software/Integração da Câmera ao Ginga-J)
Fig. 7 – Teste da API Motion Tracker no
Emulador Ginga-J
Fig. 8 – Acionamento da API – Preparando a
câmera para captura do movimento
Erisvaldo Gadelha Saraiva Júnior (Desenvolvedor Software/Integração da Câmera ao Ginga-J)
A mão modelada na tela do emulador movimenta-se de acordo
com o movimento do atuador realizado em frente à Tvicam câmera com LEDs infravermelhos.
Fig. Fig.
9 – 8a
Visão
computacional
como
– Protótipo
da Câmera
possibilidade de interação com a Tv digital
Fig. 10 – Tvicam – Montagem final – LEDs
infravermelhos ligados
Erisvaldo Gadelha Saraiva Júnior (Desenvolvedor Software/Integração da Câmera ao Ginga-J)
Gustavo Bezerra Leite Antunes (Desenvolvedor do Hardware/Câmera Infravermelha)
Fig. 11a e 11b – Teste API – Motion Tracker –
Emulador Ginga_J
Mouse em repouso
Erisvaldo Gadelha Saraiva Júnior (Desenvolvedor Software/Integração da Câmera ao Ginga-J)
Fig. 12 – Tvicam – câmera e fonte de alimentação (design final)
Gustavo Bezerra Leite Antunes (Desenvolvedor do Hardware/Câmera Infravermelha)
API em funcionamento com a Tvicam
Exposição EmMeios#2 – Museu Nacional de Brasília – Nov/2010
Alexandra Cristina Moreira Caetano (Coordenadora Projeto)
Francisco de Paula Barretto (Analista e Desenvolvedor de Software)
Download