Buscar

Terapias guiadas por imagens - Prof. Dr. Luiz Otávio Murta

Prévia do material em texto

Luiz Otavio Murta Junior
Terapias Guiadas por Imagens
Image Guided Therapy - IGT
• Introdução: apresentando o 3D Slicer.
• Motivação: radiologia, IGT, RT...
Planejamento e realização de cirurgias e terapias.
Radioterapia: IGRT.
• Segmentação:
Automática.
Manual.
• Corregistro
Rígido
Não rígido.
• Conclusões.
Conteúdo
3D Slicer:
• Visualização
• Alinhamento
• Segmentação
• Mensuração
• Integração em
tempo real
3D Slicer
• Disponível livremente
• Interface Qt e VTK
• Algoritmos ITK
• Extensível através de médulos
• Open source:
• www.slicer.org
3D Slicer: Gernciamento Imagem / Cena
• Arquivos MRML (XML) 
armazenam a descrição da 
cena:
• Volumes (imagens, 
label maps)
• Modelos
• Transformação Affine
• Dados de cena 
(câmeras, cores, 
fiduciais, etc).
Administração NA-MIC
Compartilhamento de Software : 
http://grants1.nih.gov/grants/guide/rfa-files/RFA-RM-04-003.html
• “…software deve estar livremente disponível… “
• “…permite a comercialização de versões
melhoradas ou customizadas…” 
• “…inclui a possibilidade de pesquisadores fora
do centro (HMS) contribuir e compartilhar códigos
e dados...”
Licença estilo BSD
• Código aberto
• Sem taxas de licença
• Sem restrição de uso
• Não requer permissão para uso clínico e/ou comercial
• Sem garantias
• Usuários são responsável pelo funcionamento do software
• SEM a obrigação de retornar sua contribuição em código aberto. 
• Pode-se contribuir com seu código para a comunidade se você quiser, e 
depende de autorização do administrador para tanto.
Motivações
•Auxílio a radiologia
•Terapias guiadas por imagens (IGT):
•Ambiente típico IGT
•Planejamento radioterápico
Avaliação de autismo
• Correlacionando 
desenvolvimento cerebral 
localizado com 
características 
comportamentais 
observadas de autismo
• Métricas de espessura 
cortical e volume 
subcortical
Azul: Hipertrofia
Vermelho: Atrofia
Verde: Sem alterações
Esquisofrenia
• Imagens estruturais e de difusão
• Análise do FA
• Tractografia
• 3D Slicer corregistrando diferentes 
informações e mapeamentos
Disordens da prostata
• Ferramenta de 
segmentação para 
planejamento de 
braquiterapia e 
biopsia
• Navegação para 
biopsia
Motivações
•Auxílio a radiologia
•Terapias guiadas por imagens (IGT):
•Um pouco do SPL
•Planejamento radioterápico
 Definir
 Planejar
 Monitorar
 Controlar
 Avaliar
