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