SciELO - Scientific Electronic Library Online

 
vol.16 issue33MPLS and ATM as backbone technologies to carry videoconferencingSistema de gestión de conocimiento para apoyar el trabajo de grupos de investigación author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


Tecnura

Print version ISSN 0123-921X

Tecnura vol.16 no.33 Bogotá July/Sept. 2012

 

Diseño e implementación de un sistema de vigía perimetral

Implementation and design of perimetric view system

Henry Moreno Mosquera1

1 Ingeniero Electrónico, ingeniero de Sistemas, magister en Ingeniería. Docente de la Universidad Nacional de Colombia. Bogotá, Colombia. Contacto: hmorenom@unal.edu.co

Fecha de recepción: 29 de agosto de 2011 Fecha de aceptación: 14 de febrero de 2012


Resumen

En términos generales un vigía perimetral es un sistema de monitoreo de un ambiente que tiene un espacio o área extensa difícil capturar a través de una cámara o dispositivo sensor en una sola acción. Además, es capaz de representar, reconocer y analizar una porción de un terreno, procesar toda la información del área para obtener datos y resultados de manera autónoma. En el presente artículo se expone un modelo implementado de un sistema de monitoreo para un escenario pequeño a través del uso de una herramienta computacional de hardware y software, el cual permite representar en una pantalla de un computador la imagen de dicha superficie haciendo un barrido de 360°.

Palabras Clave: calibración, imagen digital, máscara de imagen, procesamiento de imágenes.


Abstract

In general terms, a perimetric viewer is a system capable of representing, recognizing, and analyzing a piece of land, as well as processing all the information of the area to obtain data and results in an autonomous way. This article presents an implemented model of such a system, which is in the first stage of development. The system can represent a 360o image of an entire area on a computer screen.

Key words: calibration, digital image, image mask, image processing.


1. Introducción

Un vigía perimetral es fundamentalmente un sistema digital diseñado para explorar superficies, cuya principal característica es la posibilidad de realizar una inspección completa de 360o sobre toda el área, lo que brinda un panorama completo del terreno que se está examinando. La mayor aplicabilidad de este dispositivo se encuentra en el campo de la seguridad, ya que con este método es posible realizar inspecciones completas de espacios extensos de forma autónoma. Esta exploración es realizada utilizando una cámara de video y un dispositivo de procesamiento digital de imágenes, el cual se encarga de analizar y procesar la información, para sensar movimientos en el terreno, realizar el monitoreo de una zona específica, entre otros. Dicha adquisición de la señal se puede hacer con cámaras de video o con sensores de temperatura.

En este desarrollo se establece como objetivo final la obtención de una imagen digital que representa todo un terreno, a partir de varias imágenes adquiridas con una cámara que realiza una rotación de 360o sobre su eje y está ubicada a una altura específica. Todo el procesamiento digital es realizado por un computador y el resultado (la imagen total) es mostrado en la pantalla.

Entre las múltiples aplicaciones que se vienen desarrollando en la actualidad, soportadas en esta tecnología, se destacan: la vigilancia de terrenos grandes, la detección de movimiento de personas alrededor de un vehículo, las cuales anteriormente se hacían a través del uso de sistemas de radar [1], entre otras.

Este artículo está dividido en tres secciones. En la primera sección se hace una explicación de las principales técnicas de procesamiento de imágenes utilizadas en la ejecución del proyecto y además se describen las características básicas del software y hardware empleados. Posteriormente, se presenta el desarrollo experimental, donde se describe la metodología implementada; y por último, se muestran los resultados y las conclusiones obtenidas.

El presente artículo hace parte de un proyecto de investigación avalado por la Escuela Colombiana de Ingeniería, cuya financiación también estuvo a cargo de la misma institución. El proyecto de investigación realizado fue: Laboratorio de Procesamiento e Imágenes y Video usando DSP.

2. MARCO TEÓRICO

