Tecnología Perú , Perú, Lunes, 10 de noviembre de 2014 a las 10:05

Las matemáticas detrás de las imágenes

Cuando haces clic en tu smartphone o cámara digital, una serie de operaciones matemáticas se ponen en marcha para transformar ceros y unos en la imagen que visualizas en la pantalla

PUCE/DICYT Si eres fanático de series como CSI o NCIS, probablemente te has topado con la siguiente escena: en un laboratorio de criminalística altamente equipado, dos investigadores revisan con atención el video de seguridad que registra los últimos momentos de la vida de la víctima. En eso, algo llama su atención, digitan unas cuantas teclas y en instantes la imagen borrosa se vuelve HD y de la pupila del occiso -que miró al atacante antes de morir- obtienen el rostro del asesino.


“Lo que ves en estas series o es un proceso imposible de hacer hoy o no se puede realizar con la calidad que se muestra. Pero eventualmente seremos capaces de hacerlo”, comenta el Dr. Brendt Wohlberg, ingeniero electrónico por la Universidad de Ciudad del Cabo (Sudáfrica) e investigador asociado de Los Alamos National Laboratory (LANL), institución del gobierno norteamericano encargada de proveer soluciones científicas a los problemas de seguridad nacional.


Procesamiento de imágenes


¿Cómo funciona una cámara digital? En líneas generales, ocurre lo siguiente: Cuando presionas el disparador, abres el obturador de tu cámara digital y la luz que ingresa es capturada por un sensor electrónico fotosensible que la transforma en señal eléctrica. Un convertidor análogo-digital mide la intensidad de luz que llega a cada pixel y crea una señal digital que lo reemplaza por un valor binario. Un procesador interpreta esta información para crear una imagen a color que finalmente es almacenada en la tarjeta de memoria.


El procesamiento de imágenes contempla una amplia gama de aplicaciones, desde las fotos y videos tomados con cámaras caseras hasta las imágenes satelitales tomadas a kilómetros de la Tierra. En medicina, las pruebas de imagen diagnóstica son una forma no invasiva e indolora de detectar enfermedades. Una radiografía, una ecografía, una resonancia magnética o una tomografía computarizada realizada a tiempo pueden marcar la diferencia entre la vida y la muerte.


Wohlberg precisa que la manera cómo se recoge y procesa la data en una cámara digital difiere de la de una resonancia magnética: “Hay un espectro grande entre tomar algo que se ve como una imagen y hacer un procesamiento pequeño y tomar algo que no se parece a una imagen y convertirla en una. La data que recopilas debe ser procesada de manera significativa para que sea interpretable”.


¿Qué es la “codificación sparse”?


El especialista comenta que cuando los ingenieros desean trabajar con data, construyen un modelo matemático que debe ser lo suficientemente complejo para describir de manera precisa sus propiedades y a la vez, lo suficientemente simple para que pueda ser útil para sus fines. “El sparse coding es una forma de representación matemática lineal que describe las propiedades de la data usando solo unos cuantos elementos de una gran cantidad de material que ayudó a generarla. Así, se obtiene una representación simple y práctica”.


Paul Rodríguez, docente de la Sección de Electricidad y Electrónica del Departamento de Ingeniería de la PUCP, nos da un ejemplo: “Es como si te pidieran describir una escena con la menor cantidad de palabras posible. Si quisiera describir a alguien que se queda todo el día sentado viendo televisión y comiendo chatarra, en español necesito elaborar una oración muy larga. En cambio, en inglés solo tengo que decir “couch potato” y esas dos palabras bastan para describirlo”.


Este método de codificación es empleado exitosamente en softwares que permiten el realce de imágenes digitales, aumentan su resolución, eliminan el ruido (denoising), corrigen distorsiones, restauran regiones dañadas o perdidas (inpainting), etc. Para ello, el código “rompe” la imagen en un grupo de pequeños bloques independientes.


No obstante, el sparse coding no es perfecto porque, en ocasiones, al separar estos bloques se ignora información que resulta importante a una escala mayor. Por ello, recientemente ha aparecido el convolutional sparse coding, algoritmo de reconocimiento de patrones que constituye una mejora computacional con respecto al anterior código porque representa a la imagen como un todo de forma eficiente, sin necesidad de partirla.


De las cámaras de 1 MP a los robots con inteligencia artificial


“Cuando comencé a trabajar en este campo, hace 15 o 20 años, todo era muy primitivo. Trabajábamos con imágenes muy pequeñas, las computadoras tenían 20 MB de disco duro y las cámaras más avanzadas empleaban un disquete y tenían un megapíxel de resolución. Las cosas han ido cambiando increíblemente”, rememora el matemático.


Para el Dr. Wohlberg, es solo cuestión de tiempo para que el análisis de data de imágenes y videos nos lleve al ensamblaje de máquinas que puedan “pensar” y entender lo que “ven”. De hecho, el procesamiento de imágenes y la visión computacional se consideran subcampos de la inteligencia artificial, área de investigación muy activa en recintos como Google, Facebook o la propia LANL.


“Para una máquina todavía resulta difícil reconocer y “etiquetar” los elementos de una fotografía o un video. Todavía hay un largo camino por recorrer para que tengan un desempeño a nivel de los seres humanos, pero estamos haciendo progresos y en cinco o diez años tendremos numerosas soluciones para este problema”.