Marching Cubes Multiresolução

Documentos relacionados
EXTRAÇÃO DE SILHUETAS EM DADOS VOLUMÉTRICOS

Resumo. Computação Gráfica: Uma Proposta de Plano Pedagógico. Áreas Correlatas. Definição. Uma Visão Integrada da C.G.

Visualização Volumétrica: da Teoria às Aplicações

Aperfeiçoamentos na triangularização do Marching Cubes para geração de menos triângulos degenerados

DESENVOLVIMENTO DE UMA FERRAMENTA PARA RECONSTRUÇÃO TRIDIMENSIONAL DE IMAGENS DE SPECT CARDÍACO. BANDEIRA, Rafael de Leão¹, OLIVEIRA, Lucas Ferrari¹.

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2.

Métodos Numéricos para Geração de Malhas SME0250. Poligonização. Afonso Paiva ICMC-USP

3 Métodos de Extração de Malhas a partir de Volumes

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

COMPUTAÇÃO GRÁFICA COM WEBGL

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica

Lista de exercícios. 4) Defina o conceito de função de eficiência luminosa. (Victor)

2 Técnicas e Trabalhos Relacionados

A Evolução do Algoritmo Marching Cubes

Visualização Científica

Figura 1.1: Partição do espaço contendo a esfera S.

4 Marching Cubes 33: Qualidade da Malha Resultante

Departamento de Matemática

Investigação de novos critérios para inserção de pontos em métodos de simplificação de terreno através de refinamento

Um Algoritmo para a Visualização de um Terreno com Objetos

Interpolação de Curvas de Nível por Difusão de Calor

Adaptative and Quality Quadrilateral/Hexahedral Meshing from Volumetric Data

Computação Gráfica - 11

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

Processamento de Malhas Poligonais

Computação Gráfica. Visão Geral, conceitos básicos e terminologia Professora Sheila Cáceres

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas


3 Fundamentos. 3.1 Pipeline de renderização em OpenGL

Técnicas de Otimização em Visualização Volumétrica

Capítulo 3. Descrição e visualização do modelo 25

Visualização de terrenos em GPU

Computação Gráfica. Representação e Modelagem

Introdução ao Processamento e. Síntese de Imagens. Introdução ao Processamento e. Síntese de Imagens: Introdução. Objetivos da disciplina

Visualização de terrenos em GPU

Shading (sombreamento) & Smooth Shading

4 Extração direta das PELs

João Manuel R. S. Tavares Jorge Gomes Barbosa. url:

João Manuel R. S. Tavares. João Manuel R. S. Tavares Jorge Gomes Barbosa. url:

Computação Gráfica II

4 Resultados. Tabela 4.1: Funções implícitas de teste.

CIV2802 Sistemas Gráficos para Engenharia

Shading (sombreamento) & Smooth Shading

QuadLOD: Uma Estrutura para a Visualização Interativa de Terrenos

4 Detecção de Silhueta

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Banco de dados Brasil

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

Implementação de algoritmos para consultas de segmentos em janelas

INF 2063 Tópicos em CG III

Fundamentos e Conceitos Básicos

Um Sistema de Animação Baseado em Movimento Capturado

Operações Booleanas na Modelagem por Pontos

Diagrama de Voronoi. INF2604 Geometria Computacional. Waldemar Celes. Departamento de Informática, PUC-Rio.

Modelação de Sólidos. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

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

Computação e Imagens: PI, CG e Visualização. Computação Visual

2 Conceitos Básicos e Trabalhos Relacionados

Visualização Científica Algoritmos de Visualização usando o VTK

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

Reconstrução a partir de Seções Planares

INTERPOLAÇÃO LINEAR E BILINEAR: APLICAÇÃO EM TRANSFORMAÇÕES GEOMÉTRICAS DE IMAGEM INTRODUÇÃO

Visualização Científica Algoritmos de Visualização usando o VTK. ~tavares/ensino/visci/

