View
2.028
Download
0
Embed Size (px)
DESCRIPTION
Conceito básico, projetos de código aberto e produtos e serviços criado com a tecnologia de realidade aumentada.
Citation preview
Realidade Aumentada na Plataforma GNU/Linux Alessandro de Oliveira Faria (A.K.A.CABELO)
Perfil Técnico:Alessandro de Oliveira Faria (A.K.A. CABELO)
Diretor de pesquisasNETi TECNOLOGIA
● Atuando no mercado de software desde 1986 ● Embaixador e openSUSE Member; ● Membro da comunidade Viva O Linux desde 2003; ● Conselheiro Administrativo Linux do projeto Tecnociência;● Projetista/mantenedor mais de 90 RPMs no openSUSE Build Service;
Mantenedor e Desenvolvedor● droidFrete: Cálculo de frete na plataforma Android.● droidRastreamento: Rastreabilidade de objeto postados.● stampDate: Serviço de menu KDE para estampar data em imagens.● libHAIRCAPTURE: Biblioteca de video captura em Linux.● IPCMSG: Biblioteca de comunicação interprocessos.● easyPCSC: Biblioteca para utilização de cartões sma
Publicações:● Linux Magazine 8 Artigos● Internet 94 artigos técnicos (VOL/Tecnociência/Linha de Código).
RA define-se como a sobreposição no ambiente real de objetos virtuais e tridimensionais gerados por computador, por meio de algum dispositivo tecnológico de vídeo captura.
Isto somente é possível com técnicas de visão computacional junto a computação gráfica.
Realidade AumentadaDefinição
ConceitoO que é realidade Aumentada?
Realidade AumentadaDefinição
ConceitoO que é realidade Aumentada?
As principais qualidades da tecnologia realidade aumentada são: * Combinar elementos virtuais com o ambiente real; * Interatividade e processamento em tempo real; * Ser concebida em três dimensões.
Projetos e aplicabilidadeMídia no universo paralelo
Projetos e aplicabilidadeJogo levelhead
Projetos e aplicabilidadeJogo levelhead
Minhas pesquisa na NETi TECNOLOGIA sobre realidade aumentada iniciou em setembro de 2008, quando conheci o fantástico projeto Levelhead
http://selectparks.net/~julian/levelhead/ criado pelo designer e programador Julian Oliver
Projetos e aplicabilidadeJogo Eye Pet da Sony
Projetos e aplicabilidadeCartão virtual
Projetos e aplicabilidadeRossi
A utilização desta tecnologia proporcionou ao projeto da Rossi o título de maior caso de
Realidade Aumentada do mundo.
O usuário imprime um campo de jogo com medidas específicas e utiliza um dispositivo de vídeo captura para interpretar a imagem em tempo real. O usuário joga com pedaços de
papeis amaçado e/ou dobrado, fazendo um X com uma caneta ou colocando alguma peça na casa correspondente.
Projetos e aplicabilidadeJogo da velha
ARTOOLKITconceito
Existem diversas biblioteca/tecnologia de código aberto e proprietário para o uso da tecnologia RA (openCV, Bazar e outras). Entretanto, uma quantidade significativa de trabalhos de código aberto é baseado e/ou derivada da biblioteca ARToolKit, uma biblioteca escrita em C, baseada em software livre e desenvolvida pelo Dr. Hirokazu Kato. Atualmente utilizada por pesquisadores do Laboratório Tecnológico de Interface Humana, na Universidade de Washington, surgiu com o objetivo de facilitar a construção de aplicações de Realidade Aumentada.
ARTOOLKITInstalação
$ wget http://downloads.sourceforge.net/project/artoolkit/artoolkit/2.72.1/ARToolKit-2.72.1.tgz
$ tar -zxvf ARToolKit-2.72.1.tgz
Entre na pasta ARToolKit recém-criada e execute o comando ./configure seguido das respostas (5,n,n,) onde “5” representa a utilização da biblioteca Gstreamer para acesso aos dispositivos de vídeo captura, “n” se o sistema operacional estiver trabalhando no modo 64 bits, “n” novamente para não gerar informações para debug e “y” se estiver trabalhando uma placa NVIDIA ou ATI . E finalmente para iniciar a compilação na integra, execute o comando make.
$ cd ARToolKit/
$ ./configureSelect 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 FrameworkEnter : 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 cardsEnter : y
$ make
*** Se estiver utilizando a API-V4L1, Digite o valor numério 1 na seleção do driver de captura.
$ cd bin
$ export ARTOOLKIT_CONFIG="v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24,width=960,height=720 ! identity name=artoolkit ! fakesink"
*** Se estiver utilizando a API-V4L1, defina a variável ambiental ARTOOLKIT_CONFIG com os parâmetros abaixo:
$ export ARTOOLKIT_CONFIG="-dev=/dev/video0 -palette=YUV420P -width=640 -height=480"
$ ./videoTest
ARTOOLKITInstalação
ARTOOLKITCalibração da Webcam.
$ ./calib_dist "v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24,width=960,height=720 ! identity name=artoolkit ! Fakesink"
Imprimir calib_cpara.pdf e calib_dist.pdf na escala onde preferencialmente as linhas fiquem separadas com uma distância exata de 40 mm.
A calibração do dispositivo de captura obtêmse com a extração do ponto central, distorções da lente e a distância focal da câmera. Os programas utilizados são calib_dist e logo a seguir o calib_cparam.
ARTOOLKITCalibração da Webcam.
--------------Center X: 425,000000 Y: 323,000000Dist Factor: 9,500000Size Adjust: 1,010218--------------
Checking fit on image 1 of 5.
$ ./calib_cparamInput center coordinates: X = 425 : Y = 323Input distortion ratio: F = 9.500000
Para continuarmos, execute o programa e informe as coordenadas do centro e o fator de distorção disponibilizado pelo aplicativo calib_dist.
$ ./simpleTest
ARTOOLKITTeste e exemplos
$ ./exview
ARTOOLKITCalibração da Webcam.
- Inicialização: Inicializa o dispositivo de captura, carrega em memória o modelo impresso e carrega o parâmetros de calibração da câmera.arVideoOpen(), arLoadPatt e arParamLoad()
- Captura um quadro.arVideoGetImage()
- Detecta as marcas do padrão na imagem. arDetectMarker() - Calcula a transformação relativa.arGetTransMat()
- Desenha o objeto virtual sob o padrão detectado.Recursos openGL - Finaliza o dispositivo de captura. arVideoCapStop();arVideoClose();argCleanup();
$ ./mk_patt
ARTOOLKITPadrões
Motor de renderizaçãoQual utilizar
O Motor de renderização são bibliotecas e/ou componentes que facilitam a projeção em 3 dimensões de objetos e/ou cenários criados e editores tridimensionais (Blender por exemplo).
A escolha do Engine (motor) de Renderização determinará o sucesso ou fracasso do projeto. Pois no que tange visão computacional, todo processamento deve ser bem distribuído e projetado. Pois projetar objetos em 3 dimensões na web, em games apresentações, requer esforço computacional distintos. Por exemplo um motor de renderização para games pode apresentar uma qualidade de inferior uma vez existindo outras tarefas matemáticas a cumprir (efeitos abstratos como fogo e explosões resultantes de tiros).
Motor de renderizaçãoIrrAR
Motor de renderização multiplataforma, performático e de código aberto. Ideal para criação de jogos pois é baseado na Irrlicht que além de suportar arquivos do quake, suporta outros diversos formatos.
Este motor permite o processamento de efeitos abstratos como neve, fumaça, fogo, superfícies aquática e outros. Logo chegaremos a conclusão que este motor utiliza grande parte do seu processamento com efeitos, assim talvez não proporcionando uma renderização tão realista em tempo real.
Motor de renderizaçãoFLARToolKit
É um porte do código fonte da biblioteca ARToolKit para o Action Script 3.0, feito pelo japonês Saqoosha sob licença livre. O projeto carrega todas as funcionalidade do seu propulsor, detecta o movimento, reconhece uma determinada “marca” e projeta um cenário/objeto 3D. Utiliza a renderização baseada no Papervision3D e movimenta os objetos de acordo com os movimentos reais. Este motor mão apresentar altíssima qualidade, pois foi projetado para executar no ambiente WEB (browse), esta tecnologia deve estar preparado para qualquer tipo de equipamento e velocidade de conexão.
É um projeto que tenho orgulho de propagar, pois foi devido a minha solicitação e/ou contato com o autor que derivou abertura do código fonte. AndAR é um projeto também baseado na biblioteca ARToolKit. Mesmo criado para equipamentos portáteis, apresenta um excelente desempenho. O autor projetou com excelência a abstração da biblioteca com JNI, assim performando muito bem o software.
Motor de renderizaçãoAndAR
A biblioteca OSGART facilita e muito o desenvolvimento de aplicações de Realidade Aumentada, ela agrupa as funções de detecção e rastreamento de marcadores do ARToolKit junto aos recursos de construção de modelos virtuais da biblioteca OpenSceneGraph. A OSGART apresenta alta qualidade na renderização dos objetos virtuais suporte a reprodução de vídeo, técnicas de renderização de sombras. Um boa escolha para aplicações voltada para apresentações.
Motor de renderizaçãoosgART
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
openSceneGraphInstalação e configuração
osgARTInstalação e configuração
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]"
osgARTTestando os exemplos
$ ./osgart_example models/cubo-neti.ive 80 0 0 5
A seguir um exemplo de execução na linha de comando. Bom acredito que este texto facilitará o aprendizado de muitos que desejam trabalhar com realidade aumentada.
Agora finalmente veremos o resultado de todo este trabalho, entre na pasta bin do projeto recémcompilado osgART e execute o programa osgARTsimpleNPR com os parâmetros [Seu arquivo .ive] tamanho e posição (X Y Z). Lembre que a variável ambiental ARTOOLKIT_CONFIG deve existir com as devidas configurações conforme mencionado anteriormente.
Testando os exemplos
osgART
Críticas e sugestõ[email protected]
“Colaborar atrai amigos, competir atrai inimigos...”
Obrigado!
http://cabelovivaolinux.wordpress.com