You are on page 1of 46

Realidade Aumentada na de Oliveira Faria (A.K.A.CABELO) Plataforma GNU/Linux Alessandro cabelo@opensuse.

org

Perfil Tcnico:
Alessandro de Oliveira Faria (A.K.A. CABELO) Diretor de pesquisas NETi TECNOLOGIA Atuandonomercadodesoftwaredesde1986 EmbaixadoreopenSUSEMember; MembrodacomunidadeVivaOLinuxdesde2003; Pesquisadoremtecnologiadeprocessamento deimagenseneurotecnologia; Projetista/mantenedormaisde180RPMsno openSUSEBuildService;

MantenedoreDesenvolvedor TwitterMe:Sigaosamigoscomapenasumafoto. droidRastreamento:Rastreabilidadedeobjetopostados. stampDate:ServiodemenuKDEparaestampardataemimagens. libHAIRCAPTURE:BibliotecadevideocapturaemLinux. IPCMSG:Bibliotecadecomunicaointerprocessos. easyPCSC:Bibliotecaparautilizaodecartessma Publicaes: LinuxMagazine10Artigos Internet100artigostcnicos(VOL/Tecnocincia/LinhadeCdigo).

Realidade Aumentada
Definio

RA define-se como a sobreposio no ambiente real de objetos virtuais e tridimensionais gerados por computador, por meio de algum dispositivo tecnolgico de vdeo captura. Isto somente possvel com tcnicas de viso computacional junto a computao grfica.

Conceito
O que realidade Aumentada?

Realidade Aumentada
Definio

Conceito
O que realidade Aumentada?

As principais qualidades da tecnologia realidade aumentada so: * Combinar elementos virtuais com o ambiente real; * Interatividade e processamento em tempo real; * Ser concebida em trs dimenses.

Projetos e aplicabilidade
Mdia no universo paralelo

Projetos e aplicabilidade
Jogo levelhead

Projetos e aplicabilidade
Jogo levelhead

MinhaspesquisanaNETiTECNOLOGIAsobrerealidadeaumentadainiciouemsetembrode 2008,quandoconheciofantsticoprojetoLevelhead http://selectparks.net/~julian/levelhead/criadopelodesignereprogramadorJulianOliver

Projetos e aplicabilidade
Jogo Eye Pet da Sony

Projetos e aplicabilidade
Campus Party

Projetos e aplicabilidade
Arquitetura

Projetos e aplicabilidade
Carto virtual

Projetos e aplicabilidade
Rossi Autilizaodestatecnologiaproporcionouao projetodaRossiottulodemaiorcasode RealidadeAumentadadomundo.

Projetos e aplicabilidade
Jogo da velha

Ousurioimprimeumcampodejogocommedidasespecficaseutilizaumdispositivode vdeocapturaparainterpretaraimagememtemporeal.Ousuriojogacompedaosde papeisamaadoe/oudobrado,fazendoumXcomumacanetaoucolocandoalgumapea nacasacorrespondente.

Projetos e aplicabilidade
IonRoad

iOnRoad Evite Acidentes de Trnsito com seu Android

Projetos e aplicabilidade
ATOMIC Ferramenta RAD

ARTOOLKIT
conceito

Existem diversas biblioteca/tecnologia de cdigo aberto e proprietrio para o uso da tecnologia RA (openCV Bazar e outras). Entretanto, uma quantidade significativa de , trabalhosdecdigoabertobaseadoe/ouderivadadabibliotecaARToolKit,umabiblioteca escritaemC,baseadaemsoftwarelivreedesenvolvidapeloDr.HirokazuKato.Atualmente utilizada por pesquisadores do Laboratrio Tecnolgico de Interface Humana, na UniversidadedeWashington,surgiucomoobjetivodefacilitaraconstruodeaplicaes deRealidadeAumentada.

ARTOOLKIT
Instalao

$ wget http://downloads.sourceforge.net/project/artoolkit/artoolkit/2.72.1/A RToolKit-2.72.1.tgz $ tar -zxvf ARToolKit-2.72.1.tgz

