Aceleração da Webcam

Padrão

Normalmente os drivers das webcam, especialmente em Windows vem configuradas para reconhecimento facial e diversas outras atividades que oneram a taxa de atualização do vídeo. Mesmo uma câmera utilizando USB 2.0 exibe no máximo 8 frames por segundo, quantidade que é insuficiente para obter realismo na cena. Uma das maneiras de modificar os parâmetros de funcionamento da webcam é com o software Guvcview. O procedimento de instalação também pode ser encontrado no website: http://guvcview.berlios.de/downloads.html

Para instalar o Guvcview deve-se adicionar às fontes de Software do Kubuntu os seguintes endereços:

deb http://ppa.launchpad.net/pj-assis/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/pj-assis/ppa/ubuntu karmic main

Para outras versões do Kubuntu deve-se substituir o karmic pela respectiva distribuição.
No terminal deve-se entrar com os seguintes comandos

# gpg -keyserver keyserver.ubuntu.com -recv 0x9750A93F69FAF7DA
# gpg -export -armor 0x9750A93F69FAF7DA |sudo apt-key add -
# sudo apt-get install guvcview

O software pode ser encontrado na pasta Multimídia do Kubuntu, ou via terminal digitando guvcview. Altere o parâmetro de Ganho para o valor máximo e os parâmetros na aba Propriedades de Vídeo para os seguintes valores e acompanhe a diferença na velocidade de captura da câmera.

Resolução: 640×480
Saída da Webcam: RGB3
Codec de Vídeo: RGB s/ comp BMP
Formato Vídeo: AVI - avi format

Basta salvar e sair do programa. Para testar pode-se utilizar o programa Cheese.

Antes deste procedimento, a taxa era de aproximadamente 8 frames por segundo, dependendo da webcam. Após estes ajustes a taxa foi de 26 frames por segundo, uma taxa que permite grande realismo na utilização.

Observação: Webcams USB que não são USB 2.0 não atingem a este valor. Webcams Firewire não foram testadas, mas devem possibilitar a mesma taxa já que as velocidades de transmissão do barramento são compatíveis.

Estado da Arte

Padrão

Fundamentação Conceitual

Os avanços tecnológicos nos diversos campos relacionados à computação nos permitem convergir algumas idéias desenvolvidas ao longo do tempo, embasando o desenvolvimento de um sistema onde componentes virtuais possam ser integrados na realidade do usuário.

Os estudos de computação gráfica foram inicialmente caracterizados por Ivan Sutherland na construção do SketchPad na década de 1960 (1). O SketchPad demonstrou um novo conceito de interação com o computador utilizando uma ferramenta gráfica. Além do avanço na computação gráfica realizada por este estudo, uma característica importante é o avanço na interface homem máquina desenvolvido. O SketchPad utilizava um sistema de apontamento, na qual o usuário literalmente apontava na tela o ponto na qual ele queria realizar uma operação. Sutherland também desenvolveu na época o Ultimate Display (2), que se baseava num sistema de vídeo que interligado a sensores de movimentos mecânicos manipulavam uma câmera localizada em outra posição, e desta forma dando ao observador do vídeo a impressão que estava na posição onde a câmera estava instalada. Desta forma Sutherland foi o precursor da Computação Gráfica com seu SketchPad e da Realidade Virtual com o Ultimate Display.

Na ultima década projetos como o Tinmith (3) desenvolvido por Wayne Piekarski na University of South Australia exploram as potencialidades dos softwares e hardwares atuais na construção de sistemas que integrem dados virtuais ao mundo real. Wayne Piekarski em seus estudos utiliza um hardware básico composto de sensores de posicionamento e orientação, uma unidade de processamento (notebook) e de um dispositivo de visualização.

