Вы находитесь на странице: 1из 9

Camera Kombat - Interao Livre para Jogos

Luis Roberto Pereira de Paula Renato Bonini Neto Fbio R. de Miranda*

Centro Universitrio Senac, Bacharelado em Cincia da Computao, So Paulo SP, Brasil

Figura 1: Projeto Camera Kombat. (a) Screenshot do jogo. (b) Visualizao em modo debug.

Resumo
Este trabalho mostra detalhes da criao do Camera Kombat - um jogo multijogador que permite, atravs do emprego de recursos de viso computacional, uma forma de interao livre entre o jogador e o sistema, que dispensa a utilizao de dispositivos convencionais, como joysticks, mouse, teclado, dentre outros. Para atingir tal fim, gestos realizados pelo jogador diante de uma webcam so mapeados em aes no jogo. Palavras-chave: Interao humano-computador, viso computacional, jogos eletrnicos, computao grfica. Contatos:
luisrpp@gmail.com rboninineto@gmail.com * fabio.rmiranda@sp.senac.br (orientador)

1. Introduo
H muitas oportunidades para criao de novos jogos, especialmente os com propostas mais inovadoras em termos de roteiro, temticas e tambm interfaces. Estas propostas inovadoras so as que apresentam maior potencial para atrair novos consumidores ao mercado de games. Uma caracterstica que ainda se encontra numa etapa inicial para a maioria dos jogos atuais a utilizao de tipos de interao mais diversificados entre o jogador e o jogo. Atualmente so mais comuns jogos que exploram apenas o modelo convencional, em que a interao feita por um joystick ou teclado e mouse. Esta modalidade tradicional de interao favorece uma postura sedentria prolongada, em que pouca atividade fsica realizada durante o jogo, que pode durar muitas horas. Tambm so um problema caracterstico deste tipo de interao com teclado e mouse as leses por esforos repetitivos, que podem acometer jogadores de vdeo games. Neste trabalho proposta a explorao de um tipo diferente de interao, que faa com que no apenas um avatar se movimente, mas tambm o jogador, com seus braos, pernas, ou mesmo com todo seu corpo. O caminho explorado neste trabalho para permitir este tipo de interao a utilizao de uma webcam para a captura de imagens do jogador, um posterior processamento por meio de viso computacional e a composio de tais imagens em tempo real com imagens do cenrio do jogo.

Vdeo da aplicao:
http://tinyurl.com/nxyjx

Abstract
This work presents details of the creation of Camera Kombat, a two-player game that allows users to participate in an unemcumbered way, without the mediation of traditional input devices, such as joysticks, mouses and keyboards. In order to enable this level of interaction, computer vision techniques are used to recognize gestures in images of the user captured by a webcam. Keywords: Humancomputer interaction, computer vision, electronic games and computer graphics.

2. Objetivos
O objetivo deste projeto a construo de um jogo de combate virtual entre duas pessoas que apresente uma forma de interao que incentive maior atividade fsica por parte de seus participantes.

