26
Capítulo 3
3. Marco Teórico.
La visión artificial o visión por computador se define como un área multidisciplinar que
pretende, en cierta medida, reproducir artificialmente el sentido de la vista mediante el
procesamiento e interpretación de imágenes, captadas con distintos tipos de sensores
(fundamentalmente, cámaras), y utilizando para ello una computadora [8]. El desarrollo de
sistemas de visión artificial requiere una combinación de etapas de más bajo nivel para
mejorar la calidad de las imágenes capturadas junto con otras etapas de más alto nivel para
reconocer elementos presentes en una escena. Las aplicaciones de visión artificial son, en
general, muy dependientes del problema concreto a resolver. A modo de ejemplo, pueden
destacarse las relacionadas con la medicina, la inspección automática, la geología, el análisis
de documentos, etcétera.
En la visión artificial, la escena tridimensional es vista por una, dos o más cámaras para
producir imágenes. Las imágenes adquiridas pueden ser segmentadas para obtener de ellas
características de interés tales como bordes o regiones. Posteriormente, de las características se
obtienen las propiedades subyacentes mediante su correspondiente proceso, de cual se
consigue la estructura requerida en la escena tridimensional para la aplicación de interés. Se
distinguen tres etapas: procesamiento, segmentación y aplicación.
27
3.1 Procesamiento de imágenes.
El procesamiento implica la manipulación de las imágenes vistas como señales digitales,
para extraer la información más elemental subyacente [8].
3.1.1 Escala de grises
El nivel de gris es la amplitud de la función bidimensional de cualquier punto dentro de
una imagen. Normalmente se consideran valores discretos en lo que concierne a los números
usados en las muestras para generar una imagen digital, pero esto no es así en los números en
escala de grises. Debido a consideraciones de hardware, el número de nivel de gris es
usualmente un entero de ocho bits, pero en algunas aplicaciones se usan números de 16 bits
cuando es importante especificar el rango entre los niveles [12].
La escala de grises puede ser remplazada por una escala con color, usando cámaras con
colores RGB (rojo, verde y azul) y tres digitalizadores para los tres colores principales, debido
a que el ojo humano percibe más fácilmente lo que sucede en una escena si ésta contiene
color. El color es útil para destacar lo que está tenue o escondido dentro de la imagen en tono
de grises. Sin embargo, en muchas aplicaciones tal como la robótica, el gasto adicional no
suele ser justificado. Es más grande la cantidad de procesamiento adicional que es requerido
para interpretar imágenes enteras a color. Con una imagen en escala de grises los bits que
representan los niveles de grises son del mismo tipo y toman la forma del número que
representa la intensidad del pixel. En una computadora digital este número puede ser
procesado como una entidad simple, a diferencia del código RGB que debe ser procesado
como una entidad triple [13].
En [8] se estudia una técnica llamada pseudocolor para asignar el valor de nivel de gris a
una imagen monocromática. Se ve la imagen como una función de intensidad 2-D, el método
consiste en colocar planos paralelos al plano de coordenadas de la imagen; cada plano realiza
un corte de la función de intensidad. La figura 3.1 muestra el ejemplo de uso de un plano en
para separar una función en dos niveles. Si se asigna un color a cada lado del
28
plano mostrado en la figura 3.1 cualquier pixel cuyo nivel de intensidad este por encima del
plano tendrá un color asignado y por debajo otro color.
Figura 3.1 Interpretación geométrica de la técnica de pseudocolor.
La técnica puede ser generalizada de la siguiente manera. Suponiendo M planos situados en
los niveles donde representa negro representa blanco
. Considerando que 0<M<L, M planos particionan la escala de grises en M+1
regiones y la asignación de color se hace de acuerdo a la relación:
(3.1)
Donde es el color asociado con la k-ésima región entre los niveles
3.1.2 Filtrado
Cuando una imagen es adquirida por una cámara u otro sistema, el sistema de visión delibera
que es incapaz de usar la imagen directamente. La imagen puede ser corrompida por
variaciones aleatorias en intensidad, variaciones en iluminación, o contrastes de baja calidad
que deberían ser corregidos por procesamientos de visión [14].
Uno de los más simples filtros lineales es el operador del promedio local, se conoce como
suavizado en [8] y mean filter en [14], donde el valor de cada pixel es reemplazado por el
promedio de todos los valores con los vecinos locales. Dada una imagen g(i, j) se obtiene una
imagen suavizada f(i, j) cuya intensidad para cada punto (i, j) resulta ser el promedio de los
29
valores de intensidad de los pixeles de g incluidos en el entorno de vecindad predefinido de
(i,j). Es decir, la operación puede sintetizarse en la siguiente expresión:
(3.2)
Para todos los pixeles (i, j) de g(i, j). S es el conjunto de coordenadas de los puntos situados
en el entorno de vecindad de (i, j) incluido el propio (i, j) y P es el número total de puntos del
entorno de vecindad.
3.1.3 Transformaciones básicas.
La transformación de una imagen es el proceso de modificar el contenido de una imagen
original para obtener una nueva. El objetivo de cualquier transformación estriba en la
necesidad de preparar la imagen con el fin de realizar un posterior análisis de cara a su
interpretación. La interpretación entra dentro de un proceso de percepción de nivel superior
que debe estar implícito en toda aplicación de visión artificial [8].
Existen operaciones que transforman el contenido de la imagen basándose en los niveles
de intensidad directamente y otras en que la transformación es consecuencia de una operación
geométrica. Entre las primeras cabe a su vez una subdivisión, distinguiéndose entre
transformaciones basadas en la aplicación de una función sobre el valor del nivel de gris de los
pixeles y en las que el valor de la intensidad de los pixeles se modifica en función de los
valores de las intensidades de los pixeles vecinos.
El procesamiento de datos en el sistema de visión puede enfocarse desde dos
perspectivas:
a) Alteración pixel a pixel de los datos en una escala global (individuales).
b) Operaciones basadas en múltiples puntos (vecindad).
30
La generación de un nuevo pixel en una nueva imagen será una función del valor de cada
pixel en su localización individual o de los valores de los pixeles en la vecindad de un pixel
dado, como se indica en la figura 3.2.
Figura 3.2 Funciones de punto y Vecindad.
Las operaciones individuales implican la generación de una nueva imagen modificando el
valor del pixel en una simple localización basándose en una regla global aplicada a cada
localización de la imagen original. El proceso consiste en obtener el valor del pixel de una
localización dada en la imagen, modificándolo por una operación lineal o no lineal y
colocando el valor del nuevo pixel en la correspondiente localización de la nueva imagen. El
proceso se repite para todas y cada una de las localizaciones de los pixeles en la imagen
original [8].
Figura 3.3 Operación Individual.
Como se aprecia en la figura 3.3, el operador individual es una transformación uno a uno.
El operador f se aplica a cada pixel en la imagen o sección de la imagen y la salida depende
únicamente de la magnitud del correspondiente pixel de entrada; la salida es
31
independientemente de los pixeles adyacentes. La función transforma el valor del nivel de gris
de cada pixel en la imagen y el nuevo valor se obtiene a través de la ecuación.
(3.3)
3.1.4 Umbralización
Esta clase de transformación crea una imagen de salida binaria a partir de una imagen de
grises, donde el nivel de transición está dado por el parámetro de entrada . Uno de los más
importantes problemas en sistemas de visión es identificar las sub-imágenes que representan a
objetos [8]. Esta operación, la cual es muy natural y muy fácil para las personas, es
sorprendentemente difícil para las computadoras [14].
El histograma en nivel de gris de una imagen f(x, y), se compone de objetos brillosos
dentro un fondo oscuro, por lo que los pixeles del objeto y del fondo se agrupan en dos medios
dominantes [12]. Para extraer el objeto del fondo se necesita la selección un umbral T que
separe estos medios.
La imagen binaria se obtiene al usar una segmentación apropiada de una imagen en escala
de grises [14]. Si los valores de intensidad de un objeto son en un intervalo y los valores de
intensidad de los pixeles del fondo están afuera del ese intervalo, una imagen binaria puede ser
obtenida usando una operación de umbralización que convierta el valor en los valores que se
encuentren por encima del umbral, y los que se encuentren por debajo se convertirán en 0. La
función de transformación es la siguiente:
(3.4)
32
3.2 Segmentación
La segmentación es el proceso de subdividir una imagen en regiones u objetos, es
decir, extraer información para su posterior uso [12]. En [8] se afirma que está basada en dos
principios fundamentales: discontinuidad (bordes) y similitud (regiones); en [13] se considera
que segmentar un objeto de su fondo es una de las primeras tareas que se asumen en
aplicaciones de visión artificial.
3.2.1 Borde
Un borde es el cambio local significativo en la intensidad de la imagen, usualmente
asociado con una discontinuidad ya sea en la intensidad de la imagen o en la primera derivada
de la misma [14].
Es una parte fundamental de la mayoría de sistemas de visión puesto que el éxito de los
niveles siguientes de procesamiento depende fuertemente de la fiabilidad de las características,
en este caso bordes [8]. La filosofía básica de muchos algoritmos de detección de bordes es el
cómputo de operadores de derivadas locales (primera o segunda).
3.2.1.1 Concepto de derivada en la extracción de bordes.
En la figura 3.4 (obtenida de [8]) se puede observar que los bordes (transición de oscuro a
claro o viceversa) se modelan como una rampa en lugar de hacerlo como un cambio brusco de
intensidad, debido a que en la imagen original suelen esta desdibujados como resultado del
muestreo.
En la primera derivada es cero en todas las regiones de intensidad constante y tiene un
valor constante en toda la transición de intensidad. La segunda derivada, en cambio, es cero en
todos los puntos, excepto en el comienzo y en el final de una transición de intensidad. Por
tanto, un cambio de intensidad se manifiesta como un cambio brusco en la primera derivada y
33
presenta un paso por cero, es decir se produce un cambio de signo en su valor, en la segunda
derivada. Este cambio de signo se denomina en la bibliografía en lengua inglesa como “zero-
crossing”.
Figura 3.4 Concepto de derivada en extracción de bordes.
El operador gradiente de forma general es el más básico de los que están basados en la
primera derivada; una de sus principales aplicaciones se debe a Canny, quien utiliza el
concepto de gradiente en un algoritmo de interés, ya que no solo extrae los bordes sino que
propone un método para cerrar contornos y derivar a partir de ahí la presencia de estructuras
tales como objetos [15].
3.2.1.2 Algoritmo de Canny
El algoritmo de Canny se fundamenta en la teoría de operadores primera derivada y
resulta particularmente interesante porque extrae bordes y cierra los contornos evitando
posibles rupturas de los mismos durante su extracción, se desglosa en tres módulos:
• Obtención del gradiente (magnitud y ángulo en cada pixel).
34
• Adelgazamiento del ancho de los bordes, obtenidos con el gradiente, hasta lograr
bordes de un pixel de ancho, se conoce como “supresión no máxima”.
• Histéresis de umbral al resultado de la supresión no máxima.
1.- Obtención del Gradiente.
En [14] lo definen como la medida de cambio en una función y en [8] como un vector
bidimensional perpendicular al borde.
La entrada es una imagen I corrompida por ruido. Sea H un núcleo Gaussiano discreto
con media cero y desviación estándar σ (3.5), se aplica el siguiente procedimiento:
a) Suavizar la imagen I con dicho núcleo para obtener una imagen de salida J (3.6),
realizando una convolucion de las dos funciones
(3.5)
(3.6)
b) Para cada pixel (i, j) en J obtener la magnitud y modulo del gradiente.
El gradiente de la imagen J(i, j) en un punto (i, j) se define como un vector bidimensional
dado por la ecuación (3.7), siendo un vector perpendicular al borde.
(3.7)
Donde el vector G apunta en la dirección de variación máxima de J en el punto (i, j) por
unidad de distancia con la magnitud dada por la ecuación (3.8) y dirección en (3.9).
35
(3.8)
(3.9)
Solo los pixeles de borde cuyo gradiente excedan el valor T se consideran importantes. Así la
ecuación siguiente se puede ver como un procedimiento que extrae solo aquellos pixeles caracterizados
por transiciones de intensidad significativas (dependiendo de T).
(3.10)
2.- Supresión no Máxima.
Con y como entradas y una nueva imagen como salida, considerar las cuatros
direcciones identificadas por las orientaciones de , 45 con
respecto al eje horizontal. Para cada pixel (i, j):
a) Encontrar la dirección que mejor se aproxima a la dirección (la
perpendicular al borde).
b) Si (i, j) es más pequeño que al menos uno de sus dos vecinos en la dirección
al pixel (i, j) de se le asigna el valor 0, (supresión); de otro modo
La salida es una imagen con los bordes adelgazados (esto es después
de la supresión no máxima de puntos de borde).
3.- Histéresis de umbral a la supresión no máxima.
La salida suele contener máximos locales creados por el ruido, Se podría
intentar eliminar los pixeles por debajo de un determinado umbral, pero esto presenta dos
problemas:
36
a) Si se elige un umbral bajo en el intento de capturar bordes verdaderos pero con un
valor pequeño en la magnitud del gradiente, algunos puntos de ruido serán también
aceptados como válidos (falsos bordes).
b) Los valores de bordes verdaderos máximos pueden fluctuar por encima y por debajo
del umbral, lo que produce un fragmentado del borde.
Una solución puede ser la histéresis de umbral, cuyo algoritmo es el siguiente:
a) Tomar como entrada , que es la salida del módulo anterior, la orientación de los
puntos de borde de la imagen y dos umbrales y tales que .
b) Para todos los puntos de y explorándolos en un orden fijo:
b.1) Localizar el siguiente punto de borde no explorado previamente, , tal que
.
b.2) Comenzar a partir de , seguir las cadenas de máximos locales conectados
en ambas direcciones perpendiculares a la normal del borde, siempre que .
Marcar todos los puntos explorados y salvar la lista de todos los puntos en el
contorno conectado encontrado.
c) La salida es un conjunto de bordes conectados de contornos de la imagen, así como la
magnitud y orientación, describiendo las propiedades de los puntos de borde.
Este procedimiento de histéresis reduce la probabilidad de falsos contornos, puesto
que estos deben situarse por encima de , así como la probabilidad de rupturas. La
histéresis encuentra cadenas de pixeles conectados por lo que, además, se puede utilizar
para la obtención de curvas.
En la figura 3.5 se muestra un ejemplo obtenido en [16] donde se puede apreciar el
resultado de aplicar el algoritmo de Canny.
37
Figura 3.5 (a) Imagen original; (b) orientación; (c) supresión no máxima; (d) histéresis de umbral.
3.2.2 Regiones
En una imagen los autores en [14] se refieren a región como un grupo de pixeles con
propiedades similares. Son importantes para la interpretación de una imagen porque
corresponden a los objetos en una escena. Una imagen puede contener varios objetos, y a su
vez, cada objeto puede contener varias regiones correspondientes a diferentes partes del
objeto.
3.2.3 Morfología
La morfología matemática recibe su nombre del estudio de la forma. Estas
aproximaciones aprovechan el hecho de que en muchas aplicaciones de visión, es natural y
fácil pensar en términos de la forma cuando diseñamos algoritmos [14]. La morfología
matemática, que comenzó a desarrollar a finales de los 60, permanece hoy en día como una
parte separada del análisis de imágenes. La morfología matemática está basada en la geometría
y la forma. Las operaciones morfológicas simplifican las imágenes y preservan las formas
principales de los objetos [8].
38
Las funciones morfológicas cambian la estructura de los objetos de una imagen
(usualmente binaria). Al calcular nuevos valores de pixeles, los elementos estructurales son
usados, los cuales son el grupo de pixeles que rodean el pixel que es calculado [17]. En la
figura 3.6 se muestra algunos ejemplos de elementos estructurales.
• La forma del elemento estructural puede ser rectangular o hexagonal.
• La conectividad define si tiene cuatro u ocho pixeles alrededor del pixel central,
los cuales se usan para calcular su nuevo valor.
Figura 3.6 Elementos estructurales
En visión artificial es frecuente utilizar la morfología para el tratamiento de regiones en
el sentido de determinar cómo se pueden cambiar, contar o evaluar. Las operaciones
matemáticas tienen su principal aplicación en imágenes binarias y los fundamentos
matemáticos fueron concebidos desde el punto de vista de la posición (que es la base en el
tratamiento binario) antes que desde la intensidad [8].
La dilatación y la erosión son las operaciones fundamentales en el procesamiento
morfológico, de hecho, muchos algoritmos morfológicos están basados en esas dos
operaciones primitivas.
39
3.2.3.1 Dilatación
La transformación morfológica de la dilatación combina dos conjuntos utilizando la
adición de vectores. La dilatación X B es el conjunto de puntos de todas las posibles
adiciones vectoriales de pares de elementos, uno de cada conjunto X y B, y es utilizada para
amplificar la estructura de los objetos [8].
(3.11)
La dilatación con un elemento estructural 3x3 isótropo (ver figura 3.6a), puede
interpretarse como una transformación que cambia todos los pixeles del fondo que son vecinos
del objeto. En la figura 3.7 muestra una imagen original binaria mientras que en (b) se muestra
el resultado de su dilatación por el elemento estructural.
Figura 3.7 Dilatación con expansión Isotrópica
40
3.2.3.2 Erosión
La transformación morfológica de la erosión ⦻ combina dos conjuntos utilizando
substracción e vectores. Es dual de la dilatación. Ni la erosión ni la dilatación son
transformaciones invertibles [8].
(3.12)
Esta expresión dice que cada punto d del conjunto X, que para nosotros será la imagen,
es testeado; el resultado de la erosión está dado por los puntos d para los cuales todos los
posibles d + b están en X. La figura 3.8 .se puede apreciar la desaparición de muchos
contornos existentes en la imagen original. La erosión con un elemento estructural isótropo
(ver figura 3.8a) es denominada como reducción. La erosión es utilizada para simplificar la
estructura de los objetos, ya que los objetos o sus partes con anchos pequeños (uno o dos
pixeles) desaparecen y por tanto, objetos complicados pueden descomponerse en otros más
simples.
Figura 3.8 Erosión con expansión Isotrópica 3.3 Aplicación
Las aplicaciones en visión artificial tratan de dar solución a los problemas relacionados
con ciertas situaciones del mundo real como: reconocimiento, movimiento, reconstrucción 3D,
etcétera. [8].
41
3.3.1 Reconocimiento de Patrones
El reconocimiento de patrones es la disciplina científica cuyo objetivo es la clasificación
de objetos en un cierto número de categorías o clases. Dependiendo de la aplicación esos
objetos pueden ser imágenes, formas de ondas de señales o cualquier tipo de medidas que
necesitan ser clasificadas. Se refieren a esos objetos de forma genérica utilizando el término de
patrones [8].
La matemática básica para comparación de patrones es la función de correlación [17]. En
[12] se considera que la correlación es la base para encontrar un match de una sub-imagen
w(x, y) de tamaño J X K con una imagen f(x, y) de tamaño M X N, donde se asume que J M y
K N. Aunque la correlación puede ser expresada en forma de vector, al trabajar directamente
con el formato de imagen o sub-imagen es más intuitivo.
En forma simple la correlación entre f(x, y) y w(x, y) es:
(3.13)
Para x=0, 1, 2…, M-1, y=0, 1, 2..., N-1, y la sumatoria es tomada sobre la región de la
imagen donde w y f coinciden. El máximo valor de c indica la posición donde w tiene la mejor
comparación.
El reconocimiento de objetos mediante el uso de c resulta particularmente útil cuando la
base de datos contiene un número relativamente bajo de datos o están muy definidos, este
podría ser el caso del ejemplo siguiente sobre el reconocimiento de caracteres con unas
condiciones de visualización e iluminación previstas. La figura 3.9 muestra en (a) una imagen
de dimensión inferior a la (b) almacenada en la base de datos, después mediante un barrido de
la imagen (b) se encuentra que el carácter de (a) se corresponde con el carácter marcado en (b)
al obtener el máximo valor del coeficiente de correlación [8].
42
Es necesario tomar algunas precauciones respecto al reconocimiento de objetos basado en
la apariencia. Como realmente estamos se interesa en el reconocimiento de objetos en 3D, y
no en imágenes propiamente dichas, se necesita una serie de suposiciones con el fin de que la
correlación sea útil para la finalidad propuesta, a saber:
Suposiciones:
1. Cada imagen en la base de datos contiene un único objeto.
2. Las imágenes de la base de datos se normalizan un tamaño, esto es, la imagen es el
mínimo rectángulo encerrando la mayor apariencia del objeto.
3. La energía de los valores de los pixel de cada imagen de la base de datos se normaliza a 1.
4. El objeto está completamente visible, sin oclusiones en todas las imágenes.
Figura 3.9 (a) Modelo definido en una base de datos; (b) Búsqueda del modelo en una imagen que lo contiene.