Tabla de Contenidos
Ver Artículo en Formato PDF
Números Históricos
Revista Ingeniería y Región No. 8 Año 2011
Facultad de Ingeniería Universidad Surcolombiana

Procesamiento de Video Embebido Usando
el Microcontrolador ATXMEGA32A4

Embedded Video Processing Using
ATXMEGA32A4 Microcontroller

Vladimir Mosquera Cerquera1, Miguel Ricardo Rivera Lizcano2 y Eduardo Roa Daza3

Resumen

Este artículo presenta el diseño e implementación de un sistema de procesamiento de video embebido usando el microcontrolador ATXMEGA32A4. Para la captura del video, el diseño presentado usa una cámara de video analógica similar a las cámaras de seguridad con formato de video NTSC y salida RCA. Usando el dispositivo decodificador de video TVP5146M2 y el microcontrolador ATXMEGA32A4, se digitaliza la señal de video analógica y se procesa para obtener campos de imagen y almacenarlos en una memoria SRAM externa. Finalmente, se realiza un procesamiento de imágenes para la detección de movimiento basados en un algoritmo que compara los campos de imagen almacenados en la memoria SRAM.

Palabras Clave: Procesamiento de Video Embebido, Procesamiento de Imágenes Embebido, Microcontrolador, Cámara de Vìdeo Analógica.

Abstract

This paper shows the design and implementation of an embedded video processing system using ATXMEGA32A4 microcontroller. In order to capture the video, the presented design uses an analogic video camera similar to the security video camera with NTSC video format and RCA output. Using the TVP5146M2 video decoder and ATXMEGA32A4 microcontroller, the analogic video signal is digitalized and processed in order to obtain image fields and store them in a SRAM external memory, Finally, is executed an images processing in order to detects motion based in one algorithm to compare image fields stored them in the SRAM memory.

Keywords: Embedded Video processing, Embedded Image processing, Microcontroller, analogic video camera.

1. Introducción

El procesamiento de imágenes es una herramienta eficiente para diversas aplicaciones en automatización, robótica, procesos industriales y de calidad. La ingeniería ha realizado diversas investigaciones en el procesamiento de imágenes que parte de conceptos matemáticos como la Transformada de Fourier, logrando métodos que van desde aplicaciones asistidas por ordenador hasta procesamientos a través de dispositivos FPGAs y microcontroladores.

La herramienta más conocida para el procesamiento de imágenes en software es MATLAB, convirtiéndose en la base del aprendizaje en el procesamiento de imágenes para muchas universidades; sin embargo, el procesamiento de imágenes embebido constituye un avance tecnológico importante a nivel mundial brindando la oportunidad de un desarrollo en hardware con mayor eficiencia, bajo consumo y mayor portabilidad.

A nivel mundial, se han realizado varías investigaciones importantes, una de ellas en Suecia a nivel de doctorado en la Universidad de Lund (Hedberg, 2008), se realizó un procesamiento de imágenes en tiempo real usando FPGA. Otra investigación importante se realizó en España en la Universidad de Sevilla (Cortés et. al. 2010) con la colaboración de la empresa ACISA, donde se implemento un sistema embebido de procesamiento de video para la realización de prácticas docentes, basados en dispositivos DSPs de altas prestaciones de la familia Texas Instruments TMS320DM6000 y la familia FreescaleDragonball. En Argentina, en la Universidad Tecnológica Nacional Regional Córdoba(Gonzalez et. al. 2011)se usó un microcontrolador EP9302 de arquitectura ARM9 de 32 bit, una FPGA Xilinx Spartan XSA3SE500 y un sensor de imágenes con su óptica correspondiente, logrando un sistema completo para el procesamiento de imágenes.

La mayor parte de las investigaciones a nivel nacional se han orientado hacia un procesamiento de imágenes asistido por computador, en su gran mayoría con el software matemático MATLAB: sin embargo se han realizado interesantes investigaciones en procesamiento de imágenes embebido, dentro de las cuales se puede resaltar la realizada en la Universidad Tecnológica de Pereira (González, 2010), en donde se usa una FPGA para el análisis de imágenes a través de la transformada Wavelet con el fin de lograr autenticación de iris humanos en sistemas de seguridad, basándose en el algoritmo libre desarrollado por Masck en MATLAB. Otro aporte importante fue el realizado por la investigación de la Universidad Nacional de Manizales (Ospina y Urrea, 2002) usando la transformada Hough para la detección de líneas en un sistema de visión, usando una cámara digital QuickCam en escala de grises de puerto paralelo y 4 bits de resolución, el microcontrolador MCS-51 y un ordenador para configurar algunos parámetros y visualizar algunos procesos.

