RECONOCIMIENTO DE OBJETOS 3D MEDIANTE ANÁLISIS PCA M. A. Vicente, O. Reinoso, C. Pérez, J.A. Sabater, J.A. Azorín Universidad Miguel Hernández División Ingeniería de Sistemas y Automática Departamento de Ingeniería, Campus de Elche Avda. del Ferrocarril s/n 03202 Elche (Alicante) España suni@umh.es Resumen El objetivo de este artículo es comparar dos técnicas de reconocimiento de objetos basadas en PCA. La base de datos de imágenes utilizada para el reconocimiento es la COIL-20. Los experimentos demuestran que si se realiza una detección de bordes de las imágenes antes de realizar el análisis PCA se obtiene un alto porcentaje de aciertos en el reconocimiento incluso en presencia de oclusiones. Palabras Clave : reconocimiento análisis de componentes principales 1 de objetos, INTRODUCCIÓN El análisis de componentes principales (PCA) o las eigenimágenes es una técnica de reconocimiento de caras de gran utilidad que se ha implementado exitosamente en sistemas comerciales [16]. Sin embargo, este método de reconocimiento no se emplea tanto en el reconocimiento de objetos reales tridimensionales, aunque existen algunas importantes excepciones [8][10-12], a pesar de que la mayoría de ellas muestran la debilidad de esta técnica: su alto grado de sensibilidad frente a oclusiones. La apariencia de un objeto real 3D en una imagen 2D depende de la forma del objeto, su color, su posición en la escena global, sus propiedades reflectivas y de las características de la iluminación de la escena y del sensor empleado para la captación de la misma. Murase y Nayar [11-12] propusieron una representación basada en la apariencia de los objetos para reconocer objetos tridimensionales basándose en sus eigenrepresentaciones. También Leonardis y Bishop [10] presentaron un método de reconocimiento basado en PCA, pero a diferencia del original donde el cálculo de los coeficientes de reconocimiento se realiza mediante una simple proyección de las imágenes en el subespacio generado, ellos sugirieron un método basado en generar hipótesis y luego testarlas empleando subconjuntos de puntos de la imagen. En su artículo [8] Huang y Camps, presentaron otro método basado en eigenimágenes utilizando además relaciones entre las partes segmentadas de los objetos, mejorando los problemas de oclusión de otras técnicas anteriores. El objetivo de este artículo es comparar dos técnicas de reconocimiento de objetos basadas en PCA. La base de datos de imágenes utilizada para el reconocimiento es la COIL-20. Los experimentos demuestran que si se realiza una detección de bordes de las imágenes antes de realizar el análisis PCA se obtiene un alto porcentaje de aciertos en el reconocimiento incluso en presencia de oclusiones. 2 ANÁLISIS DE COMPONENTES PRINCIPALES 2.1 INTRODUCCIÓN Una imagen puede considerarse como un vector de píxeles donde el valor de cada componente es un valor en escala de grises (0-255). Por ejemplo, una imagen de 128x128 puede abrirse y tratarse como un vector de longitud 16384. H φi ri 1 φ = M φ i N V Figura 1: Representación vectorial de una imagen De esta manera, la imagen está situada en un espacio N-dimensional, donde N es el número de píxeles de la imagen (y la longitud del vector). Esta representación vectorial de la imagen se considera el espacio original de la imagen. Cada imagen se almacena en un vector de longitud N: El espacio original de una imagen es uno solo de los muchos espacios en los que puede examinarse una imagen. Otros espacios pueden ser: el eigenespacio creado por los eigenvectores de la matriz de covarianza de la imágenes de entrenamiento (PCA 1 [8],[10-12],[14]), el creado por los vectores obtenidos mediante un análisis LDA 2 (discriminantes de Fisher, [7],[15]) o el creado mediante técnicas de ICA 3 ([3],[5],[9]). Las imágenes son centradas, sustrayendo la imagen media de cada vector imagen : El eigenespacio optimiza la variación entre las imágenes. El subespacio obtenido mediante LDA optimiza las características discriminatorias entre las imágenes y el obtenido mediante ICA, obtiene los vectores que maximizan la condición de independencia. Se combinan los vectores de entrenamiento para crear una matriz de datos de tamaño NxP (donde P es el número de imágenes). El algoritmo básico para identificar imágenes en diferentes subespacios es el siguiente: 1. 2. 3. 2.2. Se calcula un subespacio (generado por las propias imágenes) donde proyectar las imágenes. Un vez generado el subespacio, todas las imágenes de entrenamiento son proyectadas en el subespacio Cada imagen test se proyecta en el subespacio y es comparada con todas las proyecciones de la imágenes de entrenamiento por similitud o por medida de distancias, la imagen de entrenamiento más similar o más cercana a la imagen test se utiliza para identificar esa imagen test. ANÁLISIS PCA El eigenespacio se calcula identificando los eigenvectores (vectores propios) de la matriz de covarianza obtenida del conjunto de imágenes de entrenamiento. Los eigenvectores correspondientes a eigenvalores (valores propios) no nulos de la matriz de covarianza forman una base ortonormal que refleja las imágenes en un espacio Ndimensional. 1 PCA, Principal Component Analysis LDA, Linear Discriminant Analysis 3 ICA, Independent Component Analysis 2 [ r φ i = φ1i K φ N i ] T (1) ~i ri r φ = φ −m (2) ri (3) donde r 1 m= P P ∑φ i =1 [ ~ ~ ~ Φ = φ1 | φ 2 | K | φ P ] (4) La matriz de covarianza se obtiene multiplicando Φ por su traspuesta: Ω = Φ·Φ T (5) La matriz de covarianza tiene como mucho P eigenvectores asociados a P eigenvalores no nulos, se supone siempre que P < N, es decir, es mayor el tamaño de la imagen que el número de imágenes. Los eigenvectores se ordenan de mayor a menor, según el valor de su eigenvalor asociado. El eigenvector asociado al mayor eigenvalor es el eigenvector que encuentra mayor variación entre las imágenes. El eigenvector asociado al segundo mayor eigenvalor es el eigenvector que encuentra la segunda mayor variación entre las imágenes. Esto continúa hasta llegar al más pequeño de los valores propios, cuyo vector propio asociado encuentra la menor variación entre las imágenes. El algoritmo anterior se complica computacionalmente en la práctica debido a que la matriz de covarianzas es de tamaño NxN, donde N es el tamaño del vector imagen (si las imágenes son de 128x128 (16384), la matriz de covarianzas es de tamaño 16384x16384); por lo que es costoso hallar los vectores propios directamente a partir de esta matriz. Existe una solución a este problema que se conoce como el truco de Turk y Pentland [14]: hay un teorema de álgebra lineal que establece que los eigenvalores de Ω = Φ·Φ T y los de Ω ' = Φ T ·Φ son los mismos. Por tanto, los eigenvectores de Ω son los mismos que los de Ω' multiplicados por la matriz Φ y normalizados. De esta forma, este teorema puede utilizarse para crear el eigenespacio a partir de una matriz de tamaño PxP (P es el número de imágenes) en vez de utilizar una matriz de covarianzas de tamaño NxN. 2.2.1. es proyectada dentro del eigenespacio definido por V̂ : r t = V̂ T ⋅ ~ ϕ Algoritmo original PCA (1 subespacio) A continuación detallamos el algoritmo desarrollado en el apartado anterior, al que denominaremos PCA original. Entrenamiento: 1. 2. 3. Se selecciona un conjunto de imágenes de entrenamiento y cada imagen es centrada (ecuación 2). Se genera la matriz de datos (ecuación 4). Se obtiene la matriz de covarianzas Ω' : Ω ' = Φ T ·Φ (11) r La proyección de la imagen test t es comparada con cada una de las clases. 2. 2.2.2. El proceso de reconocimiento se divide en dos fases fundamentales: entrenamiento y test. mismo Medidas de distancias r Para comparar la proyección de la imagen test t con cada una de las clases se pueden utilizar medidas de distancia entre los dos vectores. Las medidas de distancia más utilizadas son: norma L1 La norma L1 suma la diferencia absoluta entre las r r componentes de dos vectores ω y t : M L1 = ∑ ω i − t i (12) i =1 (6) donde M es el tamaño de ambos vectores. 4. Se calculan los eigenvalores eigenvectores de Ω' : r Ω '·V' = λ ·V' donde r λ = [λ1 K λ k ] 5. los norma L2 (7) (9) Cada una de las imágenes de r entrenamiento centradas φ i se proyecta en el subespacio. Para proyectar una imagen en el subespacio, calculamos el producto escalar de cada una de las imágenes con cada uno de los vectores ordenados: r ~ ωi = V̂ T ⋅ φ i M L 2 = ∑ ( ω i −t i ) 2 Test: Cada imagen test es centrada, ~ ϕ, substrayéndole la imagen media, y luego (13) i= 1 distancia de Mahalanobis La distancia de Mahalanobis calcula el producto de las componentes y el valor propio asociado a cada componente y suma todos esos productos. La r distancia de Mahalanobis para dos vectores ω y r t es: N MAH = −∑ ω i ⋅ t i ⋅h i (14) i =1 donde (10) r El nuevo vector ωi de la imagen proyectada tendrá tantas componentes como número de eigenvectores haya. A las proyecciones de las imágenes de entrenamiento dentro del subespacio se las denomina clases. 1. La norma L2 o distancia euclídea suma la diferencia al cuadrado entre las componentes de los r r vectores ω y t : (8) Calculamos y ordenamos de mayor a menor los eigenvectores de Ω según el valor de los eigenvalores. V̂ = Φ ·V' 6. y hi = 1 λi (15) y λ i está referido en la ecuación 8. 2.2.3. Algoritmo PCA modificado (varios subespacios). En el PCA original se obtiene un solo subespacio para toda la base de datos de los objetos debido a que cada columna de la matriz de datos Φ es un objeto diferente. Una modificación sobre este algoritmo sería calcular un subespacio para cada objeto, esto es, si la base de datos de los objetos a reconocer está compuesta por 20 objetos, se calcularían 20 subespacios. En las Figuras 2 y 3 podemos apreciar como difieren los subespacios calculados por cada algoritmo. En el algoritmo original los vectores propios (llamados también eigenimagenes o eigenvectores) son fantasmas de una mezcla de todos los objetos, mientras que en el algoritmo modificado, las eigenimagenes son fantasmas de un mismo objeto. 3. OBJETOS COIL En los experimentos se ha utilizado la base de imágenes de objetos COIL-20 (Columbia Object Image Library) [13]. La librería COIL-20 está formada por 1440 imágenes de 20 objetos diferentes (72 imágenes por cada objeto). Las imágenes se han adquirido de manera que entre dos imágenes consecutivas hay una rotación de 5º del objeto. (Ver Figura 3.) 4. EXPERIMENTOS En este apartado se presentan los resultados obtenidos en los diversos experimentos realizados. Todos los algoritmos de PCA han sido programados en MATLAB utilizando las rutinas LAPACK [1] para calcular los eigenvectores y eigenvalores. Utilizando un Pentium IV con 256 Mbytes de RAM calcular un sólo subespacio consume 3 segundos. Durante el proceso de test o identificación de una nueva imagen se tarda aproximadamente un segundo si se utiliza el PCA modificado y apenas unas centésimas de segundo si se emplea el algoritmo original. Figura 2: Imágenes de entrenamiento y eigenvectores obtenidos con el PCA original. Figura 3: Imágenes de entrenamiento para un solo objeto y eigenvectores obtenidos con el PCA modificado. Para generar los subespacios se han utilizado además de las imágenes COIL originales (Figura 2), las imágenes binarias de las COIL (Figura 4), y las imágenes de bordes (Figura 5), obtenidas mediante el conocido detector de Canny [4]. Figura 4: Imágenes binarias La Tabla 1 muestra los mejores resultados obtenidos con este algoritmo. La medida de distancia que proporciona un mayor porcentaje de aciertos es la distancia de Mahalanobis. Podemos ver también que se alcanzan los mismos porcentajes de aciertos con las imágenes binarias que con las completas (64%). imágenes entrenamiento norma # vectores % aciertos imágenes entrenamiento norma # vectores % aciertos imágenes entrenamiento norma # vectores % aciertos originales azar mejor L2 Mah 19 19 52 % 64 % bordes mejor azar mejor L2 L2 Mah 19 19 19 23% 20% 52% binarias mejor azar mejor L2 L2 Mah 19 19 19 56% 55% 64% mejor L2 19 57 % azar Maha 19 60 % azar Mah 19 53% azar Mah 19 61% Tabla 1: Resultados con el PCA original 4.2. RESULTADOS CON EL ALGORITMO PCA MODIFICADO Figura 5: Imágenes de bordes 4.1. RESULTADOS CON PCA ORIGINAL EL ALGORITMO Como se ha dicho antes, en este método sólo se utiliza una imagen de cada objeto para generar la matriz de datos y posteriormente el subespacio. Esta imagen de entrenamiento puede ser la más representativa del objeto (mejor) o bien una imagen elegida al azar. En este método se genera un subespacio por cada objeto y según el tipo de imágenes elegidas para la generación del subespacio es posible realizar dos tipos de entrenamiento: el que denominamos mejor, en el que se utilizan 36 imágenes intercaladas, es decir, entre cada imagen hay una rotación de 10º, y se dejan las otras 36 imágenes para test, siendo el que proporciona los mejores resultados ya que se dispone de casi todas las vistas de un mismo objeto; y el entrenamiento al azar, donde se seleccionan 36 imágenes aleatoriamente . Como no todos los objetos presentan el mismo grado de dificultad en el proceso de reconocimiento, se han separado en tres grupos4 según su sensibilidad frente al reconocimiento: § § § En este caso como el tamaño de la matriz de datos Φ es de 20x20 se obtienen 19 eigenvectores no nulos, y el mayor porcentaje de aciertos en la identificación de las imágenes test se obtiene utilizando todos los eigenvectores. 4 conjunto I: 7,12, 15,16,17,18,20 conjunto II: 1,8, 10, 11, 13 conjunto III:2,3,5,6,9,14,19 numeramos los objetos por filas empezando por el pato de goma (1)). En la Tabla 2 se presentan los resultados obtenidos, por grupos, variando el tamaño del subespacio (número de vectores), y utilizando diversas medidas de distancias con el mejor entrenamiento para las imágenes originales. En este experimento las normas L2, L1 e infinito proporcionan los mejores porcentajes de aciertos (85% para la L2), mientras que la distancia de Mahalanobis es la que peor funciona (19%) a diferencia de lo que ocurría con el algoritmo original. La Tabla 3 muestra el mismo experimento que la Tabla 2 pero utilizando el entrenamiento aleatorio: se obtiene un porcentaje algo menor que el mejor entrenamiento pero más alto de lo esperado (81%). En ambas tablas se aprecia la separación entre grupos, el conjunto I es muy fácil de reconocer casi al 100% utilizando apenas 5 vectores. Realizando el mismo estudio pero con las imágenes binarias y de bordes de la librería COIL se obtiene que el porcentaje de aciertos con las imágenes binarias para el mejor caso (mejor entrenamiento y norma L2) desciende hasta el 50%, mientras que con las imágenes de bordes conseguimos un sorprendente 95% de aciertos utilizando la distancia de Mahalanobis. Por tanto, si se realiza una detección de bordes en las imágenes de entrenamiento antes de realizar el cálculo del subespacio, la tasa de éxito en el reconocimiento aumenta considerablemente. imágenes # vectores 5 10 80 81 53 71 84 79 54 72 norma L2 imágenes # vectores 5 10 originales 15 20 25 92 60 42 65 98 89 55 81 99 85 63 82 norma L2 I II III total 99 100 100 100 89 92 92 94 62 61 60 61 83 84 84 85 93 58 39 63 96 83 53 77 98 80 62 80 98 84 62 81 98 87 56 80 99 90 51 80 100 92 54 82 91 55 40 62 95 83 56 78 5 10 norma L2 I II III total 78 71 52 67 77 65 44 62 76 58 39 58 74 54 36 55 68 50 31 50 Tabla 4. Resultados con imagénes binarias imágenes # vectores 5 98 86 56 80 98 86 56 80 I II III total 10 bordes 20 33 35 % aciertos 90 67 50 69 95 83 54 77 98 95 74 89 100 100 99 99 87 87 95 95 % aciertos 97 81 60 79 97 88 60 81 98 86 56 80 Tabla 2. Resultados para el algoritmo modificado con el mejor entrenamiento y diferentes medidas de distancias imágenes # vectores % aciertos Mahalanobis % aciertos norma Infinito I II III total 35 30 35 % aciertos norma L1 I II III total 30 I II III total binarias 15 20 25 originales 15 20 25 30 35 % aciertos 85 57 38 60 89 72 53 71 92 72 54 73 96 79 54 76 96 81 55 77 96 84 57 79 97 88 58 81 Tabla 3. Resultados para el algoritmo modificado con el entrenamiento al azar. Tabla 5. Resultados con imágenes de bordes Los experimentos mostrados en las tablas anteriores se consiguieron utilizando un número de imágenes de entrenamiento fijo (36). En la gráfica de la Figura 6 se mu estra el porcentaje de aciertos en el reconocimiento en función del número de imágenes de entrenamiento utilizado, y se aprecia una saturación al sobrepasar las 25 imágenes por objeto. 4.3. RESULTADOS CON OCLUSIONES También se testaron ambos métodos ante oclusiones parciales de los objetos (Figuras 7 y 8). Los resultados obtenidos (Tablas 6 y7 ) indican que el algoritmo PCA modificado utilizando imágenes de bordes es el más robusto frente a oclusiones, proporcionando un 89% de aciertos. Tasa de reconocimiento 100 90 80 I 70 imágenes método norma % aciertos II 60 50 III 40 total originales PCA orig. 30 bordes PCA orig. 20 10 0 0 10 20 30 40 50 60 70 Numero de imágenes de entrenamiento Figura 6. Tasa de reconocimiento frente al tamaño del conjunto de entrenamiento originales PCA modf. bordes PCA modf. Mahalanobis L2 Mahalanobis 51 9 39 L2 Mahalanobis L2 Mahalanobis L2 6 5 30 89 17 Tabla 6. Mejores resultados con una oclusión del 25% . Figura 7. Imágenes con una oclusión del 25% imágenes método originales PCA orig. bordes PCA orig. originales PCA modf. bordes PCA modf. norma Mahalanobis L2 Mahalanobis L2 Mahalanobis L2 Mahalanobis L2 % aciertos 16 7 32 11 2 8 59 5 Tabla 7. Mejores resultados con una oclusión del 50% Conclusiones Se han presentado los resultados obtenidos al utilizar dos técnicas de reconocimiento de objetos basadas en PCA. Figura 8. Imágenes con una oclusión del 50% Los experimentos demuestran que realizar una detección de bordes sobre las imágenes originales mejora considerablemente la tasa de éxito en el reconocimiento de nuevas imágenes, para uno de los métodos presentados, incluso en presencia de oclusiones. Agradecimientos El trabajo realizado en este artículo se ha realizado gracias a la financiación aportada por el MCyT para el desarrollo del proyecto de investigación “Modelado de espacios virtuales para entrenamiento de sistemas teleoperados en entornos dinámicos” DPI2001-3827-C02-02 Referencias [1] Anderson, E., Bai, Z., Bischof, C., Blackford, S., Demmel, J., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A., Sorensen, D., LAPACK User's Guide (http://www.netlib.org/lapack/lug/ lapack_lug.html), Third Edition, SIAM, Philadelphia, 1999. [2] Baek, K., Draper, B.A., Ross Beveridge J., Kai She, PCA vs. ICA: A Comparison on the FERET Data Set, International Conference on Computer Vision, Pattern Recognition and Image Processing in conjunction with the 6th JCIS, Durham, North Carolina, March 8-14, 2002. [3] Bell, A.J., Sejnowski, T.J., Hughes, H., The `Independent Components' of Natural Scenes are Edge Filters, Vision Research, 1997. [4] Canny, J., A computational approach to Edge Detection, IEEE Trans. Pattern Analysis and Machine Intelligence, 8-6, pp. 679-698, 1986. [5] Common, P., Independent component analysis, A new concept?, Signal Processing, 36:287-314, 1994. [6] Chandrasekaran, S., Manjunath, B.S., Wang, Y.F., Winkeler, J., Zhang, H., An Eigenspace Update Algorithm for Image Analysis. Graphical Models and Image Processing. Vol 59, Nº 5, Sept., pp 321-332, 1997. [7] Fisher, R.A., The use of Multiple Measures in Taxonomic Problems. Ann. Eugenics, 7:179188, 1936. [8] Huang, C.Y., Camps,O.I., Object Recognition Using Appearance-Based Parts and Relations.. Proceedings of the IEEE CVPRC 1997. [9] Hyvärinen, A., Hoyer, P.O., Inki, M.,. Topographic Independent Component Analysis. Neural Computation, 13(7):15271558, 2001. [10] Leonardis, A., Bishop, H., Robust Recognition Using Eigenimages. Computer Vision and Image Understanding, 78, no. 1, pages 99-118, 2000. [11] Murase H., Nayar S.K. Visual Learning and Recognition of 3-D Objects from Appearance. International Journal of Computer Vision, 14:5-24, January 1995. [12] Nayar, S.K., Murase, H., Nene, S.A., Parametric Appearance Representation, in Early Visual Learning, edited by S. K. Nayar and T. Poggio, Oxford University Press, February 1996. [13] Nene, S.A., Nayar, S. K., Murase, H., Columbia Object Image Library (COIL-20), Technical Report CUCS-005-96, February 1996. [14] Turk, M., Pentland, A., Eigenfaces for Recognition, Journal of Cognitive Neuroscience, vol. 3, no. 1, pp.71-86,1991. [15] Zhao, W., Chellapa, R., Phillips, P.J., Subspace Linear Discriminant Analysis for Face Recognition.1999 [16] The Face Recognition Home Page http://www.cs.rug.nl/~peterkr/FACE/frhp.html