martes, 3 de abril de 2012

Autocalibrado

Un comparador interno del PIC32 es el encargado de determinar si un píxel será blanco o negro en la imagen capturada. Para fijar el umbral de dicho comparador, utilizamos un conversor digital/analógico externo de 8 bit controlado por el bus I2C, modelo MCP4706. La elección del DAC vino únicamente determinada por su bajo coste, ya que para la aplicación no necesitamos ninguna característica especial. Para fijar la tensión de referencia positiva del DAC utilizamos un potenciómetro ajustable manualmente. De esta forma, podremos ajustar la tensión de referencia al nivel de tensión máximo de nuestra señal de vídeo, disponiendo de un umbral ajustable con 256 niveles distribuidos uniformemente en casi todo el rango dinámico de la parte visible de la señal de vídeo.

Con la tensión de referencia convenientemente ajustada el PIC podrá variar el umbral de su propio comparador en 256 niveles.

A la hora de capturar vídeo imponemos que haya un contraste entre el color de la piel de la mano y el color del fondo, y que el fondo sea lo más uniforme posible, o que al menos todo el fondo mantenga un nivel aceptable de contraste, sin que haya claros en caso de fondo oscuro o sombras oscuras en caso de fondo claro.

Para capturar correctamente la mano primero hay que calibrar el umbral del comparador, para que solo la mano aparezca como píxeles activos dentro de la imagen y el fondo no sea tomado en consideración. El filtro de mediana relaja la tolerancia del umbral, al eliminar eliminar píxeles sueltos o pequeños grupos de píxeles que puedan tomar un color similar al de la mano de forma aleatoria dentro de la imagen, o a causa de pequeñas variaciones en la iluminación. No obstante sigue siendo crucial elegir adecuadamente el umbral, y para ello hemos creado un sistema de autocalibrado.

Para realizar el autocalibrado, se comienza colocando el umbral en su nivel más bajo, se captura un forograma en el que únicamente aparezca el fondo de la imagen y se cuenta el número de píxeles activos (a 1) que contenga. Si este número es superior a un umbral, que hemos fijado en 25, se incrementa el umbral y se repite la operación hasta que finalmente prácticamente todos los píxeles del fondo se consideren como inactivos, momento en que el umbral se deja fijo. También cabe la posibilidad de incrementar un poco el umbral más allá del valor calculado, para que el sistema sea más robusto frente a las pequeñas variaciones de iluminación. De momento no nos ha hecho falta en las condiciones en que hemos probado el sistema.

La orden de calibrado se manda a través de dos botones incluidos en el hardware. Uno de ellos es para realizar la calibración con fondo oscuro y mano clara, y otro para mano oscura y fondo claro. El sistema de calibrado funciona de forma que en ambos casos las imagenes capturadas son totalmente equivalentes, ya que en caso de mano oscura y fondo claro invertimos la salida del comparador y fijamos el umbral en sentido contrario, comenzando por el nivel de tensión más alto y disminuyendolo hasta que el fondo quede eliminado.

No hay comentarios:

Publicar un comentario