Sistemas de interação podem ser classificados em gerações: Geração 1: Baseadas em entradas de comandos digitados; Geração 2: Baseadas no sistema Janela, ícone e botão e Geração 3: Baseados em sistemas 3D e realidade virtual (4). Os sistemas de interação da terceira geração ainda não foram completamente especificados e caracterizados, existindo diversos estudos sobre métodos e metodologias de uso. Contudo, um marco para os sistemas de interação da terceira geração foi a criação da biblioteca ARToolKit (5) em 2005, que explora a utilização de marcadores impressos para que o software realize o posicionamento e orientação da imagem virtual. A partir desta biblioteca ocorreu uma vasta utilização do mesmo em diversas aplicações, passando por temas educacionais, aplicações industriais, médicas e em anúncios comerciais. Em 2009, o ARToolkit foi portado para a utilização em Flash por Saqoosha, sendo chamado de FlarToolKit, assim a utilização de realidade aumentada experimentou outro crescimento devido a possibilidade de funcionamento numa variedade maior de sistemas, pois para a aplicação funcionar bastariam apenas um computador com webcam e um web-browser com o plugin de Flash instalado, independendo o sistema operacional ou instalação de software.

Métodos de mapeamento sem a utilização de marcadores foram pesquisados por Reitmayr e Drummond (6) em 2006. Os mesmos utilizaram um modelo virtual pré-definido e processaram uma imagem procurando por um modelo. Outro mecanismo de mapeamento sem marcadores é o SLAM (Simultaneous Location and Mapping) (7), este método foi o vencedor de uma disputa proposta pelo ISMAR (International Symposium on Mixed and Augmented Reality) (8) em 2008 para uma tarefa que seria dada apenas no momento da utilização e o sistema deveria se auto-encontrar. SLAM são conhecidos na área de Visão Robótica por proporcionar um método do equipamento construir um mapa de características do ambiente de forma a fornecerem um método de auto-localização para robôs.

Em ambientes externos a principal fonte de posicionamento são as constelações de satélites que fornecem dados de posicionamento como o americano GPS, o russo GLONASS e o europeu GALILEU. Em 2008 um fabricante de chips a Javad (9), lançou um dispositivo capaz de capturar informações de varias redes de posicionamento. Contudo de forma a capturar informações apenas da constelação GPS existem microchips na ordem de grandeza de 10mm², como os lançados pela Maxim (10) em 2006, e mais recente o BCM2075 (11) lançado pela Broadcom em 2008 que integra GPS, Bluetooth, FM num único encapsulamento, além de possuir decodificadores de áudio e outras características. Este último aspecto do chip da Broadcom mostra-se uma característica dos fabricantes de hardware em otimizar o espaço integrando tecnologias de comunicação, o mesmo fabricante possui outros chips que integram Wifi, Bluetooth e FM.

Esta integração também é vista nos processadores, chamados Application Processors, estes integram varias funcionalidades que antes eram executados por dispositivos periféricos, estas integrações possibilitam um acelerado desenvolvimento do hardware/software além de diminuírem o espaço físico requerido para alojar o circuito. Um exemplo deste tipo de processador é o Marvell PXA320 (12) lançado em 2008 que além de rodar um core de 800MHZ, possui integrados portas USB, controladores de memória, LCD, unidade aceleradora gráfica, etc. Para facilitar o desenvolvimento deste processador, bem como outros, empresas dedicam-se em produzir kits de desenvolvimento, como a Toradex (13) que lançou em meados de 2009 um kit específico para desenvolvimento de dispositivos móveis utilizando o Marvell PXA320, chamado Limestone.

Assim como o Ultimate Display desenvolvido por Sutherland, o projeto Tinmith utilizou um dispositivo de visualização para realizar seus estudos. Para integrar o virtual e o real no projeto Tinmith foi utilizado um sistema de filmagem e processamento de imagem, na qual a partir de uma câmera digital a imagem era processada e exibida num sistema de projeção de Realidade Virtual. Os equipamentos para visualização da integração do mundo real com o virtual podem ser divididos de acordo com o grau de imersão (ou grau de integração) desejado, sendo estes equipamentos HMDs (Head Mounted Displays) que podem ser divididos em video see-through e o optical see-through, projetores e monitores. (4)

