exames virtuais utilizando um algoritmo de ray casting...

79
15/12/99 Exames Virtuais Utilizando um algoritmo de Ray Casting Acelerado Pedro Paulo de M. Oliveira Junior TeCGraf Depto de Informática PUC-Rio

Upload: buidan

Post on 24-Apr-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

15/12/99

Exames Virtuais Utilizandoum algoritmo de Ray Casting

AceleradoPedro Paulo de M. Oliveira Junior

TeCGraf

Depto de Informática

PUC-Rio

15/12/99

Introdução

• Área de pesquisa multi-disciplinar

• Uso de computação gráfica e de radiologia.

• Aplicações:– Neurologia

– Ortopedia

– Gastroenterologia

– Pneumologia

– Cirurgia

15/12/99

Introdução

• Radiologia Tradicional– Execução de exame

– Análise visual de imagem impressa em filme

– Confecção de laudo

15/12/99

Introdução

• Radiologia 2000– Execução de exame

– Processamento de imagens

– Calculo de volumes, áreas, dimensões

– Visualização 3D / Realidade Virtual

– Planejamento / Simulação - Cirurgia

– Emissão de laudo

15/12/99

Requisitos

• Equipamentos radiológicos tenhamcapacidade de conexão com PC

• Solução: DICOM 3.0

• Profissionais de interface entre a medicina ecomputação gráfica

• Solução: ???

15/12/99

Requisitos

• DICOM 3.0– Protocolo da ACR/NEMA para transmissão de

dados de equipamentos médicos

– Funciona sobre o protocolo TCP/IP -Compatibilidade, baixo custo de conexão.

– Comunicação via DICOM 3 , no entanto ficaaberta uma porta para se utilizar outrosprotocolos como o tradicional FTP

15/12/99

DICOM 3.0

15/12/99

DICOM 3.0

15/12/99

DICOM 3.0

15/12/99

Revisão de Trabalhos Atuais

15/12/99

Simulação de artroscopia

• Simulação de artroscopia para– Planejamento cirúrgico

– Treinamento & Educação

15/12/99

Modelagem anatomica efisiológica do sistema

cardiopulmonar• Modelagem do movimento da parede do

coração

15/12/99

Modelagem anatomica efisiológica do sistema

cardiopulmonar• Modelagem de interações mecânicas no

sistema pulmonar

15/12/99

Medidas de estruturasneuroanatômicas

Estrutura Região Segment. DoençasPlano temporal Córtex médio dislexia

esquizofreniaDorsal Lateral Córtex difícil autismo

esquizofreniaNúcleo Caudal Subcortical fácil TS , OCD

15/12/99

Simulador de cirurgias hepáticas

15/12/99

Realidade “aumentada” paraneurocirurgia

15/12/99

Implementações

15/12/99

Ressonância MagnéticaFuncional

Endoscopia Virtual

15/12/99

fMRI

Ressonância Magnética Funcional

15/12/99

Objetivo

• Mapeamento do cérebro

• Exame pré neurocirurgia.

• Marcar áreas que devem ser preservadas nocaso de se extirpar uma lesão.

15/12/99

Histórico

• Mapeamento do cérebro era feito através douso de PET e SPECT

• PET tem um custo elevado pois necessita deum gerador de radioisótopos

• Há necessidade de utilizar contraste.

• SPECT não pode produzir imagensdinâmicas por causa do tempo de lavagemdo contraste.

15/12/99

Principais aplicações

• Pré-cirúrgico

• Estudos Neurofisiológicos

• Neuropsiquiatria

15/12/99

Funcionamento

• Contraste natural efeito BOLD - Regiõesque são ativadas durante uma tarefarecebem mais O2 e consequentemente maisoxihemoglobina e menosdesoxihemoglobina. Isto faz com que osinal nesta região tenha uma pequenaelevação.

15/12/99

Funcionamento

• Ciclo de repouso e ciclo de ativação

• Tarefas de ativação:– Mover os dedos

– Pensar em palavras

– Estímulos visuais

– etc.

15/12/99

Funcionamento

• Estudo estatístico da série de imagensobtidas ao longo do tempo para identificaras áreas que foram ativadas.

15/12/99

Resultados Obtidos

• Foi desenvolvido um Software que édistribuido gratuitamente e que foi utilizadopara mais de 100 exames sendo que váriosforam pré neurocirurgia.

15/12/99

Exames Virtuais

15/12/99

Objetivos

Diagnóstico de patologias internasnão invasivo, com baixo custo de