Entre na pasta ARToolKit recm-criada e execute o comando ./configure seguido das respostas (5,n,n,) onde 5 representa a utilizao da biblioteca Gstreamer para acesso aos dispositivos de vdeo captura, n se o sistema operacional estiver trabalhando no modo 64 bits, n novamente para no gerar informaes para debug e y se estiver trabalhando uma placa NVIDIA ou ATI . E finalmente para iniciar a compilao na integra, execute o comando make.

$ cd ARToolKit/ $ ./configure Select a video capture driver. 1: Video4Linux 2: Video4Linux+JPEG Decompression (EyeToy) 3: Digital Video Camcoder through IEEE 1394 (DV Format) 4: Digital Video Camera through IEEE 1394 (VGA NONCOMPRESSED Image Format) 5: GStreamer Media Framework Enter : 2 Color conversion should use x86 assembly (choose 'n' for 64bit systems)? Enter : n Do you want to create debug symbols? (y or n) Enter : n Build gsub libraries with texture rectangle support? (y or n) GL_NV_texture_rectangle is supported on most NVidia graphics cards and on ATi Radeon and better graphics cards Enter : y $ make *** Se estiver utilizando a API-V4L1, Digite o valor numrio 1 na seleo do driver de captura.

ARTOOLKIT
Instalao

$ cd bin $ export ARTOOLKIT_CONFIG="v4l2src device=/dev/video0 use-fixedfps=false ! ffmpegcolorspace ! capsfilter caps=video/x-rawrgb,bpp=24,width=960,height=720 ! identity name=artoolkit ! fakesink" *** Se estiver utilizando a API-V4L1, defina a varivel ambiental ARTOOLKIT_CONFIG com os parmetros abaixo: $ export ARTOOLKIT_CONFIG="-dev=/dev/video0 -palette=YUV420P -width=640 -height=480" $ ./videoTest

ARTOOLKIT
Calibrao da Webcam.

Imprimir calib_cpara.pdf e calib_dist.pdf na escala onde preferencialmente as linhas fiquem separadas com uma distncia exata de 40 mm. A calibrao do dispositivo de captura obtm-se com a extrao do ponto central, distores da lente e a distncia focal da cmera. Os programas utilizados so calib_dist e logo a seguir o calib_cparam.

$ ./calib_dist "v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-rawrgb,bpp=24,width=960,height=720 ! identity name=artoolkit ! Fakesink"

ARTOOLKIT
Calibrao da Webcam.

Paracontinuarmos,executeoprogramaeinformeascoordenadas do centro e o fator de distoro disponibilizado pelo aplicativo calib_dist.


-------------Center X: 425,000000 Y: 323,000000 Dist Factor: 9,500000 Size Adjust: 1,010218 -------------Checking fit on image 1 of 5.

$ ./calib_cparam Input center coordinates: X = 425 : Y = 323 Input distortion ratio: F = 9.500000

ARTOOLKIT
Teste e exemplos

$ ./simpleTest

$ ./exview

ARTOOLKIT
Calibrao da Webcam.

- Inicializao: Inicializa o dispositivo de captura, carrega em memria o modelo impresso e carrega o parmetros de calibrao da cmera. arVideoOpen(), arLoadPatt e arParamLoad() - Captura um quadro. arVideoGetImage() - Detecta as marcas do padro na imagem. arDetectMarker() - Calcula a transformao relativa. arGetTransMat() - Desenha o objeto virtual sob o padro detectado. Recursos openGL - Finaliza o dispositivo de captura. arVideoCapStop(); arVideoClose(); argCleanup();

ARTOOLKIT
Padres

$ ./mk_patt

Motor de renderizao
Qual utilizar

OMotorderenderizaosobibliotecase/oucomponentesquefacilitam a projeo em 3 dimenses de objetos e/ou cenrios criados e editores tridimensionais(Blenderporexemplo). AescolhadoEngine(motor)deRenderizaodeterminarosucessoou fracasso do projeto. Pois no que tange viso computacional, todo processamentodeveserbemdistribudoeprojetado.Poisprojetarobjetos em 3 dimenses na web, em games apresentaes, requer esforo computacional distintos. Por exemplo um motor de renderizao para games pode apresentar uma qualidade de inferior uma vez existindo outras tarefas matemticas a cumprir (efeitos abstratos como fogo e explosesresultantesdetiros).

Motor de renderizao
IrrAR