HMDs são uma nova modalidade de HUD (Head Up Displays) (14), porém mais imersivos. HUDs são dispositivos utilizados em aviões que sobrepõem a visão do usuário com uma camada dados virtuais, para que o piloto não precise tirar o foco da atenção para instrumentos dispostos pela cabine. Atualmente modelos de automóveis possuem incorporados no pára-brisa uma película que exibe informações do painel do carro num ângulo de visão onde o motorista não precisa desviar a atenção da estrada, este sistema está disponível no Honda Civic, desde 2006, desenvolvido pela Planar (15). Semelhante ao sistema do HUD, o HMD optical see-through sobre uma camada virtual a realidade, o principal desenvolvedor na área é a Lumus-Optical que apresentou seu VideoEye Glasses no Consumer Electronic Show em 2008 (16).

A modalidade de displays HMD vídeo see-through, apresenta-se como uma ferramenta mais acessível do que o optical see-through. Sua arquitetura baseia-se num sistema onde a realidade é filmada, sendo então processada a integração do real com o virtual para posteriormente ser exibida num display. Para este sistema além da unidade de processamento, são necessários apenas uma webcam, e um óculos portando duas telas de LCD como as fabricadas pela Myvu (17). Deve se ressaltar que HMDs são utilizados em realidade virtual, porém em realidade virtual geralmente o real não é integrada ao virtual.

Sistemas que utilizam projetores são encontrados geralmente em ambientes de realidade virtual, onde um usuário fica imerso sem a necessidade de utilizar HMD, porém experimentos como o ARHockey, que se baseia no jogo Air Hockey, que vem sendo realizado pelo SENAC São Paulo desde 2007 (18), mostram que esse tipo de sistema pode ser aplicado a baixo custo de projeto.

A utilização de monitores tem sido largamente explorada devido a ter grande semelhança aos sistemas HMD vídeo see-through, primeiramente como uma primeira fase de projeto e segundo como uma aplicação da integração do real com o virtual para dispositivos móveis como celulares e handhelds. Um dos projetos de integração foi desenvolvido pela Nokia, chamado de MARA (Mobile Augmented Reality Application) Project (19), na qual integrava GPS a um aparelho de celular contendo câmera e em conjunto com sensores inerciais, para a orientação do aparelho celular, disponibilizavam ao usuário, ao passo que o mesmo filmava, informações dos prédios ao seu redor. A NVidia no inicio de 2009 lançou uma nova plataforma MID (Multimedia Internet Device) chamada NVidia Tegra (20). Esta ainda foi pouco testada no âmbito da integração do real com o virtual, porém mostra alto potencial devido ao processamento dos cores NVidia.

Dentre as aplicações exploradas comercialmente estão os setores de entretenimento e treinamento.

No setor de entretenimento, mais especificamente o de jogos, está ocorrendo um grande desenvolvimento na integração do usuário aos dados virtuais, estão sendo desenvolvidas diversas aplicações comerciais explorando componentes de interatividade para integração do usuário com os jogos. Contudo, a aplicação de novas técnicas de interação não é atual, a Nintendo em 1995 lançou a plataforma VirtualBoy (21) que se baseava num visor que realizava a imersão do jogador, porém com os baixos recursos da época o projeto não obteve sucesso. Atualmente a Nintendo com a plataforma Wii (22) lançada em 2006 revolucionou o conceito de jogabilidade com a utilização de sensores inerciais e infravermelhos para realizar a interação. Outra aplicação neste segmento foi desenvolvida pela Sony para a plataforma Playstation 3, o Eye of Judgment (23), com previsão de lançamento para outubro de 2009, consiste num jogo de RPG na qual as cartas são interpretadas por um sistema de filmagem e exibidas na televisão. Para 2010 a Microsoft com a plataforma XBOX360 (24) estará lançando uma série de jogos que utilizam um sistema de filmagem que identificará o usuário e suas ações, realizando a interação.