tempo para o paciente.

Computador auxilia o médico aidentificar patologias e localizar a

posição das mesmas

15/12/99

Como funcionam os examesvirtuais

• Dados adquiridos via CT e MRI.

15/12/99

Como funcionam os examesvirtuais

• Dados segmentados.

15/12/99

Como funcionam os examesvirtuais

• Visualização volumétrica perspectiva– Introdução de camera virtual

15/12/99

Vantagens dos exames virtuais

• Não invasivo

• Sem uso de sedativos– (Especialmente em idosos e crianças):

– Depressão Respiratória (1/5000 óbitos)

• Menos desconforto para o paciente -principalmente na Colonoscopia.

• Sem risco anestésico como na broncoscopia

15/12/99

Vantagens dos Exames Virtuais

Substância/Dose

NomeComercial

T 1/2 Efeitos Colaterais Antagonistas/Obs

Morfina (10 mg) Morfina 5 hs Depressão RespiratóriaSonolênciaNausea

Nalorfina

Meperidina (100 mg)

Dolantina(Hoechst)Demerol(Winthrop)

3 hs Depressão RespiratóriaSonolênciaNausea

Nalorfina

Diazepam (2-10mg) IV

Valium (ROCHE)Diempax (Lafi)

24 hs SonolênciaAtaxia

Flumazenil(Pode haverressedação devido agrande vida médiado diazepam)

Midazolam(1-5mg) IV

Dormonid(ROCHE)

2 hs SonolênciaAtaxiaAmnésia Anterograda

Flumazenil

15/12/99

Vantagens dos exames virtuais

• Recurso Where am I. Nos procedimentosendoscopicos reais esta dificuldade podeocorrer: a perda de orientação.

• Importante para planejamento cirúrgico,saber precisamente onde está a lesão

• Consegue chegar em qualquer ponto dointerior do corpo, pode passar através deobstruções.

15/12/99

Vantagens dos exames virtuais

• Consegue chegar em qualquer ponto dointerior do corpo, pode passar através deobstruções, estenoses.

Vista do Interior do Canal Medular

15/12/99

Vantagens dos exames virtuais

• Possibilidade de variar a abertura da cameradesde poucos graus até fisheye.

• Câmera com 6 graus de liberdade.

15/12/99

Desvantagens dos examesvirtuais

• Não pode coletar material para biópsia

• Dificuldade de avaliar a patologia pela aparencia do tecido.A reconstrução apresenta apenas dados anatomicos.

15/12/99

Desvantagens dos examesvirtuais

• Anatomia Estática - sem movimentosperistalticos por exemplo.

• Ainda não é um método de emprego geral.É necessário que se avalie o método emestudos mais amplos.

15/12/99

Desvantagens dos examesvirtuais

• Alguns estudos: p. ex. (Rex, D. Vining, D. et al. 99)

sugerem que a curva de aprendizado datécnica é longa.

• Com pessoal pouco treinado e com poucaexperiência algumas informações podem serperdidas: p. ex. adenomas < 7mm

15/12/99

Limitações Atuais

• Baixa resolução de imagens 256x256pontos contra 780x480 S-VHS.– Interpolação pode ultrapassar este problema.

• 5fps = US$ 3.000 - 10fps = US$5.000 -30fps = US$ 20.000– Solução: Máquinas paralelas.

– Uso de Hardware especial (Volume Pro,Cube4)

15/12/99

Soluções

• Custo dos processadores/ performance caiacentuadamente em um ano

• Criação de sistemas de interação que sãomais simples para o uso do médico.

• Sistemas de auxílio à geração de laudos.

15/12/99

Conclusões

• É uma técnica promissora especialmente emcasos em que não é preciso biopsia.

• Atualmente ainda não há hardware que façaendoscopia virtual com um custo acessivel.

• É preciso apoio médico para que as imagenstenham valor diagnóstico.

15/12/99

Visualização Volumétrica

Aceleração de Ray Casting

15/12/99

Problema da Visualização

• Dados escalares obtidos em fatias

• Visualizar superfícies e estruturas amorfas

• Modelo de Iluminação

• Aplicações de Tempo Real (30 fps)

15/12/99

Algoritmo Básico

• Para cada pixel faça

Lança um raio em direção ao volume

Enquanto (Há voxels no caminho)

Acumula Cor e Opacidade

Avança para próximo voxel

Fim Enquanto

Fim Para

15/12/99

Ray Casting

15/12/99

Problemas

