PDF de programación - Sistema de Visión Estereoscópica para Navegación Autónoma de vehículos no tripulados

Imágen de pdf Sistema de Visión Estereoscópica para Navegación Autónoma de vehículos no tripulados

Sistema de Visión Estereoscópica para Navegación Autónoma de vehículos no tripuladosgráfica de visualizaciones

Publicado el 6 de Julio del 2018
806 visualizaciones desde el 6 de Julio del 2018
11,9 MB
132 paginas
Creado hace 13a (29/06/2010)
Universidad Complutense de Madrid

Facultad de Informática

Proyecto de Sistemas Informáticos 2009/2010

Sistema de Visión Estereoscópica

para Navegación Autónoma de

vehículos no tripulados

por

Daniel Martín Carabias

Raúl Requero García

José Andrés Rodríguez Salor

Profesor director: Gonzalo Pajares Martinsanz

Madrid, 2010

Se autoriza a la Universidad Complutense a difundir y utilizar con fines académicos, no comerciales

y mencionando expresamente a sus autores, tanto la propia memoria, como el código, la

documentación y/o el prototipo desarrollado.

Firmado:

Resumen

La visión estereoscópica artificial es un campo muy amplio que forma parte de lo que se conoce
como visión por computador. Técnicamente consiste en el procesamiento de dos imágenes obtenidas
mediante sendas cámaras, a partir de una escena tridimensional 3D. Este procesamiento está orientado
a reconstruir la escena en 3D a partir de las dos imágenes, izquierda y derecha. Un aspecto que cabe
destacar es que las cámaras están desplazadas una cierta distancia, tal y como ocurre con nuestros
ojos. El trabajo del computador consiste en identificar en ambas imágenes aquellos píxeles en las
dos imágenes que se corresponden con la misma entidad física en la escena 3D, usando para ello
algoritmos especializados. La distancia que separa estos píxeles se conoce como disparidad. La medida
de la disparidad sirve para obtener la distancia a la que se sitúa físicamente ese objeto en la escena
con respecto a las dos cámaras.

La visión estereoscópica es un campo que tiene numerosas aplicaciones y en el que a día de hoy
se están invirtiendo numerosos recursos en investigación. Concretamente, una de esas aplicaciones es
la detección de obstáculos por parte de robots. Nuestro proyecto está orientado hacia esa aplicación
práctica, si bien se centra exclusivamente en los aspectos relacionados con la correspondencia de los
elementos homólogos en las imágenes. Para ello hemos implementado diversas técnicas y algoritmos
de visión estereoscópica usando el lenguaje de programación C#.

Palabras clave: visión estéreo, estereopsis, visión por computador, cámaras, escena 3D, dispa-
ridad, C#, tratamiento de imágenes, anaglifo, robótica

Abstract

Stereo vision is a broad field that is part of computer vision. Technically, it consists of the
processing of two images adquired by two cameras, from a given scenario. This processing is aimed
to reconstruct the 3D scene from both images, namely left and right images. One thing that is worth
mentioning is that the two cameras are shifted a certain distance, as it happens with our eyes. The
computer basically identifies in both images those pixels that match, using specialized algorithms.
The distance that separates those pixels is known as disparity. Disparity is next used in the calculation
of the distance between the object in the scene and the cameras.

Stereo vision (also known as stereopsis) is a field with multiple applications and in which it is
invested many resources in research. One of those applications is the detection of obstacles by
robots. Our project is oriented towards this practical application; although this work is focused only
on the computation of the disparities, i.e. the correspondence between pixels in the images. We have
implemented several stereo vision techniques and algorithms using the C# programming language.

Keywords: stereo vision, stereopsis, computer vision, cameras, 3D image, robotics, disparity,
C#, image processing, anaglyph

Índice general

1 Introducción

1.1 Motivación del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Objetivo del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Organización de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Conceptos teóricos

2.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Geometría del sistema estereoscópico . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Algoritmo estándar de correlación . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Algoritmo estéreo de Lankton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Diseño técnico del proyecto

3.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Organización del diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Diagramas de clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Principales diagramas de secuencia del algoritmo de correlación . . . . . . .
3.2.3 Principales diagramas de secuencia del algoritmo de Lankton . . . . . . . . .

4 Servicios y tecnologías utilizados

.NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1
4.2 AForge.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Windows Presentation Foundation (WPF) . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Windows Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2
¿Por qué Windows Presentation Foundation? . . . . . . . . . . . . . . . . .
4.3.3 Construir interfaces gráficas en WPF mediante Expression Blend . . . . . . .

5 Manual de usuario

6 Proceso de desarrollo

6.1 Análisis previo en MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Desarrollo en C# del algoritmo estándar . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Desarrollo de un nuevo algoritmo: Lankton . . . . . . . . . . . . . . . . . . . . . . .
6.4 Búsqueda y desarrollo de una nueva versión del algoritmo de Lankton . . . . . . . .
6.5 Problemas de rendimiento en la implementación en C# . . . . . . . . . . . . . . . .
6.6 Pruebas con imágenes reales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7 Detección de objetos en la imagen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Integración con el simulador de robot . . . . . . . . . . . . . . . . . . . . . . . . . .
6.8

1

3
3
3
3

5
5
5
6
7

9
9
10
10
12
14

19
19
20
20
20
20
21

23

31
31
31
32
32
32
34
34
35

2

ÍNDICE GENERAL

7 Resultados y conclusiones

7.1

Imágenes utilizadas
7.1.1
7.1.2
7.1.3
7.1.4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Imágenes de Middlebury
Imágenes de simulador
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Imágenes reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Imágenes reales, para detección de objetos . . . . . . . . . . . . . . . . . . .
7.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 Resultados con las imágenes de Middlebury . . . . . . . . . . . . . . . . . .
7.2.2 Resultados con las imágenes de simulador
. . . . . . . . . . . . . . . . . . .
7.2.3 Resultados con las imágenes reales . . . . . . . . . . . . . . . . . . . . . . .
7.2.4 Resultados obtenidos para la detección de objetos . . . . . . . . . . . . . . .

37
37
37
38
38
39
40
40
41
45
47

A Diseño técnico completo. Diagramas de secuencia

A.1 Diagramas del algoritmo de correlación . . . . . . . . . . . . . . . . . . . . . . . . .
A.2 Diagramas del algoritmo de Lankton y de su versión mejorada . . . . . . . . . . . .
A.3 Diagramas de la clase BitMapFast
. . . . . . . . . . . . . . . . . . . . . . . . . . .
A.4 Diagramas de la clase Filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.5 Diagramas de la clase Gradiente

49
49
60
92
96
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

B Interfaz de programación de la aplicación

123
B.1 Espacio de nombres ProyectoSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
B.1.1 Clase ProyectoSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

Capítulo 1

Introducción

1.1 Motivación del proyecto

La visión estereoscópica artificial es un campo que tiene especial importancia en la robótica. Los robots
que son enviados a otros planetas por las agencias espaciales tienen que dirigirse por un terreno que
no está libre de obstáculos. Por lo tanto, estos robots, además de estar equipados por dos cámaras,
deben incorporar un determinado software que permita reconstruir la escena en 3D a partir de cada
par de imágenes que capturen.

Ese software no solamente debe reconstruir la escena 3D con la mayor precisión posible, es im-
portante también que lo haga en el menor tiempo posible, con el fin de que las decisiones se tomen
de manera precisa y ajustada en el tiempo.

Esta aplicación se plantea también con el objetivo de integrarla en otro proyecto dentro de la asig-
natura Sistemas Informáticos enfocado a la navegación de un robot. Nuestro proyecto proporcionaría
la información suficiente para que el robot determine la presencia de obstáculos en una determinada
posición y a una determinada distancia, y por tanto pueda modificar su trayectoria para eludirlo.

1.2 Objetivo del proyecto

En visión estereoscópica artificial existe una gran cantidad de algoritmos, siendo algunos más eficien-
tes que otros en términos de precisión y tiempo de respuesta. El objetivo principal de este proyecto es
desarrollar una aplicación que obtenga la representación 3D de una escena a partir de dos imágenes
tomadas mediante cámaras. Para ello hemos analizado los algoritmos de visión en estéreo más pro-
metedores y hemos elegido e implementado aquellos que nos han parecido más apropiados. A partir
de la información que proporcionen estos algoritmos se podría ayudar a planificar la ruta de un robot
autónomo.

1.3 Organización de la memoria

Esta memoria está organizada en los siguientes capítulos. En el capítulo segundo se analizan los
conceptos teóricos en los que está basado el prototipo que hemos construido. En el capítulo ter
  • Links de descarga
http://lwp-l.com/pdf12377

Comentarios de: Sistema de Visión Estereoscópica para Navegación Autónoma de vehículos no tripulados (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad