HARDWIRE : um módulo em hardware para a visualização em wireframe de objetos tridimensionais

Documentos relacionados
Porte do Engine de Física ODE para a Plataforma Pocket PC

FPGA & VHDL. Tutorial Aula 1. Computação Digital

Dispositivos de Lógica Programável

FPGA & VHDL. Tutorial

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

Computação Gráfica e Áreas Correlatas

FLIGHTINSTRUCTOR, UM INSTRUTOR DE VÔO VIRTUAL PARA O MICROSOFT FLIGHT SIMULATOR X Proposta de Trabalho de Graduação

PLANO DE ATIVIDADES DO ESTÁGIO DE DOCÊNCIA

Introdução à Computação

Aula 11. Dispositivos Lógicos Programáveis. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Revisão: Projeto de Processadores em VHDL

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

Circuitos Digitais Representação Numérica. Sistema Digital. Circuitos Digitais. Conversão A/D e D/A. Circuitos Digitais

Aula Fev-07 Arquitectura de Computadores 2006/07

Realidade Aumentada aplicada ao ensino da simetria molecular

Instituto Federal Sul-rio-grandense. Placa universal para controle de máquinas de lavar roupa Plano de Projeto - versão 1.0

Ciclo de Seminários Técnicos

ELD - Eletrônica Digital Aula 11 Introdução à Lógica Programável. Prof. Antonio Heronaldo de Sousa

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti

UMA HIERARQUIA DE MEMÓRIA PARA UM MODELO RTL DO PROCESSADOR RISC-V SINTETISÁVEL EM FPGA

Primeiro Projeto de PG: Lista de Temas Selecionados

ESTUDO E IMPLEMENTAÇÃO DE METÁFORAS DE INTERAÇÃO 3D COM FOCO EM NAVEGAÇÃO EM AMBIENTE CAVE

COMPUTAÇÃO GRÁFICA. Ana Paula Mandelli

Guia do CFTV Sistemas de CFTV, IP, Seguranà a Eletrà nica, Conectividade, Informaà ões, Fórum e Tecnologia.

UM MÉTODO PARA COMPARAÇÃO ENTRE HARDWARE E SOFTWARE DAS FUNÇÕES CRC-16 E FDCT SCHNEIDER, R. F. ¹, RAMOS, F. L. L.¹

PROJETO DE UM MODELO DE UM CONVERSOR ANALÓGICO DIGITAL PARA SOC S

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Microprocessadores vs Microcontroladores

Departamento de Matemática

Universidade Federal de Pernambuco

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

RECONHECIMENTO FACIAL UTILIZANDO EIGENFACES

MouseCam: aplicação de controle do mouse via câmera

UNIVERSIDADE FEDERAL DE PERNAMBUCO REALIDADE AUMENTADA COM MARCADORES EM GPU MESTRADO EM CIÊNCIAS DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS. SEL Sistemas Digitais Prof. Homero Schiabel

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. ramal 5981

Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.

Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Disciplina de Organização de Computadores Digitais

COORDENADORIA DE EXTENSÃO PROCESSO SELETIVO PARA CURSOS DE EXTENSÃO FORMAÇÃO INICIAL E CONTINUADA (FIC)

ELETRÔNICA DIGITAL I

ANÁLISE PARA INCLUSÃO DO FLUXO DE

Disciplina de. Organização de Computadores Digitais

Disciplina de. Organização de Computadores Digitais

Disciplina: Desenho Assistido por Computador - AutoCAD

Comparação entre Arduino, FPGA, ASIC e SoC

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

Arquitetura de Sistemas Digitais

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Reconstrução e Síntese de Cenários Tridimensionais a partir de Imagens Estereoscópicas

Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real

GeFighters: Using Gestures on a Fighting Game

Programa Analítico de Disciplina SIN252 Arquitetura de Computadores

Análise de técnicas de limiarização adaptativa para realidade aumentada embarcada

Plano de Ensino de Disciplina Ciência da Computação 2º / 2016

7. Resultados Experimentais

Projeto com Linguagens de Descrição de Hardware

Implementação de uma arquitetura microcontrolada para auxiliar na triagem de coarctação da aorta em neonatos PROPOSTA DE TRABALHO DE GRADUAÇÃO

Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC

DSP Builder - Altera. MO801 - Tópicos em Arquitetura e Hardware. Michele Tamberlini 05/2006

Computação Embarcada - Projeto

Professor Emiliano S. Monteiro

Introdução ao Processamento Gráfico

Colaboração em Ambientes Educacionais com Realidade Aumentada

Proposta de Dissertação de Mestrado Modelagem Computacional, UFJF