Krueger conseguiu demonstrar o potencial de mais de 50 modos diferentes de interao atravs de seus testes, por meio da construo de prottipos em que a pessoa interagia com objetos virtuais de alguma forma, por exemplo desenhar imagens com a ponta dos dedos, brincar em um ambiente virtual com uma bolha, tentar danar seguindo movimentos mostrados em um monitor ou interagir com bales virtuais que flutuam livremente. Outro trabalho recente com uma abordagem experimental para o uso de cmeras como dispositivo de entrada WARREN, 2003, em que foram desenvolvidos cinco jogos em que o jogador pode interagir de diversas maneiras com blocos virtuais. Todos os jogos desenvolvidos nesse trabalho tm como base de sua construo a deteco de coliso entre a silhueta da pessoa com os objetos virtuais. No clebre Kids Room (BOBICK, 2000), realizado no MIT, foi desenvolvida uma sala com o intuito de atrair a ateno de crianas e faz-las interagir em um ambiente fechado. Trata-se de um quarto que conta histrias infantis por meio de imagens projetadas nas paredes, sons e luzes ambientes para aumentar a imerso das crianas na histria. Neste trabalho se utilizava viso computacional para promover a interao com objetos virtuais e para controlar a intensidade necessria de esforo fsico exercido pelas crianas que esto no quarto, dependendo de quo ativas elas estejam. Comercialmente j foram realizados alguns investimentos em jogos baseados em viso computacional. Para promover o lanamento de uma webcam prpria, a Apple Computers Inc. lanou uma coleo de games intitulada TOYSIGHT (2006) que utilizam a captura de imagens dos jogadores como meio de interao. Tambm destaca-se o EYE TOY (2005), lanado pela Sony para seu console PlayStation 2. Trata-se de uma cmera, que tambm funciona como webcam, que captura a imagem do jogador e traz para a tela seus movimentos. Esta uma tentativa de introduzir ao mercado de videogames jogos baseados em viso computacional. Entretanto, ainda h poucos ttulos que utilizam este dispositivo.

Figura 2: Exemplo do funcionamento da aplicao

Neste jogo de combate, os golpes so definidos como seqncias de movimentos realizados pelo jogador atravs de seu prprio corpo, utilizando os braos e pernas. Quando uma destas seqncias for identificada como uma das pr-definidas no jogo, o jogador que a realizou dispara um objeto virtual, como um raio de luz ou uma bola contra seu adversrio. Na Figura 2 pode-se observar o exemplo de golpes lanados pelos jogadores, um contra o outro. Estes golpes so representados pela bola de fogo, ao centro da figura.

3. Trabalhos Relacionados
Um trabalho pioneiro sobre interao em tempo real com imagens de cmeras o Artificial Reality de Myron W. Krueger, de 1969. Neste trabalho (KRUEGER, 1991) so descritos e apresentados estudos e desenvolvimentos sobre meios inovadores para interao com computadores atravs do uso dos prprios movimentos humanos, sem a necessidade de qualquer hardware acoplado pessoa. Tais movimentos eram capturados por uma cmera de vdeo e utilizados como entrada para o sistema. Em Videoplace (KRUEGER, 2006), Krueger demonstrou um sistema para permitir que uma pessoa interagisse com objetos virtuais apresentados atravs de grficos gerados por um computador. A estrutura deste sistema era formada por uma cmera usada para captura da imagem, um computador para o processamento, um projetor responsvel pela exibio e uma tela de plstico translcida para ajudar o computador a distinguir a silhueta de uma pessoa do fundo da imagem.