Motor de renderizao multiplataforma, performtico e de cdigo aberto. Ideal para criao de jogos pois baseado na Irrlicht que alm de suportar arquivos do quake, suportaoutrosdiversosformatos. Este motor permite o processamento de efeitos abstratos como neve, fumaa, fogo, superfcies aqutica e outros. Logo chegaremos a concluso que este motor utiliza grande parte do seu processamento comefeitos,assimtalveznoproporcionando umarenderizaotorealistaemtemporeal.

Motor de renderizao
FLARToolKit

umportedocdigofontedabiblioteca ARToolKitparaoActionScript3.0,feitopelo japonsSaqooshasoblicenalivre.Oprojeto carrega todas as funcionalidade do seu propulsor, detecta o movimento, reconhece uma determinada marca e projeta um cenrio/objeto 3D. Utiliza a renderizao baseada no Papervision3D e movimenta os objetos de acordo com os movimentos reais. Este motor mo apresentar altssima qualidade, pois foi projetado para executar no ambiente WEB (browse), esta tecnologia deve estar preparado para qualquer tipo de equipamentoevelocidadedeconexo.

Motor de renderizao
FLARToolKit

Motor de renderizao
AndAR

umprojetoquetenhoorgulhodepropagar,poisfoi devidoaminhasolicitaoe/oucontatocomoautor que derivou abertura do cdigo fonte. AndAR um projeto tambm baseado na biblioteca ARToolKit. Mesmocriadoparaequipamentosportteis,apresenta um excelente desempenho. O autor projetou com excelncia a abstrao da biblioteca com JNI, assim performandomuitobemosoftware.

Motor de renderizao
osgART

A biblioteca OSGART facilita e muito o desenvolvimento de aplicaes de Realidade Aumentada, ela agrupa as funes de deteco e rastreamento de marcadoresdoARToolKitjuntoaosrecursosdeconstruodemodelosvirtuaisda bibliotecaOpenSceneGraph.AOSGARTapresentaaltaqualidadenarenderizao dosobjetos virtuais suporte a reproduo de vdeo, tcnicas de renderizao de sombras.Umboaescolhaparaaplicaesvoltadaparaapresentaes.

openSceneGraph
Instalao e configurao

http://download.gna.org/underware/sources/openscenegraph-1.2.0.tar.gz $ $ $ $ $ $ $ $ $ $ $ $ $ tar -zxvf ../openscenegraph-1.2.0.tar.gz cd openscenegraph-1.2.0/ cd OpenThreads make sudo make install cd .. cd Producer make sudo make install cd .. cd OpenSceneGraph make COMPILE_EXAMPLES=yes sudo make install

osgART
Instalao e configurao

http://www.artoolworks.com/dist/osgart/release/1.0/osgART-1.0.tar.bz2 $ tar xfzj osgART-x.x.tar.bz2 $ cd osgART/bin $ make -f GNUmakefile ARTOOLKIT_PATH="[path da biblioteca ARToolKit]"

osgART
Instalao e configurao

http://www.osgart.org/images/f/fa/Osgart_2.0_rc3.zip $ $ $ $ $ unzip Osgart_2.0_rc3.zip cd osgART_2.0_RC3/ mkdir build/ cd build/ cmake .. -DCMAKE_CXX_FLAGS=-fpermissive

osgART
Instalao e configurao http://tinyurl.com/osgart

osgART
Testando os exemplos

Agora finalmente veremos o resultado detodoestetrabalho,entrenapastabindo projetorecmcompiladoosgARTeexecute o programa osgARTsimpleNPR com os parmetros[Seuarquivo.ive]tamanhoe posio (X Y Z). Lembre que a varivel ambiental ARTOOLKIT_CONFIG deve existir com as devidas configuraes conformemencionadoanteriormente. Aseguirumexemplodeexecuonalinhadecomando.Bomacreditoqueestetexto facilitaroaprendizadodemuitosquedesejamtrabalharcomrealidadeaumentada.

$ ./osgart_example models/cubo-neti.ive 80 0 0 5

osgART
Testando os exemplos

https://github.com/cedricpinson/osgexport

osgART
Testando os exemplos

Crticas e sugestes
cabelo@opensuse.org

Obrigado!

Colaboraratraiamigos, competiratraiinimigos...

http://cabelovivaolinux.wordpress.com

You might also like