UnoTech Soluções em Histórico da Revisão Data Versão Descrição Autor 27/05/ 1.0 Construção do Documento Carlos GG Flor Página 2

Realidade Virtual. Realidade Virtual - Introdução. 4 Conceitos Iniciais. 4 Aplicações 4Equipamentos para RV. 4Fundamentos de Computação Gráfica

Tipos para uma Linguagem de Transformação

UNIVERSIDADE F EDERAL DE PERNAMBUCO DESENVOLVIMENTO DE UM SISTEMA DE AQUISIÇÃO PARA RESSONÂNCIA MAGNÉTICA NUCLEAR BASEADO EM FPGA

Desenvolvimento de Modelo HDL otimizado no tempo para Controlador de Acesso Direto à Memória (DMA)

Sistemas Digitais INE 5406

Aula 1: Apresentação do Curso

IMPLEMENTAÇÃO E OTIMIZAÇÃO DE UMA BOUNDING INTERVAL HIERARCHY PARA UM RAYTRACER DE TEMPO REAL USANDO CUDA

Análise. Orientada a Objetos Modelo Funcional, Modelo Estrutural e Modelo Comportamental. Linguagens: Java, C++, etc.

Aula 1: Apresentação do Curso

2

Computação Gráfica Introdução

DADOS DO COMPONENTE CURRICULAR

ELETRÔNICA DIGITAL I

6 Conclusão Contribuições da Dissertação

Engenharia de Computação Disciplina: Projeto de Interação Professor: Luis Retondaro Turma: 1 Período

Impressão do Formulário

iar 2.0: API o,mizada para aplicações de entretenimento em realidade aumentada na plataforma ios

Computação Gráfica Abel J. P. Gomes. Engenharia Informática (5385) - 2º ano, 2º semestre Matemática (5828) - 2º ano, 2º semestre

RELATÓRIO FINAL PIBIC/ RECONHECIMENTO E GENERALIZAÇÃO DE IMAGENS EM TEMPO REAL EM SISTEMAS DE REALIDADE AUMENTADA

Definição IHC. Disciplina ou campo de estudo interessada no design, implementação e avaliação de sistemas computacionais interativos para uso humano.

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS

SOP Sistemas Operacionais Módulo 02: Motivação / Conceitos Básicos / Classificação

Curso online de Aplicações. Híbridas. Plano de Estudo

Arquitetura de Computadores

Hardware Reconfigurável

Opções de Design para Circuitos Integrados CMOS

Projetos de Circuitos Digitais em VHDL e FPGA

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Um estudo sobre consumo energético na indexação de conteúdo visual com síntese em alto nível usando hardware reconfigurável

Centro de Informática Ciência da Computação Proposta de trabalho de Graduação. : Ana Cecília Martins Barbosa : Veronica Teichrieb

Transcrição:

Universidade Federal de Pernambuco Centro de Informática Departamento de Sistemas de Computação Graduação em Ciência da Computação : um módulo em hardware para a visualização em wireframe de Proposta de Trabalho de Graduação Aluno: Orientadora: Co-orientadora: João Marcelo Xavier Natário Teixeira (jmxnt@cin.ufpe.br) Judith Kelner (jk@cin.ufpe.br) Veronica Teichrieb (vt@cin.ufpe.br) Recife, 3 de julho de 2006

