Robótica Inteligente
L. Enrique Sucar
Alberto Reyes
ITESM Cuernavaca
Visión Robótica
• Introducción
• Adquisición y representación de imágenes
• Filtrado
• Detección de orillas
• Color
• Estéreo
• Aplicaciones en robótica
¿Qué es Visión?
• “Visión es saber que hay y donde mediante la vista” (Aristóteles)
• “Visión es recuperar de la información de los sentidos propiedades válidas del mundo exterior” (Gibson)
• “Visión es un proceso que produce a partir de las imágenes del mundo una descripción que es útil para el observador y que no tiene información irrelevante” (Marr)
Visión Computacional
• Determinar la identidad y localización de objetos en una imagen,
• construir una representación tridimensional de un objeto,
• analizar un objeto para determinar su calidad,
• descomponer una imagen u objeto en diferentes partes.
IM AG EN VIS IÒ N
DESCRIPCIÒ N
Ejemplo visión
Formación de la imagen
Representación
F
X
Y
Monocromática: I=f(x,y)
Color: f(x,y)=[f_{rojo}(x,y),f_{azul}(x,y),f_{verde}(x,y)]
Proyección
YX
Z
(X,Y)
(X,Y,Z)F
Proyección perspectiva
Triángulos semejantes: y/f = -Y/(Z - f) = Y/(f-Z)Entonces: y=fY / (f - Z)
x=fX / (f - Z)
Triángulos semejantes: y/f = -Y/(Z - f) = Y/(f-Z)Entonces: y=fY / (f - Z)
x=fX / (f - Z)
Z
y,Y
f
Lente
(X,Y,Z)
(x,y)
Digitalización de imágenes
24 38
43 45
56 59 46
50
44
Efectos de Muestreo (resolución)
Dispositivos de captura
• Cámaras fotográficas,
• cámaras de televisión,
• digitalizadores,
• sensores de rango (láser),
• sensores de ultrasonido,
• rayos X, tomografía,
• resonancia magnética.
Arquitectura sistema de visión
CPU
M
M A/D
D/A
CPU
CO MPUTADORA“FRAM E GRABBER”
SISTEMA DE VISIÓN
• Procesamiento de nivel bajo
• Procesamiento de nivel intermedio
• Procesamiento de nivel alto
• Procesamiento de nivel bajo
• Procesamiento de nivel intermedio
• Procesamiento de nivel alto
óvalo
Niveles de análisisNiveles de análisis
Mejoramiento de la imagen
• Previo a obtener características:– resaltar aspectos deseados,– eliminar ruido, mejorar contraste, etc.
• Técnicas de pre-procesamiento:– operaciones puntuales,– filtrado,– ecualización por histograma.
Operaciones puntuales
• Pixel de salida sólo depende de un pixel de entrada
S[x,y] = f(E[x,y])
Función de Transformación
IE
IS
Binarización
• Transformación lineal en el que la imagen de salida tiene 2 valores - blanco y negro
S=blanco, si E > T
S=negros, si E < T
T es el umbral
Ejemplos de Operaciones Puntuales
Histograma de intensidades
• Distribución de niveles de intensidad en una imagen
• Ejemplo:
• Estimado de probabilidad de ocurrencia de cada nivel de intensidad: p= nr / nt
00
0
1 1
1 1
1
122
22
2
3 3
0 1 2 3
Ejemplos de histogramas
Ecualización del histograma
• Función de transformación:h
s(k) = k ni / n
• Para k = 0, 1, 2, 3 …. Número de niveles• Esto es, al hacer la transformación se asigna a
cada nivel de intensidad de la imagen de salida el valor de la sumatoria de las probabilidades hasta ese valor
• Da un valor entre 0 y 1 que hay que multiplicar por una constante (255)
• Función de transformación:h
s(k) = k ni / n
• Para k = 0, 1, 2, 3 …. Número de niveles• Esto es, al hacer la transformación se asigna a
cada nivel de intensidad de la imagen de salida el valor de la sumatoria de las probabilidades hasta ese valor
• Da un valor entre 0 y 1 que hay que multiplicar por una constante (255)
Ejemplos de ecualización - antes
Ejemplos de ecualización - después
Filtrado
• Filtrar una imagen consiste en aplicar una transformación de forma que se acentúen o disminuyan ciertos aspectos
g(x,y) = T[f(x,y)]
Filtrado en el Dominio Espacial
• Operan directamente sobre los pixels de la imagen
• Se utiliza generalmente una “máscara” que opera sobre una vecindad de pixels, centrándose sobre el pixel de interés
• Se realiza una convolución (barrido) de la máscara con la imagen
Filtrado en el Dominio Espacial
• Cada pixel de la nueva imagen se obtiene mediante la sumatoria de la multiplicación de la máscara por la vecindad del pixel:
g(x,y) = f(i,j) w(i,j)
• Generalmente se divide sobre cierto valor constante para normalizar
Aplicación de una máscara
Convolución
1 1 1
1 1 1
1 1 1
máscara
Imagenoriginal
0 1
1
0
0 0
000 1
1
1
Imagennueva
Convolución - paso 1
1 1 1
1 1 1
1 1 1
máscara
Imagenoriginal
0 1
1
0
0 0
000 1
1
1
Imagennueva
2
Convolución - paso 2
1 1 1
1 1 1
1 1 1
máscara
Imagenoriginal
0 1
1
0
0 0
000 1
1
1
Imagennueva
2 5
Normalización
1 1 1
1 1 1
1 1 1
máscara
Imagennueva
2 5
Imagennueva normalizada
0 1
En esta caso se divide entre “9”(suma de las valores de la máscara)
Algunos Filtros
• Filtros puntuales
• Filtros de suavizamiento
• Filtros de acentuamiento
• Filtros de énfasis de altas frecuencias
• Cada clase de filtro difiere en los valores utilizados en la máscara
Filtros de suavizamiento
• Eliminan ruido o detalles pequeños que no sean de interés
• Filtro pasa-bajos (en frecuencia)
Filtros de suavizamiento
• Promedio - promedio de pixels vecinos (máscara con unos)
• Mediana - substituye por mediana de la vecindad
• Gaussiano - aprox. distribución gaussiana
Ejemplos de aplicación de filtros de suavizamiento
Filtros de acentuamiento
• Intensifica los detalles y cambios, mientras que atenúa las partes uniformes
• Filtro pasa-altos (en frecuencia)
Filtros de acentuamiento
• Ejemplo de filtro pasa-alto
• Suma de los pesos es cero (se “eliminan” regiones de intensidad uniforme)
Ejemplos de aplicar filtros pasa-altos
Visión de nivel bajo
• Obtener características útiles para los siguientes niveles de visión:– orillas o bordes,– color,– textura,– gradiente,– profundidad
Imágenes intrínsecas
¿Qué es una orilla?• Parte de la imagen en que hay un cambio
brusco o discontinuidad en la intensidad de la imagen- derivada “alta”
Orillas locales
• Las orillas de una imagen normalmente se detectan como pequeños segmentos o secciones de un borde que se integran en etapas posteriores
Orillaslocales
Operadores de gradiente
• Se basan en diferenciar la imagen, es decir, encontrar el gradiente:
f = (df/dx, df/dy)
• Magnitud del gradiente:
f| = [ (df/dx)2 + (df/dy)2 ]1/2
Aproximación al gradiente
• Se puede aproximar el gradiente tomando la diferencia de valores contiguos en la imagen.
• Para una sección de 2 x 2:
df/dx = I 1,2 - I 1,1
df/dy = I 2,1 - I 1,1
1,1 1,2
2,1 2,2
Las aproximaciones anteriores se pueden implementar como filtros espaciales (máscaras)
Operadores como el deRoberts, Prewitt y Sobel,se implementan con dosmáscaras: una para dx y otra para dy
Operadores de Roberts
Corresponden a las diferencias cruzadas de 2 x 2
0 1
-1 0
1 0
0 -1
Operadores de Prewitt
Corresponden a las diferencias en secciones de 3 x 3
-1 -1
0 0
-1
0
1 1 1
-1 0
-1 0
1
1
-1 0 1
Ejemplos con los operadores de Roberts y Prewitt (magnitud)
Operadores de Sobel
-1 -2
0 0
-1
0
1 2 1
-1 0
-2 0
1
2
-1 0 1
Ejemplos con operadores de Sobel
Color
• El color es importante porque:– ayuda a la extracción de características,– apoya los niveles superiores como
segmentación y reconocimiento.
• El ojo humano distingue miles de colores y en cambio sólo aprox. 20 niveles de gris - el color es importante en el reconocimiento visual.
Espectro
• El color tiene que ver con la longitud de onda dentro de la luz visible del espectro electromagnético
color: violeta azul verde amarillo naranja rojolongitud 400 700de onda (nm)
Percepción del Color
• Un objeto se ve de cierto color si refleja las longitudes de onda de dicho color (por ejemplo, verde: 500-570 nm) y absorbe el resto, al ser iluminado por luz “blanca”
Atributos básicos del color
• Croma o longitud de onda dominante (Hue)
• Pureza o saturación
• Brillantez o intensidad
Combinación de colores
• La identificación del color se hace mediante la combinación de los 3 tipos de sensores - combinación de colores “primarios” (RGB)
• Combinación aditiva - luz (a) y substractiva - pigmentos (b)
Componentes de una imagen a color
Modelos de Color
• Diferentes formas de representar el color:– modelos sensoriales - orientados a los equipos
• RGB, CMY, YIQ– modelos perceptuales - se asemejan a la
percepción humana y se orientan al procesamiento de imágenes y visión• HSV, HLS, HSI
Modelo RGB• Se basa en los componentes primarios: RGB
• Se puede representar como un “cubo” con un primario en cada eje
Modelo HSI
• Transformación del espacio RGB al espacio perceptual
• Forma de 2 pirámides triangulares unidas en su base
Conversión RGB a HSI
I = 1/3 (R + G +B)
S = 1 - 3 m / (R + G + B)
H = cos -1[ ½ [(R - G) + (R - B) ] ]
m = min(R,G,B)
[ (R-G)2 + (R-B) (G-B)]1/2
Ejemplo de Imagen en HSI
Procesamiento de imágenes a color
• Detección de orillas– Aplicar en cada componente
• Ecualización del histograma– Aplicar sólo en Intensidad (modelo HSI)
Ejemplo de ecualización en color[González 98]
Ejemplo de detección de
orillas con Sobel en RGB
Segmentación en base a color
• Al ser el color un atributo que ayuda al reconocimiento de objetos, se puede utilizar como una forma inicial de segmentación de imágenes en base a color
• Por ejemplo, se ha utilizado en:– Segmentación de área de piel de personas– Identificación de cultivos en imágenes aéreas– Idenificación de diferentes tipos de terreno para
vehículos autónomos
Clasificación en base a color
• Se pueden utilizar diferentes técnicas para separar los pixels del color de los objetos de interés, por ejemplo:– Determinar una región de interés en el espacio
RGB o en otros modelos de color– Usar un clasificador bayesiano simple en base a
los atributos en algún modelo– Utilizar otras técnicas de clasificación o
aprendizaje
Clasificación en base a color• Región en el espacio RGB
Región de “piel” en espacio rg
Clasificación en base a color
• Ejemplo: detección de regiones de piel
Visión Tridimensional
Introducción
• El objetivo de visión 3-D es recuperar la información de profundidad o tercera dimensión a partir de imágenes
• Una imagen es un objeto bidimensional en que se ha “perdido” la 3-D
• El proceso de proyección de 3-D a 2-D es irreversible - se pierde información
Proyección de 3-D a 2-D
• Un número infinito de escenas en 3-D pueden generar la misma imagen en 2-D
Técnicas
• Visión estereoscópica
• Forma de sombreado
• Forma de textura
Visión estereoscópica
• Una forma de recuperar la 3-D es mediante el uso de 2 cámaras o visión estéreo
• La idea es combinar las imágenes de las 2 cámaras y mediante geometría obtener la profundidad de cada punto en la imagen
• Las 2 cámaras están en posiciones distintas a una distancia conocida
Estéreo
d
d
f -Z
Y´´
Y´
Y Y
Z = f - 2df / (y’ -y’’)
Algoritmo básico
• Obtener dos imágenes• Identificar puntos correspondientes en
ambas imágenes• Mediante geometría calcular la profundidad
de cada punto - en base a la distancia entre las cámaras, la posición de los puntos correspondientes en las imágenes y la longitud focal de la cámara
Correspondencia (matching)
• El aspecto clave en el algoritmo es el de correspondencia entre puntos
• No es fácil identificar los pixels en las imágenes que corresponden a los mismos puntos u objetos en la escena
• Alternativas:– Correlación o template matching– Basada en características
Correlación
líneas epipolares
Medidas de similaridad
• Dos comunes:– Correlación cruzada:
T(i,j) I(k,l)– Suma de diferencias cuadráticas:
[T(i,j) – I(k,l)]2
Ejemplo
Forma de Sombreado
• En general el mundo esta constituido por objetos opacos y relativamente continuos
• Considerando una iluminación constante y una reflectividad aproximadamente uniforme - los cambios de intensidad dan información de profundidad
Forma de Sombreado
Algoritmos
• Estereo fotométrico - uso de múltiples fuentes de iluminación
• Relajación - uso de restricciones entre elementos
• Algoritmo diferencial - uso de información local
Ejemplo de aplicación del método de forma de sombreado
Visión de Nivel Bajo y Medio
orillas
textura
color
3-D
ImagenSegmen-
tada
Visión de Nivel Alto
orillas
textura
color
3-D
ImagenSegmen-
tada
Descripciónsimbólica
Representacióndel mundo
Visión de Alto Nivel
• Obtiene una interpretación consistente de las características obtenidas en visión de nivel bajo e intermedio
• Se basa en utilizar conocimiento de los objetos del dominio de interés
• En base al conocimiento y las características se realiza el reconocimiento
Reconocimiento
Ejemplo
HGP 5080
Vector de Características
• Las características de un objeto se pueden agrupar en un vector de características (feature vector):
V = (v1, v2, …, vn)
• Este vector da una representación compacta del objeto correspondiente
Clasificación
• La clasificación de objetos consiste en encontrar el tipo (clase) para un objeto desconocido en base al vector de características
• Para ello podemos considerar el vector como un punto en el espacio n-dimensional de características
Espacio de características (ejemplo con 2)
X
v1
v2
Vecino más cercano
• Una forma de clasificación es el método del vecino más cercano:– se obtienen las características de objetos
conocidos– se calcula el “centro de masa” de los vectores
de cada clase– se obtiene el vector de una imagen– se calcula la “distancia” a cada clase– se selecciona la clase más cercana
Clasificación con VMC
X
v1
v2
Reconocimiento Estadístico
• Descrita la imagen (instancia) y los modelos (clases) en base a una serie de parámetros, se busca la clase más probable
• Notación:– clases: Ci
– instancia o patrón: Xj
– P(Ci): probabilidad a priori de cada clase
– P(Xj | Ci): probabilidad del patrón dada la clase
Reconocimiento Estadístico
• Se busca maximizar la probabilidad de la clase dado el patrón
• Probabilidad posterior, por teorema de Bayes:
P(Ci | Xj) = P(Ci) P(Xj | Ci) / P(Xj)
• Se selecciona la clase Ci que maximiza P
Clasificador Bayesiano Simple
• La estimación de las probabilidades se simplifica si se considera que los atributos son independientes dada la clase:
P(Ci | Xj) = k P(Ci) P(Xj | Ci)
P(Ci | Xj) = k P(Ci) P(X1j | Ci) … P(XNj | Ci)
• Por ejemplo (R,G,B = color):
P(objetoj | R,G,B)= k P(Oj) P(R|Oj) P(G|Oj) P(B|Oj)
• Las probabilidades se pueden estimar a partir de ejemplos
Ejemplo de Clasificador Bayesiano Simple
• Clase - Robot: si/no• Atributos
– Rojo: [0 .. 255] (dividir en intervalos)
– Verde: [0 .. 255]
– Azul: [0 .. 255]
• Estimación de parámetros:
P(t), P(R|t), P(V|t), P(A|t), • Clasificación
P(r|R,V.A) = k P(t) P(R|t) P(V|t) P(A|t)
Aplicaciones en Robótica
• Navegación en interiores• Navegación en exteriores• Localización (marcas naturales y artificiales)• Reconocimiento de diferentes objetos (p. ej. tipos
de terreno)• Reconocimiento de personas y ademanes
(comunicación humano robot)• Identificación y localización de objetos (otros
robots, para manipulación, etc.)
Estimación de profundidad con laserEstimación de profundidad con laserPunto láser
P(Olaser
|Z)
Z
Cámara
Punto láser
Z
Reconocimiento de personas y ademanes
Reconocimiento de ademanesReconocimiento de ademanes
Seguimiento (tracking)Seguimiento (tracking)
Navegación en endoscopía
Ejemplo de Endoscopía
Robótica
• Se utiliza para que un robot móvil pueda navegar en pasillos de edificios
• Se asume que el robot tiene una fuente de iluminación (lámpara) cercana a la cámara
Ejemplo de navegación
robótica
Navegación en ambientes exteriores
Referencias
• L. E. Sucar, Notas de Curso de Visión
• González y Woods, Digital Image Processing, Addison-Wesley
Actividades
• Diseño mecánico y sensorial de su robot– estructura mecánica (tipo)
– plataforma: forma del robot, estructura
– selección y distribución de sensores
• Reporte (5 – 10 pags.) y presentación (15 min) explicando cada uno de estos puntos (diagramas) con una justificación en base a la categoría
• Armar y demostrar su robot