No setor de treinamento e educação, estão sendo realizadas avaliações intensivas nestes últimos anos, e como resultados foram observados ganhos superiores de aprendizado utilizando-se técnicas de interação virtual (25). Em 2002 foi iniciado o projeto 3D Driving Academy (26) que consiste em um simulador de transito para ensinar as leis de transito. Em 2006 o projeto EVI (Easy_Visualization_In-Situ) (27) construiu um sistema onde imagens obtidas via tomografia computadorizada eram sobrepostas no individuo. Outros projetos como museus interativos, interfaces de ensino médicos e treinamentos especializados tem sido desenvolvidos.

O segmento de portáteis para realidade aumentada é explorado por aplicativos desenvolvidos para a plataforma iPhone da Apple. George Klein do Active Vision Laboratory da University of Oxford publicou uma abordagem de SLAM para o iPhone [GEORG KLEIN], possibilitando a obtenção de informação de orientação e posicionamento a partir da filmagem e processamento do iPhone. O Banco Bradesco também disponibilizou um aplicativo utilizando a bússola e o GPS do iPhone, onde o usuário aponta para uma direção e o software mostra as agencias mais próximas na direção apontada.

Os níveis de integração do real com o virtual vêem aumentando de acordo com a evolução da tecnologia, possibilitando que novas ferramentas sejam aplicadas para a solução dos muitos problemas que ainda envolvem este tipo de integração. Ao passo que as tecnologias estão caminhando para uma integração chamada de hiper-realidade, cuja definição é a capacidade tecnológica de combinar realidade virtual, realidade física, inteligência artificial e inteligência humana, integrando-as de forma natural para o acesso do usuário. (2)

Ambientes de hiper-realidade permitirão que habitantes reais interajam com outros remotamente localizados, bem como com avatares, gerados por computadores, em um mundo misturado. Com a visão de mundo misturado, cada usuário poderá enxergar o que lhe interessa, de acordo com seu perfil ou sua necessidade, e interagir com os objetos, de forma a atender suas necessidades. (2)

Bibliografia

