APRESENTAÇÃO
É com grande prazer que apresentamos o primeiro número de 2009, edição Especial, da Revista
Eletrônica do Centro de Ciências Exatas, Tecnológicas e da Natureza, chamada TECCEN.
A TECCEN é resultado de um esforço do CECETEN (Centro de Ciências Exatas, Tecnológicas e da
Natureza) e dos seus cursos e conta com o trabalho voluntário de pesquisadores da USS e de outras
instituições de ensino e pesquisa do Brasil, para a avaliação, edição e revisão dos artigos submetidos.
A TECCEN é um espaço voltado para o fortalecimento de publicação de artigos, tutoriais e resultados de
pesquisas de alta qualidade voltada para área de Ciências Exatas, Tecnológicas e da Natureza.
Nesta edição Especial temos os melhores artigos publicados e escolhidos pela comissão avaliadora do II
WorkShop de Informática Aplicada – II WIA – e o I Wokshop de Computação e Saúde da Região
Serrana do Estado do Rio de Janeiro – COMSAU – realizado na UNIFESO – em Teresópolis – Rio de
Janeiro. A comissão avaliadora levou em consideração os seguintes critérios para seleção dos trabalhos:
relevância do tema, qualidade técnica e científica e organização e linguagem.
O primeiro artigo é um trabalho de pesquisadores da UNIFESO e PUC-RIO intitulado “Ambiente visual
para o desenvolvimento de jogos eletrônicos”. Em seguida temos um trabalho de pesquisadores da USP
sobre processamento de imagens cujo título é “Rastreamento de jogadores de futebol em seqüência de
imagens”.
O terceiro artigo, pesquisadores da UNIFESO e PUC-RIO, trata do tema computador usando visão
computacional. O quarto artigo descreve um sistema computacional para representação e reconhecimento
de som aplicado à ausculta cardiovascular. Os autores também são da UNIFESO e PUC-RIO. Também de
autores da UNIFESO e PUC-RIO o quinto artigo mostra os estudos de uma ferramenta computacional
para identificação de faces em imagens bidimensionais.
O sexto artigo, de Professores e Pesquisadores do Centro Universitário do Pará, Centro de
Informática/UFPE, Laboratório de Geoprocessamento-IEC e Instituto Evandro Chagas/SVS/MS, mostra o
desenvolvimento de um Banco de Dados Geográficos para a Análise Espacial da Lashimaniose Visceral
em Cametá-PA.
O sétimo artigo, de autores da Universidade Severino Sombra, mostra um tutorial para desenvolvimento
de jogos 2D usando a linguagem Java. O oitavo artigo, de autores da Universidade Severino Sombra,
mostra o desenvolvimento e utilização de Tecnologia da Informação aplicada a gerenciamento de acervo
documental histórico.
Boa leitura para todos e aproveito para comunicar que novas contribuições para o quarto número da
TECCEN, cujo lançamento será para junho de 2009, serão bem-vindas.
Editor da Revista TECCEN
Carlos Vitor de Alencar Carvalho
Revista Eletrônica – TECCEN
Vassouras
v. 2
n. 1
março
2009
Os artigos publicados na Revista TECCEN são de responsabilidade de seus autores. As informações neles
contidas, bem como as opiniões emitidas, não representam pontos de vista da Universidade Severino
Sombra.
Revista Eletrônica TECCEN - Centro de Ciências Exatas, Tecnológicas e da
Natureza
Revista Semestral da Universidade Severino Sombra
Edição Especial - 2009
Presidente da FUSVE e Reitor da USS
Américo da Silva Carvalho
Vice-Presidente executivo da FUSVE e Vice-Reitor da USS
Antônio Orlando Izolani
Pró-Reitora de Ensino de Legislação
Profa. Therezinha Coelho de Souza
Diretor do Centro de Ciência Exatas, Tecnológicas e da Natureza
José Augusto Teixeira de Lima Junior
Editor Responsável
Carlos Vitor de Alencar Carvalho
Conselho Consultivo
Ana Maria Severiano de Paiva
Matemática
USS e FAETEC
Anderson Alvarenga de M. Meneses
Engenharia e Física
USS e Faculdade Prof. Miguel
Ângelo da Silva Santos
Carlos Eduardo Cardoso
Doutor
USS
Carlos Eduardo Costa Vieira
Ciência da Computação
UNIFESO e UNIFOA
Carlos Vitor de Alencar Carvalho
Sistemas de Informação
USS e UNIFOA
David Villas Boas
Engenharia Ambiental
USS e IST
Elizabeth Oliveira Mendes
Matemática
USS
Érica Nogueira
Física
Observatório Nacional
Felipe da Costa Brasil
Geografia
USS, IST e UNESA
Frank Silva Bezerra
Biologia e Radiologia
USS
Geovani Nunes Dornelas
Matemática
USS e IST
Hélio Paiva Amorim
Engenharia Elétrica
USS e CEPEL
Ilydio Pereira de Sá
Matemática
USS e UERJ
Isabelle de Araujo Telles
Engenharia
Tecgraf/PUC-Rio
Janaina Veiga Carvalho
Sistemas de Informação
USS
José Américo Rodrigues Araújo Filho
Ciência da
Computação/Matemática
USS e UEZO
José Leandro Casa Nova
Engenharia Elétrica
USS
Julio Cesar da Silva
Ciência da Computação
UNIFESO e PUC-Rio
Lúcia Aversa Vilela
Matemática
USS
Luzia Teixeira de Azevedo S. Sêmedo
Engenharia Ambiental
USS e UFRJ
Marco Antonio. S. Soares
Química
USS e UFRRJ
Marco Antonio Pereira Araújo
Sistemas de Informação
USS
Marise Maleck
Biologia
USS e FIOCRUZ
Miguel R. F. Neto
Química
USS
Misael Alberto Rabanal Ramirez
Sistemas de Informação
USS
Ricardo Amar Aguiar
Engenharia Elétrica
USS e CEFET-RJ
Salete de Oliveira Buffoni
Engenharia
UFF
Tereza Aparecida Ferreira
Biologia
USS e IST
Vânia Felippi G. Carvalho Pereira
Biologia
USS
William Costa Rodrigues
Engenharia Ambiental
USS
Normas editoriais:
As normas editoriais encontram-se dentro do arquivo modelo no formado Word
disponível no site da Revista Eletrônica – TECCEN.
Contato:
Universidade Severino Sombra
Centro de Ciências Exatas Tecnológicas e da Natureza
Av. Expedicionário Oswaldo de Almeida Ramos, 280, Centro
Vassouras – RJ
CEP : 27700-000
Professores:
José Augusto Teixeira de Lima Junior ([email protected] )
Carlos Vitor de Alencar Carvalho ([email protected])
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
SUMÁRIO
Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos
2
Diego Cordeiro Barboza (UNIFESO) e Júlio César da Silva (UNIFESO e DEC/PUC-Rio)
Interação Humano - Computador usando Visão Computacional
9
Bernardo Bucher B. Barbosa (UNIFESO) e Júlio César da Silva (UNIFESO e DEC/PUC-Rio)
Desenvolvimento de Software Educacional para Representação
Reconhecimento de Som Aplicado à Ausculta Cardiovascular
e
17
Bruno Carlos da C. Costa (UNIFESO), Leandro Segheto Moraes (UNIFESO), Júlio César da
Silva (UNIFESO e DEC/PUC-Rio), Elisabete do Rêgo Lins (UNIFESO), Marco Antônio Freire
Allemão (UNIFESO) e Wolney de Andrade Martins (UNIFESO)
Identificação de Faces em Imagens Bidimensionais
27
David de S. A. Pereiral (UNIFESO), José Antônio R. de Rapozo (UNIFESO), Júlio César da
Silva (UNIFESO e DEC/PUC-Rio), Eugênio da Silva (UNIFESO e ICA/PUC-Rio)
Desenvolvimento de um Banco de Dados Geográficos para a Análise
Espacial da Lashimaniose Visceral em Cametá-PA
37
Cláudia Souza (LabGeo/IEC/SVS/MS), Douglas Gasparetto (LabGeo/IEC/SVS/MS), Cleice T.
N. Souza (CESUPA e LabGeo/IEC/SVS/MS), Nelson Soffiatti (LabGeo/IEC/SVS/MS), Roberto
Brandão (LabGeo/IEC/SVS/MS) e Nelson Veiga (LabGeo/IEC/SVS/MS)
Rastreamento de Jogadores de Futebol em Seqüência de Imagens
44
Rodrigo D. Arnaut (EPUSP) e Anna H. R. Costa (EPUSP)
Tutorial para o Desenvolvimento de Jogos 2D usando a Linguagem Java
54
Soraia Teixeira Barbosa (USS) e Carlos Vitor de Alencar Carvalho (USS e UNIFOA)
Tecnologia da Informação
Documental Histórico
Aplicada
a
Gerenciamento
de Acervo
Kayo Delgado Medeiros de Almeida (USS), Elon Gomes Vieira (USS), Carlos Vitor de Alencar
Carvalho (USS e UNIFOA), Magno Fonseca Borges (USS), José Jorge Siqueira (USS), Antônio
de Paula Pedrosa (USS), Douglas Moreno Moreira (USS) e Bruno M. Lemos (USS)
i
64
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
Ambiente Visual para o Desenvolvimento de Jogos
Eletrônicos
Diego Cordeiro Barboza1, Júlio César da Silva2
1
UNIFESO, Centro de Ciências e Tecnologia, Curso de Ciência da
Computação, [email protected]
2
UNIFESO, Centro de Ciências e Tecnologia, Curso de Ciência da
Computação; PUC-Rio, Departamento de Engenharia Civil,
[email protected]
Resumo. Este artigo apresenta o desenvolvimento de um software para auxílio
ao desenvolvimento de jogos eletrônicos, no qual é possível definir a lógica do
jogo utilizando apenas componentes gráficos reutilizáveis, sem necessidade de
codificação. O trabalho trata do desenvolvimento de um wrapper para a
biblioteca gráfica utilizada, um framework para o desenvolvimento de jogos
em geral e a ferramenta gráfica em si em conjunto com um gerador de código
responsável por traduzir as ações do usuário em código-fonte em uma
linguagem de programação.
1
Introdução
Há um crescente interesse pelo desenvolvimento de jogos eletrônicos, tanto no mercado
quanto no meio acadêmico.
A indústria de jogos eletrônicos tem obtido lucros cada vez maiores nos últimos
anos, atingindo cerca de US$ 9,5 bilhões somente nos Estados Unidos no ano de 2007
[WIKIPEDIA 2009]. Estes jogos são desenvolvidos para diversas plataformas, entre
elas aparelhos de videogame domésticos, dispositivos móveis, aparelhos celulares e
computadores pessoais.
Além dos jogos comerciais, vendidos em lojas ou por serviços de venda digital,
existem outras modalidades como advergames, voltados à publicidade de marcas e
produtos; business games, desenvolvidos para o treinamento e aprendizado; e casual
games, jogos menores, mais simples e com uma menor curva de aprendizado.
No meio acadêmico, os jogos eletrônicos são utilizados como ferramentas
educativas e o processo de desenvolvimento pode ser aplicado em diversas disciplinas
de cursos de Ciência da Computação e similares. O desenvolvimento de jogos pode ser
utilizado para exemplificar conceitos de engenharia de software, matemática, física,
computação gráfica, programação, inteligência artificial, comunicação em redes, entre
outros.
Nos últimos anos houve um considerável aumento na quantidade de cursos
voltados ao desenvolvimento de jogos eletrônicos no Brasil, distribuídos entre cursos de
graduação, pós-graduação, cursos livres, de extensão e especialização [ABRAGAMES
2008]. Existem também eventos, como o SBGames [SBGAMES 2008], voltados à
promoção da área no meio acadêmico.
2
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
O desenvolvimento de jogos não é, no entanto, uma tarefa trivial. Há uma alta
complexidade relacionada à elaboração de conteúdo e estilo do jogo, criação de enredos,
escolha e desenvolvimento de tecnologias, criação de interfaces etc. Na área de
programação, um desenvolvedor iniciante pode encontrar dificuldades em escrever
códigos para manipulação de recursos, testes de colisão, gerenciamento de memória e
diversas outras tarefas comuns ao desenvolvimento de jogos. E mesmo um
programador experiente está sujeito a erros de codificação, que podem ser difíceis e
custosos de se identificar e corrigir.
Este trabalho tem como objetivo apresentar uma ferramenta que possibilite o
desenvolvimento de jogos eletrônicos utilizando-se de um ambiente gráfico, onde o
usuário possa definir a lógica do jogo através de componentes visuais, sem necessidade
de codificação. A ferramenta, chamada Visual Game, propicia um maior nível de
abstração no desenvolvimento, ainda que reduza a liberdade do desenvolvedor, que
passa a estar limitado pelos recursos oferecidos pelo ambiente.
2
Ambiente Visual
O Visual Game é um ambiente que tem por finalidade simplificar o desenvolvimento de
jogos, tornando o processo mais acessível através da utilização de componentes visuais
e da geração de código-fonte automática. Desta forma, o usuário tem que se preocupar
somente com a lógica do jogo, deixando de lado questões relacionadas à sintaxe da
linguagem de programação e ao gerenciamento de recursos e memória.
Este ambiente tem como público alvo:
•
Professores - que podem utilizá-lo como ferramenta de auxílio no ensino de
desenvolvimento de jogos e lógica de programação;
•
Estudantes - que podem direcionar o estudo para questões específicas e deixar a
codificação de lado momentaneamente;
•
Desenvolvedores de um modo geral - que podem utilizar o ambiente para
desenvolver jogos completos, se beneficiando da maior abstração, ou protótipos
que podem ser finalizados posteriormente, graças à possibilidade de exportar o
código-fonte gerado automaticamente pela ferramenta.
O desenvolvimento do Visual Game foi feito com a linguagem de programação
C# e o ambiente Microsoft.Net [WIHLIDAL 2006], em conjunto com as bibliotecas
Allegro (para a parte gráfica) e IrrKlang (para os efeitos sonoros).
O ambiente visual é a parte central do projeto. Nele são construídos os jogos que
posteriormente têm seu código-fonte gerado automaticamente por um componente do
ambiente. Este código é gerado de acordo com uma estrutura definida no Visual Game
Framework, um framework voltado para o desenvolvimento de jogos em geral, que se
utiliza do Allegro e do IrrKlang para desenhar os gráficos do jogo, tocar efeitos sonoros
e tratar entradas do usuário, através do mouse e teclado.
O código-fonte do jogo é compilado através do MSBuild, um utilitário que
facilita a compilação de projetos na plataforma .Net e acompanha o ambiente de
execução desta plataforma, de forma que um software adicional para a compilação não é
necessário. Uma vez que o código-fonte é gerado no ambiente, ele é repassado ao
3
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
MSBuild que chama o compilador equivalente (neste caso o C# Compiler) e o arquivo
executável é gerado, conforme a Figura 1, que mostra a integração dos componentes do
sistema.
Figura 1 - Estrutura dos componentes do trabalho.
2.1
Allegro.Net
O Allegro.Net é uma versão da biblioteca gráfica Allegro [ALLEGRO 2009]
desenvolvida como parte deste trabalho para possibilitar que esta biblioteca possa ser
empregada no ambiente .Net. O desenvolvimento foi feito utilizando um serviço do
.Net, o Platform Invocation Service, que permite ao código gerenciado escrito em uma
linguagem como o C#, por exemplo, acessar o código nativo de uma biblioteca escrita
em C, como é o caso do Allegro.
2.2
Visual Game Framework
Para a construção de jogos com o ambiente, foi desenvolvido um framework, chamado
Visual Game Framework, que pode ser utilizado para a criação de jogos em geral. Este
framework provê ao desenvolvedor um conjunto de classes para tratar tarefas comuns no
desenvolvimento de jogos, como gerenciamento de recursos e testes de colisão, e um
modelo de aplicação, que representa uma estrutura básica de um jogo completo,
cabendo ao desenvolvedor preencher suas lacunas para criar seus jogos.
4
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
O framework é utilizado pelo ambiente no processo de geração do código-fonte
dos jogos. O código é gerado utilizando as classes e métodos do Visual Game
Framework, tornando o processo mais simples e reduzindo a quantidade de código-fonte
que deve ser gerado. Paralelamente, neste código não é necessário definir em quais
pontos os métodos serão invocados, isto é feito de maneira automática pelo modelo de
aplicação do framework, em tempo de execução.
2.3
Visual Game
O Visual Game tem como objetivo possibilitar o desenvolvimento de jogos de maneira
visual, através de uma interface gráfica onde todas as configurações do jogo podem ser
feitas de forma simples e clara.
Com este ambiente, o desenvolvedor pode definir diversas configurações do
jogo, como as dimensões da tela, título da janela, modo de execução em tela cheia, entre
outros. É possível, ainda, carregar e configurar recursos (imagens, efeitos sonoros e
fontes), criar entidades (objetos) e seus eventos (de teclado, mouse e colisão) e ações
(animar o objeto, movê-lo, criar ou destruir instâncias, tocar efeitos sonoros etc.),
montar palcos (formas de dividir o jogo em fases), gerar o código-fonte criado e utilizar
um compilador para criar um arquivo executável.
A Figura 2 mostra a tela de carregamento de imagens, onde é possível selecionar
uma imagem e configurar a quantidade de quadros em que ela se subdivide. A Figura 3
exemplifica a atribuição de um evento de teclado e uma ação de movimento a uma
entidade. Por fim, a Figura 4 exibe a tela de criação de palcos, onde as entidades podem
ser adicionadas ao jogo.
Figura 2 - Tela de carregamento e configuração de imagens.
5
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
Figura 3 - Lista de eventos e ações.
Figura 4 - Tela de criação de palcos.
Todas as definições do usuário são traduzidas em classes no momento da
geração do código-fonte. Estas classes herdam das classes definidas no Visual Game
Framework e podem ser de um entre três tipos:
•
Entidade - representa um objeto dentro do jogo (o personagem principal, os
inimigos e os itens de bônus, por exemplo);
6
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
•
Palco - define as partes lógicas do jogo e especifica onde as entidades devem ser
alocadas;
•
Jogo - define a lógica central do jogo e é utilizada aqui para iniciar os palcos e
definir as configurações.
Estas classes são armazenadas em um formato XML e posteriormente são
traduzidas em código-fonte na linguagem C# de acordo com um conjunto de regras
definido pelo gerador de código. Assim, o gerador parte de um código estruturado
(Quadro 1) e gera o trecho equivalente em uma linguagem de programação (Quadro 2).
Quadro 1 - Exemplo de evento de teclado.
Quadro 2 - Trecho de código-fonte equivalente ao evento do Quadro 1.
Depois que o código-fonte é gerado, um arquivo de descrição do projeto
(contendo os parâmetros de compilação, os arquivos-fonte e os arquivos de recursos
utilizados no projeto) é gerado e passado ao MSBuild, uma ferramenta que acompanha o
ambiente de execução da plataforma .Net e possibilita a compilação do jogo e geração
do arquivo executável. Alternativamente, este mesmo arquivo pode ser aberto em um
ambiente de desenvolvimento (como o Visual Studio) para que o desenvolvedor possa
fazer eventuais edições no código do jogo.
3
Conclusão
A utilização de ferramentas de desenvolvimento rápido no desenvolvimento de jogos
eletrônicos é uma alternativa viável e torna o processo mais acessível para
desenvolvedores iniciantes e estudantes, ao mesmo tempo em que facilita o trabalho de
profissionais da área, uma vez que a geração automática de código-fonte elimina a
possibilidade de erros de codificação.
A ferramenta proposta neste trabalho permite a criação de jogos completos,
ainda que haja uma perda de liberdade e o desenvolvedor fique limitado às opções
oferecidas pelo ambiente para a criação de seus jogos. Desta forma, é importante que o
ambiente ofereça uma ampla variedade de ferramentas a serem utilizadas durante o
desenvolvimento, de forma a reduzir estas limitações.
O ambiente desenvolvido pode ser aprimorado de várias formas em trabalhos
futuros. Seguem algumas propostas: término das funções propostas e acréscimo de
7
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
novas funções dando mais liberdade ao desenvolvedor; possibilidade de exportação e
importação de entidades para aumentar a reutilização; possibilidade de criar relações de
herança entre as entidades criadas nos jogos; opção de criação de ações por parte dos
usuários, a fim de eliminar as restrições do ambiente; e possibilidade de utilização de
scripts em uma linguagem de programação.
Referências Bibliográficas
ABRAGAMES. Cursos de Games no Brasil. [S.L.], 2008. Disponível em:
http://www.abragames.org/docs/cursos_jogos.pdf. Acesso em 29 de janeiro de 2009.
ALLEGRO. ALLEGRO – A Game Programming Library. [S.L.], 2009. Disponível em:
http://alleg.sourceforge.net/. Acesso em 29 de janeiro de 2009.
SBGAMES. SBGames. [S.L.], 2008. Disponível em: http://www.sbc.org.br/sbgames.
Acesso em 29 de janeiro de 2009.
WIHLIDAL, Graham. Game Engine Toolset Development. 1. ed. Boston: Thomson
Course Technology, 2006.
WIKIPEDIA.
Video
Game
Industry.
[S.L.],
2009.
Disponível
em:
http://en.wikipedia.org/wiki/Video_game_industry. Acesso em 29 de janeiro de
2009.
8
Interação Humano - Computador usando Visão
Computacional
Bernardo Bucher B. Barbosa1, Júlio César Silva2
1
UNIFESO, Centro de Ciências e Tecnologia, Curso de Ciência da
Computação, [email protected]
2
UNIFESO, Centro de Ciências e Tecnologia, Curso de Ciência da
Computação; PUC-Rio, Departamento de Engenharia Civil,
[email protected]
Resumo. Este trabalho visa estudar maneiras de se explorar a Interação
Humano Computador, usando Visão Computacional. A idéia tem como
objetivo um esforço para tornar o computador mais interativo com o usuário,
sem a necessidade da compra de um hardware ou acessório específico para
tal. O produto final deste trabalho em desenvolvimento é um software que
contempla esta funcionalidade, tornando o computador mais interativo.
1
Introdução
A proposta deste trabalho é estudar formas de interação do humano com o computador,
usando recursos de visão computacional, excluindo dispositivos gráficos como o mouse
ou teclado, especificamente o uso de webcam para servir de interface. A idéia inicial é
usar as imagens capturadas através de uma webcam para que se possa mover o mouse,
usando comandos dados pelas mãos do usuário. Depois de concluído o projeto, este
software poderá ser usado em várias áreas da computação e até mesmos para meios de
entretenimento, ou ainda, para uso rotineiro.
Porém, será necessário que alguns passos básicos sejam feitos antes que se possa
encontrar uma aplicação viável para o software. Para poder fazer com que o
computador de fato entenda o que as imagens capturadas “significam”, é necessário uso
de técnicas de processamento e reconhecimento de imagens. Tendo as imagens tratadas,
pode-se então executar os comandos necessários para que se alcance o objetivo.
Como foi dito anteriormente, será necessário adotar técnicas de processamento e
reconhecimento de imagens. Porém, como reconhecer uma imagem? Esta é a chave da
questão. Como se pode reconhecer a mão sem um dispositivo de hardware acoplado?
E mais, como fazê-lo em um computador, que trabalha essencialmente com dados que
são discretos? Todas as repostas destas perguntas levam a apenas uma única resposta, o
reconhecimento de padrões. Neste caso, alguns padrões se mostram melhores para a
finalidade, como o formato da mão e suas cores características (os tons avermelhados,
devido ao sangue). Estes fatores terão de ser usados para que o reconhecimento possa
ser efetuado. Para alcançar-se o objetivo é necessário ter em mente que neste software,
o custo computacional das técnicas adotadas tem de ser relativamente baixo, caso
contrário sua aplicabilidade será diminuída, para comprovar este fato, basta imaginar
que o software será usado como ferramenta para a manipulação do mouse e, também,
será necessária a captura de imagens de uma webcam.
9
2
2.1
Processamento de Imagens
Formato
Para a pesquisa e o desenvolvimento desta aplicação é necessário que se conceitualize o
significado de formato. O formato de um objeto pode ser entendido pelo contorno de
sua forma em um espaço 2D ou 3D. Assim, o formato de uma régua é retangular,
enquanto, o de uma garrafa é cilíndrico ou cônico. A fim de reconhecer o formato de
um objeto é necessário definir um formato que funcione de base de comparação,
identificar o formato do objeto em teste, e por fim fazer a comparação entre os dois
respeitando certas taxas de variação. Para que se possa a fazer a extração de um
contorno de uma imagem adquirida de uma webcam, é necessário usar um algoritmo
para detecção de bordas de uma imagem, que são os contornos de suas formas. Existem
alguns algoritmos para tal, com o de Roberts, o Operador de Sobel, o método de Canny,
ou mesmo técnicas de Relief Mapping (Mapeamento de Relevo), porém apenas os dois
primeiros se mostraram mais eficientes (Figura 1).
Figura 1. Acima, à esquerda: a imagem original, à direita a mesma imagem
quando aplicado o operador de Roberts, e a imagem abaixo com o operador de
Sobel [PDI 2008].
O que caracteriza um algoritmo eficiente é o seu uso de processamento,
considerando o resultado da detecção. Quanto menos ruídos e menor uso do
processador, mais precisão o algoritmo tem [von Wangenheim 2008]. Pesquisou-se
qual melhor se encaixava no contexto de uso deste software, onde ambos os fatores tem
de serem pesados, tendo o fator ruído um maior peso. Dos algoritmos de detecção de
bordas, os mais utilizados são o de Sobel, o de Roberts e o Canny. A Tabela 1 apresenta
um quadro comparativo entre os algoritmos citados anteriormente.
Tabela 1. Comparação ente os tipos mais conhecidos de reconhecimento de
bordas de uma imagem, constatados experimentalmente.
Algoritmo
Ruídos
Custo Computacional
Avaliação final
Roberts
Apresenta
Baixo
Rápido, mas impreciso
Canny
Apresenta Menos
Baixo
Rápido, mas impreciso
Sobel
Quase nenhum
Médio
Eficaz
10
O método de Sobel foi escolhido como o método para extração de bordas por
apresentar uma avaliação final que mais se compara com o tipo de algoritmo esperado.
2.2
Cores
Mesmo o algoritmo de Sobel sendo um ótimo extrator de bordas, ainda capta elementos
que são desnecessários para a fase de reconhecimento de imagens, que acabam por se
traduzir, neste contexto, em ruído. Imaginem, por exemplo, uma imagem que possua
objetos que não somente a mão do indivíduo. Todos os objetos - exceto a mão - são
ruídos. Assim, mesmo o contorno sendo uma chave para se encontrar a mão em uma
imagem, deve-se filtrar parte desta imagem, de modo a excluir os ruídos, que podem ser
deixados pelo algoritmo de Sobel. Logo, há necessidade de uma de filtragem da
imagem, para se obter um reconhecimento melhor da mão.
Toda mão tem certo padrão de tons avermelhados, devido ao sangue da pessoa,
por isso se procura por este padrão. Com esta técnica de procura de cor, delimita-se a
área de busca na imagem, facilitando e aumentando a precisão do reconhecimento.
Porém, nem sempre esses tons serão evidentes numa imagem, por exemplo, dependendo
das condições de iluminação do ambiente, os tons podem aparentar ser diferentes.
Assim, mesmo fazendo comparações com um padrão de cor, pode-se não estar sendo
fiel ao padrão que se quer. Por isso, é preciso considerar que mesmo comparando com o
padrão que é exatamente igual ao previamente estabelecido, é necessário considerar
certa taxa de erro. Um algoritmo bastante interessante para realizar esta tarefa é o
CamShift.
CamShift (Continuously Adaptive Mean-SHIFT), em português, Transformação
Contínua de Adaptação, é um algoritmo que para cada frame do vídeo capturado, pega a
imagem bruta e a converte para uma distribuição probabilística de cores da imagem,
usando um modelo de histograma da cor a ser rastreada [OpenCV 2002], ou seja, neste
caso, a cor característica da mão. Ele opera basicamente, se valendo de uma busca
inicial, para ajustar uma janela para procura. Nesta janela, ele busca pela distribuição
provável de cor, que mais se aproxima do padrão, previamente estabelecido. Após ter
reconhecido um provável padrão, ele focaliza as buscas apenas no rastreio deste. Por
isso, fazendo ajustes de tamanho máximo da janela de pesquisa, e do desvio máximo
permitido, ele é capaz de rastrear com perfeição o objetivo. Além disso, internamente o
CamShift faz a conversão do sistema de cores captado (RGB) para HSV (Figura 2), pois
neste é separado a matiz da saturação, reduzindo problemas de intensidade luminosa.
Figura 2. Imagem no formato HSV, em baixa iluminação (lâmpada de 60W).
11
Aumentando o contraste da imagem em HSV e mudando alguns parâmetros da
janela de procura, obtêm-se uma detecção probabilística mais pura, ou seja, apenas os
pixels relevantes são destacados, possibilitando ajustar uma área de interesse com foco
no alvo, que é a mão. Assim fazendo os ajustes necessários ele pode definir esta área
com muito mais precisão. Com esta área configurada, o reconhecimento de imagens é
facilitado. Seu custo computacional é relativamente baixo e é bastante preciso, sendo
por estas razões escolhido como método para o rastreio do padrão de cores. Após esta
fase é necessário que se faça uma conversão da imagem para uma escala de cinza,
facilitando os processamentos posteriores. O uso de CamShift acentua a capacidade do
uso software em ambientes de baixa iluminação.
Um método alternativo seria através da binarização da imagem, tendo em vista
que usuário estivesse usando uma luva, de cor bem característica, diferente das cores
que normalmente são encontradas nos ambientes, como o verde florescente ou o rosa
pink. Usando esta alternativa, bastaria aplicar um filtro de cor que apenas deixasse na
imagem a cor escolhida, tornando-a binária. Assim, não seria necessário o método de
Sobel, pois somente a imagem do objetivo seria resultante, ou seja, onde houvesse algo
desenhado, a mão do usuário. Esta alternativa tem baixo custo computacional e também
é bastante precisa, porém obrigaria que o usuário usasse algo a mais em sua mão,
dificultando o uso do software.
3
Reconhecimento de Padrões
Após os processamentos da imagem necessários, vem a fase de reconhecimento de
padrões. Nesta etapa, é necessário usar de um padrão previamente estabelecido, neste
caso, uma mão que esteja na posição indicada para o comando que o mouse terá de
obedecer. Existem várias alternativas para que o reconhecimento de padrões possa ser
feito, passando pelo uso de redes neurais, sistemas especialistas, dentre outros. Porém,
os que mais se encaixam no contexto do software, são aqueles que oferecem um baixo
custo computacional, além de apresentarem uma solução que seja portável, como por
exemplo, o uso de template matching, ou uso de shape matching [OpenCV 2002]. As
técnicas de matching são ideais para este propósito já que os comandos não vão ser
variáveis e por isso se a mão do usuário não estiver na posição do mesmo, ele não será
reconhecido (Figura 3).
Figura 3. Template de um comando da mão, tendo sua borda extraída pelo
algoritmo de Sobel, em ambiente bem iluminado.
Ambos oferecem suporte que atendem as necessidades do projeto, porém o
Shape Matching além de mais simples, tem baixo custo é ideal para a resolução deste
projeto. A Tabela 2 apresenta um quadro comparativo entre as duas técnicas citadas
anteriormente.
12
Tabela 2. Comparativo entre Shape matching e Template Matching, constatados
experimentalmente, a partir do protótipo produzido.
Algoritmo
Imagem Teste
Template
640 x 480 pixels
196 x 275 pixels
Shape Matching
Template Matching
Tempo de Execução
Taxa de Acertos
3,73 ms
± 65%
53,90 ms
± 85%
Shape matching é uma técnica que utiliza comparação das formas de dois
objetos com o intuito de encontrar alguma semelhança entre ambos [OpenCV 2008b].
Então, para finalmente encontrar o padrão da mão, enquanto fazendo o gesto que
simboliza o comando do mouse, deve-se usar o algoritmo CamShift para reconhecer o
padrão da mão, ajustando assim a região de interesse da imagem (ROI - Region Of
Interest). Tendo o ROI ajustado, é necessário usar o operador de Sobel para extrair as
bordas da imagem e, finalmente, usar estas bordas extraídas para fazer o Shape
Matching com uma imagem que foi previamente ajustada.
4
Captura de imagens
Por fim, para a captura de imagens, existem várias alternativas para a linguagem C/C++,
que foi escolhida por sua conhecida alta performance. Dentre as diversas alternativas
para a captura, tem-se o DirectShow, que é uma API (Application Programming
Interface) de manipulação de webcam, presente na API do DirectX, além da
possibilidade de ser usada a própria API do Windows, ou ainda através de bibliotecas de
terceiros como a VideoInput [VideoInput 2008]. A alternativa mais interessante entre
todas as pesquisadas foi a OpenCV (Open Computer Vision), que é uma biblioteca free,
criada pela Intel, que oferece diversas funções para a manipulação de imagens, como por
exemplo, algoritmos embutidos para a detecção de bordas de imagens e reconhecimento
das mesmas, captura de uma webcam, e até exibição das mesmas, através de simples
funções [OpenCV 2008a].
5
OpenCV e algoritmo final
O uso da OpenCV facilitará muito o desenvolvimento do aplicativo final, pois reúne
todos os elementos necessários. A seguir apresenta-se de forma resumida a forma de
execução do software:
1. Obtêm-se uma imagem que servirá como template, ou referência para os
comandos para o mouse.
2. Captura-se a imagem de uma webcam.
3. Aplica-se o CamShift para que se possa determinar qual a região da imagem
possuí a mão, definindo assim a ROI e iniciando o rastreio desta área específica.
4. Usa-se o algoritmo de Sobel, para a obtenção das bordas da imagem.
5. Aplica-se o Shape Matching a imagem obtida da webcam, comparando-a com o
template.
a.Se o Shape Matching retornar alguma semelhança, respeitando certa taxa
de erro, então se encontra a imagem
13
i. Aplica-se o movimento no mouse de acordo com a posição do
dedo indicador, que servirá como referência para a movimentação
do mouse.
b.Se o Shape Matching não retornar semelhança alguma, então o processo
recomeça.
6
Descrição do Protótipo
Com base nos dados adquiridos com os estudos sobre processamento de imagens e
reconhecimento de padrões em imagens foi feito um aplicativo para teste destas
características.
Implementaram-se diversos métodos para a aquisição da imagem, na maneira
desejada. O aplicativo desenvolvido converte as imagens para cinza, aplica o operador
de Sobel, realiza shape matching, template matching, verifica os tempos de execução
para os algoritmos e suas respostas (Figura 4). Depois, captura imagens da webcam e
aplica processamentos em tempo real, além de realizar o algoritmo de CamShift. Por
fim, aplica o shape matching na imagem resultante do CamShift e retorna uma resposta
para o algoritmo.
Figura 4. Imagem do protótipo.
No protótipo implementaram-se as rotinas citadas anteriormente, através da
seguinte seqüência de comandos (Figura 5):
Figura 5. Ordem para o reconhecimento do indicador, e obter o movimento do mouse.
14
Como mostrado acima, inicia-se a captura (1); logo após isso, é necessário
aplicar o operador de Sobel para a extração de bordas, da imagem (2); no próximo
passo, implementa-se o algoritmo CamShift na imagem, para definição da região de
interesse (ROI), onde os processamentos posteriores serão realizados (3); e por fim, ao
habilitar o Shape Matching, é possível escolher entre três tipos de comparações
diferentes (4). Após isso, os resultados colhidos do Shape Matching são apresentados
no campo Result (5). Por default, o mouse só se movimenta caso o valor no campo
Result seja menor ou igual a 0,026, valor avaliado experimentalmente. Então, é
realizada uma comparação entre o tamanho total da imagem, o tamanho da tela e a
posição do dedo no template, fazendo-se com que o mouse possa se mover de acordo
com a ponta do dedo.
7
Resultados
O software, como já foi dito anteriormente implementa diversos métodos de
processamento de imagens e alguns de reconhecimento. Para a sua utilização é
necessária, no quesito processamentos de imagens, escolher as imagens nos botões
“Abrir Imagem...”, convertê-las para cinza, e então os processamentos podem ser
efetuados. Os resultados, quando numéricos, são apresentados na área “Andamentos”,
bem como os seus tempos de processamento. Para o processamento de vídeos da
webcam, basta iniciar a captura e escolher os parâmetros para os testes. Os resultados
são mostrados logo abaixo das opções de processamentos. É possível salvar as imagens
processadas. A imagens obtidas, sejam de arquivo ou da webcam, são mostradas na
janela “Image...” e os seus processamentos são mostrados na janela “Imagem
Processada”.
A Tabela 3 apresenta os tempos de execução dos algoritmos
implementados no software.
Tabela 3. Tempos de execução dos algoritmos.
Algoritmo
Resolução Entrada
Resolução Saída
Profundidade
Tempo Médio
Camshift
640 x 480 pixels
418 x 413
24 bits
20,59 ms
Sobel
418 x 413 pixels
418 x 413
8 bits
24,64 ms
Shape Matching
captura e 185 x 259
418 x 413
8 bits
1,11 ms
418 x 413 pixels da
pixels do template
Total:
46,35 ms
O protótipo ainda não funciona perfeitamente, pois o algoritmo CamShift, para
poder colher exatamente um área de interesse que seja no mínimo relevante exige uma
configuração rica em detalhes. Por isso, o sistema como um todo ainda não funciona
tão bem quanto deveria, mas após ajustes constantes ele tende a melhorar e tornar a
precisão do reconhecimento melhor. Por causa da conversão para HSV implementada
internamente no Camshift, o fator iluminação não é tão crítico nesta parte do algoritmo.
Porém, para o Sobel é necessária uma iluminação do ambiente relativamente boa, para
que o operador possa ser usado em toda sua plenitude e então capturar imagens mais
ricas em bordas, diminuindo os ruídos da região de interesse, o que resulta num aumento
da exatidão do movimento do mouse.
15
8
Conclusão
Com os testes realizados a partir do protótipo, ficou claro que o método adotado é
bastante viável, desde que se faça um apuramento nas configurações do algoritmo
Camshift e, se possível, no método de Sobel, já que o primeiro é responsável pela
detecção da área de interesse (R.O.I.). Esta área é utilizada pelos processamentos
posteriores, implicando em maior precisão na detecção da mão e dos possíveis
comandos por ela realizados. O tempo de execução de todo o processo está diretamente
ligado ao apuramento das configurações corretas desses algoritmos, além de ser fator
crítico, pois não serão admitidos pelo usuário grandes atrasos entre um comando
realizado pela mão e sua efetivação no computador.
Um aplicativo que implemente está solução para a finalidade aqui discutida será
ótimo, numa relação custo benefício final, tendo em vista que não há necessidade de
aquisição de equipamentos que não sejam comumente encontrados, além de ser uma
solução computacionalmente barata, fatores esses que indicam um alto fator de
aceitação entre os mais diversos tipos de usuários.
Referências Bibliográficas
OpenCV (2002). Documentação Oficial da OpenCV.
instalação da mesma, OpenCV Reference Guide.
Encontrada no diretório de
OpenCV (2008a). OpenCV Official - Página oficial da Intel, informações sobre
utilização e licença. Disponível em: http://www.intel.com/technology/computing/
opencv/index.htm. Último acesso em 13 de setembro de 2008.
OpenCV (2008b). Wiki da OpenCV. Tutoriais e exemplos de sua utilização. Disponível
em: http://opencvlibrary.sourceforge.net/Welcome/#head-59654a1ce94786b994e1e
a7b59ac0d98bb7318c7. Último acesso em 13 de setembro de 2008.
PDI (2008). Processamento Digital de Imagens Filtragens Espaciais. Disponível em:
http://www.dpi.inpe.br/~carlos/Academicos/Cursos/Pdi/pdi_filtros.htm.
Último
acesso em 06 de setembro de 2008.
von Wangenheim, Aldo (2008). Introdução à Visão Computacional - Encontra a Linha
Divisória: Detecção de Bordas. Disponível em: http://www.inf.pucrs.br/~eduardob/
disciplinas/laproiv/HomeAssignments/DeteccaoContorno/bordas.pdf. Último acesso
em 06 de fevereiro de 2009.
VideoInput (2008). Biblioteca VideoInput para captura de imagens. Disponível em:
http://muonics.net/school/spring05/videoInput/. Último acesso em 09 de fevereiro de
2008.
16
Desenvolvimento de Software Educacional para
Representação e Reconhecimento de Som Aplicado à Ausculta
Cardiovascular
Bruno Carlos da C. Costa1, Leandro Segheto Moraes2, Júlio César da Silva3,
Elisabete do Rêgo Lins4, Marco Antônio Freire Allemão5 e Wolney de Andrade
Martins6
1
UNIFESO, CCT, Ciência da Computação, [email protected]
2
UNIFESO, CCT, Ciência da Computação, [email protected]
3
UNIFESO, CCT, Ciência da Computação e PUC-Rio, Departamento de
Engenharia Civil, [email protected]
4
UNIFESO, CCT, Ciência da Computação, [email protected]
5
UNIFESO, CCT, Ciência da Computação, [email protected]
6
UNIFESO, CCM, Medicina, [email protected]
Resumo. No ensino da medicina, especificamente, em laboratórios de estudos
e práticas, existe uma preocupação de resguardar o máximo o paciente,
buscando o mínimo de constrangimento, porém sem deixar que o aprendizado
seja prejudicado. Com o objetivo de capacitar o discente para a prática em
ausculta cardiovascular, sem que o contato com o paciente seja necessário, foi
desenvolvido o sistema CARDIOS. Contendo informações de doenças
cardiovasculares, o aluno conhece o som e o respectivo registro gráfico. A
utilização de aparelhos específicos, como um estetoscópio eletrônico, promove
a visualização e amplificação do som em tempo real. O uso de agentes
inteligentes possibilita o reconhecimento do som cardíaco, classificando-o em
normal ou patológico.
1. Introdução
Atualmente, o uso indiscriminado da tecnologia por especialistas pode ser tratado como
um problema, pois o avanço das tecnologias na medicina acaba tornando o especialista
quase totalmente dependente delas para o diagnóstico. Por isso, todo médico,
especificamente o cardiologista, deve ser capaz de levantar um diagnóstico inicial
através de um simples exame físico, a ausculta cardíaca, porém, isto não vem
acontecendo. Principalmente entre os especialistas recém formados, há uma perda desta
sensibilidade, o que é prejudicial para toda a área médica. Como a maioria dos casos
resulta em um pedido de um exame mais detalhado, o Eletrocardiograma, por exemplo,
se torna mais fácil este pedido logo num primeiro momento a analisar cuidadosamente o
som ou ruído gerado pelo batimento cardíaco.
A motivação deste trabalho está no fato do software ser utilizado para auxiliar,
no ensino para a identificação de doenças e suas respectivas características. Tornando
mais precisa a decisão sobre a necessidade de realização de um exame mais detalhado.
17
O registro gráfico apresentado juntamente com o som, é chamado de Fonocardiograma,
não sendo mais utilizado expressivamente para o diagnóstico, pois foi substituído por
exames mais avançados, como o Ecocardiograma. Porém, isto não justifica o completo
desconhecimento, por parte do especialista, do registro sonoro e diagnóstico, ao menos
inicial, tendo por base a análise do som ou ruído cardiovascular.
O objetivo deste trabalho é a reprodução do som dos batimentos cardíacos,
representa gráfica e reconhecimento do mesmo, promovendo a classificação dos sons
auscultados como normal ou patológico.
2. Características e representação do som
2.1. Definição de som
O som é o resultado de um movimento vibratório da matéria transmitido através de um
meio. É energia que se propaga através de ondas, chamadas de ondas mecânicas, pois
precisam de um meio material para se propagar. Este meio pode ser sólido, como a
terra; líquido, como a água; ou gasoso, como o ar [Hewitt 2002].
2.2. Captação e conversão do som
Para tornar-se digital, é necessário que o som seja captado. A captação do som é feita
por equipamentos que contém um conversor Analógico/Digital, ou AD. Tais aparelhos
são capazes de converter um som totalmente analógico (voltagem) em números (bits).
Por exemplo, o microfone.
Conforme citado, quando o som é captado ele é enviado para um conversor AD,
através de um microfone. O sinal elétrico será digitalizado, convertido em informações
expressas em números, e armazenado em um meio digital. Para a reprodução existe um
respectivo conversor DA (Digital/Analógico). O AD precisa transformar voltagens em
números. O DA faz o contrário, recriando o som analógico depois de ele ter sido
processado pelo computador para que o alto-falante possa reproduzir o resultado (Figura
1).
Figura 1. Reconstituição do som analógico pelo conversor AD.
2.3. Processo de digitalização
Milhares de vezes por segundo, o conversor AD “anota” o estágio da oscilação e lhe
atribui um valor numérico, por exemplo, 44.100 vezes por segundo, resultando em uma
taxa de amostragem de 44.1 kHz. A cada amostragem, o conversor mede a amplitude e
codifica-o em um valor numérico. Essa forma de medir o sinal é chamada de
Amostragem (“sampling”), e a conversão da amplitude em valor numérico é chamada de
quantização (“quantize”). As duas compõem o processo de digitalização (Figura 2).
18
Figura 2. Espectro da onda sonora depois de digitalizada.
2.4. Representação do som
O som, sendo ondas produzidas por vibrações de objetos materiais. Em cada um desses
casos, a vibração original estimula a vibração de algo maior e mais massivo, como uma
caixa de ressonância de um instrumento de corda. Este material vibrante, então, envia
uma perturbação através do meio circulante, por exemplo, o ar, em forma de ondas
longitudinais. Uma onda longitudinal ocorre quando as partes que constituem o meio
são movidas para frente e para trás na mesma direção em que se propaga a onda [Hewitt
2002]. O comportamento de uma onda longitudinal pode ser demonstrado com uma
mola comprida, presa em uma das extremidades a uma parede. Fazendo o movimento
de empurrar e puxar rápido e repetidamente, partes da mola estão comprimidas, e uma
onda de compressão percorre a mola. Entre as regiões de compressão, existe uma região
onde a mola está distendida, chamada de rarefação. Tanto a compressão como a
rarefação se propagam na mesma direção, ao longo da mola. As ondas de som são
ondas longitudinais (Figura 3).
Figura 3. Demonstração de uma mola longitudinal com uma mola.
2.5. Compressão e rarefação
Considere um diapasão próximo a um tubo, conforme a Figura 4.
Figura 4. Som se propagando a partir da vibração de um diapasão.
Quando o ramo direito do diapasão se move em direção ao tubo, ele empurra as
moléculas de ar mais próximas a ele em direção ao tubo num pulso de ar comprimido,
este pulso é chamado de compressão. Quando este ramo balança em sentido contrário,
afastando-se do tubo, ele empurra algumas moléculas para fora, produzindo uma área de
baixa pressão próxima ao ramo, conseqüentemente as moléculas adjacentes são movidas
para esta zona, deixando para trás uma zona com ar rarefeito, a esta perturbação dá-se
nome de rarefação.
19
Em 1822, um matemático francês Joseph Fourier descobriu que este movimento
pode ser decomposto em simples ondas senoidais que se adicionam [Fourier 2008].
Ondas senoidais são aquelas com a forma de uma função seno ou cosseno, é a mais
simples de todas as ondas, possuindo uma única freqüência, conforme a Figura 5.
Figura 5. Representação de uma onda senoidal.
Para a representação do som na senoide, o ponto máximo chamado de crista,
corresponde à compressão, sendo o ponto mínimo, chamado de ventre, correspondente a
rarefação.
No exemplo do diapasão, é produzida uma freqüência natural, ou seja, a vibração
resultante de seu próprio conjunto de freqüências particulares, que juntas formam seu
som próprio. A Figura 6 demonstra a representação do som em relação ao movimento
vibratório do diapasão.
Figura 6. Representação da uma onda senoidal de um som produzido pelo diapasão.
3. Noções de Cardiologia Aplicada
3.1. Ausculta Cardíaca
Na medicina, a Semiologia está relacionada ao estudo dos sinais e sintomas das doenças
humanas [Porto 2005]. O significado da palavra provém do grego σηµειολογία
(semeîon, sinal + lógos, tratado, estudo). A Ausculta Cardíaca é uma de suas áreas,
onde são estudados os sons e ruídos gerados pelo ciclo cardíaco e seu significado.
Habitualmente, o estetoscópio é utilizado para realizar a ausculta, amplificando
os sons corporais. Foi desenvolvido por René Leannex em 1816. É composto por
Olivas Auriculares, peças em formato anatômico, que se encaixam no ouvido do
examinador; tubo de condução, tubos que permitem a transmissão do som; campânula,
peça de contato com o corpo do paciente ou examinado, mais apropriado para percepção
de sons graves; e diafragma, peça de contato com o corpo do examinado, mais
apropriado para percepção de sons agudos.
3.2. Sons Cardíacos
Os sons cardíacos normais (Primeira Bulha e Segunda Bulha) são produzidos pelo
movimento das válvulas cardíacas, que se fecham de forma abrupta para impedir a
regurgitação do sangue (Figura 7).
20
Na Figura 8 podem-se observar as quatro áreas auscultatórias existentes: (1)
Aórtico, (2) Pulmonar, (3) Tricúspide e (4) Mitral. O especialista ao realizar a ausculta
cardíaca, ouve e examina cuidadosamente cada um desses pontos.
Figura 7. Sons do ciclo cardíaco.
Figura 8. Áreas auscultatórias.
O primeiro som cardíaco localiza-se no início da fase de contração (sístole). É
de alta freqüência e audível em todos os focos auscultatórios. Ocorre quando o sangue
presente nos átrios passa para os ventrículos, neste instante as válvulas, mitral e
tricúspide, se fecham evitando a regurgitação do sangue para os átrios.
O segundo som cardíaco é localizado no fim da fase de contração (sístole). É um
som também de alta freqüência. Ocorre quando o sangue presente nos ventrículos é
expulso através das artérias aórtica e pulmonar, neste instante as válvulas, aórtica e
pulmonar, se fecham evitando que o sangue volte para os ventrículos (Figura 9).
Figura 9. Primeira e Segunda Bulha (B1 e B2).
4. Projeto CARDIOS
CARDIOS é um software educativo desenvolvido para auxiliar as aulas práticas de
ausculta cardiovascular. Consiste em uma interface gráfica amigável que possibilita ao
professor e aos alunos ouvirem o som do batimento cardíaco e simultaneamente ver os
gráficos gerados por este som. Através deste gráfico é possível identificar diversas
doenças cardíacas, sendo assim de grande utilidade para se formar um diagnóstico
inicial e decidir qual o melhor exame ou tratamento a ser seguido pelo paciente.
O software apresenta detalhes sobre os aspectos fisiológicos do coração,
disponibilizando ao usuário uma parte bastante didática, contendo sons, gráficos e textos
explicativos sobre os sons cardíacos. O mesmo ocorre para os aspectos patológicos,
onde traz um breve resumo das estenoses e insuficiências cardíacas com seus
respectivos sons (Figura 10).
21
Figura 10. Interface do CARDIOS (Opção “Primeira Bulha” selecionada).
O CARDIOS é capaz de ler qualquer arquivo de som no formato wave e plotar o
gráfico gerado pela amplitude deste som no domínio do tempo. O usuário também tem a
opção de ouvir este som a qualquer momento.
Utilizando um aparelho de captação de pulso cardíaco digital específico, por
exemplo, um estetoscópio digital, é possível visualizar o batimento cardíaco em tempo
real no domínio da freqüência (Figura 11).
Figura 11. Selecionada a opção “Gravar som”.
Além das funcionalidades descritas, o CARDIOS é capaz de reconhecer se um
batimento cardíaco é normal ou não, apresentando a resposta possível ao professor
especialista e alunos (Figura 12). Para isso utiliza-se uma técnica da análise de
máximos a mínimos. Foram reunidas 15 amostras de batimentos normais e anormais,
apresentando ao software três vezes cada um, onde se constatou que o número de
máximos e mínimos de uma amostra de batimento cardíaco na mesma amplitude e
tempo de gravação, possui aproximadamente 100 números a menos que qualquer
batimento cardíaco que apresenta alguma anormalidade. Com isso, apresentando-se
uma amostra de som no formado wave realiza-se a classificação do som, conforme as
especificações citadas. Após a abertura do arquivo, clique no botão “Classificar”, o
software irá mostrar o número de máximos e mínimos, juntamente com a classificação.
22
Figura 12. Som cardíaco normal identificado.
4.1. Redes Neurais Artificiais
Redes Neurais Artificiais (RNA) são técnicas computacionais que buscam, através de
modelos matemáticos, uma representação do cérebro humano para a resolução de
problemas.
Após o treinamento, espera-se da rede, com pesos ajustados, o
reconhecimento de padrões, classificação, entre outras diversas aplicações.
Basicamente, existem dois tipos de treinamento:
•Treinamento supervisionado - Neste método uma seqüência de padrões,
cada qual com um alvo de saída associada (“professor”), são
apresentados a RNA. Os pesos são ajustados de acordo com o algoritmo
de treinamento que visa aproximá-los ao máximo dos padrões de entrada.
•Treinamento não-supervisionado - Neste método uma seqüência de padrões,
os quais não possuem alvo de saída associada (“professor”), são
apresentados a RNA. Os pesos são ajustados de acordo com o algoritmo
de treinamento. Neste caso, a RNA ajusta os pesos de tal maneira que os
padrões de entrada similares são agrupados em uma mesma unidade de
saída (clusters).
Uma RNA do tipo Multilayer Perceptron (MLP) é constituída por um
conjunto de nós de entrada, uma ou mais camadas escondidas e uma camada de saída.
Com exceção da camada de entrada, todas as outras camadas são constituídas por
neurônios (Figura 3).
Figura 13 - Arquitetura de uma Rede Neural Artificial.
Cada neurônio baseia-se no modelo proposto por McCulloch e Pitts (Figura 14), que
compreende [Mendes 2008]:
23
•Estímulos de entrada (X) – Cujos componentes são representados pelo
vetor X;
•Ligações sinápticas (W) – Cujos componentes são representados pelo vetor
W;
•Saída (Y) – Cujos componentes são representados pelo vetor Y, produzido
segundo o valor de ativação alcançado pelo neurônio.
Figura 14 - Modelo de um Neurônio Artificial.
A saída do neurônio é definida pelo valor de ativação, sendo calculado da seguinte
m
forma: v j = ∑ w ji xi + b
i =1
Onde: v é o valor de ativação do neurônio j; w são os pesos das conexões do
neurônio j; x é o valor de cada um dos m estímulos que chegam ao neurônio j, e b é o
valor do bias (variável auxiliar com a finalidade de aumentar ou diminuir a influência
das entradas) que será somado ao resultado da combinação linear para compor o valor
de ativação.
4.2. Tratamento e representação numérica do som
Conforme visto, para a representação do som num ambiente computacional torna-se
necessário a quantização do som, ou seja, um registro numérico. Para isso, foi utilizado
uma função do software MatLab [Matlab 2008] chamada wavread, onde retorna em Y
os respectivos valores da amplitude. Após extrair estes números, é possível utilizá-los
para a plotagem de um gráfico do som no domínio do tempo, por exemplo.
Porém, para o treinamento da rede neural, tornava-se ineficaz, pois a função
retorna valores segundo a configuração da taxa de amostragem da placa de som,
aproximadamente 20.000 valores para um som de apenas 5 segundos. É necessário um
tratamento na base de dados, ou seja, uma forma de representação do som, em que não
se perca informação importante, tornando-se então um problema de sistemas de
equações lineares.
Utiliza-se a Eliminação Gaussiana para a solução deste problema, pois ela é
capaz de reduzir a base com n valores, em um número g escolhido, tal que g é o grau do
polinômio. Antes da aplicação da Eliminação Gaussiana, é aplicada na base de dados
uma técnica matemática chamada de Método dos Mínimos Quadrados (MMQ).
4.2.1. Método dos Mínimos Quadrados
Dados os pontos (x1,y1), (x2,y2),...,(xn,xn) (obtidos com a função wavread), o resultado
que se espera é o polinômio que melhor aproxima (interpola) os n pontos no plano. O
critério significa a menor soma dos quadrados dos desvios.
24
De forma geral, o Método dos Mínimos Quadrados MMQ pode ser descrito
conforme a figura a seguir, onde a matriz simétrica representa os somatórios dos valores
do eixo X (matriz à esquerda) e Y(matriz à direita), elevados a uma potência g. Esta
potência é o grau do polinômio que irá representar a curva. A variável k representa um
índice numérico (equação 1).
(1)
4.2.2. Eliminação Gaussiana
Após os valores dos somatórios de x e y obtidos com o MMQ, é fornecido como entrada
para uma função Gauss (eliminação gaussiana), onde a saída serão os coeficientes a0, a1,
a2,...ag (tal que, g é o grau do polinômio). Estes coeficientes são os valores numéricos
que melhor identificam uma curva, quando informados no polinômio de grau g,
escolhida anteriormente, no MMQ.
Portanto, não importa o tamanho da base gerada pela função wavread, utilizado
as técnicas MMQ e Eliminação Gaussiana, a base é reduzida a um número definido.
Resta apenas, analisar a curva, verificar o número de máximos e mínimos e definir o
grau do polinômio.
5. Conclusões
Ao definir a proposta do projeto, era inerente a multidisciplinaridade. A semiologia,
com a evolução natural de longos anos, apresenta um grande avanço em técnicas para o
ensino da ausculta cardiovascular.
Por outro lado, com novas tecnologias
computacionais surgindo diariamente, a sinergia entre as duas áreas, Ciência da
Computação e Cardiologia tornam-se inovação e eficiência em construção de soluções
tecnológicas. Observa-se isso fortemente presente em laboratórios, exames diagnósticos,
hospitais, entre outros. Para a área do ensino, especificamente, da ausculta
cardiovascular, tal sinergia não deixa de estar presente, porém, a presença não é tão
expressiva. A Ciência da Computação pode desenvolver softwares que, além de
facilitar, ampliam as ferramentas para o docente aplicar no ensino. Com o projeto
CARDIOS, buscou-se tal sinergia, onde a solução desenvolvida promove ao aluno a
prática, em ouvir e reconhecer a representação do som cardíaco. Utilizando
equipamentos de hardware específico, o software é capaz de exibir o gráfico do som
auscultado, facilitando assim, a compreensão por parte do aluno. Na pesquisa científica
realizada, utilizando técnicas de sistemas lineares, Método dos Mínimos Quadrados e
Eliminação Gaussiana, obteve-se um resultado eficiente quanto à representação do som,
onde se aplicando a uma rede neural, é possível a identificação da doença
cardiovascular.
Os resultados possibilitam o desenvolvimento de trabalhos futuros. Utilizando a
técnica de representação do som apresentada, estudos quanto à identificação de som em
outros contextos podem ser efetuadas. A conclusão do desenvolvimento do protótipo
possibilita a implantação do software no Laboratório de Habilidades do UNIFESO,
25
promovendo uma aplicação prática dentro da universidade. Do ponto de vista da
sinergia, apresenta-se a proposta quanto à pesquisa em soluções que podem ser
construídas para o ensino em medicina, os avanços da Ciência da Computação são de
fato imponentes dentro da própria área. Porém, a aplicação deste avanço para a prática
da docência médica é ainda embrionária, descerrando um vasto caminho para o
desenvolvimento de pesquisas científicas e soluções computacionais.
Referências Bibliográficas
3B, Brasil Scientific. Simulador de Ausculta com SmartScope, 2008. Disponível em:
http://www.3bscientific.com.br/shop/brasil/exame-medico-e-autoexame/simuladorde-ausculta-com-smartscope. Acesso em: 02 de dezembro de 2008.
Blaufuss. Heart Sounds and Cardiac Arrhithmias, 2008.
http://www.blaufuss.org/. Acesso em: 02 de dez. de 2008.
Disponível
em:
CADI. An Intelligent, Multimedia Tutor for Cardiac Auscultation, 2008. Disponível
em: http://www.aaai.org/Library/AAAI/1996/aaai96-238.php. Acesso em: 02 de
dezembro de 2008.
Dias,
Robson.
Curso
de
Teoria
Musical,
2000.
Disponível
em:
http://www.atelierdavovo.com/teoria/teoria/aula01/. Acesso em: 17 de julho de
2008.
Fourier, Jean Baptiste Joseph, 2008. Disponível em: http://www.stetson.edu/
~efriedma/periodictable/html/Fe.html. Acesso em: 15 de dezembro de 2008.
Hewitt, Paul G. Física Conceitual. 9. ed. Porto Alegre: Editora Bookman, 2002. Matlab.
Matlab Trial Software, 2008. Disponível em: http://www.mathworks.com/
products/matlab/tryit.html. Acesso em 20 de novembro de 2008.
Mendes, Daniele Quintela. O modelo do Neurônio Artificial – Laboratório Nacional de
Computação Científica. 2008. Disponível em: http://www.lncc.br/~labinfo/
tutorialRN/. Acesso em: 10 de julho de 2008.
Neto, Wilson Castello Branco. Sistemas de Reconhecimento de Som para Afinação de
Instrumentos. Dissertação de Mestrado. Universidade Federal de Santa Catarina em
dezembro de 2007.
PEC. Programa Educacional em Cardiologia, 2008. Disponível em:
http://www.virtual.unifesp.br/unifesp/cardio. Acesso em: 02 de dezembro de 2008.
Porto, Celmo Celeno. Semiologia Médica. 5a. ed. São Paulo: Editora Guanabara
Koogan, 2005.
Sommers, D., McNeill, P. Turchin, B. Physical Characteristics, 1996. Disponível em:
http://library.thinkquest.org/2662/TQ1996/characteristics.html. Acesso em 17 de
julho de 2008.
26
Identificação de Faces em Imagens Bidimensionais
David de S. A. Pereiral1, José Antônio R. de Rapozo2, Júlio César da Silva3,
Eugênio da Silva4
1
UNIFESO, Centro de Ciência e Tecnologia, Curso de Ciência da
Computação, [email protected]
2
UNIFESO, Centro de Ciência e Tecnologia, Curso de Ciência da
Computação, [email protected]
3
UNIFESO, Centro de Ciência e Tecnologia, Curso de Ciência da
Computação; PUC-Rio, Departamento de Engenharia Civil,
[email protected]
4
UNIFESO, Centro de Ciência e Tecnologia, Curso de Ciência da
Computação; PUC-Rio, Departamento de Engenharia Elétrica,
[email protected]
Resumo. O objetivo deste trabalho é a realização de um estudo a respeito das
técnicas de Biometria mais conhecidas e pesquisadas atualmente, suas
aplicações e características, como confiabilidade e eficiência. Além disso,
apresenta-se também a sua maturidade em âmbito internacional. O foco
central do trabalho é o desenvolvimento de uma aplicação que faça a
identificação de faces em imagens bidimensionais, que é considerada uma das
técnicas de Biometria mais promissoras para o reconhecimento de pessoas à
distância, sem contato físico e em meio a outras. Para isso, o sistema
contempla as etapas de aquisição e tratamento da imagem, bem como a de
identificação (localização) das faces na imagem. O trabalho apresenta ainda
a modelagem do sistema e o estágio de desenvolvimento atual.
1. Introdução
O cérebro humano é capaz de identificar diversos tipos de padrões, como formas, cores,
tamanhos, além de ser apto também à identificação de padrões mais complexos podendo
diferenciar sem grandes dificuldades a face de uma pessoa entre várias. Apesar de ser
uma ação simples para o cérebro humano, esse tipo de reconhecimento necessita de um
complexo processamento quando é feito através de softwares de computador.
O Reconhecimento Facial é uma das áreas da Biometria mais pesquisadas na
atualidade cujos objetivos são Diferenciar uma pessoa de outra, identificar um usuário
de um sistema, encontrar uma pessoa em meio a uma multidão.
Por isso, este trabalho visa estudar e analisar as formas de reconhecimento facial
utilizadas atualmente procurando apresentar soluções mais eficientes, através de testes
com um protótipo de software, para a identificação de faces em imagens bidimensionais,
que servirá de base para o desenvolvimento de softwares de reconhecimento facial.
2. Biometria
Desde o início do desenvolvimento dos sistemas digitais, existe uma intensa
preocupação com a segurança e proteção dos dados e dos usuários neste meio virtual.
27
Uma das formas de segurança mais comuns é o uso de senhas pessoais, geralmente
representadas por um ou mais conjuntos de caracteres, porém este modo de proteção
apresenta diversas vulnerabilidades. Por mais segura que seja uma senha, há o risco de
que seja descoberta por outra pessoa ou software, esquecida ou roubada. Uma solução
para este problema pode estar na Biometria [Patin 2003]. A Biometria pode ser pensada
como uma chave bem segura, mas uma chave que não pode ser entregue a outra pessoa
[IBIA 2006].
Biometria, do grego bios vida e metron medida, é a parte da Ciência que estuda
as características físicas dos seres vivos, de forma estatística, analisando os padrões e os
definindo em atributos quantitativos. Cada ser humano possui características que os
tornam únicos no mundo, a distância entre os olhos, os padrões das impressões digitais,
as formas e cores na íris, os sulcos no cérebro, a formação dos dentes e a organização do
sistema circulatório são algumas dessas características. Quando estas características são
analisadas em conjunto permitem o reconhecimento e a distinção de cada pessoa. Para
possibilitar esse reconhecimento surgiu a Biometria.
Atualmente vários estudos vêm sendo realizados para permitir a aplicação da
Biometria em diferentes áreas, atendendo desde o usuário de um computador doméstico
que precisa restringir o acesso aos seus arquivos, até um sistema de segurança para
identificação de criminosos entre multidões [Russel & Novirg 2004].
Baseando-se nos padrões definidos na Biometria, atualmente têm sido
desenvolvidas diversas técnicas de reconhecimento, cada uma dessas técnicas
direcionadas a distintos tipos de uso. Como exemplo de utilização pode-se citar escolas
controlando a freqüência dos alunos, aeroportos identificando os passageiros, bancos
identificando os clientes, sistemas de segurança identificando criminosos, filas de
atendimento reconhecendo as pessoas e enviando as informações ao atendente, dentre
outras formas. As técnicas de Biometria mais utilizadas atualmente são a verificação
dos Padrões nas veias das mãos, verificação da impressão digital, reconhecimento
através da irias, reconhecimento através da retina, reconhecimento da voz, geometria da
mão, análise da pele, identificação através da assinatura, reconhecimento facial.
3. Reconhecimento Facial
O cérebro humano é considerado um ótimo reconhecedor de padrões, podendo
reconhecer algo que nunca viu. Por exemplo, se alguém é ensinado sobre o que é uma
cadeira, porém durante a sua vida apenas viu cadeiras com quatro pernas, quando vir
uma cadeira com três pernas ainda assim saberá que aquilo se trata de uma cadeira.
Com as faces não é diferente, o cérebro humano consegue reconhecer pessoas
rapidamente, analisando suas características, porém para um computador esse é um
processo mais complexo.
Os softwares de reconhecimento facial que vêm sendo desenvolvidos atualmente
baseiam-se em pontos estratégicos da face humana. Existem aproximadamente 80
pontos chave que juntos formam características únicas em cada ser humano, como a
distância dos olhos entre si e entre outras partes do rosto, como a sobrancelha, o
tamanho do nariz, a linha do queixo, largura da boca, entre outros. A captura e
identificação desses pontos podem ser efetuadas em uma imagem com duas dimensões
apenas buscando os pontos e analisando ou construindo um modelo em três dimensões
28
dos pontos da face para obter uma maior precisão. Logo, após a captura é feita a
transformação de cada ponto em dados numéricos que são comparados a outros
armazenados em um banco de dados.
Para um processo de reconhecimento eficaz, devem-se levar em consideração
diversas formas de reconhecimento desses padrões. Com base nisso, pode-se citar o
reconhecimento em imagens faciais não frontais, em meio externo com influência de
luzes, de faces de homens, que são consideradas mais fáceis de reconhecer por terem
características mais acentuadas, e de mulheres, que têm características mais suaves
dificultando o processo.
O reconhecimento facial é uma das formas de Biometria mais pesquisadas.
Porém atualmente tem pouca confiabilidade, devido à possibilidade de mutação através
de acidentes e processos naturais como o envelhecimento ou artificiais como cirurgias
plásticas, utilização de disfarces como máscaras, uso de cosméticos e produtos de
rejuvenescimento. Em alguns sistemas até mesmo fotografias podem ser utilizadas para
fraudar o processo de reconhecimento. Portanto, são necessárias mais pesquisas nesta
área para um melhor aperfeiçoamento, uma diminuição do custo e uma maior
confiabilidade.
O reconhecimento facial através de imagens em duas dimensões leva em
consideração diversos padrões apresentados na face de determinada pessoa, como as
medidas e proporções faciais. Com base nestas informações é criado um registro dos
dados, que serão utilizados para efetuar as comparações e assim reconhecer ou não o
indivíduo da imagem. Normalmente, é utilizada uma rede neural para o processo de
reconhecimento, necessitando de diversas imagens para treinamento da rede e uma
maior precisão na identificação.
O reconhecimento facial através de imagens bidimensionais leva em conta
diversos padrões apresentados na face da determinada pessoa, como as medidas e
proporções faciais. Com base nessas informações é criado um registro que,
posteriormente, será utilizado para efetuar as comparações e assim reconhecer ou não o
indivíduo da imagem [WPI 2004].
Atualmente existem diversas técnicas para o reconhecimento facial. Dentre elas
podemos destacar a mais utilizada, PCA, ou análise de componentes principais, que é
feita levando-se em consideração os pontos principais de onde é possível a obtenção de
características fundamentais para o processo de reconhecimento da face humana.
A técnica PCA trata-se de um método estatístico multivariado que visa reduzir o
tamanho da imagem facial com perda mínima de informação. Devido à velocidade e
simplicidade do método, é um dos mais empregados atualmente. O PCA pode ser visto
como uma transformação linear de ‘m’ variáveis em ‘m’ variáveis novas. Essas novas
variáveis podem ser vistas de tal forma que a primeira variável represente a maior
variação do conjunto de dados original, a segunda variável represente a maior variação
restante e assim por diante. Por isso, pode-se dizer que a técnica PCA também funciona
como um método de extração de características, pois se considerarmos as variáveis do
objeto, o PCA transforma o conjunto de características originais em um novo conjunto
de características (extração). Porém, neste novo conjunto podemos identificar quais são
as características mais significativas, descartando as de menor importância.
29
A Figura1 exemplifica o funcionamento de um sistema utilizando os EigenFaces
extraídos através do método PCA. As características faciais são localizadas e extraídas
da imagem, faz-se uma transformação determinando os valores, depois os fatores com
maior quantidade de informação são separados para que o algoritmo de reconhecimento
PCA recolha estas características extraídas da imagem apresentada, comparando-as com
outras faces contidas num banco de dados. Quando há uma semelhança detectada o
sistema calcula a probabilidade de semelhança e apresenta os resultados.
Figura 1. Ilustração do sistema de reconhecimento baseado em EigenFaces [BBC 2006].
4. Software para Reconhecimento de Faces em Imagens Bidimensionais
Para o desenvolvimento do software de identificação de faces em imagens
bidimensionais, foi escolhida a linguagem de programação C#, utilizando o framework
.NET, por disponibilizar uma vasta quantidade de recursos que podem ser utilizados no
projeto [Microsoft 2008] e pela familiaridade com a linguagem.
Também foi necessária a utilização de uma biblioteca gráfica para possibilitar o
tratamento e o processamento das imagens utilizadas. Foi utilizada a biblioteca
inicialmente desenvolvida pela Intel, OpenCV, que é livre para uso acadêmico e
comercial [OpenCV 2008].
A escolha das ferramentas de desenvolvimento e recursos necessários baseou-se
principalmente no custo de desenvolvimento, permitindo que o software não possua um
valor comercial considerado alto, quando totalmente implementado, o que pode
possibilitar sua implantação em outros sistemas.
O objetivo do projeto é a construção de um software que faça a aquisição de uma
imagem através de uma câmera ou de um arquivo em disco, trate-a e identifique faces,
possibilitando que futuramente seja desenvolvida a etapa de reconhecimento das pessoas
retratadas na imagem.
O software possui um módulo de aquisição da imagem através de uma câmera
ligada ao computador ou através de um arquivo de imagem gravado no computador.
Após a aquisição da imagem é executado o tratamento desta, a fim de melhorar a sua
qualidade e de definir seus contornos, possibilitando que os padrões faciais sejam
extraídos e que as faces sejam identificadas. Isso significa localizar possíveis faces na
imagem obtendo suas posições. Isto possibilita que posteriormente seja desenvolvida a
30
aplicação de reconhecimento destas faces localizadas na imagem. A Figura 2 mostra a
tela do software com a imagem tratada e faces identificadas.
Figura 2 - tela do software com imagem tratada e faces reconhecidas.
4.1. Tratamento de Imagens para o Reconhecimento Facial
Para possibilitar o reconhecimento de faces em uma imagem estática, é necessária uma
série de processos de preparação, tratamento e processamento dessas imagens [Gonzales
& Woods 2002]. Dentre estes se podem citar as etapas mostradas no exemplo da Figura
3.
Figura 3 – Processo de aquisição e tratamento de imagens.
31
Existem duas técnicas de tratamento de imagem: a do domínio da freqüência e a
do domínio espacial. Técnicas fundamentadas no domínio espacial baseiam-se na
manipulação direta dos pixels de uma imagem, podendo ou não levar em consideração a
sua vizinhança. As técnicas fundamentadas no domínio da freqüência baseiam-se na
utilização de transformadas, como por exemplo, a transformada de Fourier. Segundo
Gonzalez & Woods (2002) funções de processamento de imagens no domínio espacial
podem ser expressas como g(x,y) = T[f(x,y)] em que f(x,y) é a imagem de entrada,
g(x,y) é a imagem processada e T é um operador sobre f.
Os principais processos de tratamento de imagens utilizados no reconhecimento
de padrões após a aquisição da imagem são a conversão da imagem, caso colorida, em
tons de cinza, a binarização, a detecção do contorno, e a segmentação [Gonzales &
Woods 2000].
4.2. Detecção de Pele
A detecção da pele é um passo muito importante em muitos sistemas que utilizam visão
computacional, como por exemplo, posicionamento de pessoas, detecção da mão e
localização da face. Devido à grande quantidade de possíveis variações que os valores
dos pixels podem sofrer em uma imagem digital, devido principalmente à iluminação,
esta torna-se uma tarefa difícil.
O processo de detecção de pele descrito por Gomez, Sanchez & Sucar (2000)
pode utilizar-se de um espaço bidimensional, obtido quando se relaciona o componente
E, do espaço de cor YES, com o componente R/G do espaço de cores RGB, resultando
em um agrupamento com uma taxa de 95% de acerto, conforme ilustrado na Figura 4.
Figura 4 - Espaço de cores para a detecção da pele [GOMEZ, SANCHEZ & SUCAR 2000].
No espaço de cor YES, o Y representa a componente luminância, como uma
soma dos valores de R, G e B, e o E e S representam os fatores de crominância. O sinal
no fator E é proporcional a diferença entre os canais de cor vermelho e verde, enquanto
o fator de cor S é proporcional ao amarelo menos o azul [Lin 2003]. A Figura 5 ilustra
os resultados obtidos com esta técnica em uma imagem digital. O processo de
reconhecimento de pele é utilizado na etapa de validação da face detectada, como uma
tentativa de eliminar possíveis falsos positivos.
32
Figura 5 - Imagem normal (a); Imagem com reconhecimento de pele (b).
4.3. Biblioteca OpenCV
Para o processamento da visão computacional no projeto foi utilizado o OpenCV.
OpenCV é uma biblioteca destinada à visão computacional desenvolvida pela Intel. É
uma biblioteca open source, livre para uso comercial e de pesquisa sob a licença BSD,
uma licença de código aberto considerada pouco restritiva quando comparada a outras
licenças, pois se restringe principalmente ao reconhecimento dos autores.
A biblioteca OpenCV provê uma série de facilidades quanto ao uso de funções
algébricas, operações com matrizes, além de acesso facilitado a dispositivos de captura
de imagens como webcams por exemplo.
Lançada oficialmente em 1999, o projeto do OpenCV foi inicialmente
desenvolvido pelos pesquisadores da Intel na tentativa de alavancar aplicações de
grande porte, como projetos de Ray tracing em tempo real e interfaces 3D. Os objetivos
do projeto foram descritos como:
•Avançar a pesquisa em visão computacional, provendo não somente um código
aberto, mas também otimizado para infra-estrutura básica da visão
computacional. Não seria mais necessário reinventar a roda.
•Alavancar a quantidade de aplicações comerciais baseadas em visão
computacional, tornando-as portáveis, com código otimizado de graça, e com
uma licença que permite que estas aplicações não sejam open source ou
freeware.
A versão final oficial foi liberada em 2000. O OpenCV encontra-se atualmente
na versão 1.0 liberada em no final 2006.
4.4. Treinamento
Para o processo de treinamento (Figura 6) precisa-se de uma grande base de dados
contendo faces (imagens positivas) e não-faces (imagens negativas). Uma boa escolha
para imagens de faces é a base de dados MIT CBCL Face Data, disponível para
download por CBCL (2000). Esta base contém 2.429 imagens de faces e 4,548 imagens
de não faces, além de possuir um conjunto de testes contendo 472 imagens de faces e
33
23.573 imagens de não-faces. Todas as imagens possuem a resolução de 19x19, em
escala de cinza no formato pgm.
Figura 6 - Processo de treinamento e testes.
O primeiro passo é criar amostras de treinamento. Isto pode ser feito através da
função cvCreateTrainingSamples, que recebe por parâmetros o nome da imagem, o
nome de um arquivo que contenha uma lista de imagens negativas e o nome do arquivo
de saída que será gerado pela função. Esse arquivo será usado no processo de
treinamento.
O processo de treinamento é executado através da função
cvCreateTreeCascadeClassifier, onde são passados por parâmetro, o diretório onde
serão geradas as informações do treinamento, o arquivo de amostras gerado no passo
anterior e o arquivo com a lista de arquivos negativos.
5. Resultados
As taxas de acerto na localização das faces em imagens coloridas com resolução de
640x480, com apenas uma face foi de 93,86%, para um conjunto de 750 imagens de 20
indivíduos diferentes (15 imagens de cada indivíduo), o que equivale a 704 faces
identificadas. Houve 133 falsos positivos, dos quais 97 foram detectados como nãofaces pelo processo de reconhecimento de pele, o que equivale a 72,93% da quantidade
total de falsos positivos. A Tabela 1 mostra os resultados obtidos.
Tabela 1 - Tabela de Resultados
Total de faces
750
Faces Identificadas
704 (93.86%)
Falsos Positivos Falsos positivos identificados
133
97 (72,93%)
34
6. Conclusões
As técnicas de Biometria estão sendo cada vez mais utilizadas atualmente, pois
possibilitam uma melhor segurança e um melhor controle de acesso, do que outros
métodos como cartões magnéticos e códigos de barras. Isto atende a diversos tipos de
necessidade, tanto para restrição de acesso de usuários num microcomputador
doméstico, quanto em grandes corporações controlando as áreas de acesso restrito e a
freqüência de seus funcionários, ou até mesmo para uso em sistemas de segurança
identificando suspeitos em aeroportos e locais públicos.
O desenvolvimento e pesquisas de novos projetos de Biometria tornam-se
necessário para assegurar que estas técnicas possuam uma maior confiabilidade em um
futuro próximo. Estima-se que futuramente o uso da Biometria esteja ainda mais
aprofundado na sociedade e que as pessoas não precisarão mais de senhas, chaves,
cartões de acesso, para serem identificadas em meios digitais, pois a única chave seriam
elas mesmas.
Com o desenvolvimento do software de identificação de faces em imagens com
duas dimensões, verificou-se através de testes que o mesmo possui uma quantidade
satisfatória de acertos na localização de faces nas imagens, porém alguns erros ainda
foram encontrados. Quando utilizado com o algoritmo de identificação de pele sua
confiabilidade aumentou, com um nível maior de acertos, porém mantendo a marcação
dos falsos positivos para garantir uma maior confiabilidade.
A próxima etapa necessária para o desenvolvimento do software é a fase de
reconhecimento facial, que poderá ser feita utilizando o método PCA para extração das
Eigen Faces. Para reduzir a possibilidade de falhas e de tentativas de fraudes na
utilização do software é importante a integração do reconhecimento facial com outras
técnicas de Biometria, como por exemplo, a verificação através da íris. Por fim, seria
importante a finalização do software preparando-o para a utilização juntamente a outros
sistemas, possibilitando assim a sua integração com maior facilidade, o que o tornaria
um software completo e pronto para a utilização.
Referências Bibliográficas
BBC (2006). Biometric Technology. Disponível em: http://news.bbc.co.uk/2/shared/
spl/hi/guides/456900/456993/html/nn2page1. Último acesso em dezembro de 2008.
CBCL (2000), Face Recognition Database. Disponível em http://cbcl.mit.edu/
projects/cbcl/software-datasets/faces.tar.gz. Último acesso em novembro de 2008.
Gomez, G., Sanchez, M., Sucar, L. E. (2000), On selecting an appropriate colour space
for skin detection. Proceedings of the IEEE Conference on Computer Vision and
Pattern Recognition, CVRP, v.1.
Gonzales, R. C. e Woods, R. E. (2000). Processamento de imagens digitais. Editora
Blücher. São Paulo.
Gonzales, R. C. and Woods, R. E. (2002). Digital ImageProcessing, Second Edition.
Prentice-Hall, Inc.
35
Lin, Chiunhsiun (2003). Detection Of Human Faces Using Yes Color Space And
Triangle-Based Approach. Disponível em: ftp://ftp.research.microsoft.com/Users/
PR-SpecialIssue/facedetect-6-lin.pdf. Último acesso em novembro de 2008.
Microsoft (2008). Microsoft Visual Studio developer Center. Disponível em:
http://msdn.microsoft.com/en-us/vstudio/default.aspx. Último acesso em: 14 de
janeiro de 2009.
OpenCV (2008). OpenCV Wiki. Disponível em: http://opencv.willowgarage.com/wiki/.
Último acesso em 13 de fevereiro de 2009.
Patin, F. (2003). An Introduction to digital image processing. Disponível em:
http://www.yov408.com/imageproc/ImageProc.pdf. Último acesso em 14 de
fevereiro de 2009.
Russel, S. e Norvig, P. (2004). Inteligência Artificial. Editora Campus, São Paulo.
WPI (2004). A Facial Recognition Primer. Disponível em: http://www.wpi.edu/News/
Transformations/2002Spring/recognition.html. Último acesso em 16 de janeiro de
2009.
36
Desenvolvimento de um Banco de Dados Geográficos para
a Análise Espacial da Lashimaniose Visceral em Cametá-PA
Cláudia Souza1, Douglas Gasparetto2, Cleice T. N. Souza3, Nelson Soffiatti4,
Roberto Brandão5, Nelson Veiga6
1
Instituto Evandro Chagas, Laboratório de Geoprocessamento,
[email protected]
2
Instituto Evandro Chagas, Laboratório de Geoprocessamento,
[email protected]
3
Centro Universitário do Estado do Pará, Instituto Evandro Chagas,
Laboratório de Geoprocessamento, [email protected]
4
Instituto Evandro Chagas, Laboratório de Geoprocessamento,
[email protected]
5
Instituto Evandro Chagas, Laboratório de Geoprocessamento,
[email protected]
5
Instituto Evandro Chagas, Laboratório de Geoprocessamento,
[email protected]
Resumo. Neste artigo é mostrado o desenvolvimento de um banco de dados geográfico
para subsidiar a análise da distribuição espacial da incidência da Leshimaniose
Visceral no município de Cametá, no estado do Pará. Para tal objetivo desenvolveu-se
um banco de dados geográfico com dados ecoepidemiológicos utilizando o PostGis.
Após o processo do projeto lógico e físico da base de dados foi elaborado “queries” de
consultas espaciais, conectadas ao PostGis, para a extração de informações.
Posteriormente, utilizou-se o SIG OpenJump para a elaboração dos mapas temáticos.
Como resultado observou-se que com as consultas espaciais, obtêm um rápido
resultado sobre quais possíveis criadouros são propícios a proliferação da doença,
utilizando as tecnologias PostGis e OpenJump, possibilitando expressar visualmente a
incidência da doença de Leishimaniose Visceral no município estudado.
1. Introdução
A Leishimaniose Visceral (LV), também conhecida como Calazar, é uma doença
parasitária cujo agente etiológico é o protozoário do gênero Leishimania, sua
transmissão é feita através da picada do mosquito flebotomíneo, conhecido
popularmente por mosquito palha ou birigui [Waldman e Rosa 1998]. Segundo a
Organização Mundial de Saúde (OMS), as Leishmanioses afetam cerca de dois milhões
de pessoas por ano, com 500 mil casos de forma visceral. É também considerada
emergente em indivíduos portadores de infecção pelo vírus da imunodeficiência
adquirida (HIV), tornando-se umas das mais importantes doenças da atualidade
[Ministério da Saúde 2004]. O registro do primeiro caso da doença no Brasil ocorreu em
1913, quando Migone, no Paraguai, descreveu o caso em material de necropsia de
paciente oriundo de Boa Esperança, Mato Grosso.
37
No âmbito epidemiológico – área do conhecimento que estuda a freqüência da
distribuição ou eventos relacionados à saúde em populações específicas e a aplicação
desses estudos no controle dos problemas de saúde [Waldman e Rosa 1998] – o
geoprocessamento têm sido adotado como uma ferramenta de integração de dados
ambientais, socioeconômicos e de saúde que permite realizar o mapeamento de doenças
[Resendes et al. 2007].
Nesse contexto, sistemas de informação e banco de dados têm sido utilizados em
diversos estudos como suporte a dados geográficos. Logo, Sistemas de Informação
Geográficos (SIGs) e Banco de Dados Geográficos (BDGs) quando integrados
possibilitam a análise, manipulação e recuperação de dados geográficos.
Entre as tecnologias de Sistemas Gerenciadores de Banco de Dados Espaciais
(SGBDE), aplicadas ao contexto de software livre (SL), o módulo de extensão espacial
PostGis do PostGreSQL foi adotado neste estudo, por apresentar uma grande quantidade
de funções espaciais.
Além da seção introdutória, este artigo está organizado da seguinte forma: na
Seção 2 é apresentada uma descrição sobre a localização da área que está sendo
estudada; na Seção 3 é detalhada a metodologia adotada no estudo; na Seção 4 são
apresentados os resultados obtidos pelas análises desenvolvidas na presente pesquisa.
2. Caracterização da Área de Estudo
2.1. Localização da Área de Estudo
O Sistema de Informação de Agravos e Notificação (SINAN) apresenta um relatório
gerencial a respeito de todos os casos notificados (sejam clinicamente confirmados ou
não) sobre a doença LV no município de Cametá-PA. A Tabela 1 apresenta os dados
retirados do sistema que correspondem aos períodos de 2007 a 2008.
Tabela 1. Relatório Gerencial de todos os casos notificados de LV, no período
de 2007 a 2008, em Cametá-PA.
Fonte: SINAN
Leshimaniose Visceral - Cametá
Notificados
Notificados fora
pelo Município do Município
2007
2008
2007
2008
Número Absoluto 247
26
26
1
90.48 96.30
Porcentagem
%
%
9.52% 3.70%
Total de Registro
273
1
Observando-se a expressividade da incidência da LV, nos períodos
correspondentes, através dos registros apresentados, o povoado Enseada e os lugarejos
Ajó, Vacaria e Vacajó localizados a norte e ao sul de Cametá-PA, cuja sede pertence à
Mesorregião do Nordeste Paraense e a Microrregião de Cametá, foram as localidades
alvos para a análise espacial da distribuição da doença. A localização geográfica da sede
municipal corresponde às seguintes coordenadas: 02º14’54’’ de latitude Sul e
38
49º30’12’’ de longitude a Oeste de Greenwich. A Figura 1 apresenta o mapa temático
referente à localização geográfica do município em estudo.
Figura 2. Mapa Temático da área de estudo: Cametá, no estado do Pará.
Fonte: Laboratório de Geoprocessamento/SVS/MS
2.2. Aspectos Sócio-Econômicos
O padrão de transmissão da doença de LV vem mudando ao longo dos anos,
predominado pelas características ambientais, rurais e periurbanas.
Nesse sentido, baseado em levantamentos bibliográficos e questionário sócioeconômico local, percebe-se o ecletismo de subsistência das famílias, como por
exemplo: cultivo de hortaliças e banana, de consumo diário nas feiras de Cametá onde a
mercadoria circulante é convertida em mais-valia, desta forma, a criação de aves e
suínos, prática comum entre os municípios diminui, limitando-se ao escambo entre as
famílias.
Há também a criação de animais domésticos, como cães (principais reservatórios
do vetor da LV), em perodomicílio, desta forma, contribuindo para a aproximação do
vetor da doença, a Figura 2 demonstra as características do ambiente vivenciado pelas
famílias no município em questão.
Devido a estes fatores, o caráter endêmico da LV vem se constituindo num
grande desafio para as autoridades de saúde local, dada a grande mobilidade social da
região.
39
Figura 2. Aspectos Sócio-Econômicos Locais, em Cametá-Pa
Fonte: Laboratório de Geoprocessamento/SVS/MS
3. Metodologia
O método de pesquisa deste trabalho foi estruturado em uma seqüência de cinco etapas
principais: (a) levantamento do referencial teórico sobre Vigilância em Saúde (VS) e
Epidemiologia da Leshimaniose Visceral; (b) georreferenciamento de dados
ecoepidemiológicos coletados em campo, utilizando o Sistema de Posicionamento
Global (GPS); (c) desenvolvimento de um BDG utilizando o SGBDE Postgis e (e)
realização de uma análise espacial subsidiada por mapas temáticos que expressam a
distribuição espacial da incidência da Leshmaniose Visceral nas áreas de estudos
preconizadas.
Nas subseções a seguir são apresentadas as geotecnologias adotadas que
subsidiaram o desenvolvimento da expressão visual (mapas temáticos) que representam
a relação espacial do fenômeno ecoepidemiológico que está sendo estudado.
3.1. Sistema Gerenciador de Banco de Dados Geográficos (SGBDE): PostGis
O PostGis é a extensão espacial do PostGreSQL, tal módulo é responsável por adicionar
entidades geográficas ao seu SGBD. O PostGis possibilita armazenar, recuperar e
analisar dados espaciais em um SIG [PostGis 2005].
O SGBDE apresenta um número expressivo de funções espaciais/topologias que
são utilizadas para subsidiarem análises espaciais. No contexto deste trabalho, tais
funções são aplicadas para a análise ecoepidemiológica referente à distribuição espacial
de reservatórios, criadouros ou vetores de transmissão da doença Leshimaniose
Visceral.
Nesse sentido, o artigo apresenta o processo de geração dos scripts de criação do
banco de dados no PostGis.
40
1. Primeiramente, foi implementada a tabela Paciente que objetiva armazenar, por
exemplo, as informações sobre os diagnósticos laboratoriais dos prováveis
indivíduos com LV.
• Query: CREATE TABLE paciente (codPaciente PRIMARY KEY,
localidade varchar, nome varchar, sexo varchar, idade number,
resultado varchar);
2. Posteriormente, foi desenvolvido a tabela Pontos_Estudo. A tabela armazena
registros das possíveis localidades que podem abrigar ou proliferar o vetor da
doença LV.
• Query: CREATE TABLE Pontos_Estudo (gid serial PRIMARY KEY,
nome_areas varchar, latitude varchar, longitude varchar, y_coord
float,x_coord float);
SELECT AddGeometryColumn('Pontos_Estudo_geom','the_geom','4291','POINT',2);
A execução das principais consultas espaciais suportadas pelo PostGis são
demonstrada pelo SIG, conforme abordado abaixo.
3.2. Sistema de Informação Geográfica (SIG): OpenJump
Conforme apresentado na Introdução, o SIG tem o intuito de realizar o armazenamento,
manipulação e análises espaciais complexas contidas em bases de dados cartográficas
georreferenciadas e banco de dados produzidos na estrutura relacional, como por
exemplo, os ambientais e epidemiológicos [Souza et al. 2008].
O OpenJump é um SIG desenvolvido em tecnologia Java, baseado no modelo de
negócios SL. O SIG permite a manipulação topológica sobre geometrias 2D, o acesso de
feições no formato shapefile e possui suporte a dados armazenados no PostGis [Destro,
2007]. Nesse sentido, o SIG foi utilizado para realizar a conexão com o datastore no
PostGis e as consultas espaciais.
A Figura 3(a) apresenta o construtor de consultas espaciais utilizado para a
implementação da função intersection. Tal função objetiva mostrar os a localização
precisa de indivíduos positivados laboratorialmente para LV. A Figura 3(b) apresenta
um fragmento do mapa temático, no SIG OpenJump, da distribuição espacial dos casos
confirmados de transmissão da LV.
Figura 3(a). OpenJump: Construtor de Consultas Espaciais
41
Figura 3(b). Visualização da distribuição de casos confirmados de transmissão da LV,
utilizando o SIG OpenJump.
4. Resultados e Discussões
Como abordado na Seção 2.2, as condições sócio-econômicas das localidades de
Enseada, Ajó, Vacaria e Vacajó contribuem significativamente para a aproximação do
vetor da doença (flebotomíneo) em áreas de reservatórios naturais. Nesse sentido, o
trabalho objetivou utilizar geotecnologias livres para o suporte das análises espaciais da
distribuição da doença em Cametá, no estado do Pará.
As consultas espaciais desenvolvidas a partir das funções espaciais/topológicas
do SGBDE PostGis viabilizaram análises epidemiológicas mais precisas. Tais análises
foram expressas através de mapas temáticos produzidos pelo ambiente OpenJump.
Ressalta-se, que o SIG apresentou um bom desempenho quando conectado ao PostGis,
no sentido, de realizar consultas espaciais mais amigáveis.
Ressalta-se que tais geotecnologias, quando integradas, possibilitaram, no
contexto desta pesquisa mapear os indivíduos confirmados laboratorialmente, como
portadores do parasita da doença de LV.
Referências Bibliográficas
Destro, J. N.; Modelo para WEBMAP: Um estudo de Caso. 2007. 31 f. Dissertação
(Mestrado em Ciências Geodésicas). Pós-Graduação em Ciências Geodésicas.
Universidade Federal do Paraná. 2007.
Ministério da Saúde. Guia de Vigilância Epidemiológica ed. MS. Brasília-DF, 2004.
OpenJump. Disponível em: <http://openjump.org/wiki/show/HomePage>. Acesso em
21/01/2009.
Postgis, 2005. Disponível em:< http://postgis.refractions.net/>. Acesso em: 21/01/2009.
Resendes, Ana Paula da Costa.; Barcellos, Christovam.; Skaba, Daniel Albert.; Oliveira,
Evangelina Xavier Gouveia de.; Gondim, Grácia Maria de Miranda.; Rojas, Luisa
42
Basilia Iñiguez.; Pina, Maria de Fátima de.; Magalhães, Mônica de Avelar F.M.;
Santos, Reinaldo Souza dos.; Gracie, Renata.; Santos, Simone M. Sistemas de
Informações Geográficas e Análise Espacial na Saúde Pública. Série: Capitação e
atualização em geoprocessamento em saúde. Volume 2, 2007.
Souza, C., Gasparetto, D., Souza, C.T.N, Soffiatti, N.F.L., Veiga, N. (2008). “Análise
Ecoepidemiológica da Incidência da Doença de Chagas em Abaetetuba, Barcarena e
Bragança, no estado do Pará, entre 2000 e 2006, utilizando Geotecnologias Livres”.
XV Simpósio Brasileiro de Sensoriamento Remoto, 2009.
Waldman, Eliseu Alves; Rosa, Teresa Etsuko da Costa. Vigilância em Saúde Pública.
1998. Disponível em: <http://www.saude.sc.gov.br/gestores/sala_de_leitura/
saude_e_cidadania/ed_07/index.html>. Acesso em: 10.nov.2008.
43
Rastreamento de Jogadores de Futebol em Seqüência de
Imagens
Rodrigo D. Arnaut1, Anna H. R. Costa2
1
Universidade de São Paulo, Escola Politécnica, Departamento de Engenharia
de Computação e Sistemas Digitais, [email protected]
2
Universidade de São Paulo, Escola Politécnica, Departamento de Engenharia
de Computação e Sistemas Digitais, [email protected]
Resumo. Este trabalho propõe um sistema de rastreamento visual de jogadores
de futebol, o qual estima as trajetórias 2D em seqüências de imagens capturadas
por câmeras fixas, instaladas ao redor de um campo de futebol. O rastreamento
permite determinar diversos parâmetros como, por exemplo, a velocidade e a
distância percorrida pelos jogadores durante uma partida, a região de maior
movimentação da equipe no campo, etc. O sistema proposto segue uma
abordagem probabilística, alcançando bons resultados iniciais. Os experimentos
mostraram que uma implementação inicial do sistema, utilizando somente
informação de variação da intensidade luminosa das imagens, já apresenta
resultados eficazes e eficientes e permite vislumbrar melhorias significativas a
serem desenvolvidas.
1. Introdução
Informações estatísticas extraídas do rastreamento de jogadores de futebol, como
velocidade e distância percorrida, movimentação da equipe no decorrer do jogo, entre
outras, podem ser de extrema relevância para um entendimento mais acurado de uma
partida de futebol, tornando-se ferramentas de grande importância para emissoras de
televisão, clubes e técnicos de futebol [Borg 2007], motivando pesquisas e
desenvolvimentos na área.
O objetivo deste trabalho consiste em propor e implementar um sistema de
rastreamento visual de jogadores de futebol que seja eficaz e eficiente, dominando o
conhecimento existente e permitindo a adoção de técnicas de rastreamento para enriquecer
as análises do esporte mais popular em nosso país, o futebol. Neste trabalho utilizam-se
imagens de uma câmera fixa instalada ao redor de um campo de futebol.
Ainda há muito interesse em pesquisa e desenvolvimento neste tema, pois a técnica
de rastreamento de alvos é muito desejada em sistemas onde o acesso a instalação de
sensores nos alvos seja difícil ou até impossível, necessitando de uma abordagem não
invasiva, o qual é possibilitado por análise visual de imagens. As origens do rastreamento
visual foram em aplicações militares, mas logo a técnica se espalhou para aplicações de
segurança e monitoramento de pessoas, produções cinematográficas, computação gráfica e
estatística [Grewal, Weill e Andrews 2007]. Recentemente, alguns estudos na área de
rastreamento visual de alvos para esportes, mais especificamente para jogadores de futebol,
foram implementados [Beetz et al. 2007, Borg 2007, Xu et al. 2005], mas poucos
conseguiram definir claramente o melhor caminho para o emprego desta técnica, nem
44
sempre indicando os recursos necessários de hardware e software, nem descrevendo em
detalhes a técnica empregada para a obtenção dos resultados mostrados no rastreamento.
Este artigo descreve a proposta e implementação de um sistema de rastreamento
visual de jogadores de futebol, o qual estima as trajetórias 2D em seqüências de imagens
capturadas por câmeras fixas, instaladas ao redor de um campo de futebol. O sistema
proposto segue uma abordagem probabilística e utiliza, nesta implementação inicial,
somente informação de variação da intensidade luminosa das imagens. Os experimentos
mostram alguns resultados animadores e permite que se vislumbre importantes derivações,
visando tornar o sistema eficaz e eficiente na aplicação desejada.
O restante deste artigo está organizado da seguinte forma: na seção 2 são detalhados
alguns trabalhos correlatos relevantes; a proposta é apresentada na seção 3; diversos
experimentos foram conduzidos e os resultados de alguns deles são descritos na seção 4.
Finalmente, na seção 5 apresenta-se a conclusão e os trabalhos futuros.
2. Trabalhos Correlatos
Devido às diversas análises estatísticas que se consegue derivar de um rastreamento de
jogadores, a área de pesquisa de rastreamento visual de alvos tem atraído o interesse de
diversos pesquisadores, uma vez que a análise de seqüências de imagens permite o
desenvolvimento de um sistema de rastreamento não invasivo. A maioria das propostas
com resultados mais significativos adota uma abordagem probabilística de rastreamento
visual automático [Beetz at al 2007, Borg 2007, Xu et al 2005]
A proposta de De Bem (2007) efetua o rastreamento de alvos com formas
heterogêneas em seqüências de imagens empregando a utilização de dois filtros de Kalman
[Kalman 1960, Welch e Bishop 1995] acoplados para cada alvo, um que estima a translação
de pontos do contorno do alvo, chamado de pontos de controle, e outro que estima a
velocidade de deslocamento e a variação de escala, sofrida pelo mesmo, em duas imagens
consecutivas. O sistema possui duas etapas: inicialização e rastreamento.
Na inicialização são detectados os alvos de interesse para o rastreamento, utilizando
técnicas padrões de processamento de imagens, e também são definidas as estimativas dos
estados iniciais para cada filtro de Kalman, em cada alvo. As estimativas são feitas com
base na translação dos pontos de controle, pelo deslocamento sofrido em relação ao centro
de área do contorno e pela variação da medida do centro de área a um ponto do contorno do
alvo, na seqüência de imagens.
Na etapa de rastreamento inicia então a execução recursiva das etapas de predição,
observação e correção de cada filtro, com base nos modelos de movimento e de observação
para estimar a trajetória de cada alvo. Os modelos de movimento são definidos pelas
posições dos pontos de controle, pela velocidade de deslocamento e pela variação do fator
de escala do contorno dos alvos (conforme descrito na etapa de inicialização), e o modelo
de observação é definido por meio de linhas de medidas transversais ao contorno de cada
alvo, passando sobre os pontos de controle, de forma a tornar a análise de imagem mais
eficiente, uma vez que o contorno de cada alvo, em cada imagem, é processado no espaço
1D da linha, buscando variações do contraste luminoso que separa o alvo do fundo da cena.
Assim, a variável de estado do sistema de De Bem é dada pelo conjunto de i pontos de
controle, dados por suas coordenadas (xi , yi) na imagem atual, pela velocidade (vx , vy) do
45
centro de área do contorno do alvo e pela alteração de escala s em duas imagens
consecutivas.
Para manter a linearidade do sistema, permitindo o uso do filtro de Kalman,
separou-se o sistema em dois módulos, cada um com um estimador por filtro de Kalman:
um que estima os parâmetros de velocidade e escala, e outro que estima os parâmetros de
posição dos pontos de controle do contorno do alvo.
O trabalho apresentado por Xu et al (2005) aplica o filtro de Kalman para o
rastreamento de jogadores com câmeras fixas. O sistema é dividido em dois passos
principais. No primeiro passo é feita a detecção dos alvos nas imagens utilizando técnicas
de subtração de fundo, atualização dinâmica de modelo de fundo de cena e fechamento
morfológico da imagem processada [Gonzalez e Woods 1993]. Como resultados são
gerados, além do número total de alvos detectados, o centro de área e o retângulo
envolvente de cada alvo. Na segunda etapa é executado o rastreamento dos alvos com um
filtro de Kalman para cada alvo, utilizando uma representação do retângulo envolvente e o
centro de área de cada jogador, como variáveis de estado x,
x = [ rc
cc
vrc
vcc
∆r1
∆c1
∆r2
∆c2 ]T ,
sendo que a seguinte medida z é extraída de cada imagem
z = [ rc
cc
r1
c1
r2
c2 ]T
,
onde rc e cc são os centros de área do retângulo envolvente a cada jogador; vrc e vcc
representam a velocidade de translação entre quadros do centro de área do retângulo
envolvente; r1, c1, r2, c2 representam os pontos superior esquerdo e inferior direito do
retângulo envolvente, respectivamente, sendo r1 < r2 e c1 < c2; ∆r1, ∆c1, ∆r2 e ∆c2
representam as posições relativas dos pontos r1, c1, r2, c2 do retângulo até o centro de área,
conforme ilustra a Figura 1.
Figura 1. Centro de área e retângulo envolvente do alvo.
Os autores assumiram que existe pouca variação dos valores de altura e largura do
retângulo envolvente do alvo entre quadros consecutivos e que a área do retângulo é
46
observável em todos os quadros. Este fato não ocorre quando há oclusão dos alvos;
entretanto, os autores propuseram uma abordagem bastante simples para tratar por uma
curta seqüência de quadros de imagem, de forma aproximada, variações grandes derivadas
de oclusão. Na abordagem proposta, os retângulos envolventes não são atualizados
enquanto houver extração, na imagem processada, de retângulos envolventes com grandes
variações de dimensões; os mesmos só são novamente atualizados quando o processamento
da imagem atual extrair retângulos com dimensões compatíveis com os anteriormente
processados. Este processo está ilustrado na Figura 2, onde os quadros superiores mostram
os dados processados e os inferiores, os quadros originais de imagem, com superposição
dos retângulos envolventes estimados e das trajetórias percorridas pelos alvos. Observe a
oclusão nos quadros intermediários.
Figura 2. Detecção e Rastreamento de Jogadores, com tratamento simples de
oclusão (figura extraída de [Xu et al. 2005]).
ASPOGAMO (Automated SPOrt Game Analysis MOdel) é um trabalho da
universidade de Munique, Alemanha, com o objetivo de rastrear visualmente jogadores de
futebol em uma partida, utilizando imagens das câmeras disponíveis de emissoras de TV,
determinando a trajetória e as coordenadas da posição de cada jogador dentro de
determinadas cenas [Beetz et al 2007]. As trajetórias dos alvos são determinadas no plano
3D do campo de futebol, representando as posições em cada instante de tempo de cada
jogador, em coordenadas do mundo real. Três problemas foram abordados neste projeto: a
estimação da direção da câmera e do fator de zoom, já que neste caso trata-se de câmeras de
TV; a detecção e o rastreamento dos jogadores; e a identificação dos jogadores rastreados.
O sistema foi testado com sucesso durante a Copa do Mundo de 2006, na Alemanha. O
interesse maior do projeto ASPOGAMO em relação ao trabalho reportado no presente
artigo está na etapa de detecção e rastreamento dos jogadores. Para a detecção de jogadores,
ASPOGAMO emprega um método de segmentação de bordas externas, baseado no modelo
de tamanho dos alvos e no modelo de cores dos uniformes da equipe, estes modelos devem
estar previamente cadastrados. Os jogadores são localizados utilizando a estimação pelo
centro de área. Para a etapa de rastreamento foi utilizado o MHT (Multiple Hypothesis
Tracker) [Cox e Hungarian 1996], melhorando a eficácia do rastreamento de alvos, que
normalmente é corrompido por diferentes erros de medidas, tais como: indicação invertida
das categorias dos jogadores, observações de falso-positivo (ruído interpretado como
detecção de algum alvo) e falso-negativo (jogadores não detectados), entre outros. As
variáveis de entrada para o MHT são as posições dos jogadores e as matrizes de
covariâncias de medidas. Para cada hipótese do rastreamento dos alvos é utilizado um novo
filtro de Kalman no MHT, com o vetor de estado dado por x = [x y v v ] , onde x e y são as
coordenadas do contorno dos alvos e vx e vy suas respectivas velocidades de translação entre
T
x
47
y
quadros, todas definidas em pixels. O vetor de medidas é z k = [ x y ]T . Somente
translações são consideradas entre quadros. A principal desvantagem na implementação do
MHT está na complexidade computacional da técnica, a qual utiliza múltiplas hipóteses de
rastreamento para cada alvo em cada quadro analisado [Cox e Hungarian 1996].
Os três trabalhos descritos nesta seção representam trabalhos significativos da
literatura na área de rastreamento visual de jogadores de futebol, pois demonstram
eficiência e eficácia na tarefa de interesse e serviram de inspiração para a proposta descrita
neste artigo. A Tabela 1 sumariza as principais características de cada um, salientando suas
similaridades e discrepâncias com vantagens e desvantagens.
Tabela 1. Tabela comparativa dos trabalhos correlatos.
Trabalho
Correlato
De Bem
(2007)
Técnica de
Estimação
Dois filtros de
Kalman para cada
alvo
Câmeras
Fixas
Vantagem
Desvantagem
Sim
Bom desempenho,
fácil detecção e livre
definição de
tamanho e forma do
contorno dos alvos.
Difícil modificação da
variável de estado
devido ao acoplamento
dos filtros.
Representação de
contorno mais
complexa.
Limitação na definição
do contorno dos alvos;
Problemas quando
ocorre variação do
tamanho do alvo
Alta complexidade
computacional; Baixo
desempenho.
Xu et al
(2005)
Um Filtro de
Kalman para cada
alvo
Sim
Excelente
desempenho, fácil
detecção do
retângulo envolvente
dos alvos.
Beetz et al
(2007)
Um MHT para
cada alvo (um
novo filtro de
Kalman para cada
hipótese, para
cada alvo)
Não
Exatidão na
Estimação.
3. Proposta
Os estudos dos trabalhos correlatos de rastreamento de alvos mostram que o trabalho
desenvolvido por De Bem (2007) estabelece um bom compromisso entre eficiência
computacional e boa descrição do contorno dos alvos, sendo, assim, adotada como base
neste trabalho. Entretanto, como a técnica não havia sido usada anteriormente para
rastreamento de jogadores de futebol, objetivou-se também verificar a adequação da técnica
à nova aplicação.
A proposta deste trabalho de rastreamento de jogadores de futebol está
esquematizada na Figura 3, composta pelo módulo de leitura de arquivos de vídeo, seguido
pelos módulos de detecção de alvos, de inicialização, de rastreamento do contorno e do
movimento e, finalmente, o módulo de geração das coordenadas 2D dos alvos nas imagens.
O módulo de leitura de arquivos de vídeo nada mais faz do que tornar acessível ao
sistema de rastreamento uma seqüência de quadros de imagens, que foram previamente
48
capturados, para serem posteriormente processados. No caso, a câmera utilizada é fixa e
colocada em volta do campo, sem alteração de seus parâmetros de zoom, pan, titl e
luminância durante o processo de aquisição.
Leitura de
Arquivos de
Vídeo
Detecção de
Alvos
Representação
Inicialização
Rastreamento
Figura 3. Módulos da proposta atual.
O módulo de detecção de alvos, que são os jogadores, tem como objetivo separar os
objetos de interesse do restante da imagem. Utiliza-se a técnica de subtração de fundo, que
consiste na subtração, pixel por pixel, de uma imagem atual da seqüência por uma imagem
de referência do fundo da cena. Estipulou-se um valor de limiar para detectar os pixels que
diferem significativamente da referência do fundo de cena. Posteriormente, algoritmos são
aplicados para eliminar ruídos e corrigir falha na segmentação. Em seguida, determina-se
um polígono envolvente correspondente ao contorno de cada alvo segmentado e,
finalmente, o polígono envolvente é representado por uma B-spline. Uma representação
baseada em contornos mostra-se interessante, pois permite uma descrição mais precisa dos
alvos, em comparação, por exemplo, com o uso de retângulos envolventes, usados nos
trabalhos de Xu et al (2005) e de Beetz et al (2007). Além disso, um modelo único deste
tipo de representação é capaz de adaptar-se dinamicamente a alvos com formas
heterogêneas. O uso de B-splines é amplamente difundido na literatura de rastreamento
visual [MacCormick e Blake 2000], sendo capazes de representar desde contornos triviais
até formas mais complexas com a utilização de um pequeno número de parâmetros
(chamados de pontos de controle), descrevendo os alvos de modo simples e efetivo, com
baixo custo computacional.
Uma função B-spline x(u) de ordem k (grau k−1) é uma soma ponderada de M
funções base B k (u ), i = 0, ..., M−1, e definida como [Bartels, Beatty e Barsky 1987]:
i
M −1
x(u ) = ∑ xi Bik (u ) , 0 ≤ u ≤ M − 1
i =0
sendo xi denominados pontos de controle, aplicados às respectivas funções base
Bik (u ). A
curva x(u) é gerada à medida que u é variado de 0 a M−1. A Figura 4-a ilustra a B-spline de
um contorno, sendo os pontos de controle representados por estrelas. Cada alvo é
representado pelo conjunto de pontos de controle que definem a B-spline que modela o seu
contorno.
49
O módulo de inicialização cria os modelos de movimento do alvo, dados pelo
processamento do módulo de detecção em quadros consecutivos, de forma a estimar, além
do contorno do alvo nos dois quadros, qual a velocidade de translação sofrida pelo centro
de área do contorno B-spline do primeiro quadro em relação ao segundo, dada por vk, e
calcular a transformação de escala (crescimento ou diminuição da área interna) do contorno
do alvo nos dois quadros, sk, dada pela variação da medida entre o centro de área e um
ponto de controle sobre o contorno do alvo, nos dois quadros.
Desta forma, a variável de estado do rastreamento é composta pelo conjunto de
pontos de controle do contorno B-spline e por vk e sk, para cada alvo. Devido à separação
em dois e acoplamento das partes do sistema a fim de torná-lo linear, para cada alvo são
utilizados dois filtros de Kalman para efetuar a estimação, um que estima a posição dos
pontos de controle no próximo quadro e outro, a velocidade de deslocamento entre quadros
do centro de área e a variação entre quadros na medida entre o centro de área e um
específico ponto de controle, que dá a variação de escala do contorno. O módulo de
inicialização também é responsável por atribuir valores iniciais aos parâmetros de ambos os
filtros.
Os filtros de Kalman são executados no módulo de rastreamento e são acoplados
entre si. Eles caracterizam-se pelas etapas de predição, observação e correção da estimação.
No filtro de Kalman que estima o contorno, baseada na estimativa anterior, novas posições
para o contorno são preditas na próxima imagem, com base nas estimativas do filtro de
Kalman que estima o fator de escala e a velocidade:
xk = vk −1 + xk −1 + sk −1 ( xk −1 − ck −1 ),
sendo xk a predição da posição no instante k do ponto de controle e xk−1, do instante k−1,
vk−1 é a estimativa da velocidade de translação do centro de área ck−1, e sk−1 é a estimativa da
escala. O acoplamento é pela predição de um filtro usar dados do outro.
Ao redor desta predição, o verdadeiro contorno é buscado na imagem na fase de
observação. Com a diferença entre as posições dos pontos de controle preditas e as
determinadas na imagem, a correção da estimação é realizada. O mesmo processo é feito
pelo outro filtro, porém considerando que v e s se mantêm de k a k−1.
(b)
(a)
Figura 4. (a) Exemplo de uma B-spline e seus pontos de controle. (b) Exemplo de
uma B-spline com 24 linhas de medida.
50
Para que o contorno no próximo quadro seja determinado, no presente trabalho
optou-se pela utilização de linhas de medida no modelo de observação dos objetos devido
ao baixo custo computacional associado, à flexibilidade desta abordagem e à boa adequação
ao modelo de representação baseado em contornos construídos com B-splines. Estas linhas
são normais aos contornos, distribuídas uniformemente e fixas por seu ponto central ao
longo do contorno gerado com a B-spline. No processamento do sistema, há necessidade de
buscar somente sobre as linhas de medida, as variações de luminosidade na imagem, de
forma a definir o contorno de cada alvo. A Figura 4-b mostra um contorno descrito por Bspline com 24 linhas de medida.
4. Resultados Experimentais
O sistema descrito na seção anterior foi testado em alguns experimentos. As seqüências de
imagens foram capturadas com câmeras fixas, instaladas ao redor de um campo de futebol
real. Foram executados testes de detecção e rastreamento de alvos, aplicados a seqüência de
imagens de uma partida de futebol. O emprego de câmeras fixas neste tipo de aplicação
permite, em trabalhos futuros, a combinação de até 16 câmeras para adquirir imagens de
todo o campo de visão, permitindo executar o rastreamento de todos os jogadores no espaço
tridimensional.
Os principais problemas do rastreamento de alvos, que causavam muitas vezes a
divergência dos filtros e que foram detectados em testes preliminares são: a alteração brusca
na forma e na velocidade de deslocamento dos alvos, a movimentação dos alvos rastreados
por regiões que ultrapassam os limites da imagem, a oclusão parcial dos alvos, o tratamento
simultâneo de múltiplos alvos que estão presentes na mesma seqüência de imagens e a
alteração na iluminação do fundo da cena ao longo do tempo.
(b)
(a)
Figura 5. Resultados do teste de rastreamento. (a) Amostra da seqüência de
imagens com 160 quadros e o resultado do rastreamento. (b) Trajetória estimada
do alvo na imagem.
Os resultados de alguns testes, para ilustrar a execução do sistema, são mostrados
nas Figuras 5 e 6.
Na Figura 5-a observa-se que o contorno do alvo está próximo de um contorno
razoável, pois o contorno (em vermelho) envolveu o jogador alvo dentro de seus limites,
mesmo com a baixa quantidade de pixels apresentada pelas imagens do jogador (pois a
51
câmera estava muito distante do alvo). Outro resultado interessante de observar é a
suavidade apresentada pela trajetória estimada do alvo rastreado, dada pela posição do
centro de área do contorno envolvente ao alvo, ilustrada no gráfico da Figura 5-b.
A figura 6 ilustra as dificuldades do sistema em lidar com oclusão, já que esta
capacidade ainda não foi tratada na implementação atual. O tratamento de oclusões não é
um problema fácil de ser solucionado e exige maiores estudos para ser bem resolvido, uma
vez que o mesmo é relevante e ocorre com bastante freqüência nas imagens. O uso de um
maior número de câmeras com superposição de ângulo de visada poderia reduzir o impacto
negativo no rastreamento causado pela oclusão e é uma possibilidade a ser testada, apesar
de ser uma solução com maior custo de implantação.
Do quadro inicial ao quadro 40, que corresponde à curva traçada da posição
(210,38) à (315,84) no gráfico da Figura 6-b, nota-se certa suavidade e continuidade da
trajetória do alvo. Entretanto, após a oclusão, nota-se uma descontinuidade na curva
descrita pela trajetória, o que corresponde ao fato do sistema de rastreamento ter perdido o
alvo.
(b)
(a)
Figura 6. (a) Quadros 20, 40, 46, 60, 80 e 99 ilustrando uma seqüência de imagens
que apresenta oclusão parcial de um alvo entre os quadros 30 e 50 (jogador na
parte superior), provocando a divergência do sistema de rastreamento. (b)
Trajetória real estimada do centro de área do contorno do alvo (jogador na parte
superior) em coordenadas x e y determinadas em pixels.
5. Conclusão
Este artigo propôs um sistema de rastreamento eficiente, que utiliza dois filtros de Kalman
acoplados para a estimação da forma e do movimento de cada alvo, em imagens com
múltiplos alvos a serem rastreados. O sistema proposto rastreia contornos de alvos descritos
52
por B-splines, o que possibilita seu uso para o rastreamento de diversos alvos, com
diferentes formas. O uso de dois filtros acoplados elimina a necessidade de uso de um filtro
de Kalman estendido, já que a separação da estimação em duas partes (forma e movimento)
torna o sistema linear, garantindo eficiência de resposta. Os principais problemas a serem
resolvidos, identificados nos testes preliminares são: executar ajustes nos parâmetros
visando melhorar a eficácia do sistema, melhorando o contorno do alvo no rastreamento;
introduzir um processo eficaz para tratar oclusão parcial entre alvos.
A maior contribuição deste trabalho está na proposta de uma solução para o
rastreamento de jogadores, utilizando câmeras fixas e com baixo custo computacional.
Entretanto, o sistema proposto ainda precisa ser mais bem ajustado para seu emprego
efetivo em sistemas comerciais. Em trabalhos futuros será necessário remodelar as variáveis
de estado do modelo de movimento e observação. Elas precisam ser simples, para
aplicações em tempo real, mas que garantam uma boa precisão do rastreamento.
Referências Bibliográficas
Bartels, R., Beatty, J. e Barsky, B. (1987) An Introduction to Splines for use in Computer
Graphics and Geometric Modeling , Morgan Kaufmann, Los Altos, USA.
De Bem, R. A. (2007). “Uma abordagem livre de modelo para rastreamento de objetos em
seqüência de imagens”. 84 p., Dissertação (Mestrado em Engenharia Elétrica), Escola
Politécnica, Universidade de São Paulo, São Paulo.
Beetz M., Gedikli S., Bandouch J., Kirchlechner B., Hoyningen-Huene N. V., Perzylo A.
(2007) “Visually Tracking Football Games Based on TV Broadcasts”. In: Proc. XX Int.
Joint Conference on Artificial Intelligence IJCAI 2007, v.1, p. 2066-2071.
Borg, J. (2007) “Detecting and Tracking Players in Football Using Stereo Vision”. Thesis
(Master), Department of Electrical Engineering, Linköping University, SE.
Cox, I. J., Hingorani, S.L. (1996) “An efficient implementation of Reid’s multiple
hypothesis tracking algorithm and its evaluation for the purpose of visual tracking”. In:
IEEE Trans. on Pattern Analysis and Machine Intelligence, 18(2), 138-150.
Grewal, M.S., Weill, L.R. e Andrews, A.P. (2007) Global Positioning Systems, Inertial
Navigation, and Integration. Wiley-IEEE Press, 2nd Edition, 552 p.
Gonzalez, R. C., Woods R. E. (1993) “Digital Image Processing”. EUA: Ed Addison
Wesley, 716 p.
Kalman, R. E. (1960) “A New Approach to Linear Filtering and Prediction Problems”. In:
Transaction of the ASME Journal of Basic Engineering, 82 (Series D), 35-45.
MacCormick, J., Blake, A. (2000) “Probabilistic Exclusion Principle for Tracking Multiple
Objects”, Int. Journal of Computer Vision, 1(39), 57-71.
Welch, G., Bishop, G. (1995) “An Introduction to the Kalman Filter”. Tec. Report: TR95041, University of North Carolina at Chapel Hill, NC, EUA.
Xu, M., Orwell, J., Lowey, L., Thirde, D. (2005) “Architecture and algorithms for tracking
football players with multiple cameras”. IEE Proc. Vision, Image and Signal Processing,
152(2), 232-241.
53
Tutorial para o Desenvolvimento de Jogos 2D usando a
Linguagem Java
Soraia Teixeira Barbosa1, Carlos Vitor de Alencar Carvalho2
1
Universidade Severino Sombra, Centro de Ciências Exatas e Tecnológicas e
da Natureza, Curso de Sistemas de Informação, [email protected]
2
Universidade Severino Sombra, Centro de Ciências Exatas e Tecnológicas e
da Natureza, Curso de Sistemas de Informação e Programa de Mestrado
Profissional em Educação Matemática e UniFOA – Centro Universitário de
Volta Redonda – Departamento das Ciências de Tecnologia e Engenharias,
[email protected]
Resumo. Atualmente é grande o estudo e desenvolvimento de jogos eletrônicos
tanto no meio acadêmico como fora dele. Entretanto o desenvolvimento do mesmo
não é uma tarefa trivial. Este artigo mostra o desenvolvimento de um jogo
computacional através de uma versão do conhecido jogo de arcade Space
Invaders. O artigo proposto tem como objetivo mostrar os passos básicos para a
construção de um jogo computacional em duas dimensões utilizando a linguagem
de programação Java.
1
Introdução
A área de jogos eletrônicos está se tornando cada vez mais popular, sendo uma área de
grande interesse financeiro principalmente no segmento de entretenimento digital podendo
ser encontrado em diversos dispositivos, como computadores pessoais, console domésticos
e dispositivos móveis [Barboza 2008].
Uma das aplicações interessantes dos jogos computacionais é sua utilização no
processo educacional. Muitos jogos possibilitam o desenvolvimento de habilidades como
cooperação, competição, perseverança, envolvimento, organização e autonomia. Através de
softwares educacionais, temos a oportunidade de criar novos jogos e reinventar jogos
utilizados em madeira, papel, etc. A possibilidade de divertidas animações, a integração de
várias mídias como a escrita, a imagem, o vídeo e o som que o computador oferece
enriquecem os jogos [Porto et al. 2008]. Casos de sucesso de jogos computacionais na
educação podem ser vistos em Mendes (2007), Santos (2008) e Porto (2008) através do
software CONSTRUFIG3D. Este artigo visa mostrar os passos básicos do
desenvolvimento de um jogo 2D inspirado no clássico de arcade, Space Invaders.
A linguagem de programação escolhida foi Java, devido á sua portabilidade e
facilidade de utilização dos seus recursos de computação gráfica através do pacote Java2D.
O objetivo é que este texto seja mais uma referência para alunos de cursos de computação
interessados em iniciar os estudos e desenvolvimento de jogos computacionais.
O restante deste artigo está organizado da seguinte forma: na seção 2 são descritas
as fases de desenvolvimento de um jogo computacional. Na seção 3 é mostrada a classe
principal do sistema. Na seção 4 é descrita a classe Stage. A seção 5 descreve como é feito
o gerenciamento dos recursos (sons e imagens, por exemplo). Na seção 6 são mostradas as
54
informações os atores e finalmente na seção 7 os resultados e considerações finais do
trabalho.
2
Planejamento de um jogo computacional
A fase inicial do ciclo de desenvolvimento de um jogo é o planejamento. Assim que se tem
a idéia inicial do jogo, deve-se fazer uma reunião com membros da equipe onde à mesma
deve ser exposta e discutida [PERUCIA et al. 2007] . Cabe lembrar que uma equipe para o
desenvolvimento de jogos deve possuir profissionais de várias áreas (artística, produtores
de textos, animadores, programadores etc.). Terminada a fase de planejamento inicia-se a
fase de game design.
Na fase de game design são definidas as principais características do jogo, como sua
interface, jogabilidade, personagens, fases, inimigos, itens e outras características gerais,
que geram o design document, um documento onde os membros da equipe podem ter noção
de como irão trabalhar para realizar o que foi planejado [PERUCIA et al. 2007].
É importante também a criação de um level design, que é como um mapa geral com
as missões e desafios das fases em geral. Em projetos maiores é necessário que cada fase
tenha seu planejamento específico, para que cada membro da equipe possa planejar como
fazer a sua parte.
Depois de tudo planejado, inicia-se a fase de criação ou desenvolvimento do jogo. A
Figura 1 mostra esquematicamente as etapas descritas acima.
Figura 1. Esquema das etapas de desenvolvimento de um jogo computacional.
Este artigo irá visar justamente esta parte: criação e programação, utilizando a
linguagem Java. Nesta etapa, é aconselhável a criação de versões intermediárias, pois estas
permitem o acompanhamento da evolução do projeto, além de facilitar na detecção de bugs
e na implementação de melhorias.
3
Criando a Classe Principal
Primeiro será criada a classe principal do jogo, a qual se chamará de Game. Esta classe irá
conter a inicialização do jogo, que deve ser feita como mostra a Tabela 1.
55
Tabela 1. Game.java
public static void main (String args[]){
Game inv = new Game();
}
3.1
A Janela
Dentro da classe Game também será feito o desenho da janela. A classe Game deve ser uma
extensão de Canvas. Um componente Canvas possibilita criar uma área na tela, na qual a
aplicação poderá desenhar através da sobrescrição do seu método paint(), como mostra a
Tabela 2.
Tabela 2. Game.java
public class Game extends Canvas
No construtor da classe, deve ser feito o desenho da janela e suas configurações.
Para definir a largura (WIDTH) e altura (HEIGHT) da janela, são usadas constantes da
classe Stage, que será criada em seguida, pois quando for preciso mudar o tamanho da
janela, basta mudar os valores destas constantes no código-fonte (Tabela 3).
Tabela 3. Game.java
public Game(){
JFrame window = new JFrame("Invasores do Espaço");
JPanel panel = (JPanel)window.getContentPane();
setBounds(0, 0, Stage.WIDTH, Stage.HEIGHT);
panel.setPreferredSize(new
Stage.HEIGHT));
Dimension(Stage.WIDTH,
panel.setLayout(null);
panel.add(this);
window.setBounds(0, 0, Stage.WIDTH, Stage.HEIGHT);
window.setResizable(false);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Depois de criada, a janela deve se tornar visível e ser prioridade para os comandos
de entrada (Tabela 4).
Tabela 4. Game.java
window.setVisible(true);
requestFocus();}
4
A Classe Stage
A classe Stage contém alguns dados sobre a fase. Inicialmente seu código será como
mostrado na Tabela 5.
56
Tabela 5. Stage.java
public interface Stage {
public static final int WIDTH = 800;
public static final int HEIGHT = 600;
public static final int PLAY_HEIGHT = 520;
public static final int SPEED = 10;
}
As variáveis WIDTH e HEIGHT vão conter os valores de largura e altura da fase e
das janelas, a variável PLAY_HEIGHT terá o valor da área em que acontecerá a ação do
jogo e SPEED será usada para definir a velocidade do jogo.
5
Gerenciamentos dos recursos do jogo
Na tela serão desenhados todos os sprites (imagens que irão representar os gráficos dos
personagens, armas etc.) e serão exibidas as informações do jogo. Para isso, será preciso
criar classes para carregar e controlar esses sprites.
O mesmo método pode ser usado para carregar efeitos sonoros e músicas, que
também são muito importantes em um jogo, por isso pode ser criada uma classe abstrata
com os métodos comuns no carregamento de ambos os recursos. O controle desses recursos
é feito através das classes ResourceCache, como mostra a Tabela 6. Será usado um
HashMap para armazenar o nome do sprite e a imagem carregada.
Tabela 6. ResourceCache.java
public abstract class ResourceCache {
protected HashMap resources;
public ResourceCache(){
resources = new HashMap();
}
}
Para
indicar
o
caminho
dos
recursos,
será
utilizado
getClass().getClassLoader().getResource(), pois desta forma poderá ser usada uma URL
indicando o caminho direto (diretórios onde estão os recursos) de onde as classes estão
sendo carregadas, o que facilita na hora de passar o jogo para um applet, por exemplo, sem
precisar fazer mudanças em relação ao carregamento de imagens (Tabela 7).
Tabela 7. ResourceCache.java
protected Object loadResource(String name){
URL url = null;
url = getClass().getClassLoader().getResource(name);
return loadResource(url);
}
57
Todos os recursos estarão na mesma pasta das classes, em um diretório chamado
resources, então, toda vez que uma imagem for carregada, o aplicativo deve buscar nesta
pasta. Depois disso, o recurso será armazenado no HashMap criado anteriormente (Tabela
8).
Tabela 8. ResourceCache.java
protected Object getResource(String name){
Object res = resources.get(name);
if(res == null){
res = loadResource("resources/"+name);
resources.put(name, res);
}
return res;
}
protected abstract Object loadResource(URL url);
}
5.1
Imagens
A classe usada para carregar e gerenciar as imagens será a SpriteManager, que será uma
extensão de ResourceCache (Tabela 9).
Tabela 9. SpriteManager.java
public class SpriteManager extends ResourceCache{
O método loadResource(URL url) tenta ler as imagens, se não conseguir, cria um
JOptionPane com uma mensagem de erro e fecha o aplicativo (Tabela 10).
Tabela 10. SpriteManager.java
protected Object loadResource (URL url){
try{
return ImageIO.read(url);
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Erro ao carregar
o jogo." +
"Por
favor,
verifique
JOptionPane.ERROR_MESSAGE);
a
instalação.",
"Erro!",
System.exit(0);
return null;
}}
6
Atores
Os atores são todos os objetos que criam a interação no jogo. Neste caso existem o herói, os
inimigos e o tiro. A classe Actor irá conter os métodos comuns a estes atores (Tabela 11).
58
Tabela 11. Actor.java
public class Actor {
protected int x,y;
protected int width, height;
protected String[] spriteNames;
protected Stage stage;
protected SpriteManager spriteManager;
protected int currentFrame;
protected int frameSpeed, t;
protected boolean remove;
public Actor (Stage stage){
this.stage = stage;
spriteManager = stage.getSpriteManager();
currentFrame = 0;
frameSpeed = 1;
t=0;
}
public void paint(Graphics2D g){
g.drawImage(spriteManager.getSprite(spriteNames[currentFrame]), x, y,
stage); }
Se um sprite for removido da tela durante a execução do loop principal do jogo,
falhas podem ser geradas na execução do aplicativo. O método setRemove serve para
contornar este problema, pois ele “marca” o sprite para ser removido durante a próxima
execução do loop, evitando problemas na leitura dos sprites (Tabela 12).
Tabela 12. Actor.java
public void setRemove(){ remove = true; }
public boolean isSetToRemove(){ return remove; }
O método getBounds() cria um retângulo em torno do sprite (Tabela 13).
Tabela 13. Actor.java
public Rectangle getBounds(){
return new Rectangle(x,y,width,height);
}
Estes retângulos são usados nos cálculos de detecção de colisão dos personagens. A
Figura 2 exemplifica como esses retângulos são visualizados pelo aplicativo.
59
Figura 2. Como funciona a detecção de colisão.
O método act() faz a troca de sprites para realizar a animação dos atores conforme
pode ser visto na Tabela 14.
Tabela 14. Actor.java
public void act(){
t++;
if(t % frameSpeed == 0){
t=0;
currentFrame = (currentFrame + 1) % spriteNames.length;
}}}
6.1
O Personagem
A classe Player irá representar o personagem que o jogador irá controlar que nesse caso é
uma nave. Esta classe possui diversas variáveis e métodos exclusivos do jogador (Tabela
15).
Tabela 15. Player.java
public class Player extends Actor {
protected int vx;
protected static final int PLAYER_SPEED = 4;
private boolean left, right;
O método act() desta classe evita que a nave ultrapasse os limites da tela (Tabela
16).
Tabela 16. Player.java
60
public void act(){
super.act();
x+=vx;
if (x < 0 )
x = 0;
if (x > Stage.WIDTH - getWidth())
x = Stage.WIDTH - getWidth();
}
O método updateSpeed() faz com que a nave possa se mover para os lados, de
acordo com a tecla pressionada (Tabela 17).
Tabela 17. Player.java
protected void updateSpeed(){
vx = 0;
if(left)
vx = -PLAYER_SPEED;
if(right)
vx = PLAYER_SPEED;
}
O método fire() faz com que a nave possa atirar. Primeiro é feito o posicionamento
do tiro e depois criado um objeto para representá-lo na tela (Tabela 18).
Tabela 18. Player.java
public void fire(){
Shot shot = new Shot(stage);
shot.setX(x+25);
shot.setY(y
- shot.getHeight());
stage.addActor(shot);
stage.getSoundManager().playSong("sound/shot.wav");
}
7
Resultados e Considerações Finais
Ao término deste artigo, no qual foram abordados métodos para a criação de um jogo
computacional 2D, espera-se que os estudantes da área de computação possam ter uma
idéia inicial de como esses jogos são feitos, servindo como base para pesquisas ou estudos.
A Figura 3 mostra a tela do software em execução.
Através deste tutorial foram explicados conceitos importantes no desenvolvimento
de um jogo, como por exemplo, o tratamento de imagens, a detecção de colisão entre os
personagens e a movimentação do jogador na tela. Em uma próxima etapa será
desenvolvido e pesquisa uma estratégia para o enfoco educativo do sistema possivelmente
com alteração para a temática na área de matemática.
61
Figura 3. Tela do jogo.
Agradecimentos
Os autores agradecem à FAPERJ (Fundação de Amparo à Pesquisa do Estado do Rio de
Janeiro) pelo auxílio financeiro recebido. O segundo autor agradece à FUNDADESP
(Fundação Nacional de Desenvolvimento do Ensino Superior Particular) pela bolsa de
produtividade de pesquisa de doutorado.
Referências Bibliográficas
Barboza, D. C. (2008) Ambiente Visual para desenvolvimento de jogos eletrônicos,
Monografia – Curso de Bacharelado em Ciência da Computação do Centro Universitário
Serra dos Órgãos.
Deitel H. M., Deitel P. J. (2002) Java Como Programar: 4ª edição. Bookman 2002.
Harbour, J. S. (2007). Beginning Java Game Programming, 2th edition.
Mendes, J. L. de S., Carvalho, C. V. A., Carvalho, J. V. (2007) CONSTRUFIG3D: Uma
Ferramenta Computacional para apoio ao ensino da Geometria Plana e Espacial.
RENOTE. Revista Novas Tecnologias na Educação, v. 5, n 1, p. 1/10-10, 2007.
Perucia A., Berthêm A.., Bertschinger G., Castro R. R. (2005) Desenvolvimento de Jogos
Eletrônicos – Teoria e Prática: 2ª edição. Novatec, 2005.
Porto, I. da P. G. Carvalho, C. V. A., Oliveira, R. (2008) O jogo Computacional
TANGRAM: um objeto de Aprendizagem sobre Geometria. IV Colóquio de História e
Tecnologia no ensino da Matemática - HTEM, UFRJ, 2008.
Santos, S. C., Carvalho, Janaina Veiga, Carvalho, C. V. A. (2008) Utilização e Avaliação
do sistema computacional CONSTRUFIG3D para apoio ao ensino da geometria.
RENOTE. Revista Novas Tecnologias na Educação, v. 6, número 1, p 1-9, 2008.
62
Tecnologia da Informação Aplicada a Gerenciamento de
Acervo Documental Histórico
Kayo Delgado Medeiros de Almeida¹, Elon Gomes Vieira2, Carlos Vitor de Alencar
Carvalho3, Magno Fonseca Borges4, José Jorge Siqueira5, Antônio de Paula Pedrosa6,
Douglas Moreno Moreira8, Bruno M. Lemos7
1
Universidade Severino Sombra, Centro de Ciências Exatas e Tecnológicas e
da Natureza, Sistemas de Informação, [email protected]
2
Universidade Severino Sombra, Centro de Ciências Exatas e Tecnológicas e
da Natureza, Sistemas de Informação, [email protected]
3
Universidade Severino Sombra, Centro de Ciências Exatas e Tecnológicas e
da Natureza, Curso de Sistemas de Informação e Programa de Mestrado
Profissional em Educação Matemática e UniFOA – Centro Universitário de
Volta Redonda - Departamento das Ciências de Tecnologia e Engenharias,
[email protected]
4
Universidade Severino Sombra, Centro de Documentação Histórica,
[email protected]
5
Universidade Severino Sombra, Curso de História e Programa de Mestrado em
História, [email protected]
6
Universidade Severino Sombra, Centro de Ciências Exatas e Tecnológicas e
da Natureza, Sistemas de Informação, [email protected]
7
Universidade Severino Sombra, Centro de Ciências Exatas e Tecnológicas e
da Natureza, Sistemas de Informação, [email protected]
8
Universidade Severino Sombra, Centro de Ciências Exatas e Tecnológicas e
da Natureza, Sistemas de Informação, [email protected]
Resumo: Este artigo mostra a aplicação de Tecnologia da Informação
juntamente com conceitos de GED no Centro de Documentação Histórica da
Universidade Severino Sombra. Um sistema desenvolvido em plataforma livre, em
funcionamento, com finalidade de disponibilizar imagens digitais de acervos
históricos sob guarda do Centro de Documentação Histórica. Esta solução foi
proposta por um projeto de preservação de todo acervo documental histórico
apoiado pela Fundação de Amparo a Pesquisa do Estado do Rio de Janeiro FAPERJ, com isso o sistema tem por excelência a disponibilização das imagens,
cadastro e consulta dos documentos, gerenciamento de desarquivamento, uso e
desarquivamento de documentos, cadastro e gerenciamento de usuários com
privilégios para cada tipo, registro de ações e histórico de pesquisa por cada
usuário e entre outros. Com esta solução é possível disponibilizar um acervo para
ser pesquisado por vários usuários ao mesmo tempo e sem danificar o documento
original, que estará sempre bem guardado e protegido. O artigo também
apresenta uma visão geral das interfaces gráficas do sistema desenvolvimento.
63
1. Introdução
O Centro de Documentação Histórica (CDH) da Universidade Severino Sombra (USS) tem
sob sua guarda um acervo documental histórico do século XVIII em diante no qual
disponibiliza para consulta por historiadores e população interessada. Para tal
disponibilização, o CDH tinha toda uma rotina manual que demandava um esforço humano
muito alto para manter a ordem e qualidade. Um problema do CDH era o fato da
degradação natural, química e por utilização excessiva dos documentos. Com essa
problemática surgiu o projeto de implantar um sistema para gerenciamento desses
documentos e sua disponibilização digital. Não basta apenas informatizar, ou seja, passar
rotinas manuais para rotinas computacionais. É necessário entender um pouco sobre alguns
conceitos como GED (Gerenciamento Eletrônico de Documentos) e Tecnologia da
Informação.
Gerenciamento eletrônico de documentos ou gestão eletrônica de documentos
(GED) é uma tecnologia que provê um meio de facilmente gerar, controlar, armazenar,
compartilhar e recuperar informações existentes em documentos. Documentos formam a
grande massa de conhecimentos de uma empresa. O GED permite preservar esse
patrimônio e organizar eletronicamente a documentação, para assegurar a informação
necessária, na hora exata, para a pessoa certa. O GED lida com qualquer tipo de
documentação. A Tecnologia da Informação (TI) pode ser definida como um conjunto de
todas as atividades e soluções providas por recursos de computação [Wikipedia1 2008 e
Wilipedia2 2008].
Baseado nesses conceitos o sistema começou a ser desenvolvido, e hoje seu
desenvolvimento utiliza tecnologia Java (JSDK 1.6) [Deitel 2002], IDE NetBeans 6.1/6.5
[Gonçalves 2008], servidor Apache TomCat, Adobe e Sistema Operacional Ubuntu LTS.
Com as tecnologias acima, pode-se observar a escolha por Software Livre. Sua escolha foi
devida, não somente a redução de custos para a instituição, mas mostrar que esta solução é
viável e também possibilitar aos profissionais e acadêmicos ampliarem seus conhecimentos
e experiências nesta área [Almeida 2008a].
O restante deste artigo está organizado da seguinte forma: na seção 2 são detalhados
conceitos de desenvolvimento Desktop e desenvolvimento WEB; considerações sobre o
sistema desenvolvimento são descrito na seção 3. Na seção 4 apresentam-se as
considerações finais.
2. Desenvolvimento Desktop x Desenvolvimento WEB
No início do projeto o sistema começou a se desenvolvido para desktop, sua primeira
versão, apenas o visualizador de imagens, foi apresentado e ele tinha a capacidade de abrir
imagens e navegar por cada página de cada acervo aplicando zoom entre outras
funcionalidades básicas de visualização de imagem. (Figura 1 e Figura 2) [Almeida 2008b].
Somente a visualização não era necessária. Era importante ter um gerenciamento
para as imagens digitais, cadastro de usuários, níveis de permissão, gerência de ações.
Então com essas necessidades, o sistema foi repensado e refeito com desenvolvimento
WEB. A elicitação do sistema foi feita em cima das necessidades do CDH e as decorrentes
durante o projeto. A metodologia utilizada foi a XP onde a elicitação e feita junto com a
programação e os resultados exibidos para melhorias e correção.
64
O desenvolvimento WEB gerou outras necessidades. Retiramos a necessidade das
máquinas clientes possuírem hardware com desempenho adequado para aplicação web em
vez de única máquina potente o suficiente. Passamos toda a responsabilidade de
processamento e segurança para uma única máquina potente o suficiente para isto. Foi
possível aproveitar tecnologias prontas e gratuitas para incorporar ao sistema, como por
exemplo, o Acrobat Reader da Adobe (pode ser um genérico que funcione com seu
navegador) para fazer toda a parte de visualização com a qualidade dos arquivos PDF.
Figura 1. Abrindo imagem.
Figura 2. Visualização da imagem com zoom.
3. O Sistema desenvolvido
O sistema possui cadastro de usuários com nível de privilégios (Pesquisador e
Administrador). O cadastro é efetuado pelo próprio usuário acessando a opção “cadastrar”
65
na página inicial do sistema (Figura 3) e ele possui todo tratamento para campos
obrigatórios e validação de CPF, portanto não terá como se cadastrar sem seu CPF. Então
como disponibilizar o sistema para usuários que não possuem CPF? Simples, o funcionário,
com seu nível de administrador, podem cadastrar qualquer usuário sem numero de CPF,
portanto o sistema registra esta ação para prestação de contas em um possível problema
acarretado por esta ação. (Figura 4).
Figura 3 – Tela Inicial.
Figura 4 – Tela de Cadastro.
Com login pronto, o pesquisador pode logar e se tudo estiver correto ele é
direcionado para uma página personalizada contendo um buscador para pesquisar os
documentos e com menus de interação com o sistema como é mostrado na Figura 5. A
seguir são mostrados alguns itens importantes do menu pesquisador:
66
Figura 5 – Página Personalizada.
•
Mensagem: mensagens que o sistema envia ao usuário para relatar algum
problema com o processo de desarquivamento do documento solicitado (Figura
6).
Figura 6 – Mensagem.
•
Histórico: listagem de todas as ações de pesquisas efetuadas pelo pesquisador a
fim de facilitar uma consulta a um documento que já tenha sido realizada
(Figura 7).
67
Figura 7 – Histórico das ações efetuadas.
•
Meus Dados: página onde o pesquisador poderá atualizar seus dados e alterar
sua senha no sistema (Figura 8).
Figura 8 – Dados do pesquisador.
•
Log Out: sair do sistema.
Quando um pesquisador efetua sua pesquisa os resultados são exibidos em uma lista
de 100 em 100 resultados com indicadores de páginas navegáveis (Figura 9). As fases de
digitalização e disponibilização do acervo ainda estão em desenvolvimento, portanto o
sistema tem uma rotina inteligente que identifica se há ou não imagem digital a ser
visualizada, caso sim o sistema exibe um botão visualizar (Figura 10) que arremete a uma
página de visualização completa do acervo com navegação entre imagens (Figura 11).
68
Quando o acervo ainda está indisponível para visualização digital, um botão de
solicitar desarquivamento é exibido (Figura 9), ao clicar neste botão o sistema envia uma
solicitação de desarquivamento que é monitorada por um administrador em uma tela
específica, o administrador recebe sinal sonoro, reconhece o acervo, desarquiva-o
fisicamente e no sistema e leva ao atendente para realizar a entrega. O pesquisador pode
apenas solicitar um documento por vez, ele só fica liberado para outra solicitação após a
entrega do documento e a solicitação de arquivamento efetuada pelo atendente. Com esse
processo um sinal sonoro diferente é acionado e o administrador responsável pelo acervo
arquiva-o fisicamente e no sistema. Enquanto os acervos estão em mãos de pesquisadores,
eles ficam em uma coluna de “EM USO” no sistema. (Figura 12).
Figura 9 - resultados exibidos em uma lista de 100 em 100 resultados com
indicadores de páginas navegáveis.
Figura 10 – O sistema tem uma rotina inteligente que identifica se há ou não
imagem digital a ser visualizada, caso sim o sistema exibe um botão visualizar.
69
Figura 11 - visualização completa do acervo com navegação entre imagens.
Figura 12 – Imagem mostrando que enquanto os acervos estão em mãos de
pesquisadores, eles ficam em uma coluna de “EM USO” no sistema.
Com todos esses procedimentos descritos acima podemos notar que o sistema além
de tratar dos arquivos digitais, também auxilia aos funcionários do CDH a monitorar e
controlar o uso dos documentos históricos.
4. Considerações Finais
A aplicação da tecnologia da informação é de vasta amplitude e diversidade. Neste artigo
podemos ver o quão proveitoso e de vital importância foi para a instituição a aderência e
inclusão da TI em sua rotina. Com essas experiências podemos dizer que a
interdisciplinaridade é a peça fundamental para o sucesso de cada aplicação.
70
Vale lembrar que o sistema está em constante evolução e vem sido todo estruturado
em plataformas livres, felizmente isso significa que não acabamos por aqui e que outros
poderão continuar a trajetórias já cursadas até aqui. Como futuras implementações estão à
disponibilização das imagens via internet e a consideração de código de barras para
representar o código do acervo.
Agradecimentos
Os autores agradecem à FAPERJ (Fundação de Amparo à Pesquisa do Estado do Rio de
Janeiro) pelo auxílio financeiro recebido. O primeiro autor agradece pela bolsa de Iniciação
Científica recebida da FAPERJ. O terceiro autor agradece a FUNDADESP (Fundação
Nacional de Desenvolvimento do Ensino Superior Particular) pela bolsa de produtividade
de pesquisa de doutorado.
Referências Bibliográficas
Almeida, K. D. M ; Carvalho, C. V. A. ; Borges, M. F. ; Izzo, W. P.; Siqueira, J. J. (2008a)
. Pesquisa e Desenvolvimento de uma ferramenta computacional para visualização de
imagens digitais. In: I WorkShop de Informática Aplicada e Desenvolvimento de Jogos
para Computatores e Dispositivos Móveis. ISBN: 9788588187030, 2008, Vassouras.
2008. v. 1. p. 1-4.
Almeida, K. D. M ; Junior, J. A. T. L ; Carvalho, C. V. A. (2008b). Total Cost of
Ownership TCO: Uma Ferramenta Aplicável a todos os segmentos que utilizem TI:
Estudo de caso do Centro de Documentação Histórica. In: VII Encontro de Iniciação
Científica da USS, 2008, Vassouras. Fusve, 2008. v. 1. p. 1-1.
Cenadem (2008), http://www.cenadem.com.br/ged01.php , acessado em Janeiro de 2009.
Deitel H. M., Deitel P. J. (2002) Java Como Programar: 4ª edição. Bookman 2002.
Gonçalves, E. (2008) Desenvolvendo Aplicações Web com Netbeans IDE 6, Editora Ciência
Moderna, 2008.
Wikipedia1 (2008), http://pt.wikipedia.org/wiki/GED, acessado em Janeiro de 2009.
Wikipedia2 (2008), http://pt.wikipedia.org/wiki/Tecnologia_da_informação, acessado em
Janeiro de 2009.
71
Download

Clique aqui