El procesamiento digital de imágenes consiste, básicamente, en el manejo y la manipulación de las imágenes por medio de un computador o cualquier dispositivo digital. Los objetivos que tiene el uso de esta tecnología varían de acuerdo a la aplicación que se vaya a implementar. Uno de los aspectos más importantes en el procesamiento digital de imágenes es la obtención de información a partir de una imagen, para posteriormente tomar algún tipo de decisiones de forma autónoma. Otra aplicación, es el mejoramiento de la apariencia visual de las imágenes con el fin de mejorar su interpretación.

Para la ejecución de estos procedimientos existe un gran número de técnicas propias del procesamiento digital de imágenes. A continuación se describen algunas de las herramientas principales que fueron utilizadas en la elaboración de este proyecto.

2.1 Máscaras

Una máscara es una imagen binaria que tiene un tamaño menor o igual a la imagen principal sobre la cual se va a trabajar. Es utilizada principalmente para aislar partes determinadas de una imagen a través de operaciones booleanas, en circunstancias donde es necesario realizar el procesamiento únicamente dentro de una región particular. El valor de los píxeles en la máscara es el que determina cuáles puntos de la imagen principal van a ser procesados. Por ejemplo, si un píxel tiene un valor diferente de cero, al aplicar la máscara, el punto correspondiente en la imagen principal va a ser procesado y ocurre lo contrario cuando el valor del punto de imagen en la máscara es cero.

En la siguiente figura se puede observar la forma en que una máscara afecta a la imagen que se va procesar. La Fig. 1 muestra una foto, en la cual se le aplicó una máscara circular. El área encerrada por la máscara fue procesada a través de un algoritmo de detección de contornos [2], lo cual se puede observar dentro del círculo.

El uso de este recurso permite, entre otras cosas, poder tener un área determinada de una imagen, sin necesidad de tener que procesar toda la imagen, lo cual puede convertirse en un costo computacional, especialmente si se tiene un sistema de procesamiento de video en tiempo real.

2.2 Calibración

La calibración es un proceso que se utiliza para convertir las coordenadas de los puntos de imagen (pixeles) a coordenadas puntuales del mundo real. Se recurre a este procedimiento cuando se tienen principalmente errores de perspectiva y distorsión. Un error de perspectiva ocurre cuando el eje de la cámara no es perpendicular al objeto que se está examinando. En la Fig. 2 se muestra cómo el ángulo de inclinación de la cámara afecta a la imagen que se está adquiriendo. La figura 2a indica la posición ideal de la cámara, mientras que en la figura 2b se presenta una imagen tomada con un cierto ángulo donde se observa que la dimensión del objeto cambia, lo que depende de la distancia a la cual se encuentre la cámara.

Por otra parte, la distorsión no lineal es un error óptico, causado por los lentes, que tiene como resultado diferencias en la magnitud de los objetos en diversos puntos de la imagen. La mayoría de los lentes causan algún tipo de distorsión, la cual es mayor cerca de los bordes del campo de visión. El tipo de distorsión más común se denomina radial, y el efecto que tiene es que los puntos que están más alejados del centro del lente de la cámara parecen más lejanos en la imagen de lo que realmente son. Sin embargo, la distorsión no altera la cantidad de información presente en la imagen.

2.3 Correlación

La correlación es comúnmente utilizada para encontrar similitudes entre imágenes o partes de éstas. Mediante este método es posible determinar diferencias entre dos imágenes tomadas de la misma escena, así como localizar partes específicas si se tienen previamente fijados modelos del patrón a detectar. La expresión matemática utilizada para aplicar este concepto está descrita en la Ec.(1).

En este caso, la correlación se aplicó para obtener las secciones en las cuales dos imágenes tienen el mayor grado de similitud.

2.4 Características del Hardware y Software utilizado

2.4.1 Tarjeta de Adquisición

El dispositivo National Instruments PCI-1409 [3] es una tarjeta de adquisición de imágenes monocromática que soporta estándares de video RS-170, CCIR (Comité Consultivo Internacional de Comunicaciones), NTSC (National Television System Committee), VGA (Video Graphics Adapter) y PAL (Phase Alternating Line), diseñada para ser utilizada en el puerto PCI del computador. Posee un conversor análogo-digital de 10 bits (ADC) que trabaja a una frecuencia de hasta 40MHz, el cual se encarga de convertir las señales analógicas de video en formatos digitales. La adquisición de imágenes se realiza en tiempo real y los frames son cargados en una memoria interna de la tarjeta o transferidos directamente al sistema (PC).

