Reconocimiento de patrones usando OpenCV

ntento detectar un patrón en un objeto en un campo verde, compuesto por tres colores (dos marcadores rosados a los lados y uno azul en el centro) dispuestos como un semáforo.

l principio, intenté convertir las imágenes de la cámara web al espacio de color hsv y aislar el color usando cvInRangeS, pero eso se volvió problemático a medida que la luz cambia en la habitación durante el día o recibo falsos positivos o pierdo la noción de los objetos.

Luego probé SURF modificando find_obj.cpp, el problema con eso fue que opencv solo puede detectar 2 puntos de surf en mi marcador, lo que no es suficiente para localizarlo desde el código, parece que necesito al menos 4, intenté jugar con parámetros de surf pero eso no cambió nada.

También mientras buscaba en Google me encontré con esto,

http: //wiki.elphel.com/index.php? title = OpenCV_Tennis_balls_recognizing_tutorial & redirect = no

que dice que también puedo usar el aprendizaje automático para elegir la gama de colores que me interesa, pero no pude encontrar ninguna información sobre cómo hacerlo.

Mi pregunta es, ¿hay algo en OpenCV que me permita detectar el marcador?

EDIT: Otra pregunta acerca de intentar entrenar el cabello, mi fondo siempre será del mismo color y la misma superficie usando el mismo marcador para el objeto, ¿puedo entrenar un clasificador con 20 imágenes positivas o 20 negativas o todavía necesito miles de imágenes para obtenerlo? ¿reconocer

Respuestas a la pregunta(1)

Su respuesta a la pregunta