Explicación del seguimiento de color#
¿Qué es rastrear un color y cómo lo hace la CMUcam4?#
El seguimiento de color es la capacidad de tomar una imagen, aislar un color particular y extraer información sobre la ubicación de una región de esa imagen que contiene solo ese color. Como ejemplo, suponga que se le da una fotografía que contiene una pelota roja sobre un camino de tierra. Si alguien le pidiera que dibujara una caja alrededor de todo lo que fuera de color rojo en la imagen, dibujaría con bastante facilidad un rectángulo alrededor de la pelota. Esta es la idea básica detrás del seguimiento de color. No necesitaba saber que el objeto era una pelota. Solo necesitaba tener un concepto del color rojo para aislar el objeto en la imagen. A continuación, abordaremos brevemente cómo la CMUcam4 utiliza realmente la información de una imagen de cámara para realizar el seguimiento de color.
Para especificar un color, necesita definir un valor mínimo y máximo permitido para tres canales de color. Cada color único está representado por un valor de rojo, verde y azul que indica cuánto de cada canal se mezcla en el color único. La parte complicada de especificar un color es que necesita definir un rango de valores permitidos para los tres canales de color. Dado que la luz no es perfectamente uniforme y el color de un objeto no es perfectamente uniforme, necesita adaptarse a estas variaciones. Sin embargo, no querrá relajar demasiado estos límites, o se aceptarán muchos colores no deseados. Dado que, en el caso de la CMUcam4, cada canal de color se convierte en un número entre 0 y 255, puede delimitar cada canal con dos números, un límite superior y uno inferior. Si tiene dos límites para cada uno de los tres canales, esto significa que pueden usarse seis valores para restringir todo el espacio de color que desea rastrear. Si imagina los colores representados por un cubo donde cada lado es un canal de color diferente (rojo, verde y azul), entonces los seis valores usados para seleccionar su color dibujarían una caja tridimensional dentro de ese cubo que define su conjunto deseado de colores.
Una vez que tiene un límite para el color que desea rastrear, la CMUcam4 toma estos límites y procesa la imagen. Hay muchas maneras de rastrear colores en una imagen que pueden ser bastante complejas. La CMUcam4 usa un sencillo algoritmo de una sola pasada que procesa cada nuevo fotograma de imagen de la cámara de forma independiente. Comienza en la parte superior izquierda de la imagen y examina secuencialmente cada píxel fila por fila. Si el píxel que está inspeccionando cae dentro del rango de colores que el usuario especificó, marca ese píxel como rastreado. También examina la posición del píxel rastreado actual para ver si es la posición más alta, más baja, más a la izquierda o más a la derecha de todos los píxeles rastreados encontrados hasta ahora en la imagen. Si encuentra que el píxel está fuera del cuadro delimitador actual de la región rastreada, agranda el cuadro delimitador para contener este nuevo píxel. Debido a que la ubicación de incluso un solo píxel rastreado puede cambiar el cuadro delimitador, el cuadro delimitador a veces puede fluctuar bastante de fotograma a fotograma. El filtrado de ruido (véase el siguiente párrafo) puede usarse para reducir parte de esa fluctuación. La única otra pieza importante de información que se almacena es una suma de las coordenadas horizontales y verticales de los píxeles rastreados. Al final de la imagen, la CMUcam4 toma la suma horizontal y la suma vertical de los píxeles rastreados y divide cada una por el número total de píxeles rastreados y obtiene un valor que muestra dónde se encuentra el centro del objeto rastreado. Debido a que cada píxel rastreado solo contribuye una pequeña parte a las sumas horizontal y vertical finales, el centro (a menudo llamado centroide) de los píxeles rastreados suele ser una medición mucho más estable que el cuadro delimitador. Una vez que se han comprobado todos los píxeles de la imagen, el número total de píxeles rastreados también puede usarse junto con el área del cuadro delimitador para calcular la confianza y el número de píxeles del objeto rastreado.
El filtrado de ruido nos permite hacer más grandes los rangos de seguimiento de color para poder acomodar mayores variaciones en los valores de los píxeles de la imagen sin causar que se rastreen otras variaciones aleatorias de la imagen. La idea detrás del filtrado de ruido es que solo queremos considerar que un píxel es del color rastreado si forma parte de un grupo de píxeles que están dentro de los límites de seguimiento de color. En la CMUcam4 implementamos esto de una manera que solo requiere una única pasada sobre la imagen. Mientras procesa los píxeles de una imagen, la CMUcam4 mantiene un contador que lleva la cuenta de cuántos píxeles secuenciales de la fila actual, antes del píxel actual, estaban dentro de los límites del color rastreado. Si ese valor está por encima del valor del filtro de ruido, entonces el píxel actual se marca como un píxel rastreado.
¿Qué es un histograma y para qué sirve?#
Un histograma es un tipo de gráfico que muestra la frecuencia y la distribución de los datos. En el caso de la CMUcam4, el histograma muestra la frecuencia y la distribución de los valores de color encontrados en una imagen. Cada barra representa un rango de valores de color para un canal específico. La CMUcam4 puede dividir los posibles valores de color de 0 a 255 en 1, 2, 4, 8, 16, 32 y 64 casillas diferentes. Cada casilla contiene el número de píxeles encontrados en la imagen que caen dentro de ciertos límites de color. Así, un valor grande en una casilla particular significa que se encontraron muchos de esos colores en la imagen. Cada histograma solo representa un canal de color seleccionado.
Los histogramas son una forma de abstraer el contenido de una imagen. Tienen muchos usos, como el reconocimiento primitivo de objetos, la umbralización o el balance de color. Son particularmente útiles para distinguir entre diferentes texturas. Intente apuntar la CMUcam4 con la ganancia automática desactivada hacia dos superficies con texturas diferentes y observe la diferencia en sus distribuciones de color. Este efecto puede usarse para distinguir superficies de suelo o detectar obstáculos.