jueves, 20 de junio de 2013
Práctica 1: nueva mejora
Aqui adjunto un nuevo video dela práctica 1. Se han recortado varios segundos modificando las constantes del controlador hasta llegar a un vídeo de 5.33 segundos.
miércoles, 19 de junio de 2013
Práctica 2: reconstrucción 3D mejorada
Se ha mejorado la reconstrucción 3D y el tiempo de computo. También se ha gestionado mejor la memoria para que no fallase al realizar las diferentes iteraciones.
Se muestra la reconstrucción 3D sin luz en la que se ven los bordes de las figuras.
A continuación se muestra un video de la reconstrucción 3D con luz en el que se ve más detalle.
La siguiente mejora será intentar introducir color a la reconstrucción ya
que hasta ahora el color estaba fijado.
Se muestra la reconstrucción 3D sin luz en la que se ven los bordes de las figuras.
A continuación se muestra un video de la reconstrucción 3D con luz en el que se ve más detalle.
La siguiente mejora será intentar introducir color a la reconstrucción ya
que hasta ahora el color estaba fijado.
lunes, 17 de junio de 2013
Práctica 1: retocada
Se ha conseguido bajar el tiempo en el que se recorre el circuito a 5 minutos y medio si empieza desde fuera del circuito y encuentra la linea, y un poco menos, unos 5 minutos y cuarto si ya es la segunda vuelta.
Esto se ha conseguido modificando la programación para adaptarlo al último mundo.
Esto se ha conseguido modificando la programación para adaptarlo al último mundo.
Práctica 2: Pica 0
En el pica 0, se utiliza lo programado anteriormente eliminado la zona de seleccionar el punto.
Para esta parte de la práctica, se necesita realizar un filtro de bordes y para ello se utiliza Canny, eso sí, pasando las imágenes a escala de grises.
Cada punto marcado como borde será un punto de interés y se utilizarán sus coordenadas para la creación del punto 3D.
Para la creación de esta práctica se han seguido los siguientes pasos:
A continuación se presenta una primera estimación de la reconstrucción 3D sin añadir iluminación y representando los puntos en color negro.
Para esta parte de la práctica, se necesita realizar un filtro de bordes y para ello se utiliza Canny, eso sí, pasando las imágenes a escala de grises.
Cada punto marcado como borde será un punto de interés y se utilizarán sus coordenadas para la creación del punto 3D.
Para la creación de esta práctica se han seguido los siguientes pasos:
- Se pasan las imágenes a escala de grises para después aplicar el filtrado de Canny.
- Se carga la calibración de las cámaras.
- Por cada punto borde se obtienen sus coordenadas.
- Se pasa de coordenadas gráficas a ópticas el punto seleccionado.
- Se calcula la ecuación de la recta que pasa por el foco y el punto 3D calculado mediante backproject.
- De esta recta se obtienen dos puntos que serán los proyectados en la imagen derecha mediante project.
- Se calculan las coordenadas gráficas de dichos puntos.
- Se dibuja la franja epipolar (lineas azules del video).
- Se dibuja el patch del punto seleccionado (amarillo)
- Se buscan correspondencias entre el patch original y los seleccionados al recorrer la imagen derecha hasta elegir el óptimo (verde).
- El punto 2D se pasa a coordenadas ópticas y se utiliza backproject para obtener su punto 3D.
- Se realiza la búsqueda del punto 3D final calculando la otra recta de retroproyección y buscando los puntos con menos distancia entre ellos puesto que pueden no cortarse.
- Tras encontrar los óptimos, se elige el punto medio de los dos como punto 3D final.
- Se introduce en un vector limitado a 10000 puntos para su posterior representación.
A continuación se presenta una primera estimación de la reconstrucción 3D sin añadir iluminación y representando los puntos en color negro.
jueves, 13 de junio de 2013
Práctica 2: pica 1
Como ya se dijo en anteriores post, la práctica está descompuesta en 3: pica 2, pica 1 y pica 0.
En el pica 1, tenemos que seleccionar un punto en la imagen izquierda y automaticamente nos creará su homologo en la imagen derecha y con estos dos obtendremos el punto 3D.
Como en pica 0, se selecciona un punto con el ratón. Se calcula el rayo de retroproyección utilizando la recta parametrica.
Se obtienen dos puntos de esta recta y se calcula la franja epipolar en la imagen derecha.
Se busca el patch optimo y se representa dicho punto en 3D.
Para realizar esto se siguen los siguientes pasos:
En el pica 1, tenemos que seleccionar un punto en la imagen izquierda y automaticamente nos creará su homologo en la imagen derecha y con estos dos obtendremos el punto 3D.
Como en pica 0, se selecciona un punto con el ratón. Se calcula el rayo de retroproyección utilizando la recta parametrica.
Se obtienen dos puntos de esta recta y se calcula la franja epipolar en la imagen derecha.
Se busca el patch optimo y se representa dicho punto en 3D.
Para realizar esto se siguen los siguientes pasos:
- Se selecciona un punto en la imagen.
- Se carga la calibración de las cámaras.
- Se pasa de coordenadas gráficas a ópticas el punto seleccionado.
- Se calcula la ecuación de la recta que pasa por el foco y el punto 3D calculado mediante backproject.
- De esta recta se obtienen dos puntos que serán los proyectados en la imagen derecha mediante project.
- Se calculan las coordenadas gráficas de dichos puntos.
- Se dibuja la franja epipolar (lineas azules del video).
- Se dibuja el patch del punto seleccionado (amarillo)
- Se buscan correspondencias entre el patch original y los seleccionados al recorrer la imagen derecha hasta elegir el óptimo (verde).
- El punto 2D se pasa a coordenadas ópticas y se utiliza backproject para obtener su punto 3D.
- Se realiza la búsqueda del punto 3D final calculando la otra recta de retroproyección y buscando los puntos con menos distancia entre ellos puesto que pueden no cortarse.
- Tras encontrar los óptimos, se elige el punto medio de los dos como punto 3D final.
- Se representa dicho punto.
martes, 11 de junio de 2013
Práctica 2: Pica 2
Como ya se ha dicho en la entrada anterior, la práctica de divide en 3 parte comenzando por pica 2.
Se selecciona un punto de la camara izquierda y el mismo en la derecha. Después de esto, se calculan los rayos de retroproyección de cada punto 2D mediante el calculo de la ecuación de la recta, utilizando la recta parametrica.
Para calcular los rayos se siguien los siguientes pasos:
Se selecciona un punto de la camara izquierda y el mismo en la derecha. Después de esto, se calculan los rayos de retroproyección de cada punto 2D mediante el calculo de la ecuación de la recta, utilizando la recta parametrica.
Para calcular los rayos se siguien los siguientes pasos:
- Cargar la calibración de las cámaras-
- Pasar de coordenadas gráficas a ópticas.
- Calcular un punto del rayo mediante backproyect para las dos imágenes derecha e izquierda.
- Calcular las ecuaciones de la rectas que contienen dichos rayor.
- Y puesto que las rectas pueden no llegar a cortarse, se calcula la mínima distancia entre los puntos de las rectas.
- Obteniendo los puntos con menor distancia, se calcula el punto medio de los dos obteniendose asi, el punto a representar en 3D.
- Se pasa el punto 3D de coordenadas relativas a absolutas y se representa.
Práctica 2: Reconstrucción 3D
La práctica dos se ha subdividido en 3 partes:
- Pica 2: Aquí se selecciona un punto de la cámara izquierda y su correspondiente en la derecha. Con estos dos puntos se calcula el rayo de retroproyección de cada cámara respectivamente donde se encontrarán los puntos 3D. El rayo de retroproyeccion se calcula mediante las ecuaciones paramétricas y para hallar el punto exacto se calcula la mínima distancia entre dichos puntos. Calculando la mínima distancia se obtendrán 2 puntos y si punto medio sera el punto a dibujar mediante las funciones implementadas.
- Pica 1: Aquí se selecciona solo un punto en la cámara izquierda. Con este se calcula el rayo de retroproyección calculado mediante rectas paramétricas. Utilizando dos puntos de este rayo, se calcula la franja epipolar en la cámara derecha. Después de esto, se recorre dicha franja buscando similitudes entre los patch y al encontrar el óptimo, se proyecta dicho punto. Como en el pica 2, se encuentran los puntos con mínima distancia entre ellas y se dibuja.
- Pica 0: Se realizará automáticamente y no será necesario seleccionar ningún punto. Se obtienen los bordes de las imágenes y por cada punto significativo, se realiza el rayo de retroproyeccion y la creacion de la franja epipolar como en el pica 1. Para conseguir el punto 3D final, se siguen las pautas realizadas tanto en el pica 2 como en el 1.
domingo, 2 de junio de 2013
Practica 1: refinamiento
Después de muchos cambios tanto en variables como en constantes se ha conseguido reducir el tiempo que tarda en realizar el recorrido.
También se ha variado un poco la programación, ya que ademas de nuestras lineas horizontales, ahora se tienen en cuenta lineas verticales para girar más o menos según la posición en la que se encuentre.
De 9 minutos a pasado a un poco menos de 6.30 minutos si el robot comienza desde fuera del recorrido y unos 6 si es la segunda vuelta o posterior.
También se ha variado un poco la programación, ya que ademas de nuestras lineas horizontales, ahora se tienen en cuenta lineas verticales para girar más o menos según la posición en la que se encuentre.
De 9 minutos a pasado a un poco menos de 6.30 minutos si el robot comienza desde fuera del recorrido y unos 6 si es la segunda vuelta o posterior.
Suscribirse a:
Comentarios (Atom)