Title: Tema 5' Reconocimiento de patrones
1Tema 5. Reconocimiento de patrones
- Introducción al reconocimiento de patrones y a la
clasificación de formas - Un modelo de general de clasificador
- Características discriminantes
- Tipos de clasificación
- Clasificadores basados en distancias
- Clasificadores bayesianos
- Clasificadores (redes) neuronales
- Support Vector Machines (SVM)
- Análisis de Componentes Principales (PCA).
- Algoritmos de agrupamiento (clustering)
- Otros aspectos sobre reconocimiento de patrones
2Bibliografía
- BÁSICA
- R.C. González y R.E. Woods, Digital Image
Processing, Addison Wesley, 3ª Edición, 2008.
(cap. 12) - Vélez et al., Visión por Computador, Ed.
Dyckinson Serv. Publ. URJC, 2003. (cap. 5) - A. de la Escalera, Visión por computador
Fundamentos y métodos, Pearson- Prentice Hall,
2001. (caps. 4 y 5) - COMPLEMENTARIA
- M. Sonka et al., Image Processing, Analysis, and
Machine Vision, PWS Publishing, 1999. (cap. 7) - L.G. Shapiro y G.C. Stockman, Computer Vision,
Prentice Hall, 2001. (cap. 4) - D.A. Forsyth y J. Ponce. Computer Vision. A
Modern Approach, Pearson, 2003. (cap. 22)
3Introducción
- En muchos problemas prácticos de V.A. existe la
necesidad de tomar decisiones sobre el contenido
de una imagen o sobre la clasificación de los
objetos contenidos en ella. - Clasificar (o reconocer) significa asociar a
clases (o prototipos) una serie de elementos (u
objetos). Esta asociación se realiza en base a
las características o propiedades de los objetos. - Etapa final del análisis de imágenes (a partir de
características extraídas de las regiones
resultantes de la segmentación de una imagen se
pueden reconocer los objetos presentes en ella).
4Introducción
- La características de las regiones u objetos
segmentados se representan usando vectores de
características normalizados. - Las características usadas para el reconocimiento
deben ser cuidadosamente seleccionadas (p. ej.
elección de características invariantes a
transformaciones geométricas). No hay reglas
exactas para descubrir el mejor conjunto de
características. - Reconocer o clasificar no son tareas fáciles las
clases pueden no estar correctamente definidas,
la información sobre los objetos a clasificar
puede ser incompleta. - Métodos de clasificación diferentes ?
clasificaciones diferentes. - La interpretación de de imágenes (o escenas)
requiere el uso de modelos y técnicas de
Inteligencia Artificial -
5 Introducción
B A X W
Patrones
Clases
Características (clases)
Vectores de características (patrones)
Fronteras de clases
6Un modelo general de clasificador
f1(x,K)
f2(x,K)
x x1 x2 . xd
Comparar y decidir
C(x)
fm(x,K)
Vector de características xx1,x2,..,xdT
Cálculo de distancias o probabilidades
Resultado de la clasificación
7Un modelo general de clasificador
- Las funciones discriminantes fi(x,K) realizan
alguna operación sobre el vector de
características x del objeto usando un cierto
conocimiento K conseguido tras el entrenamiento,
y pasan los resultados a una etapa final que
determina la clase asignada. - Existen m clases C1, C2, , Cm-1, Cm conocidas.
Se suele añadir una clase de rechazo Cr (CrCm)
para los objetos que no se pueden colocar en
ninguna de las clases conocidas. - En los métodos de clasificación supervisados se
conocen de antemano las clases, en los no
supervisados las clases y su número no se conocen
(se van definiendo conforme avanza la
clasificación). - El error de clasificación es una medida de cómo
funciona el clasificador (problemas de falsos
positivos y falsos negativos).
8Características discriminantes Aspectos
generales
- Para poder realizarse la clasificación o
reconocimiento automático de objetos es necesario
definir una transformación que convierta a un
objeto del universo de trabajo en un vector X
cuyas N componentes se llaman características
discriminantes o rasgos. - X (x1, x2, , xN), siendo N?N, xi?R,
?i?1..N - El valor del vector de características para un
objeto concreto se conoce como patrón.
Extracción de características
Normalización de características
Clasificación
9Características discriminantes Criterios de
selección de características
- Economía coste razonable (p. ej. sensores de
captura) - Velocidad tiempo de cálculo viable (menor que un
umbral) - Independencia no correlación entre las
características (uso de matriz de covarianzas) - Homogeneidad intraclase poca dispersión (de los
vectores de características) dentro de una misma
clase - Capacidad discriminante interclases mucha
dispersión (de los vectores de características)
entre clases distintas
10Tipos de clasificadores
- Clasificadores a priori y a posteriori.
- Los clasificadores apriorísticos construyen el
clasificador en un solo paso, utilizando la
muestra de aprendizaje para el cálculo de las
funciones discriminantes. Los clasificadores a
posteriori se construyen siguiendo un
procedimiento iterativo, en el cual el
clasificador aprende a reconocer de una manera
progresiva los patrones de la muestra de
aprendizaje. - Clasificadores deterministas y no deterministas
(probabilistas). - Atendiendo a la forma en que se distribuyen los
patrones de la muestra se puede hablar de que se
cumple o no una hipótesis determinista (ej.
distancia) - Clasificadores supervisados y no supervisados.
- Según la información que se proporciona en el
proceso de construcción del clasificador se puede
hablar de dos tipos de clasificadores con
maestro o supervisados, sin maestros o no
supervisados.
11Clasificadores basados en distancias
- Cada una de las N clases Ck (k?1..N) se
representa mediante un prototipo o centroide Zk ,
que es un vector d-dimensional -
- siendo xkj el j-ésimo vector de características
(patrón) de la clase k. - La distancia euclídea dE de un nuevo patrón X a
la clase Ck es - La fórmula anterior es equivalente a evaluar la
expresión de la función discriminante de cada
clase fdk(X), siendo k?1..N, para el patrón X y
asignarlo a la clase Ck para la que fdk(X) sea
máximo
12Clasificadores basados en distancias
Esquema del clasificador euclídeo
Ejemplo Separación lineal entre clases
13Clasificadores basados en distancias
- A partir de las funciones discriminantes de
clases se pueden construir las fronteras de
decisión entre clases (hiperplanos) - fdij(X) fdi(X) -fdj(X)
- A veces no se puede conseguir una separación
lineal entre clases - Esto se produce debido a que 1) las
características son inadecuadas para distinguir
entre clases, 2) las características tienen una
alta correlación, 3) las fronteras de decisión no
son lineales, 4) hay subclases (dentro de las
clases), o 5) el espacio de características es
muy complejo. -
14Clasificadores bayesianos
- A veces, no es posible encontrar características
que permitan separar linealmente a clases de
objetos. - Se puede usar el conocimiento de las
distribuciones de probabilidad de los valores de
las características para clasificar objetos
P(x?1)
P(x?2)
15Clasificadores bayesianos
- Teorema de Bayes
- donde
- P(?i) es la probabilidad de que un patrón al azar
sea de la clase ?i. - P(X?i) es la probabilidad de que sabiendo de que
el patrón a clasificar pertenece a la clase ?i
sea precisamente el que tiene el vector de
características X. En otras palabras es la
función densidad de probabilidad de los patrones
de la clase ?i (probabilidad a priori). - P(X) es la probabilidad de que se presente
exactamente un patrón con el vector de
características X. Cumpliéndose que - P(?iX) es la probabilidad de que un X conocido
pertenezca a la clase ?i (probabilidad a
posteriori).
16Clasificadores bayesianos
- Para clasificar un patrón X en su clase
correspondiente ?i - X??i ? P(?iX) gt P(?jX) ? i?j, j 1,2 ... N
- Como P(X) es un término constante para calcular
P(?iX), la función discriminante fdi(X),
correspondiente a la clase ?i es - fdi(X) P(X?i)?P(?i) ? i 1,2 ... N
- y un patrón X se asignará a la clase ?i, si
fdi(X) gt fdj(X) , ?j?i. - Generalización del clasificador de Bayes para
distribuciones gausianas n-dimensionales - siendo Ci y Zi la matriz de covarianzas y la
media de la clase ?i, respectivamente.
17Redes neuronales
- Por su capacidad de aprendizaje las neuronas de
los organismos biológicos se han estudiado para
su aplicación en sistemas de aprendizaje
automático. - Al igual que las neuronas biológicas están
conectadas, las redes de neuronas artificiales
están formadas por elementos sencillos de cómputo
interconectados según diferentes modelos.
pesos
pesos
?
Función salida
Función activación
Entradas desde otras neuronas
Salidas hacia otras neuronas
Neurona biológica
Neurona artificial
18Redes neuronales
- Las redes neuronales (NN) fueron introducidas por
McCulloch y Pitts (1943). El desarrollo de
métodos de aprendizaje (Hebb, 1949) y el modelo
del perceptrón (Rosenblatt, 1957) motivaron el
interés de este modelo. - Aplicaciones a problemas de clasificación y de
regresión. - Tipos de redes perceptrones, perceptrones
multicapa (MLP), redes autoorganizadas, otros
modelos (modelos recurrentes, neuronas
estocásticas, funciones de base radial, ...). - Métodos de aprendizaje algoritmo de
retropropagación (backpropagation), propagación
rápida (quick propagation), ...
19Redes neuronales
- Perceptrón En su forma más básica, un perceptrón
consiste en una neurona que es capaz de aprender
una función discriminante lineal fd(X), que
permite dividir a dos conjuntos de entrenamiento
linealmente separables. - Su respuesta consiste una suma ponderada de sus
entradas -
- que representa la ecuación de un hiperplano en
el espacio patrón n-dimensional. - La salida depende del signo de fd(X). A la salida
se aplica una función de activación (escalón,
sigmoide, etc) que indica si se activa o no la
neurona.
20Redes neuronales
- Separación de dos clases (regiones) con un
perceptrón
- Perceptrón de dos capas y ejemplo de frontera de
decisión realizable con esta red
-
entradas
salida
hiperplano1
hiperplano2
-
21Redes neuronales
- Perceptrón multicapa (redes feedforward)
Una vez una vez entrenada la red, usando un
algoritmo de aprendizaje (p.ej. quickprop) y un
conjunto de patrones de entrenamiento, ésta es
capaz de resolver el problema para patrones
desconocidos.
22Redes neuronales
- Regiones de decisión reconocidas por distintos
tipos de perceptrones
23Support Vector Machines (SVM)
- Las Support Vector Machines (SVM) son un tipo de
clasificadores de patrones basados en técnicas
estadísticas de aprendizaje propuestas por Vapnik
y sus colaboradores en 1992. - Las SVM están a la cabeza de los métodos de
clasificación - por permitir construir fronteras de decisión
flexibles, y - por su buena capacidad de generalización.
- El método de las SVM permite abordar de manera
general la resolución de problemas de
clasificación y de regresión. - La idea consiste en transformar el conjunto de
vectores de entrada X xi xi(xi1, xi2,,
xin) (patrones n-dimensionales) en otro conjunto
de vectores Y de una dimensión más alta (incluso
de dimensión infinita) en los que el problema
pueda solucionarse linealmente.
24Support Vector Machines (SVM)
- Características
- Clasificador entrenable con gran velocidad de
entrenamiento. - Permite construir hiperplanos óptimos de
separación en problemas de clasificación - Método basado en funciones de kernel ? la
similitud entre los datos se expresa a través de
la noción de kernel, definido según el problema a
resolver. - Capacidad para trabajar con datos de dimensión
muy alta. - Aproxima la probabilidad de que un patrón de
entrada pertenezca o no a una clase, mediante
funciones (relaciones) entre los datos de
entrada. - Cuando las clases no son linealmente separables
transforma los vectores de entrada en vectores de
mayor dimensión para conseguir que las clases
sean linealmente separables.
25Support Vector Machines (SVM)
- Aplicación al problema de clasificación
Separación lineal
Separación no lineal
26Support Vector Machines (SVM)
- Clasificación lineal. Las SVM generan un
hiperplano que separa el espacio en dos o más
regiones, una para cada clase.
27Support Vector Machines (SVM)
- Clasificación no lineal. Se realiza una
transformación del espacio de entrada a otro de
dimensión más alta, en el que los datos son
separables linealmente.
El producto escalar en el espacio de salida se
puede escribir a través de un cierto núcleo o
kernel K (x,y)
28Support Vector Machines (SVM)
- Clasificación no lineal. Las SVM se puede
escribir como
- Existen multitud de funciones de kernel. Las más
habituales son - Lineal
- Polinómico
- Gausiano
29Support Vector Machines (SVM)
- Aplicaciones de los SVM Se han utilizado en
diversos problemas de reconocimiento de patrones.
Cabe destacar las aplicaciones bioinformáticas,
el análisis de texto y el tratamiento de
imágenes. - Entre las aplicaciones de análisis de imágenes
- Reconocimiento de escritura manual on-line.
- Reconocimiento de objetos 3-D.
- Reconocimiento de caras en imágenes.
- Recuperación de información por contenido.
- Más información sobre SVM
- http//www.support-vector.net/software.html
30Análisis de componentes principales (PCA)
- Permite transformar un espacio original en otro
de menor dimensión.
Subespacio de imágenes de cierto objeto Vh
h vectores ortonormales no correlacionados (hltltn)
p vectores correlacionados xi?Vn, nmxm
PCA
Base del subespacio
31Análisis de componentes principales (PCA)
- Direcciones principales
- Maximizan las variaciones entre las muestras de
entrenamiento. - En ellas se encuentran los vectores de la nueva
base (componentes principales).
32Análisis de componentes principales (PCA)
- Vectores de la nueva base
- Representan la mayor parte de la información
contenida en el conjunto original. - Están ordenados según su varianza los h primeros
aportan un gran porcentaje de la varianza total. - Puede haber como máximo el número de muestras
iniciales (generalmente menos).
33Análisis de componentes principales (PCA)
- Vectores de la nueva base
h autovectores de S asociados a los autovalores
mayores (hltltn).
34Análisis de componentes principales (PCA)
Coeficientes de la proyección
Representación
Reconocimiento Usar la representación resultado
del PCA en combinación con alguna del las
técnicas de reconocimiento estudiadas (classif.
basados en distancias, clasif. Bayesianos, NN, )
35Algoritmos de agrupamiento (clustering)
- Técnicas de clasificación no supervisada.
- Estos algoritmos se usan cuando no existe
conocimiento a priori de las clases en que se
pueden distribuir los objetos, cuando las clases
no son interpretables por un humano, o cuando el
número de clases es muy elevado para un procesado
no automático. - Algunos algoritmos de clustering
- distancias encadenadas
- Min-Max
- k-medias
- Existen otras técnicas como los algoritmos de
clustering jerárquico o los dendogramas que
pueden resultar ineficientes para tamaños grandes
de muestra.
36Algoritmos de agrupamiento (clustering)
Algoritmo de distancias encadenadas
- No precisa de información sobre el número de
clases existente. - Se realiza en un solo paso, por lo puede ser muy
rápido. - El inconveniente es que necesita fijar umbrales
de clasificación y la solución final dependerá
del punto de inicio del algoritmo. - Algoritmo
- - Este algoritmo parte de los vectores de
características de la muestra de aprendizaje X1,
X2, ... XP y toma uno de ellos Xi al azar. - - Seguidamente ordena los vectores según la
sucesión Xi(0), Xi(1), ,Xi(P-1), - donde esta sucesión es tal que el siguiente
vector de la cadena es el más próximo al anterior
(siendo Xi(0) Xi). - - A continuación, se establecen las clases. Para
ello, se analizan las distancias euclídeas entre
cada elemento y el siguiente. Si la distancia
entre dos elementos consecutivos de la sucesión
es superior al umbral, en ese punto de la
sucesión, comienza una nueva clase, en otro caso,
el elemento analizado pertenece a la misma clase
que el elemento anterior.
37Algoritmos de agrupamiento (clustering)
Algoritmo Min-Max
- El algoritmo Min-Max introduce paulatinamente
centroides de clases, determinando la distancia a
la que se encuentran los patrones de los mismos. - Si en algún caso esta distancia supera un umbral
se crea un nuevo centroide (clase). El proceso se
repite hasta no producir cambios. - Es un algoritmo que sólo precisa la determinación
de un valor de umbral para la autoorganización
de las clases. - Algoritmo
- 1. Tomar al azar un elemento de los P
disponibles e insertarlo en la clase ?. - 2. Calcular las distancias de ?1 a los P-1
vectores no agrupados y tomar la máxima
distancia, formando una nueva clase con aquél que
la maximiza. - 3. Agrupar los restantes vectores que quedan en
alguna de las clases existentes. 4. Si la
distancia de alguno de los vectores tiene está a
una distancia superior a un valor umbral crear
una nueva clase con ese vector y se vuelve al
paso 3 en otro caso, terminar.
38Algoritmos de agrupamiento (clustering)
Algoritmo de las k-medias
- Permite determinar la posición de k centroides
que distribuyen de manera equitativa un conjunto
de patrones. - A diferencia de los algoritmos anteriores, es
necesario conocer a priori el número k de clases
existentes. - Algoritmo
- 1. Poner n 1. Tomar al azar k vectores de los
P existentes y se convierten en centroides de
cada una de las k clases (Z1(1) de ?1, , Zk(1)
de ?k). - 2. Distribuir las P-k muestras restantes entre
las k clases. Asignar cada vector a la clase que
esté más próxima (x??j ? d(x-zj(n))ltd(x-zi(n)),
?i1,2,...k i?j) - 3. Calcular los centroides de las clases como la
media ponderada de los vectores de cada clase. - 4. Si alguno de los k centroides Zk(n) es
distinto de los nuevos centroides Zk(n1) hacer
n n1 e ir al paso 2 en otro caso, finalizar
el algoritmo.
39Otros aspectos sobre reconocimiento de
patrones
- Conceptos
- Precisión frente a eficiencia.
- Matriz de confusión.
- Árbol de decisión.
- Otras técnicas de reconocimiento
- Reconocimiento estructural (o sintáctico) de
patrones - Técnicas basadas en grafos
- Algunas aplicaciones de reconocimiento
- biométricas (imágenes faciales, huellas
dactilares, firmas, ...) - análisis de calidad de piezas,
- imágenes aéreas, ......
- Interpretación de imágenes