4. Projeto
Este projeto, intitulado Cmera Kombat (C.K.), prope uma forma de interao, em jogos eletrnicos, livre de dispositivos de entrada convencionais. Essa interao se d pela captura de gestos executados por um jogador frente a uma webcam. Estes gestos so identificados pelo sistema, gerando aes no game. Para jogar, os jogadores devem ficar afastados a uma distncia que evite o risco de contato fsico nointencional e acidentes entre os mesmos. medida que os gestos so identificados (como um soco, por

exemplo), lanado (a partir do jogador que realizou o gesto) um objeto virtual sobre o adversrio. O adversrio, para se defender, deve desviar destes objetos. Embora em Camera Kombat os jogadores precisem ficar afastados uns dos outros, ambos precisam ser enquadrados por uma mesma webcam. Porm, o sistema pode ser adaptado facilmente para capturar imagens de duas webcams, uma para cada jogador. Isto resolveria o problema de afastar os jogadores e permitiria golpes mais enrgicos como socos e chutes sem que seja necessrio ter cuidado para evitar o contato fsico. Este trabalho explora o uso de tcnicas de viso computacional aplicadas sobre uma seqncia de vdeo capturada em tempo real para criar um ambiente de realidade aumentada, em que os elementos virtuais so adicionados a uma representao aumentada do mundo real. 4.1 Ferramentas Utilizadas Para acesso a implementaes de qualidade de tcnicas e mtodos de viso computacional, foi utilizada neste projeto a biblioteca OpenCV, da Intel. Esta biblioteca possui uma srie de algoritmos preparados para trabalhar em aplicaes que demandam processamento de imagens e tcnicas de viso computacional em tempo real. O uso da OpenCV viabilizou a realizao deste projeto, uma vez que no foi preciso gastar esforos na implementao de tcnicas avanadas de viso computacional. Alm da OpenCV, foi utilizada a biblioteca OpenGL e sua biblioteca GLUT (Graphics Library Utility Toolkit) (KILGARD, 2006). Estas bibliotecas foram utilizadas para a criao de janelas, carregamento de texturas, criao e visualizao de objetos virtuais que compem o jogo. 4.2 Arquitetura O sistema necessita de uma webcam para capturar os movimentos do jogador. Estas imagens so analisadas por um computador, processadas e exibidas num monitor. Existe a possibilidade de projetar a imagem gerada em uma parede, facilitando assim para os jogadores, a visualizao dos elementos com os quais pode-se interagir. Na Figura 3 apresentado um modelo da configurao do sistema, em que na parte inferior esto representados os jogadores no mundo real e, na parte superior, uma tela que contm a silhueta dos jogadores e um objeto virtual.

Figura 3: Viso esquemtica do Sistema

4.2.1 Mdulos da Aplicao Cmera Kombat constitudo basicamente por trs mdulos, que so: Processamento de Imagem (Viso), Processamento Grfico e Controles. No mdulo de processamento de imagens (viso) so realizadas a captura da imagem a partir de uma webcam, a segmentao por objetos de interesse (jogadores) e o reconhecimento de gestos. Em processamento grfico so realizadas a criao dos objetos grficos e suas animaes. No mdulo de controle so definidas as regras do jogo e estabelecido um canal de comunicaes entre os mdulos de processamento de imagem e grfico. 4.2.2 Portabilidade Todo o desenvolvimento foi realizado na plataforma Linux, mas no h nenhuma dependncia exclusiva em relao a este sistema operacional. Basta recompil-lo para que seja executado no sistema operacional Windows ou em Mac OS X, uma vez que seus prrequisitos, especialmente OpenCV (OPENCV, 2005) e OpenGL (OPENGL REFERENCE MANUAL, 2005), so multi-plataforma. 4.3 Implementao Nesta sesso, sero apresentados os detalhes de implementao deste projeto, bem como a tcnica de subtrao de fundo adotada, reconhecimento de gestos, deteco de colises e outras peculiaridades do jogo. 4.3.1 Linguagem de Programao e Paradigma Cmera Kombat foi desenvolvido em linguagem C, sob o paradigma de programao estruturada. Isto deu-

se principalmente pelo fato das bibliotecas utilizadas (OpenCV e OpenGL) permitirem um acesso mais simples e direto a partir desta linguagem, por serem desenvolvidas tambm em linguagem C. Embora o cdigo esteja sob forma estruturada, as funes foram bem modularizadas, de maneira que a converso para o paradigma orientado objetos no seria muito custoso. 4.3.2. Metodologia Este projeto tomou inspirao em metodologias geis de desenvolvimento de software e seguiu-se a estratgia da elaborao de pequenos prottipos para a resoluo de problemas independentes, como a inicializao, segmentao de imagens, criao e animao de objetos grficos, deteco de colises, dentre outros. A partir destes prottipos, foram desenvolvidas as tcnicas utilizadas na aplicao, que sero expostas a seguir. 4.3.3 Fase de Inicializao Ao iniciar a aplicao, antes de serem efetuadas as etapas de subtrao de fundo, reconhecimento de gestos, regras do jogo, e outras posteriores, preciso que duas condies sejam respeitadas. A primeira refere-se s webcams, e a segunda, aos elementos presentes na imagem capturada durante a inicializao do sistema. Muitas das webcams atuais possuem o recurso de ajuste automtico de brilho e contraste da imagem face s variaes na iluminao do ambiente. Este um recurso muito interessante, pois evita que correes na imagem precisem ser realizadas via software, porm, esse tipo de ajuste requer um tempo de adequao s condies do ambiente. Por isso, preciso esperar que o ajuste automtico se estabilize para que no prejudique as etapas posteriores no processamento, como a segmentao da imagem. A segunda condio que precisa ser satisfeita refere-se aos elementos presentes na imagem capturada durante a inicializao do sistema. Neste momento importante que haja no ambiente somente elementos estticos e que os usurios estejam fora da viso da cmera. Todos esses elementos estticos da imagem sero classificados como fundo durante a subtrao. Caso haja elementos no estticos, estes podero ser classificados erroneamente como um objeto de interesse.

