Download Diapositiva 1 - ELAI-UPM

Document related concepts
no text concepts found
Transcript
Julián Gutiérrez Santos
 Traducir
el código de MATLAB a C++
 Conectar ITK y MATLAB
 Instalar LiverSegm en Ubuntu 64Bits
 Instalar LiverSegm en Magerit
 Conocer el estado actual de la técnica
GVA-ELAI-UPM®PFC0092-2009
2
1.
2.
3.
4.
5.
6.
7.
Introducción
Estado de la técnica
LiverSegm en Ubuntu 64Bits
ITK desde MATLAB
LiverSegm Server C++
Supercomputación
Conclusiones
GVA-ELAI-UPM®PFC0092-2009
3

Imagen médica: Distribución espacial de
una o más propiedades físicas o químicas
dentro del cuerpo humano. Propósitos:
• Clínicos: diagnosis
• Médicos: anatomía
GVA-ELAI-UPM®PFC0092-2009
4
 Adquisición
imágenes médicas en 3D
• TAC
• RM
 Técnicas
de segmentación
• Detección de fronteras
• Clasificación de voxels
• Atlas deformables
GVA-ELAI-UPM®PFC0092-2009
5
TOMOGRAFÍA AXIAL
COMPUTARIZADA (TAC)




Rayos X
Radiación ionizante
Algo borrosa
Barata
RESONANCIA MAGNÉTICA
(RM)




Campo magnético
No perjudicial
Nítida
Cara
GVA-ELAI-UPM®PFC0092-2009
6
 Detección
de fronteras
Una curva o superficie evoluciona hacia los bordes del objeto sobre
la base de un término de la imagen y otro de regularización.
 Clasificación
de Voxels
Cada voxel es clasificado a partir de un modelo de intensidades
teniendo en cuenta la homogeneidad y la geometría relativa del tejido.
 Atlas
anatómicos
Se obtienen unos modelos de los órganos a partir de imágenes de
entrenamiento y se alinean con la imagen de estudio para obtener la
segmentación.
GVA-ELAI-UPM®PFC0092-2009
7
 Cliente
- Servidor
• Características
 Ubuntu
64Bits
• Ventajas e inconvenientes
 CMake
 KDevelop
 Instalación
de LiverSegm
• VTK
• FLTK
• ITK
GVA-ELAI-UPM®PFC0092-2009
8
CLIENTE




Papel activo en la
comunicación (dispositivo
maestro o amo)
Espera y recibe las
respuestas del servidor
Puede conectarse a varios
servidores a la vez
Interactúa directamente
con los usuarios finales
SERVIDOR




Papel pasivo en la
comunicación (dispositivo
esclavo)
Procesa y envía la respuesta
Acepta conexiones desde un
gran número de clientes
No interactúan directamente
con los usuarios finales
GVA-ELAI-UPM®PFC0092-2009
9
VENTAJAS




Mejor uso de los recursos
máquina (procesador, gpu,
etc.)
Las transferencias de datos
son más rápidas.
Capacidad de ejecutar
múltiples programas de
forma eficiente.
Para servidores, alcanza
mejor rendimiento que un
32Bits.
INCONVENIENTES



Baja compatibilidad con
drivers y software.
Alto costo para obtener
funcionalidad total con
programas de 32Bits.
Las alternativas de software
para 64Bits, en muchos
casos, ofrecen paupérrimos
resultados.
GVA-ELAI-UPM®PFC0092-2009
10
CMAKE


KDEVELOP
Permite gestionar el
proceso de construcción
de una aplicación
independientemente del
sistema operativo y
compilador elegido
CMakeLists.txt


Entorno de desarrollo
integrado (IDE) para
sistemas Unix
Depende del gcc
GVA-ELAI-UPM®PFC0092-2009
11
 Instalar VTK, FLTK
e ITK
• Campos especiales
 Comprobar
que están reconocidos todos
los parámetros referidos a las librerías
en CMake.
• VTK_DIR
• ITK_DIR
• FLTK_DIR
 Compilar
en KDevelop
GVA-ELAI-UPM®PFC0092-2009
12
 MATLAB
 CMakeLists.txt
• Particularidades en objetos MEX
 MexFunction
• Entrada
• Salida
 Depuración
ITK-MEX
• Windows: Microsoft Visual Studio 2005
• Linux: GDB
GVA-ELAI-UPM®PFC0092-2009
13
 Software
matemático que ofrece un
entorno de desarrollo integrado (IDE)
con un lenguaje de programación propio
(lenguaje M)
 Lenguaje
M: interpretado Lento
 C/C++: compilado
Rápido
GVA-ELAI-UPM®PFC0092-2009
14
 Archivo
de configuración de CMake
 Particularidades para objetos MEX
• Distinciones entre Sistemas Operativos
 Win32, Win64, Linux32 y Linux64
• Librerías de MATLAB
 Windows: libmex, libmx y libeng. #Include “mex.h”
 Linux: mex, mx y eng
• Extensión de las librerías
 Linux: *.a y *.so
 Windows: *.lib y *.dll
GVA-ELAI-UPM®PFC0092-2009
15
 Interfaz
MATLAB – C++
• Entrada (prhs)
• Salida (plhs)
GVA-ELAI-UPM®PFC0092-2009
16
 Entrada
• mxGetScalar
• mxGetPr
• mxGetDimensions
• mxArrayToString
 Salida