• Complexidade do algoritmo é O(m2n) ondem2 é o número de pixels na tela e n é amaior dimensão do volume de dados.

• Percorre todos os voxels no caminho do raio

• Raio precisa ser discretizado para calcular acontribuição de cada voxel.

15/12/99

Modelo de Acumulação de Cor

C C C Opac

Opac Opac Opac

Opac Opac Opac

out out voxel VoxelAc

VoxelAc Ac Voxel

Ac Ac VoxelAc

= += −

= +

.

( ).1

15/12/99

Como melhorar?

• Não somar mais termos quando OpacAc=1ou próximo de 1.

• Não discretizar todos os raios. Usar ummodelo de raio discretizado.

• Não somar os termos em que OpacVoxel épróxima a zero.

15/12/99

Algoritmo Otimizado

Para cada pixel faça

Lança um raio em direção ao volume

Enquanto (Opacidade < 1.0-epsilon)

Acumula Cor e Opacidade

Avança para próximo voxel

Fim Enquanto

Fim Para

15/12/99

Algoritmo OtimizadoPara cada pixel faça

Lança um raio em direção ao volume

Enquanto (Opacidade < 1.0-epsilon)

Se (OpacVoxel > MinOpac)

Acumula Cor e Opacidade

Avança para próximo voxel

Fim Enquanto

Fim Para

15/12/99

Como acelerar o algoritmo?

• Modelos de raios.

• Não percorrer espaços vazios.– PARC (Poligon Assisted Ray Casting)

– Árvores de Busca

– RADC (Ray Aceleration by Distance Coding)

15/12/99

Modelo de Raios

• Template Based Ray Casting (Yagel et al.)

• No algoritmo anteriormente mostradoestava descrito implicitamente umadiscretização do raio com relação aosvoxels.

• Esta discretização pode ser feita com óalgoritmo de Tripot.

15/12/99

Modelo de Raios

• Utilizando a projeção ortogonal podem serfeito um template para a discretização dosraios.

15/12/99

PARC

• Envolver o volume de dados com umamalha poligonal que englobe as áreas dovolume que contém dados “interessantes”

• Um voxel contém um dado interessante se:– OpacVoxel > OpacMin

• O poliedro é desenhado numa tela virtualque contém dois Z-buffers.

15/12/99

PARC

• Com auxílio destes buffers temos os valoresde tnear e tfar para os quais é precisoacumular cor e opacidade na formaparamétrica da reta:

r = o + t.d

15/12/99

PARC

15/12/99

PARC

• Problemas:– Poliedro deve ser construído interativamente

pelo usuário.

– Necessária aceleração gráfica 3D pararapidamente encontrar a projeção do poliedroenvolvente para a tela.

– Sistema gráfico com duplo Z-buffer (near e far)

15/12/99

Árvores Espaciais

• Octree (Levoy 1990a)– Montar volumes em octree para acelerar o

percorrimento de espaços vazios.

– A octree é montada utilizando o seguinteprocesso:

• Um nó é declarado vazio se os seus 8 filhos sãovazios.

• Um nó é declarado cheio se um dos seus oito filhostem Opac > Min_Voxel_Opacity

15/12/99

Árvores Espaciais

• As informações estão contidas apenas nasfolhas da árvore. Os níveis intermediáriosdizem apenas se os filhos possuem ou nãoinformação relevante.

• É preciso definir critério para subir e descerna árvore.

15/12/99

Árvores Espaciais

15/12/99

Árvores Espaciais

15/12/99

Árvores Espaciais

15/12/99

Árvores Espaciais

• Aceleração do primeiro voxel a serintegrado.

• Vantagem: Não precisa subir e descer naoctree.

• Algoritmo funciona como um oráculo queem O(log k) passos atravessa os k voxelsvazios até chegar ao primeiro voxel a serintegrado.

15/12/99

Árvores Espaciais

• Algoritmo funciona da seguinte forma:int Oraculo_Nivel::Adivinha ( double tn, double tf, vector p0, vector p1,

int primeiro, int num_passos)

{

vector delta; int k;

unsigned char voxel;

int ix,iy,iz;

if (num_passos > 0) delta = (p1 - p0) / num_passos; else return primeiro;

p0 = p0 + (delta * primeiro);

for (k = first; k<num_passos; k++) {

ix = (int)(p0.x*(dimx-1));

iy = (int)(p0.y*(dimy-1));

iz = (int)(p0.z*(dimz-1));

if (Volume(ix,iy,iz)==1) return (k);

p0 = p0 + delta;

}

return k;

}