Figura 4: Imagem com luminosidade estabilizada e elementos estticos

Na Figura 4 apresentada uma imagem capturada que atende as duas condies. Neste projeto, esta etapa realizada manualmente pelo usurio, que espera a estabilizao da imagem e em seguida pressiona uma tecla no momento mais adequado. A partir deste evento, a subtrao de fundo passa a ser realizada. 4.3.4 Subtrao de Fundo Em Cmera Kombat, a subtrao de fundo foi implementada utilizando uma tcnica de subtrao simples. As etapas da subtrao de fundo esto implementadas na funo doBackgroundSubtraction, que pode ser vista na Figura 6. Nesta implementao, a imagem utilizada como fundo determinada pelo usurio atravs de um evento teclado. Este evento pode ser invocado tanto na fase de inicializao do sistema, como em qualquer outro momento que se queira atualizar o fundo da imagem. Determinado o fundo, efetuada uma subtrao absoluta, pixel a pixel, do frame atual com a imagem de fundo. Aps a realizao da subtrao de fundo, aplicada uma operao de limiarizao, em que foi adotado como limiar o valor 40, ou seja, todos os pixels com intensidade inferior a este valor sero convertidos para preto (de modo a caracterizar o fundo da imagem) e os com intensidade superior ao limiar, para branco (elementos segmentados).

Figura 5: Aplicao da tcnica de subtrao simples com limiarizao

Para melhorar os resultados da subtrao de fundo, foi aplicado sobre a imagem binarizada a operao morfolgica de abertura (eroso seguida de dilatao), com um elemento estruturante quadrado de dimenses 3 x 3 pixels. A aplicao da operao de abertura elimina pequenas ilhas na imagem e remove, ento, alguns rudos indesejveis. O resultado dessas operaes pode ser observado na Figura 5.
IplImage* doBackgroundSubtraction(IplImage* image){ /* Alocando espao para a imagem subtrada */ IplImage* subtraction = cvCreateImage(cvGetSize(image), 8, 1); /* Efetua a subtrao absoluta pixel a pixel do background com o frame atual */ cvAbsDiff(image, background, subtraction); /* Aplicando o threshold na imagem subtraida */ cvThreshold(subtraction, subtraction, 40, 255, CV_THRESH_BINARY); /* Definio do elemento estruturante 3x3 pixels */ IplConvKernel* matrix cvCreateStructuringElementEx(3, 3, CV_SHAPE_RECT, NULL); 0, = 0,

resultado da subtrao de fundo e a funo do fecho convexo recebe o conjunto de pontos que representam o contorno e retorna os vrtices do polgono.

Figura 7: Pontos detectados a partir do fecho convexo

Na Figura 7, so evidenciados os vrtices encontrados a partir do fecho convexo. Encontrados estes vrtices, as regies de interesse so definidas como: Cabea: vrtice posicionado mais acima, representado por Up, na Figura 7. Mo Esquerda: vrtice posicionado mais esquerda, representado por Left, na Figura 7. Mo Direita: vrtice posicionado mais direita, representado por Right, na Figura 7. Regio Prxima aos Ps: composto pelo valor x do vrtice Up e pelo valor y do vrtice posicionado mais abaixo na figura. Regio Prxima ao Centro de Massa: composto pelo valor x do vrtice Up e o valor y determinado pela mdia aritmtica entre o valor y do vrtice Up com o y do vrtice da regio mais prxima dos ps.

/* Eroso aplicada na imagem subtrada */ cvErode(subtraction, subtraction, matrix, 1); /* Dilatao */ cvDilate(subtraction, subtraction, matrix, 2); return subtraction; }

