• No se han encontrado resultados

Construcción de un prototipo para el procesamiento automático de imágenes de geles RAPD

N/A
N/A
Protected

Academic year: 2020

Share "Construcción de un prototipo para el procesamiento automático de imágenes de geles RAPD"

Copied!
108
0
0

Texto completo

(1)CONSTRUCCIÓN DE UN PROTOTIPO PARA EL PROCESAMIENTO AUTOMÁTICO DE IMÁGENES DE GELES RAPD.. CARLOS DAVID SELIGMANN TRUJILLO. TRABAJO DE GRADO. DIRECTOR CLAUDIA LUCIA JIMENEZ GUARIN Doctora en Informática INPG. UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERIA DEPARTAMENTO INGENIERIA DE SISTEMAS Y COMPUTACION BOGOTA 2003.

(2) ISC-2003-1-50. AGRADECIMIENTOS A Claudia Lucía Jiménez, directora del trabajo por toda la ayuda prestada, por su paciencia y comprensión y palabras de ánimo, sobretodo en momentos de dificultad. También por las oportunas y veraces correcciones, y valiosas orientaciones acerca del manuscrito. A Carlos Jaramillo, por lo importante asesoría en todo la parte de biología molecular, además por el apoyo, interés y su amistad. A María del Pilar Villamil, asesora en ciclo terminal 1, quien además me contactó en un Claudia Jiménez, y por ende hizo posible la realización de este trabajo. También por su apoyo, y palabras de ánimo momentos de dificultad. A mis padres, por el incondicional apoyo, paciencia, cariño, toda la disposición para ayudar. A mi hermano, por el apoyo y ayuda A mis amigos muy especialmente a Verónica Fajardo, quien me ayudó a lo largo del proceso de ciclo terminal 1. A Marta Leticia Gutiérrez y Takuro Ishikawa, por la ayuda, en el momento de aclarar las ideas.. 2.

(3) ISC-2003-1-50. CONTENIDO 1. INTRODUCCIÓN............................................................................................................7 1.1. OBJETIVO GENERAL ..........................................................................................................................................8 1.2. OBJETIVOS ESPECÍFICOS ................................................................................................................................8. 2. ESTADO DEL ARTE...................................................................................................10 2.1. LOS GELES RAPD [RW03]............................................................................................................................... 10 2.2. LOS PROGRAMAS EXISTENTES ................................................................................................................. 12 2.3. EL PROCESAMIENTO DE IMÁGENES [GW92]...................................................................................... 14. 3. ANÁLISIS DEL PROBLEMA, ALTERNATIVAS DE SOLUCIÓN .......................17 3.1. EL PROBLEMA ..................................................................................................................................................... 17 3.2. LA SOLUCIÓN PLANTEADA.......................................................................................................................... 17. 4. ANALISIS DE REQUERIMIENTOS Y DISEÑO ....................................................19 4.1. ANALISIS DE REQUERIMIENTOS .............................................................................................................. 19 4.1.1. USUARIOS DE LA HERRAMIENTA ........................................................................................................19 4.1.2. METAS...............................................................................................................................................................19 4.1.3. ATRIBUTOS DEL SISTEMA .......................................................................................................................20 4.1.4. REQUERIMIENTOS FUNCIONALES .......................................................................................................20 4.1.5.1. Diagrama de casos de uso.......................................................................................................................20 4.1.5.2. Análisis de Casos De Uso.......................................................................................................................21 4.1.5.3. Reglas de Negocio....................................................................................................................................24 4.1.5. REQUERIMIENTOS NO FUNCIONALES ...............................................................................................24 4.1.6.1. Requisitos De Interfaz .............................................................................................................................25 4.1.6.2. Restricciones De Diseño.........................................................................................................................27 4.1.6.3. Restricciones De Implementación.........................................................................................................28 4.2. DISEÑO..................................................................................................................................................................... 29 4.2.1. DISEÑO DE ARQUITECTURA Y MUNDO DEL PROBLEMA..........................................................29 4.2.1.1. La clase pInterfaz.....................................................................................................................................30 4.2.1.2. La clase EdgeDetector.............................................................................................................................32 4.2.1.3. La clase Pgrabber .....................................................................................................................................34 4.2.1.4. La clase Gel...............................................................................................................................................34 4.2.1.5. La clase Carril...........................................................................................................................................35 4.2.1.6. La clase Banda..........................................................................................................................................35 4.2.2. DIAGRAMAS DE SECUENCIA ..................................................................................................................36. 3.

(4) ISC-2003-1-50. 4.2.3. DIAGRAMAS DE ESTADOS DE INTERACCIÓN.................................................................................38 4.2.4. DISEÑO GUI.....................................................................................................................................................39. 5. IMPLEMENTACIÓN ....................................................................................................41 5.1. PANORAMA ........................................................................................................................................................... 41 5.2. ARQUITECTURA................................................................................................................................................. 42 5.3. ALCANCE DEL SIS TEMA ................................................................................................................................ 42 5.4. HEURÍSTICAS ....................................................................................................................................................... 49 5.4.1. PARA LA DETECCIÓN DE CARRILES ...................................................................................................49 5.4.2. PARA LA DETECCIÓN DE BANDAS ......................................................................................................50 5.5. ESTRUCTURA DE DIRECTORIOS Y ARCHIVOS ................................................................................. 51 5.6. OPCIONES CONFIGURABLES. ..................................................................................................................... 52. 6.. RESULTADOS Y PRUEBAS .................................................................................53. 6.1. IMÁGENES FUENTES ........................................................................................................................................ 53 6.2. CONTRASTE. ......................................................................................................................................................... 53 6.3. RESULTADOS ....................................................................................................................................................... 55 6.3.1 DETECCIÓN DE CARRILES ........................................................................................................................56 6.3.1.1. Carriles – Sensibilidad.............................................................................................................................56 6.3.1.2. Carriles - Contraste..................................................................................................................................58 6.3.2. DETECCIÓN DE BANDAS ..........................................................................................................................59 6.3.2.1. Bandas - Sensibilidad ..............................................................................................................................59 6.3.2.2. Bandas - Contraste...................................................................................................................................61 6.4. ANÁLISIS ................................................................................................................................................................. 63 6.4.1. LOGROS DEL PROTOTIPO.........................................................................................................................63 6.4.2. PROBLEMAS DEL PROTOTIPO ................................................................................................................64. 7.. CONCLUSIONES Y TRABAJO FUTURO...........................................................66. MATERIAL DE REFERENCIA.......................................................................................68 GLOSARIO BIOLOGIA MOLECULAR ........................................................................70. 4.

(5) ISC-2003-1-50. LISTA DE TABLAS. Tabla 2.1. Tabla comparativa de algunos de los programas utilizados para el tratamiento de imágenes de geles. ................................................13 Tabla 4.1. Atributos del sistema.....................................................................20 Tabla 4.2. Caso de uso C.1. (Procesar imagen)................................................21 Tabla 4.3. Caso de uso C.2. (Establecer patrón)...............................................22 Tabla 4.4. Caso de uso C.3. (Buscar patrón)....................................................23 Tabla 4.5. Funciones del sistema ...................................................................24 Tabla 4.6. Restricciones de interacción ...........................................................25 Tabla 4.7. Restricciones de visualización. ........................................................25 Tabla 4.8. Restricciones de formato................................................................25 Tabla 4.9. Restricciones de color de imagen....................................................26 Tabla 4.10. Restricciones de composición de la imagen. ...................................26 Tabla 6.1. Detección de carriles con Contraste 160 y sensibilidad variable ..........56 Tabla 6.2. Detección de carriles con Contraste 140 y sensibilidad variable ..........57 Tabla 6.3. Detección de carriles con Contraste 128 y sensibilidad variable ..........57 Tabla 6.4. Detección de carriles con sensibilidad 8 y contraste variable ..............58 Tabla 6.5. Detección de carriles con sensibilidad 6 y contraste variable ..............58 Tabla 6.6. Detección de carriles con sensibilidad 4 y contraste variable ..............59 Tabla 6.7. Detección de bandas con Contraste 160 y sensibilidad variable ..........60 Tabla 6.8. Detección de bandas con Contraste 140 y sensibilidad variable ..........60 Tabla 6.9. Detección de bandas con Contraste 140 y sensibilidad variable ..........61 Tabla 6.10. Detección de bandas con sensibilidad 8 y contraste variable.............62 Tabla 6.11. Detección de bandas con sensibilidad 6 y contraste variable.............62 Tabla 6.12. Detección de bandas con sensibilidad 4 y contraste variable.............63. 5.