IGT: Objetivos de terapias guiadas por imagens
MRI Pre-ProcCT Intra-Proc Registered CT & MRI
IGT: Exemplos de procedimentos em terapias guiadas por imagens
Cirurgias convencionais: visualizando superfícies
IGT: “Vendo” através das superfícies
• É a visualização ativa de imagens 
médicas para ajudar em decisões 
prévias ou durante o procedimento.
• Permite cirurgiões:
• Ver além de superfícies
• Definir alvos
• Controlar as intervenções 
• Possibilita novos procedimentos, 
reduz danos, otimiza ressecção.
“Image Guided Therapy” (IGT)
Imagens pré-operatórias integradas
Provê modelos específicos
Slide 20
Segmentação de estruturas cerbrais
Tractografia DT-MRI
fMRI pre-operatório, 
experimento motor
fMRI projetado na configuração
cerebral intra-operatória
fMRI e DTI projetados na
aquisição cerebral intra-operatória
Motivações
• Auxílio a radiologia
• Terapias guiadas por imagens (IGT):
• IGT na prática
• Planejamento radioterápico
Magneto aberto 3T
Magneto aberto 3T
Ambiente clínico - IGT
Sistemas comerciais de 
planejamento
Ferramentas de pesquisa
CERR, PLUNC, dicompyler, etc.
Caro
Fechado
Cobrem apenas
procedimentos clínicos
de rotina
Estável Instável
Amigável
Não extensíveis
Não flexíveis
Documentação pobre
Código longo
e não modular
Suporte Insuficiente
Inconveniente
Bem
documentado
Características
limitadas
Flexível
Extensível
SlicerRT
Código aberto
independente da platforma
Código aberto?
Livre
Motivações para o SlicerRT
• Alavancando ferramentas já
existentes: 3D Slicer1, Plastimatch2
• “Hub” para análise e comparação de 
dados RT
• Cobre os mais comuns protocolos de 
pesquisa
• É livre e código aberto
• Aberto a integrar novos algorítmos
• Documentação extensiva
1 S. Pieper, M. Halle, and R. Kikinis, 3D SLICER. Proceedings of the 1st IEEE International Symposium on 
Biomedical Imaging: From Nano to Macro (Brigham and Women’s Hospital, Boston, MA, 2004), pp. 632–635.
2 G. C. Sharp, R. Li, J. Wolfgang, G. Chen, M. Peroni, M. F. Spadea, S. Mori, J. Zhang, J. Shackleford, and N. 
Kandasamy, “Plastimatch: An open source software suite for radiotherapy image processing,” in Proceedings 
of the XVIth International Conference on the Use of Computers in Radiotherapy (ICCR) (Amsterdam, the 
Netherlands, 2010).
Pinnacle³ Eclipse™
SlicerRT
DICOM-RT DICOM-RT
MATLAB DICOM-RT
XiO®
DICOM-RT
Principios de desenvolvimento
• Integrado no mecanismo 
de importação DICOM 
• Os dados são 
organizados em uma 
hierarquia inteligente
• Dados suportados:
– Estruturas RT 
→ Contornos
→ Pontos fiduciais
– Mapas de dose
– Imagens RT
– Planejamnetos RT: 
isocentros, feixes
– Imagens de 
planejamentos: CT, 
MR, etc. 
Importação DICOM-RT
• Representações múltiplas
(conversões automáticas)
– Modelo “Ribbon”
– Volume rasterizado
– Modelos de superfície 
fechada
• Comparação de contornos
– Coeficiente Dice
– Distancia Hausdorff
• Morfologia no contorno
– Dilata, erode
– Combinando 
operadores lógicos
Volumes RasterizedosModelo “Ribbon”
Superfícies fechadas
Análises de contornos
• Histograma dose-volume 
(gráfico + metricas)
• Acumulação de dose
• Comparação de dose (gama)
• Contornos/superfícies isodose 
• Visualiza campos de 
deformações
• Cálculo de dose de proton
• Co-registro
– Co-registro BSpline
– Co-registroLandwarp
Histograma dse-volume DVH
Isodose contours and surfaces
Análise de dose
A interface de usuário Slicer
• Por padrão, o Slicer oferce visão da fatia e a visão 3D de 
imagens carregadas
• Um painel de 
operações no topo 
esquerdo deixa o 
usuário selecionar 
diferentes modulos
Slicer, cada um 
oferecendo um 
conjunto de operções
• Volume
• Segmentação
• Região de interesse 
(ROI)
• Os modulos de controles controla estão no 
menu superior
load/save dados
seleção do módulo a 
ser usado
histórico de 
módulos
para frente e 
para traz no 
histórico de 
modulos
mostrar 
informaçâo 
de volumes
seleciona 
“layout” da 
interface 
Adiciona pontos 
fiduciais ou 
medidas
A interface de usuário Slicer
Entrada e saída de dados
• Add Data – o modo mais simples de 
visualizar um novo volume, imagem, ou 
outros dados no Slicer
• Mesmo se conjunto de dados armazenado 
em múltiplos arquivos, você pode selecionar 
a primeira fatia e clique Open
o diálogo “file loading“
Mostrando um volume
• passo #1: Selecione para 
repidamente ajustar o 
contraste da imagem
• se o passo #1 não prover 
um bom contraste, o 
“Window / Level” pode ser 
ajustado para um controle 
fino
• Modo mais fácil: Clique e 
segure o botão esquerdo 
do mouse, arraste o cursor 
para mudar a janela de 
intensidades
Trabalhando com as visões de cortes
• Um pequeno menu “pop-down” controla o 
comportamento de cada visão de cortes
Fundo (padrão) volume 
observado
Controles devem ser 
aplicados a todos os cortes 
(modo lvinculado)
Mostra o corte na visão 3D
Movimenta o corte para 
frente e paratráz no volume
rótulos para mostrar 
como sobreposição
A visão “Lightbox” de um volume
• Para ver um volume usando um 
display tipo “lightbox” (mostrar 
todas as fatias), selecione uma 
janela (e.g. vermelho, verce, ou 
amarela), então expanda o painel 
de controle
• O icon abre o painel 
• Selecione o lightbox desejado (e.g. 
3x3).
• Movimentando o mouse para cima 
e para baixo na janela rola através 
das imagens
aqui expande o 
painel de controle
icones lightbox
Salvando a sessão Slicer
• O Slicer salva o progresso da sessão de análise num 
arquivo suplementar com a extenção “mrml”. Recomenda-
se criar um novo diretório, então salvar os dados e o 
arquivo .mrml
O resultado é dados e 
cena salvos no mesmo 
diretório
• passo #1 – selecione icon Save Data
• passo #2 – na janela “save”, selecione 
“force all data to be saved”
• passo #3 - selecione o diretório e 
clique Save button
Dialogo para salvar os arquivos
• Dialogo salvar geralmente salva somente arquivos 
que foram modificados; arquivos a serem salvos são 
marcados
• Forçando salvar num novo directório certifica que 
todos os componentes de uma cena são salvos 
juntos. 
Clique aqui para abrir 
um diálogo e 
selecione ou crie 
diretório para salvar
Segmentação de imagens
• Slicer tem vários modos de aferir características numa 
imagem (e.g., marcar um tumor e calcular seu tamanho)
• Queremos rotular (“label”) todos os pixels ocupados por 
cada característica com um número único (e.g.: assinalar 
os pixels do tumor com o rótulo 1)
• Rótulos são armazenado como labelmaps (uma imagem 
onde cada pixel na imagem é um número rótulo)
características a aferir labelmap rótulo mostrado no contexto
+
valor do rótulo = 0 foravalor do rótulo = 1 dentro do tumor
Coletando um pequeno volume 
• Algoritmos de segmentação automática podem 
facilmente ficar confusos entre tumor e tecido 
sadio
• Portanto, criamos um pequeno volume contendo 
apenas minimamente o tumor
• Selecione o módulo “Crop Volume”
Módulo “Crop Volume”
• Este módulo cria um volume novo, pequeno contendo 
somente o que está contido em uma caixa ajustável
• selecione Input, o padrão 
é o volume corrente
• selecione Create new ROI
• habilite “ROI” (region of
interest) visibility
• ajuste a ROI 
• Isotropic dá melhores 
resultados
• selecione o botão Crop
para criar um novo volume
Ajustando a ROI 
• Observe a caixa na visão 2D
• Clique e arraste os limites em cada corte até a 
ROI conter somente o aspecto de interesse
• Aumentar o Zoom movimentar no corte ajuda 
clique e arraste qualquer ponto
•Botão direto do 
mouse arraste 
para baixo para 
aumenta zoom
•Botão shift + 
direito arrastar 
move os cortes
Opções de segmentação
• Segmentação é complicada
• Expera-se demorar um tempo para dominar
• Multiplas escolhas no Slicer:
• Operações “Grow/Cut“ no editor
• Segmentação OTSU
• Crescimento de regiões
Segmentação 
OTSU no Slicer
Segmentação OTSU
• Algoritmo automático para separar um volume em 
duas classes: (1) característico, e (2) todo o resto
• Verifique o volume de entrada e a ROI correta
• Volume de 
entrada deve ser a 
ROI
• Cria um novo 
volume para a 
saida
Determinando o volume característico
• O mócdulo “Quantification / Label Statistics” calcula o 
volume do rótulo gerado pela segmentação OTSU
• Selecione o Volume de entrada como volume “grayscale” e 
selecione a saída “labelmap” da segmentação.
• Clique Apply para gerar o gráfico ou tabelas de volumes 
para cada rótulo
Automática.
Manual.
Automática.
Manual.
Detecção de Forma
Característica
da Image
Sigmoide
Magnitude
Do
Gradiente
Gradiente
Imagem
de 
Entrada
Máscara
Binária
Suaviza
Positive
LevelSet
Rescale
Balanciado
[-0.5,0.5]
LevelSet
de Entrada
Detecção
de Forma
Input
Feature
Limiar
LevelSet
de Saída
typedef itk::Image< float , 2 > ImageType;
typedef itk::ShapeDetectionLevelSetImageFilter<
ImageType,
ImageType > FilterType;
FilterType::Pointer shapeDetection = FilterType::New();
shapeDetection->SetInput( inputLevelSet );
shapeDetection->SetFeatureImage( speedImage );
shapeDetection->SetPropagationScaling( 1.0 );
shapeDetection->SetCurvatureScaling( 0.05 );
Detecção de Forma
shapeDetection->SetMaximumRMSError( 0.001 );
shapeDetection->SetMaximumIterations( 400 );
shapeDetection->Update();
std::cout << shapeDetection->GetRMSChange() << std::endl;
std::cout << shapeDetection->GetElapsedIterations() << std::endl;
thresholder->SetInput( shapeDetection->GetOutput() );
thresholder->SetLowerThreshold( -1e7 );
thresholder->SetUpperThreshold( 0.0 );
Detecção de Forma
Corregistro de Imagens
Imagem Fixa Imagem Móvel
Imagem Móvel 
Corregistrada
registrator->SetFixedImageRegion( 
fixedImageReader->GetOutput()->GetBufferedRegion() );
typedef RegistrationType::ParametersType ParametersType;
transform->SetIdentity();
registrator->SetInitialTransformParameters(
transform->GetParameters() );
optimizer->SetMaximumStepLength( 4.00 );
optimizer->SetMinimumStepLength( 0.01 );
optimizer->SetNumberOfIterations( 100 );
optimizer->MaximizeOff();
Corregistro de Imagens
try
{
registrator->StartRegistration ();
}
catch( itk::ExceptionObject & excp )
{
std::cerr << “Error in registration” << std::endl;
std::cerr << excp << std::endl;
}
transform->SetParameters( 
registrator->GetLastTransformParameters() );
Corregistro de Imagens
typedef itk::ResampleImageFilter<
FixedImageType , MovingImageType > ResamplerType;
ResamplerType ::Pointer resampler = ResamplerType::New();
resampler->SetTransform ( transform );
resampler->SetInput( movingImageReader->GetOutput() );
FixedImageType ::Pointer fixedImage = fixedImageReader->GetOutput();
resampler->SetOrigin( fixedImage->GetOrigin() );
resampler->SetSpacing( fixedImage->GetSpacing() );
resampler->SetSize( 
fixedImage->GetLargestPossibleRegion()->GetSize() );
resampler->Update();
Corregistro de Imagens
Componentes
Imagem
Fixa
Imagem
Móvel
Métrica
Transformação
Interpolador
Otimizador
Método de Corregistro
Métrica de Similaridade
• Médias Quadráticas
• Correlação Normalizada
• Diferença Quadrática Média Recíproca
• Informação Mutua
- Viola-Wells
- Mattes
- Baseada em histograma
- Histograma normalizado
Transformções
• Translação
• Escalonamento
• Rotação
• Rígido3D
• Rígido2D
• Affine
• BSplines
Otimizadores
• Gradiente Descente
• Gradiente Descente com Passos Regulares 
• Gradiente Conjugado 
• Levenberg-Marquardt
• Algoritmo Evolutivo 
Interpoladores
• Vizinhos Próximos 
• Linear
• BSpline
Colocações Finais
• IGT provê segurança, precisão e agilidade
• São necessários métodos de segmentação e 
corregistro confiáveis
• É um campo de estudos em evolução

Continue navegando