Computacion
Noviembre 3 y 4, 2011. Puerto Vallarta, Jalisco.
Navegación por Procesamiento de Imágenes Usando OpenCV
Gallardo García Hugo y Juárez Parga José Miguel
Instituto Tecnológico y de Estudios Superiores Monterrey Campus San Luís Potosí
Av. Eugenio Garza Sada 300, Lomas del Tecnológico, San Luis Potosí, S.L.P. México
Resumen
Este artículo contiene eldesarrollo de un vehículo
terrestre autónomo utilizando el procesamiento de
imágenes como medio de navegación. Se mostrará los
datos y la información de procesamiento de imágenes
así como la descripción del hardware, la lógica de
navegación y los dispositivos utilizados en el proyecto.
Palabras clave:
Arduino: plataforma de electronic abierta para creación
de prototipos.
OpenCV: es unalibrería gratuita de visión artificial y
procesamiento de imágenes originalmente desarrollada
por Intel.
La imagen que vamos a reconocer y con la que
vamos a trabajar es un escenario con círculos rojos que
representan los obstáculos y un coche de radio control
que es nuestro vehículo autónomo. Una webcam
conectada al puerto USB de la computadora es el sensor
que le da información alsoftware para realizar el control
del vehículo a través del escenario evadiendo
obstáculos.
Los obstáculos que el coche tiene que evitar se
detectan con el uso de funciones de la librería OpenCV
usando la información de vídeo de la webcam. El
programa genera una trayectoria, evitando todos los
objetos y se envía una señal al hardware de Ardunio a
través del puerto USB. Esta señal se interpreta ydefine
el control realizado por microcontrolador de Atmel
TMEGA 328-P. Las señales se envían al vehículo con
un emisor de radio frecuencia.
RGB: modelo de color basado en las componentes roja,
verde y azul de la luz.
2. Diagrama de bloques principal
YUV: modelo de color utilizado principalmente para
señales de video en el que los colores se especifican de
acuerdo con su luminosidad,su tono y la saturación.
Microsoft Visual Studio:
integrado de Microsoft.
Entorno
de
desarrollo
Detección de bordes de Canny: Técnica desarrollada por
John Canny F. en 1986 que utiliza un algoritmo de
múltiples etapas para detectar una amplia gama de
bordes en imágenes.
Processing: es un lenguaje de programación de código
abierto construido para el arte electrónico y lascomunidades de diseño visual, como Arduino.
La figura 1 muestra las etapas del proyecto de
manera general. Se sabe que un diagrama de bloques es
esencial para desarrollar un desarrollo de programación
ya que te permite visualizar los objetivos y dividir el
mismo programa en etapas.
El programa se dividió en dos partes. Una es el
código de procesamiento de imágenes en Visual Studio
utilizandolenguaje C++ y las funciones de la librería
OpenCV. La otra parte es el código de control en
Arduino Processing usando lenguaje C++ con las
librerías de Arduino que facilita la programación y el
control del vehículo.
1. Introducción
Con el uso de la biblioteca OpenCV se
desarrolló un programa en Microsoft Visual Studio que
es el encargado de realizar las tareas de reconocimiento
deimagen, imagen filtrada y la generación de
trayectorias.
Asociación Mexicana de Mecatrónica A.C.
66
Instituto Tecnológico Superior de Puerto Vallarta
10º Congreso Nacional de Mecatrónica
Noviembre 3 y 4, 2011. Puerto Vallarta, Jalisco.
Fig. 1. Diagrama de bloques del proyecto
Fig. 2. Vista previa del escenario.
3. Procesamiento de imágenes
Básicamente el procesamiento de imágenes sebasa en capturar una imagen de la webcam y después
modificarla utilizando funciones de la librería de
OpenCV. Para este proyecto se usaron las funciones
cvCapturefromCAM y cvCapture para obtener las
imágenes de nuestra webcam.
Un filtrado en la imagen es una técnica muy útil
cuando se trabaja con captura de imágenes desde una
webcam. El propósito principal de este proceso es
separar...
Regístrate para leer el documento completo.