En la Universidad Surcolombiana se han realizado investigaciones de procesamiento de imágenes asistidas por computador usando el software matemático MATLAB, sin embargo hasta el momento no se ha realizado ninguna investigación de procesamiento de imágenes embebido concluyendo que este proyecto es pionero en el procesamiento de video e imágenes embebido. Ademas no se han usado microcontroladores de la empresa ATMEL ya que los desarrollos de investigaciones con microcontroladores se han limitado al uso de microcontroladores de la empresa Microchip, mejor conocidos como PIC, afirmando que este proyecto es pionero no solo en el procesamiento embebido de imágenes, sino también en el uso de microcontroladores ATMEL en la Universidad Surcolombiana.

2. Metodología

La Figura 1, muestra los bloques funcionales y el recorrido que realiza la señal dentro del sistema de procesamiento de imágenes embebido.


Figura 1. Diagrama a Bloques del sistema de procesamiento de imagenes embebido.

2.1. Adquisición y digitalización de la señal de video analógica

Se usa la cámara de video analógica CMOS/CCD CL-652 con la salida RCA y formato de video NTSC similar a las cámaras de seguridad usadas comúnmente en algunas empresas, para la adquisición de imágenes a procesar. La señal de video analógica es digitalizada por el bloque interfaz A/D implementado a partir del dispositivo decodificador de video TVP5146M2 (Texas, 2011) de Texas Instruments.

El dispositivo TVP5146M2 requiere una configuración para su funcionamiento específico, y esta configuración se lleva a cabo a través de la interfaz I2C, por lo cual se realiza una rutina de configuración desde el microcontrolador ATXMEGA32A4. El diagrama de flujo de la configuración se muestra en la Figura 2.

El microcontrolador ATXMEGA32A4, tiene dos interfaces TWI equivalentes a I2C, por medio de una de ellas se configura el funcionamiento del dispositivo TVP5146M2.


Figura 2. Diagrama de flujo configuración TVP5146M2 a través de la interfaz I2C.

La rutina de configuración del dispositivo TVP5146M2 modifica algunos registros internos para habilitar las señales de sincronismo horizontal HS, sincronismo vertical VS, identificador de campo par/impar FID, y se configura la señal de salida para que solo se muestre la señal digital de luminancia Y con una frecuencia de 13,5 MHz, debido a que el color no es necesario para esta aplicación. En la Figura 3a) se muestra una aproximación de las señales sincronismo vertical VS y en la Figura 3b) una aproximación del identificador de campo par/impar FID.


Figura 3. Aproximación de la señal de sincronismo vertical VS y la señal identificador de campo par/impar FID

2.2. Microcontrolador ATXMEGA32A4

El microcontrolador ATXMEGA32A4 es el encargado del procesamiento de imagenes de video, sin embargo antes de realizar este proceso es necesario reducir la resolucion de las imágenes para efectos de su posterior almacenamiento en una memoria externa, para eso se usa un registro FLIP-FLOP tipo D (Fairchild, 2000) y se usa un reloj con una frecuencia 5 veces menor a la de la señal digital de luminancia para poder reducir el número de muestras por imagen, y con esto el espacio que ocupará en memoria. En la Figura 4 se muestra el diagrama a bloques de la adecuación para reducir la resolución de la señal de luminancia Y.


Figura 4. Adecuación de la señal de luminancia Y para el procesamiento de imágenes

La señal de video se forma por cuadros de imagen y cada cuadro de imagen tiene dos cuadros de imagen, debido que esta aplicación no requiere una resolución alta, se almacenan solamente los campos impares de imagen como se muestra en la Figura 5. Para seleccionar solo los campos impares se usa la señal FID proveniente del dispositivo TVP5146M2, esta señal es un nivel alto cuando el campo es impar y un nivel bajo cuando el campo es par. Se sincroniza una rutina de almacenamiento con la señal FID para almacenar en la memoria SRAM únicamente los campos impares, y también el direccionamiento es sincronizado con la señal del reloj del FLIP-FLOP para asegurar la validez de los datos almacenados. El diagrama de flujo de la rutina de almacenamiento de campo impar se muestra en la Figura 6.


Figura 5. Diagrama a bloques del procesamiento de imágenes de video.


Figura 6. Diagrama de flujo rutina de almacenamiento de campo impar

Finalmente para la detección de movimiento se restan los dos campos de imagen almacenados pixel a pixel. Se determina un umbral de movimiento, el cual será el punto de partida para detectar la existencia de movimiento en la escena, si el residuo de la diferencia de los campos de imagen supera el umbral de movimiento se concluye que en la escena hay movimiento, en el caso contrario, es decir, cuando el residuo de la diferencia de campos de imagen no supere el valor del umbral de movimiento se concluye que no hay movimiento en la escena. En la Figura 7 se muestra el diagrama de flujo de la rutina de detección de movimiento.


Figura 7. Diagrama de flujo rutina de detección de movimiento.

Este proyecto puede ser usado para diversas aplicaciones como por ejemplo controlar un sistema de iluminción inteligente que detecte el movimiento de la escena para generar la iluminación adecuada y realizar un consumo racional de energía.

Resultados

