Repositorio Institucional de Documentos
Abstract
En este proyecto se afronta el estudio de la concentración de oxígeno en células y tejidos mediante el diseño de un sistema de medición basado en microscopia de fluorescencia. Partiendo de otros montajes similares, se tratan tanto la parte física como la captación de imagen mediante una cámara digital, y el software necesario para aplicar técnicas de filtrado y procesado de imagen necesarias para extraer los datos que lo relacionen con su concentración de oxígeno de forma automática. Martín Buil, Darío; Sotelo Hermida, Félix Antonio
Full text
Repositorio de la Universidad de Zaragoza – Zaguan http://zaguan.unizar.es ! Trabajo Fin de Grado Estudio de la Concentración de Oxígeno en Células y Tejidos mediante Técnicas de Fluorescencia, Adquisición y Procesado de Imágenes Autor Darío Martín Buil Director Félix Antonio Sotelo Hermida Ponente Juan Ignacio Garcés Gregorio Escuela de Ingeniería y Arquitectura Año 2014
Página II
memoriae duplex virtus
Página IV
Página i Agradecimientos En primer lugar, me gustaría agradecerle a Nacho por haberme animado con el proyecto, y ayudarme con la revisión de la memoria. Me gustaría nombrar también a los chicos del laboratorio, José Ramón, Isabel, Carlos, José Antonio y Miguel, por la cálida acogida y consejos durante todo este tiempo. También quisiera darle las gracias a David, por su ayuda con los grandes detalles del proyecto y sobretodo a mi director, Félix, por su apoyo desde el primer día. Por último, quiero darle las gracias de corazón a mis padres, por todos los esfuerzos y sacrificios que han hecho para que pudiera llegar hasta aquí; que este proyecto, en cierta manera, también lleva un pedazo suyo.
Página ii
Página iii Resumen En este proyecto se afronta el estudio de la concentración de oxígeno en células y tejidos mediante el diseño de un sistema de medición basado en microscopia de fluorescencia. Partiendo de otros montajes similares, se tratan tanto la parte física como la captación de imagen mediante una cámara digital, y el software necesario para aplicar técnicas de filtrado y procesado de imagen necesarias para extraer los datos que lo relacionen con su concentración de oxígeno de forma automática. Para tal fin se ha diseñado un montaje compuesto por la microscopía, la platina móvil donde se colocan el sensor con las muestras a medir y la iluminación con su electrónica de control. Todo ello controlado a través de una interfaz gráfica, como es una aplicación de escritorio para ordenador. Esta aplicación permite la visualización de los datos tomados en tiempo real, así como su almacenamiento y exportación a formatos de uso común para un análisis y estudio posteriores. Palabras Clave: Fluorescencia, Oxígeno, Porfirina, Filtrado, Imagen, Cámara.
Página iv
Página v Tabla de contenidos Agradecimientos ......................................................................................... i Resumen ..................................................................................................... iii Tabla de contenidos .................................................................................. v 1. Introducción ........................................................................................ 1 2. Antecedentes ........................................................................................ 2 3. Materiales y Métodos ......................................................................... 3 3.1. Placa del Sensor ...................................................................................... 3 3.2. Análisis Espectral de la Fuente y Sensor de la Cámara ................ 6 3.2.1. Espectro de los LED y la fuente ............................................................ 6 3.2.2. Análisis del demosaico de imagen ....................................................... 7 3.3. Microscopía .............................................................................................. 8 3.4. Cámara ....................................................................................................... 9 3.5. Control de Iluminación ........................................................................ 11 4. Descripción del Software ................................................................ 13 4.1. Captación, Procesado y Filtrado de Imagen .................................. 14 4.1.1. Captación y almacenamiento en el buffer .......................................... 14 4.1.2. Lectura y filtrado de datos de imagen ............................................... 15 4.1.3. Procesado y extracción de parámetros de oxígeno ............................. 16 4.2. Interfaz Gráfica de Usuario (GUI) .................................................... 19 4.2.1. Ventana Principal ............................................................................... 19 4.2.2. Ventana de Canales RGB ................................................................... 22 4.2.3. Ventana de Frame .............................................................................. 22 4.2.4. Ventana de Gráficas de Datos ............................................................ 22 4.2.5. Ventana de Histogramas .................................................................... 22 5. Medidas Experimentales ................................................................. 23 5.1. Calibración de la Cámara ................................................................... 23 5.2. Cultivo de células .................................................................................. 27 6. Conclusiones ...................................................................................... 28 7. Líneas de investigación futuras .................................................... 29 8. Bibliografía ........................................................................................ 30 9. Planificación ...................................................................................... 31
3 - Materiales y Métodos Página 6 En la gráfica fig.3.6 se aprecia como el ratio se mantiene constante para una misma muestra independientemente del tiempo de saturación. Únicamente al alcanzar valores de exposición de 2.500ms cuando el canal rojo satura, se altera el ratio G/R. 3.2. Análisis Espectral de la Fuente y Sensor de la Cámara A fin de comprobar la viabilidad del sistema, se realizó un análisis espectral de la respuesta de la cámara bajo iluminación roja y verde, así como una verificación del espectro de la fuente que iba a ser utilizada finalmente en el montaje. 3.2.1. Espectro de los LED y la fuente Para comprobar la idoneidad de la cámara, se dispusieron dos LED debidamente polarizados para lograr una emisión lo más pura posible en rojo, 650nm, y verde, 525nm ,que consiguen así simular el efecto real de la fluorescencia en un experimento real. Para su Figura 3.6. Gráfica comparativa de canales RGB y ratio G/R para diferentes tiempos de exposición. El ratio se mantiene constante hasta la saturación del canal. Figura 3.7. Espectro de emisión medido de los LED Rojo y Verde y la Fuente.
3 - Materiales y Métodos Página 7 caracterización se utilizó un analizador de espectro óptico OCEAN OPTICS 4000. Análogamente, también se registró el espectro de la fuente azul que sería utilizada para el experimento; ésta se caracteriza por tener una buena pureza espectral centrada en 405nm evitando así que las colas espectrales puedan contaminar el espectro en rojo y verde, como pueden verse en la fig.3.7. 3.2.2. Análisis del demosaico y filtro de imagen Una de las partes críticas del sistema se encuentra en el algoritmo que la cámara realiza internamente para formar la imagen. Las cámaras CCD incluyen un filtro de Bayer para la captación de las componentes del espectro RGB, debido al cual, para la generación de la imagen real requieren de un postprocesado llamado demosaico (ver Anexo B). El motivo principal del registro de los espectros RGB de emisión es comprobar si el algoritmo interno de demosaico respeta los espectros de color captados por el sensor CCD sin que por ello se alteren los canales de color o si simplemente hace una representación para ajustarse al ojo humano. La cámara MIGHTEX elegida permite ser configurada para trabajar con ambos formatos de imagen, denominados raw (Formato de salida de cámara) y bmp (Imagen de Mapa de Bits). Mientras que el formato raw puro es el más fidedigno a la imagen captada, el bmp permite operar más fácil y rápidamente con imágenes y guardarlas en formatos de imagen comunes. (a) (b) (c) Figura 3.8. Imágenes captadas por la cámara bajo los LEDs rojo (a), verde (b) y la fuente azul (c) y sus canales de color. Como puede apreciarse, sólo aparecen iluminados los canales correspondientes para cada uno.
3 - Materiales y Métodos Página 8 Así, a través de las fugas de un canal a los adyacentes se puede comprobar si los canales están lo suficientemente aislados entre sí y si el algoritmo de demosaico realmente respeta las componentes de color o únicamente muestra una imagen agradable al ojo humano. Las imágenes de la fig.3.8 muestran cómo se distribuyen los canales de color para los tres diferentes tipos de iluminación roja, verde y azul. Para evitar que la iluminación azul de la fuente sature los canales de color, como se explica más adelante en el apartado 3.3, se utilizó un filtro óptico para contrarrestar las colas del espectro de la fuente; de ahí que el propio canal azul de la fig3.7 iluminado por la fuente se vea tan atenuado también. 3.3. Microscopía Dado que los experimentos a medir se realizan a escala celular, hay que contar con un sistema de enfoque y aumento para obtener una buena imagen. Así, el sistema de microscopía ha de ser capaz de proyectar una imagen nítida sobre la superficie del sensor CCD de la cámara. Para lograr obtener una imagen a la escala de los posibles cultivos de las pruebas se utiliza una lente de contraste de fase OLYMPUS CAchN 10x/0.25, de 10 aumentos, acoplada a un tubo opaco que fija la distancia lente-sensor. El uso de esta lente supone el ajuste de las distancias focales del conjunto, como se indica en el diagrama mostrado en la fig.3.10, donde objetivo (negro, f=18mm) y ocular (azul, Figura 3.9. Fotografía del montaje completo y sus partes (a). Detalle del montaje con la iluminación (b)
3 - Materiales y Métodos Página 9 f=200mm), se ven representadas en el mismo eje óptico sobre el que se situaría aproximadamente la encapsulado del chip de microfluídica, en S. De esta forma, el objeto S situado a una distancia mayor que el foco de la lente proyectará una imagen S’, que actuará como el objeto del filtro, proyectando la nueva imagen en S”. Entre el objetivo y el ocular, se aloja un filtro de azul EDMUND OPTICS Longpass Filter 25mm, encargado de eliminar el espectro de luz por debajo de 475nm; con ello se evita la saturación de la cámara en el canal B, que aunque no es medido directamente, su saturación puede desbordar sobre los canales R y G invalidando las medidas. La longitud de onda de corte de este filtro es lo suficientemente alta como para eliminar la luz azul sin perjudicar el espectro en las longitudes de onda del verde. Sobre la lente se sitúa una platina de aluminio con un taladro de 2cm de diámetro aproximadamente en la que reposa el sensor. Este agujero permite captar la imagen de la parte inferior del sensor desde la cámara pero manteniendo su estabilidad sobre la platina. La platina está fijada a una base XYZ que permite el ajuste en las tres dimensiones, tanto como para afinar el enfoque de la imagen, como desplazar la el sensor en el plano de la cámara. Este soporte XYZ está fijado a su vez a una plancha de aluminio vertical y ésta a la base del montaje completo. Seguidamente, atornillado la plancha de aluminio en línea con el tubo de la cámara hay un rail sobre el que se sujeta la fuente de luz y una lente condensadora para iluminar la muestra. El rail sólo está sujeto a la plancha de aluminio por un punto, pudiendo cambiar el ángulo de iluminación de la muestra además de la distancia de la lente y la fuente. 3.4. Cámara Para el primer diseño del prototipo, primaba sobretodo que el dispositivo de captación a utilizar no presentase unas restricciones técnicas muy exigentes en lo referente a su sensibilidad y control por ordenador, para que pudiera usarse de forma holgada en un equipo de gama media. La cámara contiene un sensor ICX205AK de Sony, de tipo CCD (Charged-Coupled Device, Dispositivo de Carga Acoplada) que presentan mejores prestaciones de relación señal a ruido y sensibilidad en detrimento de la velocidad de scan del array completo frente a otras como las basadas en sensores CMOS (Complementary Metal Oxide Semiconductror, Figura 3.10. Diagrama de la disposición del objetivo (negro) y el ocular (azul). En verde, las proyecciones de rayos del objeto S y sus imágenes, S’ y S’’.
3 - Materiales y Métodos Página 10 Semiconductor Complementario de Óxido Metálico). Si bien, dado que la velocidad de captación de imagen no es un factor tan crítico como lo es la exactitud de las medidas, la opción de un sensor CCD se presenta como la mejor para este sistema. Uno de los elementos más importantes a tener en cuenta durante la realización de los experimentos es la temperatura del ambiente donde se aloje el sistema; en condiciones de laboratorio los cultivos suelen estar a temperaturas controladas en torno a 37,5ºC, lo cual puede suponer un limitante en cuanto al dispositivo. La CCE-C013-U presenta unos límites de temperatura de operación de 0~45ºC y de almacenamiento de -25~85ºC, por lo que encaja dentro de los márgenes de utilización. Paralelamente, la CCE-C013-U tiene unos requisitos técnicos bastante flexibles, que consigue gracias a su motor de cámara avanzado y buffer interno, así como comunicación vía USB 2.0 y un SDK propio. Éste último punto también resulta decisivo a la hora de elegir la cámara. Dado que el SDK es común para toda la familia de cámaras CXX de MIGHTEX, podría substituirse la cámara por otra de mejores prestaciones para futuras aplicaciones más avanzadas sin que por ello la modificación del código de la aplicación haya de ser exhaustiva: la aplicación está preparada para que las operaciones y cálculos dependientes de los parámetros más relevantes (resolución, tiempo de exposición, etc) dependan únicamente de los valores marcados por la .dll en lugar de ser fijados manualmente. La alimentación y conexión de datos de la cámara se realiza mediante un cable USB conectado a uno de sus laterales. Para la velocidad de muestreo del sensor, la conexión mediante interfaz USB puede garantizar unos 5m de cableado sin perjudicar por ello la transferencia de datos. Junto a él se ubica el conector para los pines de GPIO (Global Purpose Input Output) con el que poder interactuar con hardware externo. Para disponer de mayor longitud de cable hacia el PC, la cámara está conectada a su vez a un Hub USB localizado en la parte posterior del soporte, que sirve de alimentación. Para el resto de especificaciones de la Cámara CCE-C013-U y el sensor CCD, consultar el Anexo C. Figura 3.11. CCE-C013-U de MIGHTEX
3 - Materiales y Métodos Página 11 3.5. Control de Iluminación Dada la naturaleza prolongada de los experimentos que llevarán a cabo, para no dañar las muestras se decidió automatizar el sistema de iluminación mediante LED (LED40502V de ROITHNER), limitándolo únicamente a los intervalos de tiempo en los que se toman las medidas reales. El sistema de iluminación se controla mediante los pines GPIO de la cámara que ya se encuentran integradas en el SKD mediante la llamada de funciones dedicadas. Las cámaras MIGHTEX CCX cuentan con 4 GPIO a 3,3v configurables, localizadas en el conector de Din de 8 pines, como se muestra en la fig.3.12. Para la activación de la fuente de luz únicamente se requiere de una única GPIO configurada como salida. Sin embargo dado que el voltaje en directa del LED azul, VDD=3,5v, así como su corriente en directa, son mayores que los que proporciona la interfaz de salida de la cámara, se utilizó un pequeño circuito auxiliar aprovechando los +5v de uno de los puertos USB del Hub. Para el control con la GPIO se utilizaron dos transistores de propósito general BC107 de SEME LAB a modo de interruptor dispuestos como se aprecia en la fig.3.13. Esta configuración permite un buen control de la intensidad que atraviesa el LED dependiendo de la resistencia de control R, pues la caída de voltaje en R queda fijada a 0,7v, que se Figura 3.12. Diagrama del Conector Din de 8 pines de la cámara. Figura 3.13. Diagrama del circuito del control de iluminación. BC107 BC107
3 - Materiales y Métodos Página 12 corresponde con el VBE del segundo transistor. Así, si I es la intensidad que atraviesa el LED en directa cuando está encendido, ha de cumplirse (1) 5𝑣>V!+V!" +V!! donde VDD=3,5v es el voltaje en directa del LED y VR es la caída en la resistencia R3. La intensidad I viene dada por (2) I= V! R3 = 0,7𝑣 R3 Despejando para una intensidad en directa máxima del LED de 20mA, tenemos que R3=35Ω (≈34Ω). Finalmente R2=10kΩ y R1=100kΩ, que es una resistencia de pulldown para el circuito. El control de estado de la GPIO así como su configuración se realizan a través del programa de la cámara, que incluye un botón para activar y desactivarla manualmente así como una opción de control automático. Finalmente, el LED azul está sujeto a un soporte que se acopla junto con una lente condensadora de luz, que pueden desplazarse a lo largo del rail para poder variar el enfoque del haz de luz sobre la muestra. ( 1 ) ( 2 )
4 - Descripción del Software Página 13 4. Descripción del Software La aplicación de escritorio es la encargada de efectuar el control de los parámetros de captación de imagen, capturar y almacenar los datos y permitir su exportación a diferentes soportes para su posterior interpretación. El kit de herramientas de desarrollo (Software Development Kit, SDK) que incluyen las cámaras MIGHTEX permite su programación en diferentes lenguajes de programación tales como Ruby, Visual Basic, C++ y C#; todos ellas cuentan con la documentación pertinente para la lectura de datos y la configuración de la cámara antes y durante la captación de la imagen real. Junto a ella se proporcionan también las .dll (Dinamic-link Library) necesarias para los lenguajes de programación anteriormente citados, que son las encargadas de traducir las funciones de alto nivel con los registros internos del hardware de la cámara. De entre todos estos lenguajes, se escogió C# para el desarrollo de la aplicación por su sencillez de interpretación y programación orientada a objetos. Al tratarse de un lenguaje compilado con una sintaxis similar a C/C++ presenta un mejor rendimiento que los interpretados, pero además cuenta con el soporte .NET de Microsoft para la elaboración de un programa de escritorio independiente y funcional con una interfaz de usuario propia. El entorno de desarrollo escogido para trabajar en C# fue el Visual Studio de Microsoft, que junto con su plataforma de desarrollo MSDN (Microsoft Developer Network) cuenta Figura 4.1. Diagrama global de la Aplicación de escritorio.
4 - Descripción del Software Página 14 con una serie de recursos y comunidad para lograr una aplicación potente a la par que sencilla de utilizar, tanto a nivel core como para el desarrollo de la GUI. Para la implementación de algunos de los filtros utilizados en el proyecto se recurrió a la librería AForge.NET (AForge.NET Framework 2008), que ya cuenta con un amplio de filtros y operaciones de imagen optimizadas para entornos C#, si bien otros de los filtros debieron ser modificados a partir de los originales para adaptarse a las exigencias concretas de este sistema. 4.1. Captación, Procesado y Filtrado de Imagen El procesado global de la imagen puede dividirse en tres fases, que conforman parte core de la aplicación; la captación y conversión analógico-digital, que se realiza internamente en la cámara, la lectura y filtrado de datos del buffer de la cámara, y el procesado y extracción de parámetros de oxígeno; estas dos últimas ejecutadas por el PC. Las operaciones realizadas internamente tales como el algoritmo de demosaico se desarrollan en procesos multihilo con hardware dedicado mientras que las que se efectúan en el ordenador quedan sujetas a su capacidad de procesado por lo que ha de primar el uso eficiente de recursos. 4.1.1. Captación y almacenamiento en el buffer El proceso de captación de imagen comienza con la lectura de los valores de los sensels RGB. Esta lectura se realiza de forma lineal, almacenando primero los registros horizontales del sensor (líneas) y posteriormente su registro vertical (columnas). Figura 4.2. Diagrama de bloques de la captación de la imagen y tratamiento hasta el buffer de la cámara.
4 - Descripción del Software Página 15 Durante este proceso, descrito en la fig.4.2, se pueden configurar ciertos parámetros como el ratio de salto de lectura de línea horizontal y vertical o la frecuencia de reloj de lectura de líneas, así como la ganancia analógica de los sensels RGB, entre otros. Según la configuración de la cámara, tras haber finalizado la lectura de un CFA completo, se procede a la conversión y traslado de estos valores al buffer de la cámara, que variará según el modo de configuración: • Para el modo raw, se trasladan estos valores en 12 bits directamente al buffer de salida de la cámara, formando un frame. Huelga decir que debido a la distribución del CFA la resolución de la imagen se verá mermada en un factor 2 en el canal verde y en un factor 4 para los canales rojo y azul. • Para el modo bitmap, se recogen los valore del CFA y se convierten, según el algoritmo interno de demosaico (Chen 1999), en una imagen RGB de 24 bits por pixel (8 por color) de la misma resolución, según los parámetros especificados por el usuario, como la gamma o el brillo. (ver Anexo X). Posteriormente, se trasladan estos valores al buffer de salida de la cámara, formado un frame. Una vez que una imagen está lista para ser leída, la cámara comunica al programa que ya puede invocar al Frame Delegate (1) para extraerla del buffer y operar con ella. 4.1.2. Lectura y filtrado de datos de imagen Tal y como se describe en la fig.4.3, en esta fase se comunica la parte core de la aplicación con la interfaz de salida de la cámara: cada vez que un nuevo frame está disponible en el buffer para ser leído, la cámara invoca al Frame Delegate (1), FD1, indicándole la dirección de su mapa de memoria para que comience la lectura. El FD1 recorre las direcciones de los registros y convierte los datos de un frame a un tipo imagen en formato RGB usable en C#, la clase Bitmap. Éste es el tipo básico de imagen con el que se trabaja en C# y las librerías AForge, y el que permite realizar los filtrados con el mejor rendimiento posible. Una vez generado el Bitmap RGB a 24bpp (Imagen de mapa de Rojo (8), Verde (8) y Azul (8) bits por pixel), se extraen los canales de color, así como su Media, Mediana y Desviación Estándar para almacenarlos y poder operar con ellos independientemente más Figura 4.3. Diagrama de bloques de la lectura de datos de buffer y filtrado de imagen
4 - Descripción del Software Página 22 4.2.2. Ventana de Canales RGB En la ventana de Canales RGB se muestran las componentes de color correspondientes a cada canal, en tres imágenes separadas que se actualizan en tiempo real cada segundo con un nuevo frame. De esta forma pueden compararse más fácilmente las relaciones de color en diferentes zonas del cultivo más fácilmente junto con la imagen RGB completa. 4.2.3. Ventana de Frame La ventana de frame es una ampliación de la miniatura que se muestra en la Ventana Principal. Al mostrar esta ventana se facilita un ajuste más fino a la hora de hacer el enfoque de la lente y apreciar mejor otros detalles. 4.2.4. Ventana de Gráficas de Datos Esta ventana contiene otra gráfica dinámica que registra los valores de media de los canales RGB por separado, para poder realizar procesos de calibración de forma más sencilla. La gráfica dinámica dispone de los controles de ajuste de los ejes a pequeña y gran escala, además de ofrecer la posibilidad de exportar los datos a formato .xlsx y .csv para su uso posterior. 4.2.5. Ventana de Histogramas En la ventana de histogramas se muestran dos gráficas, correspondientes a la distribución de valores de luminosidad e histogramas de canal de color. Con ellos puede comprobarse si el sensor está saturado por recibir demasiada luz, o cómo se distribuyen los valores de los canales RGB. Dentro de esta ventana se encuentran también los controles para poder exportar los datos capturados en las gráficas, tanto en formato de imagen .bmp como en Excel, .xlsx.
5 - Medidas Experimentales Página 23 5. Medidas Experimentales De cara a la realización de medidas experimentales reales, se intentó simplificar el diseño de la aplicación para que sea lo más intuitiva posible a la hora de calibrar el sistema al comienzo de un experimento. 5.1. Calibración de la Cámara Antes de realizar un cultivo real, es necesario comprobar y calibrar la cámara para las concentraciones de 0 y 100% de oxígeno, y hallar así los valores de A y B de ajuste de la recta. Los valores obtenidos quedan almacenados en la aplicación o pueden volver introducirse posteriormente de forma manual, permitiendo así disponer de la caracterización de varios chips simultáneamente. Para una comprobación del funcionamiento del sistema, se utilizó una lámina de acetato transparente iluminada con luz blanca, sobre la cual se pintaron dos secciones que iban desde el rojo al verde, emulando el patrón de fluorescencia del sensor en concentraciones del 0% al 100% de oxígeno respectivamente. Durante el proceso de calibración, se obtuvieron unos valores de ajuste de A = 0,4796 y B = 1,0132. A diferencia de un sensor real en el que el indicador verde permanecería constante durante todo el rango, en esta simulación ambos indicadores, verde y rojo, se desplazan para las concentraciones de 0~100% como se aprecia en los histogramas de la fig.5.1, debido a la disposición del patrón dibujado sobre la lámina. Sin embargo, este caso sirve para ilustrar cómo evolucionaría el ratio G/R en un experimento con un cultivo real. Fijados ya los valores de A y B, se realizó un barrido sobre la superficie de la lámina, sirviéndose para ello de la base móvil XYZ; desplazando la platina de forma longitudinal al patrón sobre la lámina pintada, se emuló así una disminución de la concentración de oxígeno sobre una muestra. Así, durante doce minutos aproximadamente, se fue recorriendo paulatinamente el patrón pintado recogiendo los datos de la evolución de forma análoga a la que se llevaría a cabo con un cultivo real, con un intervalo de toma de muestras de cinco segundos. Finalizada la simulación, se exportaron tanto el vídeo como los datos de las medidas. Muestras [adim] Muestras [adim] (a) (b) Figura 5.1. Histogramas de los Canales Rojo, Verde y Azul para las imágenes de la lámina de acetato verde (a) y roja (b). La presencia de componente azul se debe a la mezcla de los tintes utilizados. Valor de pixel [adim] Valor de pixel [adim]
5 - Medidas Experimentales Página 24 En la fig.5.2 se aprecia la evolución decreciente de la concentración de oxígeno equivalente simulada por el acetato; a medida que la parte verde del patrón se desplaza hacia el borde derecho de la captura, el porcentaje disminuye en consonancia. Para hacerse una idea de las dimensiones del patrón pintado y de la propia muestra, cabe destacar que la (a) (b) Figura 5.2. Imágenes RGB (arriba) y canales de color (abajo) de la lámina de acetato pintado para una concentración de oxígeno simulada equivalente del 100% (a) y del 70% (b).
5 - Medidas Experimentales Página 25 superficie de la imagen capturada es de aproximadamente de 800 x 700𝜇m. En las capturas de la misma figura se aprecian unas imperfecciones debidas a la irregularidad del patrón pintado sobre la lámina de acetato, que dan una mejor idea de cómo se comportan las componentes de color Rojo, Verde y Azul. Figura 5.2.(continuación) Imágenes RGB (arriba) y canales de color (abajo) de la lámina de acetato pintado para una concentración de oxígeno simulada equivalente del 38% (c) y del 0% (d). (c) (d)
5 - Medidas Experimentales Página 26 Análogamente, en la fig.5.3 se muestran las imágenes en pseudocolor para cuatro concentraciones. Gracias a la utilización del remapeado de color se aprecian mucho mejor los contrastes entre diferentes zonas de la captura. Finalmente, en la fig.5.4 se muestra una gráfica que representa la evolución de las concentraciones equivalentes de oxígeno frente al tiempo de simulación. Figura 5.3. Imágenes de pseudocolor de capturas de diferentes posiciones del acetato para diferentes concentraciones de oxígeno equivalentes. Figura 5.4. Gráfica de la evolución temporal de la concentración de oxígeno equivalente simulada.
5 - Medidas Experimentales Página 27 5.2. Cultivo de células Para la comprobación real del funcionamiento del sistema se realizó un cultivo real en condiciones de laboratorio en las instalaciones del i3A (Instituto de Investigación en Ingeniería de Aragón), que forma parte de una de las líneas de investigación del GEMM y CIBER-BBN (Centro de Investigación Biomédica en Red, Bioingeniería, Biomateriales y Nanomedicina). El objetivo de este experimento era analizar el consumo de oxígeno de una línea celular estable de Glioblastoma U-251. El glioblastoma es un tipo de tumor cerebral compuesto por células astrocíticas, encargadas de realizar diversas actividades nerviosas. Para ello, se introdujo dentro del chip un cultivo de estas células astrocíticas tumorales U-251 embebidas en un hidrogel de colágeno a 1,5mg/ml. Una vez preparado el chip, la población de células iría consumiendo paulatinamente el oxígeno de la muestra, partiendo desde un nivel de 100% de O2 hasta que se creyera conveniente. El montaje se introdujo dentro de una cámara de cultivo de temperatura controlada (37,5ºC) durante siete días, monitorizado en todo momento por el ordenador que ejecutaba la aplicación. Por su parte, el chip había sido caracterizado previamente obteniendo unos valores de A = 0,882 y B=0,220. Sin embargo, debido a un fallo de mecanización, quedó un poro en la carcasa permitiendo que entrara una burbuja de aire en la muestra y alterando consigo las medidas de oxígeno, fig. 5.5. Debido a esto, no se pudieron extraer resultados útiles del experimento, quedando pospuesto para líneas de investigación futuras. Figura 5.5. Imagen en pseudocolor de la burbuja de aire en la muestra.
6 - Conclusiones Página 28 6. Conclusiones El objetivo de este proyecto es el estudio y diseño de un sistema de medición de concentración de oxígeno en células y tejidos, mediante el uso de técnicas de fluorescencia y procesado y captación de imagen. Al fin del mismo, se ha logrado un primer prototipo funcional, que si bien puede ser susceptible de diversas mejoras en el futuro, consigue realizar las mediciones para el cual fue diseñado. Los experimentos a escala microscópica destacan por ser especialmente delicados en cuanto a su manipulación y estudio; de ahí que durante todo el diseño del sistema se haya intentado maximizar la precisión del procesado de datos para lograr unos resultados lo más ajustados a la realidad, sin comprometer por ello el rendimiento general del sistema. En este mismo aspecto también ha sido de vital importancia una búsqueda cuidadosa de los elementos que componen el sistema; han de poder operar dentro del rango bajo las condiciones a las que se van a ver sometidos en un ambiente de laboratorio, que si bien no son excesivamente exigentes para este caso, sí que implican una elección meticulosa. Otro de los aspectos clave que motivaron este proyecto fue lograr la automatización de un sistema que hiciera uso de técnicas de medición hasta la fecha realizadas de forma manual; la toma de muestras automática supone un gran avance en campos del ámbito de la investigación, pues supone una optimización tanto de personal como de recursos. Por otra parte, el diseño de una interfaz gráfica sencilla y que pueda ser manipulada con fluidez y que respondiera en todo momento se ha presentado como otro aliciente muy relevante durante el transcurso del proyecto. El uso del clásico interfaz de botones y ventanas de una aplicación de escritorio, sumado con la posibilidad de exportar una gran cantidad de datos tanto procesados como sin procesar, hacen que la aplicación pueda ser utilizada sin tener que conocer su funcionamiento interno. Finalmente, se realizaron las pruebas pertinentes para la verificación de su funcionamiento, comprobando que el prototipo es válido para su uso bajo condiciones de laboratorio.
7 - Líneas de Investigación Futuras Página 29 7. Líneas de investigación futuras Este proyecto supone el primer prototipo y punto de partida para investigaciones de carácter bioquímico que puedan relacionarse directa o indirectamente con el comportamiento del oxígeno. El primer aspecto a tener en cuenta para líneas futuras es su uso en condiciones de laboratorio reales que permitan llevar a cabo otras modificaciones para que el diseño deje de ser un prototipo y se convierta en un sistema completamente operativo y funcional. La mejora del sistema de microscopía, substituyéndolo por un montaje en T con filtros dicroicos en el que la fuente de luz no ilumine directamente el sensor de la cámara, la posibilidad de incluir una óptica de más aumentos o la utilización de más de una fuente de luz para localizar otro tipo de marcadores espectralmente compatibles con éste son algunas de las mejoras posibles que se prevé llevar a cabo en un futuro; la medición no sólo del oxígeno sino de otros parámetros importantes como el pH se presentan como una línea de diseño e investigación prometedora. En cuanto al procesado e imagen se refiere, se plantea también la mejora de los algoritmos de cálculo de concentración, como puede ser la introducción del seguimiento y conteo de células o la selección de áreas de interés en los cultivos; se baraja también la creación de un asistente de instalación para usuarios que pueda aportarle un cariz más simplificado sobretodo a la hora de migrar el sistema de un lugar a otro fácilmente.
8 - Bibliografía Página 30 8. Bibliografía [1] Dragavon, Joseph Michael. «Development of a Cellular Isolation System for RealTime Single Cell Oxygen Consumption Monitoring.» Washington: Universidad de Washington, 2006. [2] Hajimohammadi, Mahdi, Hamid Mofakham , Nasser Safari , y Anahita Mortazavi Manesh . «Highly efficient conversion of aldehydes to carboxylic acid in the presence of platinum porphyrin sensitizers, air and sunlight.» Journal of Porphyrins and Phthalocyanines , nº 16 (2012): 93–100 . [3] Meier, Robert Johannes. «Luminescent Single and Dual Sensors for In Vivo Imaging of pH and pO2.» Regensburg: Facultad de Química y Farmacia, Univ. Regensburg, Mayo de 2011. [4] Chen, Ting. «A Study of Spatial Color Interpolation Algorithms for Single-Detector Digital Cameras.» Stanford: Universidad de Stanford, Invierno de 1999. [5] AForge.NET Framework. AForge.NET Framework. Editado por Andrew Kirillov. 2008. http://www.aforgenet.com/framework/ (último acceso: Diciembre de 2013). [6] Imatest. Raw Files. http://www.imatest.com/docs/raw/ (último acceso: Enero de 2014). [7] Microsoft. Microsoft Developer Network, MSDN. msdn.microsoft.com (último acceso: 2014). [8] Wikipedia. Demosaicing. http://en.wikipedia.org/wiki/Demosaicing (último acceso: Enero de 2014). [9] —. Raw Image Format. http://en.wikipedia.org/wiki/Raw_image (último acceso: 2014 de Enero).
9 - Planificación Página 31 9. Planificación La estructuración del trabajo a realizar durante el intervalo de tiempo fue la que sigue: • Estudio bibliográfico: Documentación y Búsqueda de cámaras. • Estudio de Cámara y LEDs: Diseño de algoritmos de filtrado en MATLAB y comprobación. Caracterización y validación de la cámara y fuente. Definición de la GUI. • Diseño Software Cámara: Diseño de la aplicación y de la GUI. Implementación de los algoritmos de filtrado. • Validación Software y Calibración: Depuración y testeo de la aplicación. Calibración de la cámara con casos controlados. • Experimentos con cultivos celulares: Experimento en condiciones controladas de laboratorio • Escritura de Proyecto: Redacción de la Memoria del Proyecto. Quedando así una distribución de horas como se muestra a continuación: • Documentación: 15 horas. • Diseño y Calibración: 240 horas. • Redacción de la Memoria: 45 horas. Total: 300 horas. ! Febrero Marzo Abril Mayo Junio Tareas S1 S2 S3 S4 S1 S2 S3 S4 S1 S2 S3 S4 S1 S2 S3 S4 S1 S2 S3 S4 Estudio bibliográfico Estudio de cámara y LEDs Diseño Software Cámara Validación Software y Calibración Experimentos con cultivos celulares Escritura de Proyecto TABLA 9.I. Distribución del tiempo de trabajo por semanas.
Anexo B Página VI Esta distribución complica el proceso de filtrado y extracción de parámetros, pues la ubicación de los diferentes píxeles de cada canal depende del número de fila y columna, ralentizando así las operaciones entre imágenes. El formato bitmap, por su parte, se caracteriza porque cada uno de sus píxeles contiene tres valores correspondientes a las componentes RGB diferentes, por lo que cada canal de color tiene la misma resolución que la imagen original completa. Las cámaras de la serie CCX también disponen de la opción de salida en bitmap en un formato estándar de 24bpp, esto es, 8bits por cada subpixel de color, que logran aplicando un filtrado de demosaico sobre la imagen raw original, que realiza la cámara internamente. La lectura de imágenes bitmap del buffer de la cámara se realiza de forma análoga al anterior; cada vez que una nueva imagen está lista, se invoca al FD1 con una dirección de memoria que se corresponde a la del primer byte de color del primer pixel, leyendo por filas sucesivamente. Huelga decir que, aunque se habla típicamente de RGB, la estructura de lectura de bytes de color sigue un esquema inverso, BGR. De entre estos dos formatos se optó por el uso del bitmap debido a su eficiencia de y sencillez de implementación con las librerías ya existentes. En este apartado cabe destacar también la diferencia entre el formato de imagen bitmap y el contenedor de imagen Bitmap que es con el que operan las librerías. Bitmap es un contenedor cuyos píxeles están bloqueados (ubicados en Managed Memory) que almacena los datos de color en BGR por filas. Esto significa que no se puede acceder directamente al Figura B.2. Diagrama de cuatro píxeles RGB Figura B.3. Distribución de los píxeles en el formato Bitmap.
Anexo B Página VII valor numérico de un pixel ni a uno de sus subpíxeles, sino que hay que desbloquear la imagen primero antes de operar con ellos. A la hora de realizar la lectura se comienza desde la primera dirección de memoria en la que está almacenada la primera palabra correspondiente con el primer pixel BGR (3bytes, uno por color en cada caso). Así, al final de cada fila existe un padding o relleno según se aprecia en la fig.B.3. Este relleno no contiene información de imagen, y ha de ser omitido a la hora de manejar las imágenes. Demosaico y Conversión La conversión de la imagen desde el formato raw hasta el formato bitmap recae sobre el algoritmo de demosaico. Los algoritmos de demosaico se utilizan en la mayoría de cámaras modernas para reconstruir una imagen completamente a color a partir de la salida de su sensor con un CFA, de ahí que también se lo llame Interpolación CFA. La meta de los algoritmos de demosaico es lograr una imagen lo más fiel a la realidad sin suponer una carga computacional excesiva, conservando en la medida de lo posible la mejor profundidad de bits y el mejor detalle posible. Muchos son los algoritmos existentes para la construcción de una imagen bitmap. En líneas generales, pueden clasificarse en algoritmos adaptativos y no adaptativos; mientras los algoritmos no adaptativos, como su nombre indica, aplican el mismo patrón de interpolación sobre todo el campo de píxeles, los algoritmos adaptativos detectan características locales de la imagen para realizar predicciones más efectivas. La elección del tipo de algoritmo queda subordinada al tipo de aplicación para el cual se requiere; mientras la interpolación mediante “Vecino más cercano”, no adaptativo, ofrece el mejor rendimiento pero la mayor distorsión, otros la “interpolación mediante número de gradientes variable con umbral” ofrecen una calidad de imagen inmejorable a expensas de ser computacionalmente muy pesados. Figura B.4. Salida del CFA (a). Canal Rojo (b). Canal Verde (c). Canal Azul (d). (a) (b) (c) (d)
Anexo B Página VIII A partir de las hojas de especificaciones de la MIGHTEX CCE-C013-U no se puede averiguar cual es el algoritmo de demosaico utilizado, por lo que no se puede sopesar su idoneidad o mejorarse por software. Si bien, tras comprobar que el uso del formato bitmap no supone una penalización de fuga de los canales de color, se optó por seguir utilizándolo para simplificar la implementación general del filtrado y procesado posteriores.
Anexo C Página IX Anexo C. Hojas de Especificaciones Principales características de la cámara Para la captación de imágenes se ha utilizado una cámara CCE-C013-U, de MIGHTEX. Las cámara CCD USB 2.0 de la familia CCX de MIGHTEX se caracterizan por ser dispositivos de alta sensibilidad y bajo ruido, optimizadas para una amplia variedad de sistemas, que van desde visión por computador, pasando por imagen médica hasta microscopía digital, como es el caso. Dentro de sus características principales cabe destacar el chip CCD 1/3” ICX205AK de Sony, que le permite una resolución máxima real de 1.392 x 1.040 pixeles a 8 bits (color) o 12 bits (blanco y negro), y 15fps con marcos progresivos, pudiendo configurar distintas resoluciones hasta subir a los 49fps con una resolución menor de 348 x 256 pixeles (salto 1:4). A continuación se detallan las características más importantes de la cámara según sus hojas de especificaciones. Figura C.1. CCE-C013-U sin carcasa (izq.) y con carcasa (dcha.).
Anexo C Página X
Anexo C Página XI
Anexo C Página XII
Anexo C Página XIII Especificaciones del Sensor CCD ICX2005AK
Anexo C Página XIV
Anexo C Página XV
Anexo C Página XXII LED Azul en 405nm, 405-02V
Anexo C Página XXIII
Anexo C Página XXIV Filtro Óptico 475nm, 25mm Diámetro (mm): 25 Tolerancia Diámetro (mm): +0,0/-0,2 Apertura (%): >80 Grosor (mm): 3 Tolerancia Grosor (mm): +-0,1 Longitud de Onda Rechazada (nm): 200-465 Longitud de Onda de Paso (nm): 483-1650 Transmisión Media (%): 91 Longitud de Onda de Corte (nm): 475 Tolerancia de corte(%): +-1
Anexo C Página XXV Transistor de propósito general, BC107
Anexo C Página XXVI
Anexo D Página XXVII Anexo D. Software. Librerías AForge.NET Para el filtrado y procesado de imagen se ha utilizado mayormente las librerías de AForge.NET; éste es un framework en C# diseñado para desarrolladores e investigadores que recoge multitud de recursos aplicables en diversos campos como redes neuronales, visión por computador y procesado de imagen, entre otras. A fecha de este proyecto se encuentra en versión 2.2.5, con licencia LGPL v3, a excepción del paquete de reproducción y grabación de flujo de video, FFMPEG, que posee licencia GPL v3. Toda la documentación relativa al uso de las funcionalidades de los paquetes de la librería, así como la descarga de la propia librería y ejemplos puede realizarse desde su sitio web (AForge.NET Framework 2008) Imagen. Métodos originales utilizados Dentro de la librería AForge.NET, el paquete dedicado al filtrado de imagen es el AForge.Imaging.Filters. A continuación se detallan las funciones más relevantes incluidas en por defecto en el paquete utilizadas en el proyecto. -ResizeNearestNeighbor //!Nuevo!filtro! ResizeNearestNeighbor!filtro!=!new!ResizeNearestNeighbor((int)400,!(int)300);! //!Aplica!el!filtro! Bitmap!nuevaImagen!=!filtro.Apply(viejaImagen); Devuelve una nueva imagen resultado de redimensionar otra anterior según las dimensiones introducidas como parámetros, con el mismo formato de tamaño de píxeles que la imagen original. Utiliza un algoritmo de “vecino más cercano”. Solo se utiliza para reducir la imagen para las miniaturas de la GUI, pues se trata de un filtro muy ligero. El filtro acepta imágenes de 24, 32, 48 y 64 bpp. -Grayscale //!Nuevo!filtro! Grayscale!filtro!=!new!Grayscale((double)0.3333,!(double)0.3333,!(double)0.3333);! //!Aplica!el!filtro! Bitmap!nuevaImagen!=!filtro.Apply(viejaImagen); Devuelve una imagen en escala de grises según la ponderación de canales RGB introducida como parámetro. La imagen resultado puede ser de 8bpp (si la origen era de 24 o 32bpp) o de 16bpp (si la origen era de 48 o 64bpp). Este filtro se utiliza a la salida del CocientFilter para para normalizar el formato de pixel de cara al mapeo de color posterior, por lo que la ponderación de canales RGB toma valores iguales para los tres canales.
Anexo D Página XXVIII -Color Remapping //<Nuevo<filtro< ColorRemapping!filtro!=!new!ColorRemapping(byte[256]R,!byte[256]G,!byte[256]B);! //!Aplica!el!filtro! Bitmap!nuevaImagen!=!filtro.Apply(viejaImagen); Devuelve una imagen RGB mapeada a partir una original, según las curvas de color introducidas como parámetros. Para cada pixel de la imagen origen, el filtro devuelve sus valores correspondientes a los especificados en los índices de las curvas de color. El filtro acepta imágenes RGB de 24 y 32bpp e imágenes en escala de grises 8bpp. Para la creación de imágenes en pseudocolor a partir de otras en escala de grises, como es el caso, conviene que las curvas de color tengan una correspondencia unívoca entre un pixel gris y su transformación RGB. Imagen. Metodos diseñados para la aplicación Para poder llevar a cabo las operaciones de procesado de imagen relativas al cálculo de los cocientes entre canales, se diseñaron otra serie de métodos específicos que normalmente no se utilizan en el filtrado de imágenes clásico, a partir de los ya incluidos en las librerías de AForge.NET. -LogDifference //<Nuevo<filtro< Logdifference!filtro!=!new!LogDifference((Bitmap)img2);! //!Aplica!el!filtro! Bitmap!nuevaImagen!=!filtro.Apply((Bitmap)img1); Este filtro se diseñó a partir del filtro Difference incluido en el paquete de Image.Filters. Realiza el logaritmo del cociente entre dos imágenes en escala de grises, devolviendo una nueva imagen en escalada internamente con valores 0~255, tal que el valor 0 se corresponde con un cociente img1/img2 = -∞ y el valor 255 a un conciente img1/img2 = ∞. Dada la naturaleza de los cocientes en experimentos reales, cuyos cocientes G/R se encuentran entre unos valores 0~2, la compresión de la escala en ese entorno no resultaba beneficiosa para la visualización en pseudocolor, por lo que se decidió no utilizar este método en el sistema final. -Cocient //<Nuevo<filtro< Cocient!filtro!=!new!Cocient((Bitmap)img2);! //!Aplica!el!filtro! Bitmap!nuevaImagen!=!filtro.Apply((Bitmap)img1); Este filtro se diseñó a partir del filtro Difference incluido en el paquete de Image.Filters. Realiza el cociente entre dos imágenes en escala de grises, devolviendo una nueva imagen en escalada de grises con valores 0~255. Esta nueva escala se corresponde con los valores de cocientes img1/img2=0~2,55, que es la máxima precisión que soporta una imagen de 8bits, suficiente para el sistema.
Anexo D Página XXIX También tiene en cuenta los casos conflictivos propios de un cociente tales como 0/0 o x/0, tratándolos debidamente. El uso de esta cota en 2,55 para la relación entre G/R viene dada por el comportamiento de la lámina fluorescente obtenido en experimentos anteriores en los que no sobrepasaba valores de ratio de 1,8. Cabe destacar un aspecto de la implementación de todas las funciones arriba citadas directamente involucrado con el rendimiento de los algoritmos. Las imágenes de tipo Bitmap (en contenedor) en C# forman parte de los tipos de datos en Managed Memory, lo que significa que están bloqueados y no se puede acceder directamente a sus valores de pixel mediante una dirección de memoria aleatoria. De la misma manera, el desbloqueo de las mismas implica arrastrar una serie de recursos y copias en memoria que ralentiza de sobremanera cualquier operación entre imágenes. Para mejorarlo, los métodos arriba descritos utiliza el tipo UnmanagedImage alojados en la Unmanaged Memory (Memoria sin administrar) del sistema, similar al Bitmap, pero mucho más eficiente. Este formato es propio de la librería AForge.NET y está optimizado para el procesado de imagen intensivo. FFmpeg FFmpeg es una librería adoptada por Aforge.NET que substituye la interfaz de Windows y que permite mayor robustez y flexibilidad. Esta librería ha de ser compilada en 3.5, pero a pesar de requerir versiones de .NET Framework inferiores a 4.0 gracias a la retrocompatibilidad de las librerías de Windows esto no supone mayor problema. -VideoFileWriter //!Crea!un!nuevo!flujo!de!video! VideoFileWriter!writer!=!new<VideoFileWriter();! writer.Open("test.avi",!width,!height,!25,!VideoCodec.MPEG4);! //!Nuevo!frame!para!el!flujo!de!video! writer.WriteVideoFrame((Bitmap)image);! //!Cierra!el!flujo!de!video! writer.Close(); Crea un nuevo flujo de video sobre el archivo especificado .avi, fijando su altura, anchura, fps y códec a utilizar. Sobre ese flujo abierto, se van añadiendo los frames consecutivamente. Finalmente, se cierra el flujo, habiendo creado así un nuevo archivo. -VideoFileWriter //!Abre!un!flujo!de!video!sobre!un!archivo!existente! VideoFileReader!writer!=!new<VideoFileReader();! writer.Open("test.avi");! //!Obtiene!un!frame!en!formato!Bitmap!y!dierra!el!flujo!de!video! Bitmap!videoFrame!=!reader.ReadVideoFrame();! reader.Close() Abre un archivo de video y extrae los frames, guardándolos como datos Bitmap para procesarlos individualmente. Posteriormente, cierra el flujo de video. Los parámetros del flujo (atura, anchura, fps, códec de compresión, etc) se encuentran como atributos de reader.
Anexo D Página XXX
Anexo D Página XXXI Anexo E. Instalación de la Aplicación. Con el fin de documentar el proyecto de la forma más completa posible, se ha creído conveniente describir el proceso de instalación de la aplicación desde cero de la misma manera que se realizaría en otro equipo de laboratorio cualquiera. 1. Instalar o actualizar Microsoft .NET Framework a la versión 4.5; esto garantiza la compatibilidad con el sistema de gráficas en tiempo real de la aplicación. 2. Mover las librerías de FFMPEG a los directorios de ejecución. Las librerías de captación de flujo de video han de encontrarse en el directorio de la propia aplicación. Normalmente estas librerías suelen copiarse automáticamente, pero puede ser necesario copiarlas a mano: éstas pueden encontrarse en la carpeta Externals/ffmpeg/bin, que son las siguientes: avcodec-53.dll, avdevice-53.dll, avfilter-2.dll, avformat-53.dll, avutil51.dll, postproc.dll, swresample0.dll y rwscale.dll. 3. Finalmente, basta con abrir el archivo ejecutable USBCamera.exe, que lanzará la ventana principal de la aplicación.