Seguimiento visual por imitación INAOE Curso: “Robótica Probabilística” Dr. Luis Enrique Sucar Succar Apolinar Ramírez S Julio, 2007
Introducción El aprendizaje de tareas por imitación, facilitará la programación de los robots por usuarios finales. Problema a Resolver: - seguimiento de la trayectoria de una persona frente a un robot móvil dotado de una cámara.
CONTENIDO 1. Algoritmo atencional 2. Seguimiento 3. Mapeo humano-robot 4. Aprendizaje 5. RESULTADOS Y CONCLUSIONES
Algoritmo atencional ADABOOST: AdaBoost genera un conjunto secuencial de clasificadores AdaBoost puede emplearse como un sistema ATENCIONAL por su característica de identificar datos fuera de orden (outliers).
CONTRIBUCIONES 1) Representación de imágenes: “imagen integral” 2) Algoritmo basado en AdaBoost para la selección de características. 3) Método para combinar clasificadores en cascada para descartar el fondo del objeto a identificar. Un algoritmo aprox. 15 veces más rápido.
Suma - Características empleadas características => reconocimiento 24
Imagen “integral” 1 = A 2= A+B 3= A+C 4= A+B+C+D D= (2+3)
Base de Datos 324x288 = pixs detector: 28x28 = 576 pixs / 576 = 162 zonas 162 zonas x 280 = características
Algoritmo en base AdaBoost Freund & Schapire, 1995 Selección de T características T=10
Base de Datos La base de datos contiene ejemplos positivos y negativos
Clasificación por capas ACEPTAR RECHAZAR
Ejemplo./face –cascade=”haarcascade_frontalface_alt.xml”./mascota1
Seguimiento CamShift = Continuosly Adaptive Mean Shift, Bradsky, 1998 Imagen color => histograma => backprojection image (distribución de probabilidad del histograma) la moda de región de búsqueda, actualizándose
Estableciendo histograma
Seguimiento Trayectoria, w0w0 w1w1 w2w2 w3w3 w4w4 W(x,y,deltax, deltay)
Modelo cinemático del robot Ecuaciones de movimiento donde v f = velocidad forward y v θ = velocidad angular
Modelo cinemático del usuario Ecuaciones de movimiento donde v x = velocidad en direción frente al robot y v y = velocidad en dirección perpendicular v_cte = 3 Kms/hr
Políticas Movimientos posibles en términos de primitivas; SetSpeed(vel_traslación, vel_rotación) 1) “gira y avanza” 2) “no moverse” Formalmente, (x,t,α)= u x= estado t= tiempo α= parámetros u= acción
Resultados Se consideraron valores aproximados para el mapeo de coordenadas de la imagen a coordenadas reales (el radio del rostro con un valor fijo de 4.5” a una distancia de un metro) Camshift no tiene un buen rendimiento en entornos de color similar a la camisa de la persona. Se pierde. AdaBoost se comporta de manera aceptable.
Conclusiones Se requiere emplear técnicas de fusión para el seguimiento. Además del color, emplear el movimiento u otra característica que complemente la información Las primitivas del Pioneer habilitadas en Player/Stage son muy simples para una tarea más compleja. Las librerías de OpenCV no tienen algunas características deseables en una librería gráfica, por ejemplo, “clipping” de ventana.
Referencias Paul Viola, Michael Jones; “Rapid object detection using a Boosted Cascade of Simple Features”; 2001 Avilés A. H. “Reconocimiento visual de ademanes aplicado a robots móviles”, Tesis doctoral, 2006 Manuales de OpenCV, Player/Stage
Gracias por su atención