Figura 6: Funo responsvel pela subtrao de fundo

Embora tenha sido utilizada a tcnica de subtrao simples de fundo neste projeto, a mesma foi desenvolvida de forma que possibilite que outros mtodos possam ser utilizados sem afetar o funcionamento do sistema. Para isso, preciso somente reescrever a funo doBackgroundSubtraction. 4.3.5 Reconhecimento de Gestos Tratando-se de um jogo de luta, importante que determinados gestos sejam reconhecidos, como socos, por exemplo. Para a identificao destes gestos, foram elaborados para o Cmera Kombat mtodos baseados em formas geomtricas presentes na silhueta dos jogadores para extrao de tal informao. Como primeiro passo, preciso localizar algumas regies do jogador importantes para determinar a ocorrncia dos gestos de interesse. Essas regies so: cabea, posio das mos, regies prximas aos ps e ao centro de massa. Para a determinao destas regies, foi utilizada a tcnica do fecho convexo (descobrir o menor polgono convexo que envolve todos os pontos da silhueta da pessoa), tendo como conjunto de pontos o contorno da silhueta do jogador. Ambas as tcnicas so providas pela biblioteca OpenCV e foram utilizadas neste projeto, sendo que a funo responsvel pelo contorno recebe como parmetro uma imagem que representa o

Na Figura 8 apresentada a estrutura que representa os pontos das regies de interesse. Durante o jogo, cada jogador possui um elemento do tipo DetectedPoints, que atualizado a cada frame.
typedef struct _DetectedPoints{ CvPoint right; CvPoint left; CvPoint center; CvPoint up; CvPoint down; } DetectedPoints;

Figura 8: Estrutura que contm os pontos das regies de interesse

Detectar os vrtices das regies de interesse uma etapa importante, mas insuficiente para a verificao da ocorrncia de um gesto, como um soco. Para determinar se um soco ocorreu ou no, analisado o ngulo formado pela abertura dos braos em relao cabea e regio prxima ao centro de massa. O ngulo pode ser observado na Figura 9.

enquanto o brao esquerdo que se encontra numa posio mais elevada, reconhecido como um soco.

Figura 9: Condies para deteco de socos

Foi observado durante experimentos que quando o ngulo assumia valores menores que 95, pequenos movimentos dos braos eram detectados. Porm, estes movimentos ainda no caracterizam um soco. Para determinar a ocorrncia de um soco, foi adicionada uma nova condio, que o estabelecimento de uma regio em y onde mais provvel que este gesto acontea. Esta regio onde mais provvel que um soco ocorra representada na Figura 9 por d. Seja detPoints um elemento do tipo DetectedPoints, os limites de d , em y, so determinados por d_min e d_max, apresentados na Figura 10.
d_min = (detPoints.center.y + detPoints.up.y) / 2) * 0.9); d_max = (detPoints.center.y + detPoints.up.y) / 2) * 1.1);

Figura 11: Reconhecimento de gestos de soco sem restries em relao regio de ocorrncia (superior) e com restries (inferior)