• Familia mxCreateScalar
• Familia mxCreateMatrix
• Familia mxCreateArray
GVA-ELAI-UPM®PFC0092-2009
17
 Código
en MATLAB
• Fases
 Clases
de ITK utilizadas
• Clases básicas
• Filtros
 LiverSegm
Server C++
• Jerarquía
GVA-ELAI-UPM®PFC0092-2009
18
EXPANSIÓN DEL
HISTOGRAMA

Normalización del intervalo
de valores de la imagen
entre cero y uno
REDUCCIÓN DE VOLUMEN

Cada dimensión de la
imagen es reducida a la
mitad
GVA-ELAI-UPM®PFC0092-2009
19
FILTRADO DE DIFUSIÓN
ANISOTRÓPICA 3D


Filtro no lineal sin
parámetros de control
Suavizado de la imagen y
de sus zonas homogéneas
PARÁMETROS
ESTADÍSTICOS

Parámetros usados en la
umbralización y el post –
procesado
• mediaGrisLiver: nivel medio
de gris del hígado
• minSupLiver: nivel máximo de
gris en el hígado.
• minInfLiver: nivel mínimo de
gris en el hígado.
• mediasCT: nivel medio de
gris en cada zona del
histograma.
• stdCT: desviación estándar
GVA-ELAI-UPM®PFC0092-2009
20
DETECCIÓN DE BORDES


Detector de bordes de
Canny
Dilatación con máscara 3x3
UMBRALIZACIÓN

Umbrales calculados con la
media y la desviación
superior e inferior
GVA-ELAI-UPM®PFC0092-2009
21
POST-PROCESADO
MORFOLÓGICO


Refinamiento del borde
Búsqueda del objeto mayor
CONTORNO ACTIVO EN 3D

Evolución de una superficie
sujeta a las limitaciones de
la imagen
GVA-ELAI-UPM®PFC0092-2009
22
REAJUSTE DE TAMAÑO

Redimensionado al tamaño
original
PUNTUACIONES


Comparación de la
segmentación manual y la
automática
0-100
GVA-ELAI-UPM®PFC0092-2009
23
CLASES BÁSICAS






Image
ImageFileReader
ImageRegionIterator
Index
Matrix
Size
FILTROS












BinaryThresholdImageFilter
CannyEdgeDetectionImageFilter
CastImageFilter
ConnectedComponentImageFilter
ExtractImageFilter
ImportImageFilter
NotImageFilter
OrImageFilter
RelabelComponentImageFilter
ResampleImageFilter
RescaleIntensityImageFilter
VotingBinaryHoleFillingImageFilter
GVA-ELAI-UPM®PFC0092-2009
24
SegmLiverCT
expandirHistoCT
reduceVolume3D
solInicialCT
CA3DHig
imresize3D
procTVPpar
errorBayes
psfLiver
lut4D
fusionUmbralizacion
alineamientoBordes
deteccionBores
nb3DgPar
postProcesado
25
 Supercomputadores
• Magerit (UPM)
 Utilidades
• PuTTY
• WinSCP
• XMing
• CMake en línea de comandos
 Instalación VTK, FLTK, ITK
GVA-ELAI-UPM®PFC0092-2009
y LiverSegm
26
 Ordenador
con capacidades de cálculo
muy superiores a las del resto de
equipos de la misma época de
fabricación
 UPM-CeSViMa
• Magerit
GVA-ELAI-UPM®PFC0092-2009
27
 Clúster
de 1204 nodos BladeCenter
• 1036 nodos JS20: 2 núcleos, 2.2GHz, 4GB RAM y
40GB disco duro
8.8GFLOPS
• 168 nodos JS21: 4 núcleos, 2.3GHz, 8GB RAM y
80GB disco duro
9.2GFLOPS
 Sistema
de archivos GPFS
• /gpfs/projects/.home/A20C01/user
Privado
• /gpfs/projects/A20C01001
Compartido
• /gpfs/scratch/A20C01001/user
Temporal
• /gpfs/projects/.apps
Aplicaciones
GVA-ELAI-UPM®PFC0092-2009
28
 PuTTY
• Cliente SSH
 XMing
• Sistema de ventanas X
 WinSCP
• Cliente SFTP gráfico que emplea SSH
 CMake
• En línea de comandos
GVA-ELAI-UPM®PFC0092-2009
29
 Directorios
• /gpfs/projects/A20C01001/FLTK-1.1.9/bin
• /gpfs/projects/A20C01001/VTK-5.2.0/bin
• /gpfs/projects/A20C01001/InsightToolkit-
3.4.0/bin
• /gpfs/projects/A20C01001/InsightAplications3.4.0/bin
 Campos
especiales
• CMAKE_INSTALL_PREFIX
• ITK_DIR, VTK_DIR, FLTK_DIR
GVA-ELAI-UPM®PFC0092-2009
30
 Resultados
 Posibles
mejoras
GVA-ELAI-UPM®PFC0092-2009
31
 Menor
tiempo de ejecución
 Mejor resultado
 Multiplataforma
 Integrado en MATLAB
 Integrado en Cliente–Servidor
GVA-ELAI-UPM®PFC0092-2009
32
 Paralelización
de algoritmos
 Incluir información de los pulmones
 Reducir la memoria consumida
 Integración del algoritmo en equipos de
imagen médica
 Seguimiento semiautomático de lesiones
GVA-ELAI-UPM®PFC0092-2009
33
GVA-ELAI-UPM®PFC0092-2009
34