DESENVOLVIMENTO DE UMA FERRAMENTA PARA INTERAÇÃO COM TV DIGITAL ATRAVÉS DE UMA WEBCAM

Embed Size (px)

Citation preview

  • UNIVERSIDADE DO VALE DO ITAJA

    CENTRO DE CINCIAS TECNOLGICAS DA TERRA E DO MAR

    CURSO DE CINCIA DA COMPUTAO

    DESENVOLVIMENTO DE UMA FERRAMENTA PARA

    INTERAO COM TV DIGITAL ATRAVS DE UMA WEBCAM

    rea de Processamento de Imagem e TV Digital Interativa

    por

    Alessio Delazari

    Mathias Henrique Weber, M. Sc.

    Orientador

    Antonio Carlos Sobieranski, M. Sc.

    Co-orientador

    So Jos (SC), junho de 2012

  • UNIVERSIDADE DO VALE DO ITAJA

    CENTRO DE CINCIAS TECNOLGICAS DA TERRA E DO MAR

    CURSO DE CINCIA DA COMPUTAO

    DESENVOLVIMENTO DE UMA FERRAMENTA PARA

    INTERAO COM TV DIGITAL ATRAVS DE UMA WEBCAM

    rea de Processamento de Imagem e TV Digital Interativa

    por

    Alessio Delazari

    Relatrio apresentado Banca Examinadora do

    Trabalho de Concluso do Curso de Cincia da

    Computao para anlise e aprovao.

    Orientador: Mathias Henrique Weber, M. Sc.

    So Jos (SC), junho de 2012

  • SUMRIO

    LISTA DE ABREVIATURAS.................................................................. iv

    LISTA DE FIGURAS ................................................................................. v

    RESUMO .................................................................................................... vi

    ABSTRACT ............................................................................................... vii

    1 INTRODUO ...................................................................................... 8 1.1 PROBLEMATIZAO ................................................................................... 10

    1.1.1 Formulao do Problema ............................................................................... 10

    1.1.2 Soluo Proposta ............................................................................................. 10

    1.1 OBJETIVOS ...................................................................................................... 10

    1.1.1 Objetivo Geral ................................................................................................. 10

    1.1.2 Objetivos Especficos ...................................................................................... 10

    1.2 METODOLOGIA .............................................................................................. 11

    1.3 ESTRUTURA DO TRABALHO ..................................................................... 12

    2 FUNDAMENTAO TERICA ...................................................... 13 2.1 TV DIGITAL ..................................................................................................... 13

    2.1.1 Interatividade na TV Digital .......................................................................... 17

    2.1.2 Set-Top Box ..................................................................................................... 19

    2.1.3 Padro Brasileiro SBTVD ........................................................................... 20 2.1.4 Xlet View .......................................................................................................... 23

    2.2 PROCESSAMENTO DE IMAGEM ............................................................... 23

    2.2.1 Rudo na Imagem ............................................................................................ 27

    2.2.2 Morfologia Matemtica .................................................................................. 28

    2.2.3 Subtrao de Background .............................................................................. 32

    3 DESENVOLVIMENTO ...................................................................... 34 3.1 REQUISITOS .................................................................................................... 35

    3.1.1 Requisitos Funcionais ..................................................................................... 35

    3.1.2 Requisitos No-Funcionais ............................................................................. 36

    3.2 DIAGRAMA DE VISO GERAL ................................................................... 38

    3.3 DIAGRAMA DE CASOS DE USO ................................................................. 39

    3.4 OUTROS DIAGRAMAS .................................................................................. 40

    3.4.1 Diagrama de Classes ....................................................................................... 40

    3.4.2 Diagramas de Atividade ................................................................................. 42

    3.5 IMPLEMENTAO ........................................................................................ 46

    3.5.1 Aquisio de Informao ................................................................................ 46

    3.5.2 Sistema de Processamento .............................................................................. 51

    3.5.3 Aplicao no Xlet View ................................................................................... 52

    4 CONSIDERAES FINAIS .............................................................. 60

  • iii

    4.1 TRABALHOS FUTUROS ................................................................................ 62

    REFERNCIAS BIBLIOGRFICAS ................................................... 64

    APNDICES ............................................................................................. 67

    A. Borda do Objeto na Imagem ............................................................... 68

    B. Deteco de Bordas .............................................................................. 69

    C. Limiarizao ......................................................................................... 70

    D. Componentes Conexos ......................................................................... 72

    E. Rastreamento de Objetos .................................................................... 73

  • LISTA DE ABREVIATURAS

    APIs Interfaces de Programao de Aplicativos

    CPU Central Processing Unit

    CRT Cathode Ray Tube

    DVB-J Digital Video Broadcasting - (Transmisso de Vdeo Digital)

    HDTV High Definition Television

    IHC Interao Homem-Computador

    IPTV Servio Multimdia de Banda Larga para Incluso Social

    IRD Decodificadores Integrados

    ITU-T Setor de Normalizao das Telecomunicaes

    LCD Liquid Crystal Display

    LED Ligh Emitting Diode

    MPEG-2 Moving Pictures Expert Group

    MPH Multimdia Home Plataform

    NCL Nested Context Language

    PDI Processamento Digital de Imagem

    STB Set-Top Box

    TCC Trabalho de Concluso de Curso

    TVDi Televiso Digital Interativa

    UNIVALI Universidade do Vale do Itaja

    xDSL Digital Subscriber Line

    WWW World Wide Web

  • LISTA DE FIGURAS

    Figura 1. Sistema de TV Digital ......................................................................................................... 14

    Figura 2. Etapas do gerador de sinal de TV. ...................................................................................... 15 Figura 3. Trs frames que compes a sequencia de uma imagem. .................................................... 16 Figura 4. Etapas na recepo do sinal. ............................................................................................... 17 Figura 5. Diviso de banda na TV Digital ......................................................................................... 18 Figura 6. TV e Set-Top Box. ............................................................................................................... 19

    Figura 7. Etapas de um sistema de processamento de imagens. ........................................................ 25

    Figura 8: Componentes de um sistema de processamento de imagens. ............................................. 26

    Figura 9. Exemplos de Rudo. ............................................................................................................ 28 Figura 10. Exemplo de Eroso. .......................................................................................................... 29 Figura 11. Exemplo de Dilatao ....................................................................................................... 30 Figura 12. Seqncia para Abertura: Eroso e Dilatao. .................................................................. 31 Figura 13. Seqncia para Abertura: Dilatao e Eroso. .................................................................. 32

    Figura 14. Exemplo de Subtrao de Background ............................................................................. 33 Figura 15. Requisitos Funcionais ....................................................................................................... 35 Figura 16. Requisitos No-Funcionais ............................................................................................... 37 Figura 17. Diagrama de Viso Geral .................................................................................................. 38

    Figura 18. Diagrama de Casos de Uso ............................................................................................... 39 Figura 19. Diagrama de Classes do sistema de processamento de imagem. ...................................... 41

    Figura 20. Diagrama de classes do Simulador Xlet View .................................................................. 42 Figura 21. Diagrama de Atividade de Seleo de Frames para Calculo do Background .................. 43

    Figura 22. Diagrama de Atividade do Clculo do Background ......................................................... 44 Figura 23. Diagrama de Atividade do Subtrao de Background ...................................................... 45

    Figura 24. Imagem de um frame capturado pela webcam ................................................................. 47 Figura 25. Imagem do Background .................................................................................................... 48 Figura 26. Imagem da deteco de movimento .................................................................................. 49

    Figura 27. Imagem dos botes do sistema ......................................................................................... 50 Figura 28. Imagem do Sistema em funcionamento ............................................................................ 52 Figura 29. Imagem do Xlet View ....................................................................................................... 53

    Figura 30. Boto desenhado no Xlet View ........................................................................................ 55

    Figura 31. Integrao entre o Sistema de Processamento de Imagem e o Xlet View ........................ 56

    Figura 32. Sequncia de imagens mostrando a integrao do sistema de processamento com o Xlet

    View ........................................................................................................................................... 57

    Figura 33. Integrao entre o sistema e o Set-top-box conectado com a TV ..................................... 58 Figura 34. Seqncia do processo de Limiarizao. .......................................................................... 70 Figura 35. Exemplo de Componentes Conexos ................................................................................. 72

    Figura 36. Exemplo de Tracking de um objeto. ................................................................................. 73

  • RESUMO

    DELAZARI, Alessio. Desenvolvimento de uma Ferramenta para Interao com TV Digital

    Atravs de uma Webcam. So Jos, 2011 n 44 f. Trabalho de Concluso de Curso (Graduao em

    Cincia da Computao) Centro de Cincias Tecnolgicas da Terra e do Mar, Universidade do

    Vale do Itaja, So Jos, 2012.

    O aumento de pesquisas em TV Digital Interativa no Brasil e o grande investimento do governo

    brasileiro neste assunto tem motivado P&D para TV Digital Interativa. Este projeto prope

    aumentar a interatividade do telespectador com a TV Digital Interativa por um sistema

    desenvolvido em Java. Este sistema identifica o "pressionamento" de botes do controle remoto da

    TV (Red, Green, Yellow e Blue) de imagens processadas em quadros capturados por uma webcam

    usando uma biblioteca JavaCV. A tcnica utilizada no desenvolvimento do sistema foi a de

    Subtrao de Background para a deteco de movimento do telespectador, verificando se os seus

    movimentos so ininterrupto por n segundos sobre as reas de tela que simulam o boto interativo

    para aperta-los. Os testes foram feitos usando um aplicativo desenvolvido em Ginga-J para executar

    o simulador de set-top-box Xlet View. Finalmente, o sistema foi executado em um set-top-box real

    conectado a uma TV digital usando a linguagem LUA do Ginga-NCL. Os resultados foram

    satisfatrios, considerando a sensao de tempo de resposta dos telespectadores em tempo real.

    Palavras-chave: TV Digital Interativa, Processamento de Vdeo, Subtrao de Background.

  • ABSTRACT

    The rise of Interactive Digital TVs researches in Brazil and the large investment of the

    Brazilian government in this subject have motivated researches and development for Interactive

    Digital TV. This project propose increase the interactivity of the televiewer with Interactive Digital

    TV by a system developed in Java. This system identifies the push of TV's buttons (Red, Green,

    Yellow and Blue buttons) from images processed on frames captured by a webcam using the

    JavaCV library. The technique used in the system development was the background subtraction to

    detecting moving of the televiewer, checking if his movements are uninterrupted by X seconds on

    the screen areas that simulate the interactive button to push them. Tests were made using an

    application developed in Ginga-J to run the set-top-box Xlet View simulator. Finally, the system

    was run in a real set-top-box with a digital TV connection using LUA Ginga-NCL language. The

    results were satisfactory considering the televiewers feeling of response time in a real-time.

    Keywords: Interactive Digital TV, Video Processing, Background Subtraction.

  • 1 INTRODUO

    Na era do conhecimento, onde o mundo gira em torno da comunicao, as telecomunicaes

    tem um papel fundamental. Isso tudo graas aos avanos tecnolgicos, fazendo ser possvel

    conectar o mundo em uma grande rede e disponibilizar a informao para quem quiser acessar. Mas

    este acontecimento no se restringe apenas internet, tendo seu incio com o surgimento do rdio e

    da TV, na dcada de 30 e 60 respectivamente, muito mais antigos que a internet, onde se deu incio

    ao processo de aproximao das pessoas (VALDECIR et al, 2006).

    A televiso uma maneira muito importante para a transmisso de informao para a

    sociedade. Desde o seu surgimento tem este propsito e vem auxiliando em diversas reas. Hoje a

    informao algo crucial na vida de todos, visto que na sociedade pessoas no so mais s julgadas

    pelo seu trabalho e sua posio financeira, mas o que conta muito no seu julgamento a sua

    informao e o seu conhecimento (BECKER & MONTEZ, 2005).

    Segundo Benoit (2008), na televiso convencional o sinal apresentado ao telespectador

    sem nenhuma forma de processamento. J com o sinal digital necessrio um pr-processamento

    para a apresentao dos udios e vdeos recebidos. Este processo chama-se decodificao do sinal.

    Novas formas de transmisso permitem muitas melhorias na qualidade da imagem, proporcionando

    alta qualidade de definio conhecida como HDTV (High Definition Television).

    Com esta nova forma de transmisso, possvel criar programas interativos, esta

    interatividade1 sendo reestruturada (TEIXEIRA, 2009; GAWLINSKI, 2003). Alm de a TV Digital

    ter interatividade com o telespectador, tem melhoria na qualidade, e proporciona outra grande

    vantagem, que a recepo do sinal em movimento, possibilitando que aparelhos mveis recebam e

    apresentem a programao das emissoras de televiso (BENOIT, 2008).

    A interatividade algo muito frequente e presente hoje. Muitos dos aparelhos que so

    utilizados pelos homens tm algum tipo de interao homem-computador. Tm-se exemplos como o

    computador, que tem o mouse, teclado, monitor entre outros perifricos que proporcionam esta

    interatividade.

    1 Interatividade a capacidade de um dispositivo interagir ou permitir interao com o seu

    respectivo utilizador (GELEIJNSE; ALIAKSEYEU; SARROUKH, 2009).

  • 9

    No se pode dizer que a interatividade na TV um novo elemento inserido pela tecnologia

    de TV Digital, mas sim, uma nova forma de interao com o telespectador (TEIXEIRA, 2009).

    Segundo Lugmayr, Niiranen e Kalli (2004), a interatividade na televiso digital aumenta a

    diversidade de servios interativos.

    Um bom exemplo de interao entre o homem e a TV o controle remoto, que nada mais

    que um objeto que permite controlar o aparelho, sem precisar se locomover at perto do mesmo.

    Mas j existem pesquisas para o controle de televisores a partir de dispositivos mais ergonmicos e

    fceis de serem manipulados do que o controle remoto. Uma nova forma de interagir com a TV

    utilizando meios de Interao Homem Computador (IHC), que podem ampliar a interao com a

    TV e pode ser desenvolvida por mtodos de Processamento Digital de Imagem (PDI).

    Tcnicas de PDI podem ser utilizadas para desenvolver uma nova tecnologia de interao

    com TV Digital Interativa. Uma das tcnicas que possibilita aumentar a interatividade de um

    telespectador com a TV Digital Interativa a Subtrao de Background. Com esta tcnica de

    processamento de imagem, possvel identificar movimentao em uma sequncia de frames,

    portanto possvel criar sistemas para reconhecer alguma ao de um telespectador como gestos

    realizados em frente a uma cmera.

    Os gestos humanos so um meio natural de interao e comunicao entre as

    pessoas. Gestos empregam mo, a integridade fsica e o movimento do corpo para expressar as

    ideias ou trocar informaes no verbais.

    Com os esforos para melhorar a maneira que os homens interagem com os computadores,

    h um crescente interesse na tentativa de integrar gestos com a IHC. Em comparao aos mtodos

    tradicionais, como, mouse, teclado, manche ou controle remoto, gestos so alternativas atraentes,

    que mais natural e intuitiva para os seres humanos.

    Em geral, gestos so capturados e incorporados em fluxos contnuos de vdeo, e um sistema

    de reconhecimento de gestos deve ter a capacidade de extrair informaes teis e identificar

    movimentos distintos automaticamente (LI; GREENSPAN, 2010).

    Acredita-se que PDI pode potencializar a interao entre o telespectador e o televisor, para

    isso se faz necessrio a criao de sistemas capazes de reconhecer determinados gestos ou

    movimentos e ao mesmo tempo integrarem-se com os sistemas de televiso digital existentes.

  • 10

    1.1 PROBLEMATIZAO

    Neste tpico do trabalho ser apresentada a formulao do problema, que visa apresentar o

    problema que existe e comum de acontecer, e em seguida apresentada a soluo proposta,

    mostrando como se pretende acabar com o problema apresentado.

    1.1.1 Formulao do Problema

    Pesquisas a respeito de interatividade vm evoluindo, mas o mercado no vem absorvendo

    esta tecnologia por diversos motivos. A interao utilizando o controle remoto limitada, muitas

    vezes morosa e no atrai a ateno do telespectador para novos meios de interatividade.

    1.1.2 Soluo Proposta

    Acredita-se que uma forma mais interativa do ponto de vista fsico possa atrair um pblico

    maior para esta nova tecnologia. A soluo aqui proposta visa aumentar os recursos que j existem

    no controle remoto criando uma nova forma de interao com a TV Digital Interativa atravs de

    movimentos reconhecidos por uma webcam.

    1.1 OBJETIVOS

    Neste tpico do trabalho sero apresentados o objetivo geral do trabalho e os objetivos

    especficos mostrando o que se pretende realizar num todo com a realizao do trabalho, e tambm

    o objetivo cada parte especfica no decorrer do Trabalho.

    1.1.1 Objetivo Geral

    Desenvolver um sistema de processamento digital de imagens que reconhece as

    movimentaes de um telespectador atravs de Subtrao de Background e verifica o

    pressionamento de botes simulados em uma Televiso Digital Interativa.

    1.1.2 Objetivos Especficos

    Os objetivos especficos deste trabalho de concluso de curso so:

    Pesquisar e analisar, caso existir, solues similares;

    Pesquisar mtodos de PDI para tais funes;

  • 11

    Pesquisar metodologias de Deteco de Movimentos;

    Determinar os requisitos exigidos pelo sistema;

    Pesquisar os conceitos e tecnologias necessrias para o desenvolvimento do sistema;

    Realizar a modelagem conceitual do sistema;

    Desenvolver o sistema;

    Testar e validar a desenvolvimento do sistema;

    Testar e validar a utilidade/funcionalidade do sistema e

    Documentar o desenvolvimento e os resultados do sistema.

    1.2 METODOLOGIA

    Neste trabalho de concluso de curso primeiramente apresentado uma breve introduo do

    assunto que ser tratado, apresentado os objetivos gerais e especficos do trabalho, para depois

    fundamentar todo o contedo necessrio para o entendimento de como solucionar o problema

    apresentado.

    Na fundamentao descrito sobre TV Digital Interativa, como funciona, suas

    caractersticas e os benefcios da utilizao de uma TV Digital Interativa. Ainda na fundamentao,

    na segunda parte fundamentado o processamento digital de imagens, tcnicas de (PDI) que podem

    ser utilizadas para a realizao do projeto, na fundamentao sobre (PDI) apresentado tambm

    exemplos das tcnicas explicadas.

    Aps a fundamentao para o entendimento do contedo que ser utilizado, apresentado o

    projeto do sistema, neste projeto so apresentados os casos de uso, diagrama de classes, diagrama

    de viso geral, diagramas de atividade que explicam detalhadamente a funo de cada classe que foi

    desenvolvida no projeto.

    Depois do projeto apresentado, explicado como foi desenvolvido o sistema, apresentado

    imagens do sistema funcionando, trechos de cdigo desenvolvidos, e o detalhamento dos passos do

    sistema, e tambm testes feitos para chegar a um melhor resultado. E por final, as consideraes

    finais do trabalho.

  • 12

    1.3 ESTRUTURA DO TRABALHO

    A estrutura deste trabalho separada em quatro captulos. O Captulo 1 apresenta a

    introduo do TCC, apresentando alguns conceitos para que se possa ter uma viso dos problemas

    existentes, ento a partir da introduo, apresentar o problema proposto, e os objetivos do trabalho.

    No Captulo 2, apresentada a fundamentao terica, apresenta as tcnicas que sero

    utilizadas, sendo elas TV Digital Interativa, Processamento de Imagem. O Captulo 3 apresenta o

    desenvolvimento do sistema, sendo que a primeira parte do desenvolvimento apresentado o

    projeto com a modelagem do sistema e todos os requisitos necessrios, e a segunda parte,

    apresentado o desenvolvimento dos cdigos de programao, imagens do sistema funcionando e

    testes feitos ao decorrer do desenvolvimento.

    No Captulo 4, so apresentadas as consideraes finais do trabalho, concluses do projeto,

    o que foi possvel fazer do planejado no TCC I e o que realmente foi possvel fazer, aps as

    consideraes so apresentadas as bibliografias utilizadas para a fundamentao terica do trabalho,

    e por final apresentados os anexos, que contm fundamentaes tericas de tcnicas de

    processamentos digitais de imagens feitas no TCC I e com as mudanas necessrias no projeto, no

    foram necessrias serem utilizadas.

  • 2 FUNDAMENTAO TERICA

    Neste captulo sero apresentadas as pesquisas e os estudos realizados para a aquisio do

    conhecimento necessrio sobre conceitos e tcnicas que foram utilizados para a realizao e

    desenvolvimento do sistema.

    2.1 TV DIGITAL

    A TV Digital uma atualizao da TV Analgica, a qual proporciona uma melhoria na

    qualidade das transmisses de vdeos e udios, possibilita a transferncia do sinal para aparelhos

    mveis, mais opes de programas, mais servios transmitidos por uma emissora e permite a

    interatividade com os telespectadores (SILVA & TODESCO, 2011).

    A TV Digital trouxe muitos benefcios para os telespectadores, alm de um melhor design,

    teve uma grande melhoria na imagem. Pode proporcionar algo que est cada dia mais esperado

    pelos telespectadores, a interatividade, proporcionando muito mais funes para a TV do que

    apenas assistir a programao que a emissora apresenta, como a participao direta nos programas

    respondendo questionrios da programao, acessar informaes complementares do programa,

    entre outros.

    A maioria da programao veiculada pelas emissoras de televiso aberta, j produzida com

    a utilizao de novos equipamentos de filmagem e armazenamento digital dos vdeos. Mas os

    segmentos de transmisso continuam analgicos, portanto o ganho de qualidade que a imagem

    digital deveria proporcionar imperceptvel para os telespectadores. A transmisso digital de

    televiso significa transformar o sinal analgico da TV em Informao Digital (TAVARES, 2001).

    Um sistema de TV Digital Interativa de uma forma genrica pode ser dividido em trs

    partes: Difusor sendo responsvel por gerar o contedo a ser transmitido; o Receptor que recebe o

    contedo e apresenta para o telespectador, e possibilita a interao do telespectador com o difusor

    atravs de um receptor digital se a TV tiver integrado, ou atravs de um Set-Top Box caso a TV no

    tenha o receptor digital integrado; e por final um Meio de Difuso, composto pelo canal de difuso

    e canal de retorno. Sua funo a comunicao entre o difusor e o receptor, dada pelo meio de

    cabo, radiodifuso ou satlite. Esta diviso com as informaes apresentadas pode ser visualizada

    na Figura 1 (BECKER, 2009).

  • 14

    Figura 1. Sistema de TV Digital

    Fonte: Becker (2009)

    Etapas da difuso do sinal:

    O difusor consiste em uma sequencia de passos: adquirir o udio e o vdeo e realizar a

    edio e insero de contedo pr-codificado. O difusor proporciona muitas vantagens para a TV

    Digital Interativa em relao da TV Analgica, pois na etapa de difuso possvel insero de

    legendas de filmes, guias de programao de canais, informaes sobre data e hora, sinopse de

    programas, etc. Os aplicativos desenvolvidos na linguagem (NCL) so especificamente

    executados pelo receptor da televiso digital ou pelo Set-Top Box, que possui a capacidade de

    processamento, caracterizando a interatividade (BECKER, 2009).

    Segundo Becker (2009):

    existem duas formas de gerar contedo televisivo: transmiti-lo ao vivo ou gravar

    sequencia de vdeo e udio para posterior edio antes da difuso. Em ambas as formas, os

    sinais de udio e vdeo precisam ser codificados e encapsulados em pacotes de transporte

    MPEG2-TS por um multiplexador, antes de serem transmitidos. Os dados tambm

    precisam ser inseridos no multiplexador, atravs de um injetor de dados.

    Depois de passar pelo multiplexador que tem a funo de juntar tudo, o prximo passo

    modular o sinal digital para ser difundido pelos meios convencionais, sendo tarefa do modulador

    gerar um sinal em baixa frequncia. Mas para que o sinal possa ser difundido pelos meios de

    difuso ele precisa de um ltimo passo, que ser convertido para um sinal de maior frequncia,

    sendo funo do UpConverter. Na Figura 2 est detalhada a sequencia realizada pelo difusor

    (BECKER, 2009).

  • 15

    Figura 2. Etapas do gerador de sinal de TV.

    Fonte: Becker (2009).

    A escolha do MPEG-2 no SBTVD-T deu-se pelo fato de transmitir apenas a parte que foi

    alterada de um frame para o prximo, ao invs de enviar um frame completo como ocorre na

    transmisso analgica comum (BEGNAMI & SABL, 2006).

    Na Figura 3 nota-se que o primeiro frame composto de uma rvore e uma nuvem,

    enquanto no segundo, essa nuvem alterada por um sol e no ltimo frame, o sol retirado da

    imagem. Nessa sequencia de imagens, a rea destacada pelo quadrado pontilhado a nica que se

    altera de um frame para o outro, sendo que a rvore continua intacta e permanece a mesma nos

    frames seguintes (BEGNAMI & SABL, 2006).

  • 16

    Figura 3. Trs frames que compes a sequencia de uma imagem.

    Fonte: Begnami e Sabl (2006).

    Esse sinal emitido de forma analgica aos servidores da operadora de TV, que fazem o

    processo de digitalizao do sinal. Aps este procedimento, so enviados via satlite, via cabo ou

    broadcast terrestre para a casa do telespectador, que, por sua vez, decodificado no Set-Top Box

    (BEGNAMI & SABL, 2006).

    Etapas na recepo do sinal:

    Antes do sinal ser processado por um receptor, ele precisa ser captado de maneiras j citadas

    anteriormente. O receptor pode ser interno em uma TV Digital ou ser equipamento externo. Neste

    caso, conhecido por decodificador ou como j mencionado Set-Top Box (BECKER, 2009).

    Aps a recepo do sinal, a Figura 4 representa o que ocorre na seguinte sequencia de

    procedimentos: o primeiro elemento que processa (capta) o sinal difundido o sintonizador digital,

    passando depois pelo demodulador, que extrai o fluxo de transporte MPEG-2, passando-o para o

    demultiplexador que responsvel por extrair todos os fluxos elementares. Depois de extrados, so

    ento encaminhados para o decodificador, que os converter para o formato apropriado de exibio

    utilizado pela televiso. J as aplicaes so executadas pelo processador conforme o estado

    determinado no injetor de dados, podendo iniciar automaticamente ou ficar na espera de uma ao

    do telespectador (BECKER, 2009).

  • 17

    Figura 4. Etapas na recepo do sinal.

    Fonte: Becker (2009).

    2.1.1 Interatividade na TV Digital

    A interatividade na TV no surgiu com a difuso da TV Digital. Esta inteno vem de seus

    primrdios onde os desenvolvimentos buscavam sempre criar a sensao de interatividade, de

    maneira em que o telespectador pudesse participar do programa com votaes, SMS (Short

    Message Service) e internet, onde o Telespectador participa na deciso do que ir acontecer no

    programa entre outras (CANNITO, 2010).

    A TV Digital pode ser explicada basicamente como uma TV com acesso internet, recepo

    de Vdeo em alta resoluo, udio e uma canal de retorno, por onde possvel comunicao com o

    telespectador, podendo ele assim enviar informaes ou responder questionrios (BEGNAMI &

    SABL, 2006).

    Na Figura 6 pode-se ver os canais existentes na TV Digital. A figura representa em

    proporo qual o espao de transferncia de cada canal. O canal de transferncia disponibilizado

  • 18

    para o vdeo o maior, por ser o arquivo em transferncia que necessita de mais espao, logo aps

    vem o canal de udio, que no necessita de tanto espao de transferncia, e por fim o canal de

    dados.

    Figura 5. Diviso de banda na TV Digital

    Fonte: Weber (2010) Apud TELEMIDIA (2010)

    A partir do canal de retorno pode-se ter maior interatividade com a TV Digital.

    Segundo Silva e Todesco (2011):

    Entendida como a ao recproca entre dois corpos, a expresso se relaciona cada

    vez mais com os meios e sistemas computacionais, pela interface com o usurio. Neste

    caso, o canal de interatividade o meio pelos quais os usurios podem transmitir e receber

    informaes, atravs de sistemas computacionais conectados na rede.

    A interatividade pode ser qualificada em trs nveis de interao segundo Crocomo (2007)

    Nvel 1: Tambm chamado de interao local", a situao em que o telespectador

    interage com informaes armazenadas no terminal ou Set-Top-Box. Neste nvel,

    possvel citar interaes como sinopse sobre um filme, letra de uma msica em um

    clip, escalao em uma partida de futebol ou perguntas educativas sem retorno de

    informaes para a emissora.

  • 19

    Nvel 2: Nele existe um canal de retorno para a emissora. Neste caso, o envio de

    informaes para a emissora poder ser feito de forma sncrona ou no. J como

    exemplos deste nvel, possvel citar os questionrios sobre uma pergunta de um

    locutor, perguntas sobre satisfao dos telespectadores ou votaes em programas de

    reality show, nos quais a emissora recebe atravs do canal de retorno informaes

    passadas pelo telespectador.

    Nvel 3: Onde a interao envia e recebe informaes em tempo real. Neste caso,

    pode-se citar como exemplos aplicaes como salas de bate-papo (chat) e jogos

    multiplayer.

    2.1.2 Set-Top Box

    O Set-Top Box tambm chamado de STB tem seu nome derivado do fato desse equipamento

    ser caixas (Box), que so colocadas sobre (Top) os televisores (TV Set). O STB recebe os sinais

    digitais atravs de alguma fonte de dados que pode ser via ar, cabo ou satlite como j comentados

    anteriormente. Esses aparelhos convertem os sinais de uma maneira que possam ser interpretados e

    apresentados pelos atuais aparelhos de TV (FERREIRA & PLNIO, 2007).

    Figura 6. TV e Set-Top Box.

    Fonte: CyberTheater (2011).

  • 20

    Pode ser observado na Figura 6 que a ideia bsica desse dispositivo a de uma pequena

    caixa agregada a uma televiso analgica, que converte os sinais digitais para que sejam assistidos

    por essas televises convencionais. Para quem assina ou conhece sistemas de TV por assinatura, o

    receptor algo comum do lado da TV (BECKER, 2009).

    Com a utilizao deste aparelho nos televisores convencionais, ou seja, os televisores que

    interpretam os sinais analgicos podem utilizar as funcionalidades de uma TV Digital. O Set-Top

    Box recebe o sinal digital, converte para um sinal que interpretado pela TV convencional e

    proporciona as mesmas funcionalidades de uma TV Digital Interativa, contendo o canal de retorno

    onde o telespectador manda informaes para que haja a interao (GAO RESEARCH, 2011).

    Esse canal de retorno pode utilizar as mais diversas tecnologias disponveis, como linha

    telefnica discada, xDSL (Digital Subscriber Line) e cabo, rede celular 3G, para fazer a

    comunicao no sentido inverso da difuso, do telespectador para o operador da rede (BECKER,

    2009).

    Para permitir a interatividade, os Set-Top Boxes precisam de capacidade de processamento,

    por isso seu hardware pode conter tecnologias que so comuns aos computadores, tais como CPU

    (Central Processing Unit), memria, modens para canal de retorno, memria para armazenamento

    de dados e leitores de smart cards para controle de acesso. Como ocorre em computadores

    convencionais, esses dispositivos so controlados por device drivers de sistemas operacionais.

    Contudo, esses sistemas operacionais so bem mais simples que os convencionais e possuem

    cdigo armazenado em memria no voltil (BECKER, 2009).

    Uma ferramenta importante para os desenvolvedores de aplicativos para TV Digital

    Interativa o Set-Top-Box Virtual, que permite a simulao em um computador, onde sero

    desenvolvidas as aplicaes e feitos os testes necessrios antes de ser disponibilizado.

    2.1.3 Padro Brasileiro SBTVD

    O padro de transmisso adotado no Brasil o mesmo utilizado no Japo (ISDB-T),

    diferente do padro americano (ATSC) e do europeu (DVB-T), permite a recepo do sinal em

    aparelhos portteis e mveis, sem tarifao. Uma das poucas diferenas do padro brasileiro em

    relao ao japons a compresso. No Brasil adotado o MPEG-4H. 264 para todos os sinais, que

    mais eficiente que o MPEG-2, ou seja, possvel trafegar a mesma quantidade de vdeo em uma

    taxa de dados menor (TVGLOBODIGITAL, 2012).

  • 21

    2.1.3.1 Ginga

    Ginga o nome do middleware aberto do sistema Nipo-Brasileiro de TV Digital (ISDB-TB)

    e recomendao ITU-T para servios IPTV. Ginga constitudo por um conjunto de tecnologias

    padronizadas e inovaes brasileiras que o tornam a especificao de middleware mais avanada

    (GINGA, 2012).

    A arquitetura Ginga permite a adio de extenses opcionais. Por exemplo, o ambiente de

    execuo Ginga-J, responsvel pela execuo de aplicativos Java. Televises conectadas, ou

    Broadband TVs , tambm podem definir extenses para implementao de seus servios. Servios

    IPTV especficos, tais como VoD, etc., so exemplos de outras extenses possveis. Ginga NCL

    oferece servios NCL para todas as extenses por meio de uma API bem definida.

    Segundo Ginga (2012): O Ginga fruto do desenvolvimento de projetos de pesquisa

    coordenados pelos laboratrios Telemdiada PUC-Rio e LAViD da UFPB.

    2.1.3.2 Ginga NCL

    O ambiente de apresentao Ginga-NCL o subsistema lgico obrigatrio do Ginga,

    responsvel pela execuo de aplicaes declarativas NCL. As aplicaes so entregues para o

    Ginga-NCL pelo subsistema Ncleo Comum Ginga tambm conhecido por Ginga-CC (GINGA,

    2012).

    Um exemplo deste Set-Top Box Virtual o Ginga-NCL Virtual STB (Set-Top Box) que foi

    desenvolvido na PUC-Rio (Pontifcia Universidade Catlica do Rio de Janeiro). O Ginga-NCL o

    subsistema Ginga responsvel pela apresentao de documentos NCL (Nested Context Language),

    importante saber que uma mquina virtual para Linux VMWare, e inclui o Ginga-NCL C++

    v.0.12.1 (GINGANCL, 2011).

    Ele define um ambiente de apresentao para aplicaes declarativas escritas em NCL. NCL

    uma linguagem de aplicao XML que fornece suporte para a especificao de sincronizao

    espao-temporal entre objetos de mdia, contedo de mdia e alternativas de apresentao,

    exposio em vrios dispositivos, e viver de produo de interativos, programas no lineares

    (GINGANCL, 2011).

    Para desenvolver aplicaes para Ginga-NCL utilizado a linguagem de programao LUA.

    Uma linguagem poderosa, rpida e leve, projetada para estender aplicaes. Lua foi desenvolvida

  • 22

    no Brasil por uma equipe na Pontifica universidade Catlica do Rio de Janeiro (PUC-Rio) (LUA,

    2012).

    Segundo Lua (2012):

    Lua combina sintaxe simples para programao procedural com poderosas

    construes para descrio de dados baseadas em tabelas associativas e semntica

    extensvel. Lua tipada dinamicamente, interpretada a partir de bytecodes para uma

    mquina virtual baseada em registradores, e tem gerenciamento automtico de memria

    com coleta de lixo incremental. Essas caractersticas fazem de Lua uma linguagem ideal

    para configurao, automao (scripting) e prototipagem rpida.

    Lua distribuda via um pequeno pacote e compila sem modificaes em todas as

    plataformas que tm um compilador C padro. Lua roda em todos os tipos de Unix, Windows, e

    tambm em dispositivos mveis (usando Android, iOS, BREW, Symbian, Windows Phone), em

    microprocessadores embutidos (como ARM e Rabbit, para aplicaes como Lego MindStorms), e

    at mainframes IBM (LUA, 2012).

    Ainda utilizando o mesmo site referenciado, Lua tem uma API simples e permite uma

    integrao forte com cdigo escrito em outras linguagens. simples estender Lua com bibliotecas

    escritas em outras linguagens. Tambm simples estender programas escritos em outras linguagens

    com Lua. Lua usada para estender programas escritos no s em C e C++, mas tambm em Java,

    C#, Smalltalk, Fortran, Ada, Erlang, e mesmo outras linguagens de script, como Perl e Ruby.

    2.1.3.3 Ginga J

    A definio de Ginga-J composta por Interfaces de Programao de Aplicativos (APIs)

    projetadas para suprir todas as funcionalidades necessrias para a desenvolvimento de aplicativos

    para televiso digital, desde a manipulao de dados multimdia at protocolos de acesso.

    A especificao Ginga se aplica aos receptores para sistemas de transmisso terrestre de

    televiso. Ginga destinado a cobrir uma srie completa de receptores e decodificadores integrados

    (IRD), aparelhos de televiso integrados, computadores multimdia e clusters locais de aparelhos

    conectados por redes domsticas.

  • 23

    A norma Ginga-J destinada aos desenvolvedores de receptores compatveis com o sistema

    brasileiro de televiso digital terrestre e aos desenvolvedores de aplicativos que utilizam a

    funcionalidade e API Ginga.

    Embora j exista uma norma detalhando o Ginga-J, a mesma no pode ser levado a cabo por

    questes relacionadas a licenas das APIs envolvidas (GEM, ARIB, HAvi, etc.). Porm

    aconselhado por Gingarn (2012), fazer o uso do Xlet View para simulao de um ambiente Java

    TV. Boa parte das aplicaes que executam no Xlet View podem executar no Ginga-J.

    2.1.4 Xlet View

    O Xlet View, assim como o Ginga-NCL, tambm um sistema que simula a televiso

    digital interativa, permitindo a recepo e execuo de aplicativos em Java. Os Multimdia Home

    Plataform (MPH) vem em duas verses, aplicaes BVB-HTML e as aplicaes DVB-J, tambm

    conhecidas como Xlets. Uma interface Xlet permite uma fonte externa para iniciar e para um

    aplicativo. Esta capacidade fundamental para um ambiente de set-top-box (XLETVIEW, 2012).

    2.2 PROCESSAMENTO DE IMAGEM

    Para fundamentar o processamento de imagem foi utilizado bastante contedo do livro do

    Pedrini e Schwartz (2008) porque alm do livro ser em portugus, tem um contedo bastante

    didtico e de fcil entendimento e tambm utiliza bastante citao do Gonzalez e Woods (2001), um

    autor bastante renomado e muito citado no assunto de processamento digital de Imagem.

    Processamento de Imagens so tcnicas para a anlise de dados multidimensionais, que

    manipula imagens para obter informaes que podem conduzir tomada de deciso. O elemento

    principal a imagem ou um conjunto delas, captadas atravs de uma cmera, de um scanner laser,

    de um ultrassom, de um ressonador magntico, ou por qualquer outro meio.

    Segundo Persiano e Oliveira (1989) a computao grfica tem relao com trs sub-reas:

    Sntese de Imagens: produo de representaes visuais a partir das especificaes

    geomtricas e visuais de seus componentes.

    Processamento de Imagens: envolve tcnicas de transformao de imagens, tanto a

    imagem original quanto a imagem resultado, apresentam-se sob uma representao

    visual (geralmente matricial). Essas transformaes visam melhorar as caractersticas

    visuais da imagem.

  • 24

    Anlise de Imagens: procura obter a especificao dos componentes de uma

    imagem a partir de sua representao visual (primitivas geomtricas elementares que

    compem a imagem).

    Em processamento digital de imagens, existem vrios tipos de aplicao, onde se pode-se

    citar duas aplicaes bastante relevantes:

    Melhoria da informao visual para a interpretao humana.

    Processamento de dados de cenas para percepo automtica atravs de mquinas.

    O processamento digital de imagens tem como objetivo melhorar as caractersticas

    estruturais da imagem fornecendo subsdios para a sua interpretao, de tal forma a permitir, por

    exemplo, a sua utilizao para o reconhecimento de ambientes para aplicaes em robtica e

    tambm para outros processamentos, onde os algoritmos realizam operaes com o objetivo de

    segment-las.

    Um sistema de processamento de imagem formado por um conjunto de etapas, como

    ilustrado na Figura 7 e descrito a seguir, capaz de produzir um resultado a partir do domnio do

    problema. A etapa da aquisio responsvel pela captura das imagens por meio de um dispositivo

    e converter para o padro do seguinte processamento digital. Observando-se sempre qual ser o

    dispositivo a ser utilizado e qual o estado do ambiente, sua iluminao, objetos da cena, etc.

    (PEDRINI & SCHWARTZ, 2008).

    Ainda conforme o mesmo autor, mesmo tendo cuidado com o estado do ambiente, a imagem

    pode apresentar imperfeies devido iluminao, textura dos objetos, reflexos, etc. Portanto

    utiliza-se a etapa do pr-processamento, que tem por seu objetivo melhorar a imagem com a

    utilizao de tcnicas onde visam atenuar os rudos, fazer correes de contraste, brilho e

    determinadas propriedades da imagem. Na etapa de segmentao realizada a extrao da parte ou

    objeto de interesse que est contida na imagem, onde geralmente baseia-se na tcnica de deteco

    de bordas ou similaridade na imagem. J as etapas de representao e descrio so responsveis

    respectivamente por: armazenar e manipular os objetos de interesse que foram extrados da

    imagem; a extrao de caractersticas ou propriedades que venham a ser utilizadas na discriminao

    entre classes de objetos. Onde estas caractersticas so, em geral, descritas por atributos numricos

    que formam vetores de caractersticas.

  • 25

    Figura 7. Etapas de um sistema de processamento de imagens.

    Fonte: Adaptado de Pedrini e Schwartz (2008).

    Por fim, a etapa de reconhecimento e interpretao tambm respectivamente: o processo

    que identifica ou rotula os objetos da imagem baseando-se nas caractersticas disponibilizadas pelos

    descritores; e tem como funo atribuir um significado ao conjunto de objetos reconhecidos. A base

    do conhecimento contm o conhecimento sobre o domnio do problema codificado na forma de um

    sistema de processamento de imagem. A base do conhecimento dependente da aplicao, podendo

    variar sua complexidade e tamanho (PEDRINI & SCHWARTZ, 2008).

    A seguir na Figura 8 possvel ver os componentes de um sistema de processamento de

    imagens, os quais desempenham um importante papel em um sistema de processamento de imagem,

    sendo utilizados na aquisio, armazenamento, processamento, transmisso e exibio de imagens.

  • 26

    Figura 8: Componentes de um sistema de processamento de imagens.

    Fonte: Adaptado de Adaptado de Pedrini e Schwartz (2008).

    Para cada uma das etapas apresentadas na Figura 7, tm-se determinados dispositivos ou

    componentes, sendo diferentes para cada rea que ser utilizada dependendo da necessidade e

    capacidade para obter melhores componentes (PEDRINI e SCHWARTZ, 2008).

    Na etapa de aquisio existem diversos tipos de dispositivos, sendo que mais comuns so

    cmeras de vdeo, tomgrafo mdico, digitalizadores e satlites. Os dispositivos de aquisio

    apresentam diferentes caractersticas, entre elas a resoluo, velocidade da operao a preciso e o

    custo. As imagens precisam de alta capacidade de armazenamento, pois para o Processamento de

    Imagem necessita de boas qualidades de imagem para que possa ter um bom resultado do que se

    espera. Existem maneiras de se armazenar as imagens, algumas citadas na Figura 8, cada um para

    um caso especfico e uma necessidade diferente (PEDRINI e SCHWARTZ, 2008).

    J na etapa de exibio, o principal componente o monitor de vdeo, que por sua vez vem

    renovando a tecnologia. O monitor de tubos de raios catdicos est sendo trocados pelo monitor de

    cristal liquido e pelo monitor de plasma, trazendo melhor qualidade, e melhor nitidez, para o

    usurio. Outras vantagens so a diminuio do consumo de energia, o espao ocupado na mesa

    menor e por final, uma das mais importantes, menos agressivo para o olho humano, pois tem

  • 27

    baixa ou nenhuma emisso de radiao nociva aos olhos. No podendo esquecer tambm de citar as

    formas de imagens no papel, como a reproduo (PEDRINI & SCHWARTZ, 2008).

    A etapa de processamento varia conforme a necessidade de desempenho requerido pela

    aplicao. Quanto maior for o processamento, mais potente precisa ser o processador, pois

    determinadas tarefas podem demandar alto poder de processamento, tendo como exemplo o

    reconhecimento de objetos em tempo real, onde o trabalho constante e carregado. Entretanto,

    muitos sistemas de processamento de imagens podem ser executados por microprocessadores

    convencionais. Na etapa dos programas consiste em rotinas ou mdulos especficos para realizar

    determinada tarefa. Bibliotecas podem ser integradas em cdigos desenvolvidos por usurios ou em

    pacotes sofisticados de processamento de imagens. (PEDRINI & SCHWARTZ, 2008).

    O processamento de imagem basicamente explicado pelo processo de aquisio de uma

    imagem por uma maneira especfica, o processamento dessa imagem utilizando os algoritmos

    necessrios para cada domnio do problema, e depois a exibio da soluo para o usurio. Estes

    algoritmos podem ser diversos, alguns deles como Limiarizao, Dilatao, Eroso, Componentes

    Conexos sero explicados a seguir (PEDRINI & SCHWARTZ, 2008).

    2.2.1 Rudo na Imagem

    A imagem geralmente vem com alguma degradao no seu processo de aquisio,

    transformao ou processamento. Estas degradaes normalmente so chamadas de rudos. Alguns

    tipos de rudos so o rudo Impulsivo, Gaussiano, Poisson (PEDRINI & SCHWARTZ, 2008)

    Exemplos de rudo Impulsivo, Gaussiano sero exemplificados a seguir.

    O rudo impulsivo acontece quando h ocorrncia aleatria de pixels com valores de

    luminosidade que diferem significativamente dos valores dos seus pixels vizinhos. Um tipo de rudo

    impulsivo em que imagem degradada pela ocorrncia de pixels brancos e pretos conhecido como

    rudo sal-e-pimenta, o rudo Gaussiano acontece pela ocorrncia de pixels com valores de

    intensidade que variam conforme a distribuio Gaussiana. (PEDRINI & SCHWARTZ, 2008).

  • 28

    (a)

    (b)

    (c)

    Figura 9. Exemplos de Rudo.

    Fonte: Adaptado de Marques e Vieira (1999).

    Na Figura 9(a) apresentada uma figura normal, sem a presena de rudos, j na Figura 9(b)

    apresentado imagem com o rudo impulsivo (sal-e-pimenta) e por final na Figura 9(c)

    apresentado imagem com rudo Gaussiano.

    Estes rudos podem modificar muito o resultado esperado do problema, dependendo do

    rudo, no sendo tratado com algum algoritmo de filtragem pode ter um fracasso total no resultado.

    Podem-se citar exemplos de descontinuidade de um objeto ocasionado por um reflexo da luz, onde

    a utilizao da combinao dos algoritmos pode resolver o problema dependendo da gravidade e de

    como se utiliza (PEDRINI & SCHWARTZ, 2008).

    2.2.2 Morfologia Matemtica

    Morfologia significa o estudo da forma, porm em (PDI) a morfologia matemtica significa

    um conjunto de mtodos. Segundo Marques e Vieira (1999):

    Assim como na biologia, onde a expresso morfologia se refere ao estudo da estrutura dos

    animais e plantas, a morfologia matemtica, elaborada inicialmente por Georges Matheron e Jean

    Serra [Serra 1982], concentra seus esforos no estudo da estrutura geomtrica das entidades

    presentes em uma imagem. A morfologia matemtica pode ser aplicada em vrias reas de

    processamento e anlise de imagens, com objetivos to distintos como realce, filtragem,

    segmentao, deteo de bordas, esqueletizao, afinamento, dentre outras.

    O princpio deste mtodo testar a imagem com o elemento estruturante, ou tambm

    chamado de kernel, e analisar de qual forma este kernel cabe ou no na imagem. O formato destes

  • 29

    elementos estruturantes so to simples quanto matrizes, que determina quais pixels da imagem so

    retirados ou quais so adicionados aos objetos, consecutivamente eroso e dilatao, as operaes

    fundamentais da morfologia matemtica (BAUERMANN, 2008).

    Tambm necessrio saber o que objeto e o que fundo, em uma imagem binria.

    Imagens binrias so imagens em que cada pixel pode assumir dois valores: em geral o zero

    representado como preto, e o fundo; o branco o objeto, e pode ter valor de 1 ou de 255

    (BAUERMANN, 2008).

    Eroso:

    O processo de eroso consiste na imagem e no kernel, que responsvel por fazer a

    alterao da imagem, o kernel pode ter diferentes formas e tamanhos, dependendo de cada

    necessidade. (PEDRINI & SCHWARTZ, 2008).

    Na operao de eroso, o kernel sobreposto imagem em todas as posies

    possveis por um loop. O pixel que fica na posio da origem do kernel modificado da

    seguinte maneira:

    Se o elemento estiver em parte sobre o objeto e em parte sobre o fundo, o pixel que

    est na posio da origem passa a ser fundo. Portanto um pixel s pode permanecer no

    objeto (com valor 1) se, quando a origem do kernel estiver sobre a imagem, estando

    representado na Figura 10 (BAUERMANN, 2008).

    Figura 10. Exemplo de Eroso.

    Fonte: Adaptado de Marques e Vieira (1999).

  • 30

    Dilatao:

    O processo de dilatao tambm consiste na imagem e no kernel, que responsvel

    por fazer a alterao da imagem, este kernel pode ter diferentes formas e tamanhos,

    dependendo de cada necessidade. (PEDRINI & SCHWARTZ, 2008).

    O processo de dilatao consiste em obter a reflexo do kernel sobre sua origem e

    depois deslocar esta reflexo pela imagem que se deseja fazer a dilatao. A dilatao de

    uma imagem por um kernel , ento, o conjunto de todos os deslocamentos para os quais a

    interseo entre parte da imagem e o kernel inclui pelo menos um elemento diferente de zero

    (MARQUES & VIEIRA, 1999).

    Ou seja, na dilatao o que muda que quando o elemento est em parte sobre o

    fundo e em parte sobre o objeto, o seu centro passa a ser objeto. Isto aumenta o tamanho do

    objeto, podendo ser observado na Figura 11.

    Figura 11. Exemplo de Dilatao

    Fonte: Adaptado de Marques e Vieira (1999).

    Abertura:

    Abertura composta por uma eroso seguida de uma dilatao. Mesmo sendo

    operaes opostas, uma no desfaz a outra. O resultado de uma abertura depende da imagem

    inicial, mas pode ser uma imagem com uma borda mais lisa, eliminao de rudo ou

    pequenos defeitos, ou o aumento de buracos (BAUERMANN, 2008).

  • 31

    Figura 12. Seqncia para Abertura: Eroso e Dilatao.

    Fonte: Bauermann (2008).

    Na Figura 12 observa-se que j a parte da eroso j abriu vrias reas no smbolo de

    paus. Mas por sua vez, sendo feito apenas a eroso, o smbolo fica com um tamanho menor,

    portanto realizada uma dilatao em seguida para que a imagem retorne ao tamanho inicial

    (BAUERMANN, 2008).

    Fechamento:

    Fechamento o oposto da abertura, ocorre com uma dilatao seguida de uma

    eroso. Algumas vezes completa uma textura (como no exemplo do smbolo de paus), ou

    pode unir linhas que estavam prximas, mas no se tocavam (BAUERMANN, 2008).

    possvel fechar completamente o smbolo do ltimo exemplo usando duas

    dilataes e depois duas eroses. Tambm possvel mudar a forma do elemento

    estruturante para adaptar o resultado s necessidades de cada projeto ou experimento,

    podendo ser visualizado na Figura 13 (BAUERMANN, 2008).

  • 32

    Figura 13. Seqncia para Abertura: Dilatao e Eroso.

    Fonte: Bauermann (2008).

    2.2.3 Subtrao de Background

    O termo Background definido como um conjunto de pixels na imagem que no

    apresenta movimento, ou seja, so os pixels que no fazem parte dos objetos em movimento do

    ambiente. Explicando de outra forma, se uma imagem capturada por uma webcam com pessoas em

    movimentao, o Background seria toda a cena capturada pela webcam, menos as pessoas em

    movimentao, portanto o Background toda a parte esttica da cena capturada pela webcam

    (FRANCA, 2007).

    Ainda conforme o mesmo autor, aps a aquisio do Background, num segundo momento,

    enquanto o sistema captura os frames do ambiente pela webcam, ser possvel perceber objetos que

    se movem na cena. As imagens, obtidas a partir de ento, apresentam na cena onde se encontram os

    objetos que se movem quando identificam valores dos pixels diferentes dos pixels do Background.

    Portanto, toda regio das imagens do ambiente que destoam do Background em determinado grau

    uma candidata a objeto que se move. Uma das formas de computar a diferena entre regies

    calcular a subtrao entre o Background e a imagem atual. Essa tcnica de deteco e segmentao

    de movimento conhecida como Subtrao de Background.

    Subtrao de Background pode ser desenvolvida com diversas tcnicas de segmentao de

    objetos em uma cena para aplicaes que necessitam identificar algum movimento em uma cena.

  • 33

    Trata-se de uma comparao de uma imagem com uma mdia de imagens, o Background. As reas

    do plano de uma imagem que tem uma diferena significativa entre as imagens observadas e

    estimadas indicam a movimentao do objeto.

    Figura 14. Exemplo de Subtrao de Background

    Adaptado de: Song (2012).

    O nome Subtrao de Background vem da tcnica simples de subtrair uma imagem

    capturada de um Background, sendo que o background a mdia aritmtica de um nmero N de

    imagens capturadas pela webcam (IVOR, Ano Desconhecido).

    A Figura 14 apresenta uma sequncia de imagens que mostra como a Subtrao de

    Background. Na Figura A apresentada o Background selecionado. J na Figura B apresentada a

    imagem normal capturada por algum dispositivo. Na figura C foi executado a Subtrao de

    Background sem alterao da imagem, ou seja, no tinha uma pessoa mudando a cena do

    background. J na Figura D executado a Subtrao de Background com uma alterao na imagem,

    com uma pessoa no centro da cena. Todos os pixels diferentes do background so reconhecidos

    como uma alterao, e por final classificado com uma movimentao.

  • 3 DESENVOLVIMENTO

    Primeiramente importante explicar algumas modificaes feitas do projeto do TCC I para

    o TCC II. No decorrer do trabalho, foi descoberto que no seria possvel simular mudana de canal

    no Ginga-NCL, pois o Ginga-NCL tem o objetivo de incluso de contedo por canal.

    Com esta descoberta, muitas mudanas foram feitas em todo projeto. A mudana mais

    significativa do projeto foi na forma do objetivo principal da funcionalidade do sistema. Antes o

    objetivo seria controlar a TV Digital Interativa por movimentaes especficas realizadas pelo

    telespectador, estas movimentaes seriam reconhecidas pelo sistema, e cada movimentao

    reconhecida realizaria uma funo especfica cadastrada no sistema.

    Agora a funo principal do sistema mudou, no ser mais atravs de movimentaes

    especficas cadastradas no sistema, mas por movimentao em uma rea de interesse do vdeo, ou

    seja, foram definidas estas reas de interesse, e marcadas no vdeo que apresentado para o

    telespectador, e quando ocorre alguma alterao (movimentao) nestas regies, o sistema

    reconhece como um boto pressionado, sendo que cada boto realiza uma funo. Posteriormente

    ser melhor explicado e apresentado imagens do sistema.

    Esta alterao necessitou de uma alterao do ttulo do trabalho. Do ttulo anterior:

    Desenvolvimento de uma Ferramenta para Interpretao de Gestos para Controle da TV Digital

    Interativa para Desenvolvimento de uma Ferramenta para Interao com TV Digital Atravs de uma

    Webcam.

    Outra alterao relevante foi na utilizao do set-top-box virtual para os principais testes,

    anteriormente seria utilizado o Ginga-NCL, que foi alterado pelo Xlet View, que seria mais

    eficiente para o design do desenho no simulador, pois a linguagem utilizada era o Ginga-J, e no

    mais a linguagem LUA utilizada no Ginga-NCL. Esta escolha foi feita por um conhecimento maior

    da linguagem Java.

    Com a alterao do simulador para um que utilizava a linguagem Java, tambm foi decidido

    a alterao da linguagem da implementao do sistema que faria o processamento de vdeo, da

    linguagem C++ foi alterada para a linguagem Java, pelo mesmo motivo de maior domnio da

    linguagem.

  • 35

    Este captulo do trabalho basicamente dividido em duas partes, uma onde so apresentados

    os requisitos funcionais, requisitos no funcionais, os diagramas de caso de uso, de viso geral, de

    classes, atividade e sequencia, partes estas da modelagem do projeto proposto.

    J na segunda parte deste tpico apresentado a implementao do projeto, resultados

    obtidos e melhorias feitas no decorrer do projeto.

    3.1 REQUISITOS

    Os requisitos podem ser classificados em funcionais e no funcionais, o que proporciona

    uma melhor visualizao das funcionalidades que o sistema a ser implementado deve realizar. A

    seguir sero apresentados os requisitos que correspondem para a realizao deste trabalho de

    concluso de curso.

    3.1.1 Requisitos Funcionais

    Os requisitos funcionais so os requisitos que descrevem os comportamentos do sistema, as

    aes realizadas com as entradas de informaes, ou seja, eles descrevem as o que o sistema tem

    que fazer. Os principais requisitos funcionais da ferramenta proposta esto detalhados na Figura 15.

    Figura 15. Requisitos Funcionais

  • 36

    RF01 O sistema deve monitorar o ambiente no campo de viso que a webcam

    captura os frames e onde estaro os telespectadores realizando as movimentaes e

    verifica onde (qual rea), o telespectador est realizando movimento;

    RF02 Sistema calcula o Background da cena monitorada pela webcam, com uma

    mdia de cenas capturadas;

    RF03 A partir do monitoramento do telespectador pela webcam, a ferramenta

    sempre verifica se os movimentos dos telespectadores coincidem em alguma rea de

    interesse;

    RF04 Aps a verificao, a ferramenta deve realizar a funo relacionada com a rea

    de interesse que teve movimento;

    3.1.2 Requisitos No-Funcionais

    J os requisitos no-funcionais mostram como dever ser feito. So relacionados como

    padres de qualidade como confiabilidade, desempenho, robustez, etc. Definem se o sistema ser

    eficiente ou no para a tarefa que se prope a fazer. Tambm apresentam restries e especificaes

    de uso para os requisitos funcionais. Os principais requisitos no-funcionais da ferramenta proposta

    esto detalhados na figura 16.

  • 37

    Figura 16. Requisitos No-Funcionais

    RNF01 A ferramenta deve estar sempre monitorando, e as respostas devem ser em

    tempo real;

    RNF02 A webcam deve conter uma qualidade de no mnimo 2 Mega Pixels para

    garantir uma qualidade de imagem significativa com menos rudos;

    RNF03 A ferramenta deve monitorar qualquer pessoa no raio de viso da cmera, ou

    seja, ela reconhecer o movimento de qualquer telespectador neste raio;

    RNF04 A resposta ao comando deve ser instantnea, aumentando a impresso de

    tempo real;

    RNF05 O sistema que ir simular a TV Digital Interativa dever ser o Simulador

    Xlet View na plataforma Linux;

  • 38

    RNF06 O sistema operacional que ser utilizado para programar a ferramenta dever

    ser no ambiente Linux Ubuntu.

    3.2 DIAGRAMA DE VISO GERAL

    No diagrama de viso geral, representado pela Figura 17, so explicados quais so as

    principais funes do sistema, que j foram apresentados no diagrama de caso de uso, e como

    acontece a sequencia das atividades do sistema. Observa-se que partindo do pr suposto que a TV

    Digital e o Set-Top-Box estejam ligados.

    Figura 17. Diagrama de Viso Geral

  • 39

    3.3 DIAGRAMA DE CASOS DE USO

    No diagrama de caso de uso da Figura 18, pode-se ter melhor visualizao da dinmica do

    sistema, pois neste diagrama utiliza-se a estrutura dos Atores e suas respectivas Funes, os

    atores deste sistema podem ser visto pelo diagrama, que so o Telespectador e o Sistema. E este

    diagrama est relacionado s funcionalidades do sistema que ser modelado, onde se observa quem

    responsvel pelas funcionalidades.

    Figura 18. Diagrama de Casos de Uso

    Observando o diagrama pode-se visualizar que o Telespectador realizando um movimento

    controla a TV Digital Interativa, sendo que para ser possvel este controle da TV, primeiro o sistema

  • 40

    ir fazer todo um trabalho de processamento por trs, comeando pelo monitoramento dos

    movimentos do telespectador, seguindo pela verificao na base de conhecimento do sistema, assim

    verificando se o movimento realizado corresponde a alguma atividade, caso corresponda, o sistema

    ter interpretado qual foi o comando do telespectador e assim realizar a funo de seu comando,

    tornando possvel o controle da TV Digital Interativa.

    3.4 OUTROS DIAGRAMAS

    Neste tpico do trabalho sero mostrados os diagramas com as funes mais detalhadas de

    cada processo utilizado da UML, onde primeiramente ser apresentado o diagrama de classe, onde

    se encontram todas as classes que iro fazer parte do sistema com seus atributos e procedimentos.

    Depois ser apresentado quando necessrio os diagramas de atividades que tem a funcionalidade de

    apresentar as atividades de cada classe ou processo e em seguida o diagrama de sequencia, o qual

    tem a funo de mostrar a sequencia de cada etapa da classe apresentada.

    3.4.1 Diagrama de Classes

    Neste tpico sero apresentados dois diagramas de classes, um o diagrama de classes do

    projeto que faz a parte do processamento digital de imagem para identificar as movimentaes na

    cena e o outro diagrama, apresenta a classe para o desenvolvimento da aplicao do Xlet View

    Pode-se ver o diagrama de classes do pro na Figura 19, quis as funes e procedimentos das

    classes que sero desenvolvidas para a criao do sistema.

  • 41

    Figura 19. Diagrama de Classes do sistema de processamento de imagem.

    Pode-se ver no diagrama de classes da na Figura 19, quis as funes e procedimentos das

    classes que sero desenvolvidas para a criao do sistema de processamento digital de imagens, o

    sistema que identifica as movimentaes na cena.

    Cada classe tem seus atributos onde apenas as funes da mesma classe podem manipul-

    los, e cada classe tem tambm as funes e procedimentos que podem ser utilizados por uma

    declarao da classe por outra classe.

  • 42

    Figura 20. Diagrama de classes do Simulador Xlet View

    Na Figura 20 apresentado o diagrama de classes do Xlet View desenvolvido em Java, que

    o simulador do set-top-box utilizado para fazer os principais testes do sistema. Apresenta todas as

    funes existentes da classe. Como pode ser observado, este projeto trata-se de apenas uma classe,

    pois um projeto simples que tem apenas a funo de abrir um arquivo e ler a primeira linha para

    saber qual foi o boto pressionado e desenhar no simulador. Imagens sero apresentadas a seguir.

    3.4.2 Diagramas de Atividade

    Os diagramas de atividade que sero apresentados a seguir tem uma funo bastante

    importante para o entendimento de cada algoritmo desenvolvido, qual a funo separada que faz no

    sistema.

  • 43

    3.4.2.1 Diagrama de Atividade de Seleo de Frames para Calculo do Background

    No primeiro diagrama de atividade, o diagrama de atividade de Seleo de Frames para

    Calculo do Background apresentado na Figura 21, explica o funcionamento do algoritmo que

    realiza a seleo dos frames capturados para depois calcular o background da imagem.

    Figura 21. Diagrama de Atividade de Seleo de Frames para Calculo do Background

    O algoritmo comea com a seleo do frame atual capturado pela webcam, verificado por

    uma varivel global se o sistema j est calculando o background em uma Thread. Se estiver

    calculando o background, no faz nada e vai para o prximo frame, caso contrrio, verificado pelo

  • 44

    calculo matemtico de MOD 3 do contador dos frames capturados pela webcam, fazendo com que

    sejam selecionados de trs em trs frames, quando no o terceiro frame, no faz nada e captura o

    prximo frame, caso contrrio, coloca o frame em uma lista que ser utilizada para o calculo do

    background. Este processo realizado at juntar 30 frames (nmero definido a partir de testes

    realizados com o algoritmo e mostraram um melhor resultado), Aps o contador chegar a 30 frames

    capturados, o processo finalizado.

    3.4.2.2 Diagrama de Atividade Clculo do Background

    O diagrama de atividade apresentado na Figura 22 do calculo do background mostra o

    funcionamento do algoritmo que faz o clculo da mdia do background.

    Figura 22. Diagrama de Atividade do Clculo do Background

  • 45

    O algoritmo pega a lista com todos os frames e em um lao de repetio at somar todos os

    pontos pixels de cada frame. O padro de cores utilizado o RGB (Red, Green e Blue), o

    algoritmo soma separadamente cada canal de cor do padro e guarda em um frame provisrio a

    soma de cada canal de cor. Aps a soma de todos os canais de cores de todos os frames

    selecionados for concluda, cada canal de cor dividido pelo nmero de frames somados, aps esta

    etapa, obtido mdia de todos os frames, ento este frame selecionado como o Background da

    vez, at ser calculado o novo Background. Por final a lista com os frames selecionados zerado

    para a nova seleo de frames.

    3.4.2.3 Diagrama de Atividade Subtrao de Background

    Figura 23. Diagrama de Atividade do Subtrao de Background

  • 46

    A Figura 23 apresenta o diagrama de atividade da Subtrao de Background mostra em um

    geral todo o funcionamento do sistema, partindo do ponto em que o background j est calculado,

    nesta parte o sistema ir identificar a movimentao na cena. Este algoritmo fica em um lao

    infinito capturando os frames pela webcam, ento o sistema subtrair o background de cada frame

    capturado, e todo pixel diferente de zero identificado como movimentao na cena.

    3.5 IMPLEMENTAO

    Para a realizao deste trabalho de concluso de curso e realizao dos testes foi necessrio

    o desenvolvimento de dois sistemas, um sistema realiza a captura dos frames, calcula o background

    e verifica a movimentao na cena. O outro simula a televiso digital interativa, executando

    pressionamento dos botes Azul, Amarelo, Verde e Vermelho do controle da televiso.

    Todos os dois sistemas foram utilizados a linguagem de programao Java no ambiente de

    desenvolvimento Netbeans 7.1 com o JDK 6.

    O primeiro sistema tem a funo de capturar os frames e a partir da Subtrao de

    Background identificar as movimentaes na cena. J o segundo tem o papel de simular o set-top-

    box e a TV Digital Interativa, utilizando o Xlet VIew, que utilizado a linguagem Java-J.

    Posteriormente ser mais bem explicado cada sistema, e como foram desenvolvidos os algoritmos.

    3.5.1 Aquisio de Informao

    Para uma explicao melhor de como foi desenvolvido e como funciona o sistema, ser

    explicado primeiro como feita a aquisio da informao, e depois desta aquisio, como so

    realizadas todas as funcionalidades do sistema.

    3.5.1.1 Imagem

    A aquisio da imagem feita por uma webcam conectada ao computador. Estas imagens

    so os frames capturados e que so utilizados para o processamento de vdeo. Para a aquisio dos

    frames, utilizada a biblioteca JavaCV, que uma biblioteca que veio a partir e depende do

    OpenCV para funcionar.

    A Figura 24 apresenta um exemplo de um dos frames capturados pela webcam e que

    utilizado em todo o processamento para clculo do background e para a Subtrao de Background,

    que a parte principal do sistema para a deteco de movimento.

  • 47

    Figura 24. Imagem de um frame capturado pela webcam

    3.5.1.2 Background

    Aps a captura das imagens, utilizado o algoritmo do clculo do background, ara criar esta

    informao background. Informao que ser utilizada posteriormente pelo sistema para a

    deteco de movimento.

    O background calculado em paralelo com o sistema, e captura os frames, quando termina o

    calculo de um background, iniciada a nova seleo de frames para a atualizao do novo

    background. Esta atualizao faz com que seja possvel que o sistema possa trabalhar com a

    alterao da cena capturada pela webcam.

    Na Figura 25 apresentada uma imagem de exemplo de como fica o background depois de

    calculado. Como pode observar, a imagem fica meio borrada, pois a mdia dos frames

    selecionados, e cada frame teve uma alterao da imagem.

  • 48

    Figura 25. Imagem do Background

    3.5.1.3 Movimento

    Com a informao de background pronta, a prxima etapa do sistema gerar a informao

    movimento, que um frame com a imagem resultado da subtrao da imagem atual pelo

    background. Esta informao adquirida aps esta subtrao, fazendo uma leitura deste frame, e

    verificado se existem pixels diferentes de zero. Pois cada pixel da imagem representado pelo

    conjunto de trs nmeros inteiros em ordem, representando o sistema de cores RGB, j explicado

    anteriormente. Cada pixel diferente de zero, reconhecido com uma alterao do background para a

    imagem, ou seja, houve uma movimentao de algum objeto na cena, e automaticamente altera o

    pixel daquela posio.

    A seguir apresentada a Figura 26 que mostra uma imagem exemplo de como ficam os

    frames aps a subtrao do background da imagem, no resultado da Subtrao de Background

    apresentado diferena das imagens, onde as partes brancas representam as movimentaes da

    cena, e o telespectador pode acompanhar para saber onde est sua mo em relao aos botes

    simulados.

  • 49

    Figura 26. Imagem da deteco de movimento

    A seguir possvel ver como fica a Subtrao de Background no Cdigo 1. Nas linhas 5, 6 e

    7 possvel ver o calculo da Subtrao Background, onde uma varivel para cada canal RGB

    recebe o resultado da subtrao da imagem do Background.

    1 for (int i = 0; i < backgroud.getWidth(); i++) {

    2 for (int j = 0; j < backgroud.getHeight(); j++) {

    3 Color c = new Color(backgroud.getRGB(i, j));

    4 Color c1 = new Color(img.getRGB(i, j));

    5 int dr = c.getRed() - c1.getRed();

    6 int db = c.getBlue() - c1.getBlue();

    7 int dg = c.getGreen() - c1.getGreen();

    8 int dif = ((dr > 0 ? dr : -dr) + (dg > 0 ? dg : -dg) + (db > 0 ? db : -db)) / 3;

    9 imgf.setRGB(i, j, new Color(dif, dif, dif).getRGB());

    10 }

    11 }

    Cdigo 1. Trecho de cdigo do Calculo do Background Subtraction Detectar Movimento

  • 50

    3.5.1.4 Boto Pressionado

    O boto pressionado reconhecido quando acontece uma movimentao por mais de quatro

    segundos em uma das quatro reas desenhadas no vdeo que apresenta a movimentao do usurio

    na cena, estas reas so destacadas por desenhos quadrados e nas cores Azul, Amarelo,

    Verde e Vermelho no campo de visualizao do telespectador. Estes botes so simulaes dos

    botes de integrao do controle da TV Digital Interativa.

    Figura 27. Imagem dos botes do sistema

    Na Figura 27 pode-se observar como os botes de interatividade do controle remoto com a

    TV Digital ficaram destacados no sistema de processamento das imagens. Eles so desenhados com

    prprios recursos de desenhos 2D do Java, onde informado qual o tamanho e posio do quadrado

    que ser desenhado no painel, que neste caso, nos frames processados pela Subtrao de

    Background onde mostra as movimentaes na cena, explicado anteriormente.

    O pressionamento do boto reconhecido atravs de quatro verificaes, onde cada

    verificao responsvel por um boto. Atravs do tamanho e posio dos botes desenhados,

    possvel verificar separadamente as reas respectivas da Subtrao de Background, ou seja,

    verificado nessas reas se algum pixel diferente de zero (como j explicado anteriormente na

    movimentao).

    Um fator importante que a partir de testes feitos com o sistema funcionando foi estimado

    que para reconhecer o boto pressionado, necessrio que a rea do boto reconhea movimentao

    em no mnimo 70% de toda sua rea e apenas depois de quatro segundos consecutivos

    reconhecendo estes 70% de movimentao em sua rea.

    Foram feitos vrios testes diferentes, com o tamanho dos botes, porcentagens mnima para

    reconhecer o pressionamento e tempo de movimentao na rea para reconhecer o pressionamento

    do boto. Estes testes foram realizados para chegar a um resultado bom e seguro para no

    reconhecer qualquer movimento como pressionamento do boto.

  • 51

    O tamanho do boto foi calculado a uma distncia de mais ou menos um metro do

    telespectador da webcam que captura os movimentos, pois quanto mais distante, menor fica o

    tamanho da mo do telespectador, j a porcentagem de rea foi feita a partir do tamanho da mo e

    do quadrado, para que no tivesse o problema do tamanho da mo ficar menor do que o tamanho do

    que 70% do tamanho dos botes.

    A porcentagem que deve ocupar a rea do boto importante para evitar que qualquer

    objeto ou parte de mo que se posicione na rea de algum boto, reconhea como um desejo do

    telespectador de pressionar um boto.

    J o tempo de quatro segundos foi estipulado para evitar que algum objeto ou telespectador

    por passagem nas reas reconhecidas como botes sejam reconhecidos como pressionamento de um

    boto. A partir dos testes concluiu-se que os valores definidos tanto para o tamanho do boto, rea a

    ser ocupada por movimentao e tempo de permanncia, so valores satisfatrios com os resultados

    obtidos.

    3.5.2 Sistema de Processamento

    A partir de todo o detalhamento feito sobre o funcionamento do sistema feito anteriormente,

    agora apresentado como ficou o sistema de processamento na Figura 28, a figura mostra uma

    imagem tirada do sistema em funcionamento. No sistema o telespectador pode acompanha todas as

    partes descritas no tpico anterior.

    No quadrado 1 destacado na Figura 28 o telespectador pode visualizar qual o background

    calculado do momento, no quadrado 2, o telespectador pode visualizar a captura dos frames da cena

    normalmente, ou seja, pode ser visto tudo o que est acontecendo no momento e poder acompanhar

    sem nenhum processamento. J no quadrado 3, possvel visualizar o que identificado como

    movimento da cena, j explicado na aquisio de informao do movimento.

  • 52

    Figura 28. Imagem do Sistema em funcionamento

    Este sistema roda e paz todo o processamento em um computador, pelo fato de no existir

    um set-top-box com uma webcam integrada, todo o processamento tem ser feito no computador

    para depois interagir com o Xlet View, que tambm roda no computador simulando um set-top-box,

    ou ser integrado at mesmo com um set-top-box. Os dois testes feitos com o Xlet View e o set-top-

    box sero apresentados a seguir.

    3.5.3 Aplicao no Xlet View

    A aplicao no Xlet View a outra parte do TCC, esta aplicao pode executar sistemas

    desenvolvidos em Java. A aplicao utilizada pode ser visualizada com a Figura 29. Utilizando esta

    aplicao, foi desenvolvido um cdigo em Java tambm para fazer a leitura de um arquivo e simular

    um pressionamento de boto e desenhar na tela que simula o monitor da televiso.

  • 53

    Figura 29. Imagem do Xlet View

    A partir da aplicao j existente do Xlet View visualizada anteriormente, no menu

    Applications, selecionado o cdigo Java desenvolvido para abrir um arquivo TXT gerado pelo

    sistema de processamento dos frames capturados para ver qual boto pressionado.

    A seguir apresentado um trecho do cdigo da aplicao desenvolvida, utiliza o arquivo

    TXT lido para saber qual boto foi pressionado e pintar o boto na tela. Posteriormente ser

    mostrado como feita esta integrao.

    1 public void startXlet() throws xjavax.tv.xlet.XletStateChangeException {

    2 getResources();

    3 addKeyListener(this);

    4 boolean a = true;

    5 while (a) {

    6 String s = "not read";

    7 try {

  • 54

    Cdigo 2. Cdigo Java para ler qual boto foi pressionado

    8 File carouselFile = new File("../../comandos.txt");

    9 FileInputStream inFile = null;

    10 inFile = new FileInputStream(carouselFile);

    11 StringBuffer sb = new StringBuffer();

    12 int b = 0;

    13 while ((b = inFile.read()) != -1) {

    14 sb.append((char) b);

    15 }

    16 s = sb.toString();

    17 if (s.trim().equalsIgnoreCase("bt1")) {

    18 htb.setBackground(Color.RED);

    19 repaint();

    20 }

    21 if (s.trim().equalsIgnoreCase("bt2")) {

    22 htb.setBackground(Color.GREEN);

    23 repaint();

    24 }

    25 if (s.trim().equalsIgnoreCase("bt3")) {

    26 htb.setBackground(Color.YELLOW);

    27 repaint();

    28 }

    29 if (s.trim().equalsIgnoreCase("bt4")) {

    30 htb.setBackground(Color.BLUE);

    31 repaint();

    32 }

    33 inFile.close();

    34 } catch (IOException e) {

    35 e.printStackTrace();

    36 }

    37 }

    38 htb.setBackground(Color.blue);

    39 }

  • 55

    Na Figura 30 apresentado como fica o simulador Xlet View depois de ser executado o

    Cdigo 2. Como possvel ver, foi reconhecido que tinha um boto pressionado no arquivo TXT, e

    o sistema do Xlet View, desenhou e pintou o boto para simular o pressionamento do boto de

    integrao do controle remoto.

    Figura 30. Boto desenhado no Xlet View

    3.5.3.1 Integrao Sistema de Processamento e Aplicao Xlet View

    Aps explicar separadamente as duas aplicaes, possvel compreender melhor como

    feito a integrao entre os dois sistemas, e a partir da Figura 31 visualizar uma sequncia de

    imagens que mostra a aplicao funcionando.

    Na Figura 31 possvel ver os dois sistemas rodando no computador. Por questo de espao,

    um ficou em cima do outro, mas sem atrapalhar a visualizao das aes que ocorrem nos dois

    sistemas.

  • 56

    Foram criados dois quadros de destaque, para separa os dois sistemas na figura, o quadro um

    apresenta o sistema de processamento de imagem, a Subtrao de Background. Na imagem

    possvel ver que o telespectador est pressionando o terceiro boto da direita para a esquerda, o

    boto Amarelo. Quando o sistema reconhece o pressionamento, j explicado anteriormente, o

    sistema grava o nome referente ao boto pressionado em um arquivo na pasta local do executvel

    do Xlet View qual o boto pressionado, e no quadro dois, possvel ver que o boto foi pintado de

    Amarelo.

    Figura 31. Integrao entre o Sistema de Processamento de Imagem e o Xlet View

    A mensagem gravada no arquivo TXT igualmente reconhecida pelo aplicativo

    desenvolvido para o Xlet View. Cada boto pressionado tem um nome diferente, que reconhecido

    pelo Xlet View. Na gravao dos botes foram nomeados como bt1, bt2, bt3 e bt4, da

    direita para a esquerda. Sendo ento as cores consecutivas: Vermelho, Verde, Amarelo e

    Azul.

  • 57

    Na Figura 32 apresentada uma sequncia de imagens mostrando a integrao entre os dois

    sistemas, pode-se observar nesta sequncia a troca de cores dos botes desenhados no Xlet View

    (quadro dois da Figura 31) conforme os botes so pressionados no sistema desenvolvido para a

    deteco de movimento e gravao do boto pressionando no arquivo TXT (quadro um da figura

    31).

    (a)

    (b)

    (c)

    (d)

    Figura 32. Sequncia de imagens mostrando a integrao do sistema de processamento com o Xlet

    View

    Na Figura 32 imagem (a) quando o telespectador posiciona a mo no boto vermelho, o

    sistema grava no arquivo TXT o comando bt1. Na imagem (b), o boto pressionando o boto

    verde, e seu comando gravado no TXT bt2. Na imagem (c), o boto pressionado o

    amarelo, e o comando bt3. E por ultimo, na imagem (d), o boto Azul pressionado e o

    comando gravado bt4.

  • 58

    Na sequncia de imagens possvel ver que as cores pintas nos botes do aplicativo do Xlet

    View so correspondentes aos botes pressionados no sistema de deteco de movimento e

    pressionamento de botes.

    Enquanto o sistema de processamento de imagem para deteco de movimentos e

    pressionamento dos botes grava no arquivo TXT os comandos referentes aos botes pressionados

    j citados anteriormente, o aplicativo do Xlet View em um loop infinito l o arquivo TXT de

    comandos e quando tiver um comando de boto pressionado, o aplicativo do Xlet View, pinta o

    boto com a cor referente ao boto pressionando no sistema de deteco de movimento.

    3.5.3.2 Integrao Sistema de Processamento e Set-Top-Box

    Depois dos testes realizados com o Xlet View, foi feito um teste com um set-top-box

    conectado a uma TV Digital, tendo a mesma funo que o Xlet View, foi desenhado quadrados na

    aplicao que roda dentro do set-top-box na linguagem LUA.

    A Figura 33 apresenta uma fotografia da integrao entre os sistemas, o sistema de

    pressionamento de boto executado no computador e grava o comando referente cor do boto

    pressionando, enquanto o set-top-box acessa os comandos e executa o sistema na TV Digital.

    Figura 33. Integrao entre o sistema e o Set-top-box conectado com a TV

  • 59

    Esta aplicao foi desenvolvida por um especialista na rea de programao LUA para

    aplicaes de TV Digital Interativa para integrao com o sistema de pressionamento de botes

    desenvolvido neste trabalho de concluso de curso e testes mais reais do que apenas em um

    simulador de set-top-box como o Xlet View.

    O sistema desenvolvido acessa pela rede um servidor Tomcat criado na mquina que

    executa o sistema que identifica os botes pressionados, e grava no arquivo TXT para acesso do

    Xlet View, e tambm no localhost da mquina para ser acessado remotamente pelo set-top-box e

    da mesm