4.3.5.1 Identificando Dois Jogadores At o momento foi mostrado como identificar um jogador em uma cena e reconhecer socos realizados pelo mesmo. Porm, em Cmera Kombat, por tratar-se de um jogo de luta (confronto entre dois participantes), necessrio que o sistema saiba identificar e reconhecer os gestos de cada um dos jogadores de forma independente. Para identificar cada jogador, foram utilizados os contornos das silhuetas dos mesmos, obtidos aps a fase de subtrao de fundo. Ao obter todos os pontos do contorno, so identificados o ponto mais esquerda e o mais direita na tela. Destes, definida uma regio central, que a distncia mdia entre os dois pontos (Figura 12). Assim, todos os pontos da regio esquerda pertencem ao jogador 1, e os da direita, ao jogador 2. Definido o conjunto de pontos da silhueta de cada jogador, estes so tratados individualmente pelo sistema, podendo a partir deste ponto aplicar o fecho convexo e o reconhecimento de gestos (socos).

Figura 10: Intervalo em y com maior probabilidade de ocorrncia de socos

Portanto, para a deteco de socos, foram estabelecidas duas condies que devem ocorrer ao mesmo tempo: < 95; detPoints.right.y > d_min e detPoints.right.y < d_max, para o brao direito do jogador, ou detPoints.left.y > d_min e detPoints.left.y < d_max para o brao esquerdo do jogador.

Na Figura 11, mostrada em (a) e (b) uma tentativa para a deteco de gestos de soco levando em considerao somente o ngulo . Como observado, o gesto identificado para qualquer pequeno afastamento das mos (ou braos) em relao ao corpo. Em (c) e (d), foi adicionada a regra de detectar gesto como soco apenas quando ocorre na regio em que se considera mais provvel em que um soco ocorra. Podese observar que os resultados obtidos foram mais precisos. O brao direito do jogador, que est levemente afastado do corpo no identificado,

Figura 12: Diviso de reas dos jogadores

4.3.5.2 Ao aps Deteco de Gesto Ao ser detectado pela aplicao um gesto de soco, um objeto (bola) lanado a partir da mo do jogador em direo a seu adversrio. Para isto, a cada gesto detectado, um objeto criado na posio correspondente a mo do jogador, representado na estrutura DetectedPoints por right ou left, dependendo da posio do jogador. Nos quadros seguintes, ocorre uma movimentao deste objeto, na horizontal, em direo a seu adversrio, podendo seguir at sumir da tela, ou colidir em algum objeto, ou at mesmo no adversrio. A tcnica utilizada para a deteco de colises ser apresentada a seguir. 4.3.5.3 Deteco de colises Na realizao da deteco de colises entre objetos virtuais e silhuetas de jogadores necessrio conhecer a localizao de todos os objetos que se pode interagir em uma cena. Para isto, foram definidas algumas estruturas de dados com a finalidade de descrever para a aplicao como so estes objetos e em que posies se encontram. Em Cmera Kombat, optou-se por desenvolver estruturas de dados que unissem todas as informaes necessrias ao processamento do jogo com as caractersticas dos objetos. Para descrever uma bola, objeto que representa os golpes efetuados pelos jogadores no jogo, foi utilizada a estrutura Ball, descrita na Figura 13. Nela esto presentes campos para a velocidade de deslocamento (vel), a posio que o centro da bola ocupa no ambiente virtual (pos), a direo do movimento (dir), a sua cor (color) e o tamanho de seu raio (raio).
typedef struct _Ball{ GLfloat vel[3]; GLfloat pos[3]; GLfloat dir[3]; GLfloat color[3]; GLfloat raio; } Ball;

descrito em 4.3.4, sendo estes armazenados em vetores (arrays da linguagem C), em que cada posio representa um ponto x, y da silhueta. O vetor de dados que identifica a localizao dos jogadores pode ser usado juntamente com a estrutura que define objetos grficos, para que se faa a deteco de colises pela anlise das posies de cada objeto (bolas e jogadores). Para esta anlise efetuado o clculo da distncia euclidiana entre dois pontos. Sua formula definida por: d(P1P2) =