Figura 29 - Simulação de dois fluidos imiscíveis utilizando a biblioteca de Nakamura (2007)

Extração de características utilizando filtros de Gabor aplicado a identificação de defeitos no couro bovino

Computação Gráfica. Computação Gráfica. Visão Geral. Sistema Gráfico. Introdução à Computação Gráfica e areas relacionadas

Proposta de Curso LNCC

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

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 7. Iluminação

Computação Gráfica II

Mapeamento de Textura

Campus Sede Universidade Tecnológica Federal do Paraná - UTFPR Av. Sete de Setembro,3165 Rebouças CEP Curitiba PR - Brasil

Modelagem Geométrica

Geração Procedural de Terrenos em GPU

Resumo. Ray Tracing. Introdução. Ray Casting Básico. Idéia

Objetos Gráficos Espaciais

4 Impostores com Relevo

Exemplo de aplicação

Introdução ao Processamento Gráfico

Modelação de Formas Geométricas

X Colóquio Brasileiro de Ciências Geodésica. Curitiba-Pr, 06-08/Junho/2018 SNAKES: FUNDAMENTOS E APLICAÇÕES NA EXTRAÇÃO DE FEIÇÕES LINEARES

4 Resultados. Figura 16 Modelagem da calçada da praia de Copacabana.

Visualização Volumétrica com Otimizações de Ray Casting e Detecção de Bordas

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

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

FILTROS ESPACIAIS PASSA-BAIXA

A terceira dimensão. A terceira dimensão. Modelagem tridimensional. A terceira dimensão Wilson de Pádua Paula Filho

Poliedros. INF2604 Geometria Computacional. Waldemar Celes. Departamento de Informática, PUC-Rio. W.

Professor: Anselmo Montenegro Conteúdo (aula 7): - Noções de estruturas de dados topológicas. Instituto de Computação - UFF

Projeção de Células baseada em GPU para Visualização Interativa de Volumes

Computação Gráfica Introdução

Poligonização de Superfícies Implícitas usando Técnicas Intervalares

UNIVERSIDADE ESTADUAL PAULISTA Campus de Sorocaba. Transformações Geométricas

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

Apresentação Parcial 2: The Occlusion Spectrum for Volume Classification and Visualization

Modelo. Representação de Objetos Tridimensionais. Malhas Poligonais. Modelagem Geométrica. Modelos Geométricos

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE PERNAMBUCO Centro de Informática Departamento de Sistemas de Computação

1.1(a): Malha de triângulos aproximando a forma de um golfinho. 1.1(b): Barco modelado com superfícies paramétricas (neste caso, NURBS).

SCE-201 Computação Gráfica. Representação de Objetos Tridimensionais Modelos Poligonais

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

Transcrição:

Marching Cubes Multiresolução Sandro Santos Andrade Thomas de Araujo Buck UFBa - IM - DCC {sandrosa, thomas}@dcc.ufba.br http://www.dcc.ufba.br/~{sandrosa, thomas} Lista das Figuras 1 Cubo coletando dados em dois slices vizinhos............. 3 2 256 casos de triangulação reduzidos para 15.............. 4 3 triângulos gerados com cubos em dois tamanhos (2 à esquerda e 3 à direita).................................. 5 4 Malhas poligonais obtidas com cubos de tamanhos 32, 16 e 8 (da esquerda para a direita). O número de triângulos gerados foi 296, 1196 e 6344 respectivamente....................... 6 5 Acima : Malhas poligonais obtidas com limiar igual a 100 e cubos de tamanhos 16, 12 e 8 (da esquerda para a direita). O número de triângulos gerados foi 2288, 4698 e 12798 respectivamente. Abaixo : Malhas poligonais obtidas com limiar igual a 50 e cubos de tamanhos 16, 12 e 8 (da esquerda para a direita). O número de triângulos gerados foi 1754, 3446 e 9286 respectivamente............. 7 Resumo Um dos métodos mais difundidos para extração de aproximações poligonais de iso-superfícies é o algoritmo Marching Cubes. Este algoritmo, entretanto, possui como desvantagem a alta quantidade de polígonos gerados. O algoritmo Marching Cubes Multiresolução aqui apresentado reduz consideravelmente este número através de um cubo de tamanho variável. A malha poligonal resultante oferece uma boa representação da superfície em estudo. Universidade Federal da Bahia - Instituto de Matemática - Departamento de Ciência da Computação - Av. Ademar de Barros s/n - Ondina - 40.170-110 Salvador BA