(6) ISC-2003-1-50. LISTA DE FIGURAS Figura Figura Figura Figura. 2.1. Ejemplo de un gel de un RAPD.....................................................11 2.2. Explicación de la estructura del gel RAPD. A. carril. B. banda ...........11 2.3. Máscara general de 3x3...............................................................15 2.4. Máscaras de Sobel, usadas para la detección de bordes de imágenes: a. Máscara utilizada para detectar bordes verticales. b. Máscara utilizada para detectar bordes horizontales ........................16 Figura 2.5. Máscara usada para calcular el laplaciano. ......................................16 Figura 4.1 diagrama de casos de uso del sistema.............................................20 Figura 4.2. Restricciones de composición: a. imagen no aceptable b. imagen aceptable. ..................................................................................26 Figura 4.3. Modelo conceptual .......................................................................29 Figura 4.4. Diagrama de paquetes .................................................................30 Figura 4.5. Paquete GUI................................................................................30 Figura 4.6. Clase pInterfaz ............................................................................31 Figura 4.7. Paquete Core ..............................................................................32 Figura 4.8. Clase EdgeDetector ......................................................................32 Figura 4.9. Clase Pgrabber ............................................................................33 Figura 4.10. Paquete Model ...........................................................................34 Figura 4.11. Diagrama de secuencia del CU Procesar imagen ............................36 Figura 4.12. Diagrama de secuencia del CU Establecer patrón ...........................37 Figura 4.13. Diagrama de secuencia del CU Buscar patrón ................................37 Figura 4.13. Diagramas de estados de interacción de casos de uso. Los estados son: 1. principal, 2.desplegar resultados.............................38 Figura 4.14. Diseño GUI................................................................................39 Figura 4.15. Resultado del proceso sobre una imagen de un gel. .......................39 Figura 4.16. Este es el archivo de texto que queda grabado. .............................40 Figura 5.1. Mascaras de Sobel usadas para el preprocesamiento: a. detección de bordes horizontal izquierdo y b. derecho....................................43 Figura 5.2. Progresión de imágenes en memoria, donde se resaltan con diferentes colores los candidatos a ser principio y final de carril. a. original, b y c bordes detectados, c y d binarización, f y g posibles bordes de carril...........................................................................45 Figura 5.3. Mascaras de Sobel usadas para el preprocesamiento: a. detección de bordes vertical hacia arriba y b. hacia abajo...............................46 Figura 5.4. Progresión de imágenes en memoria, donde se resaltan con diferentes colores los candidatos a ser principio y final de bandas. a. original, b y c bordes detectados, c y d binarización, f y g posibles bordes de banda. ............................................................48 Figura 5.5. Estructura de directorios de la raiz del prototipo..............................51. 6.

(7) ISC-2003-1-50. 1. INTRODUCCIÓN La biología es la rama de la ciencia que se encarga del estudio de los seres vivos. El término biología viene del griego bio (ser vivo) y logos (tratado o estudio). Con el actual desarrollo y evolución de las ciencias biológicas es difícil delimitar el ámbito de trabajo de esta ciencia. Así, además de la Botánica y la Zoología, consideradas tradicionalmente herederas del saber biológico, se han venido a sumar otras tantas, como son la Fisiología, la Genética e incluso, en estos últimos años, la inteligencia artificial y las neurociencias. Según Carlos Jaramillo [JAR03], profesor-investigador del CIMPAT —Centro de Investigación en Microbiología y Parasitología Tropical de la Universidad de Los Andes—, existen varias versiones acerca de la biología molecular: (a) que es una ciencia independiente y (b) que no es en sí misma una ciencia, sino más bien un conjunto de técnicas instrumentales y de laboratorio, que consisten en la visión de la vida en función de las interacciones que causan sus átomos y moléculas constituyentes. Las técnicas de biología molecular tienen como fin el aislamiento y caracterización de estas moléculas para explicar el funcionamiento integrado del ser vivo. La Biología y la Ciencia Computacional han sido dos campos distintos. Sin embargo, con los recientes y rápidos desarrollos en Biología Molecular especialmente los relacionados con la secuenciación del ADN (Acido Desoxiribonucleico) o código genético de las especies y el estudio de estructuras proteicas, los biólogos han recurrido a científicos de la computación en busca de métodos eficientes para analizar las vastas cantidades de datos de los cuales se va disponiendo. Esta nueva disciplina se conoce como Bioinformática [UCL03]. Una de las muchas técnicas usadas en biología molecular es la de RAPD (Random Amplified Polymorphic DNA - ADN polimórfico amplificado al azar) que es un ensayo usado en biología molecular, en el que se identifican polimorfismos (variación genética) basados en la amplificación de segmentos de ADN al azar utilizando un fragmento corto (primer) de ADN de cadena simple que se usa como iniciador de la reacción de PCR (polymerase chain reaction) [SKS03]. La PCR es un procedimiento en el cual multiplica una cadena o fracción de cadena de ADN para su futura visualización. RAPDs son marcadores moleculares producidos mediante PCR que pueden reducir sustancialmente el tiempo costo y trabajo requerido para hacer caracterización molecular de genes (Secuenciación). Esta técnica puede ser usada en múltiples propósitos:. 7.

(8) ISC-2003-1-50. § § § §. Determinación de la variación genética en poblaciones y especies. Estudio de las relaciones filogenéticas entre especies y subespecies. Construcción y entendimiento de mapas genéticos de ligamiento, marcación de genes y identificación de cultivares. Cualquier aplicación de fingerprinting (como son paternidad, análisis forense, e identificación de un individuo). El resultado de un RAPD se observa en un gel en el que se pueden visualizar unas bandas correspondientes a los fragmentos de ADN. La técnica RAPDs se explica posteriormente en el documento. Los programas de procesamiento de imágenes de geles automatizan el proceso de toma de datos, ya que permite una captura de las bandas de ADN de una forma más rápida, que puede ser directamente digitalizada para producir matrices de datos que proveen material de análisis usado en el cálculo de distanciamientos genéticos, variabilidad etc. Existen numerosos programas para el procesamiento de imágenes de geles de biología molecular, sin embargo la gran mayoría de ellos tienen un elevado costo. Por otro lado los programas para análisis de imágenes que son gratuitos, tiene una funcionalidad manual, es decir, es un experto quien analiza, no el programa. el programa construido permite analizar un gel pulsando solamente un botón, haciendo uso de técnicas para el procesamiento de imágenes y en una interfaz muy sencilla. El análisis propuesto consiste en la identificación de individuos del gel, la descripción de los mismos y finalmente en la descripción de las diferencias entre los individuos presentes en ese gel. Consecuentemente, el presente trabajo estará guiado por los siguientes objetivos:. 1.1. OBJETIVO GENERAL El propósito de este trabajo es desarrollar un prototipo de un sistema que sirva como apoyo para el procesamiento automático de imágenes de Geles RAPD.. 1.2. OBJETIVOS ESPECÍFICOS • •. Familiarizase con las técnicas de procesamiento de imágenes. Utilizar el ambiente JAVA en desarrollo del prototipo para el procesamiento de imágenes de geles RAPD.. 8.

(9) ISC-2003-1-50. •. Construir herramientas computacionales (configurables) que permitan procesar de forma automática las siguientes características de un gel RAPD: o Identificar los carriles. o Identificar las bandas de cada carril. o Caracterizar un individuo. o Describir un gel. o Describir distancias o diferencias entre los individuos de un gel.. El presente documento está organizado de la siguiente manera: en el capítulo 2 se hace una presentación general sobre los Geles RAPD, los programas utilizados comercialmente para su análisis y las técnicas de tratamiento de imágenes utilizadas para extraer información de los mismos. En el capitulo 3 se presenta, de manera analítica el problema que se pretende solucionar, con esta aplicación, en términos de disponibilidad, precio y usuarios. Así mismo, se hace una descripción general de la solución propuesta. En el capítulo 4 se hace una análisis exhaustivo de los requerimientos que debe cumplir la aplicación: (a) Usuarios, (b) reglas, (c) metas, (d) atributos, (e) requerimientos funcionales y no funcionales, (f) diseño según la metodología UML. En el capítulo 5 se explica el código y la arquitectura descrita en el capítulo 4 (Diseño) y la estructura de archivos y directorios de la aplicación. En el capítulo 6 se muestran los resultados de las pruebas de la aplicación. Finalmente, en el capítulo 7 se presentan las conclusiones y se dan guías para desarrollo futuros.. 9.

(10) ISC-2003-1-50. 2. ESTADO DEL ARTE 2.1. LOS GELES RAPD [RW03] El procedimiento de los RAPD se puede resumir de la siguiente forma: el ADN genómico, es decir, de cadena doble, se pone en contacto con un primer determinado (secuencia de ADN de cadena corta conocida). Este primer hibrída, es decir, se adhiere, por afinidad a diferentes regiones complementarias del ADN genómico en las dos cadenas de ADN. La reacción de PCR produce esta manera fragmentos de ADN de diferentes peso molecular. El resultado de este procedimiento se visualiza en geles donde se observan bandas de acuerdo a los fragmentos de ADN amplificados que se separan según un gradiente de peso molecular. La presencia o ausencia de determinadas bandas son la evidencia del polimorfismo de un locus genético. Un locus se puede asociar con un gen, el polimorfismo entonces se evidencia como las formas alternativas de un gen. En la Figura 2.1., se observa una fotografía de un gel de la técnica RAPD, producida en el CIMPAT, en donde hay cuatro individuos de la población S (S1, S2, S3y S4) y cuatro de la población D. (D1, D2, D3 Y D4) cada uno de éstos constituyen un carril. M identifica diferentes marcadores de peso molecular. En cada carril, se puede ver una serie de bandas, que como anteriormente se dijo, se puede asociar con el polimorfismo de un gen. En la figura 2.2. Se ilustra más específicamente estos conceptos. El patrón de bandas de una población (para un primer determinado) se llama fingerprinting RAPD y se obtiene de acuerdo a las similitudes entre los patrones de banda de los individuos de dicha población.. 10.

(11) ISC-2003-1-50. Figura 2.1. Ejemplo de un gel de un RAPD.. Fuente: laboratorio de parasitología CIMPAT Figura 2.2. Explicación de la estructura del gel RAPD. A. carril. B. banda. Fuente: laboratorio de parasitología CIMPAT Al tomar un individuo como muestra y establecer su patrón de bandas para un primer determinado, es posible correlacionarlo con los patrones poblacionales ya conocidos, y saber a qué población pertenece el individuo.. 11.

(12) ISC-2003-1-50. Los RAPDs son ampliamente utilizados en los laboratorios de Biología Molecular. Es una técnica útil cuando hay que estudiar una alta variedad de muestras, con el fin de diferenciar especies, sin información previa de secuencia. Sin embargo, hay que tener en cuenta que los RAPDs presentan algunas desventajas, que obligan a una optimización del experimento, y a conseguir la reproducibilidad en los resultados de forma continuada.. 2.2. LOS PROGRAMAS EXISTENTES Como se mencionó en la introducción, existen muchos programas de procesamiento de imágenes de geles, la funcionalidad que se va analizar es la capacidad detectar carriles y detectar bandas. Bio-Rad: Quantity One 1-D Analysis Software [BIO03] es el sistema recientemente adquirido por La Universidad De Los Andes. Existen dos versiones: la versión completa y la versión básica. La versión completa puede identificar carriles y bandas automáticamente, además tiene muchas características adicionales, la versión básica, que es gratis, no tiene la funcionalidad esperada. Scanalytics GENE PROFILER [SCA03]. es un paquete completo de software que encuentra automáticamente carriles y picos en la imagen para detectar la presencia bandas en un gel. También tiene muchas características adicionales. La licencia para un computador y un usuario tiene un costo del $2995. MediaCybernetics: GEL-PRO ANALYZER (ver. 3.1 y 4.5) [MED03] detectan automáticamente carriles y bandas, tienen características adicionales como corrección en el análisis para geles irregulares, base de datos de imágenes, soporta una amplia gama de formatos de imágenes, la versión 4.5 tiene funciones avanzadas para análisis y tratamiento de imágenes. La versión 3.1 tiene un costo de $1500 (aunque no se consigue en el mercado), la versión 4.5 tienen un costo $2500. Syngene: GENETOOLS IMAGE ANALYSIS SOFTWARE [SYN03] ofrece un análisis de un gel en tan sólo ocho segundos haciendo solamente un clic. Detecta automáticamente carriles y bandas.1 Nonlinear: Phoretix 1D Advanced + Pro [NON03] los dos programas permiten detección automática de carriles y de bandas. La versión profesional cuenta con una base de datos que permite hacer consultas y pruebas de hipótesis. La versión 1. El producto parece bueno, sin embargo el servicio técnico parece deficiente. Se intentó en muchas ocasiones conseguir el catálogo del producto, o los precios de licencias pero nunca se recibió contestación de parte de la empresa Syngene. 12.

(13) ISC-2003-1-50. avanzada tiene un costo $4500. La versión profesional tiene un valor de $8500. [KEN03] Biosystematica: Bionumerics & Gelcompar [BIS 03] los dos sistemas tienen la misma funcionalidad en cuanto a el análisis de geles, es decir, identificación automática de carriles y bandas. Bionumerics puede además analizar caracteres fenotipicos y hacer análisis de secuencias de ADN. Bionumerics y Gelcompar son productos modulares, es por esto que los precios varían dependiendo los módulos instalados: de £ 3500 a £ 8300 para Gelcompar y desde £5500 a £16,200 para Bionumerics. Cross Checker - J. B. Buntjer and M. Otsen [CCH03] es una aplicación desarrollada en 1999, no tiene costo, sin embargo no presta la funcionalidad requerida. Los carriles y las bandas tienen que ser descritos por el usuario. IMAGEJ [IMA03] no es una herramienta específica para el procesamiento de geles, sin embargo tiene una funcionalidad para hacerlo. El usuario debe marcar los carriles y las bandas manualmente. Es gratis A continuación se presenta una tabla comparativa de las aplicaciones descritas anteriormente su funcionalidad y precio. Nombre del programa.. Detección automática de carriles y bandas. Si Si Si Si Si Si. Precio. Quantity One 1-D GENE PROFILER GEL-PRO ANALYZER GENETOOLS Phoretix 1D Advanced Bionumerics Gelcompar Cross Checker. No. $2,995 $1500-2500 $4500 $4500-8500 £ 5500 a £ 16200 £ 3500 a £ 8300 Gratis para fines educativos. IMAGE J. No. Gratis. Tabla 2.1. Tabla comparativa de algunos de los programas utilizados para el tratamiento de imágenes de geles.. En resumen, los programas existentes que tienen la funcionalidad deseada, tienen un alto costo mientras que los que son de uso libre necesitan la ayuda de un experto para realizar análisis. Esto quiere decir el usuario debe manualmente.. 13.

(14) ISC-2003-1-50. 2.3. EL PROCESAMIENTO DE IMÁGENES [GW92]. El proceso en el cual se extrae información de una imagen separando lo importante de lo no importante se llama segmentación. La segmentación subdivide una imagen en sus partes constituyentes. En general, la segmentación autónoma es una de las tareas más difíciles del procesamiento de imágenes. Esta etapa del proceso determina el eventual éxito o fracaso del análisis. De hecho, la segmentación rara vez llega alcanzar una solución satisfactoria. Para extraer la información relevante, se debe identificar la(s) zona(s) que contiene el dicha información. La identificación de las zonas de la imagen se realiza en dos partes: la primera donde se realzan los puntos críticos que delimitan la zona; la segunda, la captura de dichos puntos críticos o coordenadas que son usados sobre la imagen original para extraer información. La primera etapa se llama preprocesamiento, la segunda se llama procesamiento. Los algoritmos de segmentación de imágenes monocromáticas se basan en una de las dos propiedades básicas de los valores del nivel de gris: discontinuidad y similaridad. En la primera categoría, el método consiste en dividir la imagen basándose en los cambios bruscos de gris. Las principales áreas de interés de esta categoría son la detección de puntos aislados, detección de líneas y detección de bordes de una imagen. Los principales métodos de la segunda categoría están basados en la umbralización, crecimiento de región y, división y fusión de regiones. Aunque la detección de puntos y líneas son evidentemente elementos en la segmentación, la detección de bordes es con mucho el método más común para detectar discontinuidades significativas en el nivel de gris. La razón es que los puntos aislados y las líneas delgadas no son de frecuente aparición en la mayor parte de las aplicaciones prácticas. Un borde es la frontera entre regiones con propias de nivel de gris relativamente y distintas. Los bordes caracterizan las fronteras de los objetos, y por tanto son de gran utilidad de cara a la segmentación e identificación de objetos en imágenes [WSG03]. La idea más importante en la técnica de detección de bordes es el cálculo de un operador local de derivación. El módulo de la primera derivada en un punto se utiliza para detectar la presencia de un borde en una imagen, y el signo de la segunda derivada se puede utilizar para determinar si un píxel borde esta situado en el lado oscuro o claro el mismo. La forma más común identificar las discontinuidades es pasar una máscara a través de la imagen. Este tipo de procedimiento es llamado un "procedimiento del. 14.

(15) ISC-2003-1-50. dominio espacial", es decir, es un procedimiento que opera directamente sobre los píxeles. Una máscara es un entorno de, por ejemplo, 3x3 píxeles, en la que los valores de los coeficientes determinan la naturaleza del proceso, como la acentuación de los bordes. (Figura 2.3) Figura 2.3. Máscara general de 3x3. W1 W4 W7. W2 W5 W8. W3 W6 W9. Fuente [SCH89] Los procedimientos del dominio espacial, el general se pueden expresar como: g(x,y) = T [f(x,y)] donde f(x,y) es la imagen de entrada, g(x,y) es la imagen procesada y T es un operador que actúa sobre f, definido en algún entorno de (x,y). La forma más simple de T es un entorno de 1x1. T se convierte en una función de transformación del nivel de gris. Los entornos mayores permiten varias funciones de tratamiento de imagen, por ejemplo filtros. Las máscaras u operadores de Sobel 2 se pueden emplear para aproximar el módulo del gradiente (figura 2.4.). y como habíamos dicho anteriormente la primera derivada del perfil de nivel de gris en un punto de una imagen se obtiene utilizando el módulo del gradiente de ese punto, se pueden utilizar para este K. la presencia de un borde en una imagen.. 2. Otras mascaras usadas en la detección de bordes, son las de Prewitt , Roberts e isotrópica, etc [WSG03]. 15.

(16) ISC-2003-1-50. Figura 2.4. Máscaras de Sobel, usadas para la detección de bordes de imágenes: a. Máscara utilizada para detectar bordes horizontales. b. Máscara utilizada para detectar bordes verticales -1 0 1. -2 0 2. -1 0 1. -1 -2 -1. a. 0 0 0. 1 2 1. b Fuente [SCH89]. La segunda derivada se obtiene de forma similar usando el laplaciano (Figura 2.5.). Figura 2.5. Máscara usada para calcular el laplaciano.. 0 -1 0. -1 4 -1. 0 -1 0. Fuente [SCH89]. El problema análisis de imágenes de geles, se puede ver con un problema de reconocimiento de patrones en imágenes. En este trabajo se aplica los conceptos anteriormente mencionados para la segmentación de imágenes de geles, y además se usa algunas de heurísticas para la extracción de información de la imagen.. 16.

(17) ISC-2003-1-50. 3. ANÁLISIS DEL PROBLEMA, ALTERNATIVAS DE SOLUCIÓN 3.1. EL PROBLEMA El problema consiste construir una aplicación de uso fácil, que sea capaz de extraer la información de la imagen del gel RAPD y que esté al alcance, por disponibilidad y precio, de investigadores y estudiantes, quienes hacen uso regular de la técnica RAPDs. La imagen tiene zonas con información relevante, que son los carriles (ver imagen: 2.2. A). Entonces, un primer paso es determinar cuáles son los carriles en la imagen. Un segundo paso consiste en extraer información de cada carril. Cada carril contiene la serie de bandas, la descripción de estas bandas, en cuanto a posición y grosor, será lo que determina la caracterización de un individuo. La ausencia de una banda que está presente en otra también es un dato importante, pues es la visualización de otra forma del gen. La estructura genérica de la imagen de un gel RAPD tiene manera general: son imágenes en su mayoría mono cromáticas y la distribución de las zonas de importancia dentro de la imagen, es casi siempre la misma, esto es, los carriles están orientados en una de las dimensiones de la imagen, y las bandas están orientados de forma perpendicular. Estas características serán aprovechadas para extraer información de la imagen.. 3.2. LA SOLUCIÓN PLANTEADA La segmentación de imágenes es una etapa preliminar esencial en la mayor parte de problemas de reconocimiento de formas y análisis de imágenes. En este caso particular, el problema consiste en extraer la información relevante de una imagen de un gel RAPD, para su posterior análisis. Se plantea entonces, que para la segmentación de este tipo imágenes, en una primera instancia se realizará la detección vertical de bordes usando máscaras de Sobel (Figura 2.4), obteniendo así los puntos críticos que pueden determinar carriles. Con esos puntos críticos se definen heurísticas que determinan los carriles.. 17.

(18) ISC-2003-1-50. Las heurísticas responden al conocimiento experto del CIMPAT y al análisis detallado imágenes capturadas; dicho análisis consiste en la descripción de la imagen como una matriz de píxeles, y cada píxel tiene un componente de color: rojo, azul y verde(RGB). Sobre cada uno de los carriles se realiza la detección horizontal de bordes usando máscaras de Sobel (Figura 2.4a.). Esto permite la detección de los puntos críticos que son candidatos a definir las bandas. Igualmente se definen heurísticas determinan las bandas. Con la información de los carriles y las bandas de cada carril, se crea un modelo del gel el cual puede ser analizado y la información contenida, puede ser guardada en algún medio de persistencia, en este caso se unas un archivo de texto.. 18.

(19) ISC-2003-1-50. 4. ANALISIS DE REQUERIMIENTOS y DISEÑO 4.1. ANALISIS DE REQUERIMIENTOS 4.1.1. USUARIOS DE LA HERRAMIENTA Investigadores y estudiantes de biología molecular, quienes hacen uso regular de la técnica RAPDs.. 4.1.2. METAS • • • • • • • •. La aplicación permite analizar imágenes de geles RAPD. La aplicación debe discernir que es carril y que no. La aplicación debe permitir el reconocimiento de bandas. Crear un modelo ‘informático’ de la imagen El sistema debe poder hacer un descriptor del gel conteniendo la información de cada carril y las bandas dentro de un carril. La aplicación debe poder ajustar diferentes grados de sensibilidad El sistema debe apoyar la labor de comparación entre un patrón conocido y analizado por el sistema y un patrón nuevo, que se encuentra en un gel a ser analizado. Generar patrones de una población a partir de muestras de individuos conocidos y analizados por el sistema.. 19.

(20) ISC-2003-1-50. 4.1.3. ATRIBUTOS DEL SISTEMA Tabla 4.1. Atributos del sistema Atributos Facilidad de uso. Detalles Y Restricciones De Frontera Interfaz grafica. Categoría Obligatorio. Plataforma. (Detalle) Windows XP. Obligatorio. Lenguaje de programación. (Detalle) JAVA. Obligatorio. Forma de interacción. (Detalle) Uso del puntero del Mouse y el teclado.. Obligatorio. 4.1.4. REQUERIMIENTOS FUNCIONALES 4.1.5.1. Diagrama de casos de uso Figura 4.1 diagrama de casos de uso del sistema. 20.

(21) ISC-2003-1-50. 4.1.5.2. Análisis de Casos De Uso Tabla 4.2. Caso de uso C.1. (Procesar imagen) REF Nombre del Caso de Uso Resumen. Curso básico de eventos. C.1 Procesar imagen El sistema crea un modelo informático del gel (consistente en la identificación de carriles y bandas dentro de cada carril) y despliega ese modelo dibujado sobre el gel original. ACTOR 1. Suministra el nombre de la imagen de origen. SISTEMA. 2.a. Identifica los carriles dentro de la imagen de origen; 2.b. por cada de cada carril identificado determina las bandas de ese carril. 2.c. despliega el resultado de 2.a y 2.b en la imagen original Caminos Alternativos Caminos de Excepción Puntos de Extensión Suposiciones Precondiciones Poscondiciones Reglas de Negocio Relacionadas Criterios de Aceptación Autor. Si archivo no existe, o no tiene el formato adecuado (jpg), se produce un error. 3. El usuario puede dar la orden de grabar los resultados del proceso en un archivo de texto True El sistema despliega gráficamente los resultados del procesamiento de la imagen del gel. F.1, F.2, F.3 El sistema debe mostrar la imagen resultante identificando: al menos el 70 % de los carriles y el 60 % de las bandas de cada carril. CDavid Seligmann. 21.

(22) ISC-2003-1-50. Tabla 4.3. Caso de uso C.2. (Establecer patrón) REF Nombre del Caso de Uso Resumen. C.2. Establecer patrón Genera un patrón (caracterización de bandas comunes en individuos de los cuales ya se tiene un modelo informático), suministrando un conjunto de individuos conocidos.. Curso básico de eventos. Caminos Alternativos Caminos de Excepción Puntos de Extensión Suposiciones Precondiciones Poscondiciones Reglas de Negocio Relacionadas Criterios de Aceptación Autor. 3. ACTOR 1. suministra un conjunto de individuos conocidos (de los cuales ya se tiene un modelo informático). SISTEMA. 2. determina las similitudes en los modelos informáticos (bandas comunes) y genera el patrón. - el patron puede grabarse en la base de datos de patrones True El sistema generó el patrón común a los individuos enviados por el usuario F.1, F.2, F.3, F.4, F.5 Si intuitivamente 3 existen similitudes entre las bandas del 70% de los individuos suministrados por el usuario, el patrón generado deberá reflejarlas, es decir , tener las bandas comunes a ese 70% CDavid Seligmann. intuitivamente: al ojo de un usuario NO experto. 22.

(23) ISC-2003-1-50. Tabla 4.4. Caso de uso C.3. (Buscar patrón) REF Nombre del Caso de Uso Resumen. C.3 Buscar patrón se realiza una búsqueda (en una base de datos de patrones) del patrón(es) más cercano(s) a la imagen suministrada por el usuario. Curso básico de eventos. Caminos Alternativos Caminos de Excepción Puntos de Extensión Suposiciones Precondiciones PostCondiciones Reglas de Negocio Relacionadas Criterios de Aceptación Autor. ACTOR 1. envía el archivo de un individuo problema y da la orden de compararlo con patrón(es) conocido(s).. SISTEMA. 2. retorna la información de el o los patrones más cercanos (match en por lo menos del 60 % de las bandas del individuo problema) almacenados en la base de datos de patrones.. Se archivo no es válido, se produce un error - existe una base de datos de patrones true El sistema retornó la información de todos los patrones similares F.1, F.2, F.3, F.4, F.5, F.6. CDavid Seligmann. 23.

(24) ISC-2003-1-50. 4.1.5.3. Reglas de Negocio Las imágenes tomadas de los geles pueden tener uno o más carriles. Los carriles tienen un ancho igual dentro de un gel, pero puede variar entre un gel y otro. El gel puede contener un carril donde existe una mezcla de marcadores de peso molecular conocidos, sin embargo no es indispensable dicho patrón. (Ver figura 2.2.) Un patrón de bandas se define así: dado un conjunto de individuos, el patrón es el conjunto de bandas que están presentes en el 70% de los individuos. En la tabla 4.5. se reseñan las funciones del sistema. Tabla 4.5. Funciones del sistema Referencia F.1 F.2 F.3 F.4 F.5 F.6 F.7 F.8. Descripción De La Función Cargar una imagen de un gel Detectar carriles Establecer el modelo de la imagen (1 carril) Establecer el área de lectura vertical Establecer un patrón de una población conocida. Identificación de la(s) población(es) candidata(s) a contener un individuo problema. Cambiar el nivel de contraste de una imagen dada . Establecer diferentes nivel de sensibilidad del análisis de acuerdo al nivel de diferencias.. 4.1.5. REQUERIMIENTOS NO FUNCIONALES § § § §. Portabilidad: aplicación multiplataforma, con posibilidades de uso en Internet, dada por JAVA Facilidad de Uso: la interacción se realiza a través de comandos del Mouse y teclado Instalación: es una aplicación stand alone, para efectos de compilación y ejecución se usa un archivo ejecutable (bat). Plataforma de visualización (usuario) o Windows XP o Java Advanced Imaging 1.1.2-RC o tarjeta gráfica SVGA o Monitor SVGA. 24.

(25) ISC-2003-1-50. o Mouse o JavaTM 2 Platform, Standard Edition (J2SE. TM. ) ver 1.4.1_02 JRE. 4.1.6.1. Requisitos De Interfaz Tabla 4.6. Restricciones de interacción REF Nombre Tipo Crítico Descripción. NF.1 Interfaz de interacción Necesario Es crítico Interacción a través de mouse y el teclado, dentro de un ambiente grafico (GUI). Criterio de Aceptación. Restricciones de visualización. Tabla 4.7. Restricciones de visualización.. REF Nombre Tipo Crítico Descripción. Criterio de Aceptación. NF.2 Resolución de visualización Necesario Crítico El programa despliega el resultado del procesamiento en una ventana correspondiente al tamaño (en píxeles) de la imagen analizada. La resolución mínima de visualización es 800 x 600 -. Restricciones sobre los datos Tabla 4.8. Restricciones de formato. REF Nombre Tipo Crítico Descripción Criterio de Aceptación. NF.3 Restricciones de formato Necesario Crítico El formato de archivo que el programa puede procesar es JPG -. 25.

(26) ISC-2003-1-50. Tabla 4.9. Restricciones de color de imagen. REF Nombre Tipo Crítico Descripción Criterio de Aceptación. NF.4 Restricciones de color Necesario Crítico El color de las imágenes es el correspondiente para imágenes a color de 24 bits. -. Tabla 4.10. Restricciones de composición de la imagen. REF Nombre Tipo Crítico Descripción. Criterio de Aceptación. NF.5 Restricciones de composición de imagen Necesario Crítico La imagen debe tener alto contraste, asimismo el nivel de ruido debe ser bajo. Las imágenes no deben tener artefactos como marcas escritas, burbujas en el gel (ver figura 4.2.a, 4.2.b) El ojo humano, debe ser capaz de distinguir que es carril y que no lo es.. Figura 4.2.a. imagen inaceptable debido a marcas escritas. 26.

(27) ISC-2003-1-50. Figura 4.2.b. imagen inaceptable debido a burbujas. Figura 4.2.a. imagen aceptable. c 4.1.6.2. Restricciones De Diseño §. Estilo de arquitectura: El prototipo corresponde al estilo de arquitectura de flujo de datos o data-flow, específicamente el subtipo es el de batch sequential [BC98], en la cual hay una transformación secuencial de los datos de entrada por programas o procesos independientes.. 27.

(28) ISC-2003-1-50. §. Plataforma de operación: Windows XP. 4.1.6.3. Restricciones De Implementación §. Plataforma de desarrollo: § Java Advanced Imaging 1.1.2-RC § NetBeans IDE 3.4.1 § JavaTM 2 Platform, Standard Edition (J2SE. 28. TM. ) ver 1.4.1_01 SDK.

(29) ISC-2003-1-50. 4.2. DISEÑO 4.2.1. DISEÑO DE ARQUITECTURA Y MUNDO DEL PROBLEMA a continuación se presenta varios diagramas UML para el entendimiento del sistema: Figura 4.3. Modelo conceptual. 29.

(30) ISC-2003-1-50. Figura 4.4. Diagrama de paquetes. Figura 4.5. Paquete GUI. 4.2.1.1. La clase pInterfaz Esta clase es la que se encarga de la interacción con el usuario, y del despliegue de los resultados. Los métodos de la clase pInterfaz son dirigidos por eventos del mouse, de esta forma, los botones asociados que capturan tales eventos tienen la funcionalidad del nombre del botón. La clase además tiene métodos para el despliegue de imágenes y de archivos. El método procesarActionPerformed es el que tiene toda la secuencia instrucciones para procesar la imagen de un gel está asociado al botón procesar.. 30.

(31) ISC-2003-1-50. Figura 4.6. Clase pInterfaz. 31.

(32) ISC-2003-1-50. Figura 4.7. Paquete Core. 4.2.1.2. La clase EdgeDetector Esta clase básicamente presta una funcionalidad para el preprocesamiento de imágenes, específicamente la detección de bordes. Los métodos de esta clase cargan una imagen de tipo BufferedImage y le aplican una operación de convolución (deteccion de bordes) devolviendo otra imagen de tipo BufferedImage. Figura 4.8. Clase EdgeDetector. 32.

(33) ISC-2003-1-50. Figura 4.9. Clase Pgrabber. 33.

(34) ISC-2003-1-50. 4.2.1.3. La clase Pgrabber Esta clase realiza las manipulaciones sobre las imágenes y almacena el resultado en vectores. El contenido de estos vectores son los puntos críticos sobre los cuales se basa la segmentación de las imágenes.. Figura 4.10. Paquete Model. Figura 4.11. Paquete Model clases expandidas. 4.2.1.4. La clase Gel Esta clase contiene el modelo de la imagen del Gel. Tiene un vector de Carriles.. 34.

(35) ISC-2003-1-50. 4.2.1.5. La clase Carril Esta clase contiene el modelo de la imagen de un individuo o carril. Tiene un vector de Bandas. Sus atributos son inicio y fin que describen su posición en la dirección horizontal en el gel.. 4.2.1.6. La clase Banda Esta clase contiene el modelo de una banda. Los atributos son ymin, ymax describen la posición en la dirección vertical dentro de un Carril.. 35.

(36) ISC-2003-1-50. 4.2.2. DIAGRAMAS DE SECUENCIA. Figura 4.11. Diagrama de secuencia del CU Procesar imagen. 36.

(37) ISC-2003-1-50. Figura 4.12. Diagrama de secuencia del CU Establecer patrón. Figura 4.13. Diagrama de secuencia del CU Buscar patrón. 37.

(38) ISC-2003-1-50. 4.2.3. DIAGRAMAS DE ESTADOS DE INTERACCIÓN Figura 4.13. Diagramas de estados de interacción de casos de uso. Los estados son: 1. principal, 2.desplegar resultados. 38.

(39) ISC-2003-1-50. 4.2.4. DISEÑO GUI A continuación se presenta una imagen con la interfaz del prototipo de la aplicación, la visualización de los resultados del análisis de la imagen, vía grafica y texto: Figura 4.14. Diseño GUI. Figura 4.15. Resultado del proceso sobre una imagen de un gel.. 39.

(40) ISC-2003-1-50. Figura 4.16. Archivo de texto generado luego de procesar la imagen 4.15. Carril 1 inicio 48 fin 120 ANCHO Banda 1 ymin 377 ymax 397 Grosor Banda 2 ymin 405 ymax 421 Grosor Banda 3 ymin 615 ymax 642 Grosor. 72 20 16 27. Carril 2 inicio 156 fin 216 ANCHO 60 Banda 1 ymin 405 ymax 420 Grosor 15 Banda 2 ymin 529 ymax 547 Grosor 18 Carril 3 inicio 257 fin 327 ANCHO 70 Banda 1 ymin 243 ymax 258 Grosor 15 Banda 2 ymin 383 ymax 398 Grosor 15 Banda 3 ymin 528 ymax 545 Grosor 17 Carril 4 inicio 365 fin 434 ANCHO 69 Banda 1 ymin 350 ymax 363 Grosor 13 Banda 2 ymin 524 ymax 543 Grosor 19 Banda 3 ymin 618 ymax 640 Grosor 22 Carril 5 inicio 586 fin 654 ANCHO 68 Carril 6 inicio 696 fin 762 ANCHO 66 Banda 1 ymin 421 ymax 447 Grosor 26 Banda 2 ymin 565 ymax 580 Grosor 15 Carril 7 inicio 808 fin 870 ANCHO 62 Banda 1 ymin 230 ymax 254 Grosor 24 Banda 2 ymin 357 ymax 378 Grosor 21 Banda 3 ymin 406 ymax 435 Grosor 29 Banda 4 ymin 549 ymax 574 Grosor 25 Carril 8 inicio 914 fin 975 ANCHO 61 Banda 1 ymin 352 ymax 370 Grosor 18 Banda 2 ymin 414 ymax 436 Grosor 22 Banda 3 ymin 551 ymax 573 Grosor 22. 40.

(41) ISC-2003-1-50. 5. IMPLEMENTACIÓN 5.1. PANORAMA Como se mencionó en la sección 4.1.6.3, el prototipo desarrollado es una aplicación stand-alone, desarrollada a través del IDE NetBeans versión 1.4.1. Para la instalacion del IDE es necesario tener JavaTM 2 Platform, Standard Edition (J2SE TM) ver 1.4.1_02 SDK tambien, y para el desarrollo del prototipo, es necesario: Java Advanced imaging 1.1.2-RC. Se tienen 3 paquetes de clases que distribuyen tanto la responsabilidad como la funcionalidad de la aplicación. Los paquetes son: GUI: que contiene la clase pInterfaz, la cual, se encarga de la interacción con el usuario, así mismo de la visualización de los resultados y finalmente es la clase que envía la orden de grabar los resultados a texto. Este paquete tiene además las clases ImageFileView, ImageFilter, ImagePreview, y Utils las cuales prestan la función de previsualización del archivo (thumbnails) dentro de la interfaz del filechooser. Model: contiene las clases que modelan en sí la imagen, se encuentran la clase Gel, la clase Carril y la clase Banda. Core: contiene las clases que se encargan de manipular los datos, en este caso, las imágenes a analizar. Dos clases se hacen cargo de esta manipulación, la clase EdgeDetector la cual contiene los métodos para el preprocesamiento de las imágenes, es decir, la detección de bordes. La clase Pgrabber que se encarga del procesamiento en si, es decir, es la que manipula en memoria las imágenes a través de objetos de tipo BufferredImage, dichos objetos se encuentran ampliamente descritos dentro de la documentación de JAVA [JAV03]. También se encuentra la clase Calculos, encargada, de realizar cálculos matemáticos relacionados con las coordenadas del la imagen y los puntos críticos capturados. Los cálculos que realiza dicha clase son: promedio, máximo, mínimo, desviación estándar, varianza.. 41.

(42) ISC-2003-1-50. 5.2. ARQUITECTURA Como se describió en la sección 4.1.6.2 el estilo de arquitectura del prototipo, corresponde al de arquitectura de flujo de datos o data-flow, específicamente el subtipo es el de batch sequential [BC98]. En este prototipo se tiene una entrada de datos (imagen), la cual va siendo transformada por varios procedimientos, de manera secuencial, hasta conseguir el resultado final. Dentro de la implementación del prototipo, se tiene que la entrada de datos inicial es una imagen de tipo BufferedImage que inicialmente es cargada por la clase pInterfaz. Sobre dicha imagen, la clase EdgeDetector realiza manipulaciones de preprocesamiento (detección de bordes por medio de una mascara de Sobel) y posteriormente la clase Pgrabber hace las manipulaciones de procesamiento (binarización, recorridos para identificación de puntos críticos.) La clase Pgrabber tiene como atributos los vectores descriptor, y caracterizador. Estos vectores contienen la información de puntos críticos o coordenadas (descriptor para carriles y caracterizador para bandas). La clase pInterfaz, usa los vectores de pGrabber para crear, a través de heurísticas, un Modelo del gel.. 5.3. ALCANCE DEL SISTEMA De los tres casos de uso definidos en el análisis de requerimientos (sección 4.1.5) sólo se llego a la implementación del caso de uso C.1 procesar imagen. Este caso de uso es el más importante y prerrequisito para los otros dos. Se explica a continuación el proceso - secuencia de pasos - de análisis de una imagen de una forma ilustrativa, y se ejemplifica con una imagen sencilla, es decir una imagen recortada de un carril, sin embargo el software trabaja con imágenes de geles que tienen varios carriles. Debido al estilo de arquitectura, la explicación se hace de manera secuencial. Paso 1. Carga de la imagen original: en este paso se carga en memoria la imagen que va a ser procesada. El método procesarActionPerformed de la clase pInterfaz el que posee toda la lógica del la manipulación secuencial y despliegue de las imágenes.. 42.

(43) ISC-2003-1-50. Este método carga en memoria la imagen escogida por el usuario mediante la instrucción: original = this.readAsBufferedImage(t1.getText( )) la imagen original se ve en la figura 5.1 Figura 5.1. Paso 1. Imagen original. Paso 2. Detección de bordes vertical: de manera separada se realiza la detección de bordes vertical –derecha e izquierdaSobre la imagen 5.1. se realiza la detección de bordes (vertical, tanto los bordes derechos como izquierdo) aplicando sobre ella, métodos de la clase EdgeDetector: EdgeDetector ED = new EdgeDetector() BufferedImage detectadaHD=ED.loadAndDisplayBIVD(original) BufferedImage detectadaHI=ED.loadAndDisplayBIVI(original) Las mascaras de Sobel usadas en este paso se muestran en la figura 5.2. Figura 5.2. Mascaras de Sobel usadas para el preprocesamiento: a. detección de bordes vertical izquierdo y b. derecho -1 -2 -1. 0 0 0. 1 2 1. 1 2 1. a. 0 0 0. b. 43. -1 -2 -1.

(44) ISC-2003-1-50. En este momento se tiene dos imágenes en memoria, detectadaHI y detectadaHD, que son el resultado de aplicar la detección de bordes vertical izquierdo y derecho. En la figura 5.3 se observa los resultados de este paso. Figura 5.3. Paso 2 : imágenes con bordes verticales detectados. Paso 3. Binarización de las imágenes: las imágenes del paso 2 que están en tonos de gris se pasan a blanco y negro Figura 5.5: imágenes binarizadas. 44.

(45) ISC-2003-1-50. Paso 4. Pintar sobre la imagen original los candidatos a principio y final de carril Para la detección de carriles se utilizan las siguientes tres líneas: Pgrabber PGI = new Pgrabber(detectadaHI) PGI.loadImageCarrilDER(detectadaHD) PGI.Carriles(original) Dicho conjunto de instrucciones, dibuja los candidatos a ser principio de carriles el final de carriles sobre la imagen original. Específicamente la instrucción: PGI.loadImageCarrilDER(detectadaHD) Llena en memoria el vector descriptor, que contiene las coordenadas en x, que son los puntos críticos detectados después de binarizar la imagen (detectadaHD) y recorrerla en su totalidad. De la misma forma se obtiene otro vector descriptor con la instrucción: PGI.loadImageCarrilIZQ(detectadaHI), después de binarizar la imagen (detectadaHI) y recorrerla su totalidad. La instrucción PGI.Carriles(original) pinta sobre imagen original (en color azul) los pixels que fueron detectados como candidatos a ser principio de carril y pinta (en color verde) los pixels es que fue detectados como candidatos a ser final de carril. Anterior se puede ver mejor en el la figura 5.5. Figura 5.5. Paso 4. posibles bordes de carril.. Paso 5. Capturar el carril Sobre la imagen 5.5 el Pgrabber ‘recorta’ una subimagen (carril) En la figura 5.6 se muestra el resultado del paso 5. 45.

(46) ISC-2003-1-50. Figura 5.6 Paso 5: carril detectado. Sobre esta subimagen (Figura5.6.) se realiza un procedimiento similar al descrito para los carriles, pero esta vez sentido horizontal. Paso 6. Detección de bordes horizontal: de manera separada se realiza la detección de bordes horizontal –arriba y abajo – Sobre la imagen 5.6 se realiza operaciones de preprocesamiento (detección de bordes en sentido horizontal). Las mascaras de Sobel usadas en este paso se muestran en la figura 5.7. Figura 5.7. Mascaras de Sobel usadas para el preprocesamiento: a. detección de bordes horizontal hacia arriba y b. hacia abajo -1 0 1. -2 0 2. -1 0 1. 1 0 -1. a. 2 0 -2. b. En la figura 5.8 se muestran los resultados del paso 6.. 46. 1 0 -1.

(47) ISC-2003-1-50. Figura 5.8 Paso 6 imágenes con bordes horizontales detectados. Paso 7. Binarización de las imágenes del paso 6 que están en tonos de gris se pasan a blanco y negro Figura 5.9: imágenes binarizadas. Paso 8 Pintar sobre la subimagen los candidatos a principio y final de banda La instrucción PGI.bandas(carril) pinta, sobre la imagen de la figura 5.6 (en color azul) los pixels que fueron detectados como candidatos a ser principio de carril y pinta (en color verde) los pixels es que fue detectados como candidatos a ser final de carril. Anterior se puede ver mejor en el la figura 5.10.. 47.

(48) ISC-2003-1-50. Figura 5.10. posibles bordes de banda.. Paso 9 Identificación de bandas: Para hacer la identificación de bandas se dan las siguientes instrucciones. pg.loadBandas(carril) Vector banditas= this.detectarBandas(pg). Los códigos de las clases pInterfaz, Pgrabber y EdgeDetector se encuentran en el anexo 1. 48.

(49) ISC-2003-1-50. 5.4. HEURÍSTICAS 5.4.1. PARA LA DETECCIÓN DE CARRILES La idea era trabajar, en memoria, sobre una imagen similar a la mostrada en la figura 5.11b, la cual es el resultado del proceso descrito en la sección 5.3 del paso 1 hasta el paso 4 sobre la imagen de la figura 5.11.a. Figura 5.11. Resultado del procesamiento, antes de aplicar la heurística para detección de carriles. a. b. La heurística en este caso es encontrar un patrón de colores: azul, blanco-grisnegro, y verde. Sin embargo esto no es suficiente, para describir un carril debe haber por lo menos algunos azules, separados por un ancho mínimo seguido de algunos verdes (El valor numérico de algunos está dado por el archivo de configuración, sensibilidad.ini) De otra parte, como se observa en la figura 5.11.b en algunos casos como en el 7º. Carril existe una gran cantidad de ruido esto se refleja como una sucesión aleatoria de líneas azules y verdes. El conocimiento experto de una imagen de un gel dice que existen intervalos de carril y espacios libres. Entonces parte de la heurística es encontrar el ancho del carril que para cada gel es fijo.. 49.

(50) ISC-2003-1-50. 5.4.2. PARA LA DETECCIÓN DE BANDAS La idea de esta heurística es bastante similar al anterior sin embargo lo que se busca para escribir una banda es un patrón vertical que consiste en: tener verdes, negros y azules. En memoria, sobre una imagen similar a la mostrada en la figura 5.12b, la cual es el resultado del proceso descrito en la sección 5.3 del paso 5 hasta el paso 8 sobre la imagen de la figura 5.12.a. Figura 5.6. Resultado del procesamiento, antes de aplicar la heurística para detección de bandas. a. b. Después de hacer pruebas, se determinó la heurística: por lo menos dos píxeles verdes seguido por lo menos dos píxeles negros y seguido de por lo menos dos más píxeles azules determinan una banda. Asi se aproxima al resultado encontrado por el experto. Estos valores de dos píxeles, al momento de esta implementación no son configurables.. 50.

(51) ISC-2003-1-50. 5.5. ESTRUCTURA DE DIRECTORIOS Y ARCHIVOS El prototipo contiene 6 directorios: Config: Core: GUI: Imágenes: Model: Resultados:. los archivos de configuración del sistema las fuentes de paquete Core las fuentes de paquete GUI las imágenes de geles y bandas usadas para las pruebas las fuentes de paquete Model las imágenes intermedias del preprocesamiento y procesamiento de geles.. Dentro del directorio raiz del prototipo se encuentran los archivos: clean.bat, compile.bat y run.bat, asi como un archivo .nbattrs creado por el IDE NetBeans y un acceso directo a run.bat llamado Procesador de Geles. La estructura general de directorios se aprecia mejor en la figura 5.7. Figura 5.7. Estructura de directorios de la raiz del prototipo.. En la figura 5.8. se muestra el contenido de los directorios Core, Model y GUI. 51.

(52) ISC-2003-1-50. Figura 5.8. Contenido de los directorios de fuentes: a. Core, b. Model , c.GUI.. a. b. c. 5.6. OPCIONES CONFIGURABLES. El prototipo cuenta con 2 archivos de configuración: el archivo contraste.ini y sensibilidad.ini. En el primero se pone un valor para el nivel de contraste que usa el metodo contrastar de la clase Pgrabber.(los valores permitidos van entre 0 y 255) En el segundo archivo se configura la sensibilidad del sistema en cuanto a la alineación de los carriles, es decir, que tan recto es un carril en la imagen. Se puede ver de esta manera: la sensibilidad seria el número de píxeles que describen un principio o final de carril. Desde este punto de vista se tiene que en una imagen ideal debería tener un valor de 1 (correspondiendo a un píxel de grosor).. 52.

(53) ISC-2003-1-50. 6.. RESULTADOS Y PRUEBAS. 6.1. IMÁGENES FUENTES El prototipo fue desarrollado sobre una imagen base (ver Figura 2.1); la imagen fue capturada, en un scanner ACER 3300U, con una resolución 200dpi y fue capturada a color por medio del software de Windows para captura de imágenes. El archivo fue capturado en formato bmp, fue transformado a formato jpg posteriormente con el programa IRFANVIEW VER 3.61. Este archivo, llamado gel1.jpg fue recortada manualmente, usando el programa MICROSOFT PAINT, para formar imágenes más pequeñas que contienen solo un carril. Estos archivos están en el directorio /imágenes/carriles y fueron usados como archivos de prueba. Además de estas imágenes, se realizaron pruebas con imágenes de fotos de geles completos. Estas imágenes se encuentran en el directorio /imágenes/geles. Fueron capturadas de la misma forma que la imagen base.. 6.2. CONTRASTE. El nivel de contraste de la imagen es muy importante para la aplicación, imágenes de un mismo gel, de bajo contraste son difícilmente procesadas por el prototipo.(ver figura 6.1.). 53.

(54) ISC-2003-1-50. Figura 6.1. a. bajo contraste (imagen original). Figura 6.1.b. contraste medio. Figura 6.1.c. alto contraste. 54.

(55) ISC-2003-1-50. al procesar la imagen 6.1.a no se encuentra ningún resultado, debido a la dificultad de encontrar bordes muy definidos en la imagen. Cuando fue necesario hacer una manipulación previa de la imagen para aumentar su contraste, se realizó la manipulación, sobre la imagen JPG, con el programa IRFANVIEW [IRF0] ocasionando un problema colateral como es el que cambió el número de colores de imagen de 24 bits a escala de grises (8 bits). Fue necesario hacer las manipulaciones con ADOBE PHOTOSHOP 7.0 [ADO] con el cual se solucionó el anterior problema. La figura 6.1.b por el contrario, tiene contornos más definidos y fácilmente identificables. En las mismas condiciones de procesamiento (contraste 160, sensibilidad 8) el prototipo detectó 0, 5 y 8 carriles (de un total de 9) respectivamente para las imágenes 6.1.a 6.1.b y 6.1.c. 6.3. RESULTADOS Se realizaron pruebas con 3 niveles de contraste y 3 de sensibilidad, de la siguiente manera: Contraste: Sensibilidad:. 128, 140, 160 4, 6, 8.. El nivel de contraste tiene que ver con el valor limite puesto para la binarización de la imagen (p.e nivel de gris < sensibilidad = negro) El nivel de sensibilidad hace referencia al número de píxeles que describen un principio o final de carril. En primer lugar, se presenta los resultados sobre la detección de carriles en imágenes de geles y se evalúa las variables de contraste y sensibilidad En segundo lugar se presenta resultados sobre la detección de bandas en imágenes de carriles. Con un valor fijo de contraste, se evalúa la detección para los diferentes niveles de sensibilidad en los dos ensayos (bandas y carriles). Posteriormente se evalúa, con un nivel de sensibilidad fijo, la detección para los diferentes niveles de contraste en los dos ensayos (bandas y carriles). En todos los casos, los números seguidos de un asterisco (*) indican que se encuentran más de un carril en esta imagen, debido a que estas imágenes sólo contienen un carril, debe describirse como un error.. 55.

(56) ISC-2003-1-50. Los números que van seguidos de dos asteriscos (**), indican que se detectó bien el carril, sin embargo en el archivo de texto de resultados, dicho carril, con toda su información, aparece duplicado.. 6.3.1 DETECCIÓN DE CARRILES 6.3.1.1. Carriles – Sensibilidad Con un nivel de contraste de 160, la mejor sensibilidad encontrada fue 8, como se ilustra en la tabla 6.1. Tabla 6.1. Detección de carriles con Contraste 160 y sensibilidad variable Número de carriles detectados por el sistema Contraste (160) - sensibilidad Imagen Número de 8 6 4 carriles detectados intuitivamente Gel1.jpg Gel2.jpg Gel3.jpg Gel4.jpg Gel5.jpg Gel6.jpg. 9 9 9 13 9 9. 8 5 5 11-22** 6 8. 5 5 4-6* 11-22** 7-10* 8. 5 2-6* 3-7* 10-11* 8-17* 8. *con error, detecta más carriles de los que hay ** carril aparece duplicado. Con un nivel de contraste de 140, la mejor sensibilidad encontrada fue 6 (sin embargo presenta valores muy similares al la sensibilidad 8), como se ilustra en la tabla 6.2.. 56.

