Upload
buidan
View
215
Download
1
Embed Size (px)
Citation preview
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
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
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
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
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
• 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
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
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
• 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
• 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
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
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.