(x 2 - x 1 ) 2 + (y 2 - y1 ) 2 + (z 2 - z1 ) 2

onde P1 e P2 so pontos formados pelos vetores (x1, y1, z1) e (x2, y2, z2). Na Figura 14, exemplificada a deteco de coliso entre um jogador e uma esfera virtual. So passados para a funo os pontos referentes ao jogador e esfera. Caso a distncia retornada tenha o mesmo tamanho do raio da esfera, ocorreu uma coliso.

Figura 14: Prottipo que mostra coliso de uma bola com o brao de uma pessoa (silhueta) e subseqente mudana de direo.

Em Cmera Kombat, sempre que ocorrer a coliso de um objeto com um jogador, este penalizado. A cada penalizao, uma barra de energia localizada na parte superior da tela diminuda. Ao se esgotar esta energia, so definidos o vencedor e o perdedor da partida. 4.3.6 Custo Computacional A taxa de captura da aplicao limita-se a 30 fps (quadros por segundo), pois est diretamente relacionada com a taxa de captura da webcam. Em resoluo 640 x 480 pixels, o processamento de aproximadamente 30% de uso da CPU. Os testes foram efetuados em uma mquina com processador Pentium Celeron 2.4 GHz com 512 MB de RAM e placa de vdeo NVidia GeForce 5200.

Figura 13: Estrutura utilizada para descrever uma bola

Os campos vel, dir e pos esto descritos na forma de vetores de trs dimenses. Esta representao foi escolhida para facilitar o agrupamento de informaes geomtricas e facilitar os clculos a serem realizados. Alm de estruturas criadas para descrever os objetos virtuais, foi preciso tambm criar uma estrutura para representar o jogador dentro do ambiente virtual do jogo. Neste trabalho, a informao de maior relevncia para a descrio de um jogador so os pontos da borda de sua silhueta, extrados como

5. Resultados
H um vdeo em que possvel observar o estado atual do projeto em http://tinyurl.com/nxyjx. O jogo operacional e pode ser jogado por dois participantes. Ao detectar socos realizados por um jogador, disparado um golpe (bola) em direo a seu oponente. O oponente deve se desviar destes golpes para que no seja atingido, e conseqentemente, sofrer punies. Cada punio causa uma diminuio na barra de energia (localizadas na parte superior da tela) do jogador que a sofreu. Ao ser esgotada esta barra de energia definido o vencedor e o perdedor da disputa. Na Figura 15, apresentada uma cena tpica do estado atual do projeto, em que h uma disputa entre dois jogadores, sendo lanados golpes um contra o outro.

webcams, decorrncia do aumento do uso de softwares de comunicao instantnea como o Microsoft MSN Messenger, torna o cenrio muito favorvel ao desenvolvimento de jogos com caractersticas similares ao Camera Kombat. 6.1 Trabalhos Futuros A seguir sero listadas algumas sugestes a serem realizadas em trabalhos futuros, que podem ser desenvolvidos a partir do cdigo disponvel em http://sourceforge.net/projects/camera-kombat/, so: Implementar tcnicas baseadas em histograma para a determinao automtica de um limiar adequado, que ser usado para segmentar o fundo. Desenvolver novas tcnicas de subtrao de fundo, de modo que as torne mais adaptativas. Como sugesto, pode-se utilizar tcnicas baseadas em entropia, ou atravs de GPUs, passando para a placa de vdeo todo o processamento. Tentar mesclar funes de processamento da OpenCV com as da OpenVidia para aliviar um pouco o trabalho da CPU atravs da transferncias de algumas operaes para a GPU. Estruturar o trabalho na forma de biblioteca, para que seja simples criar outros jogos. Utilizao de duas webcams, uma para cada jogador. Criar uma verso em rede, do trabalho, em que duas pessoas possam jogar distncia.

Figura 15: Cmera Kombat: disputa entre dois jogadores

