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)