Para controlar y programar el hardware se requiere el NI-IMAQ driver, así como algún paquete de procesamiento de imágenes de National Instruments. Este driver tiene una amplia librería con diferentes funciones que se pueden ejecutar o llamar directamente desde el programa de aplicación. Las funciones pueden ser rutinas para la configuración de video, la adquisición de imágenes o la configuración de la tarjeta.

El NI-IMAQ sólo puede desarrollar funciones requeridas para adquirir y salvar imágenes más no puede ejecutar ningún tipo de procesamiento o análisis, pero constituye la interfase entre la tarjeta de adquisición y LabVIEW.

2.4.2 LabVIEW

LabVIEW (Laboratory Virtual Instrument Engineering Workbench), de National Instruments, es una herramienta utilizada principalmente en la industria y cuya finalidad es crear pruebas de diseño, de medida y elaborar sistemas de control. Se trata de un lenguaje de programación gráfico que utiliza íconos en lugar de líneas de texto para crear aplicaciones. A diferencia de los lenguajes de programación basados en texto, LabVIEW utiliza programación por flujo de datos, lo que significa que la circulación de datos sobre el diagrama de bloques determina el orden de ejecución de los VI (Virtual Instruments) y las funciones.

2.4.3 Imaq visión

IMAQ (Image Adquisition) Vision [4], es una librería de LabVIEW que es utilizada para crear principalmente aplicaciones donde se requiera el manejo y procesamiento de imágenes. El software está organizado en tres módulos diferentes: utilidades de visión (Vision Utilities), procesamiento de imágenes (Image Processing) y visión de máquina (Machine Vision).

3. METODOLOGÍA

El trabajo fue desarrollado en dos etapas que comprenden tanto el diseño y construcción de elementos físicos como la programación de software. La primera fase, donde se construyó el sistema que sostiene y posiciona la cámara, así como el mecanismo de control, se denomina Módulo Mecánico. La segunda etapa consistió en la programación en LabVIEW del software encargado del procesamiento y la construcción de la fotografía final del terreno.

3.1 Módulo Mecánico

Este módulo es el encargado de efectuar todos los movimientos que debe realizar la cámara para obtener las imágenes suficientes que van a permitir la elaboración del mapa del terreno circundante. Su ejecución se realizó en dos fases. En primer lugar, se diseñó y se construyó la estructura mecánica en la cual se debía colocar la cámara, los motores y el circuito de control. Posteriormente, fue necesario programar el microcontrolador, que funciona como sistema de control remoto, el cual se encarga de mover los motores de tal forma que sea posible obtener las imágenes correctamente.

3.2 Estructura mecánica

La Fig. 3 muestra un modelo de la estructura que soporta y brinda movimiento a la cámara. Este cabezal es capaz de hacer un giro de 360o impulsado por un motor de paso y con ayuda de un sistema de dos engranajes. Además, mediante un servomotor se logra posicionar la cámara en un ángulo de inclinación que va desde 0o hasta 45o respecto a la horizontal. Esta estructura se sostiene mediante un trípode que permite variar la altura del mecanismo entre uno y dos metros.

3.3 Sistema de Control

Para mover y posicionar correctamente el cabezal que soporta la cámara se diseñó una tarjeta que tiene como función principal recibir y ejecutar comandos enviados a través del computador. Está compuesto principalmente por un microcontrolador Motorola MC68HC908JL8 [5], un driver para motor de paso y un circuito integrado RS232 (Recommended Standard 232). El microcontrolador es el núcleo que procesa, clasifica y ejecuta las órdenes que le son enviadas, mientras que los demás elementos se encargan de proporcionar la corriente y los niveles de voltaje que son requeridos. La Fig. 4 muestra un diagrama de bloques donde se ven los elementos utilizados en la tarjeta de control, así como las interconexiones entre cada uno de ellos.