6. Concluses
Em relao ao projeto, pode-se concluir que os objetivos iniciais foram atingidos. Cmera Kombat um jogo de luta, que utiliza tcnicas da viso computacional para identificar o movimento dos jogadores, promovendo uma interao livre de dispositivos que precisam ser carregados por seus participantes. Os jogadores podem interagir entre si, lanando magias um contra o outro. A atividade fsica propiciada pelo jogo tambm elevada, pois os jogadores devem pular ou agachar para desviar das magias que so lanados contra eles. Durante a fase de desenvolvimento houve dificuldades para se encontrar material mais aplicado referente biblioteca OpenCV. As principais fontes de informao so uma documentao que faz parte da distribuio da biblioteca, apenas com explicaes muito sucintas das funes, e a lista de discusso oficial. Este trabalho mais um exemplo que vivel, em termos de disponibilidade de bibliotecas de programao adequadas e tambm de poder computacional facilmente acessvel, construir jogos eletrnicos baseados em viso computacional. Em particular, o barateamento e a grande popularidade das

Referncias
BOBICK, AARON F. INTILLE, STEPHEN S. DAVIS, JAMES W. BAIRD, FREEDOM. PINHANEZ, CLAUDIO S. CAMPBELL, LEE W. IVANOV, YURI A. SCHTTE, ARJAN AND WILSON ANDREW, 2000. THE KIDSROOM. COMMUNICATIONS OF THE ACM, 43(3), 60-61. EYE TOY [online]. DISPONVEL EM: HTTP://WWW.EYETOY.COM. [ACESSO EM: 20 NOV. 2005].

KRUEGER, MYRON W, 1991. ARTIFICIAL REALITY II. ADDISON-WESLEY. KRUEGER, MYRON W. VIDEOPLACE [online]. DISPONVEL EM: HTTP://WWW.JTNIMOY.NET/ITP/NEWMEDIAHISTORY/VI DEOPLACE/. [ACESSO EM: 10 DEZ. 2006]. LANDR, JRME [online]. PROGRAMMING WITH INTEL IPP AND INTEL OPENCV UNDER GNU LINUX - A BEGINNER'S TUTORIAL. DISPONVEL EM: HTTP://JLANDRE.IFRANCE.COM/ RECHERCHE.HTML [ACESSO EM: 25 AGO. 2005].

MARK, KILGARD. [online]. GLUT API. DISPONVEL EM: HTTP://WWW.OPENGL.ORG/RESOURCES/LIBRARIES/GLUT/SP EC3/SPEC3.HTML. [ACESSO EM: 10 JAN. 2006]. OPENCV: OPEN SOURCE COMPUTER VISION LIBRARY. [online] DISPONVEL EM: HTTP://WWW.INTEL.COM/TECHNOLOGY/ COMPUTING/OPENCV/INDEX.HTM. [ACESSO EM: 05 SET. 2005]. OPENGL REFERENCE MANUAL [online]. DISPONVEL EM HTTP://WWW.RUSH3D.COM/REFERENCE/OPENGL-BLUEBO OK-1.0/>. [ACESSO EM: OUT. 2005]. SHREINER, DAVE. NEIDER, JACKIE. WOO, MASON. DAVIS, TOM, 2006. OPENGL PROGRAMMING GUIDE VERSION 1.4. 4 EDIO PEARSON EDUCATION, INC. 2004. TOYSIGHT [online]. DISPONVEL EM HTTP://WWW.APPLE.COM/ GAMES/ARTICLES/2003/12/TOYSIGHT/. [ACESSO EM 07 MAI. 2006]. WARREN, JONAH, 2006 [online]. UNENCUMBERED FULL BODY INTERACTION IN VIDEO GAMES. DISPONVEL EM: HTTP://A.PARSONS.EDU/~JONAH/FULL_BODY/. [ACESSADO EM: 16 MAR. 2006].

Вам также может понравиться