Post on 14-Jun-2015
description
.NET en la MedicinaDesarrollamos nuestra primera solución aplicada al diagnóstico bioquímico por imagen.
Armando Andrés MeabeMSP – MAPEstudiante UNLSanta Fe capital.
Inicio como proyecto de estudiantes de informática, en tiempos libres año 2007: Software capaz de reconocer cartas de póker (y jugar solo).
Perfeccionamiento de los métodos del ‘autoPoker’, modelado matemático del algoritmo y ‘evolución’ hacia un sistema de reconocimiento facial (CodeCamp 2008).
Ante la determinación de enfocarse a la medicina; se implementaron conceptos equivalentes a los usados en el reconocimiento facial pero aplicados a escala microscópica.
Orígenes de nuestros proyectos
2007 (autoPoker) 2008 (FaceRec) 2009 (Medicina)Primeros desarrollos en proceso Proceso de imágenes según modelado Reimplementación de técnicas dedigital de imágenes matemático ‘PCA’ ‘faceRec’ aplicadas a tejido humano.
Lógica rudimentaria (2007) Las imágenes eran
bitmaps, siempre iguales por lo que la complejidad del problema era baja. Se procedió a comparar pixel por pixel.
El rendimiento era muy pobre en tiempo real, generalmente colgando la aplicación por el ‘solapamiento’ de pasos y por el exceso de recursividades – ‘stack overflow’.
Se procedió a mejorar el algoritmo.
Mejor algoritmo -> Mejores aplicaciones
Nace ‘faceRec.NET’ (Jidis 08, Ccamp 08)
Evolucionamos la lógica ‘por nuestra cuenta’, descartamos regiones muy grandes o muy pequeñas y ‘deducimos’ cuales son los rostros de una imagen.
Llegamos a un ‘techo’ en cuanto a la efectividad y encontramos la necesidad de aplicar algoritmos mas complejos.
¿Que hacemos con la imagen?Entra el primer algoritmo matemático complejo: PCA (Principal Components Analysis)
Se considera la imagen como un vector. Un vector cualquiera en un espacio vectorial de n dimensiones X1,X2…Xn se puede representar en términos de cuanto tiene de cada vector-dimensión X1, X2 … Xn.
“¿Que “cantidad” tiene el nuevo rostro, de cada rostro existente?”
Ej, vector C1 = (2, 3, 5) -> C1 = (2x1, 3x2, 5x3)
Ejemplo para dos rostros humanos que difieren en F’ Dispersión de
puntos, cada punto representa una foto de un rostro humano. Las agrupaciones (nubes) de puntos sugieren que son fotos de la misma persona. Cuanto mas cerca están dos puntos, mas similares son dos rostros, hasta que se puede sugerir que son la misma persona.
Apliquemos esta teoría a los glóbulos rojos y blancos.
0 2 4 6 8 10 12 14 16 180
20
40
60
80
100
120
yLinear (y)
Axis Title
Axis Title
F’
Hecho el algoritmo de manera genérica, apuntamos a nuevos problemas.Ante la vocación de desarrollar
soluciones orientadas a la medicina, se decide empezar por un problema en el cual tenemos experiencia: El conteo de elementos en sangre mediante análisis de imágenes.
Principal ventaja; La diferencia de costos con otros métodos de automatización de conteo de elementos en el tejido humano. (~30.000AR$)Estos equipos tienen dimensiones muy grandes y solo
cumplen una única función.
Con el sistema propuesto, por software, no se necesita implementar ningún tipo de hardware siempre que se cuente con una PC/Notebook adecuada y un microscopio con conector para salida de tv/proyector/video o una buena cámara digital (menor precisión).Costo total; entre 0$ (hardware existente) y no mas de
5.000$ ante la necesidad de implementar hardware específico.
Aplicaciones de nuestro proyectoEscenario ideal; Entidad médica de capacidad adquisitiva reducida (Hospitales regionales o pequeños, consultorios privados…)
Definición y utilidadDefinición: El hemograma completo es la prueba de
laboratorio en la se van a cuantificar y evaluar diferentes grupos celulares, las glóbulos rojos (eritrocitos), los glóbulos blancos (leucocitos), las placas, el contenido de hemoglobina, y otros parámetros relacionados con su cantidad, forma y contenido.
Utilidad Clínica: Ayuda a diagnosticar problemas específicos de la sangre como la anemia y otros trastornos como determinados cánceres como las leucemias; permite a monitorizar la pérdida de sangre y la respuesta de un paciente a la terapia contra el cáncer, como la quimioterapia y la radioterapia; permite sospechar cuadros agudos infecciosos y/o inflamatorios, y así, su utilidad clínica resulta invaluable.
Hardware en el mercadoWiener lab. Counter 19 y Wiener lab.
Counter 19 CP
www.wiener-lab.com.ar – Sitio web del fabricante
Principio de medición: impedancia eléctrica más colorimetría.
Ventajas Muy fácil de
usar. Muy preciso
en resultados.
Desventajas Insumos
constantes, provistos por el fabricante.
Precio astronómico.
Es gigante.
En la ‘vieja escuela’ se cuenta con un método en teoría muy efectivo, que sin embargo puesto en práctica resulta en una alta pérdida de precisión y de tiempo.El bioquímico debería hacer uso de la ‘cámara
de Neubauer’ y un microscopio eficaz, y realizar el conteo de glóbulos totalmente ‘a ojo’. Como ventaja, se resalta el hecho de que un
profesional entrenado puede detectar casos especiales de inmediato. Este método se considera obsoleto.
La alternativa económicaDesventajas del método ‘a la vieja usanza’.
La cámara de Neubauer (esquema) El profesional tiene
que hacer un “barrido” a ojo, de cada uno de los cuadrados mostrados en el esquema, contando al mismo tiempo cada tipo de glóbulos.
Luego debe mover la muestra y reiterar los pasos 4 veces mas, 5 en total.
El margen de error por contar elementos diferentes y aleatoriamente dispersos es muy elevado.
Ventaja: Un profesional detecta casos especiales de inmediato, pero este método se considera obsoleto.
Que es lo que buscamos?
Formaciones subdesarrolladas. (Anemia, neonatos, etc.)
Casos de glóbulos blancos.
Si bien hay varias formaciones de glóbulos blancos, nos interesa diferenciar entre monocitos y ‘el resto’.
Estandarización y preproceso de una imagen.
Imagen original
Imagen redimensionada y ajustada en brillo y contraste.
Se definen los estándares que se consideren mas aptos para facilitar la lógica del algoritmo y lograr robustez en el resultado. Se considera la plataforma en la que se usará el sistema, el hardware de captura, etc. Se eliminan los bordes de imágenes apaisadas.
Se calcula la media con la siguiente fórmula
Se corrigen los niveles de brillo y contraste de acuerdo a la media [R,G,B] obtenida.
Definición de colores y tonos. Las imágenes adquiridas no serán como el software las espera. Hay que alterarlas previamente. Estandarización de colores y utilización de algoritmo floodfill.
int max = 0; int min = 0; int r = 0; int b = 0; int g = 0; for (int x = 0; x < imgOriginal.Width; x++) { for (int y = 0; y < imgOriginal.Height; y++) { r = imgOriginal.GetPixel(x, y).R; g = imgOriginal.GetPixel(x, y).G; b = imgOriginal.GetPixel(x, y).B;
if (r > max) max = r; if (g > max) max = g; if (b > max) max = b; if (r < min) min = r; if (g < min) min = g; if (b < min) min = b;
if !((r > 95 && g > 40 && b > 20) && (Math.Abs(r - g) > 15) && ((r > g) && (r > b)) && ((max - min) > 15) && (r != 0 && g != 0 && b != 0)) { imgOriginal.SetPixel(x, y, Color.Black); } } } imgNormalizada = new Bitmap(imgOriginal);
Un pequeño paréntesis…¿Que es el método floodfill?Comparable con la típica herramienta “varita
mágica”, nos permite pasar de la imagen A a la imagen B y así discriminar los glóbulos del medio en el que se encuentran.
A B
Los GR Los GB Los glóbulos rojos
son particularmente fáciles de encontrar analíticamente:Son todos igualesForma circularColor constanteTamaño constante
¡No podría ser mejor!
Los glóbulos blancos vienen a ser los problemáticos:Núcleos de forma
aleatoriaTamaño variableLos núcleos se
superponen ‘pareciendo’ ser uno solo.
Podría ser peor?Sí, la única ventaja es
que el color se mantiene.
¿Qué hacemos? Volvemos a las matemáticas (PCA)
Aprovechando la única puerta abierta que nos dejan los glóbulos blancos, los identificamos por su color.
El verdadero problema es diferenciar entre cada tipo de glóbulo blanco analíticamente, no existe ejemplo a seguir porque un profesional los reconoce a ojo y el artefacto mencionado los separa por su impedancia eléctrica.
Volvamos al espacio
La lógica nos dice que los GB monocitos (1) tienen una dispersión mínima por tener un solo núcleo. Esto sugiere que su representación en el espacio n-dimensional estará relativamente condensada. Es decir, definirán una nube definida.
Por el contrario, los GB poliformes (2) se dispararán en múltiples direcciónes (tantas como dimensiones haya).
1: 2:
Simplificando en 2DEvaluando
analíticamente resulta obvio que las representaciones mas alejadas de su ‘núcleo’ son los GB poliformes y las cercanas son monocitos con un único núcleo.
Núcleo analítico: Y=0
1 4 7 10 13 16 19 22 25 28 31 34 370
200
400
600
800
1000
1200
PoliformesMonocitos
¿Es este método perfecto?NO, como la mayoría de los métodos estadísticos, hace
evidente una tendencia con X% grado de precisión, pero tiene un punto débil, y es el área en el cual los monocitos ‘se parecen’ suficiente a los GB poliformes, y sus representaciones se mezclan en el espacio imaginario.
De todos modos los resultados son alentadores.
Zona de error (falso conteo)
¿Conclusiones?Es natural que no seamos los indicados para sacar
conclusiones médicas, lo mismo pasa en el caso del artefacto mostrado anteriormente para el conteo de glóbulos.
Nos limitamos a exponer las cantidades encontradas de cada tipo de elemento y dependiendo de cada caso y del paciente, el profesional médico sabrá que concluir.
En otras palabras, nuestra solución es acotada, empieza y termina cumpliendo su función: Contar.
Es decir, es una herramienta, y no un médico virtual. Como herramienta, sus funciones solo están limitadas por lo pertinente al hemograma completo y por la capacidad del profesional de interpretar los resultados.
Haciendo honor a la verdad, en este último proyecto no hemos inventado nada. Se trata de un uso ‘visionario’ para algoritmos ya desarrollados (por nosotros), y utilizados. Durante el desarrollo del reconocimiento facial, nos aseguramos de que el
algoritmo sea genérico. De ahí el hecho de que sirve para identificar rostros humanos, casas, automóviles… y hasta glóbulos rojos!
VentajasEscalabilidad y objetivos genéricos; Incluso en el momento de desarrollo
(facerec), no sabíamos que otros usos le daríamos al algoritmo. La idea es que sirva tanto para nosotros como para el potencial cliente.
Para el 2010 proyectamos implementar exactamente lo mismo (Si, ¡De nuevo!) para el diagnóstico temprano de aneurismas en la retina del ojo.
De este modo, el tiempo no se utiliza desarrollando proyectos diferentes sino perfeccionando lo hecho.
¿Innovación?Puede que sea un proyecto innovador, pero, ¿En que sentido?
Otros usos para los algoritmos desarrolladosLos alcances del algoritmo genérico.
Otros usos para los algoritmos desarrolladosLos alcances del algoritmo genérico.
Agenda: CodeCamp 20102da. incursión en la medicina, detección de aneurismas en la retina.Identificación de individuos por escaneo de retina.
Identificación de aneurismas en la retina del ojo humano.Otro proceso que hoy en día se realiza ‘a
ojo’ y está librado a la imprecisión del error humano.
Identificación de individuos por escaneo de retina, otra aplicación obvia para nuestro algoritmo.
¿Preguntas?