Las figuras que se muestran a continuación se tomaron de osciloscopios de la Universidad Surcolombiana. En la Figura 8, se muestra la señal analógica de video en color oscuro y la señal digital del bit de mayor significancia en color claro, debido a que el dispositivo TVP5146M2 genera una señal digital de 8 bits.


Figura 8. Señal de video analógica y señal digital del bit de mayor significancia.

En la Figura 9, se muestra la señal de sincronismo vertical VS en color claro y la señal de video analógica en color oscuro. Se observa que al finalizar un campo de imagen hay un nivel alto en la señal de sincronismo vertical hasta que esté listo el siguiente campo de imagen.


Figura 9. Señal de sincronismo vertical VS y señal de video analógica.

En la Figura 10, se muestra la señal identificador de campo par/impar FID de color claro, y la señal de sincronismo vertical VS en color oscuro. Se observa como la señal FID es un nivel alto para el campo de imagen impar, y un nivel bajo para el campo de imagen par.


Figura 10. Señal identificador de campo par/impar y señal de sincronismo vertical.

4. Conclusiones

La interfaz analógica digital implementada en este proyeclo usó el dispositivo TVP5146M2 el cual se caracterizó por tener alta sensibilidad a la carga estática, esto último concluido a partir del daño de dos de estos dispositivos generando cortos circuitos en la alimentación de 1.8 voltios. Por tal motivo, se determinó el uso de manillas antiestáticas o en su defecto el uso exclusivo de pinzas en su manipulación mientas se encuentra alimenlado el circuito.

Se debe tener en cuenta que al programar TVP5146M2 se debe enviar un pulso de reset antes de enviar los datos desde el microcontrolador que lo configura, para que de esta manera la programación I2C sea válida.

Para efectos de comparación de imágenes no es necesaria la información de coloren las señales de video y no es necesaria una alta resolución, por tal motivo la interfaz analógica digital del TVP5146M2 genera en su salida la señal de luimnancia de video solamente a 13,5 MHz y posteriormente esta señal es modificada por un registro que trabaja a una frecuencia menor reduciendo la frecuencia de los datos, la resolución y con esto el tamaño para poder almacenar los datos de la imagen en una memoria SRAM de 128Kbytes. También Se seleccionan campos impares de video reduciendo la calidnd de la imagen y adecuándola al propósito especifico del proyecto, teniendo con eso una programación eficiente y demostrando Las habilidades aprendidas en la programación de los microcontroladores ATMEL

La señal indicador de campo par/impar FID sirve como señal de control para los procesos de escritura en la memoria en los campos impares de video, por eso es muy importante establecer sincronización con esta señal, de la misma manera también es importante sincronizarse con los datos que provienen del registro pura asegurarse que cada dato que llegue a la memoria sea un dato valido.

El umbral de detección de movimiento depende de algunos factores como por ejemplo el tipo de cámara de video que se está usando, la distancia y ángulo donde se ubica la cámara entre otros, por eso y debido a que no hay precedentes de procesamiento de imágenes embebido se optó por establecer el umbral por medio del método de ensayo y error, y realizar varias pruebas para ello.

5. Referencias Bibliográficas

  1. Lund University, 2008. Image Processing Architectures for Binary Morphology and Labeling. Tesis de doctorado. Consultado el 10 septiembre 2011. www.eit.lth.se/fileadmin/eit/home/scd.vow/theses/Thesis-Hugo.pdf [Link]
  2. Universidad de Sevilla, 2010. Sistema Embebido de Procesamiento de Video para la Realización de Prácticas Docentes, Trabajo de Investigación. Consultado el 22 de sepliembre de 2011. www.euitt.upm.es/taee/Congresosv2/2006/papers/2006S3D02.pdf [Link]
  3. Universidad Tecnológica Nacional Regional Córdoba, 2011. Single Board Computer Basada en ARM9 Y FPGA para Procesamiento de Imágenes Digitales. Consultado el 1 de octubre de 2011. www.sase.com.ar/2011/files/2011/02/4-Single_board_computer_basada_en_ARM9_y_FPGA_para_el_procesamiento_de_Imagenes_Digitales.pdf [Link]
  4. Universidad Tecnológica de Pereira, 2010. Aplicación de un sistema embebido en una FPGA para el análisis de imágenes utilizando la transformada Wavelet con el fin de lograr la autenticación del iris humano en sistemas de seguridad. Consultado el 3 de octubre de 2011. www.repositorio.utp.edu.co/tesisdigi tales/texto/0053682G643.pdf [link]
  5. Universidad Nacional de Colombia, 2002. Implementación de la transformada de HOUGH para la detección de líneas para un sistema de visión de bajo nivel. Consultado el 15 octubre de 2011. www.pci.unalmzl.edu.co/Tesis/emmenuejuanpablo.pdf [Link]
  6. Texas Instrument, 2011. TVP5146M2 Datasheet Digital Video Decoder. www.ti.com/lit/ds/symlink/tvp5146m2.pdf [Link]