3.4 Programa Principal

El programa principal desarrollado en LabVIEW es el encargado de realizar todo el procesamiento digital de imágenes, así como de enviar los comandos de control al sistema que maneja la estructura mecánica. Este programa tiene como entrada una señal análoga de video y como salida una señal de control para el módulo mecánico en el estándar de comunicación serial RS232, y la imagen final del terreno visualizada en el monitor del computador.

El procedimiento de construcción de la imagen se dividió en cuatro secciones: envío de comandos, adquisición de imágenes, procesamiento digital, unión de imágenes y visualización. La Fig. 5 muestra un diagrama de los bloques fundamentales que conforman el programa principal realizado en LabVIEW, donde se pueden apreciar cada uno de los módulos y la secuencia de ejecución del programa. Cada uno de estos bloques se explica a continuación.

3.4.1 Envío de comandos

La primera acción que ejecuta el programa principal consiste en enviar órdenes, a través del puerto serial del computador, hacia la tarjeta que controla el módulo mecánico. Los datos se envían con una codificación especial que le permite al microcontrolador distinguir entre comandos y parámetros, enviados para controlar el servomotor o el motor de paso. La información enviada al microcontrolador contiene la posición e inclinación de la cámara, la velocidad y el inicio del movimiento de rotación.

La codificación utilizada se muestra en la Tabla 1. Si se requiere cambiar el ángulo de inclinación de la cámara, es decir, modificar la posición del servo, es necesario que el bit más significativo que se envía al microcontrolador sea 1; de lo contrario se entiende que las órdenes van dirigidas al motor de paso. Cuando esto sucede (Bit 7 en 1), el controlador solo tiene en cuenta los cuatro primeros bits (Pos3, Pos2, Pos1 Pos0) y dependiendo cuál sea su valor, el servo se posicionará en un ángulo determinado.

Para el caso del motor de paso es preciso enviar parámetros tanto de dirección como de velocidad. La dirección está determinada por el estado del Bit 6 y el motor puede girar tanto hacia la derecha como a la izquierda. La velocidad es establecida por los seis últimos bits y puede tomar 64 valores diferentes.

3.4.2 Adquisición de imágenes

La captura de imágenes se realiza utilizando la tarjeta de adquisición de video IMAQ PCI-1409 de National Instruments y las herramientas de IMAQ VISION de LabVIEW. El proceso de adquisición consiste en construir un buffer de 46 imágenes que contiene fotografías de todo un recorrido que realiza la cámara, desde el instante que comienza a girar hasta que completa una vuelta. Esta técnica se soporta en la teoría de segmentación de imágenes, tradicionalmente usada para el procesamiento de imágenes [6], salvo que acá se utiliza el proceso inverso, es decir, la reconstrucción.

La adquisición de las imágenes es realizada de tal forma que se obtienen cuatro grupos de imágenes de 46 fotos digitalizadas cada uno. Todas las imágenes del mismo grupo son tomadas con el mismo ángulo de inclinación, pero cada uno de los cuatro grupos tiene una inclinación diferente respecto a otro, lo que permite abarcar un amplio panorama y crear una imagen con más contenido.

3.4.3 Procesamiento digital

Una vez se ha completado la adquisición de las 46 fotos, se procede a la fase de procesamiento. Este bloque tiene como entrada el buffer de 46 imágenes y a cada una de ellas le son aplicados secuencialmente los siguientes procesos:

  • Calibración o rectificación [7].
  • Enmascaramiento
  • Rotación.
  • Posicionamiento.
  • Unión

El resultado que se obtiene después de que todas las imágenes finalicen el proceso anterior es una fila o franja completa.