(57) ISC-2003-1-50. Tabla 6.2. Detección de carriles con Contraste 140 y sensibilidad variable Número de carriles detectados por el sistema Imagen. Gel1.jpg Gel2.jpg Gel3.jpg Gel4.jpg Gel5.jpg Gel6.jpg. Contraste (140) - sensibilidad Número de 8 6 carriles detectados intuitivamente 9 9 9 13 9 9. 2 7-11* 4-6* 10-11* 6-9* 6. 4. 2 7-11* 4-6* 10-11* 7-9* 6. 7-22* 7-11* 5-8* 5 8-14* 6. *con error, detecta más carriles de los que hay ** carril aparece duplicado. Con un nivel de contraste de 128, la mejor sensibilidad encontrada fue 8(se presenta menos errores de detección de carriles erróneos), como se ilustra en la tabla 6.3. Tabla 6.3. Detección de carriles con Contraste 128 y sensibilidad variable. Número de carriles detectados por el sistema Imagen. Gel1.jpg Gel2.jpg Gel3.jpg Gel4.jpg Gel5.jpg Gel6.jpg. Contraste (128) - sensibilidad Número de 8 6 carriles detectados intuitivamente 9 9 9 13 9 9. 4 7-8* 5-6* 4-6* 3-4* 7. 4 7-10* 6-9* 9 5-7* 5. *con error, detecta más carriles de los que hay ** carril aparece duplicado. 57. 4. 4 7-10* 6-9* 9 5-7* 5.

(58) ISC-2003-1-50. 6.3.1.2. Carriles - Contraste Con un nivel de sensibilidad de 8, el mejor contraste encontrado fue 160 (se presenta menos errores de detección de carriles erróneos), como se ilustra en la tabla 6.4. Tabla 6.4. Detección de carriles con sensibilidad 8 y contraste variable Número de carriles detectados por el sistema sensibilidad (8) - contraste Imagen Número de 160 140 128 carriles detectados intuitivamente Gel1.jpg Gel2.jpg Gel3.jpg Gel4.jpg Gel5.jpg Gel6.jpg. 9 9 9 13 9 9. 8 5 5 11-22** 6 8. 2 7-11* 4-6* 10-11* 6-9* 6. 4 7-8* 5-6* 4-6* 3-4* 7. *con error, detecta más carriles de los que hay ** carril aparece duplicado. Con un nivel de sensibilidad de 6, el mejor contraste encontrado fue nuevamente 160 (se presenta menos errores de detección de carriles erróneos), como se ilustra en la tabla 6.5. Tabla 6.5. Detección de carriles con sensibilidad 6 y contraste variable Número de carriles detectados por el sistema Imagen. Gel1.jpg Gel2.jpg Gel3.jpg Gel4.jpg Gel5.jpg Gel6.jpg. sensibilidad (6) - contraste Número de 160 140 carriles detectados intuitivamente 9 9 9 13 9 9. 5 5 4-6* 11-22** 7-10* 8. 2 7-11* 4-6* 10-11* 7-9* 6. *con error, detecta más carriles de los que hay ** carril aparece duplicado. 58. 128. 4 7-10* 6-9* 9 5-7* 5.

(59) ISC-2003-1-50. Con un nivel de sensibilidad de 4, el mejor contraste encontrado fue 140 (sin embargo hay muchos errores de detección de carriles inexistentes), como se ilustra en la tabla 6.6. Tabla 6.6. Detección de carriles con sensibilidad 4 y contraste variable Número de carriles detectados por el sistema Imagen. Gel1.jpg Gel2.jpg Gel3.jpg Gel4.jpg Gel5.jpg Gel6.jpg. sensibilidad (4) - contraste Número de 160 140 carriles detectados intuitivamente 9 9 9 13 9 9. 5 2-6* 3-7* 10-11* 8-17* 8. 7-22* 7-11* 5-8* 5 8-14* 6. 128. 4 7-10* 6-9* 9 5-7* 5. *con error, detecta más carriles de los que hay ** carril aparece duplicado. 6.3.2. DETECCIÓN DE BANDAS 6.3.2.1. Bandas - Sensibilidad Con un nivel de contraste de 160, la mejor sensibilidad encontrada fue 8, como se ilustra en la tabla 6.7.. 59.

(60) ISC-2003-1-50. Tabla 6.7. Detección de bandas con Contraste 160 y sensibilidad variable Número de bandas detectados por el sistema Contraste (160) - sensibilidad imagen Número de 8 6 4 bandas detectados intuitivamente Carril1.jpg Carril2.jpg Carril3.jpg Carril4.jpg Carril5.jpg Carril6.jpg Carril7.jpg Carril8.jpg. 10 10 9 10 7 6 7 7. 3 2 3 2 1 1 3 2. 2 2 3 2 1 1 3 2. 2 2 3 2 1 1 3 2. *con error, detecta más carriles de los que hay ** carril aparece duplicado. Con un nivel de contraste de 140, la mejor sensibilidad encontrada fue 8, como se ilustra en la tabla 6.8. Tabla 6.8. Detección de bandas con Contraste 140 y sensibilidad variable Número de bandas detectados por el sistema imagen. Carril1.jpg Carril2.jpg Carril3.jpg Carril4.jpg Carril5.jpg Carril6.jpg Carril7.jpg Carril8.jpg. Contraste (140) - sensibilidad Número de 8 6 bandas detectados intuitivamente 10 10 9 10 7 6 7 7. 3 3 2 3 0 1 2 4. 3* 3 2 3 0 1** 2** 2**. *con error, detecta más carriles de los que hay ** carril aparece duplicado. 60. 4. 3* ** 3** 2 3 3 1** 2** 5**.

(61) ISC-2003-1-50. Con un nivel de contraste de 128, la mejor sensibilidad encontrada fue 8 (se presenta menos errores en la detección de carriles erróneos), como se ilustra en la tabla 6.9. Tabla 6.9. Detección de bandas con Contraste 140 y sensibilidad variable Número de bandas detectados por el sistema imagen. Contraste (128) - sensibilidad Número de 8 6 bandas detectados intuitivamente. Carril1.jpg Carril2.jpg Carril3.jpg Carril4.jpg Carril5.jpg Carril6.jpg Carril7.jpg Carril8.jpg. 10 10 9 10 7 6 7 7. 3 2 5 5 1 3 2 4. 3** 2** 5 5 1 3** 2** 4. 4. 3** 2 5 5 1 3** 2** 4. *con error, detecta más carriles de los que hay ** carril aparece duplicado. 6.3.2.2. Bandas - Contraste Con un nivel de sensibilidad de 8, el mejor contraste encontrado fue 128, como se ilustra en la tabla 6.10.. 61.

(62) ISC-2003-1-50. Tabla 6.10. Detección de bandas con sensibilidad 8 y contraste variable Número de bandas detectados por el sistema sensibilidad (8) - contraste imagen Número de 160 140 128 bandas detectados intuitivamente Carril1.jpg Carril2.jpg Carril3.jpg Carril4.jpg Carril5.jpg Carril6.jpg Carril7.jpg Carril8.jpg. 10 10 9 10 7 6 7 7. 3 2 3 2 1 1 3 2. 3 3 2 3 0 1 2 4. 3 2 5 5 1 3 2 4. *con error, detecta más carriles de los que hay ** carril aparece duplicado. Con un nivel de sensibilidad de 6, el mejor contraste encontrado fue 160 (se presenta menos errores en la detección de carriles erróneos), como se ilustra en la tabla 6.11. Tabla 6.11. Detección de bandas con sensibilidad 6 y contraste variable Número de bandas detectados por el sistema imagen. Carril1.jpg Carril2.jpg Carril3.jpg Carril4.jpg Carril5.jpg Carril6.jpg Carril7.jpg Carril8.jpg. sensibilidad (6) - contraste Número de 160 140 bandas detectados intuitivamente 10 10 9 10 7 6 7 7. 2 2 3 2 1 1 3 2. 3* 3 2 3 0 1** 2** 2**. *con error, detecta más carriles de los que hay ** carril aparece duplicado. 62. 128. 3** 2** 5 5 1 3** 2** 4.

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

[r]

[r]

La heterogeneidad clínica de esta patolo- gía hizo que se considerasen a numerosos genes de pro- teínas de la matriz extracelular (elastina, fibronectina, genes de los colágenos de

la cual, introducida en la función kemel de densidad espectral estimada posibilitará que el estimador resultante de S, sea una matriz semidefinida positiva. Esta

PLAN DE NEGOCIOS DE UN RESTAURANTE QUE POSTERIORMENTE SIRVA COMO BASE PARA LA CREACIÓN DE UNA FRANQUICIA COLOMBIANA, COMERCIALIZADORA DE ALITAS DE POLLO A DOMICILIO Y EN PUNTO

Para terminar esta comunicación, nos gustaría destacar la gran acogida que han tenido las experiencias llevadas a cabo, y en lo que respecta al profesor, como hemos indicado al