1. Sutherland, Ivan Edward. SketchPad, A Man-Machine Graphical Communication System. Massachusetts : Garland Publishing, 1963. 0-8240-4411-8.
2. Tori, Romero and Kirner, Claudio. Fundamentos e Tecnologia de Realidade Virtual e Aumentada. [book auth.] 2006. Fundamentos e Tecnologia de Realidade Virtual e Aumentada. Belém - PA : s.n.
3. Piekarski, Wayne. Tinmith Augmented Reality Project - Wearable Computer Lab. [Online] University of South Australia. [Cited: 06 03, 2009.] http://www.tinmith.net/index.htm.
4. Botega, Leonardo Castro and Cruvinel, Paulo Estevão. Realidade Virtual: Histórico, Conceitos e Dispositivos. Aplicações de Realidade Virtual e Aumentada. Porto Alegre : SBC - Sociedade Brasileira de Computação, 2009.
5. ARToolKit. [Online] University of Washington, 06 03, 2009. [Cited: 06 03, 2009.] http://www.hitl.washington.edu/artoolkit/.
6. Drummond, Gerhard Reitmayr and Tom W. Going out: Robust Tracking for Outdoor Augmented Reality. Proc. {ISMAR} 2006. Santa Barbara, CA, USA : IEEE CS, 2006.
7. Mayol-Cuevas, Denis Chekhlov and Andrew Gee and Andrew Calway and Walterio. Ninja on a Plane: Automatic Discovery of Physical Planes for Augmented Reality Using Visual SLAM. International Symposium on Mixed and Augmented Reality (ISMAR). s.l. : International Symposium on Mixed and Augmented Reality (ISMAR), 2007.
8. IEEE Computer Society. International Symposium on Mixed and Augmented Reality (ISMAR). AUGMENTED-REALITY ORG. [Online] [Cited: 06 03, 2009.] http://www.augmented-reality.org/ismar/.
9. Javad GNSS. [Online] Javad, 06 17, 2009. http://www.javad.com.
10. Complete Stand-Alone GPS Receiver Solution with MAX2742. [Online] Maxim. [Cited: 06 17, 2009.] http://www.maxim-ic.com/appnotes.cfm/an_pk/3447.
11. BCB2075 Product Brief. [Online] Broadcom, 06 17, 2009. http://www.broadcom.com/collateral/pb/2075-PB01-R.pdf.
12. Marvel PXA3xx Application processor Family. [Online] Marvell. [Cited: 06 17, 2009.] http://www.marvell.com/products/cellular/application/PXA3xx_series.jsp.
13. Limestone PDA Kit. [Online] Toradex. [Cited: 06 17, 2009.] http://www.toradex.com/En/Products/Limestone_PDA_Kit.
14. Head-Up Display (HUD). [Online] Elbit Systems Electro-Optics Elop Ltd. [Cited: 06 17, 2009.] http://www.el-op.com/files/PDF/Displays/UN_BabyHUD.pdf.
15. Transparent EL Displays. [Online] Planar. [Cited: 06 17, 2009.] http://www.planarembedded.com/electroluminescent-display/transparent-display/.
16. Lumus Unveils Reference Design of Completely Natural Looking, See-Through Video Eyeglasses at CES Las Vegas, 2008. [Online] Lumus-Optical, 01 01, 2008. [Cited: 06 17, 2009.] http://www.lumus-optical.com/downloads/press/PressRelease-Jan108.pdf.
17. Myvu personal media viewer. [Online] Myvu. [Cited: 06 17, 2009.] http://www.myvu.com.
18. ARHockey: Um Jogo em Realidade Aumentada Baseada em Projetores. Vieira, Beatriz N. S., et al. Petrópolis : SBC, 2007.
19. Kähäri, Markus. MARA: Nokia Research Center. [Online] Nokia. [Cited: 06 17, 2009.] http://research.nokia.com/research/projects/mara/index.html.
20. Mobile - NVidia Tegra. [Online] NVidia. [Cited: 06 17, 2009.] http://www.nvidia.com/page/handheld.html.
21. Planet Virtual Boy. [Online] [Cited: 06 03, 2009.] http://www.vr32.de/.
22. Nintendo Wii. [Online] Nintendo of America Inc. [Cited: 06 03, 2009.] http://www.nintendo.com/wii.
23. Eye of Judment on PLAYSTATION 3: The Official Site. [Online] Sony. [Cited: 06 03, 2009.] http://www.eyeofjudgment.com/.
24. Topolsky, Joshua. Microsoft announces “Project Natal” motion controller for Xbox 360! Engadged. [Online] [Cited: 06 03, 2009.] http://www.engadget.com/2009/06/01/microsoft-announces-motion-controller-for-xbox-360.
25. Cardoso, Alexandre and Junior, Edgard Lamounier. Aplicações de RV e RA na Educação e Treinamento. Aplicações de Realidade Virtual e Aumentada. Porto Alegre : SBC - Sociedade Brasileira de Computação, 2009.
26. 3D Driving Academy. 3D-Fahrschule. [Online] [Cited: 06 03, 2009.] http://www.3dfahrschule.de/index.htm.
27. EVI - Easy Visualization In-Situ . TECHNISCH UNIVERSITÄT MÜNCHEN. [Online] http://campar.in.tum.de/Events/EviFoot2006.

Ferramenta de Implementação – saindo do v0

Padrão