Contexto FPGAs Desde seu surgimento, há cerca de 20 anos atrás, os FPGAs (Field-Programmable Gate Arrays) têm apresentado uma curva de crescimento bastante elevada, no que diz respeito a hardwares reprogramáveis [1]. Com o passar do tempo, esse tipo de hardware sofreu melhorias em velocidade (freqüência de operação), em tamanho (número de elementos lógicos e outros componentes embutidos) e em funcionalidades. Os FPGAs estão ganhando espaço e vem sendo utilizados também na área de renderização de gráficos tridimensionais, o que se justifica devido a sua capacidade de processar algoritmos complexos em hardware reconfigurável dinamicamente e de baixo custo. Realidade Aumentada Grupos de pesquisa em Realidade Aumentada (RA) [2] atuam fortemente no desenvolvimento de aplicações que combinam ambos, aspectos do mundo virtual e do real. Uma das dificuldades impostas a essas aplicações é a necessidade de adquirir informações do ambiente físico (real), processá-las e retornar para o usuário alguma informação associada, tudo isso em tempo real. Geralmente, a aquisição das características do mundo é realizada através de câmeras e outros tipos de sensores, que repassam a imagem capturada a alguma biblioteca de reconhecimento de imagens (ou bibliotecas de reconhecimento de padrões), como o ARToolkit [3], o MXRToolkit [4] e o OpenCV [5]. Alguns exemplos típicos de marcadores são regiões com bordas retangulares, geralmente em preto, com uma figura central. A borda indica para a biblioteca que ali existe um marcador, tornando possível através de cálculos determinar sua posição e orientação no espaço, e a figura interna é usada para diferenciá-lo. Em algumas aplicações, ocorre uma sobreposição das imagens do mundo real por elementos virtuais inseridos artificialmente. O tempo desde a captura até o fim do processamento é bastante crítico, de forma que o usuário não perceba atrasos ou que a execução da aplicação seja comprometida. Para que esse requisito seja alcançado, faz-se necessário hardware dedicado para o processamento das informações do ambiente. Uma vez que grande parte das bibliotecas de reconhecimento de padrões, assim como outras mais genéricas de RA são implementadas exclusivamente em software, esse "tempo mínimo" só é atingido com o uso de máquinas de última geração, de custo bastante elevado. A implementação em software muitas vezes é considerada ineficiente pelo fato do código implementado, por mais otimizado que esteja, ser executado em conjunto com o sistema operacional ou outras aplicações. A principal vantagem do hardware dedicado, entre outras, é a exclusividade de processamento, assim como a possibilidade de duplicação de recursos, responsável pelo paralelismo real (em um mesmo FPGA pode haver vários blocos responsáveis pelo processamento simultâneo dos dados). Essa necessidade de hardware dedicado para processamento de aplicações em tempo real pode ser comprovada com o uso de placas de vídeo com alto poder de processamento (como as 2

Contexto ARCam encontradas no mercado atualmente). Sem esse hardware adicional, tornar-se-ia inviável a execução de tais aplicações. Baseado na idéia de melhoria de desempenho devido à utilização de hardware dedicado, o Grupo de Pesquisa em Realidade Virtual e Multimídia do Centro de Informática começou a desenvolver o projeto ARCam. Tal projeto consiste na utilização de um FPGA de porte médio com capacidade equivalente a 60 mil elementos lógicos para a criação de um sistema de RA "standalone". O FPGA estaria ligado a uma câmera para efetuar a captura das imagens do ambiente, assim como a um monitor, para mostrar o resultado do processamento, ou seja, a imagem "misturada" (virtual + real). Esse projeto pode ser dividido em dois grandes módulos. O primeiro funcionaria como as tradicionais bibliotecas de detecção de padrões, responsável por capturar elementos conhecidos do ambiente, inferindo informações sobre localização e outras características relacionadas aos mesmos. Já o segundo receberia, dentre outras, informações sobre o posicionamento e orientação dos objetos (marcadores) detectados e seria responsável por renderizá-los junto à imagem real adquirida. Este trabalho de graduação objetiva a implementação inicial deste segundo módulo, que será futuramente acoplado ao primeiro. O Hardwire representa o conjunto de elementos responsáveis pela etapa de renderização do projeto ARCam, conforme mencionado anteriormente. Esse módulo será implementado em VHDL (Very High Speed Integrated Circuits Hardware Description Language) [6], uma linguagem de descrição de hardware comumente usada na programação de FPGAs e circuitos integrados de aplicação específica. Através dessa linguagem é possível determinar o comportamento macro de determinado circuito até o estado em que se encontram suas portas lógicas a cada ciclo de clock. Além das coordenadas dos vértices do objeto tridimensional, assim como uma lista contendo as arestas que o formam, o circuito implementado deve receber, dentre outros parâmetros, as coordenadas de posição da câmera virtual e os vetores de orientação da mesma. De posse desses valores, o módulo realizará transformações de troca de espaço de visualização (coordenadas de mundo para coordenadas de vista), projeção dos objetos na tela e desenho de suas arestas usando algoritmos otimizados para implementação em hardware, como o descrito em [7], por exemplo. Com o objetivo de acelerar o desenvolvimento, serão utilizados valores em um formato de ponto-fixo, previamente escolhido. O objetivo deste Trabalho de Graduação é produzir um módulo inteiramente sintetizável e ao final do desenvolvimento utilizá-lo em uma aplicação e verificar o seu funcionamento na 3

Contexto prática, o que não ocorre em outros trabalhos relacionados, como em [8], pois apenas transformações tridimensionais são implementadas e validadas via simulação. A simplicidade é favorecida pela regularidade. [9] (um dos quatro princípios básicos do projeto de hardware) 4

Objetivos Objetivos Gerais Esse Trabalho de Graduação objetiva estudar métodos e técnicas de implementação de algoritmos de renderização gráfica em hardware, definir uma arquitetura capaz de exercer tal tarefa, implementar o módulo de renderização usando uma linguagem de descrição de hardware (VHDL) e provar seu funcionamento na prática com uma aplicação de RA asociada. Além disso, o Trabalho de Graduação proposto neste documento possui como objetivo contribuir com o desenvolvimento do projeto ARCam. Finalmente, deseja-se com isso impulsionar novos trabalhos na área de desenvolvimento de hardware. Objetivos Específicos Espera-se, ao término do desenvolvimento deste Trabalho de Graduação, um módulo completamente implementado em hardware que realiza as seguintes funções: 1) Carregar como entrada uma lista genérica de vértices e arestas que irão compor os objetos virtuais; 2) Renderizar os em wireframe; 3) Sobrepor a imagem do ambiente real capturada com os elementos virtuais gerados; 4) Utilizar algoritmos de processamento de imagem simples e otimizados para implementação em hardware, de forma a diminuir os requisitos de hardware necessários. 5

Cronograma Tabela Lista de Atividades Abril Maio Junho Julho Agosto Setembro Pesquisa Bibliográfica Definição do Escopo e Cronograma Implementação do Protótipo Inicial em Java Implementação em VHDL Confecção da Proposta do TG Escrita do Documento Revisão do Documento Confecção da Apresentação Tabela 1. Cronograma do Trabalho de Graduação. As atividades relacionadas a este Trabalho de Graduação tiveram início em Abril de 2006. Descrição das Atividades Segue abaixo uma breve descrição das atividades listadas no cronograma: Pesquisa Bibliográfica: essa atividade compreende a busca por trabalhos na área de implementação de algoritmos relacionados ao processamento de imagens em hardware, assim como novas idéias que contribuam com o desenvolvimento do projeto. Definição do Escopo e Cronograma: essa atividade destina-se à definição do escopo do trabalho, levando em consideração o tempo disponível e o que se deseja obter como resultado final. Implementação do Protótipo Inicial em Java: essa atividade é responsável por fornecer um suporte para a validação do módulo em VHDL. A maior parte das funcionalidades almejadas no FPGA será implementada primeiramente usando a linguagem Java, de forma que se possa escolher a melhor forma de organização do fluxo de processamento dos algoritmos e definir uma arquitetura eficiente para o projeto. 6

Cronograma Implementação em VHDL: essa atividade compreende a implementação e verificação funcional dos componentes que fazem parte do módulo Hardwire. Nessa etapa, todos os algoritmos anteriormente implementados em software necessários ao módulo em hardware serão traduzidos para a linguagem de descrição de hardware VHDL. Confecção da Proposta do TG: essa atividade compreende a redação do documento que contém uma breve descrição dos tópicos abordados pelo projeto e o que se deseja alcançar ao término do período. Escrita do Documento: essa atividade engloba a criação de um dos artefatos mais importantes do trabalho: o relatório do Trabalho de Graduação. Nele estarão presentes todos os passos e dificuldades surgidas durante a implementação, bem como o material de pesquisa utilizado durante o trabalho. Revisão do Documento: essa atividade representa a etapa final da elaboração do relatório do trabalho, com correções e alterações sugeridas pelas orientadoras. Confecção da Apresentação: essa atividade, baseada no documento produzido na etapa anterior, consiste na elaboração da apresentação final, responsável por descrever o projeto e os resultados obtidos com esse trabalho. 7

Referências [1] Field-programmable gate array. URL: http://en.wikipedia.org/wiki/fpga. Visitado em julho, 2006. [2] Bimber, O., Raskar R. Spatial Augmented Reality. A K Peters, Ltd. 2005. [3] ARToolkit. Disponível em: Human Interface Technology Lab site. URL: http://www.hitl.washington.edu/artoolkit. Visitado em janeiro, 2006. [4] Bath, W., Paxman, J., UAV Localisation & Control Through Computer Vision, Australian Robotics & Automation Association, 2005. [5] Open Source Computer Vision Library. Disponível em: Intel Corporation site. URL: http://www.intel.com/technology/computing/opencv. Visitado em janeiro, 2006. [6] VHSIC Hardware Description Language. URL: http://en.wikipedia.org/wiki/vhdl. Visitado em julho, 2006. [7] Foley, J. D., van Dam, A., Feiner, S. K., Hughes, J. F. Computer Graphics: Principles and Practice. Second Edition in C. USA: Addison Wesley, 2005. [8] Mc Keon, D. Synthesizable VHDL Model of 3D Graphics Transformations, dezembro de 2005. [9] Patterson D. A., Hennessy J. L. Computer Organization and Design: The Hardware/Software Interface. Third Edition. Morgan Kaufmann. 2004. 8

Datas e Assinaturas 3 de julho de 2006 Orientadora Judith Kelner Co-orientadora Veronica Teichrieb Aluno João Marcelo Xavier Natário Teixeira 9