15/12/99

Árvores Espaciais

• O refinamento da solução é feito pelo seguinte algoritmo:int Oraculo::Adivinha (double tn, double tf, vector p0, vector p1, int

primeiro, int num_passos)

{

int temp = primeiro;

int nivel_inicial = NumNiveisUtilizados;

while (2nivel_inicial > num_passos)

nivel_inicial--;

num_passos =num_passos / 2nivel_inicial;

for (int i=nivel_inicial-1; i>=0; i--) {

temp = Niveis[i].Adivinha(tn, tf, p0, p1,(2*temp-1), num_passos);

num_passos = num_passos * 2;

}

return (temp-1) * 2;

}

15/12/99

RADC

• Ray Acceleration by Distance Coding(Zuiderveld95 - Ph.D. Thesis)

• O Algoritmo de ray casting padrão pode sermuito acelerado utilizando uma estrutura dedados que contém a transformada dedistância do volume

15/12/99

RADC

Imagem Original Transformada deDistância

15/12/99

RADC

15/12/99

RADC

color Raycast (vector o, vector d) {

double tn;

double tf;

vector p0, p1;

vector delta;

int num_steps;

int k;

UINT voxel;

int ix,iy,iz;

if (rayboxinter (o,d,CuboLimitante,&tn,&tf)==1) {

p0 = o + (d * tn);

p1 = o + (d * tf);

num_steps = (int) (tn-tf) *

MAX(volume->dimx,

MAX(volume->dimy,

volume->dimz));

if (num_steps > 0)

delta = (p1 - p0) / num_steps;

else

return c0;

opacity = 0;

for (k=0; k<num_steps; k++) {

ix = (int)(p0.x*(volume->dimx-1));

iy = (int)(p0.y*(volume->dimy-1));

iz = (int)(p0.z*(volume->dimz-1));

voxel = volume->read(ix,iy,iz);

-> integra cor e opacidade do voxel

p0 = p0 + delta;

}

return cor_integrada;

} else {

return cor_fundo;

}

}

Considerando o seguinte algoritmo padrão:

15/12/99

RADCcolor RADC_Raycast (vector o, vector d) { double tn; double tf; vector p0, p1; vector delta; int num_steps; int k; UINT voxel; int ix,iy,iz; if (rayboxinter (o,d,CuboLimitante,&tn,&tf)==1) { p0 = o + (d * tn); p1 = o + (d * tf); num_steps = (int) (tn-tf) * MAX(volume->dimx, MAX(volume->dimy, volume->dimz)); if (num_steps > 0) delta = (p1 - p0) / num_steps; else return c0;

opacity = 0; for (k=0; k<num_steps; k++) { ix = (int)(p0.x*(volume->dimx-1)); iy = (int)(p0.y*(volume->dimy-1)); iz = (int)(p0.z*(volume->dimz-1)); voxel = volume->read(ix,iy,iz); -> integra cor e opacidade do voxel

// Tirando vantagem da estrutura // de dados pré-processada skip = RADC->read(ix,iy,iz); p0 = p0 + delta*skip; k += skip;} return cor_integrada; } else { return cor_fundo; }}

Temos o algoritmo RADC:

15/12/99

ResultadosAlgoritmo Pré-processamento Memória Aceleração

Padrão 0 seg 7,6 Mb 0%

Oráculo 5 seg 7,8 Mb 95%

RADC 180 seg 30,4 Mb 170%

15/12/99

0

0,5

1

1,5

2

2,5

0 1 2 3 4 5 6

Tempo

Ganho

Desempenho do algoritmo em relação aonúmero de níveis na estrutura

15/12/99

Comparação dos algoritmos

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0 100 200 300 400 500

Algoritmo Normal

Com Otimização

RADC

15/12/99

Comparação dos algoritmos deaceleração de ray casting

variando o tamanho da imagem

0

5

10

15

20

25

30

35

40

0 200 400 600 800 1000 1200

Resolução da Imagem

Tem

po

(s)

Tempo (s)

Tempo Otimizado (s)

Razão

15/12/99

Resultados Clínicos

15/12/99

Angiografia por MRI

Imagens obtidas através de MRIcom contraste de Gd I.V.:

Diagnóstico:Estenose na artéria renal esquerda.

15/12/99

Visualização da Larínge

Cortes feitos a partir de Tomografia Computadorizada sem usode contraste. Setas vermelhas indicam o local da lesão.

15/12/99

Visualização da Laringe

Local da lesão indicado pelas setas brancas