UNIVERSIDAD SIMÓN BOLÍVAR DECANATO DE ESTUDIOS PROFESIONALES COORDINACIÓN DE INGENIERÍA DE LA COMPUTACIÓN PROCESAMIENTO DE IMÁGENES PARA DETECTAR GUSANOS C. ELEGANS Por: JAVIER FERNÁNDEZ Realizado con la asesorı́a de: PROF. ALEXANDRA LA CRUZ. Ph.D. JOHAN HENRIKSSON. M.Sc. PROYECTO DE GRADO Presentado ante la Ilustre Universidad Simón Bolı́var como requisito parcial para optar al tı́tulo de Ingeniero en Computación Sartenejas, Enero de 2011 Resumen El nematodo C. elegans es un organismo ampliamente utilizado en la investigación cientı́fica, particularmente en biologı́a y quı́mica. Posee muchas células con equivalentes humanos y otras condiciones especialmente favorables, que lo han convertido en modelo de estudio para la biologı́a, especialmente en la genética del desarrollo. Ası́ mismo, al ser pequeño y transparente se presta bien a una gran variedad de técnicas de cribado de alto rendimiento (HTS, por sus siglas en inglés 1 ). La identificación de gusanos deberı́a automatizarse lo más posible dado que es muy trabajoso efectuarla manualmente. En este trabajo se presenta un algoritmo de procesamiento de imágenes para detectar C. elegans en imágenes obtenidas por microscopı́a de alto rendimiento. Ası́ mismo, se provee una metodologı́a general de detección de gusanos. La solución semi-automática que aquı́ se presenta, permite identificar eficazmente gusanos individuales en agrupaciones de gusanos. En términos generales, el proceso consta de lo siguiente: una imagen dada es segmentada, separando ası́ grupos de gusanos del fondo de la imagen. Se detectan gusanos individuales de manera automática, siguiendo un proceso de comparación y ajuste de siluetas de gusanos. Este proceso se basa en encontrar siluetas factibles dentro de una agrupación, minimizando la distancia que existe entre dicha agrupación y siluetas genéricas que son deformadas para ajustarse a ella. Las conformaciones de gusanos ajustadas incorrectamente pueden ser corregidas fácilmente de manera manual. La solución provista presenta un enfoque innovador para detectar exitosamente gusanos C. elegans individuales en imágenes de microscopio. Los resultados muestran que esta solución semi-automática permite detectar, correctamente, la forma del 100 % de los gusanos presentes en una imagen determinada. Para el conjunto de prueba utilizado, el proceso es completado en menos de 60 segundos en imágenes con alta densidad de gusanos. Para imágenes con baja densidad, los gusanos pueden ser identificados en su totalidad de manera enteramente automática, en un tiempo menor a 10 segundos. La precisión de la detección y el tiempo requerido para calcularla son mejorados notablemente con respecto a la identificación manual. La solución fue implementada en Java e integrada a Endrov, una arquitectura de extensiones de código abierto para análisis de imágenes, y está siendo utilizada en el Departamento de Biociencias y Nutrición del Instituto Karolinksa, Flemingsberg, Suecia. 1 En inglés, el acrónimo HTS se refiere a High-throughput screening iv Índice general Introducción 1. MARCO TEÓRICO 1.1. Endrov . . . . . . . . . . . 1.2. Método del Valor Umbral 1.3. Transformada de Distancia 1.4. Skeletonization . . . . . . 1.5. Ajuste de formas . . . . . 1.6. Descriptores de Forma . . 1.7. Splines . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. METODOLOGÍA DE LA SOLUCIÓN 2.1. Diseño de la Metodologı́a: Razonamiento Previo . . . . . 2.2. Descripción de la Metodologı́a e Implementación . . . . . 2.2.1. Descripción General . . . . . . . . . . . . . . . . 2.2.2. Segmentación Inicial (Método del Valor Umbral) . 2.2.3. Transformada de Distancia . . . . . . . . . . . . . 2.2.4. Skeletonization . . . . . . . . . . . . . . . . . . . 2.2.5. Segmentación de Gusanos . . . . . . . . . . . . . 2.2.6. Descriptor de Forma . . . . . . . . . . . . . . . . 2.2.7. rasterización de Siluetas . . . . . . . . . . . . . . 2.2.8. Detección y Ajuste de Formas . . . . . . . . . . . 2.2.9. Corrección Manual . . . . . . . . . . . . . . . . . 3. EXPERIMENTOS Y RESULTADOS 3.1. Experimentos . . . . . . . . . . . . . 3.2. Resultados . . . . . . . . . . . . . . . 3.2.1. Procesamiento Inicial . . . . . 3.2.2. Detección y Ajuste de Formas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 7 8 10 11 14 15 . . . . . . . . . . . 17 17 18 19 22 23 25 26 32 35 36 41 . . . . 43 43 45 45 47 3.2.3. Optimización de Energı́a . . . . . . . . . . . . . . . . . . . . . . . . . 51 Conclusiones y Trabajos Futuros 54 Bibliografı́a 58 A. Imágenes adicionales obtenidas a través de la A.1. Ajuste de Formas y Corrección Manual . . . . A.2. Transformada de Distancia . . . . . . . . . . . A.3. Esqueleto Topológico de Gusanos . . . . . . . A.4. Método del Valor Umbral . . . . . . . . . . . vi solución implementada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 61 62 62 Índice de tablas 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. Caracterı́sticas del conjunto de prueba . . . . . . . . . . . . . . . . Mejor valor de percentil para el conjunto de prueba . . . . . . . . . Detección y ajuste de puntos extremos de gusanos en el conjunto de Resultados del ajuste automático de gusanos en la imagen 1 . . . . Resultados del ajuste automático de gusanos en la imagen 2 . . . . Resultados del ajuste automático de gusanos en la imagen 3 . . . . . . . . . . . . prueba . . . . . . . . . . . . . . . . . . 44 46 47 49 50 51 Índice de figuras 1.1. Imagen en escala de grises antes y después de aplicar un método del valor umbral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Distancias a partir de un punto para seis transformadas de distancia . . . . . 1.3. Imagen binaria y esqueleto topológico de una figura de caballo . . . . . . . . 2.1. Descripción gráfica de la metodologı́a para detectar gusanos C. elegans en imágenes digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Gusanos en medio lı́quido. Imagen original e imagen binaria obtenida a través del método del valor umbral por percentil, con un percentil de 0.074 . . . . . 2.3. Tres vecindades direccionales . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Construcción de una forma de gusano basada en un descriptor de forma . . . 3.1. Conjunto de imágenes de prueba . . . . . . . . . . 3.2. Mejor ajuste automático en la imagen 1 . . . . . . . 3.3. Valor de energı́a de las tres mejores conformaciones conjunto de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . por punto . . . . . . . . . . . . . . . . extremo . . . . . 8 9 10 20 24 29 34 . . . . . . en el . . . 44 49 A.1. Mejor ajuste automático y corrección manual en para la imagen original A.1a A.2. Mejor ajuste automático y corrección manual en para la imagen original A.2a A.3. Imagen binaria y tres mapas de distancia utilizando diferentes métricas, a partir de la imagen de un gusano . . . . . . . . . . . . . . . . . . . . . . . . A.4. Esqueleto topológico de una imagen de gusanos en cultivo lı́quido . . . . . . A.5. Diferentes métodos del valor umbra aplicados a una imagen de gusanos en medio lı́quido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 64 53 65 66 67 1 Introducción El nematodo C. elegans es un organismo ampliamente utilizado y se ha convertido en un importante modelo de estudio para la biologı́a, especialmente en la genética del desarrollo. Este organismo presenta la ventaja de que todos los individuos son exactamente iguales a nivel celular, poseen cortos ciclos de vidas y una rápida genética. Por esta razón, se pueden detectar tipos salvajes de este organismo y los experimentos son menos costosos, en comparación con organismos más complejos. Es el único animal del que se conoce cada división celular, desde la fertilización del huevo hasta la etapa adulta, ası́ como el diagrama completo de las conexiones de las células que lo componen. El C. elegans tiene muchas células con equivalentes humanos, lo que hace posible estudiar y comprender cómo se manifiestan ciertas enfermedades y condiciones relacionadas, e.g. adicción a las drogas, envejecimiento, disfunción de ciertas proteı́nas, entre otras. Ası́ mismo, al ser pequeño y transparente, se presta bien a una gran variedad de técnicas de cribado de alto rendimiento (HTS, por sus siglas en inglés). El HTS es un método de experimentación cientı́fica que permite conducir millones de pruebas genéticas, bioquı́micas o farmacológicas, a través de la robótica, software de control y procesamiento de datos, dispositivos para el manejo de lı́quidos y detectores sensitivos. A través de este proceso se pueden identificar rápidamente componentes activos, anticuerpos o genes que modelan procesos biomoleculares particulares, tal como se indica en [30]. Diversos ganadores del premio Nobel de Medicina o Fisiologı́a han centrado sus estudios en gusanos, y en particular C. elegans, tales como Brenner, Sulston y Horvitz (2002), Fire y Mello (2008), ası́ como el ganador del Nobel de Quı́mica, Martin Chalfie (2008). Antes de ser cuantificados, los gusanos deben ser identificados. Este proceso deberı́a ser automático debido a que es muy trabajoso para ser efectuado manualmente en un tiempo factible. Curiosamente, a pesar de la utilidad del C. elegans para manipulaciones genéticas, su utilización en procesos de cribado de alto rendimiento se ha visto limitado por la necesidad de ensayos manuales muy trabajosos. Lo anterior conlleva a la necesidad de métodos más rápidos y consistentes. Por esta razón, un programa de computadora que permita detectar individuos C. elegans en imágenes digitales, proveerı́a una solución automática para el problema de reconocimiento. Esto mejorarı́a tanto la precisión, como el tiempo requerido para la identificación de los individuos, con respecto a la identificación manual, permitiendo, a su vez, transformar las imágenes en in- 2 formación manejable. El presente estudio, se centra en el diseño e implementación de un algoritmo de procesamiento de imágenes para detectar gusanos C. elegans en imágenes de microscopio. Se provee, ası́ mismo, una metodologı́a general de detección de gusanos. La caracterı́stica más relevante para la mayorı́a de los experimentos con C. elegans es la forma del gusano, y en ocasiones también la rotación y dirección de la misma. El enfoque presentado en este documento, busca identificar, exclusivamente, la forma de los gusanos. Se estudia, entonces, si es posible detectar y ajustar estas formas de manera automatizada, y si esto puede alcanzarse más rápidamente que a través de la identificación manual. Se utilizan gusanos, en estado de larva, en placas de microtitulación. Las larvas se cultivan en medio lı́quido, lo que causa que el fondo de las imágenes sea muy claro. No obstante, los gusanos se solapan con frecuencia. La implementación del algoritmo que se deriva de la metodologı́a desarrolladaes integrada a Endrov, una arquitectura de extensiones de código abierto, dirigida al análisis de imágenes y procesamiento de datos, que fue desarrollada y es actualmente utilizada en el Departamento de Biociencias y Nutrición del Instituto Karolinksa, lugar donde se desarrolla este proyecto. El objetivo general de este proyecto es el de diseñar e implementar una metodologı́a basada en procesamiento de imágenes para detectar gusanos en imágenes de microscopio. Para lograr este objetivo se definieron dos objetivos especı́ficos. El primero es el de diseñar un algoritmo de detección de gusanos que reciba como entrada imágenes de gusanos en cultivo lı́quido y retorne la forma de los gusanos presentes. Este objetivo especı́fico engloba las siguientes actividades: revisar los antecedentes relevantes en técnicas de segmentación de imágenes; diseñar un descriptor de forma y un método de rasterización 2 para representar gusanos en términos numéricos; revisar los antecedentes en ajuste de formas y reconocimiento de objetos, y proponer un enfoque de detección. El segundo objetivo especı́fico consiste en implementar el algoritmo de detección diseñado, integrándolo a Endrov como extensión o plug-in. Existen diversos antecedentes relativos al desarrollo de métodos que involucran la detección de gusanos en imágenes. Particularmente, el hecho de que la utilización del C. elegans en experimentos que involucran cribado genético y quı́mico se haya incrementado rápida y 2 Término comúnmente utilizado en computación gráfica, derivado del término en inglés rasterization. Se refiere al proceso por el cual una imagen descrita en un formato de gráfico vectorial se convierte en un conjunto de pı́xeles o puntos. 3 notablemente, ha dado pie al desarrollo de métodos automatizados para analizar su comportamiento, en experimentos conducidos sobre grupos de estos organismos, tal como se indica en [4]. En el estudio mencionado, se dividen las estrategias existentes para el análisis automatizado del C. elegans en tres grandes grupos, de acuerdo a su enfoque metodológico, a saber: seguimiento del comportamiento general, detección y medición de comportamientos distintos, y medición completa del comportamiento utilizando grandes conjuntos de datos. Todas estas estrategias incluyen una etapa fundamental, que se centra en la detección de los gusanos en el conjunto de imágenes que se utilizan. El enfoque de detección varı́a de una estrategia a otra, pero, por lo general, comprende los procesos siguientes: extracción de los gusanos del fondo de la imagen (segmentación), calculo del esqueleto toplógico de las formas extraı́das (skeletonization) y parametrización del contorno de los gusanos. La skeletonization y subsecuente parametrización, se han convertido en un método estándar. Sin embargo, dado que las propiedades de la imagen tales como iluminación, ruido y desorden (e.g. huevos y rastros de gusanos) pueden variar fuertemente de una imagen a otra y debido a que la segmentación depende directamente del contexto visual, los parámetros de este último proceso resultan altamente variables. Los métodos de segmentación más utilizados en imágenes de gusanos comprenden: cerrado morfológico, llenado de agujeros, método del valor umbral y sus combinaciones. La parametrización de gusanos, que consiste en la descripción de formas de gusanos en términos numéricos, determina la variedad de formas que pueden obtenerse a través de la asignación de diferentes valores a los parámetros. El enfoque más común se centra en definir parámetros que permitan la reproducción de una forma de gusano genérica, normalizada para la posición, orientación y escala de un esqueleto de gusano. En [4], se sostiene que entre aquellos programas que hacen seguimiento de múltiples gusanos, muy pocos intentan resolver el problema de solapamiento, que surge cuando dos o más gusanos se cruzan entre sı́, o bien cuando gusanos individuales se enrollan, lo que suele llevar a detecciones incorrectas o faltantes. Pese a que hay algoritmos que están siendo desarrollados para resolver este problema, tal como se indica en [8], se sigue careciendo de soluciones que permitan detectar la totalidad de los individuos de forma automática. Estudios muy recientes presentan nuevos enfoques para detectar gusanos individuales en agrupaciones enredadas (aquellos donde ocurre solapamiento). Riklin Raviv et al. en [16] presentan un enfoque para extraer objetos enredados, basado en sus propiedades morfológicas. 4 Este estudio aborda el problema de desenredar agrupaciones de C. elegans en experimentos de cribado de alto rendimiento. Este método se basa en conceptos de aprendizaje de máquina y teorı́a de grafos, y utiliza el esqueleto del gusano como un descriptor de forma. Los segmentos de agrupaciones de gusanos son representados como vértices de grafo y se lleva a cabo una búsqueda de los caminos de gusanos más prometedores en el grafo. La detección de los descriptores de forma más prometedores dentro de la búsqueda, es guiada por una distribución de probabilidad, basada en el modelo probabilı́stico presentado en [27]. Los enfoques presentados en [16, 27] corresponden a estudios consecutivos y complementarios centrados en la detección de gusanos individuales en imágenes digitales. Los resultados presentados indican un porcentaje de detección acertada de 89 % del total de la muestra, en promedio. Es importante destacar que los dos estudios previamente mencionados fueron desarrollados al mismo tiempo que el presente trabajo y con similares fechas de finalización, por lo que habı́a desconocimiento de su existencia. No obstante, el enfoque de detección y la metodologı́a presentada en este trabajo, es diferente a los presentados en los estudios mencionados. En particular, este trabajo sigue un enfoque detección basado en el modelo de ajuste de formas por optimización, mientras que los trabajos previamente mencionados siguen un enfoque de ajuste por decisión, de acuerdo a la clasificación descrita en la Sección 1.5. Existen entonces, diversos estudios en procesamiento de imágenes y visión artificial que tratan el análisis automatizado del C. elegans y de nematodos en general. La mayorı́a de estos estudios se centran en la locomoción de gusanos, donde el proceso de identificación y seguimiento es realizado a través del procesamiento simultáneo de un conjunto de imágenes y no sólo de una. Se evidencian tres procesos fundamentales en las estrategias de detección como lo son: segmentación de la imagen, skeletonization y parametrización de forma. El resto de los procesos involucrados en la detección varı́an dependiendo del enfoque, e involucran, en casi todos los casos, el procesamiento de conjuntos de imágenes y no de imágenes individuales, como fue antes mencionado. A pesar de que algunos métodos automatizados de detección de gusanos son capaces de detectar correctamente una gran parte de la muestra, pocos intentan resolver el problema del solapamiento de gusanos y ninguno lo soluciona exitosamente. Este documento presenta una descripción detallada de todos los aspectos involucrados en el desarrollo de este estudio, y se ecuentra dividido de la siguiente forma: Capı́tulo 1: Marco Teórico Se abarca la teorı́a relacionada con el problema y la solución planteada, destacando por 5 tópico, los diferentes enfoques que han sido previamente estudiados. Capı́tulo 2: Metodologı́a de la Solución Se presenta la metodologı́a general de la solución. Primero, se desarrolla el razonamiento que sustenta la solución propuesta. Seguidamente, se explica cada etapa de la metodologı́a, justificando el enfoque escogido. Por etapa, se presentan los detalles de implementación más relevantes, que dan origen al algoritmo desarrollado en este trabajo. Capı́tulo 3: Experimentos y Resultados Se presentan los experimentos llevados a cabo para evaluar el rendimiento de la solución propuesta. El propósito y caracterı́sticas de cada experimento son descritos. Luego, se presentan y discuten los resultados obtenidos. Conclusiones y Trabajos Futuros Las conclusiones del trabajo son presentadas, ası́ como algunas observaciones futuras. CAPÍTULO 1 MARCO TEÓRICO En este capı́tulo se describen los diferentes aspectos teóricos relacionadas con el problema y la solución planteada. Se abarcan los conceptos y métodos de procesamiento de imágenes mas relevantes para este trabajo, destacando los diferentes enfoques que han sido utilizados en el pasado. Ası́ mismo, se presentan las caracterı́sticas principales del software Endrov, para el cual fue implementada la solución como extensión o plug-in. 1.1. Endrov Endrov, es tanto una librerı́a como un programa de análisis y procesamiento de imágenes de código abierto, que se basa en el modelo de arquitectura de extensiones o plug-in architecture. La idea de un modelo de arquitectura de extensiones es la de proveer una estructura general y estandar de operaciones y tipos de datos, y permitir la adición de componentes de software externos (que son contruidos a través esta estructura), para agregar funcionalidades adicionales al software que se rige bajo este modelo. El diseño de Endrov se realizó haciendo fuerte énfasis en separar el código de la interfaz gráfica de los tipos de datos, filtros y otras extensiones para procesamiento de datos. La idea del programa es proveer una herramienta robusta para el análisis y procesamiento de imágenes que pueda cubrir las necesidades de aquellos laboratorios, grupos de investigación y cualquier otro tipo de usuario, que manipulen imágenes diariamente, [29]. Endrov surgió de la necesidad de un software avanzado de código abierto que permitiese procesar los complejos datos espacio-temporales presentes en imágenes de microscopio, utilizadas en la investigación biológica. Endrov, se encuentra implementada en Java, es portátil, y puede ser ejecutada localmente o como un applet, como se indica en [29]. Endrov, tiene también como objetivo mejorar las funcionalidades del software código abierto de análisis de imágenes ImageJ, proveyendo un diseño más moderno. Las deficiencias principales de ImageJ son: falta de soporte de meta- 7 datos, no existe soporte real de 5D, la arquitectura de extensiones es confusa, las vistas no pueden ser extendidas fácilmente, y el procesamiento de grandes conjuntos de imágenes es complicado, tal como se indica en [7]. Otros problemas que inspiraron la creación de Endrov fueron la ausencia de un formato de imagen estandarizado, y la dificultad de almacenar datos complejos en los formatos abiertos que existen actualmente. El grupo de desarrollo de Endrov creó el formato OST para manejar grandes conjuntos de imágenes. Este formato puede almacenar todo tipo de información, pero se encuentra optimizado para imágenes. Endrov fue desarrollado por el TBU Group del Instituto Karolinska en Suecia, y fue liberado oficialmente el 17 de Junio de 2009, bajo la licencia BSD. 1.2. Método del Valor Umbral Los métodos del valor umbral (MVU), mejor conocidos por su nombre en ingles: thresholding, son un conjunto de algoritmos para segmentar gráficos rasterizados, que permiten separar objetos presentes en una imagen del resto. Esta separación de objetos es usualmente representada a través de una imagen binaria, que se obtiene después de procesar la imagen original en escala de grises. Una imagen binaria es un tipo de imagen discreta, en la cual cada pixel tiene asignado uno de dos valores posibles (tı́picamente 1 ó 0). Cada valor indica si el pixel pertenece al primer o segundo plano (fondo) de la imagen original, respectivamente. Como se indica en [32], durante la ejecución de un método del valor umbral, se marcan pı́xeles individuales como pı́xeles objeto o pı́xeles de fondo, según corresponda. Asumiendo que los objetos en las imágenes son más brillantes que el fondo, un pixel se marca como pixel objeto si su valor de luminosidad (u otro valor unidimensional) es mayor que un valor umbral determinado, de otro modo se marca como pixel de fondo. Esta convención se denomina umbral por encima. Diferentes variantes incluyen: umbral por debajo, que es el opuesto al anterior; umbral por dentro, donde un pixel es marcado como objeto si su valor de comparación se encuentra entre dos umbrales; y umbral por fuera, que es el opuesto a umbral por dentro, según se explica en [19]. En las aplicaciones de procesamiento de imágenes donde el estudio se enfoca en objetos particulares contenidos en una imagen, los MVU se convierten en una herramienta sencilla para separar estos objetos del fondo, aunque no siempre precisa. En [18, p.146], se mencionan diversas aplicaciones en procesamiento de imágenes que involucran MVU, tales como: 8 análisis de imágenes de documentos, donde el objetivo es extraer caracteres, logos, contenido gráfico o notas musicales, entre otros; procesamiento de mapas, que se centra en encontrar lı́neas, leyendas y caracteres; procesamiento de escenas, donde se busca detectar un objetivo o blanco; e inspección de calidad de materiales, donde se desea delinear piezas defectuosas, entre muchos otros. El parámetro clave para los MVU es el valor umbral (o valores umbrales para los enfoques de umbral por dentro y umbral por fuera). El valor puede ser tanto calculado automáticamente, como establecido o ajustado manualmente. Los diferentes MVU pueden ser categorizados de acuerdo de la información que explotan. En [18, p.147], Sezgin y Sankur categorizan los MVU en seis grupos principales: métodos basados en histograma de formas, métodos basados en agrupamiento, métodos basados en entropı́a, métodos espaciales y métodos locales. En la Figura 1.1, se muestran dos imágenes: una en escala de grises y la otra, la imagen binaria obtenida a través de un método del valor umbral. (a) Imagen en escala de grises (b) Imagen binaria obtenida a través de un método del valor umbral Figura 1.1: Imagen en escala de grises antes y después de aplicar un método del valor umbral. Las imágenes fueron tomadas de [32] 1.3. Transformada de Distancia Una transformada de distancia o mapa de distancias es una representación de una imagen digital, en la cual a cada pixel de la imagen le corresponde un valor que indica la distancia entre ese pixel y el pixel más cercano que pertenezca al fondo de la imagen. Se calcula a partir 9 de una imagen binaria, que consista en pı́xeles de objeto y pı́xeles de fondo. La imagen que se obtiene corresponde a una especie de representación en escala de grises del primer plano de la imagen binaria (conformado por los objetos). El valor que corresponde a cada pixel, depende directamente de la función de distancia, que define el patrón de medición de distancia entre pı́xeles de la imagen. Existen diversas funciones de distancia tales como: Manhattan, tablero de ajedrez, Euclidiana, Chamfer 3-4 y Octogonal, [3, p.363]. Ası́ mismo, existen muchas otras funciones de distancia, normalmente derivadas de las anteriormente mencionadas. En la Figura 1.2, se muestra el resultado de aplicar diferentes funciones de distancia a una imagen que contiene un punto en el centro, rodeado por un fondo blanco. Figura 1.2: Distancias a partir de un punto para seis transformadas de distancia. Mientras más claro es el color, más larga es la distancia [3, p.365] 10 Como se indica en [6], las transformadas de distancia juegan un rol central en la comparación de imágenes binarias, particularmente aquellas resultantes de técnicas de detección de caracterı́sticas locales, tales como detección de contornos o detección de esquinas. Las transformadas de distancia pueden ser interpretadas, también, como topografı́as de islas, donde la etiqueta o valor de cada pixel indica la altura o profundidad de la región. De esta forma, se pueden detectar crestas y picos, que constituyen la base principal de metódos sencillos para encontrar el esqueleto topológico de objetos en imágenes, tal como se explica en [1, p.237]. Las transformadas de distancias son también herramientas muy útiles para el mejoramiento de la eficiencia de algoritmos de morfologı́a, tales como: reducción de contornos y expansión de contornos. 1.4. Skeletonization Un esqueleto topológico es una representación compacta y simple de un objeto, que consiste en una versión reducida o delgada del mismo, que es equidistante a sus bordes, y que preserva muchas de las caracterı́sticas topológicas y geométricas de la imagen original, tal como se explica en [28, 10, 22]. Por lo general, el esqueleto se define como el conjunto de los centros de los discos máximos contenidos en la imagen original, [10, 22]. Existen muchas otras definiciones diferentes, que dependen, principalmente, de la forma en que el esqueleto es generado. Independientemente de la definición que se adopte, si los puntos pertenecientes al esqueleto son calculados en relación con su distancia a los bordes originales del objeto, el esqueleto puede ser utilizado para reconstruir con exactitud la figura original. La figura 1.3 presenta el esqueleto de una silueta de caballo, y la imagen binaria a partir de la cual fue calculado el esqueleto. (a) Imagen Binaria (b) Esqueleto topológico Figura 1.3: Imagen binaria de una figura de caballo y su esqueleto. Imágenes tomadas de [10] Los esqueletos topológicos pueden ser categorizados en diferentes tipos. Telea et al, [22], describen tres tipos de esqueleto de acuerdo a la forma en que son calculados, tales como: 11 esqueleto por reducción morfológica, esqueleto por métodos geométricos y esqueleto por transformada de distancia. El método de reducción morfológica consiste en la reducción iterativa de los bordes del objeto, identificando y marcando, capa por capa, aquellos puntos cuya remoción no afecte la topologı́a del objeto. Estos métodos son sencillos, por lo general, aunque suelen requerir heurı́sticas complejas para asegurar la conectividad del esqueleto, como se indica en [22]. En [5] y [34], se describen dos enfoques paralelos eficientes para garantizar la conectividad de esqueletos producidos a través reducción morfológica. Los métodos geométricos se centran en calcular el diagrama de Voronoi de una representación poligonal de los bordes del objeto. El diagrama de Voronoi representa el eje medio de los bordes. Tal como se asegura en [22, p.251], estos métodos producen un esqueleto conectado y preciso, pero son muy complejos de implementar, ya que requieren una robusta discretización de los bordes, y son computacionalmente costosos. El tercer tipo comprende los métodos que calculan el esqueleto a partir de la transformada de distancia. El enfoque común consiste en encontrar los puntos cresta y conectarlos, [21, 2, 1]. Por lo general, estos métodos pueden garantizar que los puntos esqueletos encontrados sean precisos y acertados, pero no la conectividad del esqueleto, ni su completitud. El esqueleto topológico es una herramienta importante para la representación y reconocimiento de objetos, en diferentes áreas, tales como: visión artificial, análisis de imágenes, y procesamiento de imágenes digitales, incluyendo reconocimiento óptico de caracteres, reconocimiento de huellas digitales, inspección visual, reconocimiento de patrones, compresión de imágenes binarias y acoplamiento de proteı́nas, [17]. 1.5. Ajuste de formas El ajuste de formas (en inglés shape matching), es un problema central en los sistemas de información visual, visión artificial, reconocimiento de patrones y robótica, [26]. Consiste en identificar el área o contorno de una forma en especı́fico o de determinadas clases de formas en una imagen, y tiene un rol fundamental en la extracción de contenido en imágenes y en la recuperación de imágenes basada en contenido. Tal como explica Veltkamp en [25], el ajuste de formas se ocupa de la transformación de una forma determinada y de la medición de su similitud con respecto a otra forma, utilizando alguna medida de similitud o distancia entre formas. El concepto de forma es abstracto. La mayorı́a de los enfoques en ajuste de formas definen las formas de manera geométrica. Esta descripción geométrica puede consistir tanto de un 12 conjunto de puntos, curvas, superficies o sólidos, etc, como de un patrón geométrico, dispuesto de acuerdo a algún grupo de transformaciones geométricas, en particular transformaciones de semejanza (traslación, rotación y escala), tal como se indica en [25]. Por lo general, se utiliza un patrón geométrico de forma, llamado descriptor de forma, para representar la clase del objeto a ajustar. Existen diferentes tipos de descriptores de forma, que se diferencian de acuerdo al tipo de información que los define y a la naturaleza del problema, (ver sección 1.6). Se han desarrollado diferentes enfoques para el problema de ajuste de formas. Esta sección se centra en aquellos enfoques basados en geometrı́a computacional, dado que son los más relacionados con el enfoque seguido en este trabajo. La geometrı́a computacional consiste en buscar y analizar algoritmos eficientes para resolver problemas geométricos. En [26], Veltkamp y Hagedoorn mencionan diferentes enfoques de ajuste de formas tales como: poda de árboles, la transformada de Hough generalizada, el método de alineación, estadı́sticas, modelos deformables, relajación de etiquetas, descriptores de Fourier, la transformada por ondulas y redes neurales. Ası́ mismo, categorizan las técnicas de ajuste de forma en dos grupos principales: transformadas de imagen global y métodos de objetos globales. El grupo de transformadas de imagen global se refiere a las técnicas que “transforman la imagen de información de color, en el dominio espacial, a variación de color, en el dominio frecuencial”, [26]. Estos enfoques no representan la forma explı́citamente para el ajuste, sino que representan las transiciones de color o intensidad en la imagen. Esto hace imposible medir las diferencias entre dos imágenes en términos de formas, ası́ como comparar y ajustar una forma a una parte especı́fica de la imagen. Por otro lado, los métodos de objetos globales trabajan con áreas completas de los objetos o con los contornos, y pueden analizar secciones especı́ficas de la imagen, en vez de requerir el procesamiento de la imagen como un todo, tal como en las transformadas de imagen global. En estos métodos se requiere que los objetos de la imagen estén completamente segmentados. Algunos de estos métodos son: método de momentos, donde los objetos son descritos como un conjunto de momentos (posición, área, orientación, y otros parámetros) y se detecta la invariancia de momentos en los objetos; método de ajuste modal, donde se utilizan los bordes descritos con descriptores de Fourier; y método de curvatura de espacio escalado, donde se utiliza un espacio escalado y una parametrización del contorno de los objetos. Veltkamp describe en [25] diversos enfoques para llevar acabo un ajuste de formas, dados dos patrones de forma y una medida de similitud. Estos problemas son: 13 Ajuste computacional: Computa la disimilitud entre dos patrones de formas. Ajuste por decisión: • Para un umbral determinado, decidir si la disimilitud es más pequeña que el umbral. • Para un umbral determinado, decidir si existe una transformación tal que la disimilitud entre el patrón transformado y el otro patrón es menor que el umbral. Ajuste por optimización: Encuentra la transformación que minimiza las disimilitud entre el patrón transformado y otro patrón. Existe un enfoque de ajuste de formas muy estudiado, que sigue el enfoque de ajuste por optimización y se conoce como Modelos de Contornos Activos, en particular el modelo de snakes, el cual inspiró gran parte del enfoque de ajuste de formas presentado en este trabajo, (Ver sección 2.2.8). En [11], un snake es definido como un spline minimizador de energı́a, que es guiado por fuerzas de restricciones externas e influenciado por fuerzas internas de la imagen que lo empujan hacia elementos caracterı́sticos tales como: lı́neas y contornos. Se dice que los snakes son modelos de contornos activos, debido a que se pliegan a contornos cercanos y los localizan con precisión. El modelo de snakes se define como un spline continuo y controlado que es restringido por fuerzas internas y externas de la imagen, llamadas energı́as. La energı́a interna modela la resistencia del objeto a ser empujado por fuerzas externas hacia direcciones inconsistentes, de acuerdo a la información previa que se tiene sobre el objeto y la imagen, [24]. En este caso, la energı́a interna impone una restricción de suavidad a trozos (“piecewise smoothness constraint”, [11]). Esto significa que el contorno es empujado hacia elementos resaltantes de la imagen por las fuerzas externas, mientras que el contorno en si mismo exhibe resistencia a ser deformado en un curva no-suave. Como se explica en [24], las fuerzas de la imagen empujan al snake hacia salientes o caracterı́sticas resaltantes de la imagen como lı́neas, bordes y contornos subjetivos, mientras que las fuerzas externas de restricción son responsables por ubicar al snake cerca del mı́nimo local deseado.La formalización de estos conceptos se presenta a continuación. Sea M el modelo a deformar y D el conjunto de datos, la energı́a total, E, puede ser definida como: E(M, D) = Eext (M, D) + Eint (M, D) 14 donde Eext es la función de energı́a externa y Eint la función de energı́a interna. De esta manera, la técnica de optimización se centra en minimizar la función objetivo definida por la energı́a total. 1.6. Descriptores de Forma Un descriptor de forma es una abstracción estructurada de una clase de formas, que las describe de manera geométrica. Los descriptores de forma pueden ser tanto fijos como variables. Los descriptores fijos son aquellos que representan un conjunto previamente definido de formas, a manera de plantillas. Los descriptores variables definen una serie de parámetros para representar la forma. Dependiendo de los valores asignados a los diferentes parámetros, se obtienen diferentes variaciones de formas, que igualmente pertenecen al tipo o clase de formas representadas por el descriptor. Los descriptores o modelos de formas han sido ampliamente utilizados para interpretar de manera robusta objetos complejos, [23]. Latecki et al [9], separan los descriptores en tres categorı́as principales: Descriptores basados en contornos: El contorno de un objeto determinado es definido a través de a algún tipo de representación, a partir de la cual se deriva un descriptor de forma. Descriptores basados en imágenes: El cálculo del descriptor de forma se basa en agrupar el valor de los pı́xeles de una imagen digital que contiene la silueta del objeto, a partir de los cuales se construye un vector descriptivo de parámetros variables. Descriptores basados en el esqueleto topológico: Luego de que el esqueleto de la imagen es calculado, este es transformado a una estructura de árbol que conforma el descriptor de forma. La disimilitud entre formas es calculado a través de algún algoritmo de grafos. Considerando que, básicamente, los descriptores de forma son intentos de cuantificar una forma en términos fácilmente entendibles por la mente humana, [14, p.1], cualquier tipo de representación geométrica que cubra los elementos o propiedades que quieren ser descritos en una forma, puede ser usado como descriptor. En [14], se cubren los descriptores de forma basados en regiones. Estos son todos aquellos que describen una forma en base a las propiedades geométricas y numéricas de la región que ésta cubre. Algunos descriptores simples son mencionados, tales como: el área, el perı́metro, compactibilidad (no-compactibilidad), circularidad (no-circularidad), excentricidad, elongación, orientación y grado de similitud a un rectángulo. Cualesquiera combinaciones de estas propiedades de una forma son útiles para 15 describirla de manera básı́ca. Se mencionan tambı́en otras propiedades más complejas para mejorar la precisión del descriptor, como lo son: la envoltura convexa, puntos extremos, perfiles, momentos y perfil de momentos. La envoltura convexa mide la cantidad de concavidades que presenta la forma. El descriptor de puntos extremos se centra en encontrar los puntos lı́mite de una forma; esto puede ser, tanto una representación simple como el rectángulo delimitador, como una representación más poderosa, como lo es el encontrar los ocho puntos extremos de la figura, a saber: norte, nor-oeste, oeste, sur-oeste, y ası́ sucesivamente. El descriptor por perfiles, se basa en el número de pı́xeles que la forma presenta en una dirección determinada, ya sea vertical, horizontal o diagonal. El descriptor por momentos, se basa en el cálculo de momentos estadı́sticos, y el descriptor de perfil de momentos, es una combinación de los últimos dos. Un descriptor puede o no permitir la reconstrucción de la forma original que describe, dependiendo de las propiedades que controla y mide. En [23], se presenta un método entrenable para representación de formas, que permite capturar automáticamente las propiedades invariables de una clase de formas y proveer una descripción paramétrica compacta. Este método fue aplicado en gusanos, obteniendo un descriptor que reconstruye formas de gusanos con diferentes flexiones, dependiendo de los valores asignados a los parámetros que la definen. 1.7. Splines El término spline, como se utiliza en este trabajo, se refiere, en general, a una curva definida a trozos mediante polinomios. Los splines han sido ampliamente utilizados en los subcampos de las ciencias de la computación, por la simplicidad de su construcción, la facilidad y precisión de su evaluación, y su capacidad para aproximar formas o figuras complejas, como se explica en [31]. La representación de una curva continua es particularmente apropiada para problemas como: detección de contornos, ajuste de superficies y técnicas de multi-resolución. Es igualmente útil para muchos otros problemas en visión artificial como: flujo óptico, reconstrucción de superficies y recobramiento de iluminación y color, [12, 821]. Los splines reciben nombres diferentes dependiendo de diversas condiciones. Un tipo de spline, muy comúnmente utilizado en reconocimiento de objetos, es el spline de Hermite; este es un spline de tercer grado, que se expresa utilizando polinomios de Hermite, para representar cada una de las porciones individuales del polinomio. Diversos métodos han sido desarrollados para ajustar estos splines a un conjunto de puntos tales como: spline cardinal, splines de Catmull-Rom y splines de Kochanek-Bartels. Todos estos permiten construir 16 una curva suave que pasa por cada punto del conjunto. De esta manera, dados una serie de puntos que pertenecen, digamos, al contorno de un objeto, una figura suave puede ser calculada, que modele la forma definida por el objeto. Los splines de Hermite proveen una cantidad de ventajas que lo hacen útiles en el procesamiento de imágenes, como se menciona en [12]. Primero, los splines de Hermite son, por lo general, curvas suaves y que tienden muy poco a oscilar, al contrario de los polinomios de orden superior. Además, estos splines son continuos en todas partes; en contraste a los polinomios encontrados por aproximaciones locales. que puede producir discontinuidades fuertes en la conexión de regiones. Finalmente, tienen la ventaja de poder ser evaluados fácilmente. CAPÍTULO 2 METODOLOGÍA DE LA SOLUCIÓN En este capı́tulo se presenta la metodologı́a general de la solución, que consiste en los diferentes procesos que deben ser llevadas a cabo para detectar eficazmente la forma de gusanos C. elegans presentes en imágenes digitales. Primero, se desarrolla una descripción general de la metodologı́a, donde se justifica el diseño de la solución y se especifican los diferentes procesos involucrados. Luego, se explica cada proceso de manera individual, aclarando su respectiva utilidad y necesidad. Por cada proceso se presenta, además, las caracterı́sticas de su implementación en este trabajo, lo que da origen al algoritmo que aquı́ se provee. 2.1. Diseño de la Metodologı́a: Razonamiento Previo A continuación se presenta el razonamiento previo que condujo al diseño de la metodologı́a presentada en la sección 2.2 (la metodologı́a general es descrita gráficamente en la Figura 2.1). Como se explica en [15, 24, 25, 26], uno de los enfoques más comunes para el ajuste de formas consiste en adoptar un descriptor de forma, construir una silueta a partir del descriptor, y posicionar dicha silueta lo suficientemente cerca del objeto a ajustar en la imagen. Seguidamente, variar los valores de los parámetros del descriptor, deformando la silueta inicial, hasta que se logre una coincidencia aceptable entre la silueta generada y el objeto en la imagen. La utilización de un descriptor de forma suele ser apropiado cuando los objetos a ser ajustados pueden ser categorizados en un clase especı́fica, y pueden ser descritos en términos geométricos. El problema de estudio tiene como objetivo la detección y ajuste de gusanos, particularmente aquellos que pertenece a la especie C. elegans. Dado la propiedad vermiforme de estos individuos, los objetos a detectar pueden ser agrupados en una clase gusano, a la que pertenecerı́an aquellos objetos que cumplen con las propiedades geométricas de tener 18 una forma alargada, delgada y cilı́ndrica, en términos generales. Siguiendo esta idea, se puede definir un descriptor de forma que permita generar siluetas de gusanos. Este descriptor podrı́a estar representado por dos puntos extremos (los extremos del gusano) y un conjunto de valores de grosor a lo largo del eje medio que conecta dichos extremos. Luego, el problema quedarı́a reducido a encontrar cada par de puntos extremos de gusanos en la imagen, ubicar una silueta aproximada (construida a través del descriptor de forma) cerca del gusano a ajustar, y deformar la silueta hasta encontrar una coincidencia factible. Para este estudio, las imágenes de entrada consisten, básı́camente, en tomas de microscopio de un conjunto de gusanos agrupados en medio lı́quido. Las imágenes pueden contener algo de ruido, por ejemplo, sombras, burbujas de aguas o pequeños restos que no pertenecen a los gusanos, y que por tanto deben ser separados del resto de la imagen. La posición de cada gusano individual en la imagen es variable y puede ser distinguida en dos grandes grupos: agrupaciones de gusanos y gusanos aislados. Una agrupación de gusanos corresponde a un conjunto de gusanos que aparecen en la imagen solapándose entre sı́. De esta manera, cada gusano que pertenece a la agrupación está conectado con el resto de manera directa o indirecta, a través de solapamiento; o lo que es lo mismo, desde cada gusano en la agrupación, se puede trazar un camino hacia otro gusano sin pasar por pı́xeles de fondo. Por otro lado, los gusanos aislados, son aquellos que están rodeados por pı́xeles de fondo y que no se solapan con ningún otro gusano. Los diferentes gusanos aislados y agrupaciones de gusanos podrı́an ser separados fácilmente del resto de la imagen al identificar los diferentes caminos de esqueleto que solapan entre sı́, permitiendo ası́, procesar cada uno individualmente. El contorno de los gusanos aislados puede ser trazado siguiendo los pı́xeles del objeto que estan más cercanos a los pı́xeles de fondo. Habiendo ajustado las formas de gusanos aislados, éstas podrı́an utilizarse para generar un perfil de gusano, que definirı́a los valores generales para un descriptor de forma genérico. Esto permitirı́a describir la silueta que mejor se ajusta a todos los gusanos de la imagen, en general. Los gusanos que pertenecen a agrupaciones de gusanos, se podrı́an detectar individualmente, a través de un proceso de ajuste de siluetas como el mencionado al comienzo de esta sección. 2.2. Descripción de la Metodologı́a e Implementación A continuación se presenta una descripción general de los diferentes procesos que involucra la metodologı́a de ajuste de formas. Seguidamente cada uno de estos procesos es explicado a 19 fondo, y se presentan algunos detalles de implementación. 2.2.1. Descripción General La metodologı́a presenta un diseño general por etapas. Cada etapa presenta el tipo de información que se debe obtener a partir de información previamente calculada, independientemente de la implementación particular que se le de a cada proceso involucrado en la etapa. Por ejemplo, una etapa define la separación incial de los gusanos a través del cálculo de una imagen binaria a partir de la imagen original. Este proceso es independiente del método que se utilice para calcular la imagen binaria. De esta manera, se presenta una visión general de la solución, y ası́ diferentes algoritmos pueden ser desarrollados que se ajusten a esta metodologı́a. Se provee, además, un enfoque especı́fico de implementación por etapa, que da origen al algoritmo que fue implementado y probado en este trabajo. Siguiendo el razonamiento de la sección anterior, se diseñó una metodologı́a tomando en cuenta los aspectos principales del proceso de detección y ajuste de formas estudiado, a saber: identificación general de gusanos en la imagen, segmentación de gusanos, especificación del descriptor de forma de gusanos y optimización del ajuste de formas. A continuación, se describe la metodologı́a de la solución de forma general, y seguidamente se explica cada etapa de forma detallada. En la Figura 2.1 se presenta una descripción gráfica de la metodologı́a. Dada la imagen de entrada, el primer paso consiste en separar los pı́xeles que pertenecen a los objetos de estudio (gusanos) del resto de la imagen. Para esto, se utiliza algún método del valor umbral (MVU) que permita calcular una imagen binaria que separe pı́xeles de gusanos de los pı́xeles del fondo. Por lo general, este proceso no es completamente eficaz, y se obtiene algo de ruido en la imagen, el cual debe ser eliminado en procesamientos posteriores. Esta primera etapa corresponde a una segmentación inicial de la imagen de entrada. Seguidamente, a partir de la imagen binaria, se puede calcular una transformada de distancia o mapa de distancias, en la cual se almacena la distancia de cada pixel al pixel de fondo más cercano. La transformada de distancia hace posible identificar fácilmente los pı́xeles de contorno en la imagen binaria, lo que la convierte en una herramienta fundamental para la generación automática de perfiles de gusanos, el trazado de contornos en gusanos aislados y para la optimización del proceso de skeletonization, entre otros. Habiendo determinado los pı́xeles que pertenecen a gusanos en la imagen, se pueden separar los grupos de pı́xeles que están conectados y rodeados por pı́xeles de contorno. Esta segmen- 20 Imagen Entrada Inputde Image Imagen Binaria Gusanos Aislados Trazar Contorno Transf. Distancia Rasterización Descriptor de Forma Agrup. de gusanos Optimización Optimization Optimization Skeletonization Corrección Manual Figura 2.1: Descripción gráfica de la metodologı́a para detectar gusanos C. elegans en imágenes digitales 21 tación provee diversos grupos de pı́xeles objeto. Cada uno de estos grupos podrı́a ser tanto un gusano aislado como una agrupación de gusanos, de acuerdo a la diferenciación expuesta en la sección 2.1. Una manera de diferenciar los diferentes grupos es contando el número de extremos y de intersecciones. Un grupo que contiene exactamente dos puntos extremos y que no presenta intersecciones corresponderá a un gusano aislado. Por otro lado, si el grupo presenta más de dos puntos extremos, o al menos una intersección, esto indicará la presencia de solapamiento de gusanos, por tanto corresponderá a una agrupación de gusanos. El enfoque de ajuste de formas se centra en ubicar inicialmente una silueta de gusano genérica, cerca de un posible gusano en la imagen. De esta manera, es necesario poder determinar, con cierto grado de precisión y factibilidad, áreas que pertenezcan a gusanos individuales en la imagen. Para este propósito, el esqueleto topológico de la imagen proveerı́a un camino continuo a través del eje medio de los objetos inicialmente segmentados, conectando puntos extremos de gusanos. Al mismo tiempo, permitirı́a detectar gran cantidad de puntos extremos. Seguidamente, los diferentes grupos segmentados son procesados para detectar y ajustar la forma de los gusanos individuales que los conforman. Los dos tipos de grupos definidos (agrupaciones de gusanos y gusanos aislados), son procesados de forma diferente. Gusanos Aislados El contorno de la silueta de los gusanos aislados puede ser trazada fácilmente de la siguiente forma: se selecciona un pixel de contorno (indicado en el mapa de distancias) y se construye un camino siguiendo el pixel de contorno vecino en cada paso, hasta que se cierre el contorno. Luego, la silueta puede ser rasterizada construyendo una maya triangulada y, seguidamente, rasterizando cada triangulo por separado. Esto proveerı́a el conjunto de los pı́xeles que pertenecen a la forma del gusano, por lo que la forma quedarı́a ajustada. El ajuste preciso que se puede obtener de los gusanos aislados, hace posible calcular un perfil de gusano que represente a los individuos de la muestra, de forma general. De esta manera, se puede construir un descriptor de forma preciso (esto es explicado a fondo en la sección 2.2.6). Agrupaciones de Gusanos Para detectar los gusanos individuales presentes en una agrupación de gusanos, se calculan las formas de gusanos factibles entre cada par de puntos extremos y luego se determina cuáles de aquellas tienen más probabilidades de pertenecer a gusanos en la imagen. 22 El proceso en general es como sigue: dado un par de puntos extremos, se selecciona algún camino entre ellos. Luego, se escogen un conjunto de puntos de control y a partir de estos puntos y del descriptor de forma, se genera una silueta de gusano alrededor del camino. Dicho camino constituye el eje medio de la silueta generada. Después de esto, se lleva a cabo un proceso de ajuste de formas, que consiste en minimizar la distancia que existe entre la silueta generada y el gusano que presumiblemente se encuentra dispuesto en un espacio cercano al camino escogido, hasta que el mejor ajuste es encontrado. Una forma ajustada, después del proceso de minimización, se denomina conformación. Una conformación corresponde a la mejor silueta de gusano que se puede construir a partir de un camino entre dos extremos determinados, y que presumiblemente representa a un gusano real de la imagen. Este proceso es repetido para cada camino de gusanos factible que puede ser encontrado a partir de cada punto extremo. De esta manera, se obtienen todas las conformaciones posibles en la imagen. Luego, un algoritmo de asignación permitirá seleccionar el mejor conjunto de conformaciones, que maximice el número de puntos extremos cubiertos y minimice el valor acumulado de energı́a. Las conformaciones escogidas incorrectamente a través de la asignación automática, podrán ser corregidas siguiendo un sencillo proceso manual. Un algoritmo de predicción de caminos puede ser utilizado para encontrar los caminos de gusano más probables, que parten de un punto extremo dado. Las conformaciones resultantes de los caminos predichos por el algoritmo podrı́an ser beneficiados sobre otras conformaciones, para aumentar la probabilidad de que sean escogidos. En las secciones siguientes se cubren detalladamente los diferentes procesos involucrados en la metodologı́a presentada, y se presenta el enfoque particular de implementación seguido en este trabajo, para cada uno de ellos. 2.2.2. Segmentación Inicial (Método del Valor Umbral) Dado que el propósito principal de este estudio es detectar y ajustar la forma de gusanos C. elegans en imágenes digitales, un paso inicial fundamental es el de separar las formas de gusanos lo más posible del resto de la imagen, para ası́ poder llevar a cabo un análisis más preciso. Sean los gusanos en la imagen los objetos a separar y considerando el resto de la imagen como fondo o segundo plano, los pı́xeles de la imagen pueden ser separados en dos grupos: pı́xeles de objeto y pı́xeles de fondo. Dada esta caracterización, un método del valor umbral 23 permitirı́a separar los objetos en la imagen digital y descartar la información innecesaria, representando esta separación a través de una imagen binaria. La imagen binaria proveerı́a entonces una segmentación inicial de la imagen original, siendo además clave para el cálculo del mapa de distancias de la imagen, como se explica en la sección 2.2.3. En general, para esta etapa de la metodologı́a, cualquier MVU que permita obtener una imagen binaria que identifique satisfactoriamente los pı́xeles que pertenecen a los gusanos de la imagen, será suficiente para continuar el proceso normalmente, sin importar la existencia de ruido leve en la imagen. Implementación Existen cuatro MVU para imágenes en 2D implementados en Endrov, estos son: Fukunaga, máxima entropı́a, Otsu y percentil, que cubren las categorı́as de MVU basados en histogramas y MVU basados en entropı́a (ver sección 1.2). Dada la condición de transparencia de los gusanos C. elegans, es difı́cil determinar teóricamente cual vendrı́a a ser el método más apropiado para obtener una imagen binaria precisa. Por esta razón, se realizó una serie de experimentos para seleccionar el método más apropiado. Estos experimentos consistieron en el ajuste manual de los diferentes parámetros de cada uno de los métodos mencionados, que fueron aplicados sobre un conjunto de imágenes de prueba. La precisión de segmentación de las imágenes binarias obtenidas en cada caso, se midió a través de una comparación visual con la imagen original. El método que mejor se comportó en estos experimentos resulto ser el método del valor umbral por percentil, al ser el más fácil de ajustar manualmente y aquel que retornó el equivalente binario más preciso, en cada caso. Un análisis más detallado sobre la escogencia del método de valor umbral para esta metodologı́a se presenta en la sección de experimentos del capı́tulo 3. En la figura 2.2 se presenta una imagen binaria, obtenida al aplicar el método del valor umbral por percentil. 2.2.3. Transformada de Distancia La transformada de distancia de la imagen binaria es utilizada a fondo en el seguimiento de contorno y en diferentes tipos de procedimientos de segmentación. Especı́ficamente, el mapa de distancias permite detectar y delinear el contorno exacto de gusanos aislados (sección 2.2.8), es útil en la generación automática de perfiles de gusanos (sección 2.2.6), y es esencial en la predicción heurı́stica de caminos de gusanos más probables (sección 2.2.5). Ası́ mismo, permite mejorar el rendimiento del algoritmo iterativo de reducción de capas diseñado por 24 (a) Imagen original (b) Método del valor umbral por percentil. Valor=0.074 Figura 2.2: Gusanos en medio lı́quido. Imagen original e imagen binaria obtenida a través del método del valor umbral por percentil, con un percentil de 0.074 Zhang y Suen, [34], como se describe en la sección 2.2.4 Implementación Tal como se describe en [33, p.196], los algoritmos para calcular transformadas de distancia pueden ser categorizados en dos grandes clases: métodos iterativos y métodos secuenciales o recursivos. Los métodos iterativos son particularmente eficientes en computadoras de arreglos celulares dado que se pueden procesar todos los pı́xeles en paralelo en cada iteración. Por otro lado, los métodos secuenciales se ajustan mejor a computadoras convencionales, al evitar iteraciones por ser independientes del tamaño de los objetos. Tomando en cuenta los tipos de computadoras a la que tienen acceso la mayorı́a de las personas que trabajan en el procesamiento de imágenes digitales, los algoritmos secuenciales ofrecen un rendimiento mucho más eficiente que los iterativos. Por esta razón, se escogió un enfoque secuencial para calcular la transformada de distancia de las imágenes de entrada. Particularmente se utilizó el algoritmo de transformación de dos recorridos con vecindarios de 3x3, presentado en [33], que es tanto eficiente, como sencillo de implementar. En el trabajo antes mencionado, se describe un algoritmo para calcular el mapa de distancias de una imagen en formato de mapa de bits, que consiste en dos recorridos y una operación por pixel. La complejidad del algoritmo es O(N ), donde N es el tamaño del arre- 25 glo que contiene la imagen. En dicho trabajo se presenta, inicialmente, un pseudo-código para las métricas de distancia de Manhattan y tablero de ajedrez, [33, p.197]. Luego, la definición es extendida para mejorar la eficiencia de los cálculos requeridos para generar un mapa de distancias a través de la métrica de distancias euclidianas, [33, p.198]. Este algoritmo de dos recorridos, fue implementado utilizando las tres métricas de distancia mencionadas anteriormente. Esto permite realizar una análisis más amplio del comportamiento y precisión del proceso de ajuste de formas, al cambiar de una métrica a la otra. Esto es debido a que los mapas de distancia generados por diferentes métricas, representan a los objetos de maneras diferentes, y tienden a ser sensibles a cambios posicionales u otras propiedades. En [20, p.332] se asegura que las métricas de tablero de ajedrez y Manhattan son sensibles a las rotaciones de los objetos, mientras que la métrica Euclidiana permanece invariable ante estas rotaciones; sin embargo, es mucho más costosa de calcular. Dada la forma alargada y estrecha de los gusanos C. elegans, y los diferentes niveles de precisión que proveen dichas métricas de distancia, es difı́cil decidir cuál se ajusta mejor al problema de estudio, por lo que debe ser determinado experimentalmente. La Figura A.3, presente en el Apéndice A muestra una imagen binaria y tres mapas de distancia obtenidos a partir de una imagen que contiene, únicamente, un gusano aislado. 2.2.4. Skeletonization La skeletonization de la imagen corresponde al proceso de obtener un camino de pı́xeles conectado y delgado, que tienda al eje central o eje medio de los gusanos en la imagen. A este camino se le denomina esqueleto. Este es un proceso clave en el enfoque de detección presentado en este trabajo, tal como se enuncia inicialmente en la Sec 2.2. El esqueleto de la imagen hace posible identificar la cantidad de gusanos presentes, permite diferenciar y separar las agrupaciones de gusanos de los gusanos aislados, y más importante, provee caminos entre extremos de gusanos (que tienden al eje medio). Estos caminos son fundamentales en el proceso de ajuste de formas (ver Sec 2.2.5), pues proveen información acerca de la localización de los gusanos en la imagen, al constituir trayectorias a lo largo de las cuales podrı́an estar dispuestos gusanos en la imagen. Para los efectos de este trabajo, el algoritmo de skeletonization a ser seleccionado debe garantizar la conectividad de los puntos del esqueleto, i.e. cada punto del esqueleto debe estar conectado con al menos otro punto del mismo esqueleto. Ası́ mismo, el esqueleto debe ser tan delgado como sea posible (hasta un 1 pixel de grosor) para simplificar el procesamiento y análisis de caminos. 26 Existen diferentes métodos de skeletonization que consisten en encontrar los puntos cresta en el mapa de distancias y conectarlos, como se explica en [21, 2, 1]. El enfoque presentado en [21] fue seguido inicialmente para calcular un esqueleto de imagen delgado en un tiempo de ejecución muy corto. Pese a que el estudio garantiza que el algoritmo permite calcular, satisfactoriamente, esqueletos conectados de un pixel de grosor, éste resultó ser eficaz únicamente para los gusanos aislados. Los esqueletos obtenidos para agrupaciones de gusanos resultaron generalmente desconectados, de más de un pixel de grosor y poco precisos. Esto llevó a la utilización de un enfoque diferente. En [34] se presenta un algoritmo iterativo para calcular el esqueleto de una imagen binaria. El algoritmo consiste, básı́camente, en la remoción por capas de aquellos pı́xeles que, de acuerdo a determinados criterios, no pertenecen al esqueleto del objeto. El diseño del algoritmo está dirigido a computadoras con procesadores paralelos, de manera que se puedan ejecutar varias operaciones de pixel al mismo tiempo, y mejorar ası́ el rendimiento. Para evitar el requerimiento de utilizar computadores con procesadores paralelos, sin desmejorar el rendimiento significativamente, el algoritmo fue ligeramente modificado. Dicha modificación consiste en utilizar el mapa de distancias para descartar chequeo de pı́xeles que pertenecen a capas más profundas que la capa que está siendo reducida en un momento determinado. Esto toma ventaja de la naturaleza de los mapas de distancia, quienes, por definición, establecen capas de distancia entre los pı́xeles del objeto y el fondo de la imagen. De esta manera, las capas se definen por el valor que tiene cada pixel en el mapa de distancias. La primera capa corresponde a un valor de distancia de uno (1), la segunda un valor de dos (2) y ası́ sucesivamente. El algoritmo es presentado en 2.2.1. El algoritmo se ocupa bien de los gusanos que se solapan, al construir un camino que se aproxima bien al eje central de las figura, y resulta en un esqueleto totalmente conectado y delgado (mayoritariamente 1-pixel de grosor). En la Figura A.4 presente en el Apéndice A se muestra el esqueleto de un conjunto de gusanos. 2.2.5. Segmentación de Gusanos Dado que el objetivo es ajustar las formas de gusanos individuales, es necesario localizarlos en la imagen y separarlos lo más posible, i.e. segmentar la imagen. La segmentación de los objetos de estudio permite mejorar la eficiencia y precisión del proceso de ajuste de formas, al reducir el área a analizar, disminuyendo ası́ la cantidad de combinaciones diferentes que deben ser tomadas en cuenta. Una vez que se han identificado los puntos extremos, se pueden calcular los diferentes caminos que existen entre ellos a partir del esqueleto. A través del conjunto de puntos extremos y de la cantidad de caminos e intersecciones, se puede determinar 27 Algoritmo 2.2.1 skeletonization por reducción por capas pixelesObjeto ← obtenerP ixelesObjetoBinario() imagenT D ← calcularT ransf ormadaDistancia() indiceContorno ← 1 reducir = T rue while reducir do {eliminar pı́xeles del borde sur-este y pixel de esquina nor-oeste} for pixel in pixelesObjeto do if ImagenDT (pixel) > indiceContorno then {saltar iteración} else eliminarP ixel ← condicionSurEste(pixel) if eliminarP ixel then pixelesObjeto.eliminar(pixel) reducir ← T rue end if end if end for {eliminar pı́xeles del borde nor-oeste y pixel esquina sur-este} for pixel in pixelesObjeto do if imagenT D(pixel) > indiceContorno then {saltar iteracion} else eliminarP ixel ← condicionN orEste(pixel) if eliminarP ixel then pixelesObjeto.eliminar(pixel) reducir ← T rue end if end if end for end while return pixelesObjeto 28 el tipo de grupo de gusanos al que pertenece cada grupo de objetos segmentados, ya sean gusanos aislados o agrupaciones de gusanos. De esta manera, el proceso de ajuste de formas se puede llevar a cabo en cada grupo por separado. Otro proceso de segmentación que debe ser llevado a cabo es la identificación de caminos de gusanos individuales, tanto para gusanos aislados como para agrupaciones de gusanos. Estos son caminos que no tiene bifurcaciones y que comienzan y terminan en puntos extremos. El esqueleto de un gusano aislado determinado corresponde a un camino de este tipo, y es utilizado para dos procesos diferentes: encontrar el contorno del gusano aislado (ver sección 2.2.8) y generar un perfil de gusanos (ver sección 2.2.6). El perfil de gusanos permite definir una representación general de los gusanos en la imagen. De esta manera, a través del perfil y un camino entre dos extremos, se puede construir una silueta de gusano, que tiene como eje central al camino escogido. Con respecto a las agrupaciones de gusanos, se deben encontrar caminos de gusanos factibles entre pares de puntos extremos. Si un camino existe entre un par de puntos extremos, será posible generar una conformación de gusano válida a través del proceso de optimización. Estos caminos pueden ser escogidos, tanto calculando todas las combinaciones de caminos posibles entre pares de puntos extremos, como a través de un algoritmo de predicción de caminos probables, como el que se describe más adelante en esta sección. A continuación se presentan detalles de la implementación realizada de cada uno de los diferentes procesos previamente descritos en esta sección, relativos a la segmentación de gusanos. Puntos Extremos de Gusanos A partir del esqueleto calculado se pueden detectar puntos extremos de gusanos. Aquellos pı́xeles del esqueleto que están conectados (son vecinos) de dos o más pı́xeles se denominan pı́xeles de cuerpo. Estos pı́xeles de cuerpo pertenecen al esqueleto pero no son extremos. Por otro lado, los puntos extremos del esqueleto son aquellos que están conectados con un sólo pixel y pueden corresponder al extremo de un gusano, aunque no necesariamente. Dado que el algoritmo de skeletonization basado en reducción por capas no permite asegurar que los extremos identificados pertenezcan a extremos de gusanos en la imagen, se debe llevar a cabo un proceso de expansión del esqueleto, para alcanzar los puntos extremos reales. El algoritmo se fundamenta en estirar los extremos del esqueleto, siguiendo una dirección coherente, hasta alcanzar puntos de contorno que vendrı́an a representar los extremos 29 de los gusanos. El algoritmo de expansión utiliza la definición de vecino direccional, que se presenta en [21, p.334]. Un pixel D es vecino direccional de otro pixel P , si pertenece a la vecindad de P (8-vecindad ) y está localizado dentro de un rango de ± 45◦ de cambio de pendiente, con respecto a la orientación actual del camino recorrido hasta P . En la Figura 2.3 se presentan tres ejemplos de vecindades direccionales. El algoritmo consiste en seguir el mejor camino direccional, partiendo de cada punto extremo y expandiendo el esqueleto, hasta que un punto de contorno es encontrado. Vecino Direccional Camino de Esqueleto D D P D D P D P D D D Figura 2.3: Tres vecindades direccionales El algoritmo de expansión de esqueleto puede ser resumido en los siguientes pasos: Seleccionar un punto extremo. Encontrar el pixel de esqueleto anterior y calcular la vecindad direccional. Seleccionar el vecino direccional con el menor valor en el mapa de distancia y marcarlo como pixel de esqueleto. Si el vecino seleccionado no es un punto de contorno, repetir el proceso. Seguidamente se lleva a cabo un proceso de remoción de pı́xeles de objeto incorrectos, que consiste en eliminar aquellos esqueletos cuyo tamaño (en cantidad de pı́xeles) sea menor que un umbral determinado. Esto permite remover regiones ligeramente ruidosas, ası́ como puntos extremos incorrectos. Una vez que el esqueleto ha sido expandido satisfactoriamente, los puntos extremos del esqueleto son marcados como puntos extremos de gusanos. Es importante considerar que, en algunos casos, hay puntos extremos de gusanos que no pueden ser detectados a través del proceso previamente descrito; particularmente en imágenes con gran cantidad de gusanos, donde existe una alta posibilidad de que los solapamientos entre 30 gusanos oculten puntos extremos. Para solucionar esto, se puede llevar a cabo un proceso manual de adición de puntos extremos faltantes, como se explica en la sección 2.2.9. Segmentación en Grupos Habiendo detectado los puntos extremos de los diferentes grupos de esqueletos en la imagen, se puede identificar a qué tipo de grupo de gusano corresponde cada uno, ya sea a una agrupacion de gusanos o uno aislado. Esto se hace identificando los extremos de gusanos que estan unidos a través de un camino del esqueleto. Como se explicó previamente, los gusanos que se superponen son considerados parte de un objeto en común en la imagen binaria, por lo que los puntos extremos que pertenecen a los esqueletos de agrupaciones de gusanos se encuentran conectados a través de un camino del esqueleto. Basado en este razonamiento, se diseñó un algoritmo que detecta la cantidad de puntos extremos que son conectados a través de caminos de un determinado esqueleto, y determina el tipo de grupo de gusanos al cual pertenece. Aquellos esqueletos donde se conectan exactamente dos puntos extremos a través de uno y solo un camino, corresponden a gusanos aislados. Mientras que los esqueletos en donde se conectan más de dos puntos extremos, corresponden a agrupaciones de gusanos. Este procedimiento es descrito en los algoritmos 2.2.2 y 2.2.3. Algoritmo 2.2.2 Segmentación en grupos de gusanos listaP tsExt ← lista de puntos extremos indiceAgrupacion ← 0 for ptExtremo in listaP tsExt do if ptExtremo.visitado() then {saltar iteración} else indiceAgrupacion+ = 1 segmentarP orCaminos(ptExtremo, indiceAgrupacion) end if end for Predicción de Caminos Una agrupación de gusanos es definida por un esqueleto que conecta puntos extremos a través de caminos. Sin embargo, hasta esta etapa, se desconoce el par de puntos extremos que pertenecen a cada gusano en la imagen, y el mejor camino en el esqueleto que conecte a 31 Algoritmo 2.2.3 Seguimiento de (segmentarP orCaminos(ptActual, clusterCount) ) Entrada: ptActual Entrada: indiceAgrupacion if not ptActual.esP untoEsqueleto() then return else agregar(ptExtremo, indiceAgrupacion) end if {continuar siguimiento de camino} if ptActual.esP tExtremo() then marcarP tExtremoV isitado(ptActual) end if vecinos ← obtenerV ecindad() for v in vecinos do f ollowP ath(v, indiceAgrupacion) end for caminos para segmentación cada par, y que mejor represente el eje central de cada gusano respectivo. El algoritmo de optimización, cubierto en la sección 2.2.8, lleva a cabo un proceso de manipulación de siluetas para ajustar formas de gusanos en la imagen, dados dos puntos extremos y un camino que los conecte. Para calcular la forma de gusano más probable que parte de un punto extremo determinado, el algoritmo tendrı́a que probar cada camino posible que parte de dicho punto extremo y seleccionar el que mejor se ajuste, lo que tiende a traducirse en un alto costo en tiempo de ejecución. Con el fin de reducir el tiempo de ejecución del algoritmo de ajuste de formas, y ası́ mismo proveer un parámetro adicional para determinar la factibilidad de los caminos analizados, se desarrolló un algoritmo de predicción de caminos. En sı́ntesis, el algoritmo lleva a cabo una búsqueda heurı́stica para determinar aquellos caminos que tienen mayor probabilidad de representar a un gusano de la imagen. El algoritmo de predicción se basa en la idea de evitar caminos que tienden a describir conformaciones no-naturales de gusanos. Para esto es necesario identificar cambios abruptos en el camino y flexiones poco comunes o imposibles en gusanos. La idea desarrollada para lograr esto se centra en que cada paso siguiente que sea seleccionado, corresponda a la dirección más coherente con respecto al camino que ha sido trazado hasta ese momento. Más especı́ficamente, se escoge el conjunto S de los últimos N pasos trazados, y a partir de éste, se calcula la dirección más comúnmente seguida en esa porción del recorrido. 32 Una dificultad considerable que surge de este enfoque, es que el seguimiento del camino tiende a evitar centros de bifurcaciones. Una bifurcación ocurre cuando más de un camino diferente puede ser seguido a partir de un punto determinado. Dado que estas bifurcaciones son originadas por solapamiento de gusanos, el área de la bifurcación suele ser grande, y por tanto hay mayor cantidad de pı́xeles posibles a escoger como siguiente paso. Los centros de bifurcaciones son aquellos puntos que se ubican en la zona más céntrica de estas áreas, y por tanto se encuentran a una distancia normalmente similar de todos los caminos que se bifurcan. Para poder determinar con mayor precisión el camino más adecuado a seguir, el trazado del camino debe aproximarse a los centros de bifurcaciones. Sin embargo, siguiendo el enfoque presentado, estos centros se tienden a bordear, es decir se tiende a seguir los contornos de las áreas de bifurcaciones en vez de adentrarse. Por esta razón se desarrolló una heurı́stica, que permita al recorrido aproximarse a los centros de bifurcaciones y llevar ası́ a una decisión mejor informada. La heurı́stica consiste básı́camente en considerar el valor en el mapa de distancias del pixel elegible, multiplicado por un factor de equilibrio. De esta manera, la selección del pixel siguiente se basa en dos valores fundamentales: la cantidad de veces que ha sido escogida la dirección en la que se encuentra dicho pixel en los últimos N pasos, y el valor de la heurı́stica para ese pixel. Esto puede expresarse de la siguiente forma: Siguiente(p) = máx (valorDir(direccion(p, s), N ) + td(n) ∗ f actorH) s∈vecindad(p) donde p es el último pixel marcado, valorDir es una función que calcula la cantidad de veces que la dirección del pixel vecino s ha sido escogida, td es el mapa de distancia y f actorH es el factor heurı́stico que controla la influencia del mapa de distancia. El Algoritmo 2.2.4 presenta un pseudo-código para este enfoque de predicción de caminos de gusanos. 2.2.6. Descriptor de Forma Como se mencionó inicialmente en la sección 2.2, el enfoque metodológico diseñado se basa en la manipulación de siluetas de gusanos que se generan a partir de un descriptor de forma. La forma de un gusano puede ser descrita en términos geométricos como objetos alargados, delgados y cilı́ndricos. Dado que el proceso de skeletonization y la posterior segmentación de la imagen, hacen posible obtener caminos entre pares de extremos de gusanos, un descriptor de forma permitirı́a construir siluetas de gusanos a lo largo del eje central definido por el 33 Algoritmo 2.2.4 Pseudo código: Algoritmo de predicción de caminos listaP tsExtremos ← lista de puntos extremos longitud ← longitud estimada de gusanos multiplicada por un factor escalar for puntoExtremo in listaP tsExtremos do if alcanzado(puntoExtremo) then {saltar iteracion} end if marcarComoAlcanzado(puntoExtremo) camino ← lista vacia extremoAlcanzado ← F alse pixelActual ← puntoExtremo while not(extremoAlcanzado) and size(path) < longitud do pixelActual ← obtenerM ejorV ecino(pixelActual) actualizarArregloDirecciones(direccion(pixelActual)) camino.agregar(pixelActual) if esP untoExtremo(pixelActual) then extremoAlcanzado ← T rue end if end while end for camino, lo que servirı́a como parámetro de entrada para el algoritmo de ajuste de formas. El descriptor fue diseñado basándose en la idea de generar una silueta de gusano representativa alrededor del eje central. El descriptor consiste en dos elementos principales: un conjunto de puntos de control y un perfil de gusano. El conjunto de puntos de control está conformado por N puntos equidistantes a lo largo del eje central del gusano definido por el esqueleto, incluyendo los dos puntos extremos. Por su parte, el perfil de gusano define N valores de grosor que son asociados a cada punto control, respectivamente. El grosor de un punto control determinado representa el radio de la circunferencia que tiene como centro a dicho punto. De esta manera, seleccionando dos puntos en posiciones opuestas de la circunferencia de grosor de capa punto control, y uniendo luego estos puntos a través de una curva suave, se obtiene un contorno que modela la silueta del gusano, como se muestra en la Figura 2.4. Para obtener un contorno que represente una forma de gusano de manera precisa, la escogencia de los puntos opuestos en las circunferencias de grosor debe tomar en cuenta las flexiones del esqueleto. Dado que el contorno se construye de acuerdo al grosor de los puntos de control, las flexiones del gusano a representar ocurren en cada uno de los puntos de control. El grado de flexión de cada punto control se calcula como el ángulo que existe entre las rectas que conectan dicho punto, con el punto anterior y posterior, respectivamente. 34 70° 140° Figura 2.4: Construcción de una forma de gusano basada en un descriptor de forma Por cada punto control, se calcula la bisectriz del ángulo de flexión y luego se marcan los dos puntos opuestos donde se intersecan la bisectriz y la circunferencia de grosor. Al calcular una curva que pasa por todos estos puntos, se obtiene un contorno suave que modela una forma de gusano. Generar una curva suave alrededor de los puntos de control mejora la precisión de la forma descrita, en comparación con trazar lı́neas rectas que conecten los puntos de contorno. Esta representación permite modelar el contorno con más detalle, utilizando un cantidad considerablemente menor de puntos. La curva suave se obtiene calculando un spline cardinal (ver sección 1.7) dados los puntos contorno. El perfil de gusanos para un conjunto de puntos de control de tamaño determinado puede ser, tanto definido manualmente, como calculado automáticamente a partir de los gusanos aislados, como se explica en el siguiente punto. Generación Automática de Perfiles La forma de los gusanos aislados puede ser ajustada con precisión, siguiendo los puntos de contorno en el mapa de distancia, como se explica en la sección 2.2.8. Dado un conjunto de formas ajustadas de gusanos aislados y sus esqueletos respectivos, se puede generar un perfil de gusanos, midiendo el grosor de los puntos de control y calculando la media aritmética de cada uno. Para medir el grosor de cada punto control, se selecciona inicialmente un conjunto de N 35 puntos equidistantes que cubren el esqueleto de un gusano aislado determinado. Seguidamente, como se describe en la sección previa, se calculan las bisectrices de los ángulos que existen entre las rectas que conectan los puntos de control. A partir de cada punto control, se recorren los pı́xeles de la bisectriz hasta que un punto de contorno es encontrado. Este recorrido se hace en los dos sentidos, por lo que el proceso devuelve dos puntos de contorno. A continuación, se calcula la distancia Euclidiana que existe desde cada punto control hasta sus dos puntos opuestos respectivos, y se almacena el promedio de distancia. Al repetir este proceso para cada gusano aislado se genera un conjunto de perfiles de gusanos aislados, uno por cada gusano. A partir de este conjunto de perfiles, se calcula un perfil general encontrando la media aritmética de los valores de grosor por cada punto control. Para que el perfil sea lo más representativo posible, se descarta el 20 % de los gusanos más grandes y más pequeños. El valor de grosor para los puntos extremos, es decir, el primer y último punto en el conjunto de tamaño N , es cero, por lo que en los extremos solo se genera un punto de contorno, en vez de dos como en el resto de los puntos de control. Este proceso permite calcular entonces un perfil de grosor que define la distancia promedio de cada punto control a su punto de contorno más cercano, haciendo posible la generación de siluetas genéricas de gusano alrededor de cualquier esqueleto. 2.2.7. rasterización de Siluetas El enfoque de ajuste de formas se centra en minimizar la distancia entre siluetas generadas y las formas de gusanos en la imagen. Para medir esta distancia se debe conocer el área de la silueta que es deformada. El área de la silueta puede ser calculada a partir de su contorno. En términos del tipo de datos que aquı́ se manejan, el área consiste en el conjunto de pı́xeles que son cubiertos por la silueta, incluyendo los pı́xeles de contorno. El enfoque seguido para calcular el área consiste en dividir en triángulos el espacio definido por el contorno cerrado de la silueta y luego rasterizar cada triángulo por separado. El término rasterizar se refiere al proceso de transformar una imagen descrita en términos vectoriales en un conjunto de pı́xeles, de manera que pueda ser visualizada. La descomposición de un polı́gono en triángulos simples, es un problema clásı́co de computación gráfica. Diversas soluciones se han propuesto entre ellas: triangulación de Delaunay, triangulación de costo mı́nimo y método de ear clipping. 36 Implementación El método de ear clipping fue escogido por su capacidad para triangular polı́gonos cóncavos y su sencillez de implementación. Para convertir el contorno del gusano en un polı́gono, se transforma el spline que lo define en un conjunto discreto de puntos. Cada punto sucesivo es conectado a través de rectas, definiendo un polı́gono cerrado. Para que la representación poligonal no afecte la suavidad del contorno definido por el spline, se escogen los puntos discretos (pı́xeles) lo más cerca posible uno de otros. Seguidamente el contorno poligonal es triangulado. Cada triángulo es rasterizado siguiendo el algoritmo de rasterización por barrido explicado en [13]. El algoritmo consiste en rasterizar lı́neas horizontales entre los lados del triangulo hasta que el área es cubierta por completo. Una vez rasterizados, se pueden almacenar el área y el contorno de la silueta en forma de datos manejables y visualizables. 2.2.8. Detección y Ajuste de Formas Una vez que la imagen ha sido segmentada en diferentes grupos de gusanos, y luego de calculado el esqueleto que representa el eje central de dichos grupos y un perfil general de los gusanos en la imagen, se puede llevar a cabo el proceso de ajuste de formas. Este proceso permite detectar los gusanos individuales que componen los diferentes grupos y almacenar sus formas respectivas en forma de datos manejables y visualizables. El proceso de detección y ajuste es diferente para cada tipo de grupos de gusanos, gusanos aislados y agrupaciones de gusanos. En esta sección se explican las caracterı́sticas de este proceso en cada caso. Ajuste de Formas en Gusanos Aislados En esta etapa de la metodologı́a, se conocen los diferentes gusanos aislados y se tiene, por cada uno, un esqueleto delgado que conecta dos puntos extremos de gusano a través de un camino. Dado que este proceso es llevado a cabo después de que cada punto extremo ha sido identificado correctamente y se conoce que el esqueleto no tiene bifurcaciones, el área conformada por los pı́xeles objeto del grupo segmentado corresponderán a la forma exacta del gusano aislado en la imagen. 37 Con el propósito de tener una información más amplia acerca de los gusanos detectados, se calcula también el contorno a partir del área previamente identificada. El contorno es trazado encontrando el pixel de borde más cercano a algún punto extremo del gusano y recorriendo cada pixel de contorno vecino hasta cerrar el camino. Un pixel de contorno es aquel que tiene el valor de uno en el mapa de distancias. Este proceso permite, entonces, obtener el contorno y el área de cada gusano aislado en la imagen, de manera precisa. Ajuste de formas en Agrupaciones de Gusanos Las agrupaciones de gusanos representan un escenario de detección más complicado, debido a la cantidad variable de gusanos que los conforman y el solapamiento entre éstos. El solapamiento entre gusanos hace difı́cil diferenciar el conjunto de pı́xeles que pertenecen al área de un gusano u otro. Por esta razón, se diseñó un proceso de ajuste de formas que se encarga de calcular las conformaciones o formas de gusanos factibles que parten de cada punto extremo, para luego determinar el conjunto de conformaciones que mejor ajustan la agrupación de gusanos como un todo. El ajuste de formas sigue un enfoque de optimización basado en la minimización de distancias entre gusanos de la agrupación y siluetas genéricas, que son deformadas para ajustarse a ella. Por lo tanto, una conformación de gusano es obtenida cuando la disimilitud entre una silueta deformada y un área determinada de la agrupación, es la mı́nima posible. A continuación, se describen los pasos y caracterı́sticas principales de este proceso: Por cada punto extremo se calcula el conjunto de caminos del esqueleto factibles que comienzan en ese extremo. Dado un camino del esqueleto, se construye una silueta genérica a través del descriptor de forma y el perfil de gusanos en la imagen. La silueta es dispuesta a lo largo del camino. Un proceso de optimización se encarga de deformar la silueta hasta que la disimilitud (distancia) entre dicha silueta y la imagen binaria sea minimizada. Una vez optimizada, la silueta corresponderá a una conformación de gusano factible. Una vez que se han calculado todas las posibles conformaciones que parten de cada punto extremo, se selecciona el conjunto de conformaciones que maximiza el número 38 de puntos extremos cubiertos y minimiza el valor de distancia acumulado. Las conformaciones seleccionadas corresponden a los mejores ajustes que se pueden obtener de forma automática. Las conformaciones escogidas que no representan a un gusano real en la imagen (conformaciones incorrectas) pueden ser corregidas a través de un sencillo proceso manual. Deformación de Siluetas Los caminos del esqueleto que son calculados (que van de un punto extremo a otro), corresponden a aproximaciones de posibles esqueletos de gusanos en la imagen. Dado que el modelo a deformar se construye sobre un camino del esqueleto (que tiende al eje medio de un área de la agrupación de gusanos), la silueta generada inicialmente se encontrará siempre cerca de una forma de gusano real. Dado esto, a través de perturbaciones simples y ligeras de la silueta generada, se podrá deformar el modelo lo suficiente como para corregir la desviación del esqueleto con respecto al eje central real del gusano a ajustar. De esta manera, se permite obtener la forma de gusano mejor aproximada que se puede calcular a partir del camino dado. La deformación de la silueta se hace a través del descriptor de forma, que se encuentra definido por un conjunto de puntos de control. Con el objetivo de proveer formas de gusano factibles y para limitar la cantidad de deformaciones posibles, una deformación consistirá en el reposicionamiento de un punto control. La cantidad de posiciones diferentes que un punto control puede tomar es fija, y se disponen a lo largo de la bisectriz del ángulo del punto control. Este ángulo depende, a su vez, de la posición de los otros puntos de control. Siguiendo esto, se puede obtener un gran conjunto de deformaciones posibles de forma rápida. Funcional de Energı́a La función de distancia debe proveer una medida de qué tan bien se aproxima la silueta que se deforma a un gusano en la imagen, es decir, qué tan bien se ajusta la forma deformada. Para definir esta medida de distancia se utilizó el concepto de funcional de energı́a, tal como se define en el modelo de contornos activos, [11]. El funcional de energı́a describe la distancia entre el modelo que se deforma y la imagen, guiando el proceso de ajuste de contornos. De esta manera, mientras menor sea el valor devuelto por el funcional de energı́a, menor es la distancia y por tanto mejor se ajusta el modelo. El funcional es formulado en base a dos conceptos: la energı́a externa y la energı́a interna. La suma de los valores de la energı́a externa e interna relativas a un modelo, constituye el 39 valor de energı́a para ese modelo especı́fico. La energı́a externa describe qué tan bien se ajusta el modelo deformado a la imagen. Conociendo que, mientras mayor es la cantidad de pı́xeles de fondo que son cubiertos por el modelo, más alejado se encuentra el modelo de un gusano en una agrupación; una medida apropiada para la energı́a interna serı́a la proporción de pı́xeles de fondo que son cubiertos por el modelo deformado. De esta manera, mientras mayor es la cantidad de pı́xeles de objeto que son cubiertos, menor es el valor de la energı́a externa. Por lo tanto, dado un modelo M y la funciones bg y f g que miden la cantidad de pı́xeles de fondo y de objeto que cubre el modelo, respectivamente, se puede definir la energı́a externa para este problema de la siguiente forma: Eext (M ) = bg(M ) bg(M ) + f g(M ) Otra posibilidad consistirı́a en tomar en cuenta, únicamente, la cantidad de pı́xeles de fondo. Sin embargo, dada la variabilidad de la cantidad de pı́xeles que puede cubrir una silueta de gusano, esta medida causarı́a a la energı́a externa ser muy variable de una silueta a otra. La energı́a interna modela la resistencia de la silueta (modelo) a perder, a través de la deformación, las caracterı́sticas que la hacen representar a la clase que modela, por ejemplo, la clase de gusanos. Esto significa que, para el problema que aquı́ se aborda, la energı́a interna modeları́a la resistencia de la silueta de gusano a ser deformada de manera tal que dejase de ser representativa de un gusano. Como se explica en [11], la energı́a interna funciona como una restricción de suavidad de los contornos del modelo y se formula explı́citamente (normalmente en términos diferenciales). Sin embargo, en el enfoque propuesto en este trabajo, cada silueta a deformar se genera a partir de un perfil de gusano ajustado a un descriptor de forma, por lo que cada silueta generada pertenece inequı́vocamente a la clase de siluetas de gusano. Por esta razón no es necesario incluir la energı́a interna en el funcional de energı́a. Optimización A través del proceso de optimización se desean obtener las conformaciones de gusanos factibles dentro de una agrupación de gusano. El enfoque general se basa en producir siluetas genéricas a partir de los caminos del esqueleto que conectan puntos extremos de gusanos, y deformarlas levemente de manera que se ajusten a la imagen lo mejor posible. Una vez que se tiene un descriptor de formas basado en el esqueleto (sección 2.2.6), un método de deformación de siluetas (sección 2.2.8) y una función objetivo que modele la distancia entre las siluetas y la agrupación a ajustar (sección 2.2.8), sólo basta escoger un método de opti- 40 mización. De acuerdo al enfoque que aquı́ se presenta, se puede utilizar cualquier método de optimización que permita minimizar la función objetivo que define la distancia entre formas de gusanos, a partir de una solución factible inicial, que, a su vez, permite generar otras soluciones factibles a través de un método de deformación. Dado lo rápido que se pueden calcular grandes conjuntos de deformaciones, de acuerdo al enfoque presentado en la sección 2.2.8, se escogió una meta heurı́stica de búsqueda local como método de optimización. El proceso en general consiste en obtener el mejor individuo de la vecindad que mejore el valor del funcional de energı́a, hasta que la función sea minimizada. La vecindad es calculada de la siguiente manera: Para una silueta determinada, se efectúan cuatro deformaciones diferentes por cada punto control. Particularmente, dos en cada una de las dos direcciones opuestas de la bisectriz del punto control. Existen entonces (N − 2) ∗ 4 deformaciones posibles (vecinos) por cada silueta 1 , donde N es el número de puntos de control. De esta manera, una vecindad consiste en deformaciones leves y ligeramente más fuertes de una silueta de gusano para cada punto control. Los puntos de control que corresponden a los extremos del esqueleto permanecen fijos. Una vez que la mejor silueta es obtenida, se lleva a cabo un proceso de corrección de contornos. Este proceso consiste en la expansión o contracción de determinadas secciones del contorno de la silueta, para adaptarla al gusano real de la imagen. Esto es requerido dado que la silueta optimizada es generada inicialmente siguiendo un perfil de gusano, el cual representa la forma de los gusanos de una manera genérica, y por tanto no describe las formas exactas de los gusanos en la imagen. En este proceso, los puntos de contorno construidos a partir de los puntos de control son empujados hacia puntos de contorno de la imagen, de acuerdo al mapa de distancias, ya sea expandiéndolos o contrayéndolos. Cada posición nueva considerable para el punto contorno debe poseer un valor en el mapa de distancia similar o menor al que poseı́a originalmente. Selección de Conformaciones Después que el proceso de optimización es llevado a cabo, se debe seleccionar un subconjunto de conformaciones por cada agrupación de gusano, que representará la asignación final de conformaciones y por tanto la solución encontrada al final del proceso. El subconjunto 1 Los puntos de control que corresponden a los extremos permanecen fijos. Por eso el número de puntos de control tomados en cuenta es N − 2 41 seleccionado debe maximizar la cantidad de puntos extremos cubiertos y minimizar la suma de las energı́as finales de cada conformación (valor minimizado de la función objetivo). Cada punto extremo debe corresponder como máximo a una conformación. De esta manera, a cada punto extremo le corresponde uno y sólo uno de los otros puntos extremos. Por consiguiente, el subconjunto óptimo de conformaciones corresponderá a la asignación de costo mı́nimo (energı́a de cada conformación) entre el conjunto de puntos extremos, por cada agrupación de gusano. Esta asignación puede resolverse con el problema de asignación de costo mı́nimo de un grafo no-bipartito. Sin embargo, dada la complejidad de de este problema (NP-difı́cil) y su posible sobrecarga en rendimiento en el caso de una implementación poco eficiente, se diseñó una solución diferente, consistiendo en un algoritmo greedy iterativo. El algoritmo es aplicado a subgrupos de agrupaciones de gusanos. Estos sub grupos están comprendidos, únicamente, por puntos extremos conectados por caminos factibles. Los puntos extremos que pertenecen a subgrupos serán llamados puntos conflictivos. El algoritmo consiste en lo siguiente: Dado N puntos extremos conflictivos, se construye una tabla de N xN en la que cada elemento de la tabla almacena el costo de la mejor conformación que puede ser obtenida a partir de un camino de esqueleto entre cada par de puntos extremos. Luego, para la fila de valores de un punto extremo inicial, se selecciona el mı́nimo valor y se realiza una asignación entre el punto de la fila y correspondiente punto de la columna (siempre puntos diferentes). A partir de aquı́, se elimina el resto de las conformaciones asociadas a estos puntos extremos. Seguidamente, se repite el proceso entre las filas restantes hasta que se ha asigando una conformación a cada fila, o hasta que no existan mas posibilidades, momento en el cual se ha encontrado una asignación. Esta asignación es almacenada en memoria, se reconstruye la tabla previa, y se repite el proceso nuevamente a partir de una fila diferente, hasta que todas las filas han sido tomadas como filas iniciales. De todas las soluciones encontradas en cada iteración, se escoge aquella que cubre el mayor número de puntos extremos y que posee el menor valor acumulado de energı́a. 2.2.9. Corrección Manual Un proceso de corrección manual puede ser llevado a cabo para mejorar la efectividad de la detección y ajuste de formas, permitiendo tanto agregar puntos extremos no identificados como corregir conformaciones incorrectas. 42 Corrección de Puntos Extremos Los puntos extremos de gusanos son detectados inicialmente a través de la identificación de extremos del esqueleto de la imagen. Sin embargo, cuando el extremo de un gusano determinado se superpone con otra forma de gusano, la figura que describen se vuelve continua en la imagen binaria, por lo que será descrito como un camino continuo en el esqueleto. De ser ası́, el punto extremo no podrá ser detectado. Dado que el proceso de ajuste de formas está fundamentado en los caminos encontrados entre puntos extremos de gusanos, el hecho de obviar puntos extremos podrı́a afectar la efectividad de detección. Los puntos extremos de gusanos pueden ser detectados fácilmente por el ojo humano, especialmente teniendo el esqueleto del grupo de gusanos. Por esta razón, los puntos obviados pueden ser agregados rápidamente, a través de un proceso manual. El proceso consiste básicamente en observar los puntos que han sido agregados, inferir los puntos faltantes y agregarlos manualmente, por ejemplo, pulsando con el ratón de computadora en el pixel de la imagen que se muestra en la ventana de Endrov. Cuando un punto añadido posee más de un esqueleto vecino, el usuario tendrá que remover el pixel adicional, para cumplir con la definición de punto extremo. En resumen, el usuario puede agregar los puntos extremos faltantes, seleccionando dicho pixel. En algunos casos, tendrá que seleccionar un pixel vecino para desconectarlo de caminos incorrectos. Corrección de Conformaciones En caso de que algunas de las conformaciones asignadas no sean correctas, la solución puede corregirse de manera manual. Dado que en el proceso de optimización son calculadas todas las posibles conformaciones entre pares de puntos extremos, la corrección de asignaciones incorrectas se reduce a seleccionar el par de puntos extremos correctos. Un usuario no experimentado es capaz de reconocer las asignaciones incorrectas con facilidad, ası́ como los puntos extremos que éstas conectan, por lo que el proceso tenderá a ser rápido. CAPÍTULO 3 EXPERIMENTOS Y RESULTADOS En este capı́tulo se presentan los diferentes experimentos llevados a cabo para probar el rendimiento de la solución de detección y ajuste de formas desarrollada, explicando la razón de su elección y los diferentes objetivos de las pruebas. Seguidamente, se presentan y discuten los resultados obtenidos a partir de los experimentos, donde se indican las ventajas e inconvenientes de la solución presentada. 3.1. Experimentos Con el objetivo de poner a prueba la solución implementada, se utilizaron tres imágenes digitales de gusanos en medio lı́quido, provistas por Johan Henriksson, investigador del Departamento de Biociencias y Nutrición del Instituto Karolinska en Suecia. A cada imagen le corresponde un nivel de dificultad diferente, asignado de acuerdo al número de gusanos y grado de solapamiento. Ası́, mientras mayor es la cantidad de gusanos en la imagen, y mientras mayor es la cantidad de gusanos que se superponen, mayor es el nivel de dificultad. El grado de solapamiento se determina por el número de gusanos que pertenecen a las diferentes agrupaciones de gusanos, y por la cantidad de gusanos en la imagen. Las imágenes seleccionadas fueron denominadas: imagen de prueba 1, imagen de prueba 2 e imagen de prueba 3, y se presentan en la Figura 3.1. 44 (a) Imagen de Prueba 1 (b) Imagen de Prueba 2 (c) Imagen de Prueba 3 Figura 3.1: Conjunto de imágenes de prueba Las caracterı́sticas del conjunto de prueba se muestran en la tabla 3.1, donde las diferentes pruebas aparecen en orden creciente de dificultad. Tabla 3.1: Caracterı́sticas del conjunto de prueba Imagen Número de Gusanos Aislados Número de Agrupaciones Test 1 Test 2 Test 3 11/19 (57.8 %) 8/33 (24.2 %) 13/38 (34.2 %) 3 3 5 Número de Gusanos en Agrupaciones 8/19 (42.1 %) 25/33 (75.7 %) 25/38 (65.7 %) Total de Gusanos 19 33 38 Por cada imagen de prueba se llevó a cabo una serie de experimentos, para analizar el rendimiento de los diferentes procesos involucrados en la metodologı́a de la solución, en base a la implementación desarrollada. El proceso global fue dividido en tres etapas que representan los pasos fundamentales de la metodologı́a: procesamiento inicial, detección y ajuste automático de formas y correción manual. La etapa de procesamiento inicial involucra todos los pasos de procesamiento de imágenes que son realizados antes del proceso de optimización, tales como: segmentación inicial, transformación por distancia, skeletonization, agrupamiento de gusanos, detección de puntos extremos y creación del perfil de gusanos. Entre estos, la transformación por distancia y la skeletonization siguen algoritmos previamente analizados y probados, (ver Sec. 2.2.3 y Sec. 2.2.4) y producen resultados sencillos de probar, por lo que no hay necesidad de ahondar en 45 ellos. El proceso de segmentación y agrupamiento de gusanos, que se deriva del esqueleto de la imagen, es igualmente sencillo. Por otro lado, los procesos de segmentación inicial por un método del valor umbral, detección de puntos extremos y generación de perfiles dependen de las caracterı́sticas de la imagen de entrada, por lo cual se llevaron a cabo diferentes experimentos para analizar su rendimiento. La etapa de detección y ajuste de formas consiste en un serie de experimentos que tratan del proceso automático de optimización para ajustar formas en agrupaciones de gusanos y gusanos aislados. Estos experimentos buscan medir la eficacia en la detección y la eficiencia en tiempo de diferentes variaciones del proceso de ajuste de formas, con el propósito de sacar conclusiones más detalladas acerca de la eficacia del algoritmo y la factibilidad de la solución automática. La tercera etapa, corrección manual, tiene como objetivo medir el tipo y cantidad de correcciones manuales que deben ser llevadas a cabo por el usuario para corregir conformaciones incorrectas, en cada imagen de prueba. Se analizan, ası́ mismo, las diferencias entre las diferentes conformaciones factibles por cada punto extremo, para obtener conclusiones acerca de la sensibilidad del funcional de energı́a. Los experimentos fueron ejecutados en una computadora personal de 2.00 Ghz AMD Turion, Procesador Mobile Dual-Core, 1MB cache y 3Gb de memoria RAM, bajo Linux, distribución Ubuntu, utilizando el software Endrov. 3.2. Resultados En esta sección se presentan y discuten los resultados obtenidos de los experimentos realizados. Los resultados son distribuidos en tres etapas de acuerdo a los experimentos llevados a cabo: procesamiento inicial, detección y ajuste de formas y correción manual. 3.2.1. Procesamiento Inicial En esta sección se presentan los resultados para los siguientes procesos: segmentación inicial y detección de puntos extremos. Seguidamente, se presenta una breve discusión sobre la generación de perfiles de gusanos. 46 Segmentación Inicial (Método del Valor Umbral) Como se explica en la Sec. 2.2.2, Endrov provee implementaciones para los siguientes MVU: Fukunaga, máxima entropı́a, Otsu y percentil. Con la intención de determinar el método más apropiado, se probaron los diferentes métodos con el conjunto de prueba. La prueba por método consistió, básı́camente, en ajustar los parámetros de entrada hasta encontrar la mejor imagen binaria posible, a partir de cada imagen del conjunto de prueba. La determinación de la calidad de cada imagen binaria se llevó a cabo a través de inspección visual. En la Figura A.5 presentada en el Apéndice A, se muestran las mejores imágenes binarias que se obtuvieron a partir de la imagen de prueba 2, aplicando cada uno de los métodos mencionados anteriormente. El método del valor umbral por percentil resultó ser el mejor para las tres imágenes del conjunto de prueba, con gran diferencia sobre el resto de los métodos. Además, los mejores valores de percentil por imagen resultaron bastante cercanos entre sı́, lo que indica la posible factibilidad de ajustar un método de valor umbral automático para imágenes del mismo tipo, que es susceptible de ser desarrollado en trabajos futuros. Los mejores valores de percentil por imagen son mostrados en la Tabla. 3.2. El método de Fukunaga produjo resultados aceptables a partir de la combinación de imágenes binarias generadas con diferentes número de clases (parámetro del método), sin embargo requiere en general un ajuste más minucioso y produjo resultados menos precisos que el método de percentil. Tabla 3.2: Mejor valor de percentil para el conjunto de prueba Percentil Imagen 1 0.074 Imagen 2 0.1 Imagen 3 0.11 Los mejores valores de percentil oscilaron entre 0,074 y 0,11 y fueron sencillos de determinar utilizando Endrov. Detección de Puntos Extremos La tabla 3.3 muestra el número de puntos extremos que fueron detectados automáticamente y aquellos que se agregaron de forma manual, ası́ como el total de puntos extremos de gusanos en la imagen. 47 Tabla 3.3: Detección y ajuste de puntos extremos de gusanos en el conjunto de prueba Imagen Imagen 1 Imagen 2 Imagen 3 Total de Puntos Extremos 38 66 76 Puntos Detectados 38 (100 %) 53 (80 %) 57 (75 %) Puntos Agregados Manualmente 0 13 19 Considerando la alta cantidad de gusanos que pertenecen a agrupaciones de gusanos para la segunda y tercera imagen de prueba, y el bajo número de agrupaciones de gusanos (que aumenta el riesgo de solapamiento), la cantidad de puntos extremos no detectados puede ser considerada suficientemente baja, siendo ası́ factible agregarlos a mano. Perfiles de Gusano Para generar automáticamente un perfil de gusano preciso y representativo de los gusanos de la imagen que se procesa, es necesario que haya presencia de gusanos aislados. El porcentaje de gusanos aislados para cada imagen del conjunto de prueba fue de 57,8 %, 24,2 % y 34,2 %, respectivamente, oscilando entre 8 y 13 gusanos por imagen, como se muestra en la tabla 3.1. Los perfiles de gusanos generados en cada imagen del conjunto de prueba, permitieron conducir exitosamente el proceso de optimización de ajuste de formas para el conjunto de prueba, cuyos resultados son presentados en las subsecciones de nombre ajuste automático de formas, mostradas más adelante. 3.2.2. Detección y Ajuste de Formas En esta sección se presentan los resultados de la segunda y tercera etapa general de la metodologı́a de la solución, para cada imagen de prueba. Estas etapas consisten en la detección y ajuste automático de formas y en los procesos de corrección manual, tal como fueron descritas en la Sec. 3.1. En la sección de detección y ajuste automático de formas se presentan los resultados para cuatro variantes del algoritmo de detección y ajuste de formas, diferenciando la precisión del ajuste y el rendimiento en tiempo. Las dos variantes principales son denominadas: predicción y multicamino. 48 Predicción, es una versión del algoritmo en la cual se toman en cuenta los caminos calculados a través del algoritmo de predicción de caminos, presentado en la Sec. 2.2.5. Los caminos más probables que parten de cada punto extremo son favorecidos, disminuyendo por un factor el valor de distancia de las conformaciones encontradas a partir de estos caminos, de manera que aumente la probabilidad de ser escogidos en la asignación final. Por su parte, la variante multicamino no favorece a los caminos inducidos por predicción, y toma en cuenta todos los caminos posibles. Cada variante es probada agregando y sin agregar los puntos extremos faltantes, lo que constituye las cuatro variantes mencionadas inicialmente. El tiempo de ejecución que se muestra por cada variante corresponde al promedio de 500 corridas del algoritmo. La sección de corrección manual presenta los resultados obtenidos al llevar a cabo la modificación manual de las conformaciones incorrectas. Por cada prueba, se muestran la imagen resultante del ajuste automático, y la imagen resultante de la corrección, donde se resaltan las conformaciones que fueron corregidas. Este proceso es llevado a cabo manualmente: el usuario detecta una conformación incorrecta visualmente y, seguidamente, selecciona el par de puntos extremos correctos para obtener la mejor conformación calculada a partir de un camino que conecta dichos puntos, tal como se explica en la Sec. 2.2.9. Una operación (de la forma en que se utiliza en las tablas de esta sección) se considera como la acción de seleccionar dos puntos extremos y generar una nueva conformación. Seguidamente, se presenta la sección optimización de energı́a, en la que se presenta y se discute la distribución de los valores de energı́a para las diferentes conformaciones, por cada imagen de prueba. Detección y Ajuste Automático (Imagen de Prueba 1) Dado que todos los puntos extremos de la imagen 1 son encontrados automáticamente, como se muestra en la Tabla 3.3, sólo se presentan los resultados para las variantes multicamino y predicción, que incluyen todos los puntos extremos. La efectividad de detección y el tiempo de corrida para estas variantes son presentadas en la Tabla 3.4. Se puede observar que para ambas variantes los gusanos aislados fueron detectados en su totalidad. Para la variante multicamino se ajustaron correctamente tres cuartos de los gusanos en agrupaciones. Por otro lado, la variante predicción permitió ajustar correctamente todos los gusanos de la imagen, de forma automática. El tiempo de ejecución es ligeramente mayor para la variante de predicción, como era de esperarse debido a los cálculos adicionales 49 Tabla 3.4: Resultados del ajuste automático de gusanos en la imagen 1 Variante Gusanos aislados ajustados Multicamino Predicción 11/11 (100 %) 11/11 (100 %) Gusanos ajustados en agrupaciones 6/8 (75 %) 8/8 (100 %) Ajuste Total 17/19 (89.5 %) 19/19 (100 %) Tiempo (s) 6.47 7.53 requeridos por el algoritmo de predicción de caminos. Para la imagen 1, la variante predicción presentó una mejora considerable a la solución, al inducir la selección de caminos más probables. Por otro lado, los gusanos aislados fueron detectados en su totalidad, independientemente de la variante seguida. La asignación de conformaciones de la variante predicción, para la imagen 1, es mostrada en la Fig. 3.2. (a) Ajuste automático (b) Ajuste automático superpuesto con imagen original Figura 3.2: Mejor ajuste automático en la imagen 1 Detección y Ajuste Automático (Imagen de Prueba 2) En la tabla 3.5 se muestran los resultados del proceso de detección y ajuste automático de formas, para la imagen 2. Se puede observar que la totalidad de gusanos aislados fue detectada en cada variante. Para las dos variantes con puntos extremos faltantes, sólo se pudo ajustar correctamente alrededor de la mitad de los gusanos en la imagen. Aquı́ se evidencia el hecho de que la falta de un punto de extremo determinado hace imposible detectar el gusano al que corresponde. 50 Tabla 3.5: Resultados del ajuste automático de gusanos en la imagen 2, agregando y sin agregar puntos extremos faltantes (pf) Variante Gusanos aisla- Gusanos ajus- Ajuste Total Tiempo (s) dos ajustados tados en agrupaciones Multicamino - pf 8/8 (100 %) 7/25 (28 %) 15/33 (45.4 %) 21.8 Predicción - pf 8/8 (100 %) 10/25 (40 %) 18/33 (54.5 %) 23.7 Multicamino + pf 8/8 (100 %) 15/23 (65.2 %) 23/33 (69.7 %) 42.3 Predicción + pf 8/8 (100 %) 21/25 (84 %) 29/33 (87.8 %) 45 Para las variantes que incluyen los puntos extremos, los resultados son considerablemente superiores. Se puede observar que en las variantes de predicción mejora la precisión de detección, tanto cuando se incluyen los puntos extremos faltantes como cuando no se incluyen. Ası́ mismo, el tiempo de ejecución aumenta cuando los puntos extremos son agregados, como es de esperarse. Para la variante de predicción el porcentaje de ajuste es considerablemente más alto que para la variante de multicamino. En el mejor de los casos, el proceso automático permite ajustar la forma de todos los gusanos aislados y un alto porcentaje de los gusanos que pertenecen a agrupaciones (87,8 %), en menos de un minuto. Correcion Manual (Imagen de Prueba 2) La variante de predicción sin puntos faltantes dio los mejores resultados con sólo cuatro gusanos aislados ajustados incorrectamente, sobre un total de treinta y tres. A través del proceso manual se pudo corregir todas las conformaciones asignadas incorrectamente. De esta manera se pudo detectar y ajustar la forma de todos los gusanos de la imagen. En la figura A.1, presente en el Apéndice A se muestra una comparación de las conformaciones encontradas de manera automática y las conformaciones corregidas de forma manual. Detección y Ajuste Automático (Imagen de Prueba 3) Los resultados del proceso de detección y ajuste automático de formas en la imagen 3 son presentados en la Tabla 3.6. Los gusanos aislados fueron detectados en su totalidad. Para las variantes de predicción y multicamino con puntos extremos faltantes, el porcentaje de detección se ubica alrededor de 51 Tabla 3.6: Resultados del ajuste automático de gusanos en la imagen 3, agregando y sin agregar puntos extremos faltantes (pf) Variante Gusanos aisla- Gusanos ajus- Ajuste Total Tiempo (s) dos ajustados tados en agrupaciones Multicamino - pf 13/13 (100 %) 5/25 (20 %) 18/38 (47.3 %) 26.4 Predicción - pf 13/13 (100 %) 7/25 (28 %) 20/38 (52.6 %) 28.7 Multicamino + pf 13/13 (100 %) 13/25 (52 %) 26/38 (68.4 %) 36.2 Predicción + pf 13/13 (100 %) 16/25 (64 %) 29/38 (76.3 %) 39.8 la mitad de los gusanos la imagen. Por el contrario, en las variantes que incluyen los puntos extremos faltantes, el nivel de precisión aumenta considerablemente. La variante de predicción es siempre mejor que multicamino, aunque un poco más lenta. La mejor variante resultó ser predicción sin puntos faltantes, alcanzando a ajustar correctamente todos los gusanos aislados y un total de tres cuartos de la imagen total. Corrección Manual (Imagen de Prueba 3) La variante de predicción que incluye los puntos faltantes resultó ser la mejor, donde sólo nueve gusanos fueron detectados incorrectamente sobre un total de treinta y ocho. Se requirieron nueve operaciones simples para corregir los gusanos ajustados incorrectamente. Todos los gusanos en la imagen pudieron ser detectados y ajustados. En la figura A.2, presente en el Apéndice A se muestra una comparación de las conformaciones encontradas de manera automática y las conformaciones corregidas de forma manual. 3.2.3. Optimización de Energı́a El valor de energı́a de una conformación determina su grado de precisión con respecto a la figura. Tal como se describe en la Sec. 2.2.8, la función de energı́a evalúa la distancia entre formas como el porcentaje de pı́xeles de fondo que están contenidos en la silueta que se ajusta, por lo que todos los posibles valores de energı́a están contenidos en el intervalo [0, 1]. En la Figura 3.3 se muestran los valores de energı́a para las mejores tres conformaciones por cada punto extremo de gusano, para cada imagen del conjunto de prueba. La primera corresponde a la conformación correcta y ajusta el gusano de la imagen. Las siguientes dos corresponden a las mejores conformaciones entre puntos extremos incorrectos. Estas últimas dos serán denominadas primera conformación incorrecta y segunda conformación incorrecta, 52 respectivamente. Imagen de Prueba 1 Para la mayorı́a de los puntos extremos la conformación correcta tiene el menor valor de energı́a. En solo dos casos, existe una conformación incorrecta que tiene un valor de energı́a menor. La segunda conformación incorrecta posee siempre un valor de energı́a mayor que la conformación correcta. Imagen de Prueba 2 Se puede observar que la segunda conformación incorrecta (en verde) es, en todos los casos, bastante peor que la conformación correcta. Por esto, la conformación correcta corresponde siempre a la mejor o a la segunda mejor conformación encontrada, en términos de energı́a, de todas las posibles. Para esta imagen, solo en cuatro de veintinueve puntos extremos se sitúa a la primera conformación incorrecta (en rojo) con un mejor valor de energı́a que la correcta (en azul). Esto coincide con los resultados mostrados en la Tabla 3.6, donde, para la mejor variante automática, la cantidad de gusanos ajustados correctamente fue de veintinueve, sobre un total de treinta y tres, indicando error en cuatro puntos extremos (la misma cantidad de puntos en los cuales la conformación correcta no tuvo el mejor valor de energı́a). Ası́ mismo, la diferencia de energı́a entre la conformación correcta y la primera incorrecta, para estos cuatro puntos, es lo suficientemente pequeña para pensar que una función objetivo más sensitiva podrı́a permitir calcular la conformación correcta en todos los casos, de manera automática. Imagen de Prueba 3 Sólo para nueve de los veintidós puntos extremos, la primera conformación incorrecta resultó tener un mejor valor que la conformación correcta. Esto coincide con los resultados presentados en la Tabla 3.6, donde, para la mejor variante, la cantidad de gusanos detectados incorrectamente fue también de nueve, análogamente al caso anterior. Para cada punto extremo, con la excepción de uno, la segunda conformación incorrecta presenta un valor de energı́a menor a la conformación correcta. Por lo que la conformación correcta se encuentra siempre entre las mejores dos. .Dado que la cantidad de gusanos que pertenecen a agrupaciones de gusanos es alta (25), la probabilidad de conformaciones incorrectas aumenta. Las diferencias entre la conformaciones correctas y las seleccionadas para estos casos son estrechas (al igual que para la imagen 2 ), por lo que una función objetivo más sofisticada podrı́a conducir a mejores resultados. 53 0.020 Valor Funcional de Energ'ia correcta primera_incorrecta segunda_incorrecta 0.015 0.010 0.005 0.000 1 2 3 4 5 6 7 8 9 Puntos Extremos (a) Imagen 1 correcta primera_incorrecta segunda_incorrecta Valor Funcional de Energia 0.04 0.03 0.02 0.01 0.00 1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24 26 28 Punto Extremo (b) Imagen 2 0.020 Valor Funcional de Energia correcta primera_incorrecta segunda_incorrecta 0.015 0.010 0.005 0.000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Punto Extremo (c) Imagen 3 Figura 3.3: Valor de energı́a de las mejores tres conformaciones por punto extremo en el conjunto de prueba. Los puntos extremos corresponden a gusanos en agrupaciones con más de dos conformaciones posibles 54 Conclusiones y Trabajos Futuros En este capı́tulo se presentan las conclusiones sobre el enfoque metodológico provisto y sobre los resultados de la solución implementada. Seguidamente, se presentan algunas sugerencias de trabajo futuro, indicando las modificaciones que pueden llevarse a cabo para mejorar la solución. Conclusiones La metodologı́a propuesta provee un enfoque semi-automático para detectar y ajustar la forma de gusanos individuales en imágenes de microscopio. Esto permite convertir las imágenes de los gusanos en información manipulable y medible por computadora. La metodologı́a es lo suficientemente general para ajustarse a diferentes tipos de imágenes y especies de gusanos, ası́ como diferentes enfoques de implementación por etapa. El algoritmo desarrollado, que se deriva de la implementación provista, es lo suficientemente eficaz como para proveer la detección de la totalidad de los gusanos en corto tiempo utilizando una computadora personal, mejorando ası́ mismo el tiempo requerido y la precisión de la detección manual. Este estudio constituye uno de los primeros trabajos que trata la detección de gusanos en imágenes individuales (solo se conoce otro estudio, descrito en [16], que fue desarrollado al mismo tiempo) y el primero que permite que detectar la totalidad de los gusanos en las imágenes. Se dice que la solución es semi-automática por la necesidad de realizar ajustes manuales en dos etapas del proceso: detección de puntos extremos y ajuste final de formas. Una vez que los puntos extremos son completamente identificados, la parte automática de la solución provee un alto porcentaje de acierto (más de tres cuartas partes del total de los gusanos, en el peor caso), que puede incluso ser de 100 % en imágenes fáciles, que son aquellas con baja densidad de gusanos y baja cantidad de solapamientos (como se explica en la sección 3.1). El proceso de ajuste manual de conformaciones permite al usuario corregir las fallas de detección de la solución automática, proveyendo ası́ un ajuste óptimo o total. La solución implementada fue integrada con éxito a Endrov como extensión, y está siendo utilizada en este momento en los laboratorios del Departamento de Biociencias y Nutrición del Instituto Karolinska, en Flemingsberg, Suecia. La solución implementada provee la detección completa de todos los gusanos aislados, a través de un proceso automático y sin requerir adición manual de puntos extremos o correc- 55 ción de ajuste. A partir de los gusanos aislados se puede calcular exitosamente un perfil de los gusanos en la imagen. La detección y ajuste de formas de gusanos en agrupaciones representó el proceso más desafiante de la metodologı́a. Una alta densidad de gusanos lleva a múltiples solapamientos y a la creación de agrupaciones, donde algunos de los puntos extremos pueden no ser detectados. Algunos gusanos no se pueden detectar correctamente si hay puntos extremos faltantes, por lo que requieren ajustes manuales. La forma de gusanos aislados puede ser descrita con precisión en todos los casos. Las formas ajustadas en agrupaciones de gusanos representan en todos los casos de una forma muy precisa a los gusanos reales en la imagen. La heurı́stica de predicción de caminos permite mejorar considerablemente la efectividad de detección y ajuste del proceso automático. Debido a que las agrupaciones de gusanos proveen una gran cantidad de caminos posibles entre pares de puntos extremos, la predicción de caminos se convierte en una herramienta útil para determinar los caminos más probables que parten de cada punto extremo. Sin embargo, dada la naturaleza altamente deformable de las formas de gusanos, la heurı́stica falla en ocasiones en determinar el camino correcto para algunos puntos extremos. El proceso de optimización permite reducir considerablemente la diferencia entre la silueta genérica construida en base al descriptor de forma y la imagen, a través de la deformación. El enfoque de búsqueda local para el método de optimización resultó ser efectivo y rápido en la obtención de ajustes precisos. La eficacia de la búsqueda local reside en el hecho de que la silueta original es construida sobre un camino del esqueleto, y dado que éste tiende al eje medio de los objetos en la imagen, la silueta tiende a estar situada cerca de un gusano real en la imagen. La función objetivo, formulada en términos de energı́a, es lo suficientemente expresiva para posicionar la conformación correcta entre las dos mejores conformaciones posibles por punto extremo, para el conjunto de prueba utilizado en este trabajo. Las conformaciones correctas que parten de los puntos extremos detectados en las imágenes de prueba, resultan tener, en la mayorı́a de los casos, el menor valor de energı́a entre todas las conformaciones posibles por punto extremo, conduciendo por lo tanto a un ajuste correcto. Sin embargo, las dos mejores conformaciones tienden a estar muy cerca la una de la otra, en términos de energı́a, lo que lleva a errores de ajuste. Esto hace que la función objetivo no sea lo suficientemente expresiva como para proveer un ajuste automático perfecto en imágenes difı́ciles, que son aquellas con 56 alta densidad de gusanos y presencia de multiples solapamientos. Trabajos Futuros A continuación, se presentan una serie de sugerencias de trabajos futuros para mejorar la solución provista en este estudio. Función de Energı́a Una función de energı́a más sofisticada podrı́a permitir obtener diferencias más grandes entre las conformaciones optimizadas, conduciendo a un porcentaje de detección más alto. Una posible formulación podrı́a consistir en utilizar el mapa de distancias para evaluar la cercanı́a de la silueta que se deforma a contornos en la imagen, y empujarla hacia ellos. Los pı́xeles de fondo (de valor 0 en el mapa de distancia) tendrı́an que ser penalizados de cierta forma, y deberá buscar un equilibrio de distancias en la suma total del área de la silueta. Detección de Puntos Extremos Dado que la detección de puntos extremos juega un papel fundamental en el proceso de detección, una técnica más elaborada para la identificación de puntos extremos permitirı́a mejorar la eficiencia de la solución automática, reduciendo o eliminando la necesidad de agregar puntos manualmente. Una forma de encontrar puntos extremos faltantes podrı́a consistir en sacar provecho de la búsqueda informada que efectúa el algoritmo de predicción de caminos. La idea consistirı́a en trazar caminos a partir de los puntos extremos, hasta alcanzar un longitud de camino fija, e.g. la longitud estimada de los gusanos en la imagen. Una vez que se alcanzara este punto, si no se han encontrado puntos extremos, se agregarı́a uno en esta posición. Este enfoque tiene el problema de que se pueden agregar puntos extremos incorrectos. En vista de esto, se podrı́a ejecutar inicialmente el algoritmo de ajuste de formas para tener un visión previa del área que ha sido cubierta, y seguidamente, llevar a cabo un búsqueda de puntos extremos posibles en las áreas de la imagen que no fueron cubiertas. Otra solución es la de considerar las intersecciones entre los caminos del esqueleto como posibles puntos extremos, y realizar un análisis más profundo sobre la factibilidad de estos puntos y de las conformaciones obtenibles a partir de estos. 57 Seguimiento de Movimiento de Gusanos Una vez que los gusanos en la imagen son detectados por completo, se tiene información acerca de su posición y tamaño, y ası́ mismo es posible calcular información adicional tal como la rotación del gusano y la posición de la cabeza y la cola. Este tipo de información podrı́a ser muy valiosa para los algoritmos de seguimiento de movimiento de gusanos en imágenes, y otros enfoques basados en análisis simultáneo de grandes conjuntos de datos (tales como aquellos que son cubiertos en [4]), para detectar gusanos en agrupaciones. Desarrollo Actual Actualmente, el autor de este trabajo y el estudiante de Doctorado Johan Henriksson, están trabajando en la automatización de la solución provista, ası́ como en el refinamiento de la implementación. Recientemente se consiguió reducir el tiempo de detección automática en más del triple, al refinar el algoritmo de predicción de caminos y reducir la cantidad de conformaciones generadas. Por otro lado, se está utilizando la implementación integrada a Endrov del rasterizador de polı́gonos y descriptor general de formas para desarrollar un algoritmo de rastreo de peces en video. Bibliografı́a [1] Carlo Arcelli and Gabriella Sanniti di Baja. Ridge points in euclidean distance maps. Pattern Recognition Letters, 13:237–243, 1992. [2] Carlo Arcelli and Gabriella Sanniti di Baja. Euclidean skeleton via centre-of-maximaldisc extraction. Image and Vision Computing, 11:163–173, 1993. [3] Gunilla Borgefors. Distance transformation in digital images. Computer Vision, Graphics and Image Processing, 34:344–371, 1986. [4] Steven D. Buckingham and David B. Sattelle. Strategies for automated analysis of C. elegans locomotion. Invert Neurosci, 8:121–131, 2008. [5] Roland T. Chin and Hong-Khoon Wan. A one-pass thinning algorithm and its parallel implementation. Computer Vision, Graphics and Image Processing, 40:30–40, 1987. [6] Pedro F. Felzenszwalb and Daniel P. Huttenlocher. Distance transforms of sampled functions. Cornell Computing and Information Science Technical Report, 2004. [7] Johan Henriksson. Endrov. http://www.endrov.net/index.php?title=About, 2010. [8] Schafer WR Huang K-M, Cosman P. Automated detection and analysis of foraging behavior in caenorhabditis elegans. J Neurosci Methods, 2008. [9] Rolf Lakamper Longin Jan Latecki and Ulrich Eckhardt. Shape descriptors for non-rigid shapes with a single closed contour. Computer Vision, 1:424–429, 2000. [10] Xiang Bai Longin Jan Latecki, Quan-nan Li. Skeletonization using ssm of the distance transform. Technical report, Temple University, Philadelphia, USA, HuaZhong University of Science, and Technology, Wuhan, China, 2007. [11] Andrew Witkin Michael Kass and Demetri Terzopoulos. Snakes: Active contour models. International Journal of Computer Vision, pages 321–333, 1988. 59 [12] Akram Aldroubi Michael Unser and Murray Eden. B-spline signal processing: Part itheory. IEEE Transactions on Signal Processing, 41:821–832, 1993. [13] Hans Theornquist Mihail Ivanchev and Anubis. Software rendering school, part iii: Triangle rasterization. http://www.devmaster.net/articles/software-rendering/ part3.php, 2004. [14] Bryan S. Morse. Shape description (regions). http://homepages.inf.ed.ac.uk/rbf/ CVonline/ LOCAL COPIES/MORSE/region-props-and-moments.pdf. [15] P.E.Trahanias. Binary shape recognition using the morphological skeleton transform. Pattern Recognition, 25:1277–1288, 1992. [16] Tammy Riklin Raviv, V.Ljosa, A.L. Conery, F.M.Ausubel, A.E. Carpenter, P. Golland, and C. Waehlby. Morphology-guided graph search for untangling objects: C.elegans analysis. Springer-Verlag Berlin Heidelberg 2010, 2010. [17] Matthew Baker Sasakthi Abeysinghe, Tao Ju and Wah Chiu. Shape modeling and matching identifying 3d protein structures. Computer-Aided Design, 40:708–720, 2008. [18] Mehmet Sezgin and Bulent Sankur. Survey over image thresholding techniques and quantitative performance evaluation. Journal of Electronic Imaging, 13:146–165, 2004. [19] Linda G. Shapiro and George C. Stockman. Computer Vision. Prentice Hall, 2002. [20] Frank Y. Shih and Christopher C.PU. A skeletonization algorithm by maxima tracking on euclidean distance transform. Pattern Recognition, 28:331, 1994. [21] Frank Y. Shih and Christopher C. Pu. A skeletonization algorithm by maxima tracking on euclidean distance transform. Pattern Recognition, 28:331–341, 1995. [22] Alexandru Telea and Jarke J. van Wijk. Shape descriptors for non-rigid shapes with a single closed contour. In EUROGRAPHICS - IEEE TCVG Symposium on Visualization, 2002. [23] C.J.Taylor T.F.Cootes, D.H.Cooper and J.Graham. A trainable method of parametric shape description. Computer Vision, 5:237–252, 2009. [24] Marcel Luthi Thomas Albrecht and Thomas Vetter. Deformable models. http://gravis.cs.unibas.ch/publications/CH Deformable Models09.pdf. [25] Remco C. Veltkamp. Shape matching: Similarity measures and algorithms. Dept. Computing Science, Utrecht University. 60 [26] Remco C. Veltkamp and Michiel Hagedoorn. State-of-the-art in shape matching. Principles of visual information retrieval.-(Advances in pattern recognition), 2:87–112, 2001. [27] Carolina Waehlby, Tammy Riklin-Raviv, Annie L. Conery Vebjorn Ljosa, Polinga Golland, Frederick M.Ausubel, and Anne E. Carpenter. Resolving clustered worms via probabilistic shape models. ISBI: International Symposium on Biomedical Imaging 2010, 2010. [28] Wikipedia. Topological skeleton. http://en.wikipedia.org/wiki/ Topological skeleton. [29] Wikipedia. Endrov. http://en.wikipedia.org/wiki/Endrov, 2010. [30] Wikipedia. High throughput screening. High-throughput_screening, October 2010. [31] Wikipedia. Spline (mathematics). (mathematics), 2010. http://en.wikipedia.org/wiki/ http://en.wikipedia.org/wiki/Spline_ [32] Wikipedia. Thresholding (image processing). Thresholding_(image_processing), June 2010. http://en.wikipedia.org/wiki/ [33] Frank Y.Shih and Yi-Ta Wu. Fast euclidean distance transformation in two scans using a 3 x 3 neihborhood. Computer Vision and Image Understanding, 93:195–205, 2002. [34] T.Y. Zhang and C.Y. Suen. A fast parallel algorithm for thinning digital patterns. Image Processing and Computer Vision, 27:235–239, 1984. Apéndice A Imágenes adicionales obtenidas a través de la solución implementada Esta sección del apéndice presenta un conjunto de imágenes que fueron obtenidas en algunos de los procesos intermedios de la metodologı́a de la solución, al aplicar el algoritmo implementado a imagenes de prueba. A.1. Ajuste de Formas y Corrección Manual Las figura A.1 y A.2 muestran el resultado del proceso de ajuste de formas sobre imágenes de gusanos en cultivo lı́quido. En particular, estas imágenes corresponde, respectivamente, a las imágenes de prueba 2 y 3 utilizadas en los experimentos de el presente trabajo (ver Capı́tulo 3). En cada caso se presenta la imagen original, seguida de la imagen obtenida a través del proceso ajuste de formas automático, donde se indica en color las formas detectadas incorrectamente. Se presenta también la imagen obtenida despues de realizar la corrección manual, donde ahora las formas en color representan las conformaciones corregidas, y por último se muestra una imagen que superpone el ajuste despues de correcciones manuales con la imagen original. A.2. Transformada de Distancia La Figura A.3 muestra una imagen binaria de un gusano en medio lı́quido y tres mapas de distancia obtenidos a partir de dicha imagen binaria. 62 A.3. Esqueleto Topológico de Gusanos La Figura A.4 presenta el esqueleto topológico obtenido para un imagen que de gusanos en cultivo lı́quido a través de la implementación del proceso de skeletonization descrito en la Sección 2.2.4 de este trabajo. A.4. Método del Valor Umbral La Figura A.5 presenta las mejores imágenes binarias que pudieron obtenerse a través de los métodos del valor umbral Fukunaga, máxima entropı́a, Otsu y percentil, a partir de una imagen de gusanos en medio lı́quido (correspondiente a la imagen de prueba 2, como fué definida en el Capı́tulo 3). 63 (a) Imagen de prueba 2. Original (b) Ajuste automático (c) Ajuste automático y manual (d) Ajuste automático y manual superpuesto con imagen original Figura A.1: Mejor ajuste automático y corrección manual para la imagen A.1a. Las formas y contornos en color en imágenes A.1b y A.1c indican gusanos detectados incorrectamente 64 (a) Imagen de prueba 3. Original (c) Ajuste automático y manual (b) Ajuste automático (d) Ajuste automático y manual superpuesto con imagen original Figura A.2: Mejor ajuste automático y corrección manual para la imagen A.2a. Las formas y contornos en color en imágenes A.2b y A.2c indican gusanos detectados incorrectamente 65 (a) Imagen Binaria (b) Distancia de Manhattan (c) Distancia de tablero de ajedrez (d) Distancia Euclidiana Figura A.3: Imagen binaria y tres mapas de distancia utilizando diferentes métricas, a partir de la imagen de un gusano 66 Figura A.4: Esqueleto topológico de una imagen de gusanos en cultivo lı́quido 67 (a) Imagen original (b) Imagen binaria superpuesta con original. Método máxima entropı́a (c) Imagen binaria superpuesta con original. Método otsu (d) Imagen binaria superpuesta con original. Método fukunaga con 3 clases (e) Imagen binaria superpuesta con original. Método percentil con un valor de 0.1 Figura A.5: Diferentes métodos del valor umbra aplicados a una imagen de gusanos en medio lı́quido