TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E...

217
TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADA

Transcript of TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E...

Page 1: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

TENDÊNCIAS E TÉCNICAS EMREALIDADE VIRTUAL E

AUMENTADA

Page 2: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

Av. Bento Gonçalves, 9500 - Setor 4 - Prédio 43.412 - Sala 219 - Bairro AgronomiaCEP 91.509-900 - Porto Alegre - RS - Tel. (51) 3308-6835 - Fax (51) 3308-7142

Home: www.sbc.org.br - E-mail: [email protected]

 

Paulo Roberto Freire Cunha (UFPE)Presidente

Lisandro Zambenedetti Granville (UFRGS)Vice-Presidente

Renata de Matos Galante (UFRGS)Diretor Administrativo

Carlos André Guimarães Ferraz (UFPE)Diretor de Finanças

Altigran Soares da Silva (UFAM)Diretor de Eventos e Comissões Especiais

Mirella Moura Moro (UFMG)Diretora de Educação

José Viterbo Filho (UFF)Diretora de Publicações

Claudia Lage Rebello da Motta (UFRJ)Diretora de Planejamento e Programas Especiais

Marcelo Duduchi Feitosa (CEETEPS)Diretora de Secretarias RegionaisEdson Norberto Cáceres (UFMS)Diretor de Divulgação e MarketingRoberto da Silva Bigonha (UFMG)

Diretor de Relações ProfissionaisRicardo de Oliveira Anido (UNICAMP)

Diretor de Competições CientíficasRaimundo José de Araújo Macêdo (UFBA)

Diretor de Cooperação com Sociedades CientíficasAvelino Francisco Zorzo (PUC-RS)Diretor de Articulação de Empresas

Page 3: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

 

Publicação anual | Salvador | v. 4 | p. 1-216 | 2014

Tendências e Técnicas em Realidade Virtual e Aumentada

Page 4: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

TODOS OS DIREITOS RESERVADOS: Permitida a reprodução total ou parcial desde que citada a fonte (Tendências e Técnicas em Realidade Virtual e Aumentada, Porto Alegre-RS, Brasil). Na ausência da indicação da fonte ou expressa autorização da Instituição, é proibida a sua reprodução total ou parcial, por qualquer meio ou processo, especialmente por sistemas gráficos, microfílmicos, fotográficos, reprográficos, fonográficos ou videográficos. Vedada a memorização e/ou recuperação total ou parcial, bem como a inclusão de quaisquer partes desta obra em qualquer sistema de processamento de dados. Essas proibições aplicam-se também às características da obra e à sua editoração. A violação dos direitos autorais é punível como crime (art. 184 e §§, do Código Penal, cf. Lei no. 6.895, de 17-12-1980) com pena de prisão e multa, conjuntamente com busca e apreensão e indenizações diversas (arts. 122, 123, 124 e 126, da Lei no. 5.988 de 14-12-1973, Lei dos Direitos Autorais).

Tendências e Técnicas em Realidade Virtual e Aumentada. Sociedade Brasileira de Computação - SBC. -- (2011 --) - .

Porto Alegre, RS: a Instituição, 2010- .v. 4

AnualISSN 2177-6776

1. Realidade Virtual, Realidade Aumentada I. Trevisan, Daniela Gorski. II. Costa, Rosa E. Moreira da. III. Rieder, Rafael. IV. Pinho, Marcio Sarroglia.

CDD 006

Este periódico foi especialmente editado, em tiragem limitada, a partir de conteúdos de-senvolvidos para os minicursos apresentados durante o XVI Simpósio de Realidade Virtual e Aumentada, realizado em Salvador, de 12 a 15 de Maio de 2014, promovido pela Socie-dade Brasileira de Computação e organizado pelo Centro Integrado de Manufatura e Tec-nologia, SENAI Unidade CIMATEC.

Salvador, BA2014

Índice para catálogo sistemático:1. Realidade Virtual e Aumentada: Ciência da Computação 006

Dados Internacionais de Catalogação na Publicação (CIP)

EDITORESDaniela Gorski TrevisanRosa Maria E. Moreira da CostaRafael RiederMarcio Sarroglia Pinho

PRODUçãO GRáFICACanal 6 Projetos Editoriais - www.canal6.com.br

Page 5: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

5

Sumário

Prefácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem . . .9Calebe de Paula Bianchini e Luciano Silva

Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde . . . . . . 33Alexandre Fonseca Brandão, Gustavo Jordan Castro Brasil, Diego Roberto Colombo Dias, Sara Regina Meira Almeida, Gabriela Castellano e Luis Carlos Trevelin

Realidade Aumentada e suas Aplicações na Área de Saúde . . . . . . . . . . . . . . . . . . . 49Ezequiel Roberto Zorzal e Fátima de Lourdes dos Santos Nunes

Interfaces de Controle em Sistemas de Realidade Virtual . . . . . . . . . . . . . . . . . . . . . . 63Alexandre Cardoso, Edgard Lamounier Júnior, Alexandre Carvalho Silva e Gesmar de Paula Santos Júnior

Projeção Holográfica em Ambientes de Realidade Virtual . . . . . . . . . . . . . . . . . . . . . . 69Manoela Rogofski Brum e Rafael Rieder

Computação Sêntica: Fundamentos e Aplicações em RV/RA . . . . . . . . . . . . . . . . . . . 82Luciano Silva

Construção de aplicações de Realidade Cruzada Projetiva utilizando openFrameworks e ARDUINO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Christopher Shneider Cerqueira e Claudio Kirner

Page 6: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

6

Interação Gestual em Ambientes Tridimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Maria Amelia Eliseo e Darlan Silva Alves Delmondes

O Uso de Dispositivos Móveis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Ilana de Almeida Souza-Concilio e Beatriz de Almeida Pacheco\

Development of Interactive Applications for Google Glass . . . . . . . . . . . . . . . . . . . . 167Caio Novaes Lins, João Marcelo Teixeira, Rafael Alves Roberto e Veronica Teichrieb

Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada . . 189Luciano Silva

Page 7: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

7

Prefácio

O Symposium on Virtual and Augmented Reality (SVR) acontece anualmente e é um evento pro-movido pela Sociedade Brasileira de Computação (SBC). Este evento é composto por várias atividades, dentre as quais se destacam os Minicursos e o Pré-simpósio.

Os minicursos visam oferecer aos participantes do SVR um conjunto de informações atualizadas sobre aspectos tecnológicos, humanos e científicos na área de Realidade Virtual e Aumentada. Já o Pré-simpósio apresenta tutoriais condensados sobre temas introdutórios e discute as principais pers-pectivas da área.

As propostas recebidas foram avaliadas por um comitê editorial, que avaliou e selecionou aquelas com temas básicos, intermediários e avançados, de modo a fomentar as discussões dos trabalhos que serão apresentados e discutidos durante o SVR 2014.

Este número da Revista Tendências e Técnicas em Realidade Virtual e Aumentada reúne os textos de apoio preparados de forma didática, pelos autores dos minicursos e do pré-simpósio, visando a dis-seminação do conhecimento e a expansão das pesquisas na área.

Agradecemos à comunidade pelo interesse, enviando propostas e compartilhando conhecimentos e, em especial, a todos aqueles que colaboraram na edição deste número da revista.

Daniela Gorski TrevisanRosa Maria E. Moreira da Costa

Rafael RiederMárcio Sarroglia Pinho

Page 8: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,
Page 9: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

9

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem

Calebe de Paula Bianchini Luciano Silva

Abstract

Augmented Reality Systems (AR) that allow mobility of sensing systems (cameras, GPS, accelerometers) are called AR mobile systems. Even with the growth of computational power and storage of mobile devi-ces, many AR operations still need to be performed in systems with higher processing and storage capaci-ties. Thus, this chapter aims to present the basis of cloud computing, via cloudlets, as a feasible environ-ment for development of mobile AR applications that require distribution processing.

Keywords: cloudlets, Mobile AR, AR, Cloud Computing, Distributed Systems.

Resumo

Sistemas de Realidade Aumentada (RA) que permitem mobilidade dos sistemas de sensoriamento (câ-meras, GPS, acelerômetros) são chamados de sistemas de RA móvel. Mesmo com o crescimento do poder computacional e de armazenamento dos dispositivos móveis, muitas operações de RA ainda precisam ser efetuadas em sistemas com maiores capacidades de processamento e armazenamento. Assim, este capítulo tem como objetivo apresentar as bases da Computação em Nuvem, via cloudlets, como ambiente viável para desenvolvimento de aplicações de RA móvel que necessitem de distribuição de processamento.

Palavras-chave: cloudlets, RA móvel, RA, Computação em Nuvem, Sistemas Distribuídos.

9

Page 10: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

10

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

1.1 Introdução

Sistemas de RA móvel permitem a mobilidade dos seus sensores. Muitas vezes, mesmo com esta mobilidade e devido ao poder de processamento e armazenamento dos dispositivos que dão suporte aos sensores, ainda é necessário realizar operações mais complexas em estações com maiores capaci-dades de processamento e armazenamento. Além disto, espera-se que estes serviços extra-dispositivo estejam disponíveis de forma pervasiva, ou seja, em todo lugar.

Dentro deste contexto, a Computação em Nuvem apresenta-se como um ambiente muito viá-vel para suporte à distribuição e pervasividade de processamento e armazenamento. Neste ambiente, processamento e armazenamento essenciais ficam vinculados aos dispositivos móveis e, tarefas mais complexas, em nuvens locais e públicas.

Na Computação em Nuvem, existe uma forma de ser organizar o acesso aos serviços por uma arquitetura conhecida como cloudlet. Numa cloudlet, tem-se um agente de integração, que disponi-biliza facilidades de comunicação e invocação de serviços. Recentemente, esta forma de organização permitiu levar aplicações de RA, com necessidades de distribuição de processamento e armazena-mento, para nuvens.

Com o objetivo de introduzir o tema a alunos, professores e pesquisadores de RA, este capítulo apresenta as bases essenciais para integração de aplicações de RA com Computação em Nuvem, espe-cificamente sob a arquitetura de cloudlets. A apresentação está organizada da seguinte forma:

• inicialmente, são apresentados os principais conceitos de Computação em Nuvem, mostran-do as suas várias formas de implementação;

• em seguida, são revisados os conceitos fundamentais de RA e são apresentados os fundamen-tos de RA móvel;

• finalmente, através de um exemplo concreto, é mostrada como é possível a integração dispo-sitivos móveis com sistemas de nuvem, tendo como mediador uma cloudlet.

Ao final do texto, são sugeridas algumas referencias bibliográficas que aprofundam os temas tra-tados neste capítulo.

1.2 Fundamentos em Computação em Nuvem

1.2.1 Modelo de Computação em Nuvem

O modelo de Computação em Nuvem, como é definido e apresentado nos dias atuais, só foi possí-vel devido à evolução natural da Computação e da Internet. Na verdade, porém, esse conceito remonta os primórdios da própria Internet, quando Leonard Kleinrock, da ARPANET, comentou que um mo-delo de computação utilitária (utility computing) surgiria com o amadurecimento e sofisticação das redes de computadores de forma semelhante às redes de água, de energia elétrica, de telefone, dentre outras commodities já consolidadas e de uso pessoal (Buyya, 2013).

Page 11: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

11

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Dessa forma, na Computação em Nuvem, os usuários podem fazer uso dos serviços disponíveis sem precisarem considerar a localização de onde esses provedores de serviços se encontram. Além disso, um dos princípios desse modelo considera que o usuário paga apenas pelo serviço consumido, ou seja, pay-per-use.

Considerando que esse modelo está influenciando toda a Computação, fica nítido perceber seus resultados no projeto de sistemas computacionais, no desenvolvimento de aplicações, na entrega de soluções e na execução de softwares. De forma mais geral, todas as áreas que são regidas por qualquer tipo de serviço, não somente software, mas também capacidade de processamento, storage, redes de computadores, e até mesmo infraestrutura, podem ser construídas e oferecidas como Computação em Nuvem. A Figura 1 apresenta uma visão geral da Computação em Nuvem, representando a interconec-tividade entre diversos dispositivos.

Figura 1. Visão geral da Computação em Nuvem. Fonte: (Lisboa, 2014).

Em função da possibilidade de abstração que o termo Computação em Nuvem possui, perceptível na imagem da Figura 1, esse termo tem sido usado para diversas situações no mundo de TI, permitindo uma mistura de tecnologias, serviços e conceitos. Apesar do símbolo de uma Nuvem já ser utilizado há um bom tempo para representar uma rede de computadores, na Computação em Nuvem tem um forte apelo à centralidade da Internet.

Assim, diversas definições têm sido utilizadas para a Computação em Nuvem, sendo que algumas das principais são apresentas a seguir:

• Segundo (NIST, 2011), “a computação em nuvem é um modelo que permite uma rede de acesso, de forma ubíqua e conveniente, à um conjunto de recursos computacionais (como, por exemplo, redes de computadores, servidores, storages, aplicações e serviços) que são ra-

Page 12: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

12

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

pidamente provisionados com o menor esforço possível ou a menor quantidade de interação com um provedor.”1

• Segundo (Hwang, 2011), “computação em nuvem é um paradigma de computação de alta vazão (high-throughput) em que uma infraestrutura fornece diversos serviços por meio de grandes datacenters. Esse modelo permite que usuários compartilhem recursos de qualquer lugar, a qualquer momento, por meio de dispositivos interconectados.”2

• Segundo (Armbrust, 2009), “computação em nuvem se refere tanto aos aplicativos disponí-veis como serviço na Internet quanto o hardware e a infraestrutura de software básico nos datacenters que oferecem esse serviço.”3

• Segundo (Gartner, 2014): “computação em nuvem é um estilo de computação no qual esca-labilidade e elasticidade de recursos de TI são entregues como serviço para clientes externos por meio da Internet.” 4

• Segundo (Buyya, 2013), “computação em nuvem é um tipo de sistema paralelo e distribuído que consiste de uma rede de computadores interconectados e que são dinamicamente provi-sionados, apresentados como um ou mais recursos computacionais unificados com acordos de nível de serviço estabelecidos entre os clientes e provedores.”5

• Segundo (Erl, 2013), “computação em nuvem é uma forma especializada de computação dis-tribuída que introduz modelos utilitários para prover recursos remotos, de forma escalável e mensurável”.6

1 Tradução literal da definição apresentada em (NIST, 2011): “Cloud computing is a model for en-abling ubiquitous, convenient, on-demand network access to a shared pool of configurable com-puting resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”

2 Tradução literal da definição apresentada em (Hwang, 2011): “Cloud computing is a high-through-put computing (HTC) paradigm whereby the infrastructure provides the services through a large data center or server farms. The cloud computing model enables users to share access to resources from anywhere at any time through their connected devices.”

3 Tradução literal da definição apresentada em (Armbrust, 2009): “Cloud Computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services.”

4 Tradução literal da definição apresentada em (Gartner, 2014): “Gartner defines cloud computing as a style of computing in which scalable and elastic IT-enabled capabilities are delivered as a service using Internet technologies.”

5 Tradução literal da definição apresentada em (Buyya, 2013): “A cloud is a type of parallel and distrib-uted system consisting of a collection of interconnected and virtualized computers that are dynam-ically provisioned and presented as one or more unified computing resources based on service-level agreements established through negotiation between the service provider and consumers”.

6 Tradução literal da definição apresentada em (Erl, 2013): “Cloud computing is a specialized form of distributed computing that introduces utilization models for remotely provisioning scalable and measured resources.”

Page 13: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

13

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

É possível perceber que, em função dessa quantidade de definições, o termo Computação em Nuvem ainda não está totalmente estabelecido. Alguns autores tem se esforçado para relatar o estado-da-arte da Computação em Nuvem até então, visando não só encontrar algum ponto em comum nas definições existentes, mas também estabelecer algum critério comparativo entre elas (Vaquero, 2008) (Zhang, 2010). Pode-se afirmar que, dentre as definições atuais, aquela apresentada pelo NIST (2001) é mais bem aceita pela comunidade. Assim, neste trabalho, a definição do NIST (2011) é mais apropriado para estudo da Computação em Nuvem.

As principais características da Computação em Nuvem são aquelas que refletem exatamente as mudanças que esse novo paradigma traz. Essas características podem ser divididas em cinco grandes categorias:

• Autosserviço sobdemanda: é a possibilidade de o cliente fazer suas próprias escolhas de recursos computacionais, como servidores e redes, em diversos provedores. Conforme essas escolhas, a Computação em Nuvem é reconfigurada de acordo com sua expectativa e, dessa forma, passa a atender melhor suas necessidades. Além disso, a interação com o cliente se dá de forma transparente e automática, sem a necessidade de intervenção humana.

• Extensoacessoporrede: os recursos computacionais utilizados na Computação em Nuvem podem ser acessados e configurados por meio de protocolos e mecanismos padronizados, por meio dos diversos tipos de dispositivos, como tablets, celulares e computadores. Questões de heterogeneidade não devem ser percebidas no acesso a esses recursos computacionais, ou seja, plataformas thin ou thick client, linguagens de programação e/ou sistema operacionais não devem interferir no acesso e na qualidade.

• Agrupamentoderecursos: os provedores de recursos computacionais para a Computação em Nuvem devem atender diversos clientes (mult-tenant model) gerenciando os recursos físicos ou virtuais dinamicamente para que possam ser alocados e realocados conforme a demanda do cliente. Os clientes também não devem ter a exata noção de localização dos re-cursos, mas possuir um grau natural de abstração, como estado, pais, datacenter, etc.

• Elasticidade: os recursos podem aumentar e diminuir elasticamente. Em alguns casos, essa elasticidade pode ser feita de forma automática, visando um aumento rápido na escalabilida-de, ou uma diminuição, conforme demanda. Para os clientes, a visão de escalabilidade per-mite visualizar recursos de forma infinita e disponível a qualquer momento. É neste contexto que uma camada abstrata e virtualizada permite diversas formas de elasticidade.

• MediçãodeServiço:sistemas de Computação em Nuvem devem automaticamente controlar e otimizar o uso dos recursos por meio de técnicas de medição. Essas medidas representam um grau de abstração apropriado tanto para os clientes quanto para os provedores (largura de branda, grau de processamento, tamanho de armazenamento, etc). Assim, os recursos podem ser monitorados, controlador e relatados em um grau de transparência para os dois lados envolvidos: cliente e provedor. SLA (Service Level Agreement) é uma forma natural de garantir que os recursos possuem certo grau de qualidade (QoS).

Outra forma de analisar a Computação em Nuvem é em relação à implantação da “Nuvem”. Ou seja, quem são os responsáveis pela administração e quais são os limites estabelecidos sobre a infraes-

Page 14: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

14

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

trutura permitem tipificar uma Nuvem. Nesse caso é possível analisar como se dá a relação entre as diversas Nuvens, entre os diversos provedores. Sabe-se, porém, que cada provedor possui sua forma única de administrar a infraestrutura e os serviços disponíveis. A Figura 2 apresenta uma junção de tipos diferentes de Nuvem, destacando a relação entre os diversos provedores por meio da Internet.

Figura 2. Limites administrativos: nuvem pública, privada e híbrida. Fonte: (Hwang, 2011)

De forma geral, os tipos de Nuvem são:• Pública: esta Nuvem está disponível para uso do público em geral. A Nuvem pode pertencer

a empresas, governos ou universidade, ou uma combinação deles, que gerenciam e disponi-bilizam os recursos e serviços para serem utilizados por qualquer usuário. Cada provedor de Nuvem Pública possui sua política administrativa e de garantias de serviço, e pode oferecer mecanismos diferenciados de pay-per-use. Neste caso, é muito comum o uso de padrões já estabelecidos de mercado para o oferecimento de recursos e serviços.

• Privada: uma Nuvem privada só está disponível para uso de uma única empresa, sendo esta responsável pela administração, gerenciamento e disponibilização dos serviços. Normalmen-te é implantando em uma intranet (mas não é exclusivo), e permite que seus usuários tenham acesso a uma Nuvem de forma rápida e exclusiva. Nesse caso, imagina-se que uma Nuvem Privada ofereça serviços mais eficientes, ágeis, úteis e simples, com o custo de utilizar padrões específicos da própria empresa. Da mesma forma, outros mecanismos de faturamento sobre os serviços podem ser utilizados.

Page 15: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

15

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

• Comunitária: uma Nuvem comunitária considera que, dado algum interesse em comum, como missão, segurança, requisitos, valores, etc., usuários específicos de diversas organi-zações façam uso de seus recursos e serviços. Nesse caso, esta Nuvem pode ser proprietária a uma ou mais organizações, sendo estas responsáveis pelo seu gerenciamento, controle e administração. Por envolver diversas organizações, as políticas administrativas seguem o in-teresse comum estabelecido e cada organização poderá oferecer recursos e serviços que con-tribuam para a Nuvem Comunitária. Neste caso, mecanismos específicos de faturamento de-vem ser estabelecidos para que a Nuvem não tenha seus recursos e serviços comprometidos.

• Híbrida:esta Nuvem é formada pela combinação de, pelo menos, duas Nuvens dos outros tipos. Apesar dessa integração, cada Nuvem ainda é única em sua essência e mantém suas propriedades. Elas são integradas por mecanismos padronizados ou proprietários que per-mite portabilidade de dados, serviços e recursos. Nessa implantação, as políticas de geren-ciamento, controle e administração podem ser utilizadas para que seja escolhido o que há de melhor cada tipo de Nuvem.

Uma Nuvem deve ser organizada com uma pilha de hardwares e softwares caracterizando sua arquitetura. Cada arquitetura define os serviços que podem ser oferecidos por uma Nuvem. A Figura 3 apresenta a organização em pilha de uma Nuvem com seus possíveis tipos de serviços.

Figura 3. Arquitetura de uma Nuvem. Fonte: Adaptado de (Buyya, 2013)

Page 16: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

16

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

A primeira camada, Cloud Resources, representa os recursos iniciais necessários para uma Nuvem: a infraestrutura física de hardware. A próxima, Cloud Hosting Platforms, é um conjunto de softwares de administração, gerenciamento e controle para as aplicações que devem funcionar nos melhores re-cursos disponíveis. Virtualização e máquinas virtuais são as técnicas mais utilizadas nessa camada. A combinação destas duas camadas em uma arquitetura é chamada de Infrastructure-as-a-Service (IaaS).

A próxima camada, Cloud Programming Environment and Tools, oferece ambientes e ferramen-tas para o desenvolvimento de serviços para uma Nuvem. Assim, usuários podem desenvolver suas próprias aplicações utilizando APIs e middlewares específicas. Por isso, a arquitetura que utiliza essa camada é conhecida como Platform-as-a-Service (PaaS).

Por fim, a última camada, Cloud Applications, representa todos os serviços e aplicações disponí-veis para usuários. Normalmente, nesta camada estão as aplicações para web. Esta arquitetura é melhor conhecida como Software-as-a-Service (SaaS).

Além dessas definições de arquitetura, alguns outros autores ainda apresentam outras categorias, como pode ser observado em (Youseff, 2008) e (Linthicum, 2014).

1.2.2 Infrastructure-as-a-Service (IaaS)

A intenção de um IaaS é fornecer recursos de processamento, storage, rede, ou qualquer outro recurso computacional de hardware ou infraestrutura física de tal forma que um consumidor (ou usuá-rio) possa utilizar esses recursos para implantar qualquer tipo de software, incluindo sistemas opera-cionais ou aplicações.

Esse é o formato mais comum da Computação em Nuvem. Os provedores conseguem entregar as mais diversas e complexas configurações desses recursos. Para isso, virtualização é a tecnologia mais utilizada.

Virtualização é um termo guarda-chuva que representa um grau de abstração de um ambien-te computacional. A intenção principal da virtualização é permitir o compartilhamento de recursos computacionais, como CPU, disco memória, ou, até mesmo, bibliotecas e softwares. Além do com-partilhamento, existem outras principais características de ambientes virtualizados, como agregação, emulador e isolamento. No caso de IaaS, virtualização normalmente é utilizado para representar a abstração de um hardware.

Máquinas virtuais (VM – virtual machines) são as unidades básicas mais comum de um provedor de IaaS. É possível configurar quantidade de processadores, tamanho de memória e de disco. Ainda é possível utilizar imagens de VM previamente configurada para organizar uma Nuvem: desde MVs com apenas o sistema operacionais, até mais elaboradas com servidores web e LAMP7. As soluções utilizadas para essa camada de virtualização permitem balanceamento, isolamento, área de segurança restrita e ajustes nas VMs.

7 LAMP é um acrônimo para Linux-Apache-MySQL-PHP, uma infraestrutura preparada para execu-tar aplicações em PHP em um servidor Apache, com banco de dados MySQL, em um sistema opera-cional Linux.

Page 17: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

17

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Na perspectiva do consumidor (o usuário), há um melhor aproveitamento da infraestrutura, dimi-nuição de custos de manutenção e administração e no capital investido em infraestrutura.

A Figura 4 descreve os componentes básicos de uma infraestrutura de IaaS. No topo, a camada oferece serviços por meio de interfaces gráficas (normalmente, Web 2.0) para o usuário. Nesta camada também pode estar serviços que, por meio de uma API, outras aplicações podem se integrar com o provedor de IaaS.

Figura 4. Modelo de referência da um IaaS. Fonte: (Buyya, 2013)

Na camada central, estão as disponíveis as principais características de uma solução IaaS. É nesta camada que o gerenciamento de VMs, principal recurso desta arquitetura, é realizado por meio do componente de escalonamento. Este, por sua vez, aloca a execução das VMs nos recursos disponíveis e interage com outros componentes dessa camada para a combinação de novas tarefas: contabilização e precificação, monitoramento, reserva, QoS/SLA, gerenciamento de imagens, gerenciamento de VMs ativas, e interação com componentes de terceiros.

Na camada mais baixa está a infraestrutura física, que podem ser totalmente heterogênea. É esta camada que deve ser construída para atender as necessidades e objetivos da Nuvem. Assim, essa in-fraestrutura pode ser formada por servidores, cluster, supercomputadores ou todos esses agregados.

Os fornecedores de IaaS mais conhecidos são Amazon, GoGrid, Joyent, Rightscale, Terremark, Rackspace, ElasticHosts, e Flexiscale.

Page 18: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

18

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

1.2.3 Platform-as-a-Service (PaaS)

Um provedor de PaaS deve permitir que um consumidor (ou usuário) seja capaz de implantar nes-sa arquitetura uma aplicação adquirida ou criada em linguagens de programação, bibliotecas, plata-formas ou ferramentas compatíveis com o provedor. Esse usuário não controla ou gerencia as camadas inferiores da Nuvem, como rede, servidores, sistemas operacionais ou storages, mas tem controle sobre a aplicação e possíveis configurações da aplicação.

A Figura 5 apresenta as principais características de uma arquitetura PaaS. A camada interme-diária possui as principais funcionalidades que basicamente está centrada no ambiente de execução para as aplicações. Esta mesma camada não deve expor qualquer característica ou serviço da camada inferior, ou seja, da infraestrutura, para qualquer aplicação implantada. Dessa forma, a infraestrutura pode ser física ou uma arquitetura IaaS, proprietária ou não.

Figura 5. Modelo de referência de um PaaS. Fonte: (Buyya 2013)

É nesta camada intermediária que estão os processos automatizados de implantação real da apli-cação para a infraestrutura, bem como do gerenciamento do balanceamento de carga e controle das bases de dados. Além disso, deve gerenciar a aplicação com base nas políticas estabelecidas pelo pró-prio usuário (configurações da aplicação). Também é reponsabilidade desta camada gerenciar e escalar

Page 19: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

19

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

os recursos alocados para a aplicação sob demanda, possivelmente automaticamente, de acordo com as necessidades do usuário.

Um provedor de PaaS deve oferecer interfaces de interação para o usuário, tanto para o desenvolvi-mento da aplicação quanto para sua implantação. Essa interface de interação pode ser disponibilizada por meio de interface web, ou até mesmo por meio de linguagens de programação, APIs e bibliotecas.

Além disso, a aplicação desenvolvida para uma PaaS específica segue o modelo de desenvolvimen-to definidos pelo provedor. Algumas delas utilizam ambiente para linguagens de 4ª geração, progra-mação visual ou ambiente de prototipação rápida (usando componentes previamente disponíveis no ambiente). Outros provedores oferecem uma representação orientada a objetos e APIs específicas para a criação de aplicações. Dessa forma, os desenvolvedores tem uma linguagem de programação clássica, como Java, Python, C#, com algumas restrições para garantir escalabilidade e segurança.

De forma geral, uma arquitetura PaaS deve oferecer:• Frameworkdeexecução:que garante a execução da aplicação do usuário;• Abstração: permitindo a implantação e gerenciamento da aplicações na Nuvem;• Automatização: implantar, gerenciar, e escalar a aplicação na infraestrutura física;• ServiçosdeNuvem: fornecer serviços e APIs, ou similares, facilitando a criação de aplicações

elásticas e escaláveis.

Nesse sentido, existem provedores totalmente proprietários, como o Force.com; provedores que construíram sua arquitetura PaaS sobre padrões da indústria, como o Google AppEngine e o Micro-soft Azure, mas ainda assim permanecendo parte da solução proprietária; e provedores que seguiram padrões abertos, facilitando a migração das aplicações, como Appistry Cloud IQ Platform, Heroku, e Engine Yard.

Além destes, existem também outros provedores conhecidos de PaaS, como o Longjump, App-Sale, Joyent Smart, Platform, GigaSpaces XAP, DataSynapse, Manjrasoft Aneka, Apprenda, SaaSGrid e DataGrid.

1.2.4 Software-as-a-Service (SaaS)

Um provedor de SaaS deve ser capaz de fornecer softwares deste próprio provedor, executados em uma Nuvem, para um consumidor (ou usuário). Esse software pode ser acessado pelos mais diversos dispositivos e clientes, como celulares e browsers, dentre outros. O usuário, por sua vez, não controla a infraestrutura da Nuvem, nem mesmo a aplicação ou sua execução. No máximo, poderia ter acesso a alguns ajustes de seu perfil ou configurações pessoais.

O conceito de SaaS não é tão recente assim, surgindo na década de 90. Sua aceitação se consolidou em 2001, quando foi oficialmente padronizado e inicialmente definido. Naquele tempo, suas principais características se assemelham muito ao conceito de hoje:

• O produto é vendido para o consumidor como acesso ao aplicativo;• O software é gerenciado por uma empresa centralizadora;• O serviço é vendido como “um-para-muitos”;• O serviço é entregue conforme regras de contrato, conforme prometido.

Page 20: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

20

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

De forma geral, SaaS é um modelo de entrega de software que provê acesso a aplicativos por meio da Internet e de uma interface web. Esse modelo é atraente para os usuários, inclusive em função das customizações individuais. É nesse formato, de acesso a um aplicativo por diferentes tipos de usuários, que se consolidou o conceito de “um-para-muitos”. Exemplos de software de CRM8 e de ERP9, que são utilizados por diversas empresas, podem ser encontrados nesse modelo.

Outra característica de SaaS é que os usuários não precisam fazer a implantação e/ou instalação do software. O acesso é centralizado em um portal e, dadas as credenciais do usuário, ele utiliza o aplicativo. Dessa forma, mediante contrato de faturamento, o usuário é cobrado conforme o uso dos aplicativos e, dependendo do caso, há possíveis alterações e customizações do software.

Outra consequência desse modelo é a centralização no provedor do software. Os esforços são todos concentrados no gerenciamento e manutenção da infraestrutura da arquitetura SaaS, assim como na manutenção e na atualização do serviço oferecido, otimizando os recursos e distribuindo os custos pelos diversos consumidores. Para o consumidor, esse custo é uma mínima fração da taxa de uso do serviço.

Considerando a pilha de hardware e software para uma arquitetura em Nuvem (apresentada na Figura 3), a camada SaaS está no topo. Na verdade, essa camada não só representa SaaS, mas também o conceito de “tudo-como-serviço” (Everything-as-a-Service), ou XaaS. Assim, alguns benefícios dessa arquitetura se destacam:

• Redução de custo do software e TCO são evidentes;• Melhora no nível do serviço;• Desenvolvimento rápido;• Aplicações totalmente reconfiguráveis;• Integração de aplicações e dados (mesmos que rudimentar);• Assinatura de serviço e pagamento sob demanda.

É nessa perspectiva que o SalesForce.com se tornou o exemplo de sucesso mais conhecido de SaaS. Sobre sua plataforma, o Force.com, uma arquitetura PaaS, foi desenvolvido um serviço completo de CRM. Além deste, existem outros serviços disponíveis, como o AppExchange, no qual é possível pes-quisa, publicar e integrar outros serviços e aplicações aos existentes, tornando o SalesForce.com uma ferramenta extensível e personalizável.

De forma semelhante, existem outros provedores de serviços relacionados ao gerenciamento em-presarial e de relacionamento ao cliente, como o NetSuite e RigthNow. Estes dois permitem personali-zação da aplicação final, de acordo com as necessidades do consumidor/cliente.

Um outro tipo de SaaS existente são aqueles relacionados à redes sociais. Nesse segmento se des-tacam o Facebook e o LinkedIn, os quais permitem a adição de plug-ins e integração completa ao perfil dos usuários desses sistemas.

8 CRM, ou Customer Relationship Management, é um software que simplifica o processo de geren-ciamento de usuários e ajuda na identificação de estratégias de venda.

9 ERP, ou Enterprise Resource Planning, é um software que permite uma visualização integrada da empresa na tentativa de facilitar seu gerenciamento e melhorar os fluxos de informação entre a pers-pectiva funcional e os recursos.

Page 21: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

21

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Por fim, existem também serviços de automação de escritório, como o Box.net, Google Documents, Zoho Office e Microsoft Office 365. Estes oferecem aplicativos de edição de texto, planilhas eletrônicas e construção de apresentações totalmente desenvolvidas para a Internet. Dessa forma, esses documentos podem ser gerenciados e modificados a partir de qualquer dispositivo, além de permitir que sejam compartilhados entre diversos usuários.

1.3 Realidade Aumentada Móvel

1.3.1 Sistemas de Realidade Aumentada

Realidade Aumentada (RA) pode ser vista como a integração de informações virtuais (modelos bi e tridimensionais, imagens, áudio, vídeo, dentre outros) a visualizações do mundo real. Azuma (1997) define RA como um sistema que:

• combina elementos virtuais com o ambiente real• é interativa e tem processamento em tempo real• é concebida em três dimensões

A Figura 6 ilustra um sistema típico de RA onde, a partir de uma imagem captada por uma câme-ra, um marcador (símbolo) é substituído por um objeto tridimensional.

Figura 6. Sistema típico de RA. Fonte: http://homes.dcc.ufba.br/~caiosba/mestrado

Page 22: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

22

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Embora existam sistemas de RA não-baseados em marcadores, o uso destes elementos ainda é bastante comum. Existem alguns marcadores bem conhecidos como, por exemplo, o marcador Hiro mostrado na Figura 7:

Figura 7. Marcador Hiro Fonte: www.artoolworks.com

O processo de substituição do marcador por um elem ento virtual é conhecido como fusão. Na Figura 8, tem-se um exemplo de fusão com um modelo tridimensional:

Figura 8. Fusão do marcador Hiro com um objeto tridimensional Fonte: http://homes.dcc.ufba.br/~caiosba/mestrado

Page 23: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

23

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Marcadores mais sofisticados podem envolver codificação como, por exemplo, um QR-Code (Figura 9).

Figura 9. QR-Code Fonte: www.onvert.com

O código presente em um QR-code pode ser convertido em textos interativos, endereços WEB, localizações geo-referenciadas ou mesmo chamadas para programas. A Figura 10 ilustra um exemplo de um QR-code convertido para um post no programa Twitter:

Figura 10. Conversão de um QR-code para uma chamada de programa Fonte: http://www.maximumpc.com/files/u46168/toxin20.jpg

Finalmente, um sistema de RA não precisa utilizar necessariamente um marcador (markless). Nesta visão diferenciada, utiliza-se padrões geométricos bem-conhecidos (linhas, polígonos, texturas, dentre outros) como suporte para fusão.

Page 24: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

24

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

A Figura 11 ilustra um exemplo típico deste tipo de sistema, onde uma textura serviu como base para geração de um mapa digital de elevação:

Figura 11. Geração de modelos digitais de elevação a partir de texturas Fonte: http://www.ovelf.com/wp-content/uploads/GIS-map.png

Principalmente para sistemas de RA móvel, a não-dependência de um marcador é uma característica bastante interessante, pois permite uma exploração maior de elementos reais como suporte para fusão.

1.3.2 Realidade Aumentada Móvel

Sistemas de RA que permitem mobilidade dos sistemas de sensoriamento (câmeras, GPS, acelerô-metros) são chamados de sistemas de RA móvel. Atualmente, os sistemas de RA móvel mais represen-tativos estão localizados em smartphones e tablets, conforme exemplo da Figura 12:

Figura 12. Ambiente de RA móvel instalado em um smartphone. Fonte: http://www.mysocialagency.com

Page 25: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

25

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Uma das razões do uso crescente de sistemas de RA móvel suporta-se no crescimento do poder computacional (tanto CPU quanto GPU) e de armazenamento de dispositivos móveis como smart-phones e tablets. Além disto, várias bibliotecas e frameworks bem conhecidos como, por exemplo, a ARToolkit já possuem versões próprias para dispositivos móveis.

Além dos smartphones e tablets, também existem sistemas de AR móveis totalmente dedicados para este fim. Nesta linha, existem sistemas baseados em óculos que só realizam o processo de senso-riamento e recepção das imagens fundidas, conforme exemplo da Figura 13:

Figura 13. Sistema de sensoriamento e recepção de imagens fundidas Fonte: http://www.vuzix.com

Na arquitetura mostrada na figura acima, todo o processamento de fusão dos marcadores é rea-lizado numa estação externa, interligada por redes de comunicação sem fio com o dispositivo. Numa arquitetura contrária, alguns sistemas como o Google Glass, mostrado na Figura 14, já realizam pro-cessamentos e fazem armazenamento no próprio dispositivo:

Figura 14. Dispositivo Google Glass Fonte: http://www.google.com/glass

Page 26: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

26

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Com o advento do dispositivo Google Glass e a necessidade de se ter acesso móvel pervasivo em vários ambientes, uma arquitetura que permitisse distribuir processamento/armazenamento entre dis-positivos móveis e portais de serviços começou a se conformar. Neste contexto, o ambiente de compu-tação em nuvem revelou-se com uma alternativa bastante viável para atender a estes requisitos.

1.3.3 Ambientes de Desenvolvimento para Realidade Aumentada Móvel

Várias bibliotecas e frameworks bem conhecidos em RA convencional já possuem versões para dispositivos móveis.

A biblioteca ARToolkit (Artools, 2014), uma das mais conhecidas para desenvolvimento de RA convencional, já possui versões para os dois principais sistemas operacionais móveis: iOS e Android. A Figura 15 mostra exemplos desta biblioteca nos dois sistemas operacionais:

Figura 15. ARTookit em iOS(esquerda) e Android(direita). Fonte: http://www.artoolworks.com

Ainda para a plataforma Android, existe a biblioteca AndAR (Google Code 2014), disponibilizada sob licença GPL. A Figura 16 mostra um exemplo de uso da AndAR:

Figura 16. Exemplo de funcionamento da biblioteca AndAR Fonte: http://www.artoolworks.com

Page 27: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

27

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Para a plataforma Windows móvel (Windows Phone 8, por exemplo), existe a alternativa da biblio-teca GART (Gart, 2014). Esta biblioteca permite o desenvolvimento de aplicações de RA que precisam de suporte a georeferenciamento. A Figura 17 mostra o aplicativo Map Bings, que permite a localização de facilidades em uma cidade, construído com base na biblioteca GART:

Figura 17. Aplicativo Map Bings, produzido pela biblioteca GART Fonte: http://www.bing.com/maps/

O uso de todas as bibliotecas mostradas anteriormente requerem acesso via linguagem de progra-mação. A Artoolkit for iOS requer o uso da linguagem Objective-C, a Artoolkit for Android requer Java e, a GART, linguagens da plataforma. NET como C#. Porém, o desenvolvimento de aplicações móveis para RA pode ser simplificado através do uso de ambientes que já geram código para a aplica-ção. Nesta linha, encontra-se o ambiente Unity3D que, além de permitir o desenvolvimento visual da aplicação, ainda exporta código para diversos tipos de dispositivos móveis.

A Figura 18 mostra a extensão UART (Unity Augmented Reality Toolkit) (Gatech 2014), disponi-bilizada como um plugin para o Unity3D:

Figura 18. Toolkit UART, integrado ao ambiente Unity3D Fonte: https://research.cc.gatech.edu/uart/

Page 28: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

28

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Com o uso do UART, o desenvolvedor da aplicação somente especifica qual o marcador será utili-zado e qual será o objeto que substituirá o marcador durante o processo de fusão.

1.4 Integração entre Sistemas de Realidade Aumentada Móvel e Nuvem

1.4.1 Conceito de Cloudlet

Uma cloudlet é um elemento arquitetural, importante na convergência entre Computação Móvel e Computação em Nuvem. Ela representa o elemento intermediário em uma arquitetura de três cama-das: dispositivo móvel – cloudlet – nuvem.

Uma cloudlet pode ser vista como como um “datacenter in a box”, cujo objetivo é trazer as facili-dades de nuvens mais perto dos dispositivos móveis. Além disto, uma cloudlet pode ser vista com uma infra-estrutura local de nuvem, normalmente internalizada como uma máquina virtual. A Figura 19 ilustra um cenário possível de uso de cloudlets:

Figura 19. Cenário de uso de cloudlet. Fonte: (Satyanarayanan et al., 2009)

Neste cenário, tem-se uma infra-estrutura local de nuvem (Coffee shop), que funciona como um mediador local para serviços mais complexos de nuvem (Yahoo!). Os diversos dispositivos móveis (óculos, celular, luva e tablet) acessam localmente facilidades como geo-localização, busca, serviços de data e hora, compartilhamento de fotos e vídeos via este mediador. Isto, permite, por exemplo utilizar

Page 29: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

29

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

esquemas de cache nas cloudlets para respostas mais rápidas ou mesmo utilizar a cloudlet como uma fachada comum para acessos a diversos recursos de nuvem mais complexos.

Assim, quando se decide pelo uso de cloudlets, três pontos precisam ser bem determinados:• quais serviços estão disponíveis nos dispositivos• quais serviços estão disponíveis nas cloudlets• quais serviços estão disponíveis na nuvem

A decisão da localização dos serviços, geralmente, é determinada por requisitos de tempo. Latên-cias de redes, muitas vezes, também impõem restrições de onde os serviços podem estar localizados.

1.4.2 Exemplo de Uso de Cloudlets em RA

Para exemplificar o uso de cloudlets em RA, será utilizado o cenário descrito por Verbelen et al. (2012) e mostrado na Figura 20:

Figura 20. Serviços de tracking (esquerda) e fusão (direita) Fonte: (Verbelen et al., 2012)

Neste cenário, há cinco serviços a serem disponibilizados:• VideoSource: captura as imagens da câmera do dispositivo, gerando frames para serem ana-

lisados pelo serviço Tracker e fundidos com objetos 3D pelo serviço Renderer. • Renderer: responsável por fundir objetos 3D com frames. Os objetos são posicionados de

acordo com as posições estimadas de câmera geradas pelo serviço Tracker. • Tracker:responsável por calcular estimativas de posições de câmera, com base em um mapa

conhecido de pontos 3D gerado pelo serviço Mapper e nos frames gerados pelo serviço Vi-deoSource.

• Mapper:de tempos em tempos, o serviço Tracker envia um frame (keyframe) para que o ser-viço Mapper, que gera um um conjunto de pontos com coordenadas 3D baseado em features obtidas no frame.

• Realocalizer: quando não são encontradas features no frame, este serviço reposiciona a câ-mera para que o serviço Tracker possa continuar.

Page 30: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

30

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Object Recognizer: nos keyframes recebidos pelo serviço Mapper, um Object Recognizer tenta localizar objetos conhecidos. Quando um objeto é reconhecido, sua localização 3D é informada ao Renderer para fusão.

Os serviços VideoSource e Renderer precisam ser executados no dispositivo. Já os serviços Tracker e Relocalizer têm restrições de tempo real (< 50 ms). Os serviços Mapper e Object Recognizer não têm requisitos estritos de tempo.

Assim, estes serviços podem ser agrupados conforme mostrado na Figura 21:

Figura 21. Agrupamento de serviços de RA Fonte: (Verbelen et al., 2012)

Os serviços VideoSource e Renderer serão executados no dispositivo. Os serviços Tracker e Re-localizer serão incorporado em uma cloudlet e, Mapper e Object Recognizer, em uma infra-estrutura de nuvem.

O esquema de implantação destes três grupos é mostrado na Figura 22:

Figura 22. Implantação de serviços de RA nos dispositivos, cloudlets e nuvem Fonte: (Verbelen et al., 2012)

Page 31: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

31

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

Em cada ambiente (dispositivo, cloudlet e cloud) há um agente de comunicação, responsável pela integração entre as diversas partes. Para que a comunicação seja comum, é importante a utilização de envelopes de comunicação baseados em XML. Observe, também, que na nuvem pode-se utilizar a organização dos serviços como máquinas-virtuais (VM) e o esquema de acesso também pode ser organizado como uma cloudlet. Neste contexto, cloudlets da rede local são chamadas cloudlets ad hoc e, aquelas localizadas na nuvem, de cloudlets elásticas.

1.5 Comentários Finais

Mesmo com o aumento do poder computacional e de armazenamento dos dispositivos móveis nos últimos anos, alguns processos de RA ainda precisam estar localizados em estações com capacidade computacional e armazenamento mais potentes. Dentre deste contexto, este pequeno texto introdutó-rio teve o objetivo de apresentar a tecnologia de cloudlets como uma arquitetura viável para distribui-ção de processamento e armazenamento para aplicações de RA. Os autores esperam que ela possa ser um ponto inicial de suporte para alunos, professores e pesquisadores que se interessem por aplicações de RA distribuídas, com suporte a nuvem.

Referências

AzUMA, R.T. A Survey of Augmented Reality. Presence: Teleoperators and Virtual Environments. 6 (4), Ago 1997.

ARMBRUST, M., FOx, A., GRIFFITH, R., JOSEPH, A. D., KATz, R. H., KONwINSKI, A., LEE, G., PATTERSON, D. A., RABKIN, A., STOICA, I., and zAHARIA, M. Above the clouds: A Berkeley view of cloud computing. Tech-nical report, 2009, EECS Department, University of California, Berkeley.

BUyyA, R., VECCHIOLA, C., SELVI, S. T. Mastering Cloud Computing: Foundations and Applications Pro-gramming. New york: Morgan Kaufmann, 2013.

ERL, T., PUTTINI, R., MAHMOOD, z. Cloud Computing: Concepts, Technology & Architecture. New york: Prentice Hall, 2013.

Gatech. UART – Unity AR Toolkit. URL: https://research.cc.gatech.edu/uart/. Acessado em Março/2014.

Gart. Gart – Geo AR Toolkit. URL: http://gart.codeplex.com/. Acessado em Março/2014.

Gartner. Gartner IT Glossary - Cloud Computing. URL: http://www.gartner.com/it-glossary/cloud-computing/. Acessado em Março/2014.

Google Code. AndAR – Android Augmented Reality. URL: https://code.google.com/p/andar/. Acessado em Março/2014.

HwANG, K., DONGARRA, J., FOx, G. C. Distributed and Cloud Computing: From Parallel Processing to the Internet of Things. New york: Morgan Kaufmann, 2011.

Page 32: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

32

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 9-32, maio/2014.BiAnchini, calebe de Paula; SilVA, luciano. Sistemas de Realidade Aumentada Móvel Suportados por Computação em Nuvem.

LINTHICUM, D. Defining the Cloud Computing Framework. URL: http://cloudcomputing.sys-con.com/node/811519. Acessado em Março/2014.

LISBOA, M. Computação na Nuvem. URL: http://marcosplisboa.wordpress.com/2011/05/03/61/. Acessado em Março/2014.

NIST. The NIST Definition of Cloud Computing. NIST, 2011. URL: http://csrc.nist.gov/publications/nis-tpubs/800-145/SP800-145.pdf. Acessado em Março/2014.

SATyANARAyANAN, M., B AHL, P., CACERES, R., DAVIES, N. The Case for VM-based Cloudlets in Mobile Computing. IEEE Pervasive Computing, 8 (4), Outubro, 2009, pp. 2-11.

VAQUERO, L.M., RODERO-MERINO, L., CACERES, J., LINDNER, M. A break in the clouds: towards a cloud definition. SIGCOMM Comput. Commun. 39 (1), Dez 2008, pp. 50-55.

VERBELEN, T., SIMOENS, P., TURCK, F., DHOEDT, B. Cloudlets: Bringing the Cloud to the Mobile User. Pro-ceedings of III ACM workshop on Mobile Cloud Computing and Services (MCS’2012), Low wood Bay, Reino Unido, 2012, pp. 29-36.

yOUSEFF, L.; BUTRICO, M.; SILVA, D. Toward a Unified Ontology of Cloud Computing. Grid Computing Envi-ronments workshop GCE’08, 1 (10), Nov. 2008, pp. 12-16.

zHANG, Q,. CHENG, L., BOUTABA, R. Cloud computing: state-of-the-art and research challenges. Journal of Internet Services and Applications. 1 (1), Springer-Verlag, 2010, pp. 7-18.

Page 33: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

33

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde

Alexandre Fonseca Brandão Gustavo Jordan Castro BrasilDiego Roberto Colombo DiasSara Regina Meira Almeida

Gabriela CastellanoLuis Carlos Trevelin

Abstract

This chapter provides solutions of interaction devices integrated applications in virtual environments which support the areas of health focused on the physically active entertainment (against sedentary li-festyle) and rehabilitation of neuromuscular and musculoskeletal diseases. Virtual Reality is investigated in the context of prevention of muscle atrophy and increase of the cognitive reserve through increased motor tasks and neurostimulation of different areas of the cerebral cortex, associated with general motor control and sensory and visual stimulus.

Resumo

Este capítulo apresenta soluções de aplicações integradas a dispositivos de interação em ambientes vir-tuais para dar suporte às áreas da saúde voltadas ao entretenimento fisicamente ativo (combate ao se-dentarismo) e à reabilitação de enfermidades neuromusculares e musculoesqueléticas. A Realidade Vir-tual é explorada no contexto da prevenção de atrofia muscular e aumento da reserva cognitiva por meio do aumento das tarefas motoras e da neuroestimulação de diferentes áreas do córtex cerebral, associados ao controle motor geral e aos estímulos sensoriais e visuais.

1.1 Introdução

No cenário de crescente sedentarismo e inatividade física atual [Hallal et al., 2012; Malta e Silva, 2012; Das e Horton, 2012], a cultura e o estilo de vida são considerados estratégicos na prevenção e pro-moção da saúde. Atualmente existem tecnologias para jogos digitais que utilizam ambientes de Reali-dade Virtual (RV) que, além de ampliar alguns de nossos sistemas sensoriais, contribuem para a manu-tenção do condicionamento físico do indivíduo e possibilitam a reabilitação de pacientes com doenças neuromusculares. Esses jogos digitais podem assegurar aos usuários uma forma não-convencional

33

Page 34: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

34

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

(sem utilizar teclado e mouse) para interagir com ambientes virtuais por meio de interfaces gestuais, de forma intuitiva, fisicamente ativa e essencialmente lúdica. Assim, a utilização desta tecnologia pode colaborar no combate ao sedentarismo, proporcionando uma mudança de paradigma na interação das jovens com ambientes virtuais e incorporar técnicas específicas para reabilitação cognitiva e funcional.

Considerando a cultura e o estilo de vida como estratégias de prevenção e promoção de saúde, almejam-se atividades que recrutem grandes grupos musculares, como os músculos dos membros in-feriores, de modo que ocorra intensa circulação sanguínea e, consequente, o aumento de gasto ener-gético durante a realização de tal atividade. Um exemplo são os movimentos corporais que simulam a caminhada, foco do aplicativo GestureMaps [Brandão et al., 2013], detalhado posteriormente, o qual contempla estas exigências.

Os membros superiores, por sua vez, são extremamente solicitados para interação com interfaces gestuais e, frequentemente, atrofiados devido à menor utilização acima do nível dos ombros. Ou seja, os movimentos articulares necessários para as diversas tarefas no cotidiano dificilmente contemplam toda a amplitude de movimento desta articulação, induzindo a atrofia muscular nesta região durante o processo de senescência do indivíduo, o que torna a busca de novas técnicas de fortalecimento e rea-bilitação para o complexo articular do ombro um grande interesse social. Os aplicativos GestureChess [Dias et al., 2013], GesturePuzzle [Brasil et al., 2011] e GestureChair [Brandão et al., 2013] serão apre-sentados dentro desta perspectiva.

Este capítulo está organizado da seguinte forma: a Seção 2 apresenta o uso de aplicações de RV voltadas à saúde; a Seção 3 apresenta o uso de aplicações de RV que abrangem problemas relacionados à atividade física e à neurociência, além de destacar a Interface Natural de Usuário e o conceito de jogos voltados à reabilitação; a Seção 4 apresenta alguns dispositivos de entrada utilizados em aplicações vol-tadas à reabilitação, tais como o Kinect e algumas interfaces baseadas em estímulos cerebrais;  a Seção 5 apresenta o conjunto de aplicações Gesture’s, as quais utilizam os conceitos apresentados no decorrer deste capítulo; e a Seção 6 conclui e apresenta perspectivas para o tema.

1.2 Realidade Virtual e Aplicações nas Áreas de Saúde

A RV tem sido utilizada como meio de reabilitação e avaliação física em geral [De Mauro et al., 2010; Paolini et al., 2013; Li e Sun, 2009] de modo mais intenso ao longo dos últimos anos. Isto se deve à popularização dos consoles, os quais unem aos jogos digitais a interação por meio de gestos motores, como o sensor de reconhecimento de gestos Kinect.

Brasil e Guimarães (2011) apresentaram a aplicação GesturePuzzle, a qual destaca o cansaço físico como fator limitante ao tempo de interação do usuário com a interface não convencional baseada em ges-tos, evidenciando que um maior grau de fortalecimento da musculatura do complexo articular do ombro poderia colaborar com o tempo de interação dos usuários desta tecnologia, como as iminentes Smart TVs.

De Mauro et al. (2010) apresentaram o projeto Hyper (Hybrid Neuroposthetic and Neurorobotic devices for Functional Compensation and Rehabilitation of Motor Disorders), o qual focou no desen-volvimento de uma aplicação de RV combinada com uma interface de entrada Neurobótica, voltada à reabilitação motora de pacientes que sofreram um Acidente Vascular Cerebral (AVC).

Page 35: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

35

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

Paolini et al. (2013) apresentaram uma aplicação de RV integrada ao dispositivo Kinect. A aplica-ção teve o intuito de validar um método de posicionamento e orientação do pé em tempo real, utili-zando o sistema de rastreamento fornecido pelo Kinect. Os autores utilizaram como aplicação o treina-mento dos movimentos relativos à marcha.

No entanto, o uso de interfaces de entrada não convencionais vai além do uso apenas de dispo-sitivos comerciais relacionados aos consoles. Connelly et al. (2010), por exemplo, desenvolveram uma luva pneumática denominada PneuGlove, a qual é utilizada no processo de reabilitação após AVC. Eles ofereceram aos pacientes um ambiente virtual bidimensional que permite sua exploração e a simulação do gesto de preensão manual contando com a assistência da PneuGlove para a extensão após a flexão dos dedos. Golomb et al. (2010) afirmam que ambientes virtuais utilizados para telerreabilitação po-dem melhorar a função dos membros superiores, especificamente mão e antebraço em adolescentes com paralisia cerebral hemiplégica.

1.3 Realidade Virtual, Neurociência e Atividade Física

Atualmente têm-se buscado estratégias inovadoras para melhorar a função motora, como por exemplo, a reabilitação do membro superior do paciente que sofreu um AVC. Para retreinar o movi-mento de indivíduos com limitações cognitivas e físicas, Rose et al. (2005) utilizaram aplicações de RV para simular situações próprias do cotidiano por meio de estímulos multissensoriais.

Laver et al. (2011) avaliou o efeito do tratamento utilizando aplicações de RV na recuperação da função cognitiva, da marcha, do equilíbrio e das atividades de vida diárias (AVDs) em pacientes que sofreram um AVC. Os resultados apontam que ainda faltam evidências que demonstrem respostas sig-nificativas com relação ao uso de RV, quando estas são comparadas com as respostas obtidas na terapia convencional. Porém, quando considerado apenas o tratamento de membro superior, estudos indicam melhores resultados na reabilitação da função motora e funcional quando a terapia convencional é associada à terapia com RV.

Turolla et al. (2013) demonstraram a efetividade da RV associada à terapia convencional no tra-tamento do membro superior em pacientes que sofreram um AVC em diferentes níveis de gravidade motora. O aumento do feedback obtido na realização da própria tarefa pode facilitar a reaquisição da habilidade motora comprometida. Além disso, a possibilidade de modificar as características do cená-rio virtual pode tornar as sessões de reabilitação mais atrativas e agradáveis.

Chang et al. (2011) apontaram o uso do dispositivo de rastreamento corporal Kinect na reabili-tação de crianças com paralisia cerebral e atrofia muscular. Também utilizando uma aplicação com interface semelhante, Ustinova et al. (2011) demonstraram que o uso do reconhecimento de gestos aumentou a coordenação postural do braço em pacientes com traumatismo cranioencefálico.

Mirelman et al. (2011) utilizaram o treino de marcha com esteira e RV em pacientes com doença de Parkinson, almejando avaliar a marcha e as habilidades em tarefas complexas. O ambiente virtual consistiu de um ambiente “outdoor” com diferentes tipos de obstáculos, com os quais o paciente não podia colidir, exigindo atenção, seleção de resposta e o processamento dos vários estímulos visuais envolvidos no processo da percepção. Após o treinamento houve melhora significativa na velocidade, tempo e comprimento do passo.

Page 36: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

36

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

Kubicki et al. (2014) investigaram se o uso de aplicações de RV poderia melhorar a realização de AVDs, principalmente a coordenação entre movimentos gerais e a postura de idosos. Após três sema-nas, o estudo revelou melhora significativa no controle das mãos, na velocidade para realizar tarefas e no ajuste postural antecipatório. Esses resultados sugerem que algum nível de reaprendizagem motora é mantido em indivíduos idosos com reserva funcional baixa.

1.3.1 Interface Natural de Usuário

A constante evolução dos componentes eletrônicos dos computadores, como processadores cen-trais e gráficos, memórias entre outros, abriram espaço, também, para a evolução das interfaces de usuário e dispositivos de entrada. Devido à evolução após o lançamento dos computadores pessoais, as interfaces de entrada tiveram sua evolução centrada no usuário com o objetivo de chegar a uma interface intuitiva e natural.

Segundo Weiyuan Liu (2010), as interfaces computacionais começaram a ser desenvolvidas na década de 1960. Neste período, existiam apenas máquinas com teclados semelhantes aos de máquinas datilográficas, acrescidos de algumas teclas de funções. Neste mesmo período surgiram os terminais de vídeo, denominados consoles, utilizados por operadores de sistema e programadores.

Na busca do melhor entretenimento, a indústria tem focado nos últimos anos em desenvolver uma interface natural e realista para seus produtos, surgindo assim novos dispositivos de entrada para a plataforma de consoles (video-games). Esses dispositivos reconhecem movimentos estáticos e dinâmi-cos classificando-os em gestos para uso específico. Este tipo de interface de entrada é conhecida como Interface Natural de Usuário (NUI, do inglês Natural User Interface). A NUI é o termo comum usado por designers e desenvolvedores de interfaces de computador, quando estes querem referir-se à inte-ração com o computador de um modo efetivamente invisível, ou que torna-se invisível com sucessivas interações realizadas [Gnecco, 2012].

Segundo Wigdor (2011), a NUI não é uma interface natural, mas sim uma interface que permite que o usuário aja e sinta-a como se fosse natural. Uma boa interpretação de NUI é mudando a forma de dizer “interface natural”, na qual ela não é definida como sendo uma interface natural de usuário, mas sim uma interface de usuário natural.

Segundo Gnecco (2012), as interfaces mais comuns utilizam dispositivos de controle artificial, cujo aprendizado é realizado por meio de dispositivos com botões, tais como teclado ou controle de video-game, cuja a curva de aprendizagem pode ser alta. Contudo, a NUI possui como característi-cas de interface, apenas a exigência que o usuário seja capaz de interagir com o ambiente por meio de interações previamente já conhecidas, como por exemplo, gestos e voz. A interface também exige aprendizagem, porém é facilitada, pois não exige que o usuário seja apresentado a um novo dispositivo.

1.3.2 Jogos de Reabilitação – Serious Games

O termo game ou jogo pode ser determinado e classificado de várias formas, mas geralmente é utilizado para definir uma competição física ou mental, que utiliza um conjunto de regras artificiais com um objetivo a ser alcançado de forma lúdica, na maioria das vezes para entretenimento dos joga-

Page 37: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

37

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

dores. No caso os jogos digitais, ou video-games, podem ser caracterizados por aplicações baseadas em computação gráfica com foco na diversão do usuário. Os video-games atualmente são desenvolvidos para várias plataformas, tais como computadores, consoles e smartphones. Entretanto, cada plataforma difere em características, tais como capacidade de processamento, interface visual e de entrada, o que tende a influenciar o usuário [Machado et al. 2009].

Os jogos digitais são geralmente projetados para simular aspectos da realidade e/ou ficção, entre-tanto, os serious games são desenvolvidos para abordar aspectos de treinamento, e não apenas visando o entretenimento. Segundo Machado et al. (2009), os primeiros serious games surgiram na década de 80, impulsionados pelos simuladores militares desenvolvidos pelos Estados Unidos.

Segundo Zyda (2005), os serious games visam simular as situações práticas do cotidiano, com o objetivo de proporcionar o treinamento de profissionais em situações de risco extremo e em treina-mentos voltados a aprendizagem nas áreas da educação, formação empresarial, saúde, políticas pú-blicas entre outras. Na computação, o termo serious games é tratado como sendo aplicações baseadas em computação gráfica, desenvolvidas e praticadas em ambientes virtuais que possuem sistemas de interação baseados em diversas interfaces de entrada. Essas aplicações também podem ser classificadas na indústria como sendo uma sub-categoria de video-games.

Chagas et al. (2012) demonstraram que é altamente recomendado que trabalhadores possam dis-por de tecnologia para treinar determinado gesto motor de modo contínuo a partir de serious games. Assim, no ambiente proposto, os operadores são expostos a várias circunstâncias nas quais eles podem exercitar seu conhecimento sobre determinado trabalho e aprender com situações adversas.

Neste contexto, as aplicações desta modalidade de jogos digitais encontram terreno fértil em si-tuações de reabilitação músculo-esquelética e neurofuncional, onde o tratamento convencional, apesar de eficaz, é por vezes considerado extenuante e enfadonho para o paciente, o que aumenta os casos de interrupção momentânea e até a desistência do processo de tratamento e reabilitação. Assim, as áreas da saúde são, de modo geral, carentes de desenvolvimento nacional de serious games que atendam es-pecificamente nossa população, considerando as características individuais dos usuários, ao invés de depender da importação de soluções já padronizadas para outra realidade e população.

1.4 Soluções e Dispositivos

A interação em aplicações de RV é uma das mais importantes de suas características, pois au-xilia no processo de imersão do usuário. Os dispositivos de interação utilizados em aplicações de RV tem evoluído, não ficando apenas restrito a dispositivos não convencionais, tais como luvas de dados e rastreadores.

1.4.1 Dispositivo PrimeSense - Kinect

Os dispositivos de rastreamentos por câmera têm sido uma das atuais abordagens utilizadas como meio de interação pela indústria de games, e de estudos relacionados à NUI [Gnecco et al. 2012].

Page 38: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

38

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

Um exemplo proeminente é o dispositivo Microsoft Kinect. Ele foi lançado como um sensor de movimento para o console Xbox 360, uma interface para usuário, a qual utiliza gestos e voz como meio de interação com os jogos. No entanto, o dispositivo tem sido explorado e aplicado em outras áreas fora do entretenimento, sendo um dispositivo altamente difundido no meio de aplicações que necessitem utilizar rastreamento corporal.

O dispositivo Microsoft Kinect é composto por vários componentes eletrônicos que fazem dele um sensor de movimento para captura de gestos em tempo real. Os componentes são: uma câmera RGB, um sensor de profundidade, um vetor de microfones, um motor de inclinação e um acelerômetro de três eixos. A interface de conexão do sensor é USB, padrão 2.0, o que permite que ele seja utilizado no desenvolvimento de aplicações computacionais.  A Figura 1 apresenta o dispositivo e seus componentes.

Figura 1. Dispositivo Microsoft Kinect

1.4.2 Interfaces Cérebro Máquina

Adicionalmente aos sistemas descritos, existe uma discussão recente na literatura científica so-bre o fato de sistemas de interface cérebro-máquina (BCI, do inglês brain-computer interface) possuí-rem potencial para auxiliar na reabilitação de pacientes com deficiências motoras, particularmente as resultantes de lesões no sistema nervoso central (SNC) devidas ao AVC [Birbaumer e Cohen, 2007; Pfurtscheller et al., 2008; Daly e Wolpaw, 2008; Soekadar, Birbaumer e Cohen, 2011; Grosse-Wentrup, Mattia e Oweiss, 2011]. Há inclusive, alguns poucos casos em que a função motora foi restaurada com o auxílio de BCIs, com taxas de sucesso variadas, como p.ex., [Caria et al., 2011; Fok et al., 2011].

Os BCIs são sistemas que captam e interpretam sinais cerebrais de modo a permitir o controle de aparelhos externos. Estes aparelhos podem ser, p. ex., um teclado, um cursor numa tela de computador, um braço robótico ou uma cadeira de rodas. Os sistemas BCI surgiram inicialmente com o intuito de fornecer um meio de comunicação a pacientes com deficiências motoras severas (pacientes no estado “trancado”, ou “locked-in”, que perderam todo o controle motor), e para comandar neuropróteses (ou seja, próteses acopladas ao sistema neural). No entanto, além dessas aplicações, usos recentes desses sistemas envolvem neurofeedback em jogos de computador e controle de dispositivos diversos para qualquer tipo de usuário.

Page 39: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

39

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

O desenvolvimento de um sistema BCI requer, num primeiro momento, a definição da técnica a ser usada para a medida dos sinais cerebrais, e a estratégia usada para a geração destes sinais. Estas estraté-gias consistem na forma de geração dos sinais cerebrais, captados por um sistema BCI, os quais podem ser gerados de forma involuntária, como resposta a um dado estímulo sensorial, ou de forma voluntária, baseados em pensamentos específicos engendrados pelo usuário.

Várias técnicas de aquisição de sinais cerebrais têm sido usadas em sistemas BCI, como a eletroen-cefalografia (EEG), a eletrocorticografia (ECoG), as sondas neurais, a ressonância magnética funcional (fMRI, de functional magnetic resonance imaging), a magnetoencefalografia (MEG) e a espectroscopia óptica (NIRS, de near-infrared spectroscopy). Segundo a técnica usada, o sistema BCI pode ser portátil (EEG, NIRS) ou estacionário (fMRI, MEG); invasivo (sondas neurais), parcialmente invasivo (ECoG) ou não invasivo (fMRI, EEG, MEG, NIRS); baseado em sinais de natureza elétrica, relacionados dire-tamente aos disparos neuronais (sondas neurais, ECoG, EEG, MEG), ou baseado em sinais de natureza hemodinâmica, relacionados ao metabolismo e oxigenação do sangue cerebral decorrentes da ativação neuronal (fMRI, NIRS).

Sinais cerebrais usados em BCI podem ser gerados de forma involuntária, como resposta a um dado estímulo sensorial, ou de forma voluntária, baseados em pensamentos específicos engendrados pelo usuário. No primeiro caso, exemplos são os sistemas BCI baseados em potenciais evocados visuais (SSVEP, de steady-state visual evoked potential) e os baseados no potencial evocado P300. SSVEPs são variações específicas que ocorrem no sinal de EEG provindo do córtex visual quando uma pessoa é su-jeita a um estímulo visual que pisca com uma determinada frequência. Nesse caso, é possível identifi-car um aumento na amplitude do sinal de EEG na frequência correspondente à frequência do estímulo. Dessa forma, é possível montar uma interface de estimulação em que diferentes opções para o usuário (p. ex., diferentes direções que uma cadeira de rodas pode seguir) piscam com diferentes frequências. Já o P300 consiste de um potencial com uma forma de onda específica, que aparece no traçado de EEG por volta de 300 milissegundos após o acontecimento de um evento de baixa probabilidade, no qual o usuário está focado. Neste caso, a interface de estimulação geralmente consiste em opções “apagadas”, que “acendem” (ou brilham) de forma aleatória – o usuário foca a atenção na opção desejada, e quando “acende”, seu cérebro dispara o P300 (com um atraso de 300 milissegundos). Ambos estes tipos de sis-temas são chamados de sistemas síncronos, pois necessitam de um dispositivo externo para estimular a geração do sinal cerebral, que fica sincronizado com o estímulo.

No segundo caso, de geração voluntária de sinais cerebrais, o exemplo mais explorado em sistemas BCI é o de imaginação de movimento. Quando uma pessoa imagina a execução de um dado movimen-to, a resposta cerebral, tanto em termos dos sinais de EEG, quanto dos mapas de ativação obtidos com fMRI, é muito similar à resposta que se obteria para a execução real do movimento. O córtex motor é uma área cerebral bem localizada e mapeada; em particular, o lado esquerdo do córtex motor comanda os membros do lado direito, e vice-versa. Portanto, usando fMRI é relativamente simples identificar o membro (p. ex., a mão, ou pé) que executou (ou que se imaginou executar) o movimento. No caso dos sinais de EEG, ocorre um fenômeno chamado de dessincronização relacionada a evento (ERD, de even-t-related desyncrhonization): quando uma pessoa realiza um movimento (ou se imagina realizando este), o sinal de EEG do córtex motor contralateral ao movimento, na banda de frequências “m” (8 a 13 Hz), diminui sua amplitude, o que fica bem nítido pela diminuição do pico correspondente no espectro

Page 40: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

40

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

de Fourier do sinal. Dessa forma, diferentes opções do sistema podem estar associadas à imaginação de movimento de diferentes membros (os mais usados são: mão direita, mão esquerda, pés e língua). Este tipo de sistema é geralmente chamado de assíncrono, já que, em princípio, não necessita de um dispositivo externo para guiar a geração dos sinais.

As aplicações de BCIs para pacientes citadas acima são aplicações do tipo “assistivas”, que visam, de alguma forma, melhorar a qualidade de vida do paciente, permitindo que ele recupere funcionali-dades perdidas (comunicação, locomoção etc.). No entanto, como já mencionado, recentemente tem se discutido bastante a potencialidade do uso de sistemas BCI em aplicações “restaurativas”, que visam auxiliar a restauração da função motora no SNC de pacientes incapacitados [Daly e Wolpaw, 2008; Soekadar, Birbaumer e Cohen, 2011]. Neste caso, os sistemas usados são os BCIs baseados em imagi-nação de movimento, descritos acima. Essa discussão se baseia em que a melhor forma de restaurar a função motora cerebral consiste em induzir uma atividade cerebral que por sua vez, induzirá a plasti-cidade cerebral. Plasticidade cerebral é a propriedade do cérebro de se remodelar, ou rearranjar suas sinapses. No cérebro sadio, é a responsável pela sedimentação de novos conhecimentos e aprendizados; no cérebro doente, pode remapear funções perdidas devido a lesões em outras áreas cerebrais.

Duas estratégias utilizando este tipo de BCIs têm sido pensadas. Uma ideia é usar o BCI para auxiliar a melhorar a produção dos sinais cerebrais relacionados ao movimento, ou seja, para treinar o cérebro a normalizar estes sinais. Espera-se nesse caso, que ao influenciar uma plasticidade cerebral que produza sinais cerebrais mais normais, a função cerebral normal também seja restaurada, melho-rando o controle motor. A outra ideia consiste em fazer o processo reverso, ou seja, usar o BCI para produzir sinais que movimentem um dispositivo externo (neuroprótese) que auxilie o movimento do membro incapacitado. A “normalização” da função motora induziria uma subsequente plasticidade cerebral que levaria à restauração do controle motor [Daly e Wolpaw, 2008].

Um ponto interessante é que um estudo desenvolvido pelos principais grupos de pesquisa em BCI do mundo sugere que a restauração motora pode ser ainda mais eficaz quando o sistema BCI é combinado com ambientes virtuais imersivos, que permitem que o usuário interaja de forma mais natural com esse sistema [Future BNCI, 2012]. Embora já existam vários trabalhos que usam am-bientes de realidade virtual para reabilitação, e outros que combinam ambientes virtuais com BCIs, o desenvolvimento de sistemas de reabilitação acoplando BCIs a ambientes de realidade virtual ainda está em seu estágio inicial em termos de pesquisas, com pouquíssimos trabalhos na área (ver, p. ex., [Ortner et al. 2012]).

1.5 Aplicações práticas

Com as atuais possibilidades de interação e soluções a partir do reconhecimento de gestos apre-sentadas na seções anteriores, foram desenvolvidos e aplicados alguns estudos no Laboratório de Vi-sualização Imersiva, Interativa e Colaborativa (LaVIIC) os quais são apresentados nesta seção. Em todas as aplicações o dispositivo utilizado como interface de entrada é o Microsoft Kinect.

Page 41: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

41

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

1.5.1 Realidade Virtual e Desorientação Espacial

Segundo Pitta (2001), a desorientação espacial é um estado confusional caracterizado pelo prejuí-zo da concentração, lentidão da compreensão, dificuldade de percepção e elaboração das impressões sensoriais, com prevalência em hospitais gerais que varia entre 10% e 30% dos pacientes idosos. Clas-sificado na forma clínica de delirium, o estado confusional é classificado pela sigla CID – 10 (Classifi-cação Internacional de Doenças – 10) como Transtornos Mentais e do Comportamento. Tal transtorno causa perplexidade do paciente em relação ao ambiente e às pessoas do convívio familiar, ocasionando lentidão das respostas solicitadas, e está associado a alterações de memória, diminuindo a capacidade de registro de novas informações, aprendizados e, consequentemente, o ato de recordar. Ocorre tam-bém o prejuízo global das funções psíquicas e predomínio da perturbação da consciência com presença de hiperatividade ou lentidão psicomotora.

A aplicação denominada GestureMaps (Figura 2) tem o intuito de prover a exploração virtual, espacial e geográfica por meio da ferramenta Google® StreetView que possui uma galeria de fotos pano-râmicas em 360 graus em pipeline à nível de rua. O usuário define o local que deseja explorar inserindo o endereço desejado e experimenta uma maior sensação de imersão através de uma paralaxe de nave-gação ao longo da rua reproduzida no ambiente virtual.

Figura 2. Exemplo de uso do aplicativo GestureMaps

A aplicação tem seu controle implementado por gestos pré determinados (Figura 3), de modo que para avançar no ambiente virtual é necessário que o usuário simule uma caminhada, com flexões de quadril e joelho correspondentes ao deslocamento mínimo de 15 centímetros entre a posição inicial e final da patela (osso livre da articulação do joelho). A mudança de direção durante a navegação no Google StreetView é realizada por meio do movimento de rotação do tronco, ou de abdução do ombro correspondente (direito ou esquerdo), em um intervalo entre 0 e 90 graus.

Page 42: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

42

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

Figura 3. Gestos de comando do GestureMaps

1.5.2 Realidade Virtual e Dupla Tarefa: Gesture Chess

A realização de atividade motora e cognitiva, simultânea, é denominada tarefa dupla. Tal ação presume o recrutamento muscular de diferentes segmentos corporais e a estimulação de diferentes áreas do córtex cerebral, associadas ao controle motor geral e aos estímulos sensoriais e visuais. Este recrutamento muscular, associado à sobrecarga mental, possui potencial para otimizar, desde as ha-bilidades relacionadas ao equilíbrio de idosos, até o aumento da reserva cognitiva em adultos, jovens e crianças. Acredita-se que tal reserva esteja associada à incidência de patologias neurodegenerativas, como as doenças de Parkinson e Alzheimer.

O estudo de desenvolvimento e implementação do GestureChess (Figura 4) teve como objetivo desenvolver uma aplicação para o controle de um jogo de xadrez, visando explorar o conceito de Dual Task a partir de movimento dos membros superiores, com estimulação cognitiva e motora.

Figura 4. Exemplo de uso do aplicativo GestureChess

Page 43: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

43

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

O controle da aplicação é realizado por meio de movimentos realizados pela mão do usuário. Para controle nos eixos X e Y, são previamente descritos os movimentos. O primeiro de push (clique), o qual cria virtualmente coordenadas espaciais 0,0, sendo que, a partir deste ponto, é possível associar os movimentos da mão rastreada às coordenadas do mouse.

Na Figura 5(a) é ilustrado o posicionamento inicial do rastreamento, onde os valores para X e Y são 0, o que permite que o ponteiro fique imóvel. No passo em que a mão é movimentada, o ponteiro também será; no entanto, para que o jogo possa ser utilizado por pessoas com diferentes capacidades motoras, um método para incrementar a posição do ponteiro foi implementada. Na Figura 5(b) é apre-sentado o posicionamento incremental nas posições Xn e Yn, o qual é variado de acordo com a veloci-dade imposta pela mão. Assim, mesmo que as mãos estejam paradas em X2 e Y2, a posição do cursor continuará a ser incrementada, tendendo à Xn e Yn, permitindo que jogadas sejam executadas em todo o tabuleiro, mesmo que o usuário possua limites na amplitude do movimento. Para que o ponteiro volte a ficar imóvel, o usuário deve reposicionar sua mão no p(0,0). A partir deste controle é possível simular um clique no espaço sobre a peça que o usuário deseja movimentar, e outro clique sobre o local onde esta peça deverá ser reposicionada.

Figura 5. Rastreamento inicial(a) e final(b) que demonstra uma das possibilidades para incrementar a posição do ponteiro

1.5.3 Realidade Virtual e Reabilitação do Membro Superior: GestureChair / GesturePuzzle

O complexo articular do ombro é classificado como uma articulação diartrodial (livremente móvel), do tipo esferóide multiaxial ou enartrodial, o qual possui três graus de liberdade e larga amplitude de movimento com rotação nos três eixos ortogonais X, Y e Z [Sacco e Tanaka 2008; Zat-siorsky 2004]. Apesar de esqueleticamente fraca, devido à frouxidão da cápsula fibrosa que envolve tal articulação, os três ligamentos glenoumerais (superior, médio e inferior) reforçam sua estrutura em conjunto com as extensões provenientes dos tendões dos músculos: peitoral maior e redondo maior [Thompson e Floyd 2002].

Page 44: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

44

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

O estudo do desenvolvimento da aplicação GesturePuzzle teve como foco a implementação de uma interface de controle de um jogo de quebra-cabeça (Figura 6) por meio do movimento das mãos. O usuário tem em seu ambiente virtual peças separadas de imagens em ordem aleatória, em que o objetivo é executar o movimento e ordenar as peças. O movimento natural de segurar e soltar as peças é reproduzido para alcançar a realidade, permitindo que o usuário explore livremente a articulação do ombro em todos os planos de movimento (coronal, sagital e transverso).

Figura 6. Exemplo do aplicativo GesturePuzzle

O aplicativo GestureChair tem o objetivo de proporcionar às pessoas, que possuem seus movimen-tos restritos à parte superior do corpo, uma forma de interagir com o ambiente virtual (uma versão livre do jogo PacMan, denominada KapMan), a partir da posição sentada. O usuário controla o per-sonagem do jogo com movimentos manuais, o reconhecimento da mão do usuário ocorre a partir do gesto wave (movimento similar ao tchau), e controla o jogo com movimentos manuais rápidos (Figura 7) denominados swipe (para cima, baixo, direita ou esquerda). A partir deste ponto o programa reco-nhece cada gesto e permite ao usuário controlar o jogo. Caso o usuário não fizer o movimento swipe rápido o suficiente, o programa não interpreta nenhum gesto, prevenindo o reconhecimento de gestos indesejáveis, o que poderia tornar o controle do jogo inviável.

Figura 7. Gestos de comando do GestureChair

Page 45: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

45

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

1.6 Conclusões e Perspectivas

As pesquisas que combinam atividade física e RV são animadoras, apontando resultados promis-sores em diversas situações relativas às áreas da saúde. É necessário aumentar o número de estudos randomizados, controlados e com amostra representativa da população, no sentido de evidenciar a tecnologia disponível e criar novas terapias baseadas em RV que possam complementar o processo de reabilitação, bem como consolidar a eficácia do tratamento a médio e longo prazo.

O conjunto de aplicações Gesture’s tem como objetivo geral prover uma forma de interação com a máquina por meio de gestos motores, os quais incrementam a atividade física diária e demandam maior gasto energético quando comparado à interação convencional (mouse e teclado), possibilitando uma mudança de paradigma na forma de Interação Humano-Computador a médio e longo prazo.

Em trabalhos futuros, as aplicações apresentadas na seção 5 (Gesture’s) serão integradas a alguns dos dispositivos BCI, visando explorar os efeitos relativos à neuromodulação, situações de aprendiza-gem motora e desempenho cognitivo durante a prática de atividade física convencional e/ou no con-texto da reabilitação amparada por RV.

Referências

BIRBAUMER, N and COHEN, L. G. (2007) “Brain–computer interfaces: communication and restoration of movement in paralysis”, J Physiol 579(3): 621-636.

BRANDãO, A. F; BRASIL, G. J. C; DIAS, D. R. C; TREVELIN, L. C. (2013) “GestureMaps: Perspectivas para a desorientação espacial”, In: IV International Colloquium of Gerontology, Revista do Hospital das Clínicas da FMRP – USP, 46(4): 25, Ribeirão Preto.

BRANDãO, A. F; SOARES, M. C; BRASIL, G. J. C; DIAS, D. R. C; FABBRO, A. C; DUARTE, A. C. G. O; TREVE-LIN, L. C. (2013) “Prevenção de atrofia muscular da articulação glenoumeral por meio de atividade física adaptada a realidade virtual e reconhecimento de gestos”, In: Simpósio Sesc de Atividades Físicas Adaptadas, São Carlos.

BRASIL, G. J. C. E GUIMARãES, M. P. (2011) “Um jogo de quebra-cabeça para interface natural de usuário”, In: xIx Congresso de Iniciação Científica da UFSCar, São Carlos.

CHAGAS, J. F. S.; NETO, F. M. M.; BONATES, M. F.; BRASIL, I. S.; LIMA, R. M. (2012) “Um Jogo para Treina-mento de Operadores de Sondas de Perfuração Terrestre”, 28(1).

CHANG, y. J.; CHEN, S. F.; HUANG, J. D. (2011) “A Kinect-based system for physical rehabilitation: a pilot study for young adults with motor disabilities”, Res Dev Disabil. 32(6): 2566-2570.

CARIA, A.; wEBER, C.; BRöTz, D.; RAMOS, A.; TICINI, L. F.; GHARABAGHI, A.; BRAUN, C.; BIRBAUMER, N. (2011) “Chronic stroke recovery after combined BCI training and physiotherapy: A case report”, Psychophy-siol 48: 578-582.

Page 46: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

46

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

CONNELLy, L.; JIA, y.; TORO, M. L.; STOyKOV, M. E.; KENyON, R. V.; KAMPER, D. G. (2010) “A Penumatic glove and immersive virtual reality environment for hand rehabilitative training after stroke”, IEEE – Transac-tions on Neural Systems and Rehabilitation Engineering, 18(5).

DALy, J. J.; wOLPAw, J. R. (2008) “Brain–computer interfaces in neurological rehabilitation”, The Lancet Neu-rol 8: 1032-1043.

DAS, P. and HORTON, R. (2012) “Rethinking Our Approach to Physical Activity”, The Lancet, 380: 189-190, http://www.thelancet.com/journals/lancet/article/PIIS0140-6736(12)61024-1/fulltext. Março.

DE MAURO, A; CARRASCO, E; OyARzUN, D; ARDANzA, A; PALOC, C; GIL, A; FLOREz, J. (2010) “Virtual Reality System in Conjunction with Neurorobotics and Neuroprosthetics for Rehabilitation”, In: Information Technology and Applications in Biomedicine (ITAB), 10th IEEE International Conference.

DIAS, D. R. C.; BRANDãO, A. F.; GUIMARAES, M. P.; BREGA, J. R. F.; BRASIL, G. J. C.; TREVELIN, L. C. (2013) “GestureChess - Interface Natural de Usuario na Atividade Motora e Cognitiva”, In: workshop de Reali-dade Virtual e Aumentada, Jataí.

FOK, S.; SCHwARTz, R.; wRONKIEwICz, M.; HOLMES, C.; zHANG, J.; SOMERS, T.; BUNDy, D.; LEU-THARDT, E. (2011) “An EEG-based brain computer interface for rehabilitation and restoration of hand control following stroke using ipsilateral cortical physiology”, 33rd Ann Int Conf IEEE EMBS, 6277-6280.

Future BNCI (2012) “A road map for future directions in brain/neuronal computer interaction research”, Future BNCI Project, www.brainable.org/Documents/Future_BNCI_Roadmap.pdf. Março.

GNECCO, B. B.; DIAS, D. R. C.; BRASIL, G. J. C.; GUIMARãES, M. P. (2012) “Desenvolvimento De Inter-faces Naturais De Interação Usando O Hardware Kinect” In: Tendências e Técnicas em Realidade Virtual e Aumentada, 2: 37-62.

GOLOMB, M. R.; MCDONALD, B. C.; wARDEN, S. J.; yONKMAN, J.; SAyKIN, A. J.; SHIRLEy, B.; HUBER, M.; RABIN, B.; ABDELBAKy, M.; NwOSU, M. E.; BARKAT-MASIH, M.; BURDEA, G. C. (2010) “In-Home Virtual Reality Videogame Elerehabilitation in Adolescents with Hemiplegic Cerebral Palsy”. Arch Phys Med Rehabil 91(1): 1-8.

GROSSE-wENTRUP, M; MATTIA, D; OwEISS, K. (2011) “Using brain–computer interfaces to induce neural plasticity and restore function”, J Neural Eng 8: 5, Article ID 025004.

HALLAL, P. C.; BAUMAN, A. E.; HEATH, G. w.; KOHL, H. w.; LEE, I. M.; PRATT, M. (2012) “Physical Acti-vity: More of The Same is Not Enough”, The Lancet, 380: 190-191, http://www.thelancet.com/journals/lancet/article/PIIS0140-6736(12)61027-7/fulltext. Março.

KUBICKI, A; BONNETBLANC, F; PETREMENT, G; MOUREy, F. (2014) “Motor-prediction improvements af-ter virtual rehabilitation in geriatrics: frail patients reveal different learning curves for movement and postural control”, Neurophysiol Clin. 44(1): 109-118.

Page 47: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

47

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

LAVER, K. E.; GEORGE, S; THOMAS, S; DEUTSCH, J. E.; CROTTy, M. (2011) “Virtual reality for stroke reha-bilitation”. Cochrane Database Syst Rev. 9: CD008349.

LI, S. and SUN, J. (2009) “Application of Virtual Reality Technology in the Field of Sport,” Education Technolo-gy And Computer Science, ETCS ‘09. First International workshop, 2: 455-458.

MACHADO, L. S; MORAES, R. M; NUNES, F. L. S. (2009). “Serious Games para Saúde e Treinamento Imersi-vo”, In: Fátima L. S. Nunes; Liliane S. Machado; Márcio S. Pinho; Cláudio Kirner. (Org.). Abordagens Práticas de Realidade Virtual e Aumentada. Porto Alegre: SBC, 31-60.

MALTA, D. C. and SILVA, J. B. (2012) “Policies to Promote Physical Activity in Brazil”, The Lancet, 380: 195-196, http://www.thelancet.com/journals/lancet/article/PIIS0140-6736(12)61041-1/fulltext. Março.

MIRELMAN, A; MAIDAN, I; HERMAN, T; DEUTSCH, J. E.; GILADI, N; HAUSDORFF, J. M. (2011) “Virtual reality for gait training: can it induce motor learning to enhance complex walking and reduce fall risk in pa-tients with Parkinson’s disease?”, J Gerontol A Biol Sci Med Sci. 66(2): 234-240.

ORTNER, R; IRIMIA, D. C.; SCHARINGER, J; GUGER, C. (2012) “Brain-Computer Interfaces for stroke reha-bilitation: evaluation of feedback and classification strategies in healthy users”, 4th IEEE RAS/EMBS Int Conf Biomed Robotics Biomechatronics, 219-223.

PAOLINI, G; PERUzzI, A; MIRELMAN, A; CEREATTI, A; GAUKRODGER, S; HAUSDORFF; DELLA CROCE, U. (2013) “Validation Of a Method For Real Time Foot Position and Orientation Tracking with Microsoft Kinect Technology For Use in Virtual Reality and Treadmill Based Gait Training Programs”, In: IEEE Trans Neural Syst Rehabil Eng, 99: 1.

PFURTSCHELLER, G.; MüLLER-PUTz, G. R.; SCHERER, R.; NEUPER, C. (2008) “Rehabilitation with brain-computer interface systems”, IEEE Comp Mag 41: 58-65.

PITTA, J. C. N. (2001) “Diagnóstico e conduta dos estados confusionais”, Psiquiatria na prática médica. De-partamento de Psiquiatria - UNIFESP/EPM 34(4), http://www.unifesp.br/dpsiq/polbr/ppm/atu2_07.htm Março.

ROSE, F. D.; BROOKS, B. M.; RIzzO, A. A. (2005) “Virtual reality in brain damage rehabilitation: review”, Cyberpsychol Behav. 8(3): 241-262.

SACCO, I. C. N.; TANAKA, C. “Cinesiologia E Biomecânica Dos Complexos Articulares”. Rio de Janeiro: Gua-nabara Koogan S.A., 2008. Cap. 2.

SOEKADAR, S. R.; BIRBAUMER, N.; COHEN, L. G. (2011) “Brain-computer-interfaces in the rehabilitation of stroke and neurotrauma”, In: Kenji Kansaku (ed), Systems-Neuroscience and Rehabilitation, Springer, Tokyo.

THOMPSON, C. w.; FLOyD, R. T. “Manual De Cinesiologia Estrutural”. Barueri: Editora Manole, 2002. Cap. 4 e 5.

TUROLLA, A; DAM, M; VENTURA, L; TONIN, P; AGOSTINI, M; zUCCONI, C. (2013) “Virtual reality for the reha-bilitation of the upper limb motor function after stroke: a prospective controlled trial”, J Neuroeng Rehabil. 10: 85.

Page 48: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

48

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 33-48, maio/2014.BRAndão, Alexandre Fonseca. Realidade Virtual e Reconhecimento de Gestos Aplicado as Áreas de Saúde.

USTINOVA, K. I; LEONARD, w. A; CASSAVAUGH, N. D; INGERSOLL, C. D. (2011) “Development of a 3D immersive videogame to improve arm-postural coordination in patients with TBI”. J Neuroeng Rehabil. 8: 61.

wEIyUAN, L. (2010) “Natural User Interface - Next Mainstream Product User Interface”: Computer-Aided Industrial Design & Conceptual Design (CAIDCD), IEEE 11th International Conference, 1: 203-205.

wIGDOR, D. and wIxON, D. “Brave Nui world: Designing Natural User Interfaces For Touch And Gesture”. San Francisco: Morgan Kaufmann Publishers Inc. 2011.

zATSIORKy, V. M. “Biomecânica No Esporte: Performance do Desempenho e Prevenção de Lesão”, Rio de Janeiro. Guanabara Koogan. S.A. 2004, Cap. 2 e 24.

zyDA, M. (2005) “From Visual Simulation to Virtual Reality to Games”, In: Computer, 38(9): 25-32.

Page 49: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

49

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

Realidade Aumentada e suas Aplicações na Área de Saúde

Ezequiel Roberto Zorzal Fátima de Lourdes dos Santos Nunes

Abstract

Augmented Reality can be applied in various areas of knowledge, among which we can highlight the use of technology in healthcare. The purpose of this chapter is to present an analysis of Augmented Reality applications in health and challenges in the area of survey. We analyzed 76 studies that presented resear-ch focused on the application of Augmented Reality in health, these studies were classified according to the purpose of the application and from the type of Augmented Reality system employed.

Resumo

A Realidade Aumentada pode ser aplicada em diversas áreas do conhecimento, dentre elas, pode-se des-tacar a utilização da tecnologia na área da saúde. O objetivo deste capítulo é apresentar uma análise das aplicações de Realidade Aumentada na saúde e o levantamento dos desafios da área. Foram analisados 76 trabalhos que apresentaram pesquisas com foco na aplicação da Realidade Aumentada na área da saúde, estes trabalhos foram classificados em função da finalidade da aplicação e a partir do tipo do sistema de Realidade Aumentada empregado.

1.1 Introdução

Pode-se definir Realidade Aumentada como a inserção de objetos virtuais no ambiente físico, apre-sentada ao usuário, em tempo real, com o apoio de algum dispositivo tecnológico, usando a interface do ambiente real, adaptada para visualizar e manipular os objetos reais e virtuais [Kirner e Kirner, 2007].

O uso da Realidade Aumentada aplicada na saúde vem sendo alvo de pesquisas nos últimos anos [Sielhorst, Feuerstein e Navab, 2008]. Diversos trabalhos estão sendo desenvolvidos com o objetivo de implementar sistemas de visualização com Realidade Aumentada para fornecer interfaces acessíveis e

49

Page 50: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

50

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

de fácil utilização que apoiam as intervenções médicas e apresentam informações do paciente [Navab et al., 2012; Bichlmeier et al. 2009].

As áreas relacionadas à saúde têm sido beneficiadas nos últimos anos com os avanços tecnológicos apresentados pela Realidade Aumentada. Acredita-se que tais avanços propiciaram um recurso ímpar para o ensino e treinamento [Cardoso e Lamounier Jr., 2009]. Entretanto, o desenvolvimento de aplica-ções com Realidade Aumentada para auxiliar a área da saúde ainda enfrenta alguns desafios.

O capítulo está organizado em seis seções distintas. A Seção 3.1 apresenta a introdução do traba-lho. Na Seção 3.2 é feita a apresentação dos critérios de pesquisa para a classificação das aplicações. Nas Seções 3.3 e 3.4 são apresentadas, respectivamente, as classificações dos trabalhos analisados em função da finalidade da aplicação e a classificação em função do tipo do sistema de Realidade Aumen-tada utilizado. A Seção 3.5 descreve os apontamentos dos principais desafios da área. Por fim, a Seção 3.6 apresenta as considerações finais.

1.2 Classificação das aplicações

Com a finalidade de analisar trabalhos correlatos à área de Realidade Aumentada aplicada à saúde e mapear os principais desafios da área, a revisão deste trabalho tomou como base os artigos publi-cados nos últimos dez anos e que estão disponíveis na Web em diferentes bibliotecas digitais. Dentre as bibliotecas examinadas a IEEE Xplore Digital Library e a ACM Digital Library se destacaram por manterem uma maior concentração dos trabalhos analisados.

De acordo com Nunes et al. (2011) as pesquisas em Realidade Virtual e Aumentada na saúde podem ser classificadas de diferentes formas, a partir de um contexto específico e em função do públi-co-alvo. Com base nesta afirmação, os trabalhos levantados foram classificados a partir das seguintes categorias: terapia, jogos, educação, treinamento e procedimentos. Cabe ressaltar que em muitos casos as aplicações podem combinar diferentes categorias, por exemplo, pode-se citar o uso de jogos em tratamentos terapêuticos [Vandermaesen et al. 2014], ou, ainda, aplicações desenvolvidas para treina-mentos que são usadas na educação [Sutherland et al. 2013].

Os trabalhos também foram classificados conforme o tipo de display utilizado [Azuma et al. 2001] envolvendo visão ótica ou visão por vídeo. De acordo com [Kirner e Zorzal 2005] essa classificação acarreta em quatro tipos de sistemas: visão ótica direta, visão direta por vídeo, visão por vídeo baseado em monitor e o sistema de visão ótica por projeção.

O sistema de visão ótica direta utiliza óculos ou capacetes com lentes que permitem o recebimento direto da imagem real, ao mesmo tempo em que possibilitam a projeção de imagens virtuais devida-mente ajustadas com a cena real. Uma maneira comum de se conseguir essa característica é usar uma lente inclinada que permita a visão direta e que reflita a projeção de imagens geradas por computador diretamente nos olhos do usuário.

O sistema de visão direta por vídeo utiliza capacetes com microcâmeras de vídeo acopladas. A cena real, capturada pela microcâmera, é misturada com os elementos virtuais gerados por compu-tador e apresentadas diretamente nos olhos do usuário, por meio de pequenos monitores montados no capacete.

Page 51: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

51

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

O sistema de visão por vídeo, baseado em monitor, utiliza uma câmera de vídeo para capturar a cena real. Depois de capturada, a cena real é misturada com os objetos virtuais gerados por computa-dor e apresentada no monitor. O ponto de vista do usuário normalmente é fixo e depende do posicio-namento da câmera.

Por fim, o sistema de visão ótica por projeção, utiliza superfícies do ambiente real, nas quais são projetadas imagens dos objetos virtuais, cujo conjunto é apresentado ao usuário que o visualiza sem a necessidade de nenhum equipamento auxiliar.

Embora inicialmente para fazer uso dos sistemas de Realidade Aumentada eram necessários har-dware e software customizados, nos últimos anos, devido ao avanço nas tecnologias de hardware e principalmente com o surgimento dos telefones inteligentes (smartphones), experiências com Reali-dade Aumentada se tornaram comuns e amplamente disponíveis para uso em computadores pessoais, portáteis e inclusive para dispositivos móveis. A mobilidade e a possibilidade de adquirir conhecimen-to a partir da aprendizagem móvel podem ser citadas como uns dos principais benefícios do uso da Realidade Aumentada em dispositivos móveis.

Sendo assim, para apoiar a classificação das aplicações discutidas nesse trabalho, as mesmas fo-ram classificadas nos seguintes agrupamentos: sistemas que utilizam óculos ou capacetes a partir de visão direta ótica ou por vídeo; sistemas de projeção; sistemas de visão por vídeo baseados em moni-tores e dispositivos móveis.

1.3 Classificação por finalidade da aplicação

Foram selecionados 76 trabalhos que apresentaram as pesquisas focadas em aplicações de Reali-dade Aumentada na saúde, os quais foram classificados e categorizados conformem os critérios estabe-lecidos e apresentados na seção anterior.

A Figura 1 apresenta a classificação dos trabalhos analisados em função das categorias de utiliza-ção. Percebe-se que a maioria das aplicações, principalmente nos últimos anos, foi desenvolvida com o foco maior em apoiar procedimentos médicos e no treinamento de usuários utilizando para isso sistemas de Realidade Aumentada baseados no uso de monitores de vídeos ou capacetes. Este aconteci-mento deve estar associado ao grande interesse de transferências de tecnologias, que tem como objetivo assegurar que o desenvolvimento científico e tecnológico seja acessível para um grupo maior de usuá-rios que pode desenvolver e explorar a tecnologia em novos produtos, materiais e serviços.

Por outro lado, a área de saúde é um segmento de conhecimento especializado e repleto de situa-ções únicas. Diante disso, tanto o ensino quanto o aprendizado exigem do professor, aluno e de todo o sistema de ensino uma forma especial de lidar com a transmissão do conhecimento.

A vantagem do uso de ferramentas tecnológicas para o ensino na saúde é que, além da figura estática, também se pode entender e demonstrar a dinâmica do movimento. Esse tipo de utilização vem a vencer muitas das limitações atuais da demonstração prática do movimento do corpo humano [Rolland, Wright e Kancherla, 1997].

Page 52: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

52

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

Figura 1. Classificação dos trabalhos analisados em função das categorias.

Dessa forma o uso da Realidade Aumentada é promissora dentro desse ramo do ensino. Espera-se que a evolução desta tecnologia permita apoiar o ensino na saúde sem perder a qualidade de aprendi-zado que os procedimentos atuais têm promovidos pelo ensino tradicional.

Além do próprio ensino na saúde, o uso de imagens da anatomia humana, por exemplo, pode ajudar a planejar os tratamentos cirúrgicos e clínicos e mesmo guiar a manipulação correta dos mús-culos durante as terapêuticas na fisioterapia. Isso pode promover melhores resultados devido à maior precisão durante os tratamentos em saúde.

Portanto, o uso da Realidade Aumentada neste segmento tem um potencial de promover não só um impacto na área de ensino, mas também na prática clínica de saúde e na própria relação médico-paciente. Além disso, pode culminar em um novo modo de a sociedade lidar com a anatomia humana e com o próprio corpo.

Livros virtuais usando Realidade Aumentada já foram publicados e testados. Os testes e pesquisas apontam que a implementação desse tipo de tecnologia em salas de aula aumenta significativamente a absorção do conteúdo da disciplina ensinada aos alunos [Billinghurst e Dunser 2012]. Esta estratégia poderá ser um bom complemento para o ensino da saúde.

1.4 Classificação em função do display

Como uma alternativa de baixo custo, os sistemas de visão por vídeo, baseado em monitor, vêm sendo fortemente utilizados nas mais diversas categorias de aplicações. A Figura 2 apresenta o percen-tual dos trabalhos analisados a partir da classificação em função do display.

Page 53: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

53

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

Nota-se que a utilização dos sistemas de visão por vídeo baseado em monitor e o uso de capacetes ou óculos especiais (sistemas de visão direta por vídeo ou ótica) compreendem aproximadamente 75% dos trabalhos analisados.

Figura 2. Classificação dos trabalhos analisados em função dos displays.

Os sistemas de visão direta são apropriados para situações onde a perda da imagem pode ser perigosa, como é o caso de um cirurgião realizando algum procedimento não simulado. Em locais fechados, onde o usuário tem controle da situação, o uso da visão por vídeo é adequado e não oferece perigo, pois em caso de perda da imagem pode-se retirar o capacete com segurança, se esse for o caso. O sistema com visão por vídeo é mais barato e mais fácil de ser ajustado.

A maioria dos trabalhos que utilizaram sistemas de visão ótica, baseados em projeção, concentra-se nas aplicações para procedimentos, treinamentos ou para uso educacional. Embora interessantes, os sistemas baseados em projeção são dispendiosos e muito restritos às condições do espaço real, em função da necessidade de superfícies de projeção. Já os trabalhos que foram desenvolvidos para serem usados em dispositivos móveis apresentaram como principais características a mobilidade e facilidade de uso, estes trabalhos concentram-se em sua grande maioria em aplicações para terapia e educação.

Apesar dos trabalhos analisados apresentarem baixa utilização em sistemas móveis, o crescimento do poder computacional dos dispositivos móveis tem proporcionado o desenvolvimento de aplicações com Realidade Aumentada nas mais diversas áreas do conhecimento. O crescente mercado de aplica-tivos para serem utilizados em dispositivos móveis deve impulsionar ainda mais o desenvolvimento de novas aplicações que utilizam Realidade Aumentada, inclusive na área da saúde.

1.5 Principais desafios

De acordo com Navab et al. (2012) os três principais desafios do desenvolvimento das aplicações de Realidade Aumentada na saúde estão relacionados aos problemas de registro dos objetos virtuais inseridos ao ambiente real, a integração da tecnologia em procedimentos de alta complexidade e a di-ficuldade de inserir novas abordagens de ensino na cultura tradicional.

Page 54: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

54

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

Ainda, em Nunes, Machado e Costa (2009) é afirmado que apesar dos fatores positivos que incre-mentam a pesquisa na área no Brasil, as aplicações ainda são limitadas e, na maioria, no estágio atual ainda não provêem o realismo necessário para aplicação na rotina profissional. Os autores ainda men-cionam que o envolvimento de empresas que subsidiam as pesquisas em instituições internacionais tem proporcionado um avanço mais rápido na área quando comparado àquele percebido no Brasil. Este envolvimento ainda tem gerado aplicações práticas de qualidade que influenciam diretamente no ensino em saúde e, com isso, proporcionam incremento no aprendizado e diminuição nos custos.

No projeto desenvolvido por Corato, Frucci e Di Baja (2012), que visa a realizar treinamentos para melhorar a higiene das mãos dos cirurgiões em processos pré-operatórios, foram identificados outros desafios, como a dificuldade na interpretação dos gestos em ambientes multiusuários ou em condições de má iluminação, e a limitação do sistema de rastreamento que impede movimentos naturais do usuá-rio. Estes problemas também foram apontados por Blum et al. (2012).

A eliminação de marcadores físicos, que comumente são utilizados em sistemas de rastreamento, também é um desafio apontado por Abderrahim, Kallel e Bouhlel (2013).

Dentre os desafios em um nível mais próximo ao usuário, que já estão sendo estudados, estão aqueles relacionados às interfaces do usuário. Para projetar aplicações interativas com boa ergono-mia e usabilidade deve-se considerar quem irá utilizá-las e onde serão utilizadas. Outra preocupação importante consiste em entender o tipo de atividades que os usuários estão realizando quando estão interagindo com as aplicações. As aplicações devem ser projetadas para fornecer feedback adequado aos usuários, assegurando que eles saibam os próximos passos durante a realização das tarefas. Estu-dar de forma detalhada os aspectos ergonômicos e de usabilidade para implementação de aplicações de Realidade Aumentada na saúde é uma etapa importante para a solução de alguns desses desafios.

1.6 Considerações finais

O desenvolvimento de aplicações com Realidade Aumentada para auxiliar a área da saúde ainda enfrenta alguns desafios e questões a serem respondidas. Como manter um controle realista da intera-ção com os objetos virtuais considerando a reação mais próxima possível àquela que ocorreria no mun-do real? Usar aplicações de Realidade Aumentada para complementar o ensino tradicional em saúde pode melhorar o aprendizado e fornecer benefícios reais para o aluno? Como garantir a eficiência dos sistemas de rastreamento e de projeção em intervenções cirúrgicas não simuladas?

Soluções para tais problemas são fundamentais para o desenvolvimento de novas abordagens tec-nológicas capazes de apoiar de maneira eficiente o ensino em saúde, garantir a segurança ao paciente no momento da intervenção, melhorar o desenvolvimento de produtos tecnológicos e facilitar a trans-ferência do mesmo para o setor produtivo.

1.7 Agradecimentos

Os Autores agradecem à Coordenação de Aperfeiçoamento de Pessoal de Ensino Superior (CAPES) pelo apoio financeiro oferecido por meio do Programa Nacional de Pós Doutorado (PNPD/CAPES).

Page 55: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

55

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

Referências

ABATE, A. F., NAPPI, M., RICCIARDI, S., TORTORA, G., LEVIALDI, S., e DE MARSICO, M. (2010) “Virtual-ICSI: a visual-haptic interface for virtual training in intra cytoplasmic sperm injection.” In Proceedings of the International Conference on Advanced Visual Interfaces, pp. 381-384. ACM, 2010.

ABDERRAHIM, K. B., KALLEL, M., BOUHLEL, M. S. (2013) “Towards an interactive medical system by aug-mented reality”, IJCAIT 2013. International Journal of Computer Applications & Information Technology Vol. 2, Issue II Feb-March 2013 (ISSN: 2278-7720)

ACM Digital Library. http://dl.acm.org/

ASGHAR, z., HICKEy, S., e KAzMI, S. (2009). Developing mobile services for specific user groups using vir-tual environments. In Proceedings of the 8th International Conference on Mobile and Ubiquitous Multimedia (MUM ‘09). ACM, New york, Ny, USA, Article 17, 4 pages.

ASHAB, H. A., VICTORIA A. Lessoway, Siavash Khallaghi, Alexis Cheng, Robert Rohling, and Purang Abol-maesumi. (2012) “AREA: An augmented reality system for epidural anaesthesia.” In Engineering in Medicine and Biology Society (EMBC), 2012 Annual International Conference of the IEEE, pp. 2659-2663. IEEE, 2012.

AUNG, y. M., and AL-JUMAILy, A., (2011) “Rehabilitation exercise with real-time muscle simulation based EMG and AR,” Hybrid Intelligent Systems (HIS), 2011 11th International Conference on, vol., no., pp. 641, 646, 5-8 Dec. 2011.

AzUMA, R. T., BAILLOT, y, BEHRINGER, R., FEINER, S., JULIER, S., MACINTyRE, B. (2001). “Recent Ad-vances in Augmented Reality”. IEEE Computer Graphics and Applications, v. 21, n. 6, p. 34-47. 2001.

BALAzS, D.; ATTILA, E., (2006) “Volumetric Medical Intervention Aiding Augmented Reality Device,” Infor-mation and Communication Technologies, 2006. ICTTA ‘06. 2nd, vol.1, no., pp. 1091, 1096.

BICHLMEIER, C., Ben Ockert, Sandro Michael Heining, Ahmad Ahmadi, and Nassir Navab. (2008). Stepping into the operating theater: ARAV; Augmented Reality Aided Vertebroplasty. In Proceedings of the 7th IEEE/ACM International Symposium on Mixed and Augmented Reality (ISMAR ‘08). IEEE Computer Society, washington, DC, USA, 165-166.

BICHLMEIER, C., HEINING, C. M., RUSTAEE, M., e NAVAB, N. (2007). Laparoscopic Virtual Mirror for Understanding Vessel Structure Evaluation Study by Twelve Surgeons. In Proceedings of the 2007 6th IEEE and ACM International Symposium on Mixed and Augmented Reality (ISMAR ‘07). IEEE Computer Society, washington, DC, USA, 1-4.

BICHLMEIER, C., HEINING, S. M., FEUERSTEIN, M. e NAVAB, N. (2009) “The Virtual Mirror: A New In-teraction Paradigm for Augmented Reality Environments,” IEEE Trans. Medical Imaging, vol. 28, no. 9, pp. 1498-1510.

Page 56: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

56

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

BICHLMEIER, C.; EULER, E.; BLUM, T.; NAVAB, N., “Evaluation of the virtual mirror as a navigational aid for augmented reality driven minimally invasive procedures,” Mixed and Augmented Reality (ISMAR), 2010 9th IEEE International Symposium on, vol., no., pp. 91, 97, 13-16 Oct. 2010.

BILLINGHURST, M., e DUNSER, A. (2012) “Augmented Reality in the Classroom,” Computer, vol. 45, no. 7, pp. 56-63, July, 2012.

BLUM, T.; HEINING, S. M.; KUTTER, O.; NAVAB, N., (2009) “Advanced training methods using an Augmen-ted Reality ultrasound simulator,” Mixed and Augmented Reality, 2009. ISMAR 2009. 8th IEEE International Symposium on, vol., no., pp. 177, 178, 19-22 Oct. 2009.

BLUM, T.; KLEEBERGER, V.; BICHLMEIER, C.; NAVAB, N., (2012) “mirracle: Augmented Reality in-situ vi-sualization of human anatomy using a magic mirror,” Virtual Reality Short Papers and Posters (VRw), 2012 IEEE, vol., no., pp. 169, 170, 4-8 March 2012

BLUTEAU, J., Itaru Kitahara, yoshinari Kameda, Haruo Noma, Kiyoshi Kogure, and yuichi Ohta. (2005). Vi-sual support for medical communication by using projector-based augmented reality and thermal markers. In Proceedings of the 2005 international conference on Augmented tele-existence (ICAT ‘05). ACM, New york, Ny, USA, 98-105.

BOTELLA, C., Juani Bretón-López, Soledad Quero, Rosa Baños, and Azucena García-Palacios. (2010) “Treating cockroach phobia with augmented reality.” Behavior Therapy 41, no. 3: 401-413.

CARDOSO, A. e LAMOUNIER JR., E. A. (2009) “Aplicações de Realidade Virtual e Realidade Aumentada na Educação e Treinamento”. In: Costa, R. M., Ribeiro, M. w. S. (Org.). Aplicações de Realidade Virtual e Aumen-tada. 1ed.Porto Alegre (RS): Sociedade Brasileira de Computação, v. 1, p. 69-89.

CORATO, F., FRUCCI, M., e DI BAJA, G. A. (2012). Virtual training of surgery staff for hand washing proce-dure. In Proceedings of the International working Conference on Advanced Visual Interfaces (AVI ‘12), Genny Tortora, Stefano Levialdi, and Maurizio Tucci (Eds.). ACM, New york, Ny, USA, 274-277.

DINEVAN, A.; yee Mon Aung; Al-Jumaily, A., (2011) “Human computer interactive system for fast recovery based stroke rehabilitation,” Hybrid Intelligent Systems (HIS), 2011 11th International Conference on, vol., no., pp. 647, 652, 5-8 Dec. 2011.

DOS SANTOS, A. D., DE CARVALHO, w. V., MELO JUNIOR, A. J., MENDONçA JUNIOR, G., DE SOUzA JúNIOR, H. C. (2013) workshop on Virtual, Augmented Reality and Games – Full Papers SBC – Proceedings of SBGames 2013.

ECK, U.; SANDOR, C.; LAGA, H. (2013) “Visuo-haptic augmented reality runtime environment for medical training,” Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on, vol., no., pp. 1, 4, 1-4 Oct. 2013.

ESSIG, H., Majeed Rana, Andreas Meyer, André M Eckardt, Horst Kokemueller, Constantin von See, Daniel Lindhorst, Frank Tavassol, Martin Ruecker and Nils-Claudius Gellrich. Essig et al.: (2011) Virtual 3D tumor

Page 57: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

57

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

marking-exact intraoperative coordinate mapping improve post-operative radiotherapy. Radiation Oncology 2011 6:159.

FISCHER, J., BARTz, D., e STRASSER, w. (2004). Occlusion handling for medical augmented reality using a volumetric phantom model. In Proceedings of the ACM symposium on Virtual reality software and technolo-gy(VRST ‘04). ACM, New york, Ny, USA, 174-177.

FORD, S. T., VIOLA, I., BRUCKNER, S., TORP, H., e KISS, G. (2012) “HeartPad: real-time visual guidance for cardiac ultrasound.” In Proceedings of the workshop at SIGGRAPH Asia, pp. 169-176. ACM, 2012.

GOMES, w. L.; KIRNER, C. (2006). Desenvolvimento de Aplicações Educacionais na Medicina Com Realidade Aumentada. Bazar: Software e Conhecimento Livres, (1): 1, 13- 20, Jul. 2006.

GöRGü, L., Abey Campbell, Mauro Dragone, and Gregory M. P. O’Hare. (2010). Exergaming: a future of mixing entertainment and exercise assisted by mixed reality agents. Comput. Entertain. 8, 4, Article 27 (December 2010), 3 pages.

HAMzA-LUP, F.G.; SANTHANAM, A.P.; IMIELINSKA, C.; MEEKS, S.L.; ROLLAND, J.P., (2007) “Distributed Augmented Reality with 3-D Lung Dynamics—A Planning Tool Concept,” Information Technology in Biome-dicine, IEEE Transactions on, vol.11, no.1, pp. 40, 46, Jan. 2007.

HAOUCHINE, N., DEQUIDT, J., BERGER, M.-O., e COTIN, S. (2013) “Deformation-based Augmented Reality for Hepatic Surgery.” In Medicine Meets Virtual Reality, MMVR 20. 2013.

HARISCHANDRA, J.; PERERA, U., (2012) “Virtual stomach visualization and a stomach tumor detection sys-tem,” Biomedical Engineering and Sciences (IECBES), 2012 IEEE EMBS Conference on, vol., no., pp. 377, 382, 17-19 Dec. 2012.

HAVUKUMPU, Juha, Pia Vähäkangas, Eija Grönroos, and Jukka Häkkinen. (2006) “Midwives experiences of using HMD in ultrasound scan.” In Proceedings of the 4th Nordic conference on Human-computer interaction: changing roles, pp. 369-372. ACM, 2006.

HENKE, C. e STANTCHEV, V. (2009). Human Aspects in Clinical Ambient Intelligence Scenarios. In Procee-dings of the 2009 IEEE/wIC/ACM International Joint Conference on web Intelligence and Intelligent Agent Technology - Volume 03(wI-IAT ‘09), Vol. 3. IEEE Computer Society, washington, DC, USA, 341-344.

HONG, H., Hee young Jeong, Rosa I. Arriaga, and Gregory D. Abowd. (2010). TriggerHunter: designing an educational game for families with asthmatic children. In CHI ‘10 Extended Abstracts on Human Factors in Computing Systems (CHI EA ‘10). ACM, New york, Ny, USA, 3577-3582.

HOwARD, A. M., ROBERTS, L., GARCIA, S., e QUARELLS, R. (2012). Using mixed reality to map human exer-cise demonstrations to a robot exercise coach. In Proceedings of the 2012 IEEE International Symposium on Mixed and Augmented Reality (ISMAR) (ISMAR ‘12). IEEE Computer Society, washington, DC, USA, 291-292.

Page 58: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

58

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

HUGHES-HALLETT, A., MAyER, E. K., MARCUS, H.J., CUNDy, T. P., PRATT, P. J., DARzI, A. w., and VALE, J. A. (2014) “Augmented Reality Partial Nephrectomy: Examining the Current Status and Future Perspectives.” Urology 83, no. 2: 266-273.

IEEE xplore Digital Library. http://ieeexplore.ieee.org.

JOHNSON, A.S., SUN, y. (2013) “Exploration of spatial augmented reality on person,” Virtual Reality (VR), 2013 IEEE, vol., no., pp. 59, 60, 18-20 March 2013.

KAMPHUIS, C., BARSOM, E., SCHIJVEN, M., e CHRISTOPH, N. (2014). “Augmented reality in medical edu-cation?.” Perspectives on medical education: 1-12.

KHADEMI, M., HONDORI, H. M., DODAKIAN, L., LOPES, C. V., e CRAMER, S. C. (2013). An assistive table-top keyboard for stroke rehabilitation. In Proceedings of the 2013 ACM international conference on Interactive tabletops and surfaces(ITS ‘13). ACM, New york, Ny, USA, 337-340.

KIRNER, C. and zORzAL, E. R. (2005) “Aplicações Educacionais em Ambientes Colaborativos Realidade Au-mentada”. xVI SBIE2005 - Simpósio Brasileiro de Informática na Educação, UFJF, Juiz de Fora, MG. 2005.

KIRNER, C. e KIRNER, T. G. (2007) “Virtual Reality and Augmented Reality Applied to Simulation Visualiza-tion”. In: El Sheikh, A.A.R.; Al Ajeeli, A.; Abu-Taieh, E.M.O.. (Org.). Simulation and Modeling: Current Techno-logies and Applications. 1 ed. Hershey-Ny: IGI Publishing, 2007, v. 1, p. 391-419.

LAMOUNIER, E., Arthur Bucioli, Alexandre Cardoso, Adriano Andrade, and Alcimar Soares. (2010) “On the use of augmented reality techniques in learning and interpretation of cardiologic data.” In Engineering in Me-dicine and Biology Society (EMBC), 2010 Annual International Conference of the IEEE, pp. 610-613. IEEE, 2010.

LAPEER, R. J.; ROwLAND, R.S.; Min Si Chen, (2004) “PC-based volume rendering for medical visualisation and augmented reality based surgical navigation,” Information Visualisation, 2004. IV 2004. Proceedings. Eighth International Conference on, vol., no., pp. 67, 72, 14-16 July 2004.

LEE, C., Seunghoon Han, Sehui Kim, Mansik Jeon, Jeehyun Kim, e Chulhong Kim. (2014) “Intraoperative sur-gical photoacoustic microscopy (IS-PAM) using augmented reality.” In SPIE BiOS, pp. 89431z-89431z. Interna-tional Society for Optics and Photonics, 2014.

LIN, j.-K.; Po-Hsun Cheng; yen Su; Shao-yu wang; Hsiang-wen Lin; Hsiao-Chi Hou; wen-Cheng Chiang; Ssu-wei wu; Jer-Junn Luh; Mei-Ju Su, (2011) “Augmented reality serious game framework for rehabilitation with personal health records,” e-Health Networking Applications and Services (Healthcom), 2011 13th IEEE Inter-national Conference on, vol., no., pp. 197, 200, 13-15 June 2011.

LINTE, Cristian A., James white, Roy Eagleson, Gerard M. Guiraudon, and Terry M. Peters. (2010) “Virtual and augmented medical imaging environments: Enabling technology for minimally invasive cardiac interventional guidance.” Biomedical Engineering, IEEE Reviews in 3 (2010): 25-47.

Page 59: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

59

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

LIU, w. P., AzIzIAN, M., SORGER, J., TAyLOR,R. H., REILLy, B. K., CLEARy, K., e PRECIADO, D. (2014) “Cadaveric Feasibility Study of da Vinci Si–Assisted Cochlear Implant with Augmented Visual Navigation for Otologic Surgery.” JAMA Otolaryngology–Head & Neck Surgery (2014).

LUO, x., Tiffany Kline, Heidi C. Fischer, Kathy A. Stubblefield, Robert V. Kenyon, and Derek G. Kamper. (2005) “Integration of augmented reality and assistive devices for post-stroke hand opening rehabilitation.” In Engi-neering in Medicine and Biology Society, 2005. IEEE-EMBS 2005. 27th Annual International Conference of the, pp. 6855-6858. IEEE, 2005.

MITHUN, P., and N. R. Raajan. (2013) “Neural Network Based Augmented Reality for Detection of Brain Tu-mor.” International Journal of Engineering & Technology (0975-4024) 5, no. 2.

MUNGUíA, A., SANTANA, P. C., CALDERóN, P., e GONzáLEz, F. (2010). A wearable augmented reality sys-tem to improve the quality of life of sedentary people. In Proceedings of the 3rd Mexican workshop on Human Computer Interaction(MexIHC ‘10), Eduardo H. Calvillo Gámez and Victor M. González y González (Eds.). Universidad Politécnica de San Luis Potosí, San Luis Potosí, S.L.P. México, México, 11-14.

NAVAB, N., BLUM, T., wANG, L., OKUR, A. e wENDLER, T., (2012) “First Deployments of Augmented Reality in Operating Rooms,” Computer, vol. 45, no. 7, pp. 48-55, July.

NAVAB, N.; TRAUB, J.; SIELHORST, T.; FEUERSTEIN, M.; BICHLMEIER, C., (2007) “Action- and workflow-Driven Augmented Reality for Computer-Aided Medical Procedures,” Computer Graphics and Applications, IEEE, vol.27, no.5, pp.10,14, Sept.-Oct. 2007.

NGUyEN, Thinh T., Hoeryong Jung, and Doo yong Lee. “Markerless tracking for augmented reality for image-guided Endoscopic Retrograde Cholangiopancreatography. (2013) “ In Engineering in Medicine and Biology Society (EMBC), 2013 35th Annual International Conference of the IEEE, pp. 7364-7367. IEEE, 2013.

NILSSON, S., and Björn Johansson. (2007) “Fun and usable: augmented reality instructions in a hospital set-ting.” In Proceedings of the 19th Australasian conference on Computer-Human Interaction: Entertaining User Interfaces, pp. 123-130. ACM, 2007.

NUNES, F. L. S., MACHADO, L. S., COSTA e R. M. E. M. (2009) “Realidade Virtual e Realidade Aumentada aplicadas à Saúde”. In: Costa, R.M.; Ribeiro, M. w.S.. (Org.). Aplicações de Realidade Virtual e Aumentada. 1ed.Porto Alegre (RS): Sociedade Brasileira de Computação, v. 1, p. 69-89.

NUNES, F. L. S.; COSTA, R.; MACHADO, L.; MORAES, R. (2011) Realidade Virtual para Saúde no Brasil: con-ceitos, desafios e oportunidades. Revista Brasileira de Engenharia Biomédica 27(4): 243-258.

O’NEILL, Kieran, and Annraoi de Paor. (2011) “The Potency of Optical and Augmented Reality Mirror Boxes in Amputees and People with Intact Limbs.” Advances in Electrical and Electronic Engineering 5, no. 1-2 (2011): 310-315.

Page 60: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

60

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

PALMA, S. R., BECKER, B. C., LOBES, L. A., and RIVIERE, C. N. (2012). Comparative evaluation of monocular augmented-reality display for surgical microscopes. In Engineering in Medicine and Biology Society (EMBC), 2012 Annual International Conference of the IEEE (pp. 1409-1412). IEEE.

PARK, A.; SUTTON, E.; SHEKHAR, R., (2010) “Computed tomography guided laparoscopy: Proof of concept,”” Control Automation Robotics &Vision (ICARCV), 2010 11th International Conference on, vol., no., pp. 213, 215, 7-10 Dec. 2010.

PETERS, T.M.; LINTE, C.A.; wILES, A.D.; HILL, N.; MOORE, J.; wEDLAKE, C.; JONES, D.; BAINBRIDGE, D.; GUIRAUDON, G., (2007) “Development of an augmented reality approach for closed intracardiac interven-tions,” Biomedical Imaging: From Nano to Macro, 2007. ISBI 2007. 4th IEEE International Symposium on, vol., no., pp.1004,1007, 12-15 April 2007.

PIOGGIA, G.; CARBONARO, N.; ANANIA, G.; TOGNETTI, A.; TARTARISCO, G.; FERRO, M.; DE ROSSI, D.; GAGGIOLI, A.; RIVA, G., (2010) “Interreality: The use of advanced technologies in the assessment and treatment of psychological stress,”Intelligent Systems Design and Applications (ISDA), 2010 10th International Conference on, vol., no., pp.1047,1051, Nov. 29 2010-Dec. 1 2010.

PLACITELLI, A.P.; GALLO, L., (2011) “3D point cloud sensors for low-cost medical in-situ visualization,” Bioin-formatics and Biomedicine workshops (BIBMw), 2011 IEEE International Conference on, vol., no., pp.596,597, 12-15 Nov. 2011.

QIAO, C., yongtian wang, Dongdong weng, and Hongyu Qi. (2011). An augmented reality based teeth shade matching system. In Proceedings of the 10th International Conference on Virtual Reality Continuum and Its Applications in Industry (VRCAI ‘11). ACM, New york, Ny, USA, 371-374.

QUINTANA, E., e FAVELA, J. (2013) “Augmented reality annotations to assist persons with Alzheimers and their caregivers.” Personal and ubiquitous computing 17, no. 6 (2013): 1105-1116.

REGENBRECHT, H. T. and HOERMANN, S. (2012). TheraMem: physical rehabilitation with augmented reflec-tion technology. In Proceedings of the 13th International Conference of the Nz Chapter of the ACM’s Special Interest Group on Human-Computer Interaction (CHINz ‘12). ACM, New york, Ny, USA, 89-89.

REITINGER, B, Pascal werlberger, Alexander Bornik, Reinhard Beichel, and Dieter Schmalstieg. (2005). Spa-tial Measurements for Medical Augmented Reality. In Proceedings of the 4th IEEE/ACM International Sympo-sium on Mixed and Augmented Reality(ISMAR ‘05). IEEE Computer Society, washington, DC, USA, 208-209.

ROLLAND, J. P., wRIGHT, D. L., e KANCHERLA, A. R. (1997) “Towards a novel augmented-reality tool to visualize dynamic 3-D anatomy”. Stud Health Technol Inform. 1997; 39:337-48.

SAMOSKy, J. T., NELSON, D. A., wANG, B., BREGMAN, R., HOSMER, A., MIKULIS, B., e wEAVER, R. (2012) “BodyExplorerAR: enhancing a mannequin medical simulator with sensing and projective augmented reality for exploring dynamic anatomy and physiology.” In Proceedings of the Sixth International Conference on Tangible, Embedded and Embodied Interaction, pp. 263-270. ACM, 2012.

Page 61: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

61

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

Scharver, Chris, Ray Evenhouse, Andrew Johnson, and Jason Leigh. (2004) “Designing cranial implants in a haptic augmented reality environment.” Communications of the ACM 47, no. 8 (2004): 32-38.

SEOKHEE J.; KNOERLEIN, B.; HARDERS, M.; Gabjong Han; Seungmoon Choi, (2010) “Breast cancer palpa-tion system using haptic augmented reality,” Mixed and Augmented Reality (ISMAR), 2010 9th IEEE Interna-tional Symposium on, vol., no., pp. 308, 308, 13-16 Oct. 2010.

SHAMIR, Reuben R., Martin Horn, Tobias Blum, Jan-Hinnerk Mehrkens, yigal Shoshan, Leo Joskowicz, and Nassir Navab. (2011) “Trajectory planning with Augmented Reality for improved risk assessment in image-gui-ded keyhole neurosurgery.” In Biomedical Imaging: From Nano to Macro, 2011 IEEE International Symposium on, pp. 1873-1876. IEEE, 2011.

SHELTON, Damion, Bing wu, Roberta Klatzky, and George Stetten. (2007) “Design and calibration of a virtual tomographic reflection system.” In Biomedical Imaging: From Nano to Macro, 2007. ISBI 2007. 4th IEEE Inter-national Symposium on, pp. 956-959. IEEE, 2007.

SHEN, y., S. K. ONG, and A. y. C. Nee. (2008) “An augmented reality system for hand movement rehabilitation.” In Proceedings of the 2nd International Convention on Rehabilitation Engineering & Assistive Technology, pp. 189-192. Singapore Therapeutic, Assistive & Rehabilitative Technologies (START) Centre, 2008.

Sheng-Jhe Hsu, wen-Sheng Tseng, Fu-Chieh Hsu, and yung-ying Lo. (2013). iSpine: a motion-sensing edu-tainment system for improving children’s spinal health. In CHI ‘13 Extended Abstracts on Human Factors in Computing Systems (CHI EA ‘13). ACM, New york, Ny, USA, 2635-2638.

SIELHORST, T., FEUERSTEIN, M. e NAVAB, N. (2008) “Advanced Medical Displays: A Literature Review of Augmented Reality”. J. Display Technology. vol 4, no 4., pp. 451-467.

SOLANKI, M.; RAJA, V., (2010) “Haptic based augmented reality simulator for training clinical breast exami-nation,” Biomedical Engineering and Sciences (IECBES), 2010 IEEE EMBS Conference on, vol., no., pp.265,269, Nov. 30 2010-Dec. 2 2010.

SOLER, L., NICOLAU, A., SCHMID, J., KOEHL, C., MARESCAUx, J., PENNEC, x. e AyACHE, N. (2004). Virtual Reality and Augmented Reality in Digestive Surgery. In Proceedings of the 3rd IEEE/ACM International Symposium on Mixed and Augmented Reality(ISMAR ‘04). IEEE Computer Society, washington, DC, USA.

SONNTAG, D.; TOyAMA, T., (2013) “On-Body IE: A Head-Mounted Multimodal Augmented Reality System for Learning and Recalling Faces,” Intelligent Environments (IE), 2013 9th International Conference on, vol., no., pp.151,156, 16-17 July 2013.

SUTHERLAND, C.; HASHTRUDI-zAAD, K.; SELLENS, R.; ABOLMAESUMI, P.; MOUSAVI, P., (2013) “An Augmented Reality Haptic Training Simulator for Spinal Needle Procedures,” Biomedical Engineering, IEEE Transactions on, vol.60, no.11, pp. 3009, 3018, Nov. 2013.

Page 62: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

62

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 49-62, maio/2014.ZoRZAl, Ezequiel Roberto; nunES, Fátima de lourdes dos Santos. Realidade Aumentada e suas Aplicações na Área de Saúde.

SUTHERLAND, C.; HASHTRUDI-zAAD, K.; SELLENS, R.; ABOLMAESUMI, P.; MOUSAVI, P., (2013) “An Augmented Reality Haptic Training Simulator for Spinal Needle Procedures,” Biomedical Engineering, IEEE Transactions on, vol.60, no.11, pp. 3009, 3018, Nov. 2013.

THORANAGHATTE, Ramesh U., Jaime Garcia Giraldez, and Guoyan zheng. (2008) “Landmark based aug-mented reality endoscope system for sinus and skull-base surgeries.” In Engineering in Medicine and Biology Society, 2008. EMBS 2008. 30th Annual International Conference of the IEEE, pp. 74-77. IEEE, 2008.

TIVATANSAKUL, S.; OHKURA, M., (2013) “Healthcare system design focusing on emotional aspects using augmented reality — Relaxed service design,” Computational Intelligence in Healthcare and e-health (CICA-RE), 2013 IEEE Symposium on, vol., no., pp. 88, 93, 16-19 April 2013

VANDERMAESEN, M., DE wEyER, T., LUyTEN, K., e Coninx, K. (2014). “PhysiCube: providing tangible in-teraction in a pervasive upper-limb rehabilitation system.”. In Proceedings of the 8th International Conference on Tangible, Embedded and Embodied Interaction (TEI ‘14). ACM, New york, Ny, USA, 85-92.

VIDAL, F. P., Fernando Bello, Ken w. Brodlie, Nigel w. John, Derek Gould, R. Phillips, and N. J. Avis. (2006) “Principles and applications of computer graphics in medicine.” In Computer Graphics Forum, vol. 25, no. 1, pp. 113-137. Blackwell Publishing Ltd., 2006.

wEN, R., NGUyEN, B. P., CHNG, C.-B., e CHUI, C-K. (2013) “In situ spatial AR surgical planning using projec-tor-Kinect system.” In Proceedings of the Fourth Symposium on Information and Communication Technology, pp. 164-171. ACM, 2013.

wEN, Rong, Liangjing yang, Chee-Kong Chui, Kah-Bin Lim, and Stephen Chang. (2010) “Intraoperative visual guidance and control interface for augmented reality robotic surgery.” In Control and Automation (ICCA), 2010 8th IEEE International Conference on, pp. 947-952. IEEE, 2010.

wILSON, K. L., DOSwELL, J. T., FASHOLA, O. S., Debeatham, w., Darko, N., walker, T. M., Danner, O. K., Matthews, L. R., e weaver, w. L. (2013) “Using Augmented Reality as a Clinical Support Tool to Assist Combat Medics in the Treatment of Tension Pneumothoraces.” Military medicine 178, no. 9: 981-985.

wRzESIEN, M., BURKHARDT, J.-M., RAyA, M. A., and BOTELLA, C.. (2011). Mixing psychology and HCI in evaluation of augmented reality mental health technology. In CHI ‘11 Extended Abstracts on Human Factors in Computing Systems (CHI EA ‘11). ACM, New york, Ny, USA, 2119-2124.

wU, J.-R., wANG, M.-L., LIU, K-C., HU, M.-H., e LEE, P.-y. (2014). “Real-time Advanced Spinal Surgery via Visible Patient Model and Augmented Reality System.” Computer methods and programs in biomedicine.

Page 63: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

63

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 63-68, maio/2014.cARdoSo, Alexandre. Interfaces de Controle em Sistemas de Realidade Virtual.

Interfaces de Controle em Sistemas de Realidade Virtual

Alexandre Cardoso Edgard Lamounier JúniorAlexandre Carvalho Silva

Gesmar de Paula Santos Júnior

Abstract

One fundamental aspect in Virtual Reality based environments is immersion. This feature is respon-sible for providing the user with the feeling of presence within the environment. Using 2D components to develop control interface in 3D virtual environment is common procedure. However, due to a strong conflict between 2D and 3D paradigms, reduction of the immersion feeling can occur. Thus, the objective of this chapter is to demonstrate the main ways of representing and interacting with control interfaces that preserves the feeling of immersion when 2D information must be evaluated during 3D interaction.

Resumo

Um dos aspectos fundamentais em ambientes baseado em técnicas de Realidade Virtual é a imersão. Esta é uma característica responsável por produzir ao usuário a sensação ou sentimento de presença no ambiente virtual. A utilização de componentes 2D para o desenvolvimento de interfaces de controle em ambientes virtuais 3D é uma estratégia comum, mas devido ao forte confronto entre os paradigmas bidimensional e tridimensional a mesma pode provocar redução da sensação de imersão ao usuário. Baseado neste contexto, o objetivo deste trabalho é demonstrar as principais formas de representar e in-teragir com interfaces de controle, enfatizando o estado da arte sobre as principais técnicas responsáveis por preservar a sensação de imersão durante a utilização destes recursos.

1.1 Introdução

Um dos diferencias de sistemas de Realidade Virtual refere-se à sensação de presença que tais sistemas propiciam, o sentimento diferenciado de “estar lá” (Riva e Mantovani, 2012). Tal sensação é o produto da experiência intuitiva aliado ao julgamento meta-cognitivo, relativo às sensações experi-mentadas pelos usuários. O conceito de presença está diretamente relacionado à condição de transfor-mar, intuitivamente, intenções em ações, seja em ambientes reais, seja em ambientes virtuais.

63

Page 64: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

64

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 63-68, maio/2014.cARdoSo, Alexandre. Interfaces de Controle em Sistemas de Realidade Virtual.

Neste contexto e, considerando a necessidade de suportar controle e operação de sistemas, com uso de ambientes virtuais, destacam-se, os seguintes aspectos:

• Classificação das Interfaces de Controle;• Integração das widgets (objetos de interface) com ambientes virtuais;• Visualização dinâmica da informação, sem perda da sensação de imersão;• Projeto direcionado à necessidades dos usuários;• Métricas de Avaliação de Interface.

1.2 Classificação das Interfaces de Controle

A Realidade Virtual (RV) pode ser utilizada para a visualização de eventos, propriedades e com-portamentos presentes em uma simulação. Ao mesmo tempo, uma simulação pode integrar a tecno-logia da RV para demonstrar comportamentos específicos. Geralmente, um sistema de RV procura reproduzir características presentes no mundo real. Essas mesmas características devem ser obtidas através de simulações que podem ser realizadas por meio de SRV, definindo-se ações sobre objetos específicos ou sobre todo a ambiente. A física, o movimento e a colisão entre objetos exemplificam a simulação de comportamentos apresentadas em um ambiente virtual (Kirner & Siscoutto, 2008).

O uso da RV para o monitoramento de dados e comportamentos presentes em uma simulação é possível e muito útil. Nesse caso, a RV é utilizada como um módulo da simulação possibilitando análises visuais. Este módulo pode ser complexo e apresentar funções voltadas para uma visualização realística e interativa de uma simulação. Para que isso aconteça, os objetos 3D devem ser modelados em uma ferramenta de autoria e, posteriormente, ser integrado ao simulador. Ainda é necessária uma interface especial que possibilita visualizações interativas, além da possibilidade de alteração de parâ-metros que definem aspectos da simulação (Bellinger, 2004).

1.3 Integração do conteúdo 2D com 3D

Novas tendências no campo da Interação Homem-Computador (IHC) começaram a surgir com a ascensão dos SRV, como Realidade Aumentada (R.A.), Interação Natural (I.N) e sistemas dotados de grandes telas para exibição de aplicações tridimensionais. Nesse campo de desenvolvimento, a intera-ção acontece em um contexto espacial com diferentes graus de liberdade. Com o tempo, pesquisadores e desenvolvedores perceberam diferenças fundamentais entre as interfaces presentes em ambientes tridimensionais e em computadores convencionais. Com isso, uma área de pesquisa separada passou a ser necessária para estudar as técnicas de interação que as novas aplicações tridimensionais exigem (Bowman et al. 2011).

Em uma interação 3D, as atividades de um usuário representam uma atuação sobre o ambiente em um contexto tridimensional. Mas, isto não quer dizer que sistemas tridimensionais interativos exijam interações 3D. Por exemplo, se um usuário explora o modelo em seu computador desktop escolhendo pontos de vista dispostos em um menu tradicional, não ocorreu interações tridimensionais, não exi-gindo o uso de dispositivos 3D especiais de interação (Bowman et al. 2011).

Page 65: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

65

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 63-68, maio/2014.cARdoSo, Alexandre. Interfaces de Controle em Sistemas de Realidade Virtual.

Técnicas de interação são métodos utilizados pelos usuários para completar alguma tarefa atra-

vés de uma interface, sendo que suas vantagens e desvantagens dependem diretamente dos requisitos particulares de um sistema. Dessa forma, padrões não são adotados e hardware e software devem ser levados em consideração. Para que interações homem-máquina sejam naturais e intuitivas, metáforas são utilizadas. Metáforas podem ser entendidas como modelos mentais que permitem ao usuário a aplicação de conhecimentos cotidianos em um ambiente virtual (Schlattmann & Klein, 2007).

A seguir são apresentados os principais aspectos no processo de Interação 3D.

1.4 Técnicas de visualização da informação

1.4.1 Conceitos

A grande quantidade de informações torna o processo de busca, análise e compreensão dos dados uma tarefa árdua, tanto para a máquina quanto para o homem. Pode-se considerar então que uma tomada de decisão baseada em um grande volume de dados é uma tarefa difícil de realizar, mesmo esta sendo uma tarefa realizada de forma muito mais rápida pela máquina do que pelo homem. Em todo caso, ruídos (dados irrelevantes), vão estar dispostos nos bancos de informações e, ao mesmo tempo, informações importantes poderão ser ignoradas devido ao grande volume de dados. Diante deste cená-rio, inovações surgiram para melhorar as formas de representar a informação (Zorzal, 2007).

A Visualização da Informação é um campo de estudo muito útil que auxilia no entendimento de algum assunto através de representações visuais. A utilização do espaço tridimensional pode desper-tar o interesse em diversos tipos de usuário, não somente pela forma de representação dos dados, mas também pelas novas propostas de interação. A Realidade Virtual e Aumentada apresentam formas de visualização tridimensional facilitando a análise e compreensão dos dados que, por sua vez, podem estar dispostos de forma intuitiva e interativa (Zorzal, 2007).

1.4.2 Técnicas de Visualização

Segundo Keim (2002) e Zorzal (2007), existem técnicas de visualização que possibilitam combina-ções para o surgimento de técnica híbridas como:

• Exibição 2D ou 3D: compreendem técnicas simples de apresentação como gráficos, por exemplo;

• Exibição baseada em pixels: dados multidimensionais são utilizados e, através dos pixels do dispositivo de exibição, cores são usadas para representar valores.

• Exibição Hierárquica: ocorre uma divisão dos dados para a criação de uma estrutura hierár-quica. A técnica Dimensional Stacking exemplifica esta técnica de visualização.

1.5 Design Centrado no Usuário

Toda interface deve ser bem projetada a fim de obter melhor aproveitamento do software e do uso do hardware disponível. Para o desenvolvimento destas interfaces, existem diversos

Page 66: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

66

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 63-68, maio/2014.cARdoSo, Alexandre. Interfaces de Controle em Sistemas de Realidade Virtual.

padrões de design de interfaces que se encaixam com a plataforma e domínio da aplicação (Mi-crosoft, 2013)

Um dos padrões e estilos de interação utilizados em SRV é o WIMP (Windows, Icons, Menus e Pointers). Esse padrão é baseado no uso de janelas e widgets, que são sub-interfaces do mesmo sistema direcionadas a uma ação específica. Por se tratar de um padrão antigo e muito utilizado em computa-dores pessoais o usuário comum assimila rapidamente suas funções. Assim, este padrão utiliza o co-nhecimento prévio e nível de experiência do usuário para manipular e interagir com maior facilidade (Bowman et al., 2011).

O Design Centrado no Usuário (DCU) surgiu da Interface Humano Computador (IHC) e consiste em uma metodologia de desing de software para desenvolvedores e designers. Essencialmente, esta voltada a criar interfaces de sistemas que atendam às necessidades de seus usuários, garantindo boa usabilidade. (Lowdermilk, 2013).

Ainda de acordo com Lowdermilk (2013), o DCU pode ser implementado para garantir que a interface elaborada proporcione uma ótima experiência ao usuário, pois seu desenvolvimento funda-menta-se em colocar os usuários no centro do processo de desenvolvimento, eliminando ambiguidades e enfatizando suas necessidades. Além do mais, há a questão da experiência por parte do usuário ao design interfaces com estilos já conhecidos, englobando as funcionalidades, modelos mentais e quanto elas são cativantes e agradáveis de ser utilizadas. Por fim, os processos de DCU não estão focados so-mente em estética ou em fazer com que tudo pareça mais bonito, embora possa ser importante em um aplicativo, a estética não representa todo o cenário.

1.6 Métricas de Avaliação de Interface

Durante todo período de desenvolvimento e aplicação de um software deve-se ter o envolvimento por parte dos potenciais usuários. Para análise de uma determinada estratégia, devem ser aplicados diversos métodos como: reuniões, entrevistas, apresentação do software aos usuários, momentos de observação durante a utilização da estratégia, aplicação de questionários de avaliação e formulários para aplicação de tarefas para análise de desempenho.

Uma ferramenta para desenvolvimento de questionários de avaliação de interfaces é o QUIS (Questionnaire for User Interaction Satisfaction). O QUIS foi projetado para avaliar a satisfação subjeti-va dos usuários com aspectos específicos da interface homem-computador (QUIS, 2014).

Lowdermilk (2013) relata que os usuários podem dizer muito bem sobre o que está funcionando e o que não está. No entanto uma maneira eficiente de perceber as necessidades dos usuários é obser-vando-os diretamente. A seguir, apresentam-se os critérios analisados juntamente com os relatos dos métodos de análise.

1.6.1 Reação à Utilização do Sistema

Critério que analisa a satisfação do usuário em relação à proposta do protótipo. Pode-se notar e concluir os seguintes aspectos por parte dos usuários:

Page 67: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

67

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 63-68, maio/2014.cARdoSo, Alexandre. Interfaces de Controle em Sistemas de Realidade Virtual.

• Grau de interesse pela aplicação;• Qualidade da visualização utilizando técnicas de RV;• Dificuldade de utilização do sistema (navegar pelo ambiente, considerando todas as possíveis

formas de navegação).

1.6.2 Interface de Controle – Widgets 2D

Critério que analisa menu, sub menu, interface alternativa, janelas de controle e de apresentação de dados. Pode-se observar e concluir os seguintes aspectos por parte dos usuários:

• Facilidade ou dificuldade de utilização e aprendizagem;• Nível de eficiência para efetuar comandos de interação;• Aparência e estética da aplicação;• Sensação de integração ao ambiente 3D.

1.6.3 Camadas de Conteúdo

Critério que analisa a utilização, eficiência, visualização das Camadas de Conteúdo. Pode-se ob-servar e concluir os seguintes aspectos por parte dos usuários:

• Apresentou fácil utilização e eficiência para o manuseio;• Recurso adequado para atividades de monitoramento;• Transmitiu boa sensação de integração ao ambiente virtual;• Relatou-se necessidade da criação de recursos que permita ao usuário criar suas próprias

camadas de acordo com sua necessidade.

1.6.4 Capacidades e Aprendizagem da Interface

Critério que analisa a forma de apresentação da interface (velocidade das animações e transições, layout), tempo de resposta e atualização. Pode-se observar e concluir os seguintes aspectos por parte dos usuários:

• Velocidade de transição e animação;• Layout e dimensões dos componentes;• Facilidades de realizar tarefas (ações de interação);• Tempo de aprendizagem;• Velocidade de exibição dos conteúdos.

1.6.5 Capacidades e Aprendizagem da Interface

Critério que analisa a sensação de presença do usuário, considerando a integração das interfaces de controle no ambiente virtual e o confronto o paradigmas (2D e 3D). Pode-se observar e concluir os seguintes aspectos por parte dos usuários:

Page 68: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

68

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 63-68, maio/2014.cARdoSo, Alexandre. Interfaces de Controle em Sistemas de Realidade Virtual.

• Empatia, interesse e envolvimento com as atividades realizadas;• Sensação de realismo durante a execução de comandos;• Homogeneidade entre os componentes de controle 2D e o ambiente 3D.

1.6.6 Visualização Estereoscópica

Critério que analisa de forma geral a apresentação das interfaces de controle durante o uso dos óculos 3D ativo. Pode-se observar e concluir os seguintes aspectos por parte dos usuários:

• Conforto na utilização de óculos de RV;• Visualização dos efeitos de profundidade e paralaxe.

Referências

BELLINGER, G. Modeling & simulation: An introduction. Disponível em: <http://www.systems-thinking.org/modsim/modsim.html>. Acesso em 16/02/2014.

BOwMAN, D.; KRUIJFF, E.; LAVIOLA, J.; POUPyREV, I. 3D User Interfaces – Theory and Practice, Addision wesley; 2011.

KEIM, D. “Information Visualization and Visual Data Mining.” IEEE Transactions on Visualization and Com-puter Graphics, vol. 7, n. 1, jan-mar, 2002.

KIRNER, C.; SICOUTTO, R. Realidade Virtual e Aumentada: Conceitos, Projeto e Aplicações. Rio de Janeiro: Ix Symposium on Virtual and Augmented Reality, 2008. 292 p.

LOwDERMILK, T. Design Centrado no Usuário, O’Reilly Novatec; 2013.

Microsoft. windows User Experience Interaction Guidelines. Microsoft Download Center, 2012. Disponivel em: <http://www.microsoft.com/en-us/download/confirmation.aspx?id=2695>. Acesso em: 19 de Novembro de 2013.

Quis. Questionnaire for User Interaction Satisfaction, 2014. Disponível em: <http://www.lap.umd.edu/quis>. Acesso em: 07 de Janeiro de 2014.

RIVA, Giuseppe e MANTOVANI, Fabrizia - Being There: Understanding the Feeling of Presence in a Synthetic Environment and Its Potential for Clinical Change in “Virtual Reality in Psychological, Medical and Pedagogi-cal Applications”, book edited by Christiane Eichenberg, Intech, September, 2012.

SCHLATTMANN, M. e KLEIN, R. Simultaneous 4 gestures 6 DOF real-time two-hand tracking without any markers. In: ACM Symposium on Virtual Reality Software and Technology (VRST ‘07). Newport Beach, California, pp. 39-42.

zORzAL, E. Estratégia para o desenvolvimento de aplicações Adaptativas de Visualização da Informação com Realidade Aumentada; Tese (Doutorado em Ciências) – Faculdade de Engenharia Elétrica – UFU, Uberlândia, 2007.

Page 69: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

69

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

Projeção Holográfica em Ambientes de Realidade Virtual

Manoela Rogofski BrumRafael Rieder

Abstract

Holography is a photographic technique which enables three-dimensional images to be made from the co-ding of visual information that can be fully redesigned. There are different types of holograms, including the real image holograms that enable to create or display moving images in three dimensions, depending on the technology and materials used. The aim of this paper is to present the relationship between holo-graphy and virtual reality environments, showing the types of holograms, the commercial solutions, its future applications and optimizations in order to improve visual quality and interaction, and a simple example of their use.

Resumo

A Holografia é uma técnica fotográfica que permite que imagens tridimensionais sejam criadas a partir da codificação de uma informação visual de modo que possa ser recriada integralmente. Existem diver-sos tipos de hologramas, entre os quais se destaca o holograma de imagem real, em que é possível gerar ou apresentar imagens em movimento em três dimensões, dependendo da tecnologia e dos materiais utilizados. O objetivo deste trabalho é apresentar a relação da holografia com os ambientes de Reali-dade Virtual, mostrando os tipos de hologramas, as soluções que existem no mercado, suas possíveis aplicações e otimizações de projeto para melhor qualidade visual e maior interação, e um exemplo simples de sua utilização.

1.1 Introdução

De acordo com Gimenez e Kirner (1997), a Realidade Virtual (RV) é uma técnica avançada de interface do usuário que permite realizar imersão, interação e navegação em um ambiente sintético tri-

69

Page 70: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

70

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

dimensional (3D), gerado por computador, utilizando canais multissensoriais. Geralmente a RV é clas-sificada de acordo com os níveis de interação, imersão e navegação que proporciona (Hancock, 1995).

Realidade Aumentada (RA) é uma área da RV que utiliza uma tecnologia específica para aumen-tar o desempenho humano na realização de tarefas. A RA permite combinar imagens geradas no mun-do virtual com imagens do mundo real por meio de câmeras ou capacetes parcialmente transparentes provido de sensores. O objetivo é suplementar um cenário real com informações geradas pelo compu-tador. Segundo Bajura (1995) os sistemas de RA devem registrar as imagens com precisão de forma a levar o usuário a crer que os mundos real e virtual ocupam o mesmo espaço.

A holografia pode ser considerada uma forma de RA, pois também trata da projeção de objetos virtuais em um ambiente real. Na RA é necessário um meio de visualização do objeto projetado. Na holografia projetada, a projeção de imagens virtuais realmente acontece no mundo real e estas imagens podem ser visualizadas sem o uso de dispositivos que permitam isso. Por isso, Rodrigues Filho (2008) destaca que ela não pode ser confundida com uma simples forma de visualização em três dimensões, pois contempla um processo de codificação de uma informação que posteriormente é recriada na íntegra.

A holografia pode enriquecer e facilitar a prática de atividades do cotidiano e auxiliar em várias áreas do mercado, como a área acadêmica, a comercial, de comunicações e da medicina. Um exemplo prático desse uso é a ”Mesa tática”, uma tela de projeções holográfica utilizada por um programa es-portivo para ajudar na análise de lances das partidas e de esquemas táticos de cada time.

Para tanto, o objetivo deste trabalho é explicar, basicamente, o que é um holograma, sua origem e variedades, e estudar como essa tecnologia pode ser integrada com os recursos da RV, de modo a gerar novas aplicações que possam auxiliar as mais diversas atividades humanas. A Seção 5.2 trata da concepção dos hologramas e traz uma explicação especifica sobre eles; a Seção 5.3 explica a dife-rença entre os tipos de hologramas, como são gerados e a sua aplicabilidade; a Seção 5.4 descreve os dispositivos que podem ser utilizados para a interação com um ambiente virtual; a Seção 5.5 mostra pesquisas na área da projeção holográfica computacional e quais as variadas formas de aplicação desta tecnologia; um simples exemplo prático é apresentado na Seção 5.6; e a Seção 5.7 traz as consi-derações finais do trabalho.

1.2 Origem e Histórico dos Hologramas

Holografia significa gravação ou registro do todo. De acordo com Daibert (1998), ela foi concebi-da em 1948 pelo húngaro Denis Gabor, mas somente aplicada pela primeira vez nos anos 1960 com a utilização do laser. Na época em que Gabor idealizou a técnica não havia a tecnologia necessária para reproduzi-la integralmente. Para tanto, ele realizou um holograma simples a partir do uso de uma luz filtrada de uma lâmpada com arco de mercúrio – o que lhe rendeu o prêmio Nobel.

A holografia é utilizada pela Física como uma sofisticada técnica fotográfica, de análise de mate-riais ou de armazenamento de dados. Em suma, ela é uma técnica de reprodução de uma imagem assim como a fotografia ou o cinema. O que a difere e a particulariza é a sua característica de reproduzir o todo em cada uma de suas partes. Olhando para apenas um trecho da imagem, o observador pode enxergar a imagem por inteiro, assim como se estivesse olhando apenas por uma parte de uma janela visualizaria a paisagem por inteiro (Figura 1).

Page 71: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

71

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

Figura 1. Divisibilidade dos hologramas [How Stuffworks, 2007]

1.3 Tipos de Hologramas e Aplicações

Pode-se dizer que o campo de aplicação da holografia é vasto. Nas Artes, por exemplo, Hariharan (2002) afirma que em 1968 ocorreu a primeira exposição de arte holográfica realizada na Cranbrook Academy of Art, em Michigan. O autor também cita que Salvador Dalí foi o primeiro artista surrealista a empregar a holografia artisticamente.

Outra área que especula a aplicabilidade da holografia é a que trata da gravação e armazenamento de dados. Pela efetividade do processo de gravação e reconstrução que a holografia permite, existem estudos e pesquisas que procuram utilizar as técnicas holográficas para o armazenamento de dados. De acordo com Pégard (2011), o armazenamento holográfico regravável pode ser alcançado por meio do efeito foto refrativo em cristais.

Rodrigues Filho (2008) destaca que hologramas também são utilizados na área da segurança em CDs e DVDs originais, documentos, cartões de crédito e moedas de vários países devido à sua dificul-dade de falsificação. Neste mesmo trabalho, o autor classifica hologramas em seis diferentes formas.

Hologramas de transmissão utilizam um, dois ou mais feixes de laser que atingem o filme pelo mesmo lado. A imagem só pode ser vista através do laser, e é considerada bastante fiel à imagem real. A Figura 2 e a Figura 3 apresentam, respectivamente, hologramas utilizando esta técnica.

Page 72: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

72

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

Figura 2. Hologramas de transmissão com feixe simples [Rodrigues Filho, 2008].

Figura 3. Hologramas de transmissão com feixe duplo [Rodrigues Filho, 2008].

Já hologramas de reflexão trabalham com raios laser que atingem o filme por lados opostos. Esse tipo de holograma pode ser visualizado com o auxílio de qualquer luz concentrada, como a luz do sol ou a luz de uma lanterna. A Figura 3 e a Figura 4 apresentam, respectivamente, hologramas de reflexão com um e dois feixes de luz.

Nos hologramas multiplex, a luz evidencia imagens diferentes de acordo com seu ângulo de inci-dência, podendo ser registradas diversas figuras em sequência com certo grau de animação holográfi-ca. Os hologramas Arco-íris ou de Benton pertencem a esta categoria.

Figura 4. Hologramas de reflexão com feixe simples [Rodrigues Filho, 2008].

Page 73: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

73

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

Figura 5. Hologramas de reflexão com feixe duplo [Rodrigues Filho, 2008].

Nos hologramas de canais múltiplos, duas ou mais imagens são visíveis de diferentes ângulos. Este tipo de holograma se bifurca conforme a quantidade de imagens que podem ser vistas.

Hologramas de imagem real são hologramas de reflexão produzidos através de hologramas de transmissão e dão a impressão de que a imagem está em frente ao filme de forma incrivelmente realista.

Já hologramas impressos são produzidos através de registros em materiais como mylar alumini-zado, e fotossenssibilizados em dicromatos e polímeros. Em geral, são utilizados comercialmente em aplicações de segurança, embalagem e propagandas.

1.4 Interações em Ambientes Virtuais Holográficos

De acordo com Prado (2012), é possível interagir em ambientes holográficos com o uso de dispo-sitivos para reconhecimento de gestos que empregam sensores de profundidade, entre eles Microsoft Kinect, ASUS Xtion e Prime Senses Prime Sensor.

Cada um destes dispositivos é composto de dois componentes básicos de hardware mostrados na Figura 6:uma câmera RGB e sensores de profundidade  [Moreira, 2013]. Eles também possuem um array de microfones, útil para reconhecimento de voz, e não determinante para detecção de corpos e gestos [Silveira 2011]. A câmera RGB é utilizada para retorno de vídeo ao usuário, reconhecimento de rostos e outras características. O sensor de profundidade é composto por um emissor de luz infraver-melha e um sensor CMOS (Complimentary Metal-Oxide Semiconductor) que funciona como uma câ-mera. Este sensor CMOS capta os padrões emitidos em infravermelho para identificar a profundidade dos objetos presentes na cena, independente de questões de iluminação [Sá 2011]. Logo, o conjunto de sensores de profundidade é o responsável pela detecção dos elementos.

Page 74: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

74

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

Figura 6. Componentes dos principais sensores de profundidade no mercado [Prado 2012].

Conforme Barwinski (2009), pesquisadores da Universidade de Tóquio estão utilizando este tipo de tecnologia para desenvolver um sistema que permite a interação com um objeto projetado (Figura 7). Os sensores são capazes de captar movimentos do usuário e permitir que o objeto virtual interaja com qualquer coisa externa a ele, ao mesmo tempo em que ondas de ultrassom dão a impressão ao usuário de que está realmente tocando o objeto.

Figura 7. Sistema holográfico interativo [Iwamoto, 2008].

Page 75: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

75

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

1.5 Aplicações de Mercado e o Futuro da Tecnologia Holográfica

Pode-se dizer que o futuro da tecnologia holográfica corresponde a exemplos de projeções holo-gráficas demonstradas em produções como no filme “Iron Man 3”, embora ainda não existam equi-pamentos capazes de produzir hologramas virtuais e de alta qualidade como as imagens apresentadas pela Figura 8.

Figura 8. Imagens de hologramas do filme “Iron Man 3”.

Com relação a dispositivos e interfaces, Peyghambarian et al (2010) desenvolveram um novo tipo de holograma capaz de projetar uma imagem 3D que se movimenta, e dispensa a necessidade de óculos especiais ou qualquer outro dispositivo (Figura 9). Várias câmeras gravam a imagem, cada uma a partir de uma perspectiva diferente. Um conjunto de lasers é utilizado para transcrever a imagem, pixel por pixel, em uma tela feita com material foto refratário (polímero). O holograma desaparece naturalmente após segundos ou minutos, dependendo dos parâmetros do sistema, mas ele também pode ser apagado assim que uma nova imagem é gravada.

Page 76: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

76

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

Figura 9. Sistema de holografia em tempo real [Amoroso, 2010].

Tori e Miranda (2012) descrevem um sistema que permite a visualização de objetos 3D como se estivessem nas mãos do observador, e que reagem de acordo com os movimentos do usuário (Figura 10). Neste projeto, os objetos só podem ser visualizados com o uso de óculos e monitores 3D ou capa-cetes de visualização 3D.

Figura 10. Imagem conceitual da interação holográfica no projeto VIDA [Tori e Miranda, 2012]

A área de aplicação dos hologramas para o mercado é extensa. Eles podem ser úteis, por exemplo, em sala de aula, como ferramenta para um melhor entendimento dos conceitos teóricos estudados em disciplinas como História, Biologia e Geografia. Nestes ambientes, os alunos poderiam interagir com elementos virtuais, despertando seu interesse pelo conteúdo, e permitindo maior amplitude na análise dos detalhes.

Freitas (2010) relata em seu artigo que esta tecnologia já foi adotada por indústrias como a Em-braer para o desenvolvimento dos projetos de seus aviões, e que pode ser utilizada pelas instituições

Page 77: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

77

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

educacionais para o aprendizado de conceitos que envolvam imagens 3D, como Medicina, Construção Civil e Arquitetura (Figura 11). Ele cita também a possibilidade de se ter um professor holográfico, como um recurso para os alunos tirarem dúvidas e assistir às explicações da mesma forma como fa-riam se estivessem com um professor presente.

Figura 11. Maquete holográfica aplicada a projetos de Arquitetura.

Na Medicina, pode-se citar o uso da holografia no projeto CAVEman, da Universidade de Calgary. De acordo com Shu (2007), trata-se de uma projeção holográfica de um corpo humano 4D, cujos órgãos internos e sistema circulatório coloridos são exibidos ao usuário em uma caverna virtual (Figura 12)

Figura 12. Projeto CAVEman [Shu, 2007].

Page 78: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

78

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

Outro exemplo é o trabalho realizado por Steil (2010), que utiliza hologramas para análise de pesquisas de censo. O autor comenta que um holograma pode substituir um mapa, pois dá informação do todo e da posição relativa de cada parte. Ele permite reconstruir uma imagem com informação tridimensional, facilitando o entendimento do contexto de estudo.

1.6 Um Simples Exemplo Prático

Para ilustrar o uso da holografia, este trabalho apresenta a aplicação da técnica de holograma de imagem real com projeção em uma placa de vidro – uma vez que pode ser produzido de forma simples e proporciona um bom resultado.

Os materiais utilizados foram: um monitor, um computador, uma placa de vidro transparente, um pano de fundo preto e uma imagem ou animação com fundo preto.

Nesta configuração, é importante salientar que quanto maior for o contraste do monitor, mais apropriado ele é para este tipo de aplicação. Monitores de tubo costumam ter um contraste maior. Para apoiar o vidro, foi construída uma base de madeira com as medidas especificadas na Figura 13.

Para exibir a holografia a partir de uma aplicação 3D, posiciona-se o monitor de forma horizontal (“deitado”), recebendo a imagem ou animação da aplicação. Em frente ao monitor, deve-se posicionar a placa de vidro na posição vertical, com um ângulo de inclinação de 45 graus. O pano de fundo pode ser colocado atrás do vidro (não muito perto) para melhorar a visualização dos detalhes da imagem. Porém, o uso do pano de fundo não é estritamente necessário, pois a imagem projetada continuará visível. A quantidade de luz pode variar, porém quanto menos luz, mais nítida a imagem vai ficar na projeção sobre a placa de vidro.

Figura 13. Imagem ilustrativa do projeto da base para o vidro.

Page 79: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

79

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

O resultado é o reflexo de uma imagem ou animação projetada sobre a placa de vidro. Caso esta placa tenha uma superfície extremamente lisa e transparente, a impressão é de que a imagem está sendo projetada ilusoriamente no espaço. No exemplo apresentado pela Figura 14, o fundo de cena da aplicação é preto. Neste caso, como a cor preta representa a ausência de cor, o fundo não será exibido na imagem holográfica – somente a imagem ou animação. O ângulo de 45 graus de inclinação utilizado faz com que a imagem pareça estar na vertical ou “em pé”, proporcionando maior realismo.

1.7 Considerações Finais

Nota-se que a tecnologia holográfica ainda está longe de chegar ao seu ápice como solução de mercado. Nos últimos tempos iniciaram as pesquisas em prol da integração dos hologramas com a tecnologia da informação. Estes trabalhos recentes buscam desenvolver equipamentos capazes de fazer projeções holográficas, ou seja, utilizar a tecnologia holográfica para melhorar as tecnologias de áreas como a RV.

Os recursos precisam ser melhorados e as diversas áreas da ciência precisam ser integradas a fim de compartilhar conhecimentos. Assim, será possível construir equipamentos que possam reproduzir projeções holográficas e se comunicar com sistemas capazes de responder aos movimentos e aos co-mandos de voz do usuário em prol da interação com objetos nestes cenários.

Figura 14. Exemplo de projeção holográfica.

Page 80: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

80

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

Referências

AMOROSO, D. (2010) “Pesquisadores exibem sistema de holografia em tempo real”, http://www.tecmundo.com.br/holografia/6277-pesquisadores-exibem-sistema-de-holografia-em-tempo-real.htm, Novembro. Aces-sado em Março 2014.

BAJURA, M. & NEUMANN, U. (1995) “Dynamic registration correction in video-based augmented reality systems”, IEEE Computer Graphics and Application, 9, Setembro.

BARwINSKI, L. (2009) “Holografia Tátil: conheça a tecnologia que revoluciona a interatividade”, http://www.tecmundo.com.br/realidade-aumentada/2575-holografia-tatil-conheca-a-tecnologia-que-revoluciona-a-intera-tividade.htm, Agosto. Acessado em Março 2014.

DAIBERT, L. (1998) “Holografia Histórico”, http://www.eba.ufmg.br/hololab, Julho. Acessado em Março 2014.

DAIBERT, L. (1998) “Holografia Histórico”, http://www.eba.ufmg.br/hololab, Julho. Acessado em Março 2014.

FREITAS, M. (2006) “Do giz-de-cera ao professor holográfico”, In: Projeto Linha Direta, Em benefício da edu-cação, Vila Velha: Editora Hoper, 2006. p. 73-77.

GIMENEz, A. M. & KIRNER, T. G. (1997) “Validation of real-time systems using a virtual reality simulation tool”, In: IEEE International Conference on Systems, Man and Cybernetics, Florida, USA.

HANCOCK, D. (1995) “Viewpoint: virtual reality in search of middle ground”, IEEE Spectrum, 32 (1): 68, Janeiro.

HARIHARAN, P., Basics of Holography, Cambridge University Press, 2002.

IwAMOTO, T. et al. (2008), “Airborne Ultrasound Tactile Display”, In: SIGGRAPH 2008, New Tech Demos, Agosto.

JONES, K & CyGNUS, M. w. (1993) “Virtual reality for manufacturing simulation”, In: Proceedings of the winter Simulation Conference, IEEE Computer Society Press, pp. 882-887, New york.

MIRANDA, F. A., TORI, R. (2012) “Holoface: O Paradigma Holográfico no Design de Informação e de Intera-ção”. In: Congresso Brasileiro de Pesquisa e Desenvolvimento em Design, São Luís, Brasil.

MOREIRA, J. z., RIEDER, R. (2013) “Comparação de Técnicas de Processamento de Imagens para Reconhe-cimento de Gestos em Ambientes Interativos”. Trabalho de Conclusão do Curso de Ciência da Computação. Instituto de Ciências Exatas e Geociências. Universidade de Passo Fundo (UPF), Brasil.

PéGARD N. C., FLEISCHER J. w. (2011) “Optimizing holographic data storage using a fractional Fourier trans-form”, Opt. Lett. 36, 2551–2553.

PEyGHAMBARIAN, N. et al. (2010) “Holographic three-dimensional telepresence using large-area photore-fractive polymer”. Nature 468, 80–83, Novembro.

PRADO, E. x. e BRUNO, O. M. (2012) Reconhecimento de Gestos em Imagens de Profundidade Utilizando Kinect. Instituto de Física de São Carlos. Universidade de São Paulo, Brasil.

Page 81: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

81

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 69-81, maio/2014.BRum, manoela Rogofski; RiEdER, Rafael. Projeção Holográfica em Ambientes de Realidade Virtual.

RODRIGUES FILHO, F. (2008) “Protótipo de sistema para projeção holográfica de imagem real”, http://www.diretorio.ufrj.br/aurelionogueira/lamie/projetoholografia.htm. Acessado em Março 2014.

Sá, J. G. P. (2011) “Construindo uma DSL para Reconhecimento de Gestos Utilizando Kinect” Centro de Infor-mática. Universidade Federal de Pernambuco. Brasil.

SHU x, TURINSKy AL, Sensen Cw, Maurer F (2007) “A Case Study of the Implementation of Agile Methods in a Bioinformatics Project”. In Concas G.et al. (Eds.): xP 2007, LNCS 4536, Springer, Heidelberg, pp. 169-170.

SILVEIRA, M. A. (2011) “Técnica de Navegação em Documentos Utilizando Microsoft Kinect”. Instituto de Informática. Universidade Federal do Rio Grande do Sul. Brasil.

STEIL, C. A. (2010) “Mapas e hologramas como metáforas para pensar os dados sobre religião no censo do IBGE de 2010”, Debates do NER, 2 (24), 29-37.

Page 82: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

82

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Computação Sêntica: Fundamentos e Aplicações em RV/RA

Luciano Silva

Abstract

Sentic Computing is a multidisciplinary approach between Computing and Cognitive Sciences which uses Affective Computing and Common Sense Reasoning to recognize, to interpret and to process human emo-tions. Sentic Computing Techniques are based on processing of human-affective signals (speech, gestures, among others), with the use of ontologies and affective common sense reasoning. The amplitude of these techniques allows one to explore more natural interaction modes in both VR and AR systems. Within this context, the aim of this chapter is to introduce the fundamentals of Sentic Computing, their models of knowledge representation, reasoning mechanisms, development tools and especially their applications and research challenges in VR and AR.

Resumo

Computação Sêntica é uma abordagem multidisciplinar entre Computação e Ciências Cognitivas, que utiliza Computação Afetiva e Raciocínio de Senso Comum para reconhecer, interpretar e processar emo-ções humanas. Técnicas de Computação Sênticas são baseadas em processamento de sinais humano-afetivos (fala, gestos, dentre outros), com uso de ontologias afetivas e raciocínio de senso comum. A amplitude destas técnicas permite explorar modos mais naturais de interação tanto em sistemas de RV quanto RA. Dentro deste contexto, o objetivo deste capítulo é apresentar os fundamentos da Computação Sêntica, seus modelos de representação de conhecimento, técnicas de raciocínio de senso, ferramentas de desenvolvimento e, principalmente, sobre suas aplicações e desafios de pesquisa tanto em Realidade Virtual quanto Aumentada.

82

Page 83: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

83

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

1.1 Introdução

Computação Afetiva é o estudo e desenvolvimento de sistemas e dispositivos que podem reconhe-cer, interpretar, processar e simular afeições humanas. O termo foi cunhado pelo trabalho seminal de Picard (1995), cujo objetivo era simular empatia em um sistema computacional: uma máquina deveria interpretar o estado emocional de um ser humano e, a partir deste estado, dar respostas apropriadas à emoção percebida.

O Raciocínio de Senso Comum (RSC) é uma ramificação da Inteligência Artificial, que trata da formalização da habilidade humana de fazer deduções sobre situações cotidianas. Por exemplo, se X está triste, então algo ruim deve ter ocorrido a X. Sistemas de RSC fazem julgamentos sobre proprieda-des físicas, propósitos, intenções e comportamento possível sobre pessoas, animais e coisas.

Da junção entre Computação Afetiva e técnicas de RSC, surge a Computação Sêntica (CAMBRIA e HUSSAIN, 2012), cujo objetivo é reconhecer, interpretar, processar e simular afeições humanas, ten-do como suporte lógico a formalização do raciocínio de senso comum. O termo sêntico (do inglês, sentics) deriva do Latim sentire (raiz de palavras como sentimento) e sensus (que pode ser entendido como a capacidade de sentimento e como senso comum). Técnicas de Computação Sênticas, geralmen-te, utilizam técnicas de ontologias afetivas para não só explorar a detecção das emoções humanas no plano sintático, como também semântico.

A Computação Sêntica já vem sendo utilizada com sucesso em Mineração de Dados em redes sociais, com o objetivo de detectar estados emotivos em textos. Recentemente, a área sofreu uma ex-pansão para incluir outros universos midiáticos como imagens, vídeos e áudios. Dentro deste contexto de expansão, encontram-se as aplicações para RV e RA. Assim, o objetivo deste capítulo é introduzir os conceitos e processos fundamentais da Computação Sêntica, suas principais aplicações em sistemas virtuais e de aumentação e indicar alguns desafios para pesquisa.

O capítulo está organizado da seguinte forma:• inicialmente, são apresentados os fundamentos da Computação Afetiva, com ênfase na de-

tecção de estados emotivos através de modelos probabilísticos;• em seguida, são introduzidas as bases do RSC como eventos, f luentes e timepoints;• com a base formada em Computação Afetiva e RSC, é apresentado o modelo de Computação

Sêntica logo depois e• finalmente, são mostradas as aplicações em Sistemas de RV e RA, além de perspectivas pos-

síveis para pesquisa.

No final, são apresentadas referências bibliográficas que deram suporte à produção deste capítulo, que podem, também, servir de ponto inicial de estudo para os interessados em Computação Sêntica e suas aplicações.

Page 84: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

84

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

1.2 Computação Afetiva

1.2.1 Emoções Artificiais

Computação Afetiva (PICARD, 1995) pode ser vista como um conjunto de processos computacio-nais relacionados a ou que surgem de fenômenos afetivos. Uma afeição ou afeto (affection) é um estado psicológico que permite ao ser humano demonstrar seus sentimentos e emoções a outro ser ou objetos (NIEDENTHAL, 2006). Dependendo da duração deste estado psicológico, um afeto pode ser subdivi-dido em dois tipos, conforme mostra a Figura 1:

Figura 1: Classificação dos afetos em emoções e manias.

Uma emoção é estado de curta duração, normalmente limitado a segundos e minutos. Por outro lado, uma mania já é um estado mais duradouro, geralmente da ordem de horas ou dias. Não há um delimitador preciso para diferenciar uma emoção de uma mania. Uma grande parte do trabalho da Computação Afetiva está vinculado ao tratamento das emoções, por terem indicadores mais simples de serem percebidos e com poucas restrições de tempo. Este capítulo também tratará somente de emoções.

Como o estado de emoção é contínuo, sua representação computacional requer uma discretização. Um estado de emoção, quando discretizado, é chamado emoção artificial (PICARD, 1995). Na discre-tização, normalmente são utilizadas sub-estados que caracterizam o estado de emoção.

Existem duas categorias básicas de medidas destes sub-estados (NIEDENTHAL, 2006):• medidas de emoção negativa: STAXI, ARS, BDHI, STAS, PEARS.• medidas de emoção positiva e negativa: PANAS-X, I-PANA-SF, STEM.

Todas estas categorias envolvem vários itens de consulta, que levam a determinados estados pro-váveis de emoção. Porém, pela quantidade de itens a serem medidos, estas categorias não se revelam como viáveis para implementação de sistemas computacionais, onde o tempo de resposta pode se algo importante como, por exemplo, em sistemas de RV e RA. Para estes contextos, existe um modelo mais simples chamado PAD.

Page 85: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

85

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

1.2.2 Modelo PAD

O modelo PAD (MEHRABIAN, 1995), que descreve um estado emocional usando três dimensões numéricas: Pleasure (Prazer), Arousal (Excitação) e Dominance (dominância).

A dimensão P é medida em uma escala chamada Pleasure-Displeasure, que trata do quão agradá-vel é uma emoção. Por exemplo, raiva e medo são consideradas desagradáveis e estão mais próximas de Displeasure. Por outro lado, alegria é bastante agradável e, portanto, mais próxima de Pleasure. Esta escala, segundo MEHRABIAN, (1980), é usualmente limitada a 16 valores específicos.

A dimensão A também é medida em uma escala denominada Araousal-Nonaraousal, que quanti-fica a intensidade da emoção. O estado de raiva, por exemplo, tem um alto nível de excitação (aproxi-mando-se de Araousal), enquanto que o estado de tédio tem um nível de excitação baixo, aproximan-do-se de Nonaraousal. MEHRABIAN (1980) define 9 valores específicos para escala.

Finalmente, a dimensão D também tem a sua própria escala, denominada Dominance-Submissive-ness, que representa o controle e a natureza dominante da emoção. Raiva, por exemplo, é uma atitude dominante, enquanto que medo representa um estado de submissão. Assim como na dimensão A, MEHRABIAN (1980) define 9 valores específicos para a escala D.

Emoções podem ser classificadas em duas categorias básicas: primárias e secundárias. Uma emo-ção primária é um sentimento autêntico ou real e é uma resposta adaptativa a situações específicas. No Modelo PAD, são previstas nove emoções primárias, conforme mostrado na Figura 2:

Figura 2: Emoções primárias do modelo PAD. Fonte: (BECKER-ASANO, 2008)

Page 86: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

86

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Observe que alguns estados emocionais primários podem ter variantes e codificações diferen-tes. Por exemplo, o estado feliz (happy) pode ser codificado como (50,0,100), (50,0,-100), (80,80,100) e (80,80,-100).

Uma emoção secundária é uma resposta a uma emoção primária, ou melhor, a uma situação que é consequência de uma emoção primária. Na Figura 3, são mostradas três emoções secundárias: alívio (relief ), esperança (hope) e medo ( fears).

Figura 3: Emoções secundárias no modelo PAD. Fonte: (BECKER-ASANO, 2008)

Por exemplo, alívio é uma reação emocional muito comum disparada pelo estado primário de ale-gria e que ocorre com pouca frequência quando se está bravo (angry) ou temeroso ( fearful). Esperança também é uma reação emocional comum quando se está alegre. Já quando se está temeroso, a reação de medo é quase imediata.

1.2.3 Sensoriamento e Estimativa de Estados Emocionais

Uma vez que se tenha uma maneira para representar estados emocionais através do modelo PAD, o próximo passo é como estimar estados emocionais a partir de determinados esquemas de sensoriamento.

Kapoor et al. (2004) propuseram um método bastante prático baseado em inferência bayesiana para estimar estado emocionais, a partir de dados coletados de sensores. Cada sensor define uma mo-dalidade de sensoriamento:

Page 87: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

87

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

• sensoriamento distante: face, voz, postura, gestos, movimentos• sensoriamento quase interno: condutividade da pela, dilatação da pupila, respiração, pulso,

batimentos cardíacos• sensoriamento interno: dosagens de hormônios, neurotransmissores

Assim, seja dado um conjunto multimodal finito

},...,,{ pulsovozface xxxX = ,

onde cada x corresponde a uma variável aleatória de uma modalidade que se está medindo para estimação de estado emocional . A medida deste estado é definida por:

)|( XP A definição estabelece que se pode estimar o estado emotivo dadas as probabilidades dos sensores

estarem em um determinado estado. Por exemplo, supondo que facex seja a probabilidade da face do usuário estar corada, vozx a probabilidade da voz estar trêmula e pulsox a probabilidade do pulso estar acelerado, ter-se-ia:

• )9.0,0.1,9.0|( === pulsovozface xxxnervosoP alta (próxima de 1)

• )15.0,0.0,1.0|( pulsovozface xxxnervosoP baixa (próxima de 0)

Ou seja, para que o usuário esteja no estado emocional de nervoso, é necessário que algumas das modalidades estejam em determinados valores. Suponha, agora, que se tenha somente uma modali-dade sendo sensorizada. Utilizando uma aproximação bem conhecida de probabilidade condicional, tem-se que:

)|()(),()|( facefaceface xPPxPxP

Tomando-se dois sensores independentes, facex e pulsox , pode-se fazer a seguinte aproximação:

)|()|()(),,(),|( pulsofacepulsofacepulsoface xPxPPxxPxxP

)|()|( pulsoface xPxP

Esta última equação diz, essencialmente, que a probabilidade de um usuário estar no estado emo-cional é, aproximadamente, o produto das probabilidades dos estados dos dois sensores. Generali-zando esta ideia para n sensores de modalidades, tem-se:

)|()...|()...|( 11 nn xPxPxxP

Page 88: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

88

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Para cada modalidade sensorizada, existe uma técnica diferente para estimação do estado emocional. Para faces, por exemplo, comumente se utilizam malhas para pontos-chave (KOTSIA e PITAS, 2007).

A Figura 4 ilustra um exemplo destas malhas ajustada para uma posição de repouso da face (es-tado neutro):

Figura 4: Malha geométrica para face em repouso. Fonte: (KOTSIA e PITAS, 2007)

A partir da malha em posição de repouso, geram-se padrões de deformação desta malha. Cada deformação corresponde a um estado emocional, conforme ilustra a Figura 5:

Figura 5: Deformações da malha em estado de repouso para estados emocionais. Fonte: (KOTSIA e PITAS, 2007)

Page 89: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

89

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Uma vez que se tenha o padrão de deformação da malha para cada estado emocional, pode-se uma probabilidade P (w | x face)para cada estado emocional w de acordo com o nível de ajuste médio dos detalhes de cada imagem ao padrão de deformação. A Figura 6 mostra exemplos de ajustes de di-versos estados emocionais aos padrões de deformação:

Figura 6: Estados emocionais ajustados a padrões de deformação da malha. Fonte: (KOTSIA e PITAS, 2007)

O estado emocional w que gerar a maior probabilidade é o escolhido para esta modalidade. Para outras modalidades como voz, movimentos, dentre outros, é muito comum a utilização de padrões de referencia para estimação dos estados emocionais.

1.3 Raciocínio de Senso Comum

O Raciocínio de Senso Comum (RSC) (MUELLER, 2006) é uma ramificação da Inteligência Ar-tificial, que trata da formalização da habilidade humana de fazer deduções sobre situações cotidianas. Para a formalização em RSC, são utilizados dois tipos de cálculos lógicos:

• CálculodeEventos: especifica elementos que dependem do fator tempo (eventos, f luentes, pontos temporais) numa ordem linear.

• CálculoSituacional: especifica ações e conjuntos de ações (situações) sobre um domínio de objetos.

Page 90: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

90

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

1.3.1 Cálculo de Eventos

Existem três conceitos importantes em RSC: eventos, f luentes e pontos temporais. Os eventos representam as ações que podem ocorrer no universo estudado. Um fluente é uma propriedade do mundo em que varia com o tempo, por exemplo, o estado emocional do usuário em tempo distintos. Um ponto temporal se trata de um instante de tempo específico como, por exemplo, uma data.

Para o cálculo de eventos, existe um conjunto de predicados pré-definidos, elencados na Tabela 1:

Tabela 1: Predicados do Cálculo de Eventos. Fonte: (MUELLER, 2006)

Predicado Descrição

Happens (e, t) Evento e acontece ou ocorre em um ponto temporal t.

HoldsAt (f, t) Fluente f é verdadeiro no ponto temporal t. Se ¬HoldsAt (f, t), então f é falso em t.

ReleasedAt (f, t)Fluente f é liberado pela lei da inércia do senso comum em

um ponto temporal t. Se ¬ReleasedAt (f, t), então f não é liberado.

Initiates (e, f, t) Evento e inicia um fluente f no ponto temporal t.

Terminates (e, f, t) Evento e termina um fluente f no ponto temporal t.

Releases (e, f, t) Evento e libera o fluente f no ponto temporal t.

Trajectory (f1, t1, f2, t2)Se o fluente f1 é iniciado por um evento que ocorre no pon-to temporal t1, e t2 > 0, então o fluente f2 será verdadeiro

no ponto temporal t1+t2.

AntiTrajectory (f1, t1, f2, t2)Se o fluente f1 é terminado por um evento que ocorre no ponto temporal t1, e t2 > 0, então o fluente f2 será verda-

deiro no ponto temporal t1+t2.

Como exemplo, considere-se o seguinte cenário: se uma pessoa gosta de algo, ela fica contente. Utilizando os predicados da Tabela 1, pode-se formalizar este cenário da seguinte forma:

Initiates (Like(a,b), Happy(a),t).

Nesta formalização, Like(a,b) indica que a gosta de b no instante t. Então, a fica feliz no mesmo instante.

Page 91: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

91

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

1.3.2 Cálculo Situacional

O Cálculo Situacional (MUELLER, 2006) opera sobre um domínio de objetos, que podem sofrer ações. Uma sequência finita de ações é chamada de uma situação. Uma situação não é um estado produzido por uma ação, mas sim o histórico de aplicação de ações. Diferentemente do Cálculo de Eventos, o Cálculo Situacional permite ramificação de ações.

Uma situação é:• init: a situação inicial ou• do (A,S): a situação resultante da aplicação a ação A sobre a situação S A Figura 7 ilustra uma série de ações efetuadas sobre uma mesma situação inicial, conduzindo a

situações diferentes:

Figura 7: Situação inicial e aplicação de ações.

Nesta figura, tem-se a situação inicial de que calmo(Pedro). do(kiss, calm(Pedro)) é uma nova si-tuação, que pode levar a diversos estados. Por exemplo, Pedro pode ficar feliz ou bravo ou arrependido ou mesmo não ter qualquer reação. Assim, há uma diferença visível entre estados e situações. do(hold, do(kiss,calmo(Pedro))) é uma nova situação, que pode levar a interpretações diferentes de estados ou não levar a estado algum.

1.4 Computação Sêntica

Computação Sêntica (CAMBRIA e HUSSAIN, 2012) é uma área emergente em Inteligência Ar-tificial, que utiliza técnicas de Computação Afetiva e Raciocínio de Senso Comum com o objetivo é reconhecer, interpretar, processar e simular afeições humanas.

Page 92: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

92

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

1.4.1 Estrutura de um Sistema de Computação Sêntica

Um sistema típico de Computação Sêntica é formado por um conjunto por cinco componentes principais, conforme mostrado na Figura 8:

Figura 8: Componentes principais de um sistema de Computação Sêntica. Fonte: Adaptação (CAMBRIA e HUSSAIN, 2012).

A estrutura de Computação Sêntica é bastante similar ao de agentes inteligentes, com um fase de sensoriamento (estímulos externos), processamento e atuação. A grande diferença ocorre no proces-samento, onde se depende de um sistema neural (neurônios sênticos), regulados por um modelo bio-inspirado e psicologicamente motivado (HourGlass), que produz estados emocionais válidos dentro de um espaço afetivo.

A seguir, serão descritos os componentes principais desta arquitetura.

1.4.2 Modelo HourGlass

O modelo HourGlass (CAMBRIA, HUSSAIN e LIVINGSTONE, 2012), ou Modelo da Ampulheta, organiza um conjunto de emoções primárias em quatro dimensões (Sensitivity, Aptitude, Attention e Pleasantness), com diferentes níveis de ativação. Estas quatro dimensões, com os seus respectivos valores, são mostradas na Figura 9:

Page 93: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

93

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Figura 9: As quatro dimensões do modelo HourGlass. Fonte: (CAMBRIA, HUSSAIN e LIVINGSTONE, 2012)

Este modelo é uma extensão bem mais detalhada do modelo PAD, visto no início deste capítulo. Os valores para cada uma destas dimensões segue uma distribuição normal, conforme mostrado na Figura 10:

Figura 10: Modelo HourGlass.

Fonte: (CAMBRIA, HUSSAIN e LIVINGSTONE, 2012)

Page 94: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

94

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Conforme se varia o valor da distribuição normal, obtêm-se os valores para os estados emocionais, conforme mostra a Tabela 2.

Como os valores trabalhados situam-se entre -1 e 1, é possível se adaptar o modelo de probabilida-des visto anteriormente para emoções positivas e negativas.

Tabela 2: Valores dos estados eamocionais para o Modelo HourGlass. Fonte: (CAMBRIA, HUSSAIN e LIVINGSTONE, 2012)

1.4.3 Espaço Afetivo

O Espaco Afetivo (CAMBRIA et al., 2009) é a base de conhecimento para o raciocínio com emo-ções. Uma forma bastante comum de se construir tal espaço é por indexação baseada nos rótulos definidos pelo Modelo HourGlass, que define um agrupamento por cada valor de emoção. A Figura 11 mostra um exemplo de espaço afetivo:

Figura 11: Exemplo de espaço afetivo. Fonte: (CAMBRIA, HUSSAIN e LIVINGSTONE, 2012)

Page 95: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

95

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

O Espaco Afetivo normalmente é armazenado como um banco de dados multidimensional e, as consultas para inferência emocional, são realizadas diretamente neste banco, indexadas pelos estados emociais devolvidos pelos sistema neuronal sêntico.

1.4.4 Sistema Neuronal Sêntico

O sistema de neurônios sênticos pode ser implementado como uma rede neuronal com aprendi-zado bayesiano ou Cadeias de Markov Ocultas. A finalidade do sistema neuronal sêntico é calcular o estado emocional do usuários e, a partir dos estímulos externos, utilizar o espaço afetivo para realizar inferências.

Por exemplo, se o usuário está um estado muito forte de alegria e está cercado de um contexto de música, pode-se tocar uma música adequada para o seu estado emocional.

Além do próprio sistema inferencial em si, o sistema neuronal sêntico ainda pode aumentar a base de conhecimento sêntico (espaço afetivo) com novas informações derivadas dos processos inferenciais.

1.5 Aplicações de Computação Sêntica em Realidade Virtual

Uma das aplicações emergentes em Computação Sêntica em RV são os avatares sênticos (CAM-BRIA et al., 2011). Um avatar sêntico é capaz de perceber estados emocionais dos usuários e gerar novos estados de resposta.

Uma arquitetura possível para comunicação com avatares sênticos é mostrada na Figura 12:

Figura 12: Arquitetura de um avatar sêntico. Fonte: (CAMBRIA et al., 2011)

Nesta arquitetura, tem-se um módulo de percepção multimodal (face, voz e escrita). As modali-dades são processadas por um módulo de análise afetiva, que as traduz para estados emotivos e que

Page 96: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

96

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

orientam a deliberação e geração de poses e expressões do avatar. Os atuadores deste sistema sêntico são representados pelos geradores de expressões faciais, de fala e posturas corporais.

O analisador de expressões faciais utiliza o padrão MPEG4, cujos pontos de interesse e parâmetros faciais são mostrados na Figura 13:

Figura 13: Pontos de interesse faciais no MPEG4 e seus parâmetros correspondentes. Fonte: (CAMBRIA et al., 2011)

O analisador de áudio transforma a fala em texto, que é analisado junto com texto digitado. Do texto, extraem-se os conceitos e, a partir deles, geram os valores de fatores emocionais correspondentes (sentics), conforme mostrado a seguir:

Texto:Yesterday was a BEAUTIFUL day! I couldn’t find the food I was after and there was pretty bad weather but I bought a new dress and a lot of Christmas presents.

<Concept: ‘yesterday’>

<Concept: ‘beautiful day’++>

<Concept: !‘find food’>

<Concept: ‘bad weather’––>

<Concept: ‘buy new dress’>

<Concept: ‘buy christmas present’++>

Sentics: [1.608, 0.571, 0.0, 2.489]Emotions: joy and interest

Page 97: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

97

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Os sinais ++ e – indicam pontos enfáticos no texto ou na fala, que são importantes para caracte-rizar determinados estados emocionais. O resultado é um vetor com quatro coordenadas (do espaço afetivo), assim como os rótulos possíveis para as emoções (joy e interest).

A arquitetura que realiza esta análise é mostrada a seguir:

Figura 14: Arquitetura de processamento de texto e fala de um avatar sêntico. Fonte: (CAMBRIA et al., 2011)

Na arquitetura da Figura 14, tem-se um módulo de processamento de Linguagem Natural (NLP), que extrai morfológicos e sintáticos que, via um analisador semântico, os transforma em conceitos. Estes conceitos, tendo como base com as informações do Modelo HourGlass, são trans-formados em coordenadas do espaço afetivo. Fazendo-se junção dos módulos de processamento de expressões faciais e texto/fala, o resultado da integração permite produzir emoções conjuntas como o mostrado na Figura 15:

Figura 15: Combinação das modalidades de fala/face e estados emocionais possíveis. Fonte: (CAMBRIA et al., 2011)

Page 98: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

98

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Uma vez que o estado emocional tenha sido detectado, utilizam-se as técnicas de RCS vistas ante-riormente para determinar qual o estado emocional deve ser disparado no avatar em relação à situação detectada. A deformação da malha do avatar é feita com base em um conjunto do pré-definido de expressões, como mostrado na Figura 16:

Figura 16: Expressões pré-definidas, resultantes de respostas emocionais do avatar. Fonte: http://ces.abertay.ac.uk/sicsa/faces.jpg

A qualidade da resposta emotiva do avatar depende da qualidade da base de conhecimento, sobre o qual o RSC irá fazer a consulta.

1.6 Aplicações Computação Sêntica em Realidade Aumentada

Em Realidade Aumentada, existem diversas possibilidades de inclusão de aspectos sênticos nas aplicações. Como primeiro exemplo, o trabalho de Gilroy et al. (2008) constrói um sistema de con-trole de crescimento de plantas influenciável por estados emocionais. A arquitetura deste sistema é mostrado abaixo:

Figura 17: Arquitetura de um sistema de RA para controle de crescimento de plantas. Fonte: Gilroy et al. (2008)

Page 99: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

99

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Neste sistema, são interpretadas expressões faciais e, de acordo com o seu valor, elas regulam o tropismo das plantas, geradas por um um processo de L-System. Os valores das emoções são calcula-dos no sistema PAD e controlam o tropismo conforme mostrado na Figura 18:

Figura 18: Influência das emoções no tropismo de plantas. Fonte: Gilroy et al. (2008)

A variável P controla o tropismo na direção X, a variável A na direção Z e, a direção Y, é contro-lada pela variável D. Embora o trabalho de Gilroy et al. (2008) tenha sido, à primeira vista, um objeto artístico, ele levanta várias possibilidades de controle de crescimento de objetos. Por exemplo, sabe-se da Psicologia Comportamental, que determinados estados emocionais disparam determinadas modi-ficações no corpo humano. Com um sistema de simulação emotivo, as variáveis psicológicas poderiam guiar a criação de cenários para estudo destas modificações.

Uma segunda aplicação interessante de técnicas de Computação Sêntica situa-se em sistemas de Realidade Aumentada em Informática em Saúde. A Figura 19 (TIVANTASAKUL E OHKURA, 2013) ilustra uma arquitetura capaz de captar diversos sinais, que podem ser transformados em estados emotivos:

Page 100: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

100

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Figura 19: Uma arquitetura de Realidade Aumentada Sêntica para Informática em Saúde. Fonte: Tivantasakul e Ohkura (2013)

Este sistema permite a detecção de sinais emocionais de um paciente, a transmissão destes sinais sob a infraestrutura da Web, processamento e devolução de objetos virtuais como resposta aos sinais emocionais. Por exemplo, pode-se induzir uma diminuição da frequência respiratória de um paciente, exibindo-lhe uma animação de caixa de música funcionando, como mostrado na Figura 20:

Figura 20: Resposta sêntica para indução do controle de respiração. Fonte: FontTivantasakul e Ohkura (2013)

Page 101: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

101

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

O sistema de ainda permite disponibilizar todo o processo de atuação baseadas em estados emo-cionais como serviços, mostrado na Figura 21:

Figura 21: Serviços de atuação sênticos. Fonte: Tivantasakul e Ohkura (2013)

A partir do módulo de detecção emocional, o sistema permite selecionar o serviço de atuação correspondente.

1.7 Comentários Finais

A possibilidade de se realizar detecção e atuação emocionais em sistemas de RV e RA permite explorar interações mais naturais com os usuários. A Computação Sêntica disponibiliza arquiteturas e técnicas que contemplam tanto detectores como atuadores emocionais, além de abrir várias perspecti-vas para pesquisa tanto pura quanto aplicada.

O autor espera que este texto introdutório possa ser a base inicial aos interessados em aumentar o nível de interação em suas aplicações de RV e RA.

Page 102: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

102

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 82-102, maio/2014.SilVA, luciano. Computação Sêntica: Fundamentos e Aplicações em RV/RA.

Referências

BECKER-ASANO, C. wASABI: Affect Simulation for Agents with Believable Interactivity. Dissertation zur Erlangung des Grades eines Doktors der Naturwissenschaften. Technischen Fakultat an der Universitat Bielefeld, 2008.

CAMBRIA, E. e HUSSAIN, A. Sentic Computing: Techniques, Tools and Applications. Dordrecht: Springer, 2012.

CAMBRIA, E., HUSSAIN, LIVINGSTONE, A. The hourglass of emotions. Lecture Notes on Computer Science (LNCS), vol. 7403, 2012, pp. 144-157.

CAMBRIA, E., HUPONT, I., HUSSAIN, A., CEREzO, E., BALDASSARRI, S. Sentic Avatar: Multimodal Affec-tive Conversational Agent with Common Sense. Lecture Notes on Computer Science (LNCS), 2011, pp. 81-95.

CAMBRIA, E. HUSSAIN, A., HAVASI, C., ECKL, C. AffectiveSpace: Blending common sense and affective kno-wledge to perform emotive reasoning. CAEPIA, Seville, 2009, pp. 32-41.

GILROy, S.w. E-Tree: Emotionally Driven Augmented Reality Art. MM´2008, Outubro, 2008, pp. 26-31.

KAPOOR, A., PICARD, R.w., IVANOV, y. Probabilistic Combination of Multiple Modalities to Detect Interest. Proceedings of Interest, International Conference on Pattern Recognition, 2004, pp. 969-972.

KOTSIA, I., PITAS, I. Facial Expression Recognition using Geometric Deformation Vectors and Support Vector Machines. IEEE Transactions on Image Processing, 16 (1), 2007, pp. 172-187.

MEHRABIAN, A. Basic Dimensions for a General Psychological Theory: Implications for Personality, Social and Environmental Psychology. New york: Oelgeschlager, Gunn & Hain Inc., 1980.

________________. Framework for a comprehensive description and measurement of emotional states. Genetic, Social, and General Psychology Monographs, 121, 1995, pp. 339-361.

MUELLER, E.T. Commonsense Reasoning. New york: Morgan Kaufmann, 2006.

NIEDENTHAL, P. M., KRAUTH-GRUBER, S., RIC, F. Psychology of Emotion. New york: Psypress, 2006.

TIVANTASAKUL, S., OHKURA, M. Healthcare System Design Focusing on Emotional Aspects using Aug-mented Reality. IEEE Symposium on Computational Intelligence in Healthcare and e-health (CICARE), 1, 2013, pp. 88-93.

Page 103: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

103

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

Construção de aplicações de Realidade Cruzada Projetiva utilizando openFrameworks e ARDUINO

Christopher Shneider Cerqueira Claudio Kirner

Abstract

This chapter aims to show a Projective Cross-Reality environment development. The chapter consists of the following sections: correlated works that motivated this chapter, equipment used, application deve-lopment steps using the open-source framework openFrameworks with the Arduino hardware interface, and some use trends. The development steps consists of: building of a basic application using openFra-meworks; color tracking using an openCV wrapper; projection and camera calibration; and inclusion of a hardware in the interaction loop.

Resumo

Este capítulo apresenta o desenvolvimento de um ambiente de realidade cruzada projetiva. Inclui seções de: exemplos correlatos que motivaram o capítulo, equipamentos utilizados, as etapas de desenvolvimen-to da aplicação utilizando o frameworks open-source openFrameworks com a interface de hardware Ar-duino, e tendências de uso. As etapas de desenvolvimento incluem: a construção de uma aplicação básica com o openFrameworks; o rastreio de cores utilizando um wrapper do openCV; a calibração da projeção e câmera; e a inclusão de hardware no loop de interação.

1.1 Introdução

Há diversas naturezas de interação, nas quais o ser humano envolve-se para manipular elementos do mundo real que podem ser “aumentados” por elementos virtuais. Os elementos dos mundos real e virtual se cruzam com elementos computacionais (sensores e atuadores), habilitando várias modali-dades de mundos, como: mundo real tangível, realidade aumentada [Kirner, 2011], realidade virtual [Kirner, 2011], mundos virtuais distribuídos [Schroeder 2008], mundos ubíquos [Weiser, 1993] e reali-dade cruzada [Kirner et al 2012].

103

Page 104: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

104

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

A Figura 1.1 mostra o cruzamento entre estes mundos, do mundo real, de objetos reais e artefatos tangíveis, podendo-se inserir objetos virtuais (criando realidade aumentada), ou inserir inteligência eletrônica por elementos computacionais, como sensores e atuadores (criando mundos ubíquos). O mundo real pode ser substituído por um mundo virtual, através de objetos virtuais (criando realidade virtual), e distribuído através de elementos computacionais (criando mundos virtuais distribuídos). A intersecção entre objetos do mundo real, objetos virtuais e elementos computacionais, onde a comuni-cação entre os objetos dos mundos virtual e real sejam bidirecionais, cria a realidade cruzada.

Figura 1.1. Diagrama de Kirner e múltiplas realidades. Adaptado de [Kirner et al 2012].

Um dos mundos, que fica na intersecção dos objetos virtuais, reais e computacionais é a Reali-dade Cruzada (RC) (Cross-Reality), que segundo [Kirner et al 2012] é um ambiente de realidade mis-turada ubíqua, que vem da fusão de uma rede de sensores e atuadores (que coletam e enviam dados relacionados ao mundo real) com mundos virtuais compartilhados, usando a interface da realidade aumentada. Nesse caso, a troca de informação é bidirecional entre o mundo real e o mundo virtual, podendo ser de duas formas: sobreposta (Overlapped Cross Reality), onde elementos reativos virtuais e reais são sobrepostos ou não sobrepostos (Non Overlapped Cross-Reality), onde elementos virtuais e reais não se sobrepõem.

Uma abordagem de construção da ubiquidade é um sistema que realiza o registro global de objetos e uma interconexão compartilhada, como proposto por Kevin Ashton [Ashton 2009], nomeado a Inter-net das Coisas e definindo-a como: “a potencialização de artefatos tangíveis, compostos por sensores e atuadores, de se conectarem através da Internet, utilizando identificados únicos” [Betters 2014] [CERP 2009]. Assim, a capacidade dos equipamentos, em coletar informações, por si só, e se comunicarem potencializam a utilização dos sistemas e, por consequência, a utilidade e funcionalidade de sistemas de realidade cruzada.

Page 105: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

105

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

Esta interligação é o motivador deste trabalho que, de maneira prática com exemplos, incita o desenvolvimento de aplicações de interface que compartilham: realidade aumentada projetiva e mani-pulação de elementos tangíveis enriquecidos por hardwares eletrônicos, no loop de interação para criar Realidade Cruzada Projetiva.

1.2 Exemplos motivadores deste capítulo

Alguns exemplos de estudos de casos, que aplicam as tecnologias envolvidas nesse capítulo, explo-ram a utilização da projeção de uma camada de realidade aumentada para interação contextualizada.

Na Figura 1.2, estão dois exemplos de utilização em capturas de cor (com um ponto de cada cor) para interação, onde 1.2a é do Projeto L.A.S.E.R.-Tag [Watson 2007]1 que tem o propósito de projeção em grandes construções e interação com utilização de laser pointers; 1.2b é do sixthSense desenvolvido por Pranav Mistry [Mistry 2011], onde uma câmera captura anéis coloridos nos dedos e uma projeção é realizada (com e sem calibração com a captura) com o conteúdo manipulado.

(a) Projeto L.A.S.A.R. Tag (b) sixthSenseFigura 1.2. Exemplos de interação com captura de cor.

Na Figura 1.3, estão dois exemplos de utilização de capturas de características e cor de conjuntos complexos, utilizando câmeras de profundidade, e a manipulação dos próprios objetos para interação, onde 1.3a é do projeto OASIS da Intel [Ziola et al. 2011], com captura das características e retroprojeção temática; e 1.3b é do projeto I/O Bulb e Luminous Room do Dr. John Underkoffler [Underkoffler et al. 1998] sobre retroprojeção para estudos de sobras em projetos arquitetônicos.

1 Disponível em https://github.com/LeonFedotov/L.A.S.E.R.-TAG-GRL

Page 106: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

106

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

(a) Projeto OASIS (b) Luminous Room

Figura 1.3. Exemplos de interação com captura de características.

A Figura 1.4 apresenta dois exemplos de utilização com hardware de apoio para auxiliar a intera-ção, criando uma matriz de captura e possibilidades de interação baseada na orientação e existência de um elemento computacional. Ambos os exemplos são baseados no projeto Sensetable do MIT [Patten et al. 2002]. A Figura 1.4a mostra o exemplo inicial do controle de uma série de equipamentos e 1.4b a aplicação comercial de Sensetable desenvolvida pela PatternStudio [Pattern 2014].

(a) Sensetable nas primeiras versões. (b) Sensetable comercial.Figura 1.4. Utilização de hardware eletrônico de apoio para interação.

A Figura 1.5 apresenta um exemplo de prova de conceito [Kirner et al. 2012] da tecnologia de Rea-lidade Cruzada utilizando o Arduino2 e o software basAR3, no qual são mostrados a sobreposição da imagem virtual do LED e o feixe de luz, além da não sobreposição dos botões de controle.

2 http://arduino.cc/3 http://cscerqueira.com.br/basar

Page 107: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

107

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

Figura 1.5. Exemplo de Realidade Cruzada

1.3 Equipamentos disponíveis

Os equipamentos disponíveis para construção de mundos de realidade cruzada projetiva, como proposta neste capítulo é dada pela utilização de hardwares embarcados que possuam capacidade de co-municação com o software da interface de interação, do equipamento de projeção e de captura de vídeo.

1.3.1 Hardwares embarcados

Para prototipagem rápida, existem diversos kits open-sources ou não, que facilitam o desenvolvi-mento de uma interface de hardware. Os mais populares são: [Meike 2012]

• Arduino: é uma plataforma aberta de hardware e software para desenvolvimento voltado à prototipagem rápida. Possui velocidade de 16Mhz, 2Kbyte de RAM e 32Kbyte de ROM. O preço está em torno de trinta dólares.

• BeagleBoard: é uma plataforma que roda Android, Linux ou Windows e possibilita progra-mação em várias linguagens. Possui velocidade de 720MHZ, 256MB de RAM e 256MB Flash. O preço está em torno de duzentos dólares.

• RaspberryPi: é uma plataforma que roda Linux e possibilita programação em várias lingua-gens. Possui velocidade de 700MHZ, 256MB de RAM e a memória fica numa flash externa. O preço está em torno de trinta e cinco dólares.

Neste capítulo foi escolhido o Arduino, por ser o mais fácil de encontrar, e possuir maior facilida-de de funcionamento com a configuração remota via C++ disponibilizada pelo oF, usando a biblioteca FIRMATA4.

1.3.2 Projetores

Para construção de um mundo de RA projetiva, é necessário um projetor montado numa posição fixa/móvel, que possa imprimir a camada virtual sobre o mundo real, sem a necessidade de óculos.

4 http://firmata.org/wiki/Main_Page

Page 108: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

108

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

Este tipo de construção é inevitavelmente atrelado com a iluminação do ambiente, pois, quanto mais iluminado, maior deve ser os lumens do projetor, e de maneira geral isto é proporcional às dimen-sões e custos do projetor.

Uma linha de projetores que pode ser utilizada de maneira simples, em protótipos rápidos, é o pico-projetor, que de maneira geral apresenta luminescência na faixa de 30 a 60 lumens.

Neste capítulo foi utilizado o pico-projetor da 3M MPro120, que estava disponível, apresentando 12 lumens. Ele já não está mais a venda, mas foi suficiente para o experimento.

1.3.3 Câmeras

Na maior parte das aplicações de RA, é utilizada uma câmera para rastreio do mundo e da intera-ção, sendo que algumas câmeras que podem ser utilizadas são as: PlayStation Eye e o Kinect. O último tem maior abrangência de possibilidades, devido à câmera de profundidade.

As webcans podem ser utilizadas, desde que possuam uma resolução (mínima de 2Mpixels) e ve-locidade de transmissão (USB2.0) suficiente para manter a precisão e velocidade da aplicação.

Neste capítulo foi utilizada a webcam da Logitech c525.

1.4 openFrameworks (oF)

1.4.1 Composição do oF

oF é uma coleção de códigos criados para artistas e designers trabalharem com design interativo. oF é desenvolvido principalmente por Zach Liberman, Theo Watson, Artuno Castro e Chris O’Shea e hoje recebe colaborações de toda comunidade. [Noble 2009]

Deve-se considerar utilizar oF, para [Noble 2009], quando:• Projeto renderiza muitos gráficos 3D, e ou;• Utilizar muita visão computacional, e ou;• Controlar equipamentos, como, por exemplo, o ARDUINO.

oF inclui uma série de bibliotecas, como: openGL, FreeType, FreeImage, QuickTime, POCO.O código é compatível com várias arquiteturas e vários ambientes de desenvolvimento, como as

cinco plataformas: Windows, OSX, Linux, iOS. Android e Linux ARM.Uma das vantagens do oF é o fato da comunidade poder desenvolver componentes ou funcionali-

dades que possam ser inseridas no oF. Esses componentes são chamados de add-ons. A página oficial de contribuições do oF divide os add-ons nos seguintes seguimentos: animação, pontes, visão compu-tacional, gráficos, interfaces de usuário, interfaces de hardware, iOS, inteligência artificial, física, som, tipografia, utilidades, acesso a câmera e a rede.

oF está disponível em: http://www.openframeworks.cc/.

Page 109: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

109

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

1.4.2 Componentes da comunidade

Uma das vantagens do oF é o fato da comunidade poder desenvolver componentes ou funcionali-dades que possam ser inseridas no oF. Estes componentes são chamados de add-ons.

A página oficial (http://ofxaddons.com/) de contribuições do oF está dividindo os add-ons nos seguintes seguimentos: animation, bridges, computer vision, graphics, gui, hardware interface, ios, ma-chine learning, physics, sound, typography, utilities, video/camera, web/networking e outros.

O openFrameworks tem um diretório específico para armazenar os componentes: [oF]/addons. Todos os componentes devem ser colocados neste diretório. Obs.: Geralmente os componentes vêm com exemplos, devendo-se retirar o exemplos do diretório e salvar em [oF]/examples, pois eles geram problemas de compilação.

ConstruçãodaaplicaçãoPara desenvolvimento deste capítulo, foram utilizados o oF na versão 0.8.05 e os exemplos foram

montados no Windows 8.1 usando Visual C++ 2012 Express (gratuito)6. Dos componentes da comu-nidade, foram utilizados o ofxCv7 e o ofxGlWrapper8, respectivamente para auxiliar na utilização do openCV e para manipular a deformação da imagem.

1.5 Caso 1: Montagem do programa vazio.

A montagem do programa vazio é o inicio da criação de aplicativos com o oF. O oF possui uma meta-ferramenta de criação de projetos para cada plataforma chamada projectGenerator; ela se en-contra no diretório raiz. Executando o projectGenerator ,o desenvolvedor vai encontrar a janela da Figura 1.6, na qual é possível inserir o nome do projeto, a localização (aconselha-se a deixar dentro da estrutura do oF), o indicador da plataforma, o botão para selecionar os add-ons e o botão para finalizar e gerar o projeto.

5 http://openframeworks.cc/download/ 6 http://www.visualstudio.com/en-us 7 https://github.com/kylemcdonald/ofxCv8 https://github.com/roymacdonald/ofxGLWarper

Page 110: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

110

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

Figura 1.6. Tela inicial do projectGenerator.

Clicando-se no botão de addons, é aberta uma janela com as escolhas dos componentes desejados para serem inseridos no projeto da IDE. Veja que, no exemplo da Figura 1.7, há duas colunas de compo-nentes: a primeira com os incluídos no oF (core) e a segunda com componentes adicionais (non-core). No caso dos exemplos desse capítulo, basta escolher o componente do ofxOpenCv e ofxCv para utili-zar o openCV. Para utilizar o componente de deformação de tela é necessário escolher o ofxGlWarper e o ofxXmlSettings.,

Figura 1.7. Tela de escolha dos add-ons do projectGenerator.

Sem a modificação do path do diretório, clicando-se no botão “GenerateProject”, o projectGene-rator montará o projeto em [oF]/apps/myApps/[NomeDoProjeto]. Compilando e executando o progra-ma vazio, deve-se gerar uma janela cinza vazia.

Page 111: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

111

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

1.6 Caso 2: Rastreio de cores.

Este caso mostra a primeira etapa da criação da aplicação que é o rastreio de cores. Este caso cobre: (1) uma breve teoria do modelo de cores e do rastreio de formas do openCV; (2) a construção dos arte-fatos de manipulação; (3) o código de rastreio e (4) algumas sugestões de usos para este caso.

1.6.1 Teoria

Cores-Diversos padrões de modelos de cores são utilizados para representar uma imagem de maneira digital. Um deles é o RGB, que, de maneira simples, corresponde ao uso de três lanternas, onde cada uma é uma cor primária (vermelho, verde e azul), com um botão que controla a intensidade da luz, de desligado (0) até a total cor (255), assim formando o espectro de cores. Outro padrão é o HSV, que é formado por três grandezas: matiz/cor (Hue), que indica a cor num disco (0-360°); saturação (Saturation), que indica a pureza da cor no raio do disco (0 – cinza à 1 – cor saturada); e valor (Value) que indica a intensidade da cor na altura do disco (0-sem cor à 1-com cor. Neste capítulo, é utilizado o rastreio de cores, através da imagem no modelo de cores HSV, que é executado por rotinas do openCV. Para saber mais sobre os padrões de cores e openCV, consulte: [OpenCV 2013] [Smith 1978] [Foley et al. 1990] [Wikipedia 2014].

Blobs - A detecção de blobs é a maneira mais rápida e simples utilizada em visão computacional, que é utilizada de várias formas como: tracking de marcadores, detecção de pele, e reconhecimento de gestos. Blobs são áreas identificadas por pixels próximos que compartilhem a mesma propriedade. Es-tas propriedades são ressaltadas por alto contraste, ou threshold de alguma caraterística, como matiz, saturação e/ou valor. A mágica por detrás da detecção de blobs é a detecção de contorno, realizada pela biblioteca do openCV, que devolve uma posição cartesiana (x,y) de uma região com mesma caracterís-tica (blob) encontrada na área da imagem. [Noble 2009] [OpenCV 2013]

1.6.2 Montagem dos artefatos

ArtefatodemanipulaçãoeinfraestruturaPara os artefatos de manipulação (Fig. 1.8) e o artefato de infraestrutura, são utilizados pedaços

de papéis em cores fortes que serão rastreadas com facilidade num fundo uniforme branco. Alguns trabalhos sugerem a utilização de pedaços de post-its com cores fluorescentes, que são menos prováveis de serem confundidas com outras cores.

As Figuras 1.8a até a 1.8d mostram as etapas de construção do artefato de manipulação. A Figura 1.8a mostra uma folha impressa com as cores; a Figura 1.8b mostra os pedaços recortados; a Figura 1.8c mostra um segundo corte para diminuir o tamanho e a Figura 1.8d mostra os pedaços de papel em formato de anel para serem colocados nos dedos.

Page 112: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

112

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

(a) Folha impressa com retângulos (b) Retângulos recortados

(c) Retângulos reduzidos (d) Anéis para interação.Figura 1.8. Construção do artefato de manipulação.

Para o teste de infraestrutura, foram colocadas as quatro opções de cores para rastreio, vistos na Figura 1.8d. Contudo, se as quatro cores forem utilizadas para a infraestrutura, o rastreio simplificado proposto neste capítulo irá falhar, pois uma cor irá se repetir, para isso retiram-se duas cores do ar-tefato de infraestrutura, deixando-o com dois pontos de calibração. O rastreio de uma característica para infraestrutura é utilizado, quando o sistema é móvel, uma vez que, em uma instalação fixa, não é necessário o rastreio constante. Com isso, é possível utilizar o artefato, sem nenhuma cor de rastreio, e a mesma é projetada somente para calibração, como mostrado na Figura 1.9.

(a) Artefato sendo calibrado. (b) Vista do que é projetado.

Figura 1.9. Artefato de infraestrutura.

Page 113: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

113

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

SuportedoprojetorecâmeraA construção do suporte para o projetor e a câmera pode ser realizada de várias maneiras, como

a utilização de um pedestal de microfone (Figura 1.10a), para fixar o projetor e a câmera, pode ser utilizado velcro (Figura 1.10b).

(a) Vista inclinada, mostrando o pedestal. (b) Vista lateral, mostrando a fixação com velcro.Figura 1.10. Construção do artefato de projeção e captura.

Note que a construção do suporte, com pedestal de microfone e velcro, foi possível, pois o projetor utilizado é pequeno, mas para projetores grandes talvez seja necessária uma construção mais elaborada.

1.6.3 Código

Para executar a captura, identificação e rastreio das cores dos artefatos deste tutorial, são utiliza-dos os add-ons do openCV, ofxOpenCv (que já vem incluído no pacote completo do oF) e ofxCv (do repositório de componentes).

O procedimento constitui-se na captura dos pixels da câmera (em RGB), conversão para o padrão HSB, para isolar as cores puras (Hue), realização da filtragem da cor baseado no valor do hue, de 0-255, e por fim a identificação dos blobs da imagem filtrada.

Para facilitar, foi feito uma estrutura para abrigar a cor desejada (targetColor), com os atributos de cor, threshold e a posição capturada, e colocados na classe principal do oF os atributos que instanciam a câmera, o identificador de contorno (que encontra os blobs), as instâncias de targetColor para cada cor desejada e um método para modularizar o encontro do centroide da cor desejada. O código foi colocado no cabeçalho testApp.h como visto na Figura 1.11.

Page 114: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

114

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

#pragma once

#include “ofMain.h”

#include “ofxCv.h”

typedef struct targetColor{

string name; // nome

ofColor color; // cor a ser procurada

int threshold; // threshold da cor na imagem

ofPoint position; // posição quando rastreada

bool persistence; // configura persistência

bool status; // 0 - ausente, 1 - presente

}targetColor;

class testApp : public ofBaseApp{

... // não apagar os métodos existentes

ofVideoGrabber cam;// camera

ofxCv::ContourFinder contourFinder;// identificar blobs

void testApp::encontraCentro(targetColor *corDesejada);

targetColor markRed;// atuador vermelho

targetColor markGreen;// atuador azul

targetColor markYellow;// atuador amarelo

targetColor markBlue;// atuador verde

};

Figura 1.11. Cabeçalho com itens do rastreio de cores.

O oF possui três métodos principais: setup, update e draw. O primeiro é chamado somente no inicio da execução e os outros dois são chamados em loop (primeiro o update depois o draw). (i) No setup, são colocadas todas as etapas de configuração, consistindo das configurações de câmera, do ras-treador de blobs e as configurações das cores de rastreio. (Obs.: Os valores das cores foram colocados de acordo com um teste de amostragem da cor) (Figura 1.12). (ii) No update, são feitas a captura do frame atual da câmera e a busca pelos centroides de cada cor. Para modularizar, foi utilizado o méto-do encontraCentro, que faz o update do centro da cor na estrutura (Figura 1.13). (iii) O método draw

Page 115: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

115

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

mostra a imagem da câmera (cam.draw()) e identifica as cores encontradas com um círculo na posição do centroide (Figura 1.14).

#include “testApp.h”

using namespace ofxCv;

using namespace cv;

void testApp::setup(){

cam.setDeviceID(1);// seleciona quais das câmeras

cam.initGrabber(640, 480);// inicia o capturador com o tamanho desejado

contourFinder.setMinAreaRadius(10);// tamanho mínimo do blob

contourFinder.setMaxAreaRadius(200);// tamanho máximo do blob

// configura rastreio das cores

// vermelho

markRed.name = “vermelho”;

markRed.color = ofColor(150,20,9,255);

markRed.threshold = 1;

// verde

markGreen.name = “verde”;

markGreen.color = ofColor(48,94,60,255);

markGreen.threshold = 3;

// azul

markBlue.name = “azul”;

markBlue.color = ofColor(38,78,128,255);

markBlue.threshold = 4;

// amarelo

markYellow.name = “azul”;

markYellow.color = ofColor(186,175,4,255);

markYellow.threshold = 1;

}

Figura 1.12. Método setup do rastreio de cores.

Page 116: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

116

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

void testApp::encontraCentro(targetColor *corDesejada){

contourFinder.setTargetColor(corDesejada->color, TRACK_COLOR_HSV); // configura a cor

contourFinder.setThreshold(corDesejada->threshold);// configura o threshold

contourFinder.findContours(this->camWarped);// envia imagem para rastreio

if(contourFinder.size()==1){ // caso encontrar algo pega o centro e seta que está visível

corDesejada->position.x = contourFinder.getCenter(0).x;

corDesejada->position.y = contourFinder.getCenter(0).y;

corDesejada->status = 1;

return;

}

if( corDesejada->persistence == true){ // se foi configurado a persistência, mantem posição

corDesejada->position.x = corDesejada->position.x;

corDesejada->position.y = corDesejada->position.y;

return;

}

// caso nao tenha sido visto ou não esteja em persistência, zera a posição e marca como não presente.

corDesejada->position.zero();

corDesejada->status = 0;

}

void testApp::update(){

cam.update();// captura novo frame

if(cam.isFrameNew()) {// se novo frame

encontraCentro(&markRed); // encontra vermelho

encontraCentro(&markGreen); // encontra verde

encontraCentro(&markBlue); // encontra azul

encontraCentro(&markYellow); // encontra amarelo

}

}

Figura 1.13. Método update e encontraCentro do rastreio de cores.

Page 117: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

117

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

void testApp::draw(){

ofSetColor(255);

cam.draw(0, 0);

drawHighlightString(ofToString((int) ofGetFrameRate()) + “ fps”, 10, 20);

// circulo vermelho

ofSetColor(ofColor::red); ofCircle(markRed.position,10);

// circulo verde

ofSetColor(ofColor::green); ofCircle(markGreen.position,10);

// circulo azul

ofSetColor(ofColor::blue); ofCircle(markBlue.position,10);

// circulo amarelo

ofSetColor(ofColor::yellow); ofCircle(markYellow.position,10);

}

Figura 1.14. Método draw do rastreio de cores.

A Figura 1.15, mostra o exemplo de saída deste caso.

Figura 1.15. Resultado do rastreio de cores.

Page 118: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

118

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

1.6.4 Usos

Há muitos usos somente com o rastreio de cores, como:• Reconhecimentodegestos: correlação entre as distâncias das cores identificadas.• Interação2D: com apenas um ponto de informação (x,y) as interações são 2D, podendo con-

trolar interfaces baseadas em dois dos pontos, que são usados para criar a infraestrutura e os outros para interação.

• RealidadeAumentada: com três pontos de informação, e possível definir um plano, e com isso gerar uma matriz de transformação para adaptação de modelos 3D.

1.7 Caso 3: Projeção calibrada

Este caso consiste na utilização de uma metodologia simplificada para calibrar a projeção com a captura da câmera, mostrando os artefatos utilizados, o código adicionado no Caso 2 e sugestões de uso.

1.7.1 Teoria

Existem várias técnicas [21] [22] para fazer uma projeção calibrada automática. Este capítulo uti-liza uma técnica manual simplificada de ajuste de projeção, utilizando warp (literalmente: deformar, torcer, empenar).

Esta técnica modifica a perspectiva da imagem na hora da renderização do openGL, projetando uma imagem já nas proporções desejadas (também chamado de projection mapping) ( Etapa 1 da Figu-ra 1.16). A câmera então captura a projeção de um ponto de vista diferente (Etapa 2 da Figura 1.16) e também deve ter sua perspectiva ajustada. Para isso, é feita o warp para o que é capturado pela câmera correspondente à área de interação desejada (Etapa 3 da Figura 1.16). Esta área corrigida é então pro-cessada para retirada as características que permitirão a interação com a interface projetada (Etapa 4 da Figura 1.16), continuando assim o feedback loop de execução.

Figura 1.16. Feedback Loop de execução.

Page 119: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

119

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

1.7.2 Artefatos

Os artefatos para o desenvolvimento continuam sendo os mesmos do Caso 2: quatro anéis colori-dos para interação, uma folha branca e o conjunto de projeção e captura.

1.7.3 Código

Seguindo o diagrama da Figura X, o funcionamento pode ser dividido em quatro etapas: Etapa 1: ajuste da projeção; Etapa 2: captura do vídeo; Etapa 3: ajuste do captura; e Etapa 4: interação. Nesta seção, são abordadas as etapas 1,2 e 3. A Etapa 4 consiste na interação abordada no Caso 2.

Etapa1:ajustedaprojeçãoA Etapa 1 de ajuste da projeção é realizada utilizando o componente ofxGlWarper. No testApp.h,

foi adicionado uma instância do objeto que faz a deformação (ofxGLWarper), os quatro pontos que definem as quinas e um callback que trata o click em cada uma das quinas, mostrado na Figura 1.17.

// ...

using namespace ofxCv;

using namespace cv;

// ...

#include “ofxGLWarper.h”

// ...

class testApp : public ofBaseApp{

// ...

// WARPER DA PROJEÇÃO

void onCornerChangeProj(ofxGLWarper::CornerLocation &cornerLocation); //callback de ajuste das quinas

ofxGLWarper warper;// warper que ajusta a projeção

ofImage image;

ofPoint TLproj; ofPoint TRproj; ofPoint BLproj; ofPoint BRproj; // quinas da projeção

};

Figura 17. Cabeçalho do ajuste de projeção.

Page 120: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

120

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

Dentro da função de configuração o warper é iniciado, como mostrado na Figura 1.18.

void testApp::setup(){

// ...

// CONFIGURAÇÃO DO WARPER DE PROJEÇÃO

TLproj = ofPoint(0, 0); TRproj = ofPoint(sw,0);

BLproj = ofPoint(0, sh); BRproj = ofPoint(sw, sh);

warper.setCorner(ofxGLWarper::TOP_LEFT, TLproj); // indicar onde está cada canto

warper.setCorner(ofxGLWarper::TOP_RIGHT, TRproj);

warper.setCorner(ofxGLWarper::BOTTOM_LEFT, BLproj);

warper.setCorner(ofxGLWarper::BOTTOM_RIGHT, BRproj);

ofAddListener(warper.changeEvent, this, &testApp::onCornerChangeProj); // iniciar a callback

warper.setup(0,0,sw,sh);

warper.activate();

// ...

}

Figura 1.18. Setup do ajuste de projeção.

O método update não precisa ser modificado, já que a função de callback chama as rotinas que alteram as quinas e atualizam as variáveis que indicam a alteração de posição, como mostrado na Figura 1.19.

void testApp::onCornerChangeProj(ofxGLWarper::CornerLocation & cornerLocation){

switch (cornerLocation) {

case ofxGLWarper::TOP_LEFT:

TLproj = warper.getCorner(cornerLocation); break;

case ofxGLWarper::TOP_RIGHT:

TRproj = warper.getCorner(cornerLocation); break;

case ofxGLWarper::BOTTOM_LEFT:

BLproj = warper.getCorner(cornerLocation); break;

case ofxGLWarper::BOTTOM_RIGHT:

BRproj = warper.getCorner(cornerLocation); break; }

}

Figura 1.19. Callback que captura quinas.

Page 121: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

121

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

No método draw, todo o conteúdo onde vai ser aplicado a deformação deve estar contido entre warper.begin() e warper.end(), como visto na Figura 1.20. (Obs.: Todos os desenhos são nas coordena-das da janela)

void testApp::draw(){

// ...

warper.begin();// inicia contexto do warp

// aqui fica tudo que vai sofrer deformação

warper.draw();// função que mostra a área que esta sendo deformada

warper.end();// finaliza context do warp

// ...

}

Figura 1.20. Draw do ajuste de projeção

A Figura 1.21 mostra um exemplo da imagem original em 1.21a e da imagem adaptada em 1.21b.

(a) Janela original. (b) Janela deformada.

Figura 1.21. Exemplo da deformação da janela.

Etapa2:capturadovídeoEsta etapa já era realizada no Caso 2, em que no update são feitas a captura do vídeo e exibição

(Figuras 1.13 e 1.14)

Etapa3:ajustedacapturaNesta etapa, é realizada a deformação da imagem capturada pela câmera. Para isso, é realizado

um procedimento “inverso” ao da Etapa 1. Inicialmente, é instanciado em testApp.h alguns objetos que ajudarão no warp da imagem, visto na Figura 1.22.

Page 122: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

122

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

// ...

// WARPER DA CAPTURA

vector<cv::Point2f> warpPoints;// vetor que armazena as quinas para passar para o openCV

ofImage camWarped;// imagem realizada a deformação (para calibração)

ofxGLWarper camHelper;// warper que ajuda no ajuste da câmera

void onCornerChangeCam(ofxGLWarper::CornerLocation &cornerLocation); // callback de ajuste de quinas

ofPoint TLcam; ofPoint TRcam; ofPoint BLcam; ofPoint BRcam;// quinas da camera

// ...

Figura 1.22. Cabeçalho do ajuste da captura

No método setup (Figura 1.23), as instâncias são inicializadas semelhantemente ao warp da projeção.

// ...

// CONFIGURAÇÃO DA CAPTURA

TLcam = ofPoint(0+1, 0+1); TLcap.x = TLcam.x; TLcap.y = TLcam.y;

TRcam = ofPoint(sw-1,0+1); TRcap.x = TRcam.x; TRcap.y = TRcam.y;

BLcam = ofPoint(0+1, sh-1); BLcap.x = BLcam.x; BLcap.y = BLcam.y;

BRcam = ofPoint(sw-1, sh-1); BRcap.x = BRcam.x; BRcap.y = BRcam.y;

camHelper.setCorner(ofxGLWarper::TOP_LEFT, TLcam);

camHelper.setCorner(ofxGLWarper::TOP_RIGHT, TRcam);

camHelper.setCorner(ofxGLWarper::BOTTOM_LEFT, BLcam);

camHelper.setCorner(ofxGLWarper::BOTTOM_RIGHT, BRcam);

ofAddListener(this->camHelper.changeEvent, this, &testApp::onCornerChangeCam);

camHelper.setup(0,0,sw,sh);

cammHelper.deactivate();

// ...

Figura 1.23. Método setup do ajuste da captura

Page 123: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

123

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

O ofxCv possui um método específico para fazer esse corte e deformação de cena, o unwarpPers-pective. Ele utiliza uma variável diferente de ofPoint e, para isso, na hora de passar o parâmetro é feita um adaptação para cv::Point2f com os dados do callback onCornerChangeCam (semelhante à onCor-nerChangeProj). No método update, é realizada a captura da câmera e os pontos de ajuste são passados para a função unwarpPerspective, que modifica a imagem da câmera e salva numa segunda variável, como visto na Figura 1.24.

// ...

cam.update();

if(cam.isFrameNew()){

vector<cv::Point2f> warpPoints;

warpPoints.push_back(cv::Point2f(TLcam.x,TLcam.y));

warpPoints.push_back(cv::Point2f(TRcam.x,TRcam.y));

warpPoints.push_back(cv::Point2f(BRcam.x,BRcam.y));

warpPoints.push_back(cv::Point2f(BLcam.x,BLcam.y));

unwarpPerspective(cam,camWarped,warpPoints);

camWarped.update();

}

// ...

Figura 1.24. Método update do ajuste da captura

No momento de calibração, é necessário reexibir o resultado da calibração, utilizando camWar-ped.draw() no método draw. Durante o uso da aplicação, a re-projeção do conteúdo filmado deforma a projeção e faz alguns efeitos aleatórios. A Figura 1.25 mostra um exemplo da imagem original em 1.25a e da imagem adaptada em 1.25b.

(a) Captura original (b) Captura deformadaFigura 1.25. Resultado do ajuste da captura

Page 124: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

124

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

Note que os pontos vermelhos são exatamente os pontos que definem a quina da projeção. Num software automático essas quinas podem ser filmadas e a calibração pode ser automática. Existem ou-tros métodos de calibração de projetor-câmera, este está longe de ser ótimo, porém é simples e didático. Das etapas, a parte mais custosa é o ajuste da câmera. Vale lembrar que, na hora de projetar o conteúdo de interação, deve-se colocar o warper de deformação da projeção.

A sequência de Figuras 1.26 exemplifica as etapas da calibração da projeção: (a) sem ajuste, (b) ajuste da área de projeção, (c) ajuste da câmera e (d) rastreando.

(a) Descalibrado (b) Ajuste da projeção.

(c) Ajuste de câmera (d) Rastreando

Figura 1.26. Etapas da calibração da projeção.

1.7.4 Usos:

Algumas sugestões de uso de projeção calibrada compreendem:• TableTops: bancadas didáticas, jogos interativos, ferramentas para engenharia, controle de

equipamentos, prototipagem de ergonomia.

Page 125: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

125

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

• Projeçõesemparede: anúncios interativos em grandes locais (shoppings, ou eventos aber-tos), montagens interativas de museus.

1.8 Caso 4: Uso de hardware no loop de interação

Este caso mostra a utilização do Arduino como interface de hardware para sensores e atuadores, que propiciam a criação de um ambiente de Realidade Cruzada, que se torna também Projetiva com a inclusão dos Casos evolutivos 2 e 3. Este caso contém: uma parte de teoria com informações básicas do Arduino e códigos exemplos para teste; uma parte de artefatos; uma parte de códigos com a inclusão do Arduino ao caso 3 e sugestões e uso.

1.8.1 Teoria

O oF possui integração com o Arduino de maneira muito simples, podendo comunicar-se de duas formas: serialmente ou via biblioteca Firmata.

• A comunicação serial requer o tratamento do dado recebido, verificando número de bytes, tipo de informação, fazendo o controle de transmissão e recepção.

• A utilização da biblioteca Firmata faz com que o Arduino passe a ser apenas uma interface de hardware, na qual o processamento das alterações dos pinos pode ser feito no host, ao invés de embarcá-lo.

O oF já possui um tipo padrão que é utilizado para conectar-se ao Arduino, implementando os métodos mais utilizados9:

• connect()

• disconnect()

• getAnalog()

• getAnalogPinReporting()

• getDigital()

• getDigitalPinMode()

• getPwm()

• getString()

• isArduinoReady()

• isInitialized()

• sendAnalogPinReporting()

• sendByte()

• sendDigital()

• sendDigitalPinMode()

• sendPwm()

• sendReset()

• sendString()

• setUseDelay()

• update()

9 http://www.openframeworks.cc/documentation/arduino/ofArduino.html

Page 126: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

126

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

Para este exemplo, serão utilizados três componentes: um LED ligado ao pino digital 11, um botão ligado ao pino digital 02 e um potenciômetro ligado ao pino analógico 05.

ConfigurandooArduinoPara utilizar a biblioteca Firmata, deve-se carregá-la no Arduino: Execute a IDE do Arduino, abra

o menu ExamplesàFirmataàStandardFirmata sketch e faça o upload no Arduino. A Figura 1.27 mostra um exemplo do circuito montado e a representação das ligações:

(a) Montagem do Arduino

(b) Representação das ligações10

Figura 1.27. Circuito montado10

10 A representação das ligações foi feito com o software gratuito e open-source: http://fritzing.org/home/

Page 127: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

127

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

ConfigurandoooFPara configurar o oF, deve-se realizar a instância do tipo na classe base do oF. Para saber se o

Arduino foi configurado corretamente, pode ser utilizado uma variável booleana de f lag. Algumas funções auxiliares são utilizadas como callback para a configuração, alteração do pino analógico e do digital e para manusear a atualização. Estão adicionados mais dois strings apenas para exibir o status dos elementos digitais e analógicos.

class testApp : public ofBaseApp{

...

ofArduino ard;

bool bSetupArduino;

private:

void setupArduino(const int & version);

void digitalPinChanged(const int & pinNum);

void analogPinChanged(const int & pinNum);

void updateArduino();

string buttonState;

string potValue;

...}

Figura 1.28. Instância dos itens.

A configuração do Arduino se dá em duas etapas: a primeira etapa é a conexão serial e a configu-ração da função, que será chamada após receber a notificação do Arduino, indicando que está pronto para utilização; a segunda etapa é a configuração das funções dos pinos.

Page 128: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

128

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

void testApp::setup(){

...

ard.connect(“COM3”,57600); // conexão

// listen for EInitialized notification e chama o callback de setup

ofAddListener(ard.EInitialized, this, &testApp::setupArduino);

bSetupArduino = false; // flag que o Arduino está pronto

...}

void testApp::setupArduino(const int & version) {

// Remove o listener de setup e habilita o flag de permissão

ofRemoveListener(ard.EInitialized, this, &testApp::setupArduino);

bSetupArduino = true;

ard.sendDigitalPinMode(11, ARD_PWM); // pino do led: pino digital 11.

ard.sendDigitalPinMode(2, ARD_INPUT); // pino do botão: pino digital 02

ard.sendAnalogPinReporting(5, ARD_ANALOG); // pino do potenciomento: pino analógico 05;

// Listeners para o recebimento de dado digital e analógico

ofAddListener(ard.EDigitalPinChanged, this, &testApp::digitalPinChanged);

ofAddListener(ard.EAnalogPinChanged, this, &testApp::analogPinChanged);

}

Figura 1.29. Configuração

A atualização dos dados é realizada constantemente, verificando o flag para testar se o envio já está habilitado.

void testApp::update(){

updateArduino();}

void testApp::updateArduino(){

ard.update();

if (bSetupArduino) { // não envia nada até estar pronto }

}

Figura 1.30. Rotina que atualiza para receber e enviar novos dados.

Page 129: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

129

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

Toda vez que um dado é recebido, é necessário chamar uma função que manipula estes dados. No caso do exemplo, são considerados o dado digital e o dado analógico. Para exemplificar, na recepção está sendo alterado o valor da string, com o número do pino e o dado recebido.

void testApp::digitalPinChanged(const int & pinNum) {

// Faça algo com o dado digital recebido

buttonState = “digital pin: “ + ofToString(pinNum) + “ = “ + ofToString(ard.getDigital(pinNum));

}

void testApp::analogPinChanged(const int & pinNum) {

// faça algo com o dado analógico recebido

potValue = “analog pin: “ + ofToString(pinNum) + “ = “ + ofToString(ard.getA-nalog(pinNum));

}Figura 1.31. Funções que verificam o recebimento de dado.

Para exemplificar, o resultado pode ser adicionado na função draw, indicando o valor do poten-ciômetro e do botão pressionado (alimentados pelas funções digitalPinChanged e anlogPinChanged.

void testApp::draw(){

if (!bSetupArduino){

ofDrawBitmapString(“arduino not ready...\n”, 40, 40);

} else {

ofDrawBitmapString(potValue + “\n” + buttonState, 40, 40);

}

}

Figura 1.32. Rotina de exibição.

As interações com o Arduino podem ser realizadas pelo teclado, mouse, etc. No exemplo, seguem as interações via teclado, pela tecla a ou s, e pelo mouse.

Page 130: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

130

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

void testApp::keyPressed (int key){

switch (key) {

case ‘a’: case ‘A’: ard.sendDigital(7, ARD_HIGH); break;

case ‘s’: case ‘S’: ard.sendDigital(7, ARD_LOW); break;

default: break;

}

}

void testApp::mousePressed(int x, int y, int button){

// liga o led

ard.sendDigital(7, ARD_HIGH);}

void testApp::mouseReleased(int x, int y, int button){

// desliga o led

ard.sendDigital(7, ARD_LOW);}

Figura 1.33. Interações.

A execução do programa gera a tela da Figura 1.34.

Figura 1.34. Exemplo de execução.

1.8.2 Artefatos

Os artefatos de interação continuam os mesmos, sendo que a diferença é do artefato de infraes-trutura, contendo a localização grafada dos elementos reais. Este caso inclui a utilização do artefato de hardware no loop de interação.

1.8.3 Código

Como visto no exemplo da sessão de teoria deste caso, para inserir o Arduino, é necessário fazer sua instância (ofArduino) e criar alguns métodos callbacks (setupArduino, digitalPinChange, analo-

Page 131: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

131

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

gPinChange) para tratar os eventos. Nos métodos de tratamento das alterações de pinos, são capturadas as informações de interação do elemento computacional.

As interações propostas para este caso estão descritas no diagrama de estados da Figura 1.35, no qual o usuário pode, via um botão físico ou um botão virtual, acender/apagar um LED e um feixe de luz virtual, e controlar sua intensidade utilizando um potenciômetro e a direção usando um dos dedos.

Figura 1.35. Diagrama de estados da interação.

Para fazer essa interação de exemplo, é necessário apenas um dedo. Logo, deve-se utilizar duas características desse dedo: sua existência e sua posição, para respectivamente adaptar o formato da luz; e para acionar o botão virtual e a mudança de direção.

As posições de interação (botão virtual e localização da lâmpada) devem ser registrados em duas variáveis do tipo ofPoint (ledPosicao, botaoVirtualPosicao), o que facilita o manuseio vetorial.

Os elementos físicos tem um espelhamento de variáveis indicativas no software (botaoRealStatus, ledStatus), bem como o status do botão virtual (botaoVirtualStatus).

As interações vindas do hardware podem ser colocadas nos call-backs, como visto na Figura 1.36, que mostra o tratamento do dado analógico e o da alteração de estado do LED através do botão. Neste exemplo, a saída para o hardware é só a alteração do estado do LED.

Page 132: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

132

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

void testApp::digitalPinChanged(const int & pinNum) {

if(botaoRealStatus == false && ard.getDigital(pinNum) == 1) // pega edge positivo do click

if(ledStatus == true) { // caso o led esteja on -> apaga

ledStatus = false;

ard.sendDigital(7, ARD_LOW);

} else { // caso o led esteja off -> acende

ledStatus = true;

ard.sendDigital(7, ARD_HIGH); }

botaoRealStatus = ard.getDigital(pinNum);}

void testApp::analogPinChanged(const int & pinNum) {

intensidade = ard.getAnalog(pinNum);}

Figura 1.36. Métodos de tratamento da entrada de interação com hardware.

Todas as interações podem ser colocadas no método draw, visto na Figura X.

void testApp::draw(){

// ...

warper.begin();// contexto de deformação do warper

drawTarget(&markYellow);// TRATA IDENTIFICADOR DO INTERADOR

if(ledStatus){ // TRATA INTERAÇÃO DE FORMATO DO FEIXE

if(markYellow.status){ // se o led está on desenha feixe.

ofSetLineWidth(this->intensidade);

ofSetColor(ofColor::white); ofLine(ledPosicao,markYellow.position); ofSetLine-Width(1);

}else{// se o led está on desenha luz

ofSetColor(ofColor::white);

ofCircle(ledPosicao,intensidade/100);}

}

// ...

}

Figura 37. Interação de posição e formato do feixe.

A sequência de Figuras 1.38 mostra o resultado da interação com realidade cruzada projetiva, onde a câmera captura os marcadores, projeta a camada virtual e um hardware é adicionado no loop de interação. A Figura 1.38a mostra a aplicação calibrada, rastreando o anel amarelo; 1.38b mostra a

Page 133: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

133

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

interação com o hardware para acender o LED e o feixe de luz virtual. O LED é o elemento que ilustra a sobreposição das camadas virtual e real. A Figura 1.38c mostra o feixe de luz seguindo o anel; A Figura 1.38d mostra o anel sobre o botão com a imagem que é projetada na Figura 1.38e; e na Figura 1.38f é mostrado um close no anel acionando o botão virtual, que possui a mesma função do botão real sendo o exemplo de não sobreposição das camadas.

(a) Aplicação calibrada rastreando. (b) Realizando interação com o botão, para acender o LED e o feixe de luz.

(c) Feixe seguindo o anel. (d) Movimentando anel.

(e) Vista do que é projetado. (f) Sobre o botão, apaga-se o feixe.

Figura 1.38. Sequencia de eventos do exemplo de Realidade Cruzada Projetiva

Page 134: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

134

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

1.8.4 Usos

A utilidade de ter um hardware de manipulação permite aumentar a capacidade dos artefatos tangíveis das interfaces, sendo que algumas sugestões de aplicações são:

• Bancadasdidáticasinterativas: controle do equipamento e visualização do resultado pro-jetado.

• Interaçãocomretroprojeção:captura do toque no vidro, para controle de equipamentos. • Objetosinteligentes: objetos inteligentes que transmitem informação para sincronizar com

a projeção (IoT).

1.9 Considerações finais

Este capítulo visou apresentar a abordagem de realidade cruzada projetiva. A utilização de visão computacional, mesmo que simplificada, via rastreio de cores possibilita

interações numa interface de realidade aumentada projetada. Hardware no loop de interação de realidade aumentada permite a fusão com sensores e atuadores,

característico de mundos ubíquos, criando um ambiente de realidade cruzada. O ambiente de reali-dade cruzada beneficia-se do conceito de internet das coisas, tratando a forma de interconexão dos elementos eletrônicos potencializados com realidade aumentada.

Este capítulo trouxe como exemplo de implementação o ferramental openFrameworks que é gra-tuito, open-source (Licença MIT) e multi-plataforma. Como sugestão de livro e aprofundamento neste ferramental, aconselhamos o livro “Programming Interactivity” [Noble 2009] da O’Reilly e os tutorais do site do openFrameworks.

Referências

KIRNER, C. (2011) “Prototipagem rápida de aplicações interativas de realidade aumentada”. In: Tendências e Técnicas em Realidade Virtual e Aumentada. Porto Alegre: SBC. p. 29–54. Disponível em: <http://ckirner.com/download/capitulos/Prot-Rapida-RA-CK.pdf>. Acesso em: 15/03/2014.

SCHROEDER, R. (2008) “Defining virtual worlds and virtual environments”. Journal of Virtual worlds Resear-ch. Disponível em: <http://journals.tdl.org/jvwr/article /view/294>. Acesso em: 15/03/2014.

wEISER, M. (1993) “Hot topics - ubiquitous computing. Computer, v. 26, n. 10, p. 71–72, 1993. ISSN 0018-9162.

KIRNER, C.; CERQUEIRA, C. S.; KIRNER, T. G. (2012) “Using augmented reality cognitive artifacts in edu-cation and virtual rehabilitation”. In: Virtual Reality in Psychological, Medical and Pedagogical Applications. InTech. p. 247–270. ISBN 9789535107.

ASHTON, K. (2009) “That ‘Internet of Things’ Thing”. In RFID Journal. Disponível em: <http://www.rfidjour-nal.com/articles/view?4986>. Acesso em: 15/03/2014.

Page 135: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

135

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

BETTERS, E. (2014) “Internet of Things Explained: what is it, and can it really change the world?”. In: Pocke-t-lint. Disponível em: <http://www.pocket-lint.com/news/126559-internet-of-things-explained-what-is-it-and-can-it-really-change-the-world>. Acesso em: 15/03/2014.

CERP (2009) “Strategic Research Roadmap”. Disponível em: <http://www.grifs-project.eu/data/File/CERP-IoT%20SRA_IoT_v11.pdf>. Acesso em: 15/03/2014.

wATSON, T.; (2007) “Laser Tag 2.0”. Graffiti Research Lab. Disponível em: <http://www.muonics.net/blog/index.php?postid=26>. Acesso em: 15/03/2014.

MISTRy, P. (2011) “sixthsense – integrating information with the real world. Disponível em: < http://www.pranavmistry.com/projects/sixthsense/>. Acesso em: 15/03/2014.

zIOLA, R., GRAMPUROHIT, S., NATE, L., FOGARTy, J., HARRISON, B. (2011) OASIS: Creating Smart Ob-jects with Dynamic Digital Behavior, workshop at IUI 2011. Disponível em: <http://www.ryderziola.ca/resear-ch/oasis_iui_workshop.pdf>. Acesso em: 13/02/2014.

UNDERKOFFLER, J.; CHAK, D.; SANTOS, D.; ISHII, H. (1998) “I/O Bulb and Luminous Room” – Tangible Media Group. Disponível em: <http://tangible.media.mit.edu/project.php?recid=73>. Acesso em: 15/03/2014.

PATTEN, J.; PANGARO, G. A.; REyNOLDS, M.; ALONSO, J.; PANGANIBAN, J.; HINES, J.; ISHII, H. (2002) “Sensetable” – Tangible Media Group. Disponível em: <http://tangible.media.mit.edu/project/sensetable/>. Acesso em: 15/03/2014.

Pattern Studio (2014) “Sensetable”. Disponível em: <http://www.pattenstudio.com/projects/sensetable/>. Aces-so em: 15/03/2014.

MEIKE, R. (2012) “Arduino Uno vs Beagle Bone vs Raspberry Pi”. Disponível em: <http://digitaldiner.blogspot.in/2012/10/arduino-uno-vs-beaglebone-vs-raspberry.html>. Acesso em: 15/03/2014.

wikipedia (2014) “List of widget toolkits”. 2014. Online. Disponível em: <http://en.wikipedia.org/wiki/List_of_widget_toolkits>. Acesso em: 27/01/2014.

NOBLE, J. (2009) “Programming Interactivity: A Designer’s Guide to Processing, Arduino, and Openframewor-ks”. 1st. ed. O’Reilly Media, Inc., 2009. ISBN 0596154143, 9780596154141.

OpenCV (2013) “OpenCV Documentation”. Disponível em: <http://docs.opencv.org/index.html>. Acesso em: 15/03/2014.

SMITH, A. R. (1978). “Color Gamut Transform Pairs”. In SIGGRAPH 78 Conference Proceedings. Disponível em: <http://alvyray.com/Papers/CG/color78.pdf>. Acesso em: 15/03/2014.

FOLEy, J. D.; DAM, A. van; FEINER, S. K.; HUGHES, J. F. (1990) “Computer graphics: principles and practice” (2nd ed.). Boston, MA, USA: Addison-wesley Longman Publishing Co., Inc., 1990. ISBN 0-201-12110-7.

Page 136: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

136

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 103-136, maio/2014.cERquEiRA, christopher Shneider; KiRnER, claudio. Construção de aplicações de Re-

alidade Cruzada Projetiva utilizando openFrameworks e ARDUINO.

wikipedia (2014). “HSL and HSV”. Disponível em: <http://en.wikipedia.org/wiki/HSV_color_space>. Acesso em: 15/03/2014.

BIMBER, O.; RASKAR, R. (2005) “Spatial Augmented Reality: Merging Real and Virtual worlds”. A. K. Peters, Ltd., Natick, MA, USA. Disponível em: <http://140.78.90.140/medien/ar/SpatialAR/download.php>. Acesso em: 15/03/2014.

CASSINELLI A.; BERGSTRöM, N. (2014). “ofxCvCameraProjectorCalibration”. Disponível em: <https://gi-thub.com/kikko/ofxCvCameraProjectorCalibration>. Acesso em: 15/03/2014.

Page 137: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

137

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

Interação Gestual em Ambientes Tridimensionais

Maria Amelia Eliseo Darlan Silva Alves Delmondes

Abstract

This chapter shows hand gesture interaction possibilities which users can manipulate virtual objects similarly to the real world. Nontraditional interfaces do the communication human-computer more na-tural by speech, movements of the body, writing and others. In this context, presents the computational architecture and its components to create gesture interfaces to handle 3D environment. Describe the Ges-tualJS framework to gestures recognition and web application integration. Finally, discusses the efficiency of this communication in multimedia system and virtual reality.

Resumo

Este capítulo apresenta possibilidades de interação gestual através das mãos onde usuários podem mani-pular objetos virtuais de forma similar ao mundo real. As interfaces não tradicionais oferecem um modo natural de comunicação humano-computador através da fala, movimentos corporais, escrita, dentre outros. Neste contexto, mostra a arquitetura computacional e seus componentes para a criação de inter-faces gestuais na manipulação de ambientes 3D. Descreve o framework GestualJS para o reconhecimento de gestos e integração com aplicações web. Por fim, discute a eficiência deste tipo de comunicação em sistemas multimídia e de realidade virtual.

1.1 Introdução

Cada vez mais os modos naturais de comunicação entre humano e computador fazem presentes nos mais variados sistemas computacionais. Trata-se de interfaces que exigem ferramentas e caracte-rísticas que se inspiram nos princípios das ações humanas. Por isso, tornam-se mais acessíveis e fáceis de aprender. A fala, o olhar, os movimentos do corpo tem sido explorados no sentido de aprimorar as interações entre o usuário e o ambiente virtual com mais expressividade e naturalidade.

137

Page 138: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

138

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

Gestos como movimentar o corpo ou as mãos ou apontar com os dedos também são formas na-turais da comunicação humana no mundo real. Muitas aplicações baseadas nos gestos das mãos têm surgido na última década. Tem-se utilizado os princípios da visão computacional para reconhecer os gestos das mãos como alternativa ao uso do mouse, deixando o diálogo mais natural.

Neste contexto este capítulo visa apresentar ao leitor as possibilidades de interações não tradicio-nais, especialmente as interações gestuais, em ambientes 3D e discutir a eficiência deste tipo de comu-nicação em sistemas multimídia e de realidade virtual. Apesar de ser um tema explorado na década passada, as interfaces naturais vem sendo desenvolvidas para oferecer mais f lexibilidade nas interações do usuário, até mesmo em sistemas web. Portanto, discute as possibilidades de interação com interfaces gestuais de usuário e suas particularidades. Descreve o framework GestualJS, que permite a inclusão de interações gestuais através das mãos em aplicações web. Mostra a arquitetura computacional e os devidos componentes para a criação destas interfaces para manipulação de ambientes 3D. O capítulo está estruturado da forma a cobrir os assuntos mais importantes sobre as interfaces gestuais através das mãos baseadas em visão computacional. A seção 1 fornece uma introdução às interações humanas e aborda as interfaces não tradicionais que envolvem os sentidos humanos, suas características e o estado da arte. A seção 2, por sua vez, apresenta as interfaces do usuário não tradicionais, que usam voz, gestos e visão como forma de interação em sistemas multimídia e de realidade virtual. Já a seção 3 discute a interação gestual, onde será apresentada a arquitetura computacional para a criação de interfaces ges-tuais na manipulação de ambientes virtual. A seção 4 apresenta o framework GestualJS, desenvolvido em JavaScript para o reconhecimento gestual das mãos e a integração com o ambiente web, descreve a elaboração de uma interface gestual para manipulação de objetos 3D para uma aplicação web, além de demonstrar outras possibilidades de aplicações deste tipo de interface. Finalmente a seção 5 apresenta as considerações finais e conclui o capítulo.

1.2 As Interfaces do Usuário

A criação de sistemas interativos pressupõe o entendimento do ser humano, suas características, ações e reações diante das diversas situações rotineiras. Quanto maior o conhecimento do ser humano maiores são as chances de conceber um sistema com interações que funcionam tal como pretendido. Para fazer coisas os humanos usam sensores, o cérebro e responders. Diante de um computador um usuário monitora o estado do computador com os sensores e através dos responders controla o estado do mesmo. A interface é onde ocorrem os eventos comportamentais necessários à interação. Os cinco sentidos humanos (visão, audição, tato, paladar e olfato), meios pelos quais são percebidos os fenôme-nos físicos, recebem e convertem sinais elétricos nervosos, processados no cérebro, em ondas sonoras, raios luminosos, sabores, odores e contato físico, e se constituem nos sensores que percebem o ambien-te ao redor. Através do movimento os humanos podem modificar este ambiente, com os responders, ou seja, controladores utilizados para realizar uma intervenção, como por exemplo, usar um dedo para escrever uma mensagem no celular, os pés para andar ou correr, as cordas vocais para falar, dentre outros [Mackenzie, 2013].

A comunicação humana se utiliza destes canais sensoriais para capturar, processar e trocar infor-mação que pode ser realizada através da fala, de gestos, de expressões faciais, etc. Canais estes que não

Page 139: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

139

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

são exclusivos. Observando-se uma conversa entre duas ou mais pessoas, além da fala, elas gesticulam, apontam objetos, demonstram emoções e sentimentos e isso ocorre simultaneamente.

A criação de interfaces de usuário tem considerado essa dimensão multissensorial da comuni-cação humana e envolvido os sentidos humanos na tentativa de estabelecer um diálogo mais natural com o computador. Há uma variedade delas, conhecidas como interfaces não tradicionais, pois saem da convencional interação com teclado e mouse, como por exemplo, as interfaces táteis, que usam as sensações de toque para fornecer informações ao usuário; as interfaces de locomoção, que permitem o usuário se mover ou girar no mundo real ou virtual de tal forma a provocar uma sensação de des-locamento, como nadar, escorregar, correr, pular, voar e assim por diante; as interfaces gestuais, que usam as mãos ou os movimentos da face ou o olhar para controlar o computador; as interfaces de áudio para enviar mensagens sonoras; as interfaces de voz, que codificam a voz humana para estabelecer um diálogo entre o sistema automatizado e o usuário. Pouco exploradas, ainda há as interfaces olfativas, utilizadas em situações onde são necessárias mensagens mais amplas com transmissão de cheiros e interfaces gustativas que representam um sabor específico para simular o paladar real [Kortum 2008].

Com o aumento das possibilidades de interfaces não tradicionais e considerando a dimensão mul-tissensorial da comunicação humana surgem as interfaces multimodais. São interfaces onde uma tare-fa é realizada usando uma ou mais interfaces como alternativa ou usando uma combinação de interfa-ces simultaneamente. Com a tecnologia aumentando a quantidade de dispositivos e aplicativos usados no dia a dia para organizar, entreter, informar, é razoável que a interface do usuário também acompa-nhe este ritmo. Como cada usuário e cada tipo de aplicativo tem uma necessidade diferente podem-se fornecer alternativas de interações oferecendo mais de uma modalidade de interface. A tarefa não exige que as interfaces oferecidas sejam utilizadas simultaneamente, ou seja, elas são mutuamente exclusivas, dando a oportunidade de escolha ao usuário, que poderá se adequar aquilo que for melhor para ele executar a ação desejada. Estas são as chamadas interfaces multimodais mutuamente exclusivas.

Por outro lado, na direção contrária as interfaces multimodais mutuamente exclusivas há as in-terfaces multimodais que requerem ou permitem ao usuário interagir com o sistema com mais de uma interface ao mesmo tempo, ou seja, são as interfaces multimodais mutuamente inclusivas. Por exem-plo, sistemas que combinam as interfaces de reconhecimento de fala e resposta de voz interativa, ou sistemas que combinam interfaces de áudio e visão para criar interfaces efetivas. Sistemas de realidade virtual são bons exemplos disso, onde as interfaces de visão, audição, fala, táteis e gestos são combina-dos em uma única experiência integrada. A Figura 1 mostra um treinamento para uso de paraquedas com interface multimodal, combinando visão e locomoção.

Diante destas diversidades, as interfaces não tradicionais pretendem oferecer mais transparência, f lexibilidade e eficiência nas interações humano-computador. Há uma expectativa de que sejam mais fáceis de entender, de manipular e sejam utilizadas em várias aplicações, como sistemas multimídia, de realidade virtual, de segurança, aplicações web, etc. O desafio na implementação destas interfaces é o reconhecimento das diferentes modalidades como dados computacionais, combinando-os com as restrições temporais e contextuais de forma a permitir sua interpretação. A finalidade de desenvolver uma interface que envolva os sentidos humanos não é fazer da sensação uma interface em si, mas de-senvolver uma interface mais eficiente para uma dada aplicação.

Page 140: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

140

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

Figura 1. Usuário usando um sistema de realidade virtual com interface multimodal que envolve visão e locomoção durante o treinamento para uso de paraquedas.

1.3 A Interação Gestual em Ambientes 3D

Os gestos são uma forma natural de comunicação não verbal realizada através de movimentos do corpo e do rosto. De certa forma complementa a comunicação verbal. Este é o conceito considerado para a elaboração de interfaces gestuais, que podem ser vistas como uma alternativa ou complemento para interfaces existentes [Kortum, 2008]. A interação gestual tem sido aplicada em dispositivos mó-veis e telas sensíveis ao toque que reagem ao posicionamento e movimento dos dedos do usuário, como deslocar, rotacionar ou dar zoom numa imagem da tela, como mostra a Figura 2.

Figura 2. Os dedos tocam a superfície da tela e escorregam para acionar comandos.

As interfaces gestuais envolvem movimentos das mãos e dos dedos para apontar ou controlar obje-tos, em substituição ao ponteiro do mouse, conforme as funcionalidades específicas da aplicação. Tam-bém podem envolver gestos faciais que captam as expressões do rosto e detectam reações e emoções.

Dentre as aplicações que fazem uso de interfaces gestuais específicas para reconhecer os movi-mentos das mãos podemos citar o reconhecimento da linguagem japonesa de sinais [Tanibata, Shima-

Page 141: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

141

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

da e Shirai, 2002], o Gestix, para dar suporte à navegação e manipulação de imagens em um banco de dados de prontuário eletrônico [Wachs, Stern, Edan, Gillam, Feied, Smith e Handler 2008], o sistema Wearable Augmented Reality for Personal, Intelligent, and Networked Gaming (WARPING) para inte-ração em games [Starner, Leibe, Singletary e Pair, 2000], dentre outros.

1.3.1 Reconhecimento de gestos das mãos

O reconhecimento das mãos pelo computador pode ser feito de várias maneiras. Uma delas é atra-vés de sensores óticos ou eletromagnéticos, como as datagloves (luvas de dados) exibidas na Figura 3, que medem a flexão e os ângulos de abertura dos dedos além da posição do pulso. Neste caso o usuário precisa vestir a luva de dados para interagir com o sistema em substituição ao mouse.

Figura 3. Dataglove

Outra forma de reconhecer o movimento das mãos é através da visão computacional que oferece maior liberdade de movimentos, uma vez que serão detectados por uma câmera. Algoritmos de visão computacional, muitas vezes consistem em três partes: segmentação que busca as partes relevantes no campo da visão, rastreamento que segue os movimentos e classificação que encontra informações significativas, sendo um desafio implementá-los [Kortum, 2008].

A segmentação detecta partes do corpo numa imagem, mãos, por exemplo, a qual depende da forma, da cor ou de uma sequência de movimentos. Pode-se simplificar a segmentação usando um refletor infravermelho ou marcações que sejam fáceis de serem identificadas ou segmentadas. O ras-treamento segue uma série de características relacionadas ao movimento. A classificação detecta o movimento real através de um padrão ou modelos de combinação.

Para construir uma interface eficiente e aceitável usando visão computacional, deve-se considerar o tipo de câmera, as características da lente, detalhes das imagens e do fundo, as interferências exter-nas, as condições de iluminação e os diferentes tipos de usuários [Wachs, Kölsch, Stern e Edan, 2011]. No entanto, com interfaces gestuais baseadas em visão computacional não há necessidade de “vestir”

Page 142: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

142

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

algum equipamento como a dataglove, dando liberdade ao movimento, situação propícia numa intera-ção com sistemas de realidade virtual.

Outro fator importante a ser considerado na criação de uma interface gestual é encontrar um gesto apropriado para o algoritmo de reconhecimento que será utilizado uma determinada aplicação. O processo para determinar se o gesto escolhido é adequado para a finalidade da aplicação envolve o conhecimento das necessidades dos usuários, além de testes de avaliação e refinamento. O primeiro passo é encontrar as funcionalidades que os gestos terão que acessar. A seguir, buscar gestos lógicos que representam estas funcionalidades. Isso pode ser feito através de entrevistas ou experimentos com pessoas submetidas a cenários que levem a tarefas que exijam aspectos técnicos da interface pesquisada. Num terceiro momento, é realizado o processamento do dado considerando a seleção dos gestos que serão considerados na interface. Finalmente realizar testes para mensurar a efetividade. Os testes devem abordar os seguintes atributos: a interpretação semântica, generalização, facilidade de uso, memorização e a forma de aprendizado e stress que o movimento demanda durante a execução da tarefa [Kortum, 2008].

A interface gestual é uma forma de deixar a experiência do usuário mais natural e intuitiva. Por se utilizar de movimentos físicos dos usuários, o uso prolongado deste tipo de interface pode levar ao can-saço físico. No entanto, sua implementação envolve desafios de ergonomia, usabilidade, tempo rápido de resposta, alta precisão de reconhecimento, aspectos estes a serem observados para obter sucesso na realização das tarefas.

1.4 Interface Gestual para Manipulação de Objetos Virtuais

Esta seção apresenta um framework para interfaces gestuais que auxilia na manipulação de ob-jetos virtuais, o GestualJS. Devido sua arquitetura, pode ser utilizado em aplicações web inclusive envolvendo recursos 3D. Baseado em visão computacional uma webcam detecta a mão do usuário e o algoritmo reconhece alguns movimentos que são convertidos em comandos que substituem o mouse. O código-fonte é aberto, permitindo aos desenvolvedores de interfaces adaptarem o framework con-forme a necessidade da aplicação.

Devido à facilidade da interação, vários aplicativos que utilizam interface gestual baseado em visão computacional têm surgido. Como exemplo, pode-se citar o Flutter que permite controlar o Media Player com os gestos das mãos (https://f lutterapp.com), a ferramenta de gestos da EyeSight que permite interagir com as janelas do sistema operacional Windows (http://eyesight-tech.com/), além do framework reveal.js desenvolvido para criar apresentações HTML (Hypertext Markup Lan-guage) onde o movimento das mãos é utilizado para avançar ou retroceder os slides da apresentação (http://revealjs.com/).

O diferencial do framework GestualJS está na facilidade de implementação em aplicações web e não tem necessidade de instalação local de nenhum outro aplicativo ou plug-in, ao contrário dos exemplos citados acima. Alguns deles necessitam de instalação local, quando não, são instalados em servidores fazendo uso de tecnologias de comunicação cliente/servidor, como o WebRTC. O GestualJS se adequa à sintaxe padrão estabelecida pela W3C para tratamento de eventos em documentos HTML.

Page 143: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

143

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

Além disso, não há necessidade de aquisição de nenhum dispositivo especializado para o reconheci-mento de gestos, basta uma webcam.

1.4.1 Funcionalidades do GestualJs

GestualJS é um framework JavaScript orientado a objetos que permite aos elementos da estrutura DOM (Document Object Model - Modelo de Objetos de Documentos) de um documento HTML res-ponderem a ações disparadas através dos gestos das mãos humanas. Por ser um framework construído a partir da linguagem JavaScript pode ser facilmente incorporado às aplicações web. A HTML possui alguns manipuladores de eventos que podem ser disparados pelos usuários, por exemplo, quando um botão é clicado ou mesmo quando se movimenta o mouse sobre um texto. Os usuários interagem com os elementos da HTML através de eventos oriundos de diferentes dispositivos de entrada, tais como: mouse, teclado, e mais recentemente, telas sensíveis ao toque [W3C 2013] e dispositivos de entrada de áudio como o microfone [W3C 2012]. O GestualJS tem por objetivo aumentar o leque de dispositivos de interação a medida que utiliza os gestos realizados através das mãos dos usuários para realizar uma tarefa de uma forma mais natural ao ser humano. A ideia é fazer com que o usuário possa manipular objetos virtuais da mesma forma como o faz no mundo real, como virar a página de um livro ou girar um cubo com suas próprias mãos, sem a interferência de uma prótese, ou seja, algum dispositivo au-xiliar como o mouse ou o teclado. A Figura 4 mostra a interação com um cubo através das mãos com suporte do GestualJS.

Figura 4. Usuário interagindo com um cubo através das mãos com suporte do GestualJS

Como dito anteriormente, o core do framework baseado nos princípios da visão computacional, detecta os movimentos da mão do usuário, através de uma webcam, estes são reconhecidos e trans-formados em uma ação no mundo virtual. Através da imagem detectada é feito um mapeamento que,

Page 144: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

144

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

em seguida, é comparado a algumas características da mão humana. Para que a interação seja o mais natural possível, a resposta às ações do usuário precisa ser rápida e precisa. Trata-se de um recurso, que além de oferecer respostas rápidas, utiliza imagens como entrada de dados e tem a funcionalidade de se adequar facilmente a aplicações web, que por sua vez podem ser visualizadas nos mais variados tipos de tela, resoluções, configurações e ainda dependem da velocidade da conexão da rede. Outra variante é o poder de processamento dos computadores conectados à internet. Por isso, a implementação do GestualJS priorizou a otimização do processamento da máquina.

Essas características do ambiente exigiu a escolha de um algoritmo relativamente mais simples, se comparado aos tradicionalmente utilizados em aplicações de reconhecimento de gestos. Por isso, as aplicações que utilizam o GestualJS respondem aos gestos feitos pelo usuário em tempo real mesmo em máquinas comuns conectadas à Internet.

Através de mapeamentos verticais e horizontais o algoritmo gera gráficos baseados em níveis de cores, como característica invariante [Yang, Kriegman e Ahuja 2002] e contrastes, permitindo assim o reconhecimento das características das mãos em posições variadas. Em seguida compara os mesmos com um padrão predefinido de uma mão humana conforme o método de reconhecimento baseado em conhecimentos [Yang, Kriegman e Ahuja, 2002]. Após a mesma ser detectada na área de visualização da webcam, o algoritmo calcula o ponto médio do retângulo de “cobertura” da mão identificada, e compara-a com o ponto médio do reconhecimento anterior, definindo deste modo, por meio do des-locamento das posições dos eixos cartesianos em ambas iterações, o sentido da movimentação das mãos do usuários. A Figura 5 ilustra os gráficos gerados a partir dos níveis de cores e contrastes dos mapeamentos horizontais e verticais da mão do usuário.

Figura 5. Mapeamentos horizontais e verticais utilizados no reconhecimento de padrões da mão humana

A Figura 6 mostra a mão do usuário à esquerda e a imagem detectada pela câmera durante a fase de reconhecimento, à direita. Após a detecção, o algoritmo busca o ponto médio do retângulo de cobertura da imagem quando a mão do usuário está na posição inicial (X1, Y1), conforme mostra a

Page 145: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

145

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

Figura 7. Como a mão está se deslocando, a cada intervalo de tempo um novo cálculo do ponto médio do retângulo de cobertura da imagem é realizado, como exibe a Figura 8. Para identificar a direção do deslocamento, é calculada a diferença entre estes pontos médios, conforme ilustrado na Figura 9.

Figura 6. Detecção feita pela webcam (esquerda) e  imagem na fase do reconhecimento dos padrões pre-definidos (direita)

Figura 7. Detecção feita pela webcam e detecção do ponto médio quando a mão do usuário está na coor-denada (x1, y1)

Figura 8. Detecção feita pela webcam e detecção do ponto médio quando a mão do usuário está na coor-denada (x2, y2)

Page 146: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

146

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

Figura 9. Diferença entre os dois pontos médios encontrados nas duas detecções feitas pela  webcam (Figuras 7 e 8) e a identificação do sentido do deslocamento da mão do usuário

O fato do framework ser construído sobre a linguagem JavaScript permite encapsular todas as etapas do reconhecimento em um plug-in orientado a objetos, dando ao desenvolvedor a possibilidade de responder às interações através do tratamento de eventos, assim como ocorre com os manipuladores tradicionais da HTML DOM. As Figuras 10 e 11 mostram um exemplo do tratamento de eventos. A Figura 10 mostra como implementar o método “alert()” da linguagem JavaScript num evento “onload”. A Figura 11 mostra como implementar o evento “onHandUp” do framework GestualJS, onde uma ins-tância da classe Gestual precisou ser criada antes do evento.

 Figura 10. Tratamento de eventos JavaScript

 Figura 11. Tratamento de evento do framework GestualJS

Page 147: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

147

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

A adoção do GestualJS permite que diversas aplicações ganhem rapidamente novas formas de interação, por exemplo:

• Apresentações, para transcorrer entre os slides;• Livros, para movimentar suas páginas;• álbuns de fotos, para navegar entre as fotos;• Páginas web, para rolagens;• Movimentação de objetos 3D.

1.4.2 Implementação de aplicações web com o GestualJS

A implementação de aplicações web com o framework GestualJS é fácil e pode ser feita através dos seguintes passos:

• Fazer o download do arquivo gestual.js no formato JavaScript contendo o algoritmo do fra-mework, em https://github.com/DarlanDelmondes/gestualjs.

• Importar o arquivo gestual.js no documento HTML através do código exemplificado na Figura 12.

 Figura 12. Código HTML para importar o arquivo gestual.js

• Criar um elemento script do tipo JavaScript no documento HTML, como segue na Figura 13. Observação: o elemento, apesar de ser do tipo script, não é o mesmo criado na importação do framework.

 Figura 13. Criação do elemento script no documento HTML

• Instanciar um objeto do tipo GestualJS dentro do elemento script, criado no passo anterior, como segue na figura 14.

 Figura 14. Instância de um objeto do tipo Gestual

Page 148: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

148

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

Tratar um dos novos eventos disponíveis no documento HTML (pela inclusão do framework Ges-tualJS): “onHandUp”, “onHandDown”, “onHandLeft”, “onHandRight”. Passo exemplificado na figura 15, onde é mostrada uma mensagem para o usuário usando o método “alert()”.

 

Figura 15. Tratamento do evento “onHandUp”

Os movimentos das mãos do usuário reconhecidos pelo GestualJS durante a interação e seus res-pectivos eventos JavaScript são:

• Para cima (onHandUp);• Para baixo (onHandDown);• Para a direita (onHandDown);• Para a esquerda (onHandLeft).

1.4.3 Implementação de aplicações web 3D com o GestualJS

O GestualJS integra-se aos diversos recursos que a HTML oferece, por exemplo, a visualização 3D com X3DOM acrescentando à aplicação uma interação gestual. O mesmo poderá facilmente direcionar as respostas dos eventos para modificações na visualização do ambiente 3D (na rotação de um deter-minado objeto, por exemplo). Segue abaixo as etapas para criar uma aplicação envolvendo X3DOM e o framework GestualJS.

• Fazer o download do arquivo no formato JavaScript contendo o algoritmo do framework, em https://github.com/DarlanDelmondes/gestualjs.

• Fazer o download dos arquivos para a renderização do ambiente 3D usando o X3DOM: - CSS, em http://x3dom.org/x3dom/example/x3dom.css - JavaScript, em http://x3dom.org/x3dom/example/x3dom.js• Criar um elemento X3D contendo um objeto 3D, como mostra a Figura 16.

Figura 16. Código HTML para a criação de um elemento x3D contendo a cena de um quadrilátero

Page 149: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

149

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

Inserir um atributo “id” no elemento “Transform”, conforme a Figura 17.

Figura 17. Inclusão do atributo “id” no elemento “Transform”.

• Importar o arquivo do GestualJS no documento HTML através do trecho exemplificado na Figura 12.

• Criar um elemento script do tipo JavaScript no documento HTML, como segue na Figura 13. Observação: o elemento, apesar de ser do tipo script, não é o mesmo criado para na importa-ção do framework.

• Instanciar um objeto do tipo GestualJS dentro deste último elemento script. Como segue na Figura 14.

• Tratar um dos novos eventos disponíveis no documento HTML (“onHandUp”, “onHandDo-wn”, “onHandLeft”, “onHandRight”) para alterar o atributo “rotation” do objeto 3D, seguin-do a Figura 18.

Figura 18. Tratamento do evento “onHandUp”

Apesar da finalidade principal do framework, em adicionar um recurso para uma interação ges-tual em aplicações web, o mesmo possui algumas limitações a serem observadas no momento de sua implantação. O ambiente físico tem um importante papel no desempenho do framework, uma vez que variáveis como iluminação, resolução das imagens detectadas pela webcam, objetos com características semelhantes a de uma mão humana, a própria posição da mão diante da webcam, podem dificultar o reconhecimento feito por parte do algoritmo do GestualJS.

Essas limitações podem aos poucos ser superadas com o aperfeiçoamento do algoritmo do Ges-tualJS, inserindo novas abordagens relacionadas ao reconhecimento de objetos como as citadas por [Yang, Kriegman e Ahuja 2002] [Wang e Sung, 1999] [Rowley, Baluja e Kanade, 1996]. Envolvendo desde métodos baseados em conhecimentos pré-definidos, passando por métodos envolvendo carac-terísticas invariantes [Yang, Kriegman e Ahuja, 2002], até métodos que envolvam redes neurais, mas sempre priorizando a otimização do processamento da máquina.

1.5 Considerações Finais

Gesto é a forma mais básica e expressiva da comunicação humana, por isso vem sendo explora-do na criação de sistemas interativos. Através dele, pretende-se construir interfaces onde os usuários

Page 150: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

150

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

realizam tarefas de forma mais natural e próxima do mundo real. As interações gestuais através das mãos tem sido alternativa ao mouse em aplicações web, evidenciando a possibilidade de inclusão de in-terfaces multimodais neste ambiente. Vale lembrar que num ambiente web tem-se a preocupação com o tempo de resposta, a velocidade de processamento através da rede, a característica multiplataforma, elementos estes que dificultam a implantação de interfaces multimodais.

Ainda há alguns desafios na implementação de interfaces gestuais através das mãos baseadas em visão computacional para aplicações web. O algoritmo utilizado neste processo envolve a detecção, segmentação e reconhecimento do padrão. A detecção é um problema complexo, não apenas devido à forma da mão humana, mas às condições das variáveis de iluminação, cor da pele e tamanho da mão dos diferentes usuários. Durante o rastreamento podem surgir complicações devido a oclusões, presença de outras pessoas, movimentos rápidos que deixam a imagem distorcida. Enfrentar esses de-safios permite conseguir com precisão o reconhecimento da imagem. O reconhecimento não correto do padrão da mão durante a interação compromete a realização da tarefa.

Embora as pesquisas focadas na área de interações gestuais baseadas em visão computacional não sejam relativamente recentes, cada vez mais têm surgido aplicações com interfaces que se utilizam destes recursos. Além de melhorias na precisão do reconhecimento da imagem, faz-se necessário um estudo de usabilidade profundo no sentido de verificar satisfação do usuário, tempo de resposta, aná-lise do domínio da tarefa, facilidade de aprendizado e adaptação.

Referências

KORTUM, P., HCI Beyond the GUI - Design for Haptic, Speech, Olfactory, and Other Nontraditional Interfaces, Morgan Kaufmann Publishers, 2008.

MACKENzIE, I. S., Human-Computer Interaction - An Empirical Research Perspective, Morgan Kaufmann Publishers, 2013.

STARNER, T., LEIBE, B., SINGLETARy, B., and PAIR, J. (2000) “MIND-wARPING: Towards creating a com-pelling collaborative augmented reality game”, In Proceedings of the Fifth International Conference on Intelli-gent User Interfaces, New Orleans, ACM Press, P. 256-259.

TANIBATA, N., SHIMADA, N. and SHIRAI, y. (2002) “Extraction of hand features for recognition of sign language words”. In: Proceedings of the International Conference on Vision Interface (VI 02), Calgary, Canada, p. 391-398.

w3C (2005) “Document Object Model (DOM)”, http://www.w3.org/DOM/, Março, 2104.

w3C (2012) “web Speech API Specification”, https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html, Março, 2104.

w3C (2013) “Touch Events”, http://www.w3.org/TR/touch-events/, Março, 2014.

Page 151: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

151

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 137-151, maio/2014.EliSEo, maria Amelia; dElmondES, darlan Silva Alves. Interação Gestual em Ambientes Tridimensionais.

wACHS, J., KöLSCH, M., STERN, H. and EDAN, y. (2011) “Vision-Based Hand-Gesture Applications”, Communications of ACM, v. 54, n. 2, p. 60-71.

wACHS, J., STERN, H., EDAN, y., GILLAM, M., FEIED, C., SMITH, M., and HANDLER, J. (2008) “A hand gesture sterile tool for browsing MRI images in the OR”, Journal of the American Medical Informatics Associa-tion, v. 15, p. 321-323

wANG, J.G. and SUNG, E. (1999) “Frontal-view face detection and facial features extraction using color and morphological operations”, Pattern Recognition Letters, v. 20, p. 1053-1068.

yANG, M. H., KRIEGMAN, D. J. and AHUJA, N. (2002) “Detecting Faces in Images: A Survey”, IEEE Transac-tions on Pattern Analysis and Machine Intelligence, volume 24, issue 1, p. 34-58.

ROwLEy, H.A., BALUJA, S. and KANADE, T. (1996) “Neural Network-Based Face Detection”, In Proceedings of Computer Vision and Pattern Recognition, San Francisco, CA, IEEE Computer Society, p. 203-208.

Page 152: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

152

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

O Uso de Dispositivos Móveis e Realidade Aumentada em Ambientes Virtuais de Ensino e

Aprendizagem

Ilana de Almeida Souza-Concilio Beatriz de Almeida Pacheco

Abstract

Based on the concepts of Distance Education and Hybrid Education as teaching-learning processes me-diated by technologies and the strong familiarity of learners with technologies and digital devices (es-pecially smartphones), this article aims to discuss the development of open educational resources and learning objects of Augmented Reality integrated into mobile devices. A development methodology of instructional strategy that prioritizes highly interactive processes is presented, and the possibility of gene-rating resources in AR from the use of Aurasma tool is described in detail, promoting effective integration between mobile, Learning Management Systems (LMS) and real and virtual environments.

Resumo

Partindo dos conceitos de Educação à Distância e Educação Híbrida como processos de ensino-aprendi-zado mediados por tecnologias e da grande familiaridade dos aprendizes com as tecnologias e dispositi-vos digitais (especialmente smartphones), este artigo visa fomentar a discussão sobre o desenvolvimen-to de recursos educacionais abertos e objetos de aprendizagem em Realidade Aumentada integrados a dispositivos móveis. É apresentada uma metodologia de desenvolvimento de estratégia instrucional que prioriza os processos altamente interativo, além de descrita detalhadamente a possibilidade de geração de recursos em RA a partir do uso da ferramenta AURASMA, promovendo integração efetiva entre dis-positivo móvel, ambiente virtual de ensino e aprendizagem, ambientes reais e virtuais.

1.1 Introdução

Moran (2002) define a educação a distância como um processo de ensino-aprendizagem mediado por tecnologias, no qual professores e alunos estão separados espacial e/ou temporalmente.

152

Page 153: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

153

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

No entanto, Litwin (2001) aponta que Educação a Distância não mais se caracteriza pela distância, já que os encontros virtuais permitem uma educação eficiente, com alto nível de envolvimento dos aprendizes. Para o autor, uma característica importante deste modo é a mediação das relações entre professores e alunos.

Neste sentido, a possibilidade de mediação, tanto como uma estrutura para acesso e processamen-to de informações, quanto como um framework para a atividade de intercâmbio e colaboração provém da alta qualidade de tecnologias emergentes. Se as estruturas das redes, de múltiplas complexidades, são as novas tecnologias da computação, a atividade da rede é tão antiga quanto a humanidade, restrin-gida apenas pelas condições espaço-temporais e as limitações técnicas dos equipamentos disponíveis.

Para melhorar os sistemas formais de educação a distância foram desenvolvidos os chamados Sistemas de Gestão de Aprendizagem (LMS – do inglês, Learning Management Systems) ou Ambientes Virtuais de Ensino e Aprendizagem (AVEAs) que são aplicações de software ou tecnologias basea-das na Web utilizadas para planejar, implementar, e acessar um processo de aprendizagem específico. Normalmente, um sistema de gestão de aprendizagem fornece ao instrutor uma maneira de criar e distribuir conteúdo, monitorar a participação dos alunos, e acompanhar o desempenho do aluno. Um AVEA pode também proporcionar aos alunos a capacidade de usar recursos interativos tais como dis-cussões, chats e fóruns de discussão. Em tais ambientes, mais e mais ferramentas estão disponíveis para promover um processo mais rico de ensino e aprendizagem.

Vale ressaltar que o ambiente da rede é, por si só, colaborativo e incentivador da construção do conhecimento, mas seu uso normalmente está associado aos processos educativos não formais. Na educação formal, devido à necessidade de avaliação e controle de participação dos aprendizes, tais ambientes mais controlados têm adquirido grande importância ao longo dos anos. A questão que se apresenta a partir de seu uso é o fato dos recursos disponíveis muitas vezes serem pouco atrativos e o ambiente acabar reproduzindo processos da educação presencial, tão questionada atualmente.

A Realidade Aumentada, por sua vez, é conhecida como uma interface não-tradicional. Junta-mente com a Realidade Virtual e suas variações representam técnicas de interface computacional que levam em conta o espaço tridimensional. Nesse espaço, é interessante que o usuário possa atuar de for-ma multissensorial [Kirner and Kirner, 2011]. Tais tecnologias despertam o interesse de pesquisadores, devido ao desenvolvimento da tecnologia e suas aplicações, além de seus impactos sociais e culturais, e de usuários, pela natureza das interações e alto grau de envolvimento que proporciona.

Assim sendo, uma das áreas que tem se beneficiado com as aplicações em RA é a educação. En-quanto existem diversos Objetos de Aprendizagem (produtos ou recursos educacionais dinâmicos) desenvolvidos em RA, seu uso nos AVEAs ainda é pouco explorado. É sabido o impacto de tais OAs no processo de ensino e aprendizagem, seja pelo aspecto inovador e até mesmo motivador, porém, no processo de Educação a Distância ainda não raros os recursos que utilizam tal tecnologia. Assim, o uso combinado de OAs em RA em Ambientes Virtuais pode significar importante incremento ao processo educacional à medida em que se realiza o chamado blended learning.

Educação híbrida ou blended learning é um conceito que ainda não tem definição única. Em um relatório sobre o mérito e potencial da educação mista, o Consórcio Sloan (2007) definiu cursos híbridos como aqueles que “integram atividades online com atividades de ensino tradicionais face a face de uma maneira pedagogicamente planejada”, ou seja, a essência do conceito é que a educação

Page 154: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

154

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

híbrida utiliza a tecnologia online para não apenas complementar, mas transformar e melhorar o processo de aprendizagem.

Assim, o sucesso e a eficiência de um AVEA são estabelecidos pela qualidade dos serviços ofereci-dos e da forma que são oferecidos, e não apenas pela sua estética [Albertin 1999] e o uso da computação móvel e realidade aumentada pode incrementar esse tipo de processo educativo.

A computação móvel e RA, durante muitos anos, foram identificados como tecnologias promis-soras no domínio digital. Mais recentemente, tornou-se possível assistir a uma convergência dos dois - Ou seja, o surgimento da realidade aumentada móvel. Um número crescente de dispositivos são capazes de executar uma variedade de aplicações de realidade aumentada móvel, e o processo de ensi-no-aprendizagem pode se beneficiar com estas tecnologias inovadoras.

De acordo com uma pesquisa realizada por Souza-Concilio e Pacheco (2013) com alunos de cursos superiores relacionados com tecnologia e multimídia, foi possível observar o interesse no desenvolvi-mento de sistemas de Realidade Aumentada (RA) em várias áreas, principalmente na Educação. Ficou evidente também a forte tendência no uso destas aplicações em dispositivos móveis.

Desta forma, este trabalho visa a discussão do uso de recursos por meio da interação com RA Online hospedado em ambientes virtuais de ensino e aprendizagem como complemento do processo tradicional de ensino, além de apresentação da aplicação móvel Aurasma. A proposta é apresentar uma nova opção de ferramenta interativa a ser acrescentada como recurso em um AVEA de forma a transformar a aprendizagem híbrida tornando o processo de ensino e aprendizagem mais interessante e motivador para o aluno.

1.2 Ambientes Virtuais de Ensino e Aprendizagem e Educação Híbrida

Lencastre e Araujo [apud Santos Junior and Pereira 2011], afirmam que os novos desafios na esco-larização contemporânea evidenciam os aspectos positivos e negativos dos encontros e desencontros entre os atores e agentes educacionais, deixando- os mais distantes e, paradoxalmente, mais próximos, já que a sala de aula tradicional deixou de ser o único espaço de aprendizagem, partilhando agora parte desse espaço com a web, na busca da construção colaborativa da excelência acadêmica, já que os estudantes têm acesso à informação onde quer que seja possível acesso à Internet e outras mídias eletrônicas. Assim, argumentam que é necessário criar uma cultura de aprendizagem.

A evolução dos últimos anos têm visto Ambientes Virtuais de Aprendizagem baseados na web (AVEAs) / Sistemas de Gest ão de conteúdo (SGCs) / Sistemas de Gestão de Aprendizagem (LMS) tornarem-se rapidamente uma parte integrante do processo de ensino e de aprendizagem. Essa emer-gência progride incessantemente como educadores tentam adotar e adaptar tecnologias web 2.0 na prestação de mais materiais didáticos interativos e ambientes de aprendizagem [Callaghan 2013].

AVEAs são aplicativos de software utilizados para estabelecer a comunicação professor - estudan-te e trabalha como uma interface para auxiliar o processo de e-learning. AVEAs são apoiados por várias mídias e recursos, a fim de proporcionar ao educador a possibilidade de criar e distribuir conteúdo, monitorar a participação e avaliar o desempenho dos alunos e proporciona-los a possibilidade de usar recursos interativos, como discussões, fóruns e chats.

Page 155: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

155

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

AVEAs como o Moodle, Blackboard e WebCT são comumente utilizados com sucesso tanto em educação à distância [Graf et. al 2008] quanto em metodologias híbridas de ensino. Eles se destinam a apoiar os professores na criação e gerenciamento de cursos on-line e proporcionar-lhes uma grande variedade de recursos, que pode ser incluído no curso, tais como material de aprendizagem, questioná-rios, fóruns de discussão, tarefas, e assim por diante.

De acordo com Alhazmi e Rahman (2012), os AVEAs ganharam popularidade e adoção ampla como a tecnologia educacional mais dominante usado em faculdades e universidades em todo o mun-do. Como os sistemas AVEAs podem avaliar a abraçar a tecnologia, tanto pelo instrutor e do aluno, tem sido um tema de numerosos estudos [Alnifie, 2012].

Em tais ambientes, mais e mais ferramentas estão disponíveis para promover um processo mais rico de ensino e aprendizagem. No entanto, Alhazmi e Rahman (2012) afirmam que existem muitos problemas associados com estes sistemas. Estes incluem gerenciamento de conteúdo, uso indevido de recursos, baixo nível de envolvimento do usuário, e a inflexibilidade de conduzir o processo de apren-dizagem e avaliação.

Se por um lado a educação à distância é uma saída para os adultos que querem e necessitam estu-dar a vida inteira, por outro, ela impõe grandes desafios ao seu participante. Ele precisa desenvolver habilidades especiais para conciliar seus compromissos familiares, profissionais e acadêmicos com o estudo à distância [Abbad, 2007].

Desde 2007, já mostrava-se crescente o número de instituições de ensino credenciadas pelo Minis-tério da Educação (MEC) para ofertar cursos à distância ou para empregar modalidades híbridas de ensino-aprendizagem como estratégia de democratização do acesso à educação [Abbad, 2007].

Nas formas híbridas (blended learning) de educação a distância, os encontros entre os atores – alu-no-professor, aluno-aluno, aluno-material, professor-professor, entre outros – podem criar vínculos que facilitem a aprendizagem, mantenham a motivação e aumentem as chances de permanência do aluno até o final do curso. Entretanto, pouco se sabe sobre qual seria a frequência e a intensidade ideais desses encontros presenciais, em diferentes tipos de curso (natureza, duração, número de alunos, perfil do público-alvo, recursos disponíveis).

Apesar de não ser ainda possível uma perfeita substituição do encontro face a face ou da expe-riência de manipulação direta de um objeto de estudo, tecnologias interativas conseguem minimizar substancialmente os efeitos da distância na aprendizagem [Tori. 2010]. Por este motivo a aprendizagem a distância passou a se utilizar intensamente da tecnologia eletrônica como forma de aproximação entre objetos reais e as situações de aprendizagem no ambiente virtual, o que fomentou o surgimento e a evolução de ferramentas de comunicação, de autoria e de gerenciamento de cursos. Tal ferramental, porém, ainda fica restrito ao domínio de professores e tutores quanto ao uso de recursos tecnológicos, o que faz com que haja predomínio de recursos pouco interativos na maioria dos AVEAS, o que por vezes, torna-os repositório de textos e apresentações ou ainda de vídeos de aulas presenciais.

Cada vez mais, porém, o design instrucional preocupa-se com tal realidade. Sua tendência é de, num futuro próximo, se apoiar em uma mistura harmônica de atividades de aprendizagem realizadas com recursos variados e em espaços e tempos variados.

A Figura 1.1 mostra a evolução e tendência do processo de ensino-aprendizagem sob os aspectos presenciais e virtuais da educação [Tori, 2010].

Page 156: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

156

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

PASSADO:- Predomínio: aprendizagem presencial- Sistemas totalmente separados- Avanços nas tecnologias interativas

PRESENTE:- Expansão dos sistemas AV- Aproximação entre AP e AV- Blended Learning (BL) em crescente expansão

FUTURO:- Predomínio BL- Novas tecnologias interativas aumentam a sensação de presença e imersão

Figura 1.1. Evolução dos sistemas de aprendizagem virtual (AV) e convergência com a aprendizagem presencial (AP). Adaptado de Tori (2010).

Bonk et. al (2005) apresenta as seguintes categorias de sistemas de aprendizagem híbrida:• Permitindomisturas(blends): nesta categoria, o foco são em questões de acesso e de con-

veniência, por exemplo, misturas que se destinam a fornecer flexibilidade adicional para os alunos ou misturas que tentam proporcionar as mesmas oportunidades ou experiência de aprendizagem, mas através de uma modalidade diferente.

• Melhorandomisturas:permite alterações incrementais para a pedagogia, mas não mudam radicalmente a maneira como o ensino e a aprendizagem ocorrem. Isto pode ocorrer em am-bas as extremidades do espectro. Por exemplo, num ambiente de aprendizagem tradicional face a face, recursos adicionais e talvez alguns materiais suplementares podem ser incluídos.

• Transformandomisturas: misturas que permitem uma transformação radical da pedago-gia – por exemplo, uma mudança de um modelo onde os alunos são apenas receptores de informação para um modelo em que os alunos constroem ativamente conhecimento através de interações dinâmicas. Estes tipos de misturas de permitir a atividade intelectual que pra-ticamente não era possível sem a tecnologia.

A diluição de várias metodologias que melhor se harmonizam aos estudos em consonância com a aprendizagem mista, ou b-learning, permitem estabelecer uma maior proximidade, uma maior inci-dência no aluno, onde a aprendizagem é feita de forma mais construtivista [Carvalho, 2010].

Teorias de aprendizagem tem muitas implicações na concepção e utilização de tecnologias edu-cacionais por meio das quais a teoria pode ser usada como uma lente para compreender e analisar os processos envolvidos em um ambiente de aprendizagem. Assim, a maioria dos problemas relatados referentes a AVEAs, seja em propostas de e-learning ou b-learning, são a subutilização de recursos interativos e o baixo nível de envolvimento dos alunos do sistema [Wiley, 2000].

Page 157: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

157

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

Dessa forma, a fim de reunir as experiências informais e formais dos alunos, e para lidar com conceitos complexos de uma forma mais lúdica, surge no final do século XX o conceito de Objetos de Aprendizagem (OAs), recurso digital projetado para propósitos educacionais que visam auxiliar o aprendizado [Wiley, 2000].

1.3 Recursos Educacionais abertos e integrados a AVEAs: uma metodologia de desen-volvimento

Os Objetos de Aprendizagem são parte de uma área conhecida como Design Instrucional (DI). Filatro (2008) define DI como “o processo (conjunto de atividades) para identificar um problema de aprendizagem (a necessidade), projetar, implementar e avaliar uma solução para este problema”. Avan-ços na ciência da computação são significativos para o design instrucional, porque eles podem oferecer ferramentas de aprendizagem baseadas em modelos mais variados e complexos, permitindo a criação de repositórios com produtos educacionais dinâmicos (objetos de aprendizagem) que as instituições de ensino, educadores e alunos têm acesso para consulta e estudo.

Willey (2000), define OA como “qualquer recurso digital que possa ser reutilizado para o suporte ao ensino”. Sua concepção está inserida dentro das competências do profissional de design instrucional (ou educacional – de acordo com algumas linhas de teóricos). Segundo a CBO (2007), suas compe-tências são: (1) Acompanhar o desenvolvimento do trabalho docente/autor; (2) Assessorar o trabalho docente; (3) Administrar a progressão da aprendizagem; (4) Acompanhar a produção dos alunos; (5) Elaborar textos de orientação; (6) Produzir material de apoio pedagógico; (7) Observar o desempenho das classes; (8) Sugerir mudanças no projeto pedagógico; (9) Administrar recursos de trabalho; (10) Organizar encontro de educandos; e (11) Interpretar as relações que possibilitam ou impossibilitam a emergência dos processos de ensinar

Assim, mais do que a concepção do material, é preciso contextualizá-lo no processo de ensino-aprendizagem. Para tornar tal desenvolvimento possível, diversas abordagens têm sido propostas para o desenvolvimento de metodologias educacionais. Dentre tais metodologias, os autores deste artigo propõem a seguinte metodologia de composição de recursos educacionais, organizando ações em cin-co etapas distintas:

a) Diagnóstico: uso de recursos para ajudar os professores a avaliar o conhecimento prévio dos alunos sobre o conteúdo que será trabalhado. Este diagnóstico deve ser interativo, por meio de questionários, jogos, fóruns de bate-papo;

b) Apresentação: uso dos recursos para enviar conteúdo para o aluno. Este passo, embora de-sejavelmente interativo, pode ser desenvolvido por meio de texto, animação, vídeos, entre outros recursos;

c) Fixação: o uso de elementos com um alto nível de interatividade, que permitem ao aluno fixar o conteúdo trabalhado;

d) Avaliação: o uso de recursos para diagnosticar se o processo de aprendizagem foi ou não foi satisfatoriamente concluído;

Page 158: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

158

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

e) A suplementação ou reforço: o uso de elementos adicionais que permitem aos alunos avançar no conhecimento sobre os temas tratados na unidade de aprendizagem ou ajudar a superar as dificuldades encontradas nele.

A adoção desta metodologia visa desenvolver habilidades e competências dos alunos para a auto-aprendizagem, dessa forma ele passa a ser o protagonista de seu próprio processo de aprendizagem e constrói seu conhecimento com autonomia. Quanto ao processo de aprendizagem, propriamente dito, a metodologia proposta prioriza a interação com os alunos, à medida que incentiva o uso de materiais altamente interativos, mais do que nas atividades de sala de aula, mas em todo o processo, a partir de uma diversificação no uso de materiais e meios de comunicação para que o professor possa ser o pro-motor de um processo de ensino-aprendizagem rico e consistente.

No final do módulo (conceito trabalhado) é possível trabalhar um material complementar, que aprofunde os conceitos estudados ou mesmo faça um reforço daqueles que o aluno teve uma baixa compreensão.

Percebe-se então a configuração da linha de base de tal metodologia, altamente interativa, como algo que prioriza a experiência do conhecimento, ou seja, os aprendizes experimentam recursos educa-cionais interativos e que se aproximam de suas atividades fora do contexto educacional formal (jogos, dispositivos móveis, redes sociais).

Nesse processo de valorização da interatividade, os recursos educacionais abertos como um todo e o paradigma de Objetos de Aprendizagem, em especial, abriu uma ampla gama de oportunidades para facilitar a distribuição, compartilhamento e reutilização de materiais de aprendizagem, pelo menos do ponto de vista técnico. Devido a este novo modelo, várias especificações e padrões foram propostos, a fim de evitar a dependência de plataformas ou ferramentas específicas, e para facilitar o intercâmbio dos conteúdos de aprendizagem entre as ferramentas. Como exemplos de OAs podem ser citados re-cursos não interativos, como imagens, vídeos, animações, textos e apresentações e interativos, como as simulações, jogos, etc [Tori 2010].

1.4 Realidade Aumentada Móvel e Ensino

A Realidade Aumentada é a inserção de objetos virtuais no ambiente físico, mostrada ao usuário, em tempo real, com o apoio de algum dispositivo tecnológico, usando a interface do ambiente real, adaptada para visualizar e manipular os objetos reais e virtuais [Kirner and Kirner 2007].

Para Milgram (1994), a realidade aumentada é uma partícula da realidade misturada, na qual se mistura o real e o virtual, onde a realidade aumentada utiliza-se predominantemente do ambiente real e a Virtualidade Aumentada utiliza-se predominantemente do ambiente virtual, ou mundo virtual. Para exemplificar isto, elaborou-se uma adaptação de realidade e virtualidade contínua em um diagra-ma definindo as possibilidades gradativas de sobreposições de RA e VA, conforme Figura 1.2.

Page 159: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

159

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

Figura 1.2. Diagrama de realidade/virtualidade [Kirner and Kirner 2007] (adaptada de [Milgram 1994])

A Realidade Aumentada aplica-se em todos os sentidos humanos e proporciona ao usuário uma interação segura, sem necessidade de treinamento, uma vez que ele pode trazer para o seu ambiente real objetos virtuais, incrementando e aumentando a visão que ele tem do mundo real [Maturana 2001].

Isto é obtido por meio de técnicas de Visão Computacional e de Computação Gráfica/Realidade Virtual, o que resulta na sobreposição de objetos virtuais com o ambiente real. Considerando o sentido da visão, além de permitir que objetos virtuais possam ser introduzidos em ambientes reais, a Reali-dade Aumentada também proporciona ao usuário o manuseio desses objetos com as próprias mãos, possibilitando uma interação natural e atrativa com o ambiente.

Helen Papagiannis, chefe de inovação na Infinity Augmented Reality Inc e listada pela NEXT entre os 100 maiores influenciadores da Indústria de Mídia Digital de 2013 [Papagiannis, 2012], não limita a RA apenas à experiência visual, mas também estende-se às sensações tátil, gustativa, olfativa e auditiva e, Carmichael (2012) complementa que, em aplicações desta natureza, não há necessidade de substituir as sensações, já que o usuário ainda estará trabalhando estes aspectos multissensoriais no mundo real, e apenas terá este ambiente enriquecido com novas possibilidades de interação e sensações.

A RA pode estabelecer uma comunicação entre o indivíduo e o ambiente ao seu redor de forma multissensorial, inteligente e informativa, proporcionando uma melhor relação entre as duas entidades sem que o indivíduo precise se desconectar do real para ter acesso ao conteúdo digital e a informação torna-se uma extensão do ambiente em que se encontra. A Realidade Aumentada permite a interação com o ambiente misturado de forma mais agradável, atrativa e motivadora, pois pode eliminar o uso de dispositivos tecnológicos, possibilitando que o usuário interaja com os elementos virtuais utilizando as mãos [Santin et. al 2004].

Interessados na tecnologia de realidade aumentada, muitos pesquisadores vêm estudando uma variedade de novas possibilidades de uso. Hoje, é possível encontrar sistemas de RA que reconhecem qualquer imagem como um marcador, outros que não precisam de qualquer marcador para acionar a representação do modelo 3D e há alguns deles que usam posicionamento GPS para posicionamento espacial. Para este efeito, e por ser uma aplicação de baixo custo, o desenvolvimento de sistemas de RA está se tornando mais popular e há muitos motores gratuitos que oferecem maneiras mais fáceis de implementar aplicações para qualquer área de interesse.

A RA é uma tecnologia relativamente barata e de fácil implementação. Assim, os dispositivos móveis tornaram-se uma plataforma atraente para o desenvolvimento de aplicações para a RA. Isso

Page 160: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

160

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

se dá pelo fato da RA poder ser usada em muitos dispositivos móveis, como um meio de associação do real para o ambiente virtual, que garante que o âmbito de uma tal solução pode incluir um número maior de utilizadores.

Usando Realidade Aumentada em dispositivos móveis, é possível obter melhores resultados na sa-tisfação de usar aplicativos independentemente da sua funcionalidade. A RA oferece ao usuário maior interatividade e aumenta as chances de uso da aplicação. Acrescenta como diferencial em aplicações para ter boas interfaces e seu uso dinâmico.

De acordo com Tori (2010), em termos do processo de integrar informações virtuais e reais em um mesmo ambiente é uma forma bastante eficiente de colocar o aluno diante de conteúdos ou pessoas distantes ou inacessíveis, sem retirar-lhe as percepções relativas ao ambiente real que o envolve.

Ao trabalhar processos de aprendizagem híbrida, o professor necessita estabelecer uma estrutura apropriada para prover o ensino virtual, de forma que o aluno possa compreender à distância parte do conteúdo proposto pelo programa. Desta forma, é preciso fornecer novas ferramentas interativas para que o estudante seja motivado e para enriquecer seu aprendizado.

De acordo com Sessoms (2008), o surgimento de novas tecnologias e pesquisa sobre como as pes-soas pensam está mudando a sala de aula. Novas ferramentas visam capacitor educadores para mudar a forma que o ensino e aprendizagem ocorrem.

Se o objetivo do ensino pela tecnologia é transformar o processo de ensino e aprendizagem, este deve ser a fundação para o programa de preparação de professores. Professores precisam de tempo e direcionamento ao usar a tecnologia em geral.

Chegar ao nível dos alunos quanto ao uso das tecnologias pode ser alcançado preparando pro-fessores a pensar interativamente e ensinar interativamente. Criando um ambiente interativo de aprendizagem é importante já que os alunos estão mudando e a informação está se tornando cada vez mais acessível.

Assim, o uso combinado de OAs em RA em Ambientes Virtuais pode significar importante in-cremento ao processo educacional à medida em que se propõe a aprendizagem híbrida com foco na categoria de transformar misturas (blends), proposta por Bonk (2005).

1.5 Aurasma

Visando facilitar, expandir e diversificar o uso de aplicações de realidade aumentada, algumas ferramentas estão sendo disponibilizadas gratuitamente, como o Aurasma. A proposta deste trabalho é utilizar o Aurasma como meio de fornecer recursos para que qualquer educador possa criar um OA usando a realidade aumentada como meio facilitador e motivador de ensino. Este tipo de aplicação interativa também pode ser facilmente manipulada pelo aluno.

O Aurasma pode ser considerado uma rede social que permite o desenvolvimento de aplicativos de realidade aumentada simplificados e portáveis, mesclando os mundos físico e virtual. Disponível em smartphones, o aplicativo foi criado a partir da tecnologia que é capaz de reconhecer imagens, sím-bolos e objetos do mundo real e pode apresentar conteúdo relevante em tempo real, incluindo vídeos, animações, áudio ou páginas da web.

Page 161: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

161

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

O aplicativo pode ser criado através do estúdio disponível na Web (http://studio.aurasma.com) ou diretamente pelo smartphone. O sistema consiste de quatro componentes:

• Channels (canais): cada usuário pode criar canais na rede social Aurasma nos quais irão estar disponibilizados suas auras (no caso, seus OAs).

• Trigger Images (imagens trigger): imagens pelas quais o sistema deverá reconhecer através da câmera do dispositivo.

• Overlays (camadas de sobreposição): imagens, vídeos ou objetos 3D que irá sobrepor a ima-gem trigger quando a mesma for reconhecida pela dispositivo.

• Auras: são as aplicações de realidade aumentada, no caso, os OAs.

Para criar uma Aura, os seguintes passos devem ser seguidos:1. Fazer upload de uma imagem trigger.

Ao clicar em Trigger Images, todas as imagens usadas em todas as auras do usuário serão apresentadas. Para adicionar uma nova imagem, é necessário clicar em Add e a janela da Figura 1.3 será apresentada. Nesta nova janela, o usuário deverá digitar o nome da imagem, definir a posição (opcional), fazer upload da imagem (Training Image -> Browse...) e também adicionar uma descrição (também opcional).Ao clicar em Save, a imagem selecionada aparecerá em Masking e o usuário poderá editá-la, mudando sua forma, tamanho, opacidade entre outras opções.

2. Fazer upload de uma camada de sobreposição.Ao clicar em Overlays, o sistema irá apresentar a lista de todas as camadas do usuário. Para adicionar uma nova, é necessário clicar em Add e a janela da Figura 1.4 será apresentada.Neste caso, o usuário deverá digitar o nome da overlay, selecionar o tipo que pode ser uma imagem, um vídeo ou um modelo 3D, podendo também escrever uma descrição da camada.Ao Salvar, o usuário poderá visualizar a camada selecionada.

Figura 1.3: Janela para adicionar nova imagem trigger

Page 162: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

162

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

Figura 1.4. Janela para adicionar nova camada de sobreposição (overlay)

3. Criar um canal para inserir as auras.Para encontrar conteúdo de interessse no Aurasma pelos dispositivos móveis, os usuários procuram e se inscrevem em determinados canais. Todas as auras devem estar vinculadas a um canal e seus usuários só poderão visualiza-las se estiverem inscritos nestes canais.Ao se cadastrar no estúdio do Aurasma, um canal com o nome de usuário é automaticamente criado. O usuário pode criar novos ou editar canais (Figura 1.5).Ao editar (Edit) ou adicionar (Add) canais, é possível alterar a permissão de acesso aos mes-mos, podendo ser público ou privado. Um canal público pode ser encontrado e seguido por qualquer usuário do Aurasma e, no caso do privado, é necessário que o “dono” do canal envie o link de inscrição a quem ele permite acesso ao mesmo. O usuário também deverá selecionar uma imagem que representara o canal na rede social do Aurasma.

Figura1.5. Janela para criar novo canal

Page 163: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

163

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

4. Configurar a aura e adicioná-la a determinado canal.Após fazer upload da imagem trigger e da camada de overlay e criar/editar seu canal o usuário deverá construir sua Aura, ou seja, seu OA de realidade aumentada. Ao criar nova aura (Add), o usuário deverá nomear esta aura e selecionar (da lista disponível) a imagem trigger, o canal e a camada de overlay (Figura 1.6). Ao configurar a aura, o usuário encontrará também as opções de manipular restrições de tempo e adicionar ações às overlays. O usuário poderá selecionar: um toque para, assim que o usuário tocar uma vez nesta camada de sobreposição ele será direcionado a um site na Web; ou dois toques para que o aplicativo fique em modo de tela cheia.É possível também trabalhar posicionamento e tamanho das camadas no exemplo de sobre-posição apresentado nesta mesma janela.

Figura 1.6. Janela para configurar nova aura

Na versão móvel, após login, o aplicativo se inicia com a câmera para procurar uma aura. Ao clicar no logo , a janela principal será apresentada. Nesta janela, serão visualizadas as auras que o usuário já manipulou e uma barra de ferramentas. Nesta barra existem as seguintes opções: criar nova aura , voltar à câmera , buscar auras e canais e visualizar o perfil do usuário (seus canais, auras, etc).

1.6 Considerações Finais

Pode-se afirmar que no contexto do uso de AVEAS na educação formal, seja como complemento às aulas presenciais, seja na Educação a Distância, os materiais que os professores produzem e execu-tam estão relacionados com as suas habilidades, histórias, repertório e cultura na qual estão inseridos.

Page 164: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

164

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

No processo de design instrucional e na preparação de objetos de aprendizagem, conhecer as pos-sibilidades tecnológicas e se apropriar delas é de fundamental importância. O papel do designer ou do professor, aí, é ter uma reflexão crítica a partir de um determinado contexto para propor soluções que se aproximem do universo dos aprendizes.

A Realidade Aumentada, dessa forma, é uma das tecnologias que pode ser explorada como possi-bilidade de recurso incrementador do processo de aprendizagem. Sua combinação com as tecnologias móveis e os ambientes virtuais de aprendizagem caracteriza-se como forma de blended learning que aproxima o universo do aprendiz ao da escola.

Para viabilizar a construção de OAS com tal tecnologia, porém, é importante que se discuta quais são os conhecimentos prévios de professores e designers e propor uma metodologia simples de design instrucional, que permita a criação de materiais de diversas naturezas e com diferentes graus de inte-ratividade a partir de diversos recursos.

Nesse sentido, trabalhar com soluções como o AURASMA permite uma apropriação por parte desses profissionais, de um novo paradigma de interface e, consequentemente, de interação, a medida que se mistura o ambiente virtual ao real.

Dessa forma minimizam-se os problemas advindos da presença da informática nos domínios das atividades escolares a partir do momento em que o uso de ferramentas simples que trabalham concei-tos complexos são incluídas no cotidiano das atividades dos educadores. Assim, há uma diminuição das “incertezas trazidas pela mídia” ao professor além de suas “características quantitativas e qualita-tivas novas em relação à memória”, o que caracteriza um “amplo trabalho de reflexão coletiva” [Borba and Penteado, 2001].

Estas questões, observadas sob a ótica de uma metodologia simples e ágil de desenvolvimento de conteúdo para AVEAS permite, então, de forma muito natural, relativamente simples e muito eficiente, a aproximação entre o universo do aprendiz fora do ambiente escolar e seu ambiente de estudo.

Referências

AbbAd, G.S. (2007) “Educação a distância: o estado da arte e o futuro necessário”, Revista do Serviço Pú-blico, brasília: ENAP.

AlbERtiN, A.l. (1999) “Comércio Eletrônico – Modelos, aspectos e Contribuições de sua Aplicação”. 3 ed. São Paulo, SP: Editora Atlas.

AlhAzMi, A. K. and RAhMAN A. A. (2012) “Why lMS Failed to Support Student learning in higher Edu-cation institutions”, iEEE Symposium on E-learning, E-Management and E-Services (iS3e), Kuala lumpur: pp 1-5.

AlNiFiE, G. M. (2012) “Constructing the Relationship between individual differences of Faculty Members and the Continuance intension of Using lMS Systems”, 12th iEEE international Conference on Advanced learning technologies, pp 167-169.

Page 165: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

165

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

boNK, C. J., GRAhAM, C. R., CRoSS, J., MooRE, M. G. (2005) “the handbook of blended learning: Global Perspectives, local designs”, Pfeiffer, 1st edition.

boRbA, M.; PENtEAdo, M. G. “informática e educação matemática”. belo horizonte: Autêntica, 2001.

CAllAGhAN, M. J., MCCUSKER, K., loSAdA, J. l., hARKiN, J. and WilSoN, S. (2013) “Using Game-based learning in Virtual Worlds to teach Electronic and Electrical Engineering”, iEEE transactions on industrial informatics, Vol. 9, No. 1, February pp. 575-584.

CARMiChAEl, G., biddlE, R. & MoUld, d. (2012). Understanding the Power of Augmented Reality for learning. in t. bastiaens & G. Marks (Eds.), Proceedings of World Conference on E-learning in Corporate, Government, healthcare, and higher Education 2012 (pp. 1761-1771). Chesapeake, VA: AACE. Retrieved March 7, 2014 from http://www.editlib.org/p/41864.

CARVAlho, J. (2010) “Ensino-aprendizagem do PlE em modalidade híbrida”, Revista Animação e Educação.

Cbo (2007) “Classificação brasileira de ocupações” Ministério do trabalho e Emprego in http://www.mte-cbo.gov.br/cbosite/pages/pesquisas/ FiltrotabelaAtividade. jsf.

FilAtRo, A. (2008) “design instrucional na prática”. São Paulo, Pearson Education do brasil, 2008.

GRAF, S., KiNShUK and liU, t-C. (2008) “identifying learning Styles in learning Management Systems by Using indications from Students’ behaviour”, Eighth iEEE international Conference on Advanced learning technologies, pp. 482-486.

KiRNER, C.; KiRNER, t. G. (2007) Virtual Reality and Augmented Reality Applied to Simulation Visua-lization. in: El Sheikh, A.A.R.; Al Ajeeli, A.; Abu-taieh, E.M.o.. (org.). Simulation and Modeling: Current technologies and Applications. 1 ed. hershey-NY: iGi Publishing, 2007, v. 1, p. 391-419

KiRNER, Claudio and KiRNER, tereza Gonçalves, 2011. “Evolução e tendências da Realidade Virtual e da Realidade Aumentada”. in: Realidade Virtual e Aumentada: Aplicações e tendências. Xiii Simpósio de Realidade Virtual E Aumentada. Sociedade brasileira de Computação – SbC.

litWiN, E. (2001) “Educação à distância – temas para o debate de uma nova agenda educativa”. Porto Alegre: Artmed Editora.

MAtURANA, h. (2001) “Cognição, ciência e vida cotidiana”. belo horizonte: Ed. UFMG, 203p

MilGRAM, P.; tAKEMURA, h.; UtSUMi, A.; KiShiNo, F. (1994) “Augmented Reality: A Class of displays on the Reality-Virtuality Continuum”, telemanipulator and telepresence technologies, SPiE, V.2351.

MoRAN, J. M. (2002) “o que é um bom curso a distância?” Acesso em: 18/02/2012. disponiível na internet em: http://www.eca.usp.br/prof/moran/bom_curso.htm.

PAPAGiANNiS, h. Augmented Stories. Augmented Reality projects, articles & talks by helen Papagiannis in http://augmentedstories.wordpress.com/2012/05/28/glass/.

Page 166: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

166

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 152-166, maio/2014.SouZA-concilio, ilana de Almeida; PAchEco, Beatriz de Almeida. O Uso de Dispositivos Mó-

veis e Realidade Aumentada em Ambientes Virtuais de Ensino e Aprendizagem.

SANtiN, R.; C., K.; GARbiN, t. R.; dAiNESE, C. A. (2004) “Ações interativas em Ambientes de Realidade Aumentada com ARtoolKit”. Vii Symposium on Virtual Reality, São Paulo, SP, brasil, october.

SANtoS JúNioR, l. S. dos and PEREiRA, M. R. (2012) “blended learning como Estratégia de Convergên-cia entre o Presencial e o “Virtual”: uma experiência de ensino/aprendizagem na disciplina de liderança nas organizações”, iX Convibra Administração – Congresso Virtual brasileiro de Administração in adm.convibra.com.br.

SESSoMS, d. (2008). interactive instruction: Creating interactive learning environments through tomor-row’s teachers. international Journal of technology in teaching and learning, 4(2), 86-96.

SoUzA-CoNCilio, ilana A. E PAChECo, beatriz A. “the development of Augmented Reality Systems in informatics higher Education”. Procedia Computer Science, v. 25, p. 179-188, 2013.

the Sloan Consortium, 2007. “blending in: the Extent and Promise of blended Education in the United States.” disponível em: http://sloanconsortium.org/publications/survey/blended06. Acesso em 15/02/2014.

toRi, Romero. “Educação sem distância: as tecnologias interativas na redução de distâncias em ensino e aprendizagem.” São Paulo: Editora Senac São Paulo, 2010.

WilEY, david. “learning object design and sequency theory”, 2000. thesis (Phd) - brigham Young Uni-versity, Provo, 2000.boulic, R. and Renault, o. (1991) “3d hierarchies for Animation”, in: New trends in Animation and Visualization, Edited by Nadia Magnenat-thalmann and daniel thalmann, John Wiley & Sons ltd., England.

Page 167: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

167

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

Development of Interactive Applications for Google Glass

Caio Novaes LinsJoão Marcelo TeixeiraRafael Alves RobertoVeronica Teichrieb

Abstract

Wearable technology is just recently being made available for the masses and with this come endless pos-sibilities of problem solving on a futuristic level. One example is the Google Glass, a wearable computer with an optical head mounted display. This tutorial aims to guide the audience on how to create inter-active applications for this device. We will explain in detail its hardware components and the first steps to begin application development for it. Finally, examples of interactive applications using Google Glass will be demonstrated. Among these examples are an augmented reality solution with face recognition and teleoperation of drones.

1.1 Introduction

The Head Mounted Display, or simply HMD, is a device that is highly associated with Virtual and Augmented Reality, also known as VR and AR, respectively. It is due the fact that these gadgets provide an immersive way to display the virtual content used to the user. Moreover, the HMD allows users to be with their hands free to manipulate interaction devices. Many of them are composed of screens made of different technologies, such as LCD or OLED, in front of the users’ eyes. Some models have one canvas in front of one or both eyes, others have two monitors one in front of each eye.

One kind of HMD is the Optical Head Mounted Display, or OHMD. The dif- ference between it and the HMD is that the OHMD exhibits the virtual content on the screen while it allows the user to see the real world through it. One of the drawbacks of this approach is that virtual content does not appear very bright and with high resolu- tion. On the other hand, the semi-transparent screen is more pleasant for the user. Most of them report that the OHMD does not induce motion sickness as much as the HMD with monitors. Another benefit of using optical devices regards safety on critical applica- tions. In case of failure of the display, the user with an OHMD can still see the real world [Rolland and Fuchs 2000].

167

Page 168: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

168

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

One popular example of an OHMD is the Google Glass [Google 2014b]. Released in February of 2013, this gadget caught the attention when Google promised a display lighter and cheaper than the other OHMDs available in the market without compromising its quality.

This tutorial aims to: 1) introduce the Google Glass; 2) show its characteristics and hardware con-figuration; 3) present a complete guide to the audience on how to develop applications for this device, covering from environment setup to an augmented reality example; and finally 4) discuss the possibili-ties that it brings with examples of some interactive applications.

1.2 Google Glass

1.2.1 Google Glass Hardware

Google’s most recent gadget, Glass, works as a 50g Android-based wearable computer. Figure 1.1 explains how it works.

Figure 1.1. How google glass works [Missfeldt 2014].

Tests performed by the authors show that the Glass battery has a maximum life- time of one hour, when used in full load situations, such as recording a 720p resolution video or running computer vision algorithms. Therefore, Google Glass was not meant to be an active device. It was originally conceived to give punctual information (notifica- tions) to the user. Working that way, its battery can last a day or more.

Page 169: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

169

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

The touchpad, located on the external part of the CPU case, on the lateral side of the device, sup-ports multitouch interaction. It is possible to identify single or double tap gestures, and also when the user swipes fingers in a specific direction.

All content on Glass can be displayed on its 640x360 display, located on the top right view field of the user as a 25-inch screen and 2.4m away. Since the prism is not placed right in front of user’s view, it does not interfere significantly with his/her vision. Due to the fact that the prism is located slightly above user’s eye of sight, the creation of see-through augmented reality applications is compromised. In order to implement them, developers must first solve the alignment problem between virtual screen (projected by the prism) and real world content, which means that a small portion of the image captured by the Glass camera matches the virtual display area. This mapping may vary according to the distance between Glass and real object being viewed.

The Glass platform was designed so that the existing Android SDK just works fine. This enables de-velopers to code in a familiar environment, but for a uniquely novel device [Google 2014a]. In addition, all of the existing Android development tools can be used, and the developed software for Glass, called Glassware, is delivered as a standard Android Package (APK).

Google also provides the Glass Development Kit (GDK), which works as an add- on to the Android SDK that lets developers build Glassware that runs directly on Glass. In order to make sure that a project is compatible with the Glass platform, the developer must simply set the Android target to version 4.0.3 (which corresponds to API version 15). Another detail that must be taken into consideration is that the application input must be mapped to the Glass input peripherals, because of the fact that interaction is performed through the touchpad and other sensors (camera, gyroscope, accelerometer, GPS, etc.). Table 1.1 lists some of Glass features.

1.3 Developing for Google Glass

As seen on the previous section, Google Glass’ foundation is very similar to the smart- phone. It runs on Android, a very popular platform for mobile devices. The essence of developing Android appli-cations is clung to the Java programming language with open- ing to native development kits coded in C/C++ all on top of a Linux kernel. This section will teach how to setup the workspace environment on Windows. After setting up the environment, we will provide a guide through the implementation of a basic application and then an interactive one.

1.3.1 Environment Setup

This short course focuses on development for Google Glass and assumes the learner has a basic knowledge of Android. With this in mind we will be covering the Android envi- ronment setup, then we’ll make the necessary preparations for Google Glass integration and leave the workspace ready for development.

Page 170: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

170

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

Table 1.1. Google Glass features.

Feature DescriptionOperating system Android (4.0.4)Power Lithium Polymer battery (2.1 wh)CPU OMAP 4430 SoC, dual-coreMemory 1GB RAM (682MB available to developers)Storage 16 GB Flash total (12 GB of usable memory)Display Prism projector, 640x360 pixels (equivalent of a

25 inch/64 cm screen from 8 ft/2.4 m away)Sound Bone conduction transducerInput Voice command through microphone, accelero-

meter, gyroscope, magnetometer, ambient light sensor, prox- imity sensor

Controller input Touchpad, MyGlass phone app

Camera Photos: 5 MP, videos: 720p

Connectivity wi-Fi 802.11b/g, Bluetooth, micro USB

weight 50g

Backward compatibility Any Bluetooth-capable phone; MyGlass com-panion app requires Android 4.0.3 (Ice Cream Sandwich) or higher or any iOS 7.0 or higher

1.3.1.1 Android Setup

There are a few components needed for programming on Android. An Integrated De- velopment Environment (IDE) is needed along with the Android Developer Tools (ADT) plugin. The ADT plugin serves to streamline the application development giving the necessary tools to build, test and debug the apps. By default, Google uses Eclipse as IDE. We will also need the API libraries. All these components are encapsulated into a package called ADT Bundle and can be downloaded from the Google Android site at http://developer.android.com/sdk/index.html.

Before downloading the ADT Bundle, make sure the computer has the Java De- velopment Kit (JDK) installed. In case it doesn’t, the latest version is available at Oracle’s website. With the JDK in-stalled we’re good to go. After downloading the bundle, simply extract the packages and we’re good to develop applications for Android.

Page 171: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

171

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

1.3.1.2 Google Glass Integration

To program for Google Glass your computer must make a connection with the device. We must provide its drivers just like any other Android-using hardware. Also we need to manipulate the Glass’ hardware components and use some Glass-specific features, gen- erating the need for the tools to do so. For this we must use an add-on to the Android

SDK called Glass Development Kit, also known as GDK. Google provides a Mirror API that allows you to build web-based services that interact with Glass. It provides a cloud based API that does not require running code on Glass. But we won’t be detailing it here for the fact that for our interactive scenario, which consists of augmented reality appli- cations, real-time user interaction is crucial and that is where the GDK comes into play. This section will explain how to install the device drivers and the GDK with details.

We’ll need to modify a few files so we can update the Google Glass via windows device manager. Follow the step-by-step instructions labeled below:

1. Locate the folder containing the Google USB Driver; it should be something similar to “<ADTBundlepath>\sdk\extras\google\usb_driver\”.

2. Now we must add the vendor and product identification, or VID and PID, for Google Glass on the file “android_winusb.inf” under the [Google.NTamd64] and [Google.NTx86] sections. In the end we should have something like the following:

Figure 1.2. Snippet to add to the “android_winusb.inf” file.

3. Next we’ll disable Driver Signature Verification since Google Glass’ driver is not a signed driv-er. For this we’ll create a separate set of instructions based on [Gibb 2013]:

(a) Click the “Change PC settings” option in the settings button found on the Charms Bar; (b) Now that we’re on the Modern Control Panel, switch to the Update & Recov- ery section.

Figure 1.3 shows (a) and (b);

Page 172: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

172

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

Figure 1.3. First steps for disabling the driver signature verification in windows 8.1.

(c) Next you should see an advanced startup section to the right, so go ahead and restart in order to proceed to the advanced startup;

(d) Once your computer is rebooted you will be given a few options. Choose them in the fol-lowing order: Troubleshoot, Advanced Options, Startup Settings, Restart;

(e) Finally, after rebooting, disable driver signature enforcement by pressing F7. Your PC will reboot once again and you can now install the Google Glass driver.

4. Plug Google Glass into your computer, open the Device Manager and locate the Google Glass device. It should have a warning because it is not installed. Right click it and select Update Driver Software.

5. Choose “Browse my computer for driver software” and enter the folder where the “android_winusb.inf” file is located.

6. After confirming, a security dialog will be shown. Choose “Install this driver soft- ware any-way” to install and complete the driver installation.

Now that we have installed the drivers, let’s acquire the GDK.Since Google Glass uses Android 4.0.3 (API 15) let’s install its SDK Platform along with the Google

SDK Sneak Peak from the SDK Manager. It is important to men- tion that the GDK is currently in a pre-view version, hence the name Sneak Peak and therefore some important parts are missing. You can open SDK manager from Eclipse or from the executable located on the ADT Bundle folder. Once opened, go to the API 15 section as shown on Figure 1.4, and mark the SDK Platform, the GDK Sneak Peak, and then click install. After the installation our environment is ready for programming. To finish, turn on the debug option of your Google Glass device. Do this by going (inside Google Glass menu) into Settings > Device Info > Turn on debug. This will allow your development system to communicate with Glass.

Page 173: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

173

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

Figure 1.4. Android SDK Manager with the components to program for Google Glass marked.

1.3.2 Basic Project Implementation

This section will guide you through a Google Glass application implementation. There are two ways of showing your applications on Glass using the GDK. One is Live Cards and the other is Im-mersion [Kaspari 2013]. Figure 1.5 illustrates the main idea of both. Immersion applications take full control of the UI and are essentially regular Android activities. To run any other application or access a card you must leave the immersion. On the other hand Live Card applications show up as a card in the timeline and can run independently from other cards. One example is the Compass application that comes with the GDK.

Figure 1.5. Scheme comparing the two different ways of making applications for Google Glass: Immer-sion (top) and Live Card (bottom).

Page 174: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

174

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

1.3.2.1 Project Setup

Now we’ll begin implementing our first Google Glass activity using Immersion. First, create an Android application, as shown on Figure 1.6. Set minimum and target SDK to API 15, compile with GDK Sneak Peak and set the Theme to none.

Figure 1.6. Initial setup of the Google Glass basic project.

1.3.2.2 Create Immersion

On the MainActivity class go ahead and create this simple activity, as seen in Figure 1.7.

Figure 1.7. Simple main activity of the Google Glass basic project.

Page 175: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

175

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

The Card object from the GDK library gives us a simple layout to be displayed on Google Glass’ interface. We set a title, a footnote and then convert it into a view to be displayed using the setContent-View() method.

1.3.2.3 Voice Commands

A common way to launch Google Glass applications is by using voice triggers. To do this we must implement three things. First we declare a string resource for our voice command, as can be seen in Figure 1.8.

Figure 1.8. Adding the string value for the voice launch command in the strings xml file.

Then create an XML resource file for the voice trigger using the previously created string, as shown in Figure 1.9.

Figure 1.9. xML file created for the voice command trigger.

Finally on our manifest we add an intent filter for the VOICE_TRIGGER action to our activity and link the previously created XML to the intent using a meta-data tag. The manifest should then look like the one on Figure 1.10.

Figure 1.10. Final version of the Android manifest of the basic Google Glass application.

Page 176: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

176

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

Now say “ok glass” followed by “show basic example” and you should get the result shown on Figure 1.11. Now let’s proceed to a more advanced, interactive project.

Figure 1.11. Running the Google Glass basic application.

1.3.3 Interactive Project Implementation

This section will cover a step-by-step implementation of an interactive application for Glass. It con-sists of visualizing 3D models using an augmented reality library called Metaio SDK [metaio 2014]. The application will use gesture commands to switch be- tween geometries, which are virtually projected on top of a real marker. Below is a step-by-step walkthrough of the implementation.

1. First, download and run the Metaio SDK installer from this site: https://metaio. app.box.com/SDK-PC.

2. Import the metaio SDK library to your Eclipse workspace; it is found on <MetaioLocation>\metaioSDK5.3\_Android\.

3. Create a new application as done on the basic project but changing the name and package for something like “Interactive Example”.

4. Now that you have your Glass interactive project and the metaio SDK library on your work-space you need to set the metaio SDK as one of your app’s library. Right- click the Interactive-Example project, go to Properties > Android, add the metaio SDK library to the project and then click OK.

5. The ARViewActivity holds the necessary methods to make the augmented experi- ence pos-sible but Metaio advises not to change such class, so we will create another class, name it ARActivity, inside our InteractiveExample project and let it extend the ARViewActivity class and implement its methods.

6. So now we have an empty MainActivity, an ARActivity with empty methods and and the AR-ViewActivity. Let’s go ahead and modify our manifest to look like the one on Figure 1.12. Note

Page 177: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

177

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

that we put some permissions that the Metaio SDK needs to function properly and the launch by voice trigger information from the previous example. Remember that we have to add the string and XML resources as well.

Figure 1.12. Final version of the Android manifest of the interactive Google Glass application with the Metaio SDK permissions.

7. For the layout we’ll have a simple Relative Layout called ar_layout.xml as shown on Figure 1.13.

Figure 1.13. xml layout to be passed to the ARActivity’s getGUILayout() method.

Page 178: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

178

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

8. We also need to get our assets which consist of a tracking configuration xml, the pattern image to track and the 3D models. Download the .zip with all the assets from https://www.dropbox.com/s/69n37hizoi7pc03/Assets.rar. Ex- tract and copy the whole Assets folder to the assets folder inside the InteractiveEx- ample directory.

9. Now implement the MainActivity as shown on Figure 1.14. This activity runs an AsyncTask to extract all the necessary assets at startup and then starts the ARAc- tivity after a few seconds.

Figure 1.14. Main activity of the Google Glass interactive project.

10. Switching to the ARActivity, we are going to edit the getGUILayout() and set its return to “R.layout.ar_layout” and the loadContents() method will look like Fig- ure 1.15. This is where we load the tracking configuration file and create the 3D models for rendering. The onGeom-etryTouch() and the getMetaioSDKCallback- Handler() won’t be covered in this tutorial, but

Page 179: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

179

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

if you’re curious to see how they work there are examples inside the metaio SDK folder that you can use.

Figure 1.15. ARActivity’s loadContents() method.

11. We’ll also add the methods that will be called by gestures and these will control the switch between the two geometries. We’ll create a global GestureDetector, an object class from the GDK, and listen specifically for the TAP gesture and each tap will switch between geometries. The snippet below shows how this is done. Note that we have overridden the onCreate() meth-od to initialize the GestureDetector.

Page 180: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

180

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

Figure 1.16. ARActivity’s GestureDetector setup.

Page 181: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

181

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

12. Before we run the application we need to provide a metaio application signature. To do this login at http://dev.metaio.com/, navigate to “my apps” and add your Application ID and name to generate the new signature. Then copy and add the signature as a value to a new string resource with the name “metaioSDKSignature” and make sure ARViewActivity is using the “R.string.metaioSDKSignature” key (this video shows a step by step tutorial on how to setup Metaio SDK for an Android development environment: http://youtu.be/KVtCi-WwmFU).

13. Now go ahead and run the application and you should see the results as shown on Figure 1.17. The source code of the basic and interactive applications shown in this

tutorial can be found on http://bit.ly/1jp3Krq.

Figure 1.17. ARActivity’s loadContents() method.

With that we conclude our tutorial on implementing an interactive application. Next section shows some advanced use case scenarios and solutions.

1.4 Use Cases

It is clear that the range of ideas and solutions Google Glass explores is enormous. This section will show two use cases designed and developed for this platform.

1.4.1 Face Recognition using OpenCV

For this we will introduce Glassist, which consists of a teacher assistant application that allows the creation of profiles for each child (student), entering and viewing information about them [da Silva et al. 2014]. In a seamless and non-intrusive way the application uses augmented reality to help day-to-day activities of teachers.

For implementation we used the Open Source Computer Vision Library (OpenCV) [Bradski 2000] for the image processing techniques. Although the library has many image handling examples it lacked a face recognition algorithm. To overcome this obstacle we used its face detection algorithm and a sim-

Page 182: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

182

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

ple yet sufficient comparison algorithm. The OpenCV library gives us the position and boundary of the faces in screen coordinates, next we extract the face image from the current frame and then fondly compare it to a set of face images stored in the application’s database. The implementation of the com-parison algorithm was done by comparing byte by byte and checking if the sum of the squared differ-ences of each byte pair is small enough to be a valid candidate. To use the OpenCV Android library, the developer can download it from its homepage and import the library the same way that was explained on last section with the Metaio SDK. To setup permissions on the manifest and create basic projects, we recommend studying the example applications that come with the library.

The application flow is the following: the system starts with a full screen visual- ization of the camera image. When a student is detected, his/her name and status icons appear right above him/her, indicating that the face recognition algorithm has recognized him/her. When the user taps the touchpad, the system enters the profile screen of the stu- dent that is in the center of the camera view. In this level, the teacher can swipe between student profiles or tap to view more information about one of them and add new notes, photos, videos, or other information to it. The user can also add data to the portfolios by centering a student on the camera view and clicking on the shutter button, adding a photo or video directly to his/her portfolio. On Figure 1.18 we can see two screenshots of the core functions of the Glassist application.

Figure 1.18. Glassist recognizing faces (left) and visualizing a portfolio (right).

1.4.2 Teleoperating Drones with Glass

In this case study we will analyze a scenario where the user controls an Unmanned Aerial Vehicle (UAV) through head positioning and gestures using Google Glass. This project for visualization and control was designed to be applied to the structural inspection of buildings. In order to do that, a con-nection is established between the Glass and an UAV in a form of a Drone and through this connection the Drone sends captured images to Glass while it controls the UAV through gesture inputs.

1.4.2.1 The Drone

An UAV is defined as an uninhabited motorized vehicle that can be controlled by a re- mote control, semi-autonomous, autonomous, or a combination of the capabilities above. It can be used for military

Page 183: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

183

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

purposes, to solve specific tasks like traffic and meteorological surveillance, carrying specific payload, act where presence of a human pilot can be un- healthy or dangerous and spy the enemy areas. As com-pared to a manned vehicle, this one has some advantages, such as reduced cost, longer endurance and less risk to the crew [Fahlstrom and Gleason 2012]. The UAV used in this work is the Parrot AR.Drone 2.0 [Parrot 2014], and its components are shown on Figure 1.19.

1.4.2.2 Application Details

There are several SDKs available that allow the remote communication and controlling of a drone. They vary on features, programming language and platform. Table 1.2 compares some of the drone SDKs found in the literature. We have chosen the SDK called CVDrone because it integrates drone operation with OpenCV. This way, once the image is received from the drone, it can be easily encoded and transmitted to the Glass.

Figure 1.19. AR.Drone 2.0 and its components.

Data exchange between the Glass and the drone requires wireless network com- munication. Since the AR.Drone creates a local wireless network to which controller devices can connect, we decided to use it as communication channel. In fact, when con- structing a network architecture for such tele-operation application, two possibilities come to mind: directly connecting both Glass and drone, or using a PC as bridge between these devices. We adopted the second approach for simplicity reasons. Additionally, we were not able to find any working SDK capable of directly providing control and image information exchange between these two devices without the help of a computer.

Page 184: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

184

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

The architecture designed for the application is basically composed by two major modules: an Android client built specifically for Google Glass (implemented using Java), responsible for managing image visualization and remote control, and a PC server (im- plemented using C++), responsible for intermediating communication between the drone and the Glass.

The Client module has three sub-modules: UI, Image Receiver and Command Sender, as shown in Figure 1.20. The UI module is responsible for displaying the images received from the Image Receiver module and for capturing interaction events (gestures and head motion), used for sending commands to the Command Sender module.

The Image Receiver module is responsible for receiving the images captured by the drone from the network and routing them to the UI module. The Command Sender module is responsible for sending the commands over the network for controlling the drone, which has nine possible options: take off, land, rotate right and left, go front, back, left and right, and stand (used to stop the current command being executed).

The Server module has, analogously to the Client module, three sub-modules: Drone Manager, Image Server and Command Server, as shown in Figure 1.20. The Drone

Table 1.2. Comparison between some AR.Drone SDKs.

SDK Language Features

CVDrone [puku0x 2014] C/C++

1. Integrates drone operation and OpenCV2. Allows full control and image access from

both cameras

Javadrone [Codeminders 2014] Java

1. Allows full control2. Runs on multiple platforms3. Has version compatibility problems

ARDrone.Net[Endres 2014] C# 1. Allows full control and image access from

both cameras

yADrone [Bade 2014] Java

1. Allows full control2. Image access does not work on Android plat-

forms

EasyDrone [Kenai 2014] Java

1. Provides easier movement commands and complex behaviours such as face detection/face following and tag

Manager takes care of the communication between PC and drone, acquiring the images captured from its camera and sending it commands for performing the desired actions.

The Image Server is the module responsible for the PC/Glass image streaming, retrieving the im-ages captured from the Drone Manager, compressing them into JPEG format, and then sending the data through the network. The Command Server is respon- sible for receiving the commands sent from the Glass and routing them to the Drone Manager module.

Page 185: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

185

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

If you would like to analyze the implementation in detail, the source code for the entire system (both client and server sides) is available for download and distributed as open-source at http://goo.gl/YoWA5q.

1.4.2.3 Case Study Analysis

The drone is controlled using the commands listed on Table 1.3 and can be used in two different scenarios: indoor and outdoor. The image captured by the AR.Drone is displayed in the Glass as a JPEG with 30% of compression to avoid transmission latency. Figure 1.21 shows an operator controlling the AR.Drone using the Google Glass. Even though, it is still possible to extract relevant information from it, such as the structural damage on the wall and close to the ceiling.

1.4.3. Tools and Tips

During the development of applications for Google Glass, we found some useful tools and function-alities that helped us in the process. One is the Droid@Screen application

Figure 1.20. Client (left) and Server (right) modules architecture.

Table 1.3. Action map between Glass and AR.Drone.

OperatorGesture TeleoperatorActionHead position to the front Drone stands still

Rotate head to the left Rotate drone to the leftRotate head to the right Rotate drone to the right

Swipe right Drone goes forwardSwipe left Drone stands stillSwipe up Drone goes up

Swipe up with two fingers Drone goes downTwo-tap Tale off/land

Page 186: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

186

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

[Riboe 2014]. This app was used to capture the images displayed on the device. It receives from a dedicated USB stream every image that is shown to the user. It is important to say that such tool is used for debugging purposes, so the image refresh rate is low (approximately 1 image every 200ms).

Another tip is concerning the fact that Glass goes into standby mode very easily, to save battery. For interactive applications we want the screen to stay on to produce the desired experience. This can be done by adding a single line of code to the onCreate() method of your Activity1. This will prevent your app from going into standby, simple and perfect for real-time applications.

Overall the examples that come with the GDK are very complete and studying them is a great way to get used to working with Google Glass development.

1.5 Final Remarks

This tutorial provided a guide for those who want to start developing or already develop for Google Glass and want to explore interactive solutions this wearable device provides.

1The line is “getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);”.

Figure 1.21. On top (a), we can see an operator interacting with Google Glass in an outdoor environment. On the bottom left (b) there is his vision while perform- ing a structural inspection task. On the bottom

right (c), an open field navigation test.

Page 187: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

187

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

It was explained in the work what is Glass and how it works from hardware infrastruc- ture to software details. We then made a walkthrough from setting up the workspace to creating, step by step, a basic and an interactive augmented reality application using the Metaio SDK. Finally we show some use cases of interactive Glass apps, focusing aug- mented reality aiding in classrooms and operation of a drone for structural inspection using intercommunication between Glass, computer and the AR.Drone.

Google Glass gave us a whole new way of thinking, because we can develop unique solutions, such as the teleoperation of drones showed, and also adapt an already implemented application in such a way that it will also be more interesting. Just by having an HMD with all the main components of a smartphone augments our range of possible outcomes. Focusing on augmented reality, there are a few limitations like the need to optimize codes to the extreme because Google Glass does not last long with active apps, and also because of its limited computing power.

Google Glass can do much more things that were not covered by this course, such as lifelike stream-ing of videos and extracting important information from real world scenarios. There is an infinity of branches to be explored. Soon it will be available to the public so everybody can create stunning appli-cations. Overall we think Glass has expanded the pool of ways to solve problems and it was an amazing opportunity to think and develop for it.

References

[Bade 2014] Bade, D. (2014). yadrone : yet another open framework for controlling the ar.drone 2.0. http://bit.ly/1dIx0gd.

[Bradski 2000] Bradski, G. (2000). The opencv library. Dr. Dobb’s Journal of Software Tools.

[Codeminders 2014] Codeminders (2014). Javadrone. http://bit.ly/1dkMu3I.

[da Silva et al. 2014] da Silva, M. M. O., Freitas, D., Neto, E., Lins, C., ao Marcelo Teixeira, J., and Teichrieb, V. (2014). Glassist: Using google glass as an aid to classroom management. In Under Review.

[Endres 2014] Endres, T. (2014). Ardrone.net. http://bit.ly/1dIx0gd. [Fahlstrom and Gleason 2012] Fahlstrom, P. and Gleason, T. (2012). Introduction to UAV Systems. Aerospace Series. wiley.

[Gibb 2013] Gibb, T. (2013). How to disable driver signature verification on 64-bit win- dows 8.1 (so that you can install unsigned drivers). http://bit.ly/JsBH9w.

[Google 2014a] Google (2014a). Glass development kit. http://bit.ly/ 1gTNxm5.

[Google 2014b] Google, I. (2014b). Google glass. http://bit.ly/1gfLM7E. [Kaspari 2013] Kaspari, S. (2013). Mirror api and gdk - developing for google glass #1. http://bit.ly/1eHxITl.

[Kenai 2014] Kenai, P. (2014). Easydrone - the javadrone composer. http://bit. ly/1gvxFqw.

[metaio 2014] metaio, G. (2014). metaio home augmented reality products & solutions. http://bit.ly/1bszicy.

Page 188: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

188

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 167-188, maio/2014.linS, caio novaes. Development of Interactive Applications for Google Glass.

[Missfeldt 2014] Missfeldt, M. (2014). Google glass (infographic) - how it works. http://bit.ly/1dnG58d.

[Parrot 2014] Parrot, S. (2014). Ar.drone 2.0. parrot new wi-fi quadricopter - ar.drone.com - hd camera - civil drone - parrot. http://bit.ly/1gPDuP9.

[puku0x 2014] puku0x (2014). Cv drone (= opencv + ar.drone). http://bit.ly/ 1eHwUxx.

[Riboe 2014] Riboe, J. (2014). Droid at screen | show your android device for your audience. http://bit.ly/1lilMex.

[Rolland and Fuchs 2000] Rolland, J. P. and Fuchs, H. (2000). Optical versus video see- through head-mounted displays in medical visualization. Presence: Teleoper. Virtual Environ., 9(3):287–309.

Page 189: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

189

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada

Luciano Silva1

Abstract

Point clouds embrace a set of processes, techniques and algorithms for the acquisition, representation, processing and storage of point sets, aiming at applications in graphics processing. As multi and manycore processors have increased their storage and processing powers, this area has become very attractive for applications that require high performance graphics, eg, Virtual and Augmented Reality applications. Within this context, this chapter introduces some point cloud techniques, highlighting the main applica-tions in modeling, rendering and animation in GPU.

Resumo

Nuvens de Pontos referem-se a um conjunto de processos, técnicas e algoritmos para aquisição, represen-tação, processamento e armazenamento de conjuntos de pontos, visando às aplicações em processamento gráfico. Com o aumento da capacidade de processamento e armazenamento de processadores multi e many-cores, esta área tornou-se bastante atrativa para aplicações gráficas que requerem alto desempe-nho como, por exemplo, RV e RA. Dentro deste contexto, este capítulo apresenta algumas técnicas de nuvens de pontos para modelagem, rendering e animação.

1.1 Introdução

A tecnologia de nuvens de pontos, com o aumento do poder de processamento das unidades de processamento gráfico (GPU), tem oferecido ao segmento de desenvolvimento de RV e RA novas pos-sibilidades para aumento de desempenho das aplicações. Neste contexto, ao invés de se trabalhar com

1 Laboratório de Processamento Gráfico e Mídias Digitais. Faculdade de Computação e Informática, Universidade Presbiteriana Mackenzie.

189

Page 190: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

190

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

estruturas de dados complexas, que envolvem, por exemplo, vértices, arestas e faces, utiliza-se somente uma nuvem de pontos para representar o objeto a ser processado.

A partir desta nuvem de pontos, com o poder de processamento gráfico e genérico das GPUs, procedimentos como modelagem, transformações, renderização e animação são efetuados diretamen-te nesta nuvem. Mesmo procedimentos considerados não-gráficos como, por exemplo, simulações de Física ou inferências em Inteligência Artificial podem ser efetuadas nas nuvens com o auxílio de lin-guagens como CUDA ou OpenCL.

Assim, dentro deste contexto, este texto tem como objetivo introduzir os conceitos fundamentais de nuvens de pontos para suporte ao desenvolvimento de aplicações de RV e RA.

O texto está organizado da seguinte forma:• a Seção 1.2 traz o conceito de nuvens de pontos e algumas formas para sua representação;• a Seção 1.3 apresenta uma introdução ao framework PCL (Point Cloud Library), principal

ambiente de desenvolvimento de aplicações baseadas em nuvens de pontos;• a Seção 1.4 discute o processo de aquisição de nuvens de pontos através de scanning 3D• a Seção 1.5 apresenta funcionalidades de processamento gráfico de nuvens de pontos através

de shaders• a Seção 1.6 apresenta detalhadamente as funcionalidades de processamento genérico de nu-

vens de pontos em GPU, com as arquiteturas CUDA e OpenCL. Como o processamento de nuvens muitas vezes não requer saída gráfica, deu-se uma atenção especial a este tópico.

• finalmente, a Seção 1.7 apresenta o fechamento do capítulo e, em seguida, são apresentadas algumas sugestões de referências bibliográficas.

O autor deseja que este texto possa disponibilizar um suporte simples e direto para todos aqueles que queiram iniciar trabalhos na área de nuvens de prontos, especialmente aplicados a RV e RA.

Nuvens de Pontos e Fundamentos de RepresentaçãoUma nuvem de pontos (point cloud) é uma coleção de pontos com coordenadas bi ou tridimensio-

nais e, normalmente, sem relações entre os pontos. A figura abaixo mostra dois exemplos de nuvens de pontos, onde se pode ver um cenário (à esquerda) e dois objetos (à direita):

Figura 1: Exemplos de nuvens de pontos (cenário e objetos). Fonte: Jogo Just Cause 2.

Page 191: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

191

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

A partir de uma nuvem de pontos, pode-se construir uma visualização básica, através de acumula-ção de patches, ou se aproximar ou interpolar uma superfície pelos pontos. A figura abaixo mostra três níveis usuais de visualização de uma malha de pontos: a própria nuvem, uma acumulação de patches e uma superfície interpolada (já com renderização):

(a) Nuvem (b) Patches acumulados (c) Superfície

Figura 2: Níveis de visualização de uma nuvem de pontos. Fonte: (Linsen, 2001).

Uma das grandes vantagens de falta de relações entre os pontos reside no fato da velocidade de alteração das estruturas de representação das nuvens de pontos, uma vez que, normalmente, não há necessidade de atualização de arestas, faces ou mesmo objetos.

Formalmente, um ponto P em uma nuvem de ponto é uma t-upla formada, geralmente, pela sua posição (x,y,z) e alguma informação de cor (r,g,b):

.

Outras informações podem incluir, por exemplo, informações de normais, curvatura, tangentes, dentre outros. A partir do conceito de ponto, define-se uma nuvem de pontos como uma coleção in-dexada de pontos:

.

Para se aumentar a eficiência de vários algoritmos numa nuvem de pontos, é comum representá-la como uma octree (Figura 3):

Page 192: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

192

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Figura 3: Estrutura octree para representação por subdivisão de espaço. Fonte: (PCL, 2012)

Numa octree, o objeto é discretizado em conjunto de elementos chamados voxels. Em cada sub-divisão, são gerados oito voxels. No caso de nuvens de pontos, cada voxel irá conter um determinado subconjunto de pontos da nuvem original.

Uma grande vantagem do uso de octrees reside no percurso na árvore. Quando a octree está bem balanceada, o tempo de percurso da raiz até qualquer folha é O(log8n). Por exemplo, algoritmos de visualização de malhas de pontos baseados em ray tracing ou ray casting ficam bastante eficientes nestas estruturas.

Uma outra estratégia de representação é por árvores Kd, que permitem um balanceamento me-lhor do particionamento do espaço onde estão concentrados os pontos. Nesta estratégia, o espaço é sempre subdividido por planos perpendiculares a cada um dos eixos. Cada subdivisão tentar deixar, para cada lado, a mesma quantidade de pontos (Figura 4):

Figura 4: Estratégia de subdivisão por árvores Kd, mostrando somente os eixos x e y. Fonte: (PCL, 2012)

Page 193: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

193

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Normalmente, para problemas de localização de pontos, as árvores kd são mais eficientes que as árvores octrees.

1.2 Introdução ao Framework PCL

O framework PCL (Point Cloud Library) (PCL, 2012) é um conjunto de classes em C++ para re-presentação tanto de nuvens de pontos 3D. A definição de uma nuvem de pontos em PCL toma, como base, uma estrutura para representar cada ponto e, a partir de um ponto, constrói-se a nuvem. Abaixo, tem-se um exemplo de representação de nuvem de ponto em PCL:

A classe PointCloud disponibiliza uma série de métodos básicos para manipulação de pontos iso-lados ou conjuntos de pontos.

Uma vez que se tenha uma nuvem de pontos, pode-se transformá-la para uma octree seguindo os passos abaixo:

Caso se queira trabalhar com uma estrutura de árvore Kd, pode-se utilizar o seguinte código:

A partir da estrutura de octree ou árvore kd, pode-se efetuar algoritmos de busca, de renderiza-ção, dentre outros.

1.3 Aquisição de Nuvens de Pontos

Existem diversas estratégias para aquisição de nuvens de pontos (Gross & Pfister, 2007). No con-texto de jogos digitais, uma maneira bastante comum é via scanners tridimensionais, como mostrado na figura abaixo:

Page 194: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

194

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Figura 5: Scanner 3D manual, baseado em Visão Estéreo e projeção laser. Fonte: (PCL, 2012)

A projeção laser permite indicar qual segmento de reta está sendo escaneado. O sistema duplo de câmeras permite utilizar técnicas de reconstrução 3D, baseadas em Visão Estereoscópica. A coorde-nada do ponto que está sendo escaneado pode ser obtida através de uma intersecção de retas definidas pelas duas câmeras e os planos de projeção das imagens, conforme mostra a figura a seguir:

Figura 6: Esquema de obteção das coordenadas de um ponto baseado em Visão Estereoscópica. Fonte: (PCL, 2012)

Este esquema exige uma calibração de todo o sistema de aquisição como, por exemplo, distância entre as câmeras ou estimação das distâncias focais das duas câmeras. Uma vez calibrado o sistema, a granularidade dos pontos escaneados pode ser controlada tanto no processo de aquição, quanto no

Page 195: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

195

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

processo de pós-processamento. A figura abaixo mostra duas nuvens de pontos, com as respectivas superfícies rescontruídas:

Figura 7: Resultado de um processo de scanning para um modelo poligonal. Fonte: (PCL, 2012)

Na imagem da esquerda, tem-se uma nuvem de pontos bastante regular, resultado comum de um processo de scanning. Na imagem da direita, os pontos foram processados e, regiões que não necessi-tam de muitos detalhes podem e devem ser simplificadas.

Os equipamentos para scanning 3D, mesmo para pequenos objetos, ainda tem um custo elevado. Uma alternativa bastante interessante atualmente é o uso do gadget de interação para jogo Kinect. Para reconhecer profundidade dos objetos, o Kinect projeta uma nuvem estruturada de pontos, que pode ser percebida e capturada por câmeras de infra-vermelho. A imagem abaixo mostra um exemplo de nuvem projetada de pontos pelo Kinect:

Figura 8: Nuvem de pontos projetada pelo Kinect. Fonte: (PCL, 2012)

Page 196: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

196

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

O processo de obtenção da nuvem de pontos pelo Kinect pode ser feita através do Kinect SDK. A seguir, tem-se um exemplo de código que realiza esta tarefa em PCL:

Page 197: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

197

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

O código anterior permite uma abertura de um canal de comunicação, via PCL, com o hardware Kinect (pcl::OpenNIGrabber()) e, de um em um segundo, faz uma aquisição de uma nova nuvem de pontos. A nuvem é repassada a um viewer para renderização, conforme ilustra o exemplo de Figura 9:

Figura 9: Nuvem de pontos extraída de imagens do Kinect. Fonte: (PCL, 2012)

Além dos pontos, o Kinect ainda permite obter animações baseadas em um esqueleto humano de referência.

Uma vez obtida a nuvem de pontos, as próximas seções abordarão como processá-las dentro de uma GPU com propósitos gráficos (via shaders) ou com propósitos gerais (via CUDA ou OpenCL).

1.4 Processamento Gráfico de Nuvens de Pontos com Shaders

Shaders são pequenos programas executados dentro de unidades gráficas de processamento (GPU) e são extremamente adaptados para processamento de nuvens de pontos devido a sua natureza.

Existem, essencialmente, três tipos de shader:• Vertex Shaders • Pixel Shaders• Geometry Shaders:

Page 198: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

198

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Os vertex shaders recebem como entrada um vértice (ponto) e retornam um outro vértice, resulta-do de alguma transformação. No contexto de nuvens de pontos para jogos, este tipo de shader é muito utilizado para os mecanismos de modelagem (transformações) e animação. O código abaixo mostra o código de vertex shader utilizado na simulação de líquidos baseados em nuvens de pontos em OSGL (OpenGL Shading Language):

Outro exemplo bastante importante em animação de nuvens de pontos é conhecido comumente como sistemas de partículas, conforme mostra o exemplo do vertex shader abaixo, onde, além da posi-ção, controla-se também parâmetros de ordem física:

Os pixel shaders recebem como entrada um vértice (ponto) e retornam uma cor associada ao vértice. No contexto de nuvens de pontos de jogos, este tipo de shader é muito utilizado para os me-canismos de renderização. O trecho de código a seguir mostra parte do cálculo do Modelo de Phong para nuvens de pontos:

Page 199: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

199

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Finalmente, existem os geometry shaders, que permitem, dentro do contexto de nuvens de pontos, a geração de novos pontos. Como são executados depois dos vertex shaders, possuem aplicação imedia-ta nos processos de refinamento de nuvens de pontos.

1.5 Processamento Genérico de Nuvens de Pontos com CUDA e OpenCL

Atualmente, existem duas tecnologias (e linguagens) importantes para processamento genérico de nuvens de pontos em GPU: CUDA e OPENCL (Silva e Stringhini, 2012).

LINGUAGEM CUDA C

A arquitetura CUDA (Compute Unified Device Architecture) (NVIDIA, 2011) unifica a interface de programação para as GPUs da NVIDIA, assim como define um modelo de programação paralela que pode ser usado de forma unificada em dezenas de dispositivos diferentes. A linguagem CUDA C possibilita que se inclua comandos direcionados às GPUs da NVIDIA em programas escritos em linguagem C/C++.

Apesar de ser uma interface unificada que possibilita a programação em diferentes placas gráficas, CUDA possui características intrínsecas ao hardware das placas NVIDIA. Assim, antes de apresentar o modelo de programação CUDA, uma breve descrição da arquitetura Fermi será apresentada a fim de justificar o modelo de programação CUDA e familiarizar o leitor com este tipo de dispositivo que tem sido referenciado como acelerador.

ARQUITETURA FERMI

As GPUs são compostas de centenas de núcleos (cores) simples que executam o mesmo código através de centenas a milhares de threads concorrentes. Esta abordagem se opõe ao modelo tradicional de processadores multicore, onde algumas unidades de núcleos completos e independentes são capazes de processar threads ou processos. Estes núcleos completos, as CPUs, possuem poderosas unidades de

Page 200: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

200

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

controle e de execução capazes de executar instruções paralelas e fora de ordem, além de contarem com uma poderosa hierarquia de cache. Já as GPUs contam com unidades de controle e de execução mais simples, onde uma unidade de despacho envia apenas uma instrução para um conjunto de núcleos que a executarão em ordem. O modelo de execução das GPUs é conhecido como SIMT (Single Instruction Multiple Threads), derivado do clássico termo SIMD (Single Instruction Multiple Data).

A Figura 10 apresenta as diferenças nas arquiteturas de CPU e GPU.

Figura 10: Arquitetura de CPU e de GPU. Fonte: (NVIDIA, 2011).

A arquitetura Fermi da NVIDIA segue este princípio de dedicar uma maior quantidade de tran-sistores às unidades de execução, ao invés de dedica-los às unidades de controle e cache. A Figura 11 apresenta uma visão geral da arquitetura Fermi:

Figura 11: Visão geral da arquitetura Fermi. Fonte: NVIDIA, 2009.

Page 201: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

201

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

A arquitetura conta com 16 SM (streaming multiprocessors), cada um composto por 32 núcleos de processamento (cores), resultando num total de 512 núcleos. É possível observar uma cache de segundo nível (L2) compartilhada por todos os SM. A cache de primeiro nível (L1) é compartilhada pelos 32 núcleos de cada SM.

A Figura 12 mostra a hierarquia de cache da Fermi, juntamente com dois outros tipos de memória presentes na arquitetura. A memória compartilhada (shared memory) pode ser usada explicitamente pelo programador como uma memória de “rascunho” que pode acelerar o processamento de uma apli-cação, dependendo do seu padrão de acesso aos dados.

Figura 12: Hierarquia de memória da FERMI. Fonte: NVIDIA, 2009.

Esta memória é dividida fisicamente com a cache de primeiro nível com um total de 64KB, cujo tamanho é configurável: 16 KB – 48KB para cache e memória compartilhada respectivamente ou ao contrário. Além dos dois níveis de cache e da memória compartilhada, a Fermi conta com uma memó-ria global (DRAM) de até 6GB.

A Figura 13 apresenta a arquitetura dos SM. Cada um é composto por quatro blocos de execução controlados por duas unidades escalonamento de warps (grupos de 32 threads).

Page 202: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

202

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Figura 13: Arquitetura de um SM (Streaming Multiprocessor). Fonte: NVIDIA, 2009.

Além disso, cada SM conta com uma memória cache L1/memória compartilhada de 64KB, já men-cionada, e com 32KB de registradores, compartilhados entre todas as threads que executarão no SM.

PROGRAMAÇÃO CUDA

O modelo de programação de CUDA C é composto de uma parte sequencial executada na CPU (host) e de uma parte paralela executada na GPU (device). O programador desenvolve uma função especial chamada kernel que será replicada em até milhares de threads durante a execução na GPU. As threads realizam as mesmas operações simultaneamente, porém atuam ao mesmo tempo sobre dados diferentes.

Em primeiro lugar, é importante observar a organização das threads em CUDA. Elas são organi-zadas em blocos e, dentro destes blocos, podem estar dispostas em 1, 2 ou até 3 dimensões. Os blocos são organizados em grades de uma ou duas dimensões. Da mesma forma, cada thread também terá disponível a informação de a qual bloco dentro da grade ela pertence. Por exemplo, numa grade 1D,

Page 203: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

203

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

pode-se dizer que a primeira thread entre todas pertencerá ao bloco 0 e terá seu índice dentro do bloco como 0 (bloco 0, thread 0).

A Figura 14 mostra uma representação clássica desta organização, apresentando uma grade bidi-mensional (2D), com blocos de threads também bidimensionais (2D) (NVIDIA, 2011). Estas dimen-sões, assim como a quantidade de threads e blocos em cada uma delas, são definidas pelo programador no momento em que ele inicia (lança) o kernel.

Figura 14: Organização de blocos e threads Fonte: NVIDIA, 2011.

Além disso, CUDA suporta uma série de tipos de memória que podem ser usadas pelos programa-dores para que possam acelerar a velocidade de execução de um kernel. A Figura 15, próxima página, mostra a forma desses tipos de memória num dispositivo CUDA. A memória global (global memory) pode ser escrita ou lida a partir do código que executa na CPU, chamado usualmente de host. Estas operações são realizadas utilizando-se funções da API (Aplication Programming Interface) de CUDA.

Internamente, a memória global pode ser acessada por qualquer thread em execução no disposi-tivo. Entretanto, a tecnologia usada no desenvolvimento de tal memória não possui taxa de velocidade

Page 204: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

204

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

de acesso que acompanhe a velocidade dos cálculos que pode ser obtida pela GPU, tornando-se um gargalo de desempenho. Por conta disso, a organização de memória conta com outros tipos de me-mória que podem ser usadas pelo programador para otimizar o desempenho de acesso à memória. São elas a memória local (shared memory), compartilhada apenas por threads num mesmo bloco, e os registradores (registers), que não são compartilhados entre as threads e são alocados previamente pelo compilador. Existe ainda uma memória somente de leitura, também compartilhada entre todas as threads de um grid, a memória constante (constant memory), que possui um tempo de acesso melhor que o da memória global.

Figura 15: organização de memória em CUDA. Fonte: NVIDIA, 2011.

Embora os registradores e a memória local possam ser extremamente efetivos na redução da quan-tidade de acessos à memória global, o programador deve ser cuidadoso para que não exceda a capacida-de efetiva destas memórias considerando os limites de hardware da GPU. Cada dispositivo oferece uma quantidade limitada de memória CUDA, que pode limitar a quantidade de threads que pode executar simultaneamente nos multiprocessadores de um dispositivo.

Page 205: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

205

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Como os registradores e a memória local são compartilhados entre as threads, quanto maior for a quantidade destes recursos que cada thread necessitar, menor será a quantidade de threads que pode-rão executar num processador.

O esquema de escalonamento de threads depende de uma boa quantidade threads em execução para que se obtenha uma boa utilização do dispositivo. Todas as threads em um bloco são executadas em conjunto num SM, que por sua vez pode ter múltiplos blocos concorrentes em execução. Assim, a quantidade de blocos (ocupação) será limitada pela quantidade de recursos de hardware disponíveis no SM (como a quantidade de registradores e memória local, por exemplo).

O esquema de escalonamento é baseado em warps – cada bloco é divido em warps de 32 threads cada, ou seja, o número de warps de um bloco é igual ao número de threads no bloco dividido por 32. Visto que o escalonamento é realizado em grupo de threads, a organização em warps serve para que o processador não fique parado quando ocorrer algum bloqueio num grupo de threads – este será deses-calonado e um outro grupo (warp) poderá ser imediatamente executado. Daí a importância de se ter uma boa quantidade de threads em execução em cada SM.

CUDA para a linguagem C consiste numa série de extensões de linguagem e de biblioteca de funções. O modelo de programação assume que o sistema é composto de um host (CPU) e de um dis-positivo (device ou GPU).

A programação consiste em definir o código de uma ou mais funções que executarão no disposi-tivo (kernel) e de uma ou mais funções que executarão no host (a main(), por exemplo). Quando um kernel é invocado, centenas ou até milhares de threads são iniciadas no dispositivo, executando simul-taneamente o código descrito no kernel. Os dados utilizados devem estar na memória do dispositivo e CUDA oferece funções para realizar esta transferência.

EXEMPLO: SOMA DE NUVENS DE PONTOS EM CUDA

O código a seguir apresenta um exemplo que código em CUDA que implementa a soma de vetores no dispositivo. O comando de invocação do kernel define a quantidade de threads e as dimensões do bloco e da grade.

Page 206: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

206

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

A partir deste código, é possível observar algumas das principais características da programação CUDA. São elas:

• uso da palavra-chave __global__ que indica que a função é um kernel e que só poderá ser invocada a partir do código do host, criando uma grade de threads que executarão no dispo-sitivo (linha 05);

• uso das variáveis pré-definidas blockDim.x, blockIdx.x e threadIdx.x que identificam o bloco e a thread dentro do bloco através de suas coordenadas (linha 06);

• uso da função cudaMalloc() que aloca memória no dispositivo (linhas 21 a 23);• uso da função cudaMemcpy(), que copia os dados da memória do host para a memória do

dispositivo (linhas 27 e 28) e vice-versa (linha 40);• invocação do kernel e definição de suas dimensões (linha 36);• uso da função cudaFree(), para liberar a memória do dispositivo (linhas 43 a 45).

LINGUAGEM OPENCL

OpenCL (Munchi, 2011) possui uma filosofia ligeiramente diferente de CUDA. A ideia é que a lin-guagem e seu sistema de tempo de execução sirvam como uma camada de abstração ao hardware hete-rogêneo que é extremamente comum nos dias de hoje. Assim, um programa OpenCL tem o objetivo de aproveitar todos os dispositivos presentes na máquina, tais como processadores multicore, GPUs, DSPs (Digital Signal Processors), entre outros. Uma aplicação que executa em um hardware heterogêneo deve seguir os seguintes passos:

Page 207: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

207

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

1. Descobrir os componentes que compõem o sistema heterogêneo.2. Detectar as características do hardware heterogêneo tal que a aplicação possa se adaptar a elas.3. Criar os blocos de instruções (kernels) que irão executar na plataforma heterogênea.4. Iniciar e manipular objetos de memória.5. Executar os kernels na ordem correta e nos dispositivos adequados presentes no sistema.6. Coletar os resultados finais.

Estes passos podem ser realizados através de uma série de APIs do OpenCL juntamente com um ambiente de programação e execução dos kernels. Esta seção apresenta um resumo do modelo de abs-tração do OpenCL juntamente com um exemplo simples de código.

Em primeiro lugar, é importante conhecer o modelo de plataforma heterogênea do OpenCL. Ele é composto por um host e um ou mais dispositivos OpenCL (devices). Cada dispositivo possui uma ou mais unidades de computação (compute units), que por sua vez são compostos por um conjunto de elementos de processamento (processing elements). A Figura 16 apresenta esta organização:

Figura 16: modelo de plataforma do OpenCL. Fonte: Munchi, 2011

O host é conectado a um ou mais dispositivos e é responsável por toda a parte de inicialização e envio dos kernels para a execução nos dispositivos heterogêneos. Os dispositivos normalmente são compostos por unidades de computação que agrupam uma determinada quantidade de elementos de processamento. Em relação a CUDA, as unidades de computação correspondem aos Streaming Mul-tiprocessors da GPU (dispositivo) e os elementos de processamento correspondem aos núcleos (cores). Um dispositivo, portanto, pode ser uma CPU, GPU, DSP ou outro qualquer, dependendo da implemen-tação do OpenCL.

O modelo de execução define que uma aplicação OpenCL é composta por um programa host e um conjunto de kernels. O programa host executa no host (normalmente uma CPU) e os kernels executam nos dispositivos disponíveis.

Page 208: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

208

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

O programa host, ou simplesmente host, envia o comando de execução de um kernel para um dispositivo. Isto faz com que várias instâncias da função que implementa o kernel sejam executadas no dispositivo alvo. Em OpenCL estas instâncias são chamadas de work-items (itens de trabalho) e cor-respondem às threads de CUDA. Assim como em CUDA, cada thread ou work-item é identificado por suas coordenadas no espaço de índices (que aqui também pode ter até 3 dimensões) e correspondem ao seu global ID.

Os work-items são organizados, por sua vez, em work-groups. Estes, oferecem uma maneira de estabelecer granularidades diferentes aos grupos de itens de trabalho, o que normalmente facilita a divisão de trabalho e a sincronização. Os work-groups correspondem aos blocos de CUDA e po-dem ser situados num espaço de até três dimensões. Assim, os work-items possuem dois tipos de coordenadas: local (dentro do work-group) e global (dentro do conjunto completo de work-items em execução).

O host deve ainda definir um contexto (context) para a aplicação OpenCL. Um contexto define o ambiente de execução no qual os kernels são definidos e executam e é definido em termos dos se-guintes recursos: dispositivos, conjunto de kernels, objetos de programa (códigos fonte e executável dos kernels que executam a aplicação) e objetos de memória (dados que serão utilizados pelos kernels durante o processamento). Assim, um contexto é todo o conjunto de recursos que um kernel vai uti-lizar durante sua execução.

O contexto é definido em tempo de execução pelo host de acordo com os dispositivos dispo-níveis na máquina alvo. Para possibilitar uma escolha dinâmica do dispositivo onde os kernels vão executar o OpenCL compila os kernels dinamicamente, gerando os objetos de programa, portanto, em tempo de execução.

A interação entre o host e os dispositivos é realizada através de uma fila de comandos (comman-d-queue). Os comandos são colocados nesta fila e aguardam seu momento de executar. A fila é criada pelo host e conectada a um dispositivo logo após a criação do contexto. Esta fila suporta três tipos de comandos: execução de kernel, transferência de dados (objetos de memória) e comandos de sincronização.

Os comandos colocados em uma fila executam de forma assíncrona com relação ao host. Coman-dos de sincronização podem ser utilizados caso uma ordem deva ser estabelecida. Os comandos na fila normalmente executam em ordem (in-order execution), porém algumas implementações de OpenCL podem oferecer o modo de execução fora de ordem (out-of-order execution), que prevê uma execução assíncrona dos comandos enfileirados.

O modelo de memória do OpenCL define dois tipos de objetos de memória: buffers (blocos con-tíguos de memória aos quais é possível mapear estruturas de dados) e imagens. Estas, podem ser ma-nipuladas através de funções específicas presentes na API do OpenCL.

O modelo de memória define cinco diferentes regiões (Figura 17):• Host memory: visível apenas ao host.• Global memory: permite acesso para leitura e escrita a partir de todos os work-items em

todos os work-groups.• Constant memory: é uma memória global que é inicializada pelo host e permite acesso so-

mente de leitura aos work-items.

Page 209: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

209

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

• Local memory: é compartilhada apenas entre os work-items de um mesmo work-group.• Private memory: é privada a cada work-item.

Figura 17: Regiões de memória de OpenCL Fonte: Munchi, 2011.

A interação entre o host e o modelo de memória pode ocorrer de duas maneiras: cópia explícita ou mapeamento de regiões de um objeto de memória. Na cópia explícita, comandos de transferência entre host e dispositivos são enfileirados na fila de comandos e podem ser executados de forma síncrona ou assíncrona. No método de mapeamento, os objetos de memória são mapeados na memória do host, que pode também realizar acessos a estes objetos. O comando de mapeamento também deve ser enfileirado na fila de comandos.

EXEMPLO: SOMA DE NUVENS DE PONTOS EM OPENCL

Os códigos a seguir apresentam um exemplo de soma de vetores em OpenCL. Este exemplo é ba-seado em um tutorial oferecido pelo OLCF (Oak Ridge Leadership Computing Facility), um dos maiores centros de processamento de alto desempenho do mundo (OLCF, 2012).

Page 210: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

210

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

O primeiro código apresenta o código do kernel, que pode ficar num arquivo separado (.cl) ou pode ser formatado no próprio código como uma string-C. Este código será passado como argumento à função OpenCL que o compilará em tempo de execução.

A partir deste código é possível observar algumas características de OpenCL:• A definição de um kernel é feita através de uma função que utiliza o modificador __kernel

(linha 01).• O modificador __global indica que os parâmetros estão na memória global do dispositivo

(linhas 01 a 03).• A função get_global_id() retorna o identificador global da thread (work item) na dimensão

0 (linha 06).• A verificação do identificador (linha 07) é comumente realizada neste tipo de computação,

pois por motivos de desempenho é possível que threads a mais venham a ser lançadas. A ve-rificação serve para que somente as threads “dentro do problema” executem o trabalho. Este tipo de verificação também é comum em CUDA.

• Na linha 08 a soma é realizada (n threads serão iniciadas e cada uma realizará uma soma).

O código a seguir apresenta a main() juntamente com funções auxiliares do OpenCL que devem ser executadas pelo host. Para reduzir o tamanho do código os testes de erro retornados pelas funções não foram realizados.

Page 211: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

211

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Page 212: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

212

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

Page 213: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

213

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

A seguir, destaca-se as principais características de OpenCL presentes no código:• Na linha 55 é definido o localSize que é a quantidade de work items em cada work group – 64

neste caso. Isto equivale em CUDA a definir a quantidade de threads em cada grupo.• A linha 59 define a quantidade total de work items lançados (globalSize). Num primeiro mo-

mento pensaríamos que este número deve ser igual ao tamanho do vetor (n). Porém, globalSi-ze deve ser divisível por localSize, por isso o arredondamento realizado nesta linha.

• Entre as linhas 61 e 72 é realizado o setup do OpenCL: plataforma, dispositivo, contexto e fila de comandos (command queue).

• Entre as linhas 75 e 88 o kernel é lido e compilado.

Page 214: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

214

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

• Entre as linhas 90 e 105 os dados são enviados ao kernel no dispositivo.• Na linha 108 o kernel é enfileirado e por fim lançado no dispositivo.• Na linha 112 o host espera a finalização do kernel (sincronização).• Na linha 115 o resultado é lido da memória do dispositivo.

1.6 Comentários Finais

Conforme evidenciado no texto, um dos grandes motores propulsores da tecnologia atual de Nu-vens de Pontos são GPUs, que disponibilizam, além de suporte a operações gráficas como modelagem, renderização e animação para RV e RA.

Espera-se, com o caráter introdutório deste texto, que as bases de nuvens de pontos tenham sido compreendidas, assim como as possibilidades de desenvolvimento tanto para o contexto gráfico como para contextos mais genéricos.

Referências

FARBER, R. CUDA Application Design and Development. New york: Morgan Kaufmann, 2011.

FARIAS, T.S.M.C., TEIxEIRA, J.M.N.x., LEITE, P.J.S., ALMEIDA, G.F., TEICHRIEB, V., KELNER, J. High Per-formance Computing: CUDA as a Supporting Technology for Next Generation Augmented Reality Applications. In: RITA, 16(1), 2009, pp. 71-96.

GASTER, B., HOwES, L., KAELI, D.R., MISTRy, P. Heterogeneous Computing with OpenCL. New york: Mor-gan Kaufmann, 2011.

GROSS, M., PFISTER, H. Point-Based Graphics. New york: Morgan Kaufmann, 2007.

KIRK, D.B., HwU, w.w. Programming Massively Parallel Processors: A Hands-on Approach. New york: Mor-gan Kaufmann, 2010.

LINSEN, L. Point Cloud Representation. Karlsruhe, Alemanha: Universität Karlsruhe, 2001.

MUNSHI, A., GASTER, B., MATTSON, T.G., FUNG, J., GISBURG, D. OpenCL Programming Guide. New york: Addison-wesley Professional, 2011.

NVIDIA Corporation, FERMI whitepaper, 2009.

NVIDIA Corporation, NVIDIA CUDA C Programming Guide - 4.0, 2011.

OLCF, Oak Ridge Leadership Computing Facility Tutorial, disponível em http://www.olcf.ornl.gov/training_ar-ticles/opencl-vector-addition/, acessado em abril de 2012.

Page 215: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,

215

Tendências e Técnicas em Realidade Virtual e Aumentada, v. 4, p. 189-216, maio/2014.SilVA, luciano. Técnicas de Nuvens de Pontos para Aplicações de Realidade Virtual e Aumentada.

OPENCV, OpenCV GPU, disponível em http://opencv.willowgarage.com/ wiki/OpenCV_GPU, acessado em abril de 2012.

PCL. (2012). Point Cloud Library. Fonte: Point Cloud: http://pointclouds.org, Acesso em 01/08/2012.

SANDERS, J., KANDROT, E. CUDA by Example: An Introduction to General-Purpose GPU Programming. New york: Addison-wesley, 2010.

SCARPINO, M. OpenCL in Action: How to Accelerate Graphics and Computations. New york: Manning Publi-cations, 2011.

SILVEIRA, C.L.B., SILVEIRA, L.G.S. Programação Introdutória em OpenCL e Aplicações em Realidade Virtual e Aumentada. In: Tendências e Técnicas em Realidade Virtual e Aumentada (Capítulo 3), Anais do SVR’2010, pp. 65-101.

STRINGHINI, D., SILVA, L. Programação em CUDA e OpenCL para Realidade Virtual e Aumentada. In: Ten-dências e Técnicas em Realidade Virtual e Aumentada (Capítulo 1), Anais do SVR’2012, pp. 1-35..

SINHA, S.N., FRAHM, J.M., POLLEFEyS, M., GENC, y. GPU-based Video Feature Tracking and Matching. Relatório Técnico TR 06-012, Departamento de Ciência da Computação, Universidade da Carolina do Norte – Chapel Hill, 2006.

SIzINTESEV, M., KUTHIRUMMAL, S., SAMARASEKERA, S., KUMAR, R., SAwHNEy, H.S., CHAUDHRy, A. GPU Accelerated Real-time Stereo for Augmented Reality. In: Proceedings of the 5th International Symposium 3D Data Processing, Visualization and Transmission (3DPVT), 2010. 

Page 216: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,
Page 217: TENDÊNCIAS E TÉCNICAS EM REALIDADE VIRTUAL E AUMENTADAhiperrealidade.com.br/ce-rv/MC_SVR_2014.pdf · IV. Pinho, Marcio Sarroglia. CDD 006 Este periódico foi especialmente editado,