Reconocimiento y clasificación de poses robóticas utilizando
Transcripción
Reconocimiento y clasificación de poses robóticas utilizando
Reconocimiento y clasificación de poses robóticas utilizando principal component analysis (PCA) y support vector machines (SVM) Michael Terrones Carrasco 62 RESUMEN KEY WORDS En la presente investigación es introducida una completa caracterización de poses robóticas en la búsqueda de autoposicionamientos estables para el sujetado de objetos, utilizando un arreglo de parámetros para la descripción de poses robóticas así como visión artificial con PCA (Análisis de Componentes Principales). Los vectores resultantes de la caracterización manual y automática de poses robóticas son integrados con un algoritmo de clasificación tal como SVM (Support Vector Machines) para la discriminación de poses robóticas. Los resultados obtenidos son alentadores y muestran que el posicionamiento robótico en interacción con una adecuada representación de los objetos en diferentes condiciones (luminosidad, posición relativa del acople robot – objeto) puede ser alcanzado mediante la meticulosa combinación de técnicas de reconocimiento y evolucionados algoritmos de clasificación. PCA analysis, SVM, array of pixels, eigenvectors, pose characterization. ABSTRACT This paper proposes an approach for complete characterization of robot poses in the search of stable autopositioning for grasping objects. A vector of parameters for describing the robot poses and computer vision using Principal Component Analysis (PCA) for auto analysis of positioning are adopted. The vectors resulting from the manual and auto characterization of robot poses are integrated with an SVM (Support Vector Machines) classification algorithm to discriminate robot poses. The results from the research are encouraging and show that the robotic positioning in interaction with object in different environment conditions (luminosity, coupling robot – object relative position) can be achieved by combining meticulous recognition techniques and evolutionary classification techniques. PALABRAS CLAVES Análisis PCA, SVM, arreglo de píxeles, eigenvectores, caracterización de poses. INTRODUCCION Uno de los problemas que ha limitado el uso de aplicaciones robóticas es la falta de controladores evolutivos [1]. Con el objeto de aliviar este aspecto específico y también para lidiar con el costo prohibitivo de muchas soluciones robóticas, se presenta un enfoque basado en la combinación de caracterización robótica y un algoritmo inteligente de control, como es SVM. Como parte del planteamiento del problema, podemos formularnos las siguientes interrogantes: ¿Es posible implementar el autoaprendizaje en sistemas robóticos? ¿Es este un autoaprendizaje robusto en términos de eficiencia en el control? ¿Podemos pretender implementar un sistema que además de robusto sea evolutivo? En términos cuantitativos, ¿cuáles serían los porcentajes de error para estos controles evolutivos? El centro de atención en el presente caso es el autoposicionamiento robótico para tareas de sujetado. Como podemos suponer el posicionamiento robótico es extremadamente dificultoso debido al número de grados de libertad (GLs) considerados en el acoplamiento efector final – objeto, así nosotros debemos considerar cada parámetro en el efector final, el objeto, y el ambiente que podría influenciar el posicionamiento final. El número de GLs implica una búsqueda de diferentes espacios para una óptima representación. Así, en la investigación el acoplamiento efector final – objeto es representado por sus principales parámetros (vector con 8 GLs) en el primer caso de estudio y, luego, la investigación es extendida para incluir la representación de parámetros del entorno que podrían también influir la performance del posicionamiento (cables, obstáculos, descalibraciones, etc.) utilizando un análisis con PCA en diferentes configuraciones. Finalmente los resultados de ambos escena- RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM) rios alimentan a un algoritmo de clasificación tal como SVM, para entrenar y enseñar al robot los adecuados posicionamientos finales. El problema de controlar un brazo robótico es usualmente enfocado asumiendo que el robot debería tener o debería adquirir a través del aprendizaje un modelo interno capaz de: predecir cómo se moverá el brazo robótico, dado un comando específico hacia el motor (mapeo directo); y transformar una consecuencia sensórica deseada hacia el comando del motor que lo alcanzaría (mapeo inverso) [2]. No negamos que los seres humanos y otras especies naturales confíen en modelos internos de esta forma para controlar el comportamiento de sus particulares motores. Sin embargo, no creemos que el control del motor y los movimientos de los brazos en particular estén basados en una detallada descripción del acople sensor – motor, sino en modelos y técnicas que incluyan también el entorno de trabajo. El objetivo de la presente investigación es aplicar nuevas técnicas de aprendizaje artificial para el problema de sujetado y lograr, de manera efectiva, que los robots puedan sujetar objetos de manera arbitraria en entornos arbitrarios. En el presente reporte, los resultados del autoposicionamiento robótico para tareas de sujetado utilizando algoritmos de clasificación SVM, son presentados y analizados en diferentes escenarios, con el fin comparar diferentes performances de autoposicionamientos en la búsqueda de una combinación de parámetros y factores que puedan afectar la tarea de clasificación. Por medio de la introducción de visión artificial para el reconocimiento de poses robóticas se acelera el tiempo de adquisición de información mediante la captura automática de los datos requeridos en vez de una carga manual de los vectores de entrada para la tarea de clasificación. Aun cuando el vector de entrada crezca considerablemente y también el tiempo de procesamiento, este considera toda la información del acoplamiento efector final – objeto e igualmente los datos del entorno. La implementación de un adecuado análisis PCA es importante para discriminar los eigenvalores con información irrelevante. Inteligencia Artificial para el Problema de Sujetado Varias investigaciones intentan relacionar sistemas robóticos con controladores evolutivos, tales como las de Moriarty y Mikkulainen, 1996 [3], Skopelitis, 2002 [4], Pelossof, Millar, Allen, Jebara, 2004 [5], proporcionando promisorios reportes en el comportamiento de los brazos robóticos. En otras investigaciones relacionadas, los investigadores han usado el aprendizaje para sujetado guiado visualmente [6], [7], [8]. Las Redes Neuronales han sido usadas en el aprendizaje del sujetado de objetos desconocidos [9]. También Rezzoug y Groce [10] usaron redes neuronales multietapa para aprender posicionamientos en el sujetado. Wheeler ha desarrollado un sistema para sujetados de alto nivel [11]. PCA para el reconocimiento de imágenes En el campo del reconocimiento de imágenes de brazos robóticos, el uso de las técnicas PCA para identificar objetos o patrones de interés y la caracterización de estos objetos mediante una matriz de eigenvalores (eigenvector) ha sido una promisoria herramienta para representar información útil que pueda ser usada para el algoritmo de clasificación SVM. En años recientes PCA para la detección de varios objetos y reconocimiento de tareas tales como detección facial [12], [13], detección de objetos [14], y reconocimiento de objetos [15] ha demostrado la factibilidad de este enfoque en el uso del preprocesamiento de imágenes para extraer información útil, contenida en la matriz de eigenvectores, a fin de discriminar objetos de interés. Desde este punto podemos inferir que el PCA es una valiosa herramienta para el reconocimiento de objetos. Dado que los brazos robóticos presentan formas antropomórficas, podemos extender el alcance de investigaciones previas a los brazos robóticos y/o al reconocimiento de objetos. Organización del reporte El reporte está organizado de la siguiente manera: sección 2 describe los algoritmos de SVM y PCA usados para la investigación. La sección 3 presenta los resultados experimentales en la clasificación SVM en el caso manual, y describe también el entrenamiento y los resultados experimentales con la implementación del análisis PCA. La sección 4 suma los rendimientos y presenta una interpretación de estos. Finalmente la sección 5 contiene comentarios concluyentes útiles para investigaciones futuras en este campo. MAQUINAS DE SOPORTE VECTORIAL (SVM) Y ANALISIS DE COMPONENTES PRINCIPALES (PCA) SVM Esta técnica se ha convertido recientemente en un herramienta popular de aprendizaje para realizar regresiones [16], [17], y especialmente tareas de clasificación [18], [19]. SVM para clasificación es típicamente usada para construir una función f(X) que prediga los valores y. Una interesante propiedad de SVM es minimizar una zona en el error esperado para futuros datos de prueba. El principal campo de utilidad para SVM es la clasificación de datos, incluyendo aplicaciones tales como reconocimiento de patrones, clasificación de textos [16], entendiendo data (información) como una colección de eventos que conforma la información requerida por un controlador. Una tarea de clasificación usualmente involucra entrenamiento y prueba de data, que son RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM) 63 instancias de información [20]. Cada una contiene en el conjunto de entrenamiento un “valor objetivo” (etiquetas de clase) y diferentes “atributos” (características). El objetivo de SVM es producir un modelo que prediga valores de objetivo de instancias de data en el conjunto de pruebas donde están dados sólo los atributos [17], [18], [21]. Dado un conjunto de pruebas de pares de instancias-etiquetas (xi, yi), i = 1, . . . , l donde xi Rn e y {1,−1}l , SVM [22] requiere la solución para el siguiente problema de optimización: Aquí los vectores de entrenamiento xi son mapeados en un espacio dimensional de niveles superiores por la función [23]. Entonces SVM encuentra un plano lineal de separación con el máximo margen y el más alto espacio dimensional. C > 0 es el parámetro de penalización del término error. Además la función K (xi, xj) (xi)T, es llamada la función kernel. Para este particular problema de clasificación, la función radial es seleccionada como la función kernel, teniendo en consideración reportes previos [24]. 64 La forma de este kernel es la siguiente: El kernel RBF (Radial Basis Function) mapea las muestras no linealmente en un espacio dimensionalmente más elevado, de modo que a diferencia del kernel lineal, puede manejar el caso cuando la relación entre las etiquetas de clase y los atributos es no lineal. Más aún, el kernel lineal es un caso especial de RBF [25] tal y como muestra el comportamiento del kernel lineal con un parámetro de penalización C, el cual muestra el mismo performance que el kernel RBF con algunos parámetros (C, _). Adicionalmente, el kernel sigmoidal se comporta como RBF para ciertos parámetros [26]. La segunda razón es el número de hiperparámetros, el cual influencia la complejidad de la selección del modelo. El kernel polinomial tiene mas hiperparámetros que el kernel RBF. Finalmente, el kernel RBF tiene menos dificultades numéricas. SVM pertenece a los métodos de aprendizaje supervisado y son principalmente usados para problemas de clasificación binarios, de una clase y de n clases. SVM combina algoritmos lineales con algoritmos no lineales, los cuales lo convierten en una poderosa herramienta y explican su éxito en la comunidad de aprendizaje artificial en años recientes. La selección de los parámetros SVM para ambos casos es muy parecida, por lo tanto un análisis en la performance SVM en el primer escenario será útil para una adecuada selección de parámetros (C, _). La arquitectura propuesta para aplicaciones SVM es la siguiente. Se usará SVM para clasificar diferentes poses robóticas adquiridas de dos fuentes: una construcción manual de las instancias (del brazo robótico y del objeto), y una adquisición automática de imágenes a través de visión artificial con análisis PCA incluido. PCA (Principal Component Analysis) PCA es una técnica orientada a reducir la dimensionalidad y capturar la variación en un conjunto de datos dado. Esto puede ser alcanzado mediante la transformación del conjunto de datos inicial en un nuevo conjunto de variables, los componentes principales (PCs), los cuales no tienen correlación, y ordenarlos de tal manera que los componentes principales retengan la mayor parte de la información presente en el conjunto original de datos [27]. En este caso una imagen bidimensional l(x,y) con N píxeles puede ser visto como un punto o vector en un espacio N-dimensional, llamado imagen espacio. Con esta representación la imagen se convierte en un conjunto con características multidimensionales donde las operaciones tradicionales modificadas y efectuadas en vectores característicos ahora puede usarse para manipular las imágenes directamente. Afortunadamente muchos cálculos escalan con el número de imágenes de muestra más que con la dimensionalidad del espacio muestral, permitiendo la eficiencia aun con imágenes de relativamente alta resolución. El eigenespacio es un subespacio del espacio – imagen conformada por un conjunto de eigenvectores de la matriz de covarianza de las imágenes entrenadas. La matriz de covarianza es construida efectuando análisis PCA, lo cual significa rotar el conjunto de datos de tal manera que sus ejes primarios, los eigenvectores con los modos más altos de variación, yazcan a lo largo de los ejes del espacio coordenado y se movilicen de modo tal que su centro de masa coincida con el origen (figura 1). Los eigenvectores con los eigenvalores asociados más altos representan los modos más altos de variación en el conjunto de datos de las imágenes, y los eigenvectores con los eigenvalores más bajos representen los modos más bajos de variación. La reducción en dimensionalidad en el subespacio puede ser realizada en cualquiera de los casos: lossy o lossless [28]. Cuando se aplica la manera lossy, los eigenvectores son truncados desde la parte anterior o posterior de la matriz de covarianzas. Se asume que estos vectores corresponden a información inútil tal como variaciones en la luminiscencia cuando son truncados desde la parte anterior o ruido cuando son truncados desde la parte posterior. Si ninguno de los vectores base es truncado se tiene la transformación lossless y debería ser posible conseguir una perfecta reconstrucción para los datos de entrenamiento, basados en los vectores característicos comprimidos. La proyección de una imagen en su eigenespacio transformará la imagen en una representación de más baja dimensión, lo cual apunta a mantener las características más importantes del objeto para su análisis y hacer del proceso de comparación, una tarea más sencilla. RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM) Figura 1 - Conjunto de datos original y conjunto de datos, después de realizar PCA. Note que los eigenvectores con los modos más altos de variación están alineados con los ejes coordenados [31]. Existen dos enfoques principales para el reconocimiento de objetos utilizando eigenvalores. En el modelo de apariencia cada imagen en la base de datos es representada como una combinación lineal de eigenvalores. El proceso de reconocimiento es realizado mediante la proyección de una imagen de prueba para ser identificada en el mismo eigenespacio. El vector resultante será un punto en el eigenespacio y la comparación con las imágenes de entrenamiento es realizada normalmente mediante el uso de una medida de distancia entre los puntos en el eigenespacio. Existen diferentes métodos para calcular la distancia, incluyendo medidas simples tales como la distancia de “cuadra” (norma L1), distancia “tablero de ajedrez”, covarianza, correlación, la distancia de Mahalanobis y la distancia Euclideana (norma L2), el cual es el método usado en la presente investigación. La imagen con la distancia más corta a la imagen de prueba puede ser considerada como una coincidencia si la distancia está por debajo de un límite predeterminado. De otra manera la imagen es catalogada como desconocida y podría ser añadida a un futuro conjunto de entrenamiento. El otro esquema de reconocimiento es llamado el modelo discriminativo. Dos conjuntos de datos son obtenidos computando las diferencias en los objetos de análisis. Dos conjuntos de datos de eigenvalores son generados, realizando análisis PCA en cada clase y la relación entre ambos conjuntos de datos es calculada utilizando mediciones de probabilidad Bayesiana. Aunque la performance del reconocimiento del modelo de apariencia es más bajo que la del modelo discriminativo la reducción substancial en complejidad compu- tacional hace de este esquema de reconocimiento muy atractivo y esta es la razón por la que este método es el utilizado en la presente investigación. La investigación PCA nos permite analizar una imagen binaria (entrada de niveles de grises) del acoplamiento efector final – objeto. Las imágenes resultantes son procesadas para computar el vector de eigenvalores de la matriz de píxeles. Definición del Problema El marco desarrollado puede ser utilizado tanto como para caracterización, reconocimiento y evaluación de poses robóticas. La figura 2 nos muestra una vista general de la investigación. Primero en la caracterización del posicionamiento robótico consideramos dos escenarios: • Caracterización manual del acoplamiento efector final – objeto (pose robótica), incluyendo parámetros relevantes del robot y del objeto; así los datos resultantes (o vector de entrada) tienen la siguiente forma V = ( , x, y, J1, J2, J3, J4, J5,), donde tres parámetros vienen del objeto y cinco del brazo robótico. • Autocaracterización de poses robóticas; las imágenes digitales son tomadas del acoplamiento realizado y procesadas en la forma de eigenvectores en una matriz cuadrática de píxeles seleccionados. Luego el análisis se profundiza, ya que las imágenes son procesadas de tres maneras diferentes, antes del análisis PCA: análisis PCA de imágenes originales, análisis PCA de imágenes sin el fondo y análisis PCA del contorno de las imágenes. Figura 2 - Esquema de la Investigación. RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM) 65 Para el reconocimiento de poses robóticas, consideramos dos posibles etiquetas asociadas con datos obtenidos de los dos escenarios: (mala o buena posición) (-1, +1), expresados en representación bipolar para evitar errores en la métrica (distancia de Hamming). Finalmente las salidas del algoritmo SVM nos darán una evaluación acerca de la performance de entrenamiento de ambos casos. Usaremos un software específico (GIST [30]) con ambas clases de datos. J3_[-110, 120] J4_[-90, 90] J5_[-200, 200] En las figuras 4, 5, y 6 se pueden apreciar los parámetros, los cuales representan más aproximadamente las posiciones del brazo robot. Modelo y configuración del experimento • El brazo robótico El robot posee 5 GLs, como se puede apreciar en la figura 3, el efector final consiste en una placa paralela, conformando cinco junturas motorizadas y una tenaza neumática para tareas de sujetado. Figura 4 - Parámetros del brazo robot (junturas). 66 Figura 3 - Brazo robótico. • Caracterización manual de las poses robóticas En el primer escenario consideraremos un vector de entrada multifactorial, donde las características del sistema deben ser incluidas (coordenadas articulares del brazo robótico y también parámetros del objeto representando buenas y malas posiciones de sujetado). La entrada de información al algoritmo SVM es manual y servirá para enseñar al manipulador acerca de buenos y malos posicionamientos del robot. El vector de entrada considerado para entrenamiento y prueba en el algoritmo SVM es el siguiente: V = (x, y, J1, J2, J3, J4, J5) Donde Ji representa a cada una de las coordenadas articulares del brazo robot, _ para la orientación del objeto, y x e y por la posición del objeto en una plataforma horizontal. Se consideran los siguientes rangos para parámetros del vector de entrada: _ = [0º v 9º v 18º v 27º v 36º v 45º] (x, y) = ((270, -80), (270, 0), (270, 80), (350, -80), (350, 0), (350, 80), (430, -80), (430, 0), (430, 80)) J1_[-150, 150] J2_[-60, 120] Figura 5 - Inclinaciones del objeto (0°, 9°, 18°, 27°, 36°, 45°). Figura 6 - Posiciones del objeto (en coordenadas x, y). La tabla 1 muestra algunos ejemplares de los vectores de entrada, se debe notar que el vector de entrada sigue un patrón fijo para usar algoritmos de aprendizaje, los cuales esperarán vectores fijos de entrenamiento y prueba tales como los algoritmos SVM. La selección de parámetros contiene una considerable cantidad de información sobre RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM) la pose robótica, además de información sobre el objeto; el rango seleccionado de parámetros del objeto trata de representar todos los posibles casos. Tabla 1 - Vectores de entrada. Para la generación de datos de entrenamiento, el brazo robot es movido manualmente hacia buenas posiciones de sujetado; entonces es etiquetado (+1, -1); así este método garantiza un preciso aunque laborioso método para generar datos de entrenamiento. Antes de empezar con el paso de entrenamiento y prueba, debemos considerar los parámetros de selección SVM, esto es los valores de C y _ en el kernel RBF. De experiencias previas [5], debemos considerar un rango inicial para C y _ de la siguiente manera _ [0, 8] y C [0, 3300]. Teniendo el conjunto de entrenamiento, se consideran 5oo puntos de datos para entrenamiento y 50 para prueba. El cociente de error se calcula para diferentes valores de _ y C (búsqueda de malla), es entonces cuando los datos son ploteados en tablas para construir un gráfico RSM (Response Surface Machine) (figura 7), el cual ilustra mejor la variación en el cociente de error y la región de mejor performance para ambos parámetros (definiendo error como la medida de performance). Una vez que una región de interés ha sido identificada, se realiza una búsqueda (figura 8), estrechando el rango para _ y C a manera de obtener mejores cocientes de performance. Los valores finales son C = 600 y _ = 0.15, para el caso manual. Una vez que el algoritmo es configurado con estos parámetros, construimos los conjuntos de entrenamiento y pruebas. El conjunto de datos de entrenamiento está compuesto de 500 vectores de entrada, con aproximadamente 1/3 de los casos etiquetados como malas posiciones. El espacio de los vectores de entrada incluye poses representativas de buenas y malas posiciones, considerado también los casos extremos, para evitar malas clasificaciones en el conjunto de datos de prueba, estas poses deben ser consideradas como vectores de soporte. La gama de posibilidades en el conjunto de entrenamiento debe de ser cuidadosamente adquirida en este paso. El conjunto de datos de prueba está compuesto de 50 vectores. Autocaracterización de poses robóticas 67 Figura 9 - Esta figura muestra la posición de la cámara, la cual captura las posiciones del efector final en relación con el objeto; el tamaño de la imagen original adquirida es 424 x 424 píxeles, de la cual una región de interés (ROI), que incluye el acoplamiento analizado, es seleccionada. Figura 7 - Superficie de Respuesta para C_ [2-5, 212] y __[2-15, 23]. Figura 8 - Superficie de Respuesta para C _ [20, 210] y __ [0, 0.70]. El procedimiento considerado es como sigue. La figura 9 ilustra la configuración para este escenario. Una cámara digital es posicionada en una ubicación fija, entonces el objeto es colocado dentro del espacio de trabajo robótico. El análisis PCA es implementado para tres grupos de imágenes digitales: imágenes básicas, imágenes con el fondo extraído (mejorando la varianza en el conjunto de datos), e imágenes con el contorno del acoplamiento efector final – objeto. La inclusión del análisis del contorno radica en trabajos previos [29], lo cual indica que el vector de eigenvalores ha probado ser un muy buen estimador para la parametrización de los contornos. Con estos tres grupos un análisis PCA es realizado y una clasificación SVM es lograda para los tres grupos de imágenes adquiridas. La figura 10 muestra las imágenes analizadas antes de que PCA sea realizado. RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM) A. Grupo 1 (imágenes básicas) Cada toma fue tomada considerando diferentes posiciones para el brazo robótico, y con la misma ubicación de la cámara a manera de eliminar variaciones referentes a este punto (ubicación de la cámara), tales como nivel de iluminación (en lumens) o variaciones inherentes debido a la posición de la cámara. Una imagen en 3D corresponde a 424 x 424 píxeles con una resolución de 8 bits, así cada imagen representa 424 x 424 x 28 niveles de resolución, con un ROI de 255 x 255 (Figura 11). Imágenes de buenas poses. Imágenes de malas poses. B. Grupo 2 (imágenes con el fondo extraído) 68 Imágenes de buenas poses. Imágenes de malas poses. C. Grupo 3 (contorno de imágenes) Figura 11 - ROI seleccionado para adquisición de imágenes. En este caso para extraer información útil del acoplamiento efector final – objeto, de la matriz de píxeles, utilizamos PCA, para extraer y subrayar variaciones sistemáticas en la matriz de datos, la cual nos mostrará a los patrones dominantes y las tendencias principales en los datos. En este caso PCA trata cada uno de los 255 valores como variables; por lo tanto podemos pensar en un espacio dimensional de 255 variables, conteniendo 8 bits por píxel y un eigenvalor por píxel, obteniendo una resolución de 28 x 255 = 65280 niveles de gris por imagen. La figura 12 muestra una representación en 3D de las imágenes analizadas con PCA. PCA es aplicado para eliminar o descartar componentes que no introducen información relevante para la tarea de clasificación, tales como elementos del fondo, iluminación y ruido (objetos extraños, tales como, componentes electrónicos y dispositivos de soporte mecánico); en la búsqueda de un mejoramiento en la tarea de clasificación, con diferentes niveles de filtrado de imagen. La cámara usada para adquisición de imágenes es una cámara con niveles de grises y para aislar los componentes principales han sido usadas superficies oscuras, tanto en el efector final como en el objeto, para utilizar los niveles de grises para efectuar el filtrado, en este caso particular un objeto negro ha sido seleccionado para las pruebas y el efector final ha sido pintado con un marcador negro. Imágenes de buenas poses. Imágenes de malas poses. Figura 10 - Adquisición de imágenes de tres modos diferentes. Figura 12 - Comparación de la caracterización de las imágenes en los tres escenarios seleccionados. Note la mejora en recopilación de la información de la imagen 1 hasta la imagen 3; la información no relevante es excluida en la imagen 2 y en la imagen 3 esta información es subrayada con una delimitación de los contornos. RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM) Los vectores de entrada para el análisis SVM de estos escenarios corresponden a conjuntos de eigenvectores de dimensión 255. Estuvieron disponibles 240 poses robóticas (imágenes) , 192 para el conjunto de entrenamiento y 48 para el conjunto de pruebas. Las etiquetas son consideradas como +1 o -1 dependiendo de la evaluación de las posiciones robóticas. Como puede ser apreciado, la performance SVM – PCA con las imágenes con el fondo extraído y un análisis de contornos nos brinda la mayor performance en la clasificación. Finalmente la performance SVM de los dos escenarios es mostrada en la figura 15. (La primera barra corresponde al primer escenario y los otros tres corresponden al segundo escenario). RESULTADOS Para el primer escenario (manual) después de configurar los parámetros del algoritmo SVM, tratamos de inferir una dependencia en la relación tamaño del conjunto de datos de entrenamiento – Performance del SVM; los resultados (mostrados en la tabla 2 y la figura 13) demuestran un comportamiento estable del algoritmo SVM. Figura 15 - Performance SVM total. Tabla 2 - Cociente de error(%), con un conjunto de datos de prueba de 50 puntos. ERROR RATES 69 Figura 13 - Comparación de la performance SVM considerando diferentes inclinaciones del objeto. Para ambos casos el software SVM usado es GIST [30], la performance obtenida en el escenario 1 es de alrededor 98%. Para el segundo escenario, las performances pueden ser apreciadas en la figura 14. Figura 14 - Performance SVM para los tres casos considerados. CONCLUSIONES Se ha presentado un marco de análisis para la caracterización y evaluación de poses robóticas con métodos de visión artificial y han sido comparadas con una representación manual, llegando a prometedores resultados, a pesar de los cocientes de error más altos obtenidos debido a variaciones en el ambiente y una baja resolución en la cámara utilizada. En el segundo escenario (visión artificial), se han incluido factores ambientales tales como iluminación y ruido. Futuras investigaciones deben trabajar en el preprocesamiento de imágenes y una construcción de bases de datos de imágenes para la detección de patrones robóticos (etiquetado automático). El contorno de las imágenes de todo el brazo robótico y un análisis PCA en poses robóticas con eliminación de ruido podría llevarnos a cocientes de error de alrededor del 100% y podría apli- RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM) carse en sistemas de tiempo real como una implementación de SVM – PCA en sistemas de posicionamiento robótico. Una formulación dinámica de SVM en conjunto con PCA nos lleva a una mejora en la performance de la tarea de clasificación de poses robóticas. REFERENCIAS BIBLIOGRÁFICAS 70 1 B.C. Jiang, C. H. Wu, and C. M. Wu, “Using Neural Networks for Robotic Positioning Control”, Robotics & Computer-Integrated Manufacturing, vol. 10, No. 3, 1993. 2 Torras C. (2002). Robot arm control. In M. A. Arbib (Ed.), The handbook of brain theory and neural networks (2nd ed.). Cambridge, MA: The MIT Press. 3 D. E. Moriarty, and R. Mikkulainen, “Evolving obstacle avoidance behavior in a robot arm”, Proceedings of the fourth international conference on simulation and adaptive behaviors, Cambridge, MA, MIT Press, 1996. 4 C. Skopelitis “Control system for a robotic arm”, MSc. Thesis. School of Cognitive and Computing Sciences, University of Sussex, UK, 2002. 5 P. Allen, T. Jebara, A. Miller, and R. Pelossof, “An SVM Learning Approach to Robotic Grasping”, Proceedings of the 2004 IEEE International Conference on Robotics and Automation, New Orleans, LA, April 2004. 6 B. Rossler, J. Zhang, and A. Knoll, “Visual guided grasping of aggregates using self-valuing learning ” in Proc. of 2002 IEEE Intl. Conf. on Robotics and Automation, 2002, pp. 3912–3917. 7 J. Piater, “Learning visual features to recommend grasp configurations” Univeristy of Massachusetts Amherst, Dept. of Computer Science, Tech. Rep. 2000-40, 2000. 8 I. Kamon, T. Flash, and S. Edelman, “Learning visually guided grasping: a test case in sensorimotor learning, ” IEEE Transactions on Systems, Man and Cybernetics, vol. 28, no. 3, pp. 266–276, May 1998. 9 E. Oztop and M. Arbib, “A biologically inspired learning to grasp system,” in Proc. of the 23rd Annual Intl. Conf. of the IEEE Engineering in Medicine and Biology Society, 2001, pp. 857–860. 10 N. Rezzoug and P. Gorce, “A multistage neural network architecture to learn hand grasping posture” in Proc of the 2002 IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems, 2002, pp. 1705–1710. 11 D. Wheeler, A. Fagg, and R. Grupen, “Learning prospective pick and place behavior” in Proc. of the IEEE/ RSJ Intl. Conf. on Development and Learning, 2002. 12 Wendy S. Yambor (2000), “Analysis of PCA-Based and Fisher Discriminant-Based Image Recognition Algorithms”. 13 J. Ross Beveridge, Kai She and Geof H. Givens (2001), “A Nonparametric Statistical Comparison of Princi- pal Component and Linear Discriminant Subspaces for Face Recognition”. 14 Peter N. Belhumeur and David J. Kriegman (1996), “What is the Set of Images of an Object Under All Possible Lighting Conditions”. 15 Ales Leonardis, Horst Bischof and Roland Ebensberger (1997), “Robust Recognition Using Eigenimages”. 16 C. Burges, A tutorial on support vector machines for pattern recognition. Kluwer Academic Publishers, 1998. 17 C. Cortes and V. Vapnik, “Support vector networks” Machine Learning, vol. 20, pp. 273–297, 1995. 18 A. Smola and B. Sch¨olkopf, “A tutorial on support vector regression,” Royal Holloway College, Univerisity of London, Tech. Rep. NC-TR-98- 030, 1998. 19 M. Salganicoff, L. Ungar, and R. Bajcsy, “Active learning for vision-based robot grasping,” in Recent Advances in Robot Learning, J. Franklin, T. Mitchell, and S. Thrun, Eds. Kluwer, 1996. 20 W. Chu, S. S. Keerthi, and C. J. Ong, “A general formulation for support vector machines”, In Proceedings of the 9th International Conference on Neural Information Processing, pp. 2522-2527, 2002. 21 S. Gunn, “Support Vector Machines for Classification and Regression”, University of Southampton, 1998. 22 B. Boser, I. Guyon, and V. N. Vapnik, “A training algorithm for optimal margin classifier”, fifth Annual Workshop on Computational Learning Theory, pp. 144-152, 1992. 23 W. Chu, S. S. Keerthi, and C. J. Ong, “A new Bayesian design method for support vector classification”, In Special session on support vector machines of the 9th International Conference on Neural Information Processing, pp. 888-892, 2002. 24 C. W. Hsu, C. C. Chang and C. J Lin “A Practical Guide to Support Vector Classification”, Department of Computer Science and Information Engineering, National Taiwan University. 25 S. Keerthi, and Lin, C. J. “Asymptotic behaviors of support vector machines with Gaussian kernel. Neural Computation” vol. 15 (7), pp. 1667–1689, 2003. 26 C. J. Lin, “On the convergence of the decomposition method for support vector machines”, IEEE Transactions of Neural Networks, vol. 12, pp.1288-1298, 2001. 27 B.S. Manjunath, S. Chandrasekaran, Y.F. Wang (1994), “Learning in Eigenspace: Theory and Application” 28 E. Osuna, “Applying SVMs to face detection”, IEEE intelligent systems, pp. 23-26, 1998. 29 M. Pittore, C. Basso and A. Verri. (1999) “Representing and Recognizing Visual Dynamic Events with Support Vector Machines” In Proc. of International Conference on Image Analysis and Processing, pp. 18–25, Venice, Italy. IEEE Computer Society Press. RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM) 30GIST SVM Software, developed by William Stafford Noble in the Department of Genome Sciences and Computer Science at the University of Washington and Paul Pavlidis in the Genome Center at Columbia University (http://svm.sdsc.edu/svm-intro.html). 31 Nes, Atle (2003) “Hybrid Systems for Face Recognition,” Master of Science Graduate Thesis, Norwegian University of Science and Technology. 71 RECONOCIMIENTO Y CLASIFICACIÓN DE POSES ROBÓTICAS UTILIZANDO PRINCIPAL COMPONENT ANALYSIS (PCA) Y SUPPORT VECTOR MACHINES (SVM)