Para o desenvolvimento de RA, diversas possibilidades de ferramentas estão disponíveis, como o PTAM, FLARToolKit e o ARToolKit. Todas estas possibilidades podem ser desenvolvidas para Windows, Mac e Linux. O FLARToolKit e ARToolKit tem suas abordagens voltadas para orientação e posicionamento dos objetos virtuais usando marcadores artificiais, já o PTAM é uma abordagem que utiliza-se de marcadores naturais. Além destas ferramentas, é possível utilizar o Wiimote para realizar as interações com os objetos virtuais.


O desenvolvimento pode ser realizado nas plataformas Windows, Mac ou Linux. Contudo a única opção com ferramentas grátis é o Linux. Desta forma, após testes com diversas distribuições, foi escolhido o Kubuntu 9.10 Karmic 32bits, que é a versão do Ubuntu que utiliza o ambiente operacional KDE. Esta distribuição é a que mais fácil permite a utilização das ferramentas para RA.



A seguir serão descritos os procedimentos de instalação do Ambiente de Desenvolvimento, que consiste da instalação do Kubuntu, da aceleração da webcam, do PTAM, do FLARToolKit, do ARToolKit e das bibliotecas de utilização do Wiimote.



Instalação do Kubuntu



Para o desenvolvimento de RA utilizando software livre pode então ser utilizado o Kubuntu 9.10 Karmic de 32bits. Esta versão foi escolhida, pois é a que provê a maior facilidade de implementação do ferramental. A versão de 32bits foi escolhida, pois nas distribuições que utilizam 64bits ocorrem falhas entre algumas bibliotecas. A versão Karmic foi lançada em Outubro de 2009, corrigindo diversas falhas e acrescentando um maior suporte a webcams USB e IEEE1394 (Firewire).



Desta forma, os principais equipamentos utilizados estão descritos a seguir:

Processador: AMD 64bits X2

Placa de vídeo: NVidia 9500GTX

RAM: 2GB

Webcam: Dr Hank - 1.3Mpixels (USB 2.0 e Chipset Microdia)

Controle de Wii da Nintendo.

Adaptador USB Bluetooth.



1. Instalando o Kubuntu



Pode-se seguir a instalação padrão sugerida do Kubuntu, realizando os updates e a instalação do pacote de idiomas (no caso o PT-BR) diretamente pela instalação.



2. Instalando o driver da placa de vídeo



Uma das grandes vantagens da utilização de Kubuntu e NVidia é o fato da própria NVidia disponibilizar um driver para a distribuição.



Assim logo que o sistema operacional estiver instalado, o sistema mostrará uma opção para a instalação do driver. Desta forma foi escolhido o “Driver de aceleração NVidia (Versão 185)



3. Instalando Webcam



Um dos grandes problemas do Linux é a falta de drivers para webcams. Contudo o Kubuntu 9.10 adicionou diversos drivers desenvolvidos pela comunidade de software livre. Desta forma a maior parte das câmeras funciona Plug-In Play.



Nas versões anteriores e outras distribuições o procedimento de instalação da câmera exige maior conhecimento do sistema operacional. Um dos grandes problemas está relacionado com a biblioteca do pipeline de vídeo a V4L que foi totalmente substituída pela V4L2, deixando diversas aplicações que utilizam webcam sem funcionar.



Para testar a webcam é necessária a instalação do software Cheese. Este pode ser instalado pelo Gerenciador de Pacotes Kpackage Kit ou pelo terminal com o seguinte comando:



$ sudo apt-get install cheese



Aqui deve-se testar se o seu vídeo está funcionando. Caso não esteja, no Adendo encontram-se diversas maneiras de resolver o problema com a webcam.



4. Instalando dependências:



As dependências podem ser instaladas via terminal ou via o Kpackage Kit. Utilizando o Kpackage Kit deve-se digitar os seguintes nomes das bibliotecas e selecionar todas as bibliotecas relacionadas.

· glut

· openGL

· blas

· lapack

· libgfortran

· gfortran

· ncurses

· libdc1394

· libreadline

· libtiff

· libjpeg

· libpng

· fltk

· xorg


Neste ponto deve-se reiniciar a máquina.