4. Concepto de VC Visión humana vs Visión Computacional. Limitaciones . El problema de la Oclusión:
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Notas del editor
La VC es un subcampo de la Inteligencia Artificial. Tienen como fin último extraer propiedades del mundo a partir de un conjunto de imágenes, tratando de aproximar el comportamiento del ojo humano (con las limitaciones intrínsecas al Hardware de hoy en día -cámaras, procesadores, memorias, …). El proceso de visión por parte de un computador se podría dividir en los siguientes campos: Primero, adquisición de las imágenes. Estas pueden ser estáticas (de archivo) o dinámicas (de una webcam, p.ejmp). Tras preprocesar esas imágenes, la parte crítica viene al explorar la imagen para extraer los objetos. Esta fase se denomina Segmentación. En ella, en base a diferentes técnicas, se extraen los objetos que conforman la escena. Estos objetos, se envían a una red de neuronas, que será la encargada de reconocerlos y clasificarlos, para que el programa lo interprete. La fase de interpretación depende del objetivo del programa. (Recopilación de datos, Reconocimiento Facial, etc...)
La VC abre un abanico enorme de posibilidades de computación. No obstante, tiene las limitaciones intrínsecas al Hardware existente. Un ejemplo claro de esta problemática es el de la Oclusión, que se observa en imágenes incompletas. Por ejemplo (caso del perro oculto), cuando observamos un objeto conocido (como un perro, por ejemplo), podemos reconocerlo sin ningún problema, aunque dicho objeto esté parcialmente oculto por otro objeto, ya que nuestro cerebro tiene una gran capacidad de procesamiento y completa, sin problemas, la imagen conocida. Nosotros percibimos una imagen incompleta, pero nuestro cerebro asocia dicha imagen a imágenes completas conocidas, y detecta que la imagen es un perro. Para un computador, este problema presenta una complejidad enorme, ya que no disponemos de la capacidad de procesamiento de un cerebro humano y las técnicas de que disponemos no son capaces....
La fase clave de la Visión Computacional es la Segmentación de objetos en la escena, es decir, el programa explora la imagen y, en función de la técnica de Segmentación empleada, extrae las imágenes que las contiene para, bien registrarlas con fines estadísticos, bien enviarlas a algún otro subsistema encargado de procesarlas. Existen difrentes técnicas de Segmentación: La Segmentación mediante umbralización tiene como objetivo diferenciar objetos de distintos niveles de gris. Esta técnica segmenta por color. Existen múltiples técnicas dentro de este subgrupo La idea es que dada una imagen Im(x,y), con sus coordenadas (x,y) y un umbral Th para diferenciar el Objeto 0 y el Objeto 1: -Si Im(x,y) < Th => Objeto 0 -Si Im(x,y) >= Th => Objeto 1 La segmentación basada en frontera tiene como objetivo resaltar las fronteras del objeto a segmentar. Como punto positivo destaca la simplicidad del problema una vez encontradas las fronteras, pero su dificultad radica en encontrar las mismas, ya que requiere de operaciones más sofisticadas para construior las fronteras a partid de los bordes. Fases: Detección de bordes (basados en gradiente, en molde, o por ajuste de bordes) Detección de frontera: Unión de bordes Detección de frontera: Alto nivel. El último subgrupo de técnicas de segmentación es basado en regiones. La idea básica es la de unir regiones adyacentes que cumplan criterios: Nivel de Intensidad Varianza de los niveles de la región Textura de la región El algoritmo es iterativo, y finaliza cuando dejan de haber regiones adtyacentes que cumplan estos criterios. Tiene mucha utilidad, sobre todo, a la hora de eliminar objetos irrelevantes, fruto del ruido de la imagen. Estos objetos, al tener niveles de intensidad y de color similares a objetos más grandes adyacentes, se pueden adherir a ellos, eliminando pequeños objetos que aumentarían el coste computacional.
A pesar de las muchas técnicas de segmentación que existen hoy en día, no se ha encontrado con ninguna solución “universal”. Casi todas las técnicas explicadas (y las no explicadas, también) han sido desarrolladas y son aplicadas en entornos controlados de iluminación, sonido, número y estructura de objetos, etc., creando muchos problemas cuando se tienen que analizar objetos fuera de ese entorno. Por ejemplo, muchas técnicas basadas en umbrales tienen problemas con los cambios de iluminación incontrolables en el exterior, y los programas fallan a consecuencia de ellos. El ruido en las imágenes también presenta muchos problemas, ya que esto se traduce en pequeños objetos en movimiento, que aumentan la necesidad de cálculo del programa. A modo de conclusión, decir que para cada aplicación específica, es necesario determinar qué método de segmentación es más adecuado a la problemática del problema, ya que no todos valen para todo.