Cada una de estas etapas, así como su orden de ejecución, se determinó luego de haber realizado un gran número de pruebas y procedimientos diferentes, siendo estas últimas las que arrojaron un mejor resultado. El primer paso, es decir la rectificación, se aplicó debido a que el grado de inclinación de la cámara afecta considerablemente la representación de cada una de las imágenes, es decir, aparece un error de perspectiva, por el cual las dimensiones y la apariencia de los objetos se ven diferentes a como son en realidad. Este tipo de error, como se explicó anteriormente, depende principalmente del ángulo de inclinación y de la distancia de los objetos a la cámara. Una imagen calibrada se logra expandiendo la imagen, principalmente las filas superiores, lo que hace que la nueva foto tenga una forma trapezoidal.

Una vez calibrada la foto se tiene que recortar de una forma específica para acomodarla en la foto final, lo cual se logra aplicando una máscara que fue diseñada y construida previamente. La amplitud de la máscara fue hallada utilizando el concepto de correlación que se mencionó anteriormente, ya que por este método fue que se estableció el número de píxeles de diferencia que existen entre una imagen y la que es tomada inmediatamente después. La Fig. 6 muestra la forma de las máscaras utilizadas y el resultado de su aplicación a una imagen.

Las etapas finales tienen la función de organizar y unir cada una de las imágenes dentro de la foto total que compone el terreno. El proceso de rotación cambia el ángulo de inclinación de la información dentro de la imagen en una proporción que depende de la posición de la foto dentro del buffer de imágenes. El posicionamiento consiste en ubicar cada segmento en un lugar específico, dependiendo de la fila que se esté construyendo y de la posición que ocupe entre las 46 imágenes. La última sección es la encargada de unir cada nueva foto que ha sido previamente procesada a la fila que le corresponde dentro de la imagen completa. En la Fig. 7 se muestra la distribución y posición de cada segmento dentro de la imagen final.

Para la elaboración de esta imagen se deben tener en cuenta algunas características: el tamaño total es de 2800x2800 pixeles que tienen un valor inicial de cero; el radio de cada uno de los cuatro anillos respecto al centro de la estructura es un valor fijo que depende de cada fila o franja en particula; se utilizaron las expresiones matemáticas descritas en las ecuaciones Ec.(2)) y Ec.(3) para determinar la posición de una imagen.

Donde: RFILA, es el radio de la fila a la que pertenece la imagen y P es la posición de la imagen en el Buffer.

3.4.4 Unión de imágenes

Como se mencionó anteriormente, el resultado de aplicar los pasos anteriores, desde el envío de comandos hasta el procesamiento, es una fila completa. Es necesario repetir cuatro veces esta secuencia en su totalidad ya que se van a adquirir cuatro filas de imágenes diferentes. Cada una de estas franjas es almacenada en el computador y cuando se han completado los cuatro ciclos se procede a la unión de todas las filas. El procedimiento se realiza mediante una función que selecciona el píxel con mayor valor entre dos puntos que ocupan la misma posición.

3.4.5 Visualización

Por último se procede a mostrar la imagen completa en la pantalla del computador utilizando una función del IMAQ Visión que permite representar imágenes en escala de grises con un formato de 8 bits.

4. RESULTADOS

La Fig. 8 muestra el resultado final que se obtiene después de ejecutar toda la secuencia de acciones descrita anteriormente. En la imagen se observa la representación obtenida de una habitación donde se aprecia la imagen como si hubiera sido tomada desde arriba. En tamaño natural (2800x2800 pixeles) se pueden apreciar que la imagen presenta algunas pequeñas distorsiones que pueden ser el resultado de vibraciones y de un breve error de posicionamiento que presenta el motor de paso en el momento de regresar a la posición inicial para adquirir una nueva fila. Estas distorsiones pueden ser mejoradas teniendo varias consideraciones o mejoras de equipo tanto mecánico como digital. El caso del sistema mecánico puede ser mejorado teniendo un mecanismo soportado en un servomotor, el cual puede ser controlado en varios parámetros, como la inercia propia del mecanismo, así como su posición exacta. En el caso del procesamiento de la imagen es posible realizarlo remplazando la tarjeta IMAQ de National Instruments por un dispositivo que tenga la opción de aislar la plataforma computacional, para que trabaje autónomamente. En este caso se puede pensar en una plataforma EVM de Texas Instruments, la cual trabaja soportada en un DSP y un FPGA trabajando conjuntamente. Como se saben, las últimas familias de DSP vienen con dispositivos de procesamiento de imágenes, las cuales responden de una forma más eficiente a este tipo de tareas

Igualmente, se tiene la opción de trabajar con el análisis de estimación de la profundidad de la imagen para mejorar la utilidad de la imagen, ya que en un principio y tal como está concebido, se pierde mucha información. Este es un trabajo que se viene desarrollando en la siguiente versión, la cual aporta algunos algoritmos de análisis de estimación de profundidad con una sola cámara [8] [9].

Elaborar esta imagen tomó un tiempo aproximado de tres minutos, desde el inicio de la transmisión de datos hasta la visualización. El proceso se realiza de manera totalmente autónoma y el usuario tiene únicamente que ejecutar el comando de inicio y esperar a visualizar la imagen en la pantalla del computador. Para mejorar el tiempo de respuesta, tal y como se indica en el párrafo anterior, se puede tener la opción de procesar la señal directamente con un DSP, los cuales actualmente vienen con una alta capacidad de procesamiento digital de imágenes y video [10]. Uno de los últimos desarrollos que ha tenido la industria electrónica son precisamente los dispositivos de sistemas embebidos, y dentro de ellos una excelente opción es la BEAGLEBOARD, la cual tiene integrado un DSP y un Procesador en un solo ambiente. Precisamente, en la actualidad, se viene adelantando una actualización de este producto (Vigía Perimetral) en un ambiente basado en esta tarjeta.

5. CONCLUSIONES

La ejecución de este proyecto permitió observar algunas de las ventajas y utilidades que tiene el procesamiento digital de imágenes. En este caso en particular fue posible aprovechar su capacidad para realizar diversas tareas de forma autónoma, entre ellas, la organización y el mejoramiento visual de fotografías con el objetivo de construir una imagen que representa una superficie o terreno circundante sin necesidad de la intervención humana.

Existen un gran número de aplicaciones que podría tener este dispositivo. En este caso se utilizó únicamente para crear una imagen global, pero podría implementarse todo un sistema de seguridad que permita detección de objetos para determinar su categoría (personas, vehículos, construcciones, entre otras), o para establecer si hubo algún movimiento dentro de un intervalo de tiempo, todo esto de manera totalmente autónoma utilizando diversas herramientas que provee el procesamiento de imágenes.


Referencias

[1] S.W. Redfern. A Radar based Mass Movement Sensor for Automotive Security Applications. IEEE press, 1998.         [ Links ]

[2] R.C. González, Digital Image Processing. New Jersey: Prentice Hall, 2008.         [ Links ]

[3] IMAQ PXI/PCI-1409 User Manual, High-Quality Monochrome Image Acquisition Devices for PXI, PCI, and Compact PCI Bus. National Instruments, 2003.         [ Links ]

[4] IMAQ Vision for LabVIEW, User Manual. Introduction to IMAQ Vision. National Instruments, 2003.         [ Links ]

[5] G. Galeano, Programación de Sistemas Embebidos.: Arquitectura CISC Freescale de 8 bits, Primera Edición. Bogotá: Alfaomega, 2009.         [ Links ]

[6] M. XIAOBO and Y. JING, (sept.) Research on Object-Background Segmentation of Color Image Based on LABVIEW. IEEE, 2011.         [ Links ]

[7] J.C. Russ, The Image Processing Handbook, Third Edition. CRC Press, IEEE Press, 1998.         [ Links ]

[8] T. RAJABZADEH. Static Object Depth Estimation Using Defocus Blur Levels Features. IEEE Press, 2010.         [ Links ]

[9] L. HUEI-YUNG and G. KAI-DA, "Depth Recovery Using Defocus Blur at Infinity", Department of Electrical Engineering National Chung Cheng University Taiwan,978-1- 4244-2175-6/08. IEEE, 2008.         [ Links ]

[10] SPECTRUM DIGITAL, (april), TMS320DM365 Evaluation Module. Technical Reference, 2009.         [ Links ]