1 Introdução Desde a formalização, no início do século, das teorias matemáticas que possibilitam a reconstrução tomográfica de imagens e com a criação das primeiras máquinas de tomografia computadorizada em 1967, o uso de imagens como forma de aquisição de informações sobre o estado de saúde dos pacientes tem sido largamente utilizado. Atualmente, encontramos diversas modalidades de obtenção de dados na área médica, entre elas a ultrassonografia, tomografia computadorizada e a ressonância magnética. Além da indubitável qualidade das imagens geradas por tais equipamentos tem-se a vantagem de possuirem alto grau de conteúdo médico e de serem não invasivas, ou seja, não há penetração de instrumentos no corpo do paciente. Para um maior aproveitamento e interpretação desses dados utiliza-se visualizações por computador. Estas visualizações, como as realizadas com o algoritmo Ray Casting [4], geram imagens de ótima qualidade e de grande informação médica. No entanto, é um processo custoso e demorado devido à grande quantidade de dados gerados pelos exames. O objetivo aqui é reduzir estes dados sem comprometer o caráter médico envolvido. Como resultados dos exames realizados, os dados são armazenados sob a forma de volumes, ou seja, várias imagens 2D (slices) colocadas uma sobre a outra. Dessa forma, um volume de dados é uma grade 3D discreta e regular de vértices (voxels) que representam a densidade do volume em cada ponto. Entre os tipos de visualização de volumes destaca-se a visualização de isosuperfícies ou superfícies de contorno(superfície onde todos os seus pontos possuem a mesma densidade) [3]. Aproximações poligonais de iso-superfícies são largamente utilizadas devido a uma considerável redução dos dados e à existência de suporte em hardware para visualização rápida das imagens. Além disso, o uso de triângulos favorece o cálculo das normais (e, consequentemente, a avaliação da função de iluminação) pelo fato de todos os seus pontos serem coplanares. 2 Marching Cubes Um dos mais difundidos algoritmos para poligonalização de iso-superfícies a partir de volumes de dados é o Marching Cubes (MC) [7]. O algoritmo é baseado na localização da superfície a partir de um cubo que irá coletar em seus vértices os valores das densidades de dois slices vizinhos (figura 1). O algoritmo determina como a superfície intersecta o cubo e então o move (ou marcha ) para a próxima posição(linha, coluna ou slice). Para encontrar a intersecção com o cubo atribuimos um (1) aos vértices que coletaram um valor de densidade maior ou igual ao valor da iso-superfície e zero (0) àqueles que possuem densidade menor que o valor da iso-superfície. A superfície intersecta as arestas que possuem dois extremos diferentes (0 e 1). Dessa forma, temos 2 8 casos possíveis de atribuição de valores aos vértices. Porém,

Figura 1: Cubo coletando dados em dois slices vizinhos. através de rotações no cubo e simetrias em relação às atribuições de valores temos estes casos reduzidos para quinze, como ilustrados na figura 2. Para promover esta redução, um índice de oito bits(cada um contendo a atribuição 0 ou 1 de cada vértice) fornece o número da entrada em uma look-up table que indica qual o caso a ser tratado e as devidas rotações e simetrias a serem realizadas. Os valores de limiar são então interpolados linearmente ao longo das arestas intersectadas. 3 Trabalhos Correlatos Como apresentado na seção 2 o MC promove uma boa representação da superfície em estudo, porém dentre suas desvantagens destaca-se a alta quantidade de polígonos gerados e, consequentemente, um alto custo computacional. Em volumes médicos o número de triângulos pode chegar a 100.000. Além disso, o algoritmo não trata resultados ambígüos de triangulação, podendo assim ocasionar buracos e deformações na superfície. Para reduzir a quantidade de polígonos gerados, existem algoritmos [10] (executados após o MC) que realizam a eliminação de triângulos irrelevantes à superfície. Segundo seus autores, o número de triângulos pode ser reduzido em até 75%. Não é um processo muito inteligente pois estamos gastando UCP para gerar triângulos que serão posteriormente eliminados. Um outro algoritmo de poligonalização é o Splitting-Box [8]. O Splitting-Box promove uma redução considerável no número de polígonos, porém possui o incoveniente de gerar quadriláteros, além de triângulos.

Figura 2: 256 casos de triangulação reduzidos para 15. Uma variação do algoritmo MC é o Marching Tetrahedra (MT) [1]. No MT o cubo é subdividido em seis tetraedros, onde cada um é analisado separadamente. Como vantagem deste algoritmo tem-se a redução nos casos a serem analisados (de 15 para 3). Além disso é um algoritmo que não possui resultados ambígüos. Outros algoritmos como triangulação de Delaunay e o diagrama de Voronoi [2, 5] têm como vantagem o reduzido número de triângulos gerados, no entanto, são algoritmos mais complexos e necessitam de processamento de imagens. 4 O algoritmo proposto O objetivo básico do Marching Cubes Multiresolução (MCMR) é gerar malhas poligonais com uma quantidade reduzida de triângulos evitando assim o uso do algoritmo de dizimação [10]. A idéia é seguir a mesma abordagem do MC tradicional com a vantagem de termos um cubo de tamanho variável n. Ou seja, o cubo irá marchar de n-1 em n-1 linhas, colunas e níveis (slices). O algoritmo proposto recebe dois parâmetros: o limiar (valor da iso-superfície) e o tamanho n do cubo (quantos voxels estão contidos em uma aresta do cubo). Desta forma, aumentamos o deslocamento do cubo ao longo das linhas, colunas e níveis do volume, reduzindo assim o número de triângulos gerados. A figura 3 apresenta algumas iterações do algoritmo ilustrando o seu funciona-

mento. À esquerda (com o cubo de tamanho 2) temos oito iterações e, consequentemente, um número maior de triângulos. À direita (com o cubo de tamanho 3) temos uma iteração somente, desprezando o voxel entre os extremos das arestas e reduzindo assim o número de triângulos gerados. Figura 3: triângulos gerados com cubos em dois tamanhos (2 à esquerda e 3 à direita). O tratamento dos quinze casos é feito de modo semelhante ao algoritmo tradicional (cálculo do índice e utilização de look-up tables, interpolações etc). Com esta abordagem, temos um sistema multiresolução de geometrias, que não afeta consideravelmente a forma da iso-superfície. Contamos apenas com malhas mais detalhadas e malhas menos detalhadas. 5 Implementação Seguindo o paradigma de orientação à objetos, foram implementadas as seguintes classes: List: Utilizada para gerenciamento e armazenamento de vértices e triângulos. TriangMesh: Utilizada para gerenciamento de malhas de triângulos. Composta de duas listas: lista de vértices e lista de triângulos. Vis: Classe responsável pela visualização de malhas poligonais. FastVol8: Responsável pelo gerenciamento e armazenamento de volumes de dados. MarchingCubesMR: Responsável pela extração multiresolução da geometria de iso-superfícies. Promove métodos tais como: setar volume, setar tamanho do cubo e setar limiar.

Em particular, a classe List foi implementada com o uso de templates [11] (recurso da linguagem C++ que favorece a reusabilidade do código). Desta forma, temos listas de várias entidades (vértices, triângulos etc) instanciadas a partir da mesma classe List. Não há necessidade da implementacão de uma classe para cada tipo de lista, visto que as operações a serem realizadas (inclusões, alterações) são as mesmas, diferindo apenas no conteúdo de cada lista. As malhas de triângulos geradas pelo algoritmo são exportadas sob um formato adequado para posterior renderização. Para extração das superfícies usou-se o seguinte código C++ : #include <stdlib.h> #include <CG/MarchingCubesMR.h> #define ARG_PROGRAM 0 #define ARG_INPUT_DENFILE 1 #define ARG_INPUT_THRESHOLD 2 #define ARG_INPUT_CUBESIZE 3 #define ARG_OUTPUT_TRIANGFILE 4 #define TOTAL_ARGS 5 void main (int argc, char**argv) { MarchingCubesMR mc; mc.setdenfile (argv[arg_input_denfile]); mc.setthreshold (atoi(argv[arg_input_threshold])); mc.setcubesize (atoi(argv[arg_input_cubesize])); mc.maketriangmesh (); mc.save (argv[arg_output_triangfile]); } Posteriormente, para alguns programas interativos de renderização e modelagem geométrica, usar-se-á OpenGL ou sua implementação em software Mesa. 6 Resultados Para verificar os efeitos da multiresolução foi criado um volume artificial contendo um simples cubo. Após a extração de várias superfícies em resoluções diferentes, obtivemos os resultados mostrados na figura 4. Exames de tomografia computadorizada e ressonância magnética geralmente são muito sensíveis a ruídos, dificultando assim uma análise correta dos dados. Para amenizar esses ruídos utiliza-se algoritmos de filtragem [6, 9]. Dois filtros foram implementados: o filtro da média e o filtro da mediana. O conjunto de imagens na figura 5 ilustra as malhas de triângulos obtidas a partir de um volume de tomografia computadorizada após filtragem. A partir de

Figura4: Malhaspoligonaisobtidascomcubosdetamanhos32, 16e8(daesquerda para a direita). O número de triângulos gerados foi 296, 1196 e 6344 respectivamente. Tamanho do cubo Quantidade de triângulos Tempo 64 20 80 32 278 01 01 16 2228 06 20 8 12798 02 58 54 Tabela 1: Tempo de extração de malhas poligonais em diferentes resoluções. uma variação do limiar obtivemos o crânio e o rosto do paciente e a partir de uma variação no tamanho do cubo obtivemos diferentes resoluções da malha. 7 Análise dos Resultados Vimos anteriormente que o número de triângulos extraídos de volumes médicos pode facilmente chegar a 100.000. Fazendo uma análise a nível de renderização, suponha-se uma imagem 256x256. Ao admitir que cada triângulo ocupe um pixel teríamos um máximo de 65535 triângulos por imagem. Desta forma, temos que 100.000 é um número relativamente alto para a renderização de pequenas imagens (pois um pixel conteria mais de um triângulo). Eventualmente, o Marching Cubes Multiresolução seria uma alternativa para a solução deste problema. As tabelas 1 e 2 quantificam o custo computacional para a extração e renderização das superfícies da figura 5. Uma outra aplicação do MCMR é a produção de animações. Como observado na tabela 2 o tempo de renderização de malhas muito densas impede a construção de animações satisfatórias (mínimo de 30 quadros por segundo). Desta forma, segundo uma técnica conhecida como refinamento progressivo anima-se o objeto de

Figura 5: Acima : Malhas poligonais obtidas com limiar igual a 100 e cubos de tamanhos 16, 12 e 8 (da esquerda para a direita). O número de triângulos gerados foi 2288, 4698 e 12798 respectivamente. Abaixo : Malhas poligonais obtidas com limiar igual a 50 e cubos de tamanhos 16, 12 e 8 (da esquerda para a direita). O número de triângulos gerados foi 1754, 3446 e 9286 respectivamente. interesse em malhas menos densas e, escolhida a posição para obter mais detalhes, interrompe-se a animação e inicia-se o refinamento, renderizando as malhas mais densas. Teríamos então uma hierarquia de malhas poligonais. Como desvantagem, tem-se que o MCMR continua sendo um algoritmo com resultados ambígüos. Para o futuro, implementar-se-á o Marching Tetrahedra Multiresolução, eliminando assim o problema da ambigüidade. Foi notado ainda que o MCMR despreza todos os voxels contidos nas arestas (a menos dos extremos) do cubo durante a análise dos casos. Realizar-se-á testes para estudar a alternativa de encolher o volume ao invés de aumentarmos o tamanho do cubo. 8 Conclusões Devido à necessidade médica de resultados em tempo real, algoritmos de poligonalização de superfícies implícitas estão sendo cada vez mais utilizados, pois o

Tamanho do cubo Quantidade de triângulos Tempo 64 20 61 32 278 91 16 2228 03 60 8 12798 01 05 27 Tabela 2: Tempo de renderização das malhas citadas na tabela 1. suporte em hardware existente promove visualizações satisfatórias a nível de tempo e qualidade. O alto custo computacional e a grande quantidade de dados gerados pelos exames médicos foram os principais fatores de motivação à construção do MCMR. Nesta contribuição foram discutidos a idéia, implementação e resultados do algoritmo proposto. Também foram analisados vantagens, desvantagens e trabalhos futuros, ratificando assim a crescente importância da computação visual na medicina. Agradecimentos Os autores gostariam de agradecer ao CNPq e à PRPPG/UFBa pela concessão de bolsas de Recém-Doutor e Kit-Doutor, sem as quais este trabalho não teria sido possível e aos demais membros do GICoV (Grupo de Interesse em Computaç~ao Visual): Eduardo Prates de Oliveira, Fábio André Silva Reis, Maurício de Azevedo Gomes e Mitre Costa Dourado. Bibliografia [1] Bernardo Piquet Carneiro, Cláudio T. Silva e Arie E. Kaufman. Tetra-cubes: An algorithm to generate 3d isosurfaces based upon tetrahedra. Anais do IX SIBGRAPI, pages 205 210, October 1996. [2] Luiz Henrique de Figueiredo e Paulo César Pinto Carvalho. Introdução à Geometria Computacional. Instituto de Matemática Pura e Aplicada (IMPA), Rio de Janeiro RJ, Maio 1991. 18 o Colóquio Brasileiro de Matemática. [3] Jonas de Miranda Gomes e Luiz Velho. Implicit Objects in Computer Graphics. Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) Instituto de Matemática Pura e Aplicada (IMPA), Rio de Janeiro RJ, 1992. Monografias de Matemática N o 53. [4] Eduardo Prates de Oliveira. Implementação paralela de um algoritmo de visualização volumétrica. Technical report, Universidade Federal da Bahia, Instituto de Matemática, Departamento de Ciência da Computação, 1997.

[5] Pedro J. de Resende e Jorge Stolfi. Fundamentos de Geometria Computacional. IX Escola de Computação, Recife PE, 24 31 Julho 1994. [6] Nelson D. A. Mascarenhas e Flávio R. D. Velasco. Processamento Digital de Imagens. IV Escola Brasileiro Argentina de Informática (EBAI), Termas de Rio Hondo, Argentina, Janeiro 1989. [7] William E. Lorensen e Harvey E. Cline. Marching Cubes: a high resolution 3d surface construction algorithm. Computer Graphics, 21(4):163 169, July 1987. [8] Heinrich Müller e Michael Stark. Adaptive generation of surfaces in volume data. The Visual Computer, 9(4):182 199, January 1993. [9] Rafael C. Gonzalez e Paul Wintz. Digital Image Processing. Addison Wesley, 1987. [10] William J. Schroeder, Jonathan A. Zarge e William E. Lorensen. Decimation of triangle meshes. Computer Graphics, 26(2):65 70, July 1992. [11] Mark Allan Weiss. Algorithms, Data Structures and Problems Solving With C++. Addison-Wesley Publishing Company, July 1996. Part I, Chapter 3.