PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
FACULTAD DE CIENCIAS E INGENIERIA
RECTIFICACIÓN GEOMÉTRICA DE IMÁGENES MEDIANTE EL EMPLEO DE
TRANSFORMACIONES PROYECTIVAS Y UN SISTEMA DE MEDICIÓN
INERCIAL
Tesis para optar el Título de Ingeniero Electrónico, que presenta el bachiller:
Roberto Heinz Tupac Yupanqui Fernandez
Asesor: Donato Andres Flores Espinoza
Lima, mayo del 2014
RESUMEN
Cuando se adquieren imágenes aéreas, estas están propensas a tener una
distorsión, el cual puede deberse a motivos como a la inclinación de la cámara al
momento de adquirir la imagen, el relieve del terreno, etc. Estas distorsiones son
corregidas por la ortorectificación. Cuando el relieve del terreno es bastante
acentuada, como el caso de ciudades, se necesitan modelos de elevación digital
para poder realizar una correcta rectificación de la imagen.
La presente tesis está orientada a la rectificación de imágenes obtenidas de
campos agrícolas, los cuales presentan un relieve plano, por lo que los modelos
de elevación digital no son necesarios para realizar una correcta rectificación.
En la adquisición de imágenes la cámara estará alineada en sus 3 ejes de
rotación con una unidad de medición inercial, un sistema electrónico que
incorpora acelerómetros y giroscopios, los que permiten medir la posición y la
orientación. De este sistema se obtendrán los ángulos de rotación de la cámara.
El algoritmo a diseñarse consiste en obtener una relación entre la imagen
adquirida y la posición de la cámara al adquirir la imagen, de esa relación se
obtiene una matriz de transformación, a la imagen obtenida se le aplica una
transformación de proyección, empleando la matriz obtenida y por último se
obtiene la imagen rectificada.
En la verificación de los resultados se hará uso del algoritmo SURF, con la cual
se obtendrán puntos de interés de una imagen de referencia y de la imagen
rectificada, luego se procederá a hacer una comparación entre la distancia
euclidiana de los puntos característicos de cada imagen, para finalmente realizar
una evaluación de la relación geométrica entre ambas comparaciones. La
efectividad del algoritmo estará determinada por el grado de dispersión de las
comparaciones realizadas.
ÍNDICE
INTRODUCCIÓN ............................................................................................. 1
CAPITULO 1 NECESIDAD DE LA CORRECIÓN GEOMÉTRICA DE IMÁGENES
DIGITALES ......................................................................................................... 2
1.1 Adquisición de imágenes aéreas ................................................................ 2
1.2 Necesidad de la corrección geométrica de imágenes digitales ................... 3
1.3 Justificación e importancia .......................................................................... 4
1.4 Limitaciones ............................................................................................... 5
1.5 Propuesta de solución ................................................................................ 5
CAPÍTULO 2 TRANSFORMACIÓN PROYECTIVA DE IMÁGENES .................... 6
2.1 Aspectos conceptuales pertinentes ............................................................ 6
2.1.1 Distancia focal ...................................................................................... 6
2.1.2 Cámara estenopeica ............................................................................ 6
2.2 Modelamiento de imagen ........................................................................... 7
2.2.1 Parámetros intrínsecos ...................................................................... 10
2.2.2 Parámetros extrínsecos ..................................................................... 10
2.3 Funciones de Transformación .................................................................. 11
2.3.1 Transformación afín ........................................................................... 12
2.3.2 Transformación de proyección ........................................................... 14
2.4 Re-muestreo de imágenes ....................................................................... 17
2.5 Speeded Up Robust Features .................................................................. 18
CAPITULO 3 DISEÑO DEL ALGORITMO ......................................................... 20
3.1 Objetivos .................................................................................................. 20
3.2 Equipo empleado .................................................................................... 20
3.2.1 Firefly Mv ........................................................................................... 20
3.2.2 ArduPilot Mega 2.5 ............................................................................. 22
3.2.3 Mission Planner.................................................................................. 22
3.3 Definiciones conceptuales empleadas ..................................................... 22
3.3.1 Representación geométrica en el espacio 3D .................................... 22
3.3.2 Parámetros de la cámara empleados en el desarrollo del algoritmo ... 24
3.3.3 Orientación de la cámara .................................................................. 26
3.4 Consideraciones de diseño ...................................................................... 28
3.5 Diagrama de bloques del algoritmo .......................................................... 28
3.6 Descripción del algoritmo ......................................................................... 30
3.6.1 Obtención de datos ............................................................................ 30
3.6.2 Etapa de transformación de proyección ............................................. 30
3.6.3 Etapa de transformación afín ............................................................. 34
CAPÍTULO 4 PRUEBAS Y RESULTADOS ...................................................... 36
4.1 Disposición del equipo empleado e implementación del algoritmo con
imágenes no aéreas ...................................................................................... 36
4.1.1 Consideraciones preliminares ........................................................... 36
4.1.2 Diagrama de bloques de la implementación ....................................... 36
4.1.3 Pruebas ............................................................................................. 38
4.2. Disposición del equipo empleado e implementación del algoritmo con
imágenes aéreas ............................................................................................ 40
4.2.1 Consideraciones preliminares ............................................................ 40
4.2.2 Diagrama de bloques de la implementación e imágenes .................... 40
4.2.3 Pruebas ............................................................................................. 42
4.2.4 Análisis de las imágenes obtenidas y sus correspondientes ángulos . 44
4.3 Diseño del algoritmo empleado en la evaluación de resultados ............... 46
4.3.1 Diagrama de bloques ......................................................................... 46
4.3.2 Descripción del algoritmo ................................................................... 46
4.4 Evaluación del algoritmo de corrección geométrica .................................. 50
4.5 Observaciones ......................................................................................... 52
CONCLUSIONES .............................................................................................. 54
RECOMENDACIONES ..................................................................................... 55
BIBLIOGRAFÍA ................................................................................................. 56
ANEXOS
1
INTRODUCCIÓN
Las imágenes aéreas tomadas desde una aeronave no siempre son obtenidas
como un plano paralelo a la superficie si no que se tiene un grado de distorsión
causado por el propio movimiento de la aeronave al momento de capturar la
imagen. Por tal motivo se debe hacer uso de la ortorectificación, proceso de
rectificación de imágenes, por el cual se eliminan los efectos de distorsión en la
imagen debido al relieve del terreno, distorsión del lente y modificación de la
posición de la cámara.
Actualmente hay diversas formas de realizar la ortorectificación, muchos de ellos
están basados en diagramas de elevación (también conocido como modelo
digital del terreno), que son esenciales para imágenes en donde se tenga una
gran distorsión por la gran diferencia del relieve, un claro ejemplo de ello son las
imágenes aéreas tomadas a una ciudad con grandes edificios. Las imágenes que
se van a emplear en la presente tesis corresponden a imágenes de relieve plano
(tanto en las pruebas y en los resultados), esto debido a que la problemática que
presente tesis está orientado a corregir imágenes tomadas a campos agrícolas
desde alturas de 200 metros a 1 kilómetro.
El proceso de corrección de estas imágenes no es propiamente una
ortorectificación, pues no se emplean ninguna técnica de ella ni se hace uso de
los diagramas de elevación digital. Por estos motivos el nombre de este proceso
de corrección tendrá el nombre de rectificación geométrica. La presente tesis se
ha desarrollado en 4 capítulos. En el primer capítulo se muestra la problemática
y la necesidad que se tiene al momento de capturar imágenes aéreas. El
segundo capítulo, denominado transformación proyectiva de imágenes, abarca
los conceptos y definiciones sobre geometría proyectiva. En el tercer capítulo
denominado, diseño del algoritmo, se presentan el procedimiento de diseño
seguido del desarrollo del algoritmo. El cuarto capítulo denominado resultados,
se presentan las pruebas realizadas con distintas imágenes y se exponen los
resultados. Finalmente se presentan las conclusiones, recomendaciones y la
bibliografía.
2
CAPITULO 1 NECESIDAD DE LA CORRECIÓN GEOMÉTRICA DE IMÁGENES
DIGITALES
1.1 Adquisición de imágenes aéreas
La imágenes aéreas tienen muchas utilidades; se emplean en diferentes
ámbitos, su uso y aplicación está muy difundido en lo que respecta a
georeferenciación, aunque también se emplean en campos como la agricultura,
para poder analizar de forma inmediata el estado vegetativo de las plantaciones;
la minería para determinar posibles lugares de yacimientos mineros; en
arqueología, para obtener de las imágenes un modelo topográfico del lugar que
se desea estudiar, etc.
Cuando se realizan tomas aéreas se emplean diferentes tipos de vehículos
aéreos, que pueden ser desde un avión o un helicóptero e incluso un satélite
hasta un pequeño aeromodelo, siendo posible también el uso de globos
aerostáticos, dependiendo de los recursos y necesidades que se tengan se
podrá elegir una de las opciones antes mencionadas. De la misma forma se tiene
también distintos sistemas de adquisición de imágenes, entre las que se
encuentran: SAR (Radar de apertura sintética), un tipo de radar en el cual se
procesa la información para generar imágenes; LIDAR (Laser Imaging, Detection
and Ranging), es un sistema de medición que emplea un láser para medir
distancias y a partir de ello obtener imágenes de la superficie; cámara
fotográficas con lentes especiales, etc.
Figura 1.1: Imagen Multiespectral en bandas Roja e Infrarroja [1]
3
La presente tesis está enfocada a imágenes aéreas de campos agrícolas,
tomadas con una pequeña cámara, montada en una aeronave. Para este caso
en particular se podría emplear también unos lentes especiales que van
acopladas a la cámara las cuales permitirían obtener imágenes espectrales como
el de la figura Figura 1.1, el cual permite visualizar mejor el estado vegetativo de
una plantación.
1.2 Necesidad de la corrección geométrica de imágenes digitales
En la adquisición de imágenes, desde un aeromodelo, se tiene la posibilidad de
que en el instante de la toma de imágenes la cámara no esté perfectamente
alineada con la superficie terrestre, sino que presenta una variación respecto a su
posición, la cual puede darse en cualquiera de los 3 ejes del movimiento de la
aeronave, longitudinal, lateral y vertical o en una combinación de todos ellos,
generando de esa forma una distorsión en perspectiva de la imagen tomada. En
la Figura 1.2 se muestran los grados de libertad del aeronave, y en la Figura 1.3
se muestran imágenes que presentan una distorsión en perspectiva respecto al
movimiento del aeromodelo descrito en ella.
Figura 1.2: Grados de libertad del aeronave, en sus ejes longitudinal,
lateral y vertical respectivamente. [2]
Idealmente las imágenes deben ser tomadas con la aeronave estabilizada y en
una posición paralela a la superficie del terreno, pero la realidad es que pocas
veces se lograra esa situación, debido a diversos factores tales como: el viento,
4
que genera una perturbación; errores humanos en el control del aeromodelo, etc.
Generándose de esta forma los efectos en perspectiva que se pueden apreciar
en la Figura 1.3. Para corregir esos efectos de perspectiva estas imágenes
necesitan ser rectificadas, la descripción y el desarrollo del mismo serán
presentadas en los capítulos 3 y 4.
(a) (b)
(c) (d)
Figura 1.3. Efectos en perspectiva en la adquisición de imágenes. (a)
imagen a partir de la aeronave alineada al suelo. (b), (c) Imágenes a partir
del alabeo y del cabeceo de la aeronave. (d) Imagen a partir de la guiñada
de la aeronave [2]
1.3 Justificación e importancia
La presente tesis busca resolver los problemas de distorsión en perspectiva que
surgen frecuentemente en la adquisición de imágenes aéreas. Se desarrolla un
algoritmo propio que busca ser empleada en proyectos como “Agricultura de
Precisión” y “Obtención de mapas topográficos en zonas arqueológicas” por
tomar unos ejemplos. Aunque existen muchos software en el mercado que ya
realizan dicha función de ortorectifiación y/o rectificación geométrica, se busca
una alternativa a ellos. Por lo que por el tema del costo e igual funcionalidad, el
5
algoritmo propuesto vendría ser una opción viable económicamente al elegir
una alternativa.
1.4 Limitaciones
La rectificación geométrica aplicada a imágenes en esta tesis solo corrige
distorsiones que se dan por los cambios en perspectiva en la toma de
imágenes, más no los errores de elevación de terreno. Por lo que solo es
posible rectificar, con el algoritmo propuesto, imágenes de superficies
planas o casi planas, como lo son las imágenes de campos agrícolas y no
imágenes de ciudades por ejemplo.
En el desarrollo de la tesis no se consideran las distorsiones por la
curvatura del lente de la cámara. Ello debido a que el algoritmo está
enfocado a las fotos aéreas de entre 200 m y 1 km, y debido a que el
ángulo de visión del lente empleado es de 30 grados aproximadamente
[20]. Con estas características se establece que el efecto de distorsión
por la curvatura del lente, no es apreciable. Sin embargo las distorsiones
podrían ser notorias si es que se toman imágenes con lentes que
presenten un ángulo de visión mucho mayor (180 grados), como es el
caso de los lentes ojo de pez.
1.5 Propuesta de solución
Ante la problemática planteada, la solución está enfocada en el desarrollo de un
algoritmo que permita rectificar las imágenes descritas. Para tal fin, se va a
disponer de un sistema de medición inercial, cuyos ejes de rotación van a
coincidir con los ejes de movimiento del aeronave y de la cámara. De esta forma,
se conocerá la orientación de la cámara cada vez que se tome una imagen. El
algoritmo propuesto consiste en emplear los datos de orientación obtenidos de
los sensores, para con ellos realizar una transformación de proyección y rotación
a la imagen, con lo cual finalmente se obtendrá la imagen rectificada. Este
proceso es descrito en detalle en el capítulo 3, y la evaluación del algoritmo
propuesto en el capítulo 4.
6
CAPÍTULO 2 TRANSFORMACIÓN PROYECTIVA DE IMÁGENES
En el presente capítulo se expondrán conceptos teóricos concernientes a la
geometría proyectiva y a las transformaciones geométricas en 2D, los cuales
serán empleados en el diseño del algoritmo en el capítulo 3. También se realizará
una explicación del descriptor SURF, el cual será empleado en la evaluación de
eficiencia del algoritmo.
2.1 Aspectos conceptuales pertinentes
2.1.1 Distancia focal
La distancia focal es la distancia que existe entre el centro óptico del lente y el
foco, que es el punto por donde todos los rayos de luz confluyen. Esta distancia
focal es empleada en las cámaras para enfocar imagen que se desea obtener.
2.1.2 Cámara estenopeica
Es una cámara que no dispone de lentes, tiene un pequeño orificio por el cual
entra la luz y dispone de un material fotosensible, en el cual se proyecta la
imagen tomada. La distancia focal de esta cámara corresponde a la distancia que
existe en entre el agujero y el material fotosensible. En la figura 2.1 se observa
este modelo de cámara.
Figura 2.1 Modelo de cámara estenopeica[3]
7
2.2 Modelamiento de imagen
La representación de un punto o un conjunto de puntos de un plano 3D a uno de
2D se obtiene mediante proyecciones realizadas de esos puntos al plano
deseado. Cuando se observa una imagen de algún lugar, en realidad lo que se
observa son las proyecciones de una escena en tres dimensiones a un plano
dado, si es que se adquiere la misma escena desde otro plano, se obtendrá otra
proyección. En la figura 2.2 se observa dos imágenes enfocadas a un mismo
espacio 3D, con diferentes perspectivas de la cámara.
(a) (b)
Figura 2.2 a) imagen original, b) imagen de otra perspectiva obtenida a
partir de la imagen original [4]
Cuando se realizan las proyecciones de una escena, y se analiza las formas
geométricas se encuentran en ellas (líneas paralelas, círculos, cuadrados, etc.),
se observan que estas formas no se preservan de una proyección a otra si no
que existe un grado de distorsión debido a las proyecciones realizadas, sin
embargo se observa que la rectitud de las líneas geométricas sí se preservan.
Se debe tener en cuenta también que las imágenes presentadas en la Figura 2.2
pueden ser tratadas como figuras geométricas euclidianas, y el empleo de
imágenes proyectivas es solo una extensión del plano euclidiano al plano
proyectivo.
8
La formación de una imagen proyectada puede aproximarse a la obtención de
imágenes por una cámara estenopeica.
Figura 2.3 Proyección de un punto en un espacio 3D a un plano, el punto
P representa al agujero de una cámara estenopeica.[5]
De la figura 2.3 se obtiene la relación de un punto en el espacio a 3D y su
proyección a un plano 2D. Esta relación se puede también expresar como una
multiplicación de una matriz que representa a un conjunto de puntos en el
espacio 3D y un escalar, que da como resultado una matriz que representa la
proyección realizada, como se muestra en la ecuación 2.1
ݔ
ݕ
݂
൩ =
ܺ
ܻ
ܼ
൩ ݔ =
, ݕ =
(2.1)
La distancia f representa la distancia focal entre el plano de la imagen y el punto
de proyección P.
Sistemas de coordenadas:
Para un modelamiento completo de una imagen se considerará tres tipos de
sistemas de coordenadas:
Sistema de coordenadas general: Es el sistema que representa el origen
de coordenadas absoluto en el espacio 3D.
9
Sistema de coordenadas de la cámara: Es el sistema que representa la
posición de la cámara respecto al sistema de coordenadas absoluto.
Sistema de coordenadas de la imagen: Este sistema representa la imagen
proyectada en sí, es decir la proyección respecto a la posición de la
cámara, pero a diferencia de las otras 2 es un sistema 2D.
En la figura 2.4 se observan en conjuntos los 3 sistemas descritos.
.
Figura 2.4 Representación de los sistemas de coordenadas de la cámara
y de la imagen respecto al origen de coordenadas absoluto. [6]
La proyección de un punto en el espacio 3D a uno 2D se representa como en la
ecuación 2.2 [7], una multiplicación de matrices, en la cual la matriz I representa
los parámetros intrínsecos de la cámara y la matriz compuesta por R|T
representan los parámetros extrínsecos de la cámara. Como una extensión de
2.2 se observa 2.3, en la cual se definen explícitamente lo composición de cada
una de las matrices.
ݔ′′
ݕ′′1 ൩ = ܫ[ܴ|ܶ] ቈݔݕݖ (2.2)
ݔ′′
ݕ′′1 ൩ = ݂ݔ ݏ ܿݔ0 ݂ݕ ܿݕ0 0 1 ൩ ݎ11 ݎ12 ݎ13ݎ21 ݎ22 ݎ23ݎ31 ݎ32 ݎ33 ݐ1 ݐ2 ݐ3 ൩ ቈݔݕݖ (2.3)
10
2.2.1 Parámetros intrínsecos
Los parámetros intrínsecos [8], representados por la matriz I en la ecuación 2.4,
representan la matriz que transforma la proyección de un imagen en el espacio
3D al plano de la imagen 2D.
I = ݂ݔ ݏ ܿݔ0 ݂ݕ ܿݕ0 0 1 ൩ (2.4)
De los parámetros en la ecuación 2.4, fx e fy representan los valores de
distancia de foco para los ejes x e y respectivamente, cx y cy representan el
punto principal de la imagen, en el plano x’’-y’’, en términos de píxeles y s
representa el coeficiente de asimetría de la imagen. fx = ݉௫ܽ௫ (2.5) fy = ݉௬ܽ௬ (2.6)
Los valores de foco mencionados corresponden a valores de la imagen en
píxeles, para ello han sido previamente escalados a partir de su valor real, las
ecuaciones 2.5 y 2.6 describen esa operación. Los valores de mx e my
representan la relación entre los píxeles y la distancia real (en unidades métricas
de 8 mm, 50 mm, etc.).
2.2.2 Parámetros extrínsecos
Los parámetros extrínsecos, representada por la matriz R y T de la ecuación 2.7
definen la rotación y traslación de la cámara respecto al origen de coordenadas
total.
ܧ = [ܴ|ܶ] (2.7)
La rotación R representa al resultado de la multiplicación (ecuación 2.11) de las
matrices que representan las rotaciones en los tres ejes coordenados de la
cámara respecto al sistema de coordenadas total. Estas matrices de rotación se
describen en 2.8, 2.9 y 2.10.
11
Matriz de rotación en x:
ܴݔ = 1 0 00 ܿݏߠ௫ −ݏ݅݊ߠ௫0 ݏ݅݊ߠ௫ ܿݏߠ௫ ൩ (2.8)
Matriz de rotación en y:
ܴݕ = ܿݏߠ௬ 0 ݏ݅݊ߠ௬0 1 0
−ݏ݅݊ߠ௬ 0 ܿݏߠ௬ (2.9)
Matriz de rotación en z:
ܴݖ = ܿݏߠ௭ −ݏ݅݊ߠ௭ 0ݏ݅݊ߠ௭ ܿݏߠ௭ 00 0 ܿݏߠ௫൩ (2.10)
ܴ = [ܴݔ][ܴݕ][ܴݖ] (2.11)
Los parámetros de translación T representan la ubicación de la cámara respecto
al origen de coordenadas total, esta se define como tal en la ecuación 2.12.
ܶ = ݔ′ݕ′
ݖ′
(2.12)
En el Anexo 1 [9] se implementa una aplicación en MATLAB, empleando las
definiciones descritas sobre parámetros extrínsecos e intrínsecos de una cámara,
en la cual se pueden apreciar la proyección de una imagen con distintos grados
de rotación.
2.3 Funciones de Transformación
Las transformaciones realizadas a imágenes van a modificar el valor de la
posición de los píxeles hacia otra disposición que dependerá del tipo de
transformación, dentro de ellos se pueden distinguir dos tipos de transformación:
las transformaciones lineales y las no lineales, las cuales serán descritas en las
siguientes secciones.
12
2.3.1 Transformación afín
Es una transformación lineal [10], que tiene como característica la preservación
de rectitud de las líneas presentes en una imagen cuando ha sido transformada.
La ecuación 2.13 es una forma de representar la operación de transformación
afín, donde x es la matriz que representa la imagen a transformar, X la matriz de
la imagen transformada y H la matriz de transformación.
ቈ
ݔ
ݕ1 = ܪ ቈݓݖ1 (2.13)
Una transformación afín se puede representar la matriz H como en 2.14, en ella
se observa que la matriz tiene 6 variables.
ܪ = ܽ ܾ ܿ݀ ݁ ݂0 0 1൩ (2.14)
Los efectos que se generan en una imagen al aplicar una transformación
dependen de los valores de la matriz H, las mismas que van a ser descritas a
continuación.
Rotación
Matriz de transformación: ܪ = ܿݏө − ݏ݁݊ө 0 ݏ݁݊ө ܿݏө 00 0 1൩ (2.15)
Ecuación de coordenadas ݔ = ݓܿݏө − ݖݏ݅݊ө ; ݕ = ݓݏ݅݊ө − ݖܿݏө (2.16)
Traslación
Matriz de transformación: ܪ = 1 0 ݀ݔ 0 1 ݀ݕ0 0 1 ൩ (2.17)
Ecuación de coordenadas ݔ = ݓ + ݀ݔ ; ݕ = ݖ + ݀ݕ (2.18)
13
Shear horizontal
Matriz de transformación: ܪ = 1 0 0ߙ 1 00 0 1൩ (2.19)
Ecuación de coordenadas ݔ = ݓ + ߙݖ ; ݕ = ݖ (2.20)
Shear vertical
Matriz de transformación: ܪ = 1 ߚ 00 1 00 0 1൩ (2.21)
Ecuación de coordenadas ݔ = ݓ ; ݕ = ݓߚ + ݖ (2.22)
En la figura 2.5 Se observan los tipos de transformación afín antes descritas,
aplicadas a una misma imagen.
(a) (b)
(c) (d)
Figura 2.5 a) Rotación de 30 grados, b) escalamiento en el eje x, c) translación
en los ejes x e y, d) shear en el eje x
14
Transformación de similitud
Es una transformación lineal, similar a la de afín, con la única diferencia que la
matriz de transformación tiene determinante de 1, lo cual permite mantener la
forma de la imagen a transformar. Las operaciones que se relacionan a ella
consisten en rotación de la imagen, translación y/o un escalamiento de la misma.
Es representada por una matriz H de 3x3, la misma se describe en la ecuación
2.23.
ܪ = ݏ ܿݏө −ݏ ݏ݁݊ө ݐݔݏ ݏ݁݊ө ݏ ܿݏө ݐݕ0 0 1 ൩ (2.23) det(ܪ) = 1 (2.24)
De la ecuación 2.2 ‘s’ es el escalamiento, ‘ө’ define la rotación y ‘tx’, ‘ty’ la
traslación.
Ejemplo de una transformación de similitud en la figura 2.6.
Figura 2.6 Transformación de similitud donde se observa un cambio de
orientación, posición y de tamaño. [11]
2.3.2 Transformación de proyección
Es una transformación lineal, que consiste en proyectar los puntos y/o rectas de
un plano a otro plano. En la figura 2.7 se observa la proyección de un punto ݔଵ de
15
un plano definido por ܽଵ, ܽଶ, ܽଷ a plano definido por ܾଵ,ܾଶ, ܾଷotro generándose el
punto ݔଶ.
Figura 2.7 Proyección de imágenes [12]
ܺ = ܪݔ (2.25)
Se define la relación de un punto proyectado de un plano a otro como la ecuación
2.25, en donde x representa la matriz de los puntos a transformar, H representa
la matriz de transformación de 3x3 y X representa la matriz transformada.
Concepción similar a la transformación afín, con la única diferencia que ahora la
matriz H dispone de 8 variables. En la ecuación 2.26 se representa esta matriz, la
cual será empleada para hallar una serie de ecuaciones que permitan resolver
las variables de la matriz H [13], los pasos se describen a continuación.
ܪ = ܽ ܾ ܿ݀ ݁ ݂
݃ ℎ 1൩ (2.26)
ܹܺ
ܻܹ
ܹ
൩ = ܽ ܾ ܿ݀ ݁ ݂
݃ ℎ 1൩ ቈݔݕ1 (2.27)
Despejando W con los valores de la matriz H
ܹ = ݃ݔ + ℎݕ + 1 (2.28)
Dividendo a 2.27 por 2.28:
16
ܺ
ܻ1൩ =
ௗ
ଵ
൩ቈ
௫
௬
ଵ
௫ା௬ାଵ
(2.29)
De 2.29 se obtiene las ecuaciones de la relación de x e y con las variables.
ܺ = ௫ା௬ା
௫ା௬ାଵ
; ܻ = ௗ௫ା௬ା
௫ା௬ାଵ
; (2.30)
Despejando los valores de X e Y, se obtiene finalmente: X = xa + xb + c + 0d + 0e + 0f − Xxg − XYh (2.31)
Y = 0a + 0b + 0c + xd + ye + f − Yxg − Xyh (2.32)
De las ecuaciones 2.31 y 2.32 se tienen 8 variables y 2 ecuaciones, para resolver
este sistema de ecuaciones se puede emplear el método de mínimos cuadrados,
usar el método de Gauss, etc. En la presente tesis se tomarán cuatro puntos de
cada plano (los dos planos de la figura 2.7), para luego emplear la función
incorporada makeform de MATLAB y con ello se obtendrán los valores de las
variables, las cuales forman la matriz de transformación de proyección H. En la
figura 2.8 se observa la transformación de proyección aplicada a una imagen.
Figura 2.8 Imagen de un cuadro con distorsión de perspectiva
17
2.4 Re-muestreo de imágenes
Cuando se realiza una transformación de imágenes o se hace operaciones con
ella, se modifican las posiciones de los píxeles de la imagen de referencia y para
hallar las posiciones de la imagen transformada, se realiza un re-muestreo de la
imagen. Esta operación permite hacer una correspondencia, de forma que en la
imagen transformada se preserven la posición de los píxeles al realizarse la
transformación, esto debido a que las posiciones de los píxeles son valores
enteros, sin embargo al realizar la transformación es probable que las
correspondientes coordenadas tengan valores no enteros. Por este motivo es
que se emplean métodos de interpolación las cuales van a permitir hallar valores
aproximados de las posiciones de los píxeles en el nuevo sistema de
coordenadas. Los métodos más usados para estimar la aproximación de píxeles
son las de vecino más cercano (Nearest-neighbor), bilineal y bicúbica. En la
figura 2.9 se la aplicación de los diversos métodos de interpolación a una imagen.
a) Imagen original b) Interpolación de tipo vecino más
cercano
c) Interpolación de tipo bilineal d) Interpolación de tipo bicúbica
Figura 2.9 Rotación de 10 grados de la imagen de una moneda [14]
18
2.5 Speeded Up Robust Features
El reconocimiento y la descripción de objetos, son parte del proceso de muchas
aplicaciones desarrolladas dentro del campo de visión de computadoras.
Reconocimiento facial, control de calidad, control de procesos y calibración de
cámaras son algunos ejemplos. Con el propósito de optimizar de estos procesos,
surge la idea de encontrar una forma de reconocer características que sean
iguales en dos o más imágenes. Como solución a esta problemática es que
surgen algoritmos como SIFT [15] y SURF(Speeded Up Robust Features [16]),
que están enfocados a la detección y descripción de características en imágenes.
El SURF al igual que el SIFT tienen como particularidad, la invariancia a los
efectos que pueda presentar la imagen, tales como los cambios de orientación,
escalamiento, distorsión afín y cambios de iluminación. En particular, en el
desarrollo de esta tesis se hará uso del algoritmo SURF. Este algoritmo tiene
como ventaja, que el tiempo de procesamiento es menor, respecto a otros
algoritmos de descripción de características como SIFT. El desarrollo del
algoritmo SURF está divido en tres etapas:
Generación de punto de interés
Obtención de los descriptores
Comparación de los descriptores
En la figura 2.10 se observa la aplicación del algoritmo SURF [17].
a) Imágenes originales b) Descriptor Surf en ambas imágenes
19
c) Comparación de las características comunes a ambas imágenes
Figura 2.10 Algoritmo SURF aplicado a las tomas de una imagen en dos
perspectivas diferentes [17]
En el capítulo 4 se hará uso de este algoritmo para obtener los puntos de interés
en las imágenes evaluadas, ello como parte del algoritmo a diseñarse para
evaluar la efectividad del algoritmo de rectificación geométrica diseñado. El
código del algoritmo a emplear será el OPENSURF desarrollado por Chris Evans
[18], en su versión para MATLAB.
20
CAPITULO 3 DISEÑO DEL ALGORITMO
En este capítulo se definen los objetivos, se describen los equipos empleados, el
desarrollo y el diagrama de bloques del algoritmo propuesto.
3.1 Objetivos
Objetivo Principal
Diseñar e implementar un algoritmo para la rectificación geométrica de
imágenes con escenarios/objetos de relieve plano, para lo cual se emplearán los
ángulos de rotación de la cámara, datos que se obtendrán de los sensores de
posición y orientación colocados junto a la cámara.
Objetivos Específicos
Estudio de la geometría proyectiva.
Implementación y desarrollo del algoritmo en MATLAB
Estudio y empleo de los sensores de medición inercial para la obtención
de datos
Evaluar la efectividad del algoritmo planteado
3.2 Equipo empleado
Tanto para el desarrollo como para la implementación del algoritmo se hace uso
de algunos de los parámetros de la cámara, como la distancia focal y la
resolución. Además de ello, para obtener datos de la posición y orientación de la
cámara se hace uso de un sistema de medición inercial. Los equipos empleados
serán descritos en los siguientes subcapítulos.
3.2.1 Firefly Mv
La cámara utilizada en la adquisición de imágenes, es la Firefly Mv [19], entre sus
principales características destacan:
Cámara usb 2.0 CMOS monocromática
Resolución de 640x480
Captura imágenes con una frecuencia de 60 fotogramas por segundo (60
FPS) [19].
En la figura 3.1, se muestra la cámara descrita.
21
Figura 3.1 Camara Firefly Mv
Esta cámara además dispone de un objetivo, que son los conjuntos de lentes
que sirven para controlar la entrada de luz y para enfocar la imagen a adquirir, el
cual tiene una distancia focal de 8 mm. La distancia focal es el único parámetro
del objetivo que se va a emplear en la presente tesis, los demás (apertura,
ángulo de visión, etc.) no serán tomados en cuenta. El objetivo usado en la
presente tesis es el modelo M0814-MP2 COMPUTAR [20], En la figura 3.2, se
muestra la cámara y el objetivo.
Figura 3.2 Cámara con el objetivo
22
3.2.2 ArduPilot Mega 2.5
ArduPilot Mega 2.5 [21], es un sistema de piloto automático, basado en Arduino,
empleado en vehículos aéreos no tripulados como aeroplanos, helicópteros
quadricóptero, vehículos terrestres (rovers) etc. Este sistema está integrado con
un IMU (unidad de medición inercial), esta unidad basado en el algoritmo
DCM[22] ,nos permite obtener el valor de las fuerzas gravitacionales, la posición,
la orientación y la velocidad para los cuales tiene incorporados acelerómetros,
girómetros y magnetómetros. Este sistema también tiene desarrollados firmwares
para cada tipo de vehículo aéreo, de los cuales el ArduPlane V2.74 [23] ha sido
el firmware empleado en el desarrollo de esta tesis. De todas las funciones que
dispone el Ardupilot solo se van a emplear las mediciones obtenidas de la unidad
de medición inercial, los que van a brindar información de la rotación y la
posición, para lo cual este equipo dispone de una interfaz USB que permite su
interconexión con una PC.
3.2.3 Mission Planner
El Mission Planner [21] es el software de interfaz gráfica desarrollada para
interactuar con el Ardupilot. Con esta interfaz se realizan las configuraciones, las
pruebas y el monitoreo en tiempo real de todas las funciones que dispone. En la
implementación del algoritmo solo se va a monitorear las mediciones de
orientación y posición del sensor.
3.3 Definiciones conceptuales empleadas
3.3.1 Representación geométrica en el espacio 3D
Para expresar las posiciones de la cámara respecto a una posición de referencia,
se emplearán gráficos 3D, los cuales permitirán tener una mejor visión del
contexto descrito en el desarrollo de esta tesis. En estos gráficos la aeronave que
realiza las tomas aéreas, será remplazada por el modelo de una cámara, y el
lugar físico de la adquisición de la imagen será reemplazado por un plano de
superficie. En la figura 3.3 se observa esta descripción. Para fines de esta tesis,
la cámara que se encuentra correctamente posicionada sobre la imagen y del
23
que se obtenga una toma sin distorsión en perspectiva, será referida como
cámara de vista superior.
a) Vista dimétrica b) Vista frontal
c) Vista superior b) Vista derecha
Figura 3.3 Vistas de la posición de las cámaras respecto al objetivo
El plano azul, en las imágenes de la figura 3.1 representa el objeto de relieve
plano, del cual se va a adquirir una imagen. También se pueden apreciar dos
cámaras en diferentes posiciones, una que está posicionada en
perpendicularmente al centro de la imagen y la otra que esta cámara que esta
rotada 30 grados, en un mismo eje, respecto a ella. En la figura 3.4 se observan
24
las imágenes que se obtendrían del objeto plano, cuando la imagen es tomada
desde las posiciones de las cámaras representadas en la figura 3.3.
a) Imagen con la cámara perpendicular b) Imagen con la cámara rotada
Figura 3.4 Imágenes obtenidas con posiciones distintas de la cámara
3.3.2 Parámetros de la cámara empleados en el desarrollo del algoritmo
En el desarrollo del algoritmo los únicos parámetros reales de la cámara que se
van a emplear, serán la resolución y la distancia focal de la cámara.
Las dimensiones del objeto de relieve plano, representado por la superficie azul
en la figura 3.2, es de 640x480mm, valor que fue asignado por ser 640x480
píxeles la resolución real de la cámara con la que se adquirieron las imágenes.
De la misma forma la distancia entre el punto central del objeto plano y la cámara
tiene un valor de 1330mm, medida que es tomada de la longitud focal del lente
de la cámara.
La relación entre píxeles y la distancia real se obtiene con los valores intrínsecos
de la cámara, tema descrito en el capítulo 2, la ecuación 3.1 describe esta
relación:
ܽ = ݂.݉ (3.1)
Donde f es la distancia focal real en mm del lente, el cual tiene un valor de 8mm;
m representa la relación entre píxeles y distancias, dato que es obtenido de la
hoja del fabricante de la cámara, la cual tiene un valor de 1pixel/6μm [19].
Reemplazando estos valores en 3.1 se obtiene:
25
ܽ = 8݉݉. ଵ ௫
ஜ୫
(3.2)
ܽ = 1333.3 ݅ݔ݈݁݁ݏ (3.3)
En la figura 3.5 se representa las medidas de la superficie plana y la distancia de
las cámaras, de acuerdo a lo descrito en la ecuación 3.1.
Figura 3.5 Imagen con las medidas del objeto plano y la distancia a la cámara
Hasta este punto, la cámara y el objeto plano mostrados en las figuras 3.1, han
sido vistos separadamente, sin ninguna relación de correspondencia entre ellos.
Sin embargo lo que en realidad representa el objeto plano y la cámara (en el
diseño de este algoritmo en particular), son el sensor de la cámara y al centro
óptico del lente, respectivamente. En la figura 3.6 se presentan estas
características.
Figura 3.6 Longitud focal de la cámara y su ángulo de visión [24]
26
3.3.3 Orientación de la cámara
La orientación de un objeto respecto a un sistema de coordenadas, es definida
por los ángulos de rotación, los cuales se obtienen por el cambio de posición del
objeto. Los ángulos de rotación empleados en los equipos de navegación, sea
aérea o marítima se denominan ángulos de Tait–Bryan o ángulos de navegación.
La figura 3.7 muestra estos ángulos rotación al producirse un cambio de
orientación del sistema de coordenadas respecto a su posición inicial.
Figura 3.7 Ángulos de Tailt-Bryan [25]
Estos ángulos de orientación, definidos en la figura 3.7 como φ, Ψ y θ, son
nombres estandarizados en los sistemas de navegación. Los nombres de los
ángulos de orientación que serán empleados en esta tesis corresponden al
sistema de navegación usado en las aeronaves. En este sistema, mostrado en la
figura 3.8, los ángulos de rotación de definen como cabeceo (pitch), alabeo (roll),
guiñada (yaw). Es importante precisar que el orden en que se realicen la
secuencia de rotación, es determinante para establecer la posición final del
objeto. Es por tal motivo que la orientación obtenida a partir de los ángulos de
rotación, deben ser realizadas siempre en el mismo orden, cabeceo, alabeo y por
último guiñada.
Figura 3.8 Ejes de rotación en una aeronave [26]
X
Z
Y
27
En la figura 3.9 se muestran las rotaciones, de la cámara en cada uno de los
ejes de orientación antes descritos, cabeceo, alabeo y guiñada.
a) Alabeo(roll) de 30 grados eje y b) Cabeceo(pitch) de 30 grados eje x
c) Rotación de la cámara en 2 ejes, d) Rotación de la cámara en 2 ejes,
cabeceo y guiñada (eje z) de 30 y alabeo y cabeceo, ambos de 30
90 grados respectivamente. grados.
Figura 3.9 Rotación de la cámara respecto a la orientación del objeto
plano, en el cual las líneas azules representan el sistema de coordenadas
referencial x, y, z.
28
3.4 Consideraciones de diseño
El diseño del algoritmo emplea el concepto de formación de una imagen
proyectada en una cámara estenopeica, tema que fue descrito en el
capítulo 2.
De los parámetros reales del lente y la cámara solo se tomarán en cuenta
la distancia de longitud focal, la resolución de la cámara y el tamaño físico
del pixel, obtenido de la hoja del fabricante de la cámara.
Como fue mencionado anteriormente, el algoritmo de rectificación
geométrica a diseñarse está enfocada a imágenes con distorsión en
perspectiva, por lo que se van a emplear planos de superficie que van
representar a las imágenes.
3.5 Diagrama de bloques del algoritmo
En la figura 3.10 se muestra el diagrama de bloques del algoritmo planteado, el
cual está divido en tres etapas: obtención de parámetros, transformación de
proyección y finalmente en una transformación afín. Todas estas etapas serán
descritas en la siguiente sección.
Figura 3.10 Diagrama de bloques
29
Pseudocódigo del algoritmo de rectificación geométrica:
La implementación de este pseudocódigo fue desarrollado en MATLAB, el código
del mismo se encuentra en el Anexo 2, a su vez también se dispone de una
versión en OPENCV desarrollado en C++, el cual que se encuentra en el Anexo
3. En el siguiente subcapítulo se describen detalladamente cada una de las
etapas del algoritmo definidas en la Figura 3.10. Se emplearán funciones al
describir las etapas, las cuales representan los pasos descritos en el
pseucódigo.
30
3.6 Descripción del algoritmo
3.6.1 Obtención de datos
Esta etapa es donde se obtienen los datos que serán empleados en el proceso
de rectificación. De la cámara se obtienen los parámetros de distancia focal, la
imagen a procesar y la resolución de esta. De la unidad de medición inercial se
obtienen los ángulos de rotación: cabeceo(r), alabeo(p) y guiñada(y).
3.6.2 Etapa de transformación de proyección
Para esta etapa se emplearán todos los datos de la etapa anterior excepto el
ángulo de guiñada(y), como se observa en la figura 3.8. Para realizar la
transformación de proyección, tema desarrollado en el capítulo 2, se necesita
tener una matriz de transformación como en 2.26 y se procede según lo expuesto
en 2.3.2 y 2.3.1. En la figura 3.11 se muestra con líneas azules un sistema de
coordenadas referencial, en él se ubica un plano azul que representa a la
imagen proyectada (X, Y), es decir el resultado de aplicar la transformación de
proyección a la imagen a proyectar(x, y), el cual vendría a ser la imagen que se
desea rectificar. Los 4 puntos que se tomarán de la imagen proyectada(X, Y),
corresponden a las aristas del plano (imagen), pues son puntos característicos
para una imagen de dimensiones determinadas, con lo cual se podría usar este
algoritmo con imágenes de resoluciones diferentes a 640x480.
Figura 3.11 Imagen proyectada centrada con el plano de referencia.
Cuando una cámara se encuentra en una vista superior respecto a la imagen y
luego de ella se produce un cambio de orientación y posición (como en la figura
31
3.9) respecto a su posición inicial, la imagen obtenida va a tener una distorsión
en perspectiva, pero si la imagen a su vez tiene el mismo cambio de posición y
orientación al de la cámara, como el plano verde y la cámara rotada en la figura
3.12, la imagen no va a tener una distorsión en perspectiva vista de la cámara
que tuvo el mismo cambio de rotación y orientación.
Figura 3.12 Rotación de 30 grados en el eje transversal (p), de la cámara y
la imagen (representado en verde).
De las cámaras mostradas en la figura 3.12 se obtienen las imágenes de la figura
3.13. Las proyecciones de las aristas de esta imagen (plano verde), que se
realizan de la cámara en vista superior hacia el plano xy del sistema de
coordenadas (representado por las líneas azules), van a representar a los 4
puntos de la imagen a proyectar(x, y), entendiéndose también como la imagen a
rectificar. Estas proyecciones se muestran con líneas naranjas en la figura 3.14.
a) Imagen con la cámara frontal b) Imagen con la cámara rotada
Figura 3.13 Imágenes obtenidas con las cámaras de la figura 3.12
32
En la figura 3.14 se observa las proyecciones realizadas desde la cámara
superior hacia las cuatro aristas del plano rotado.
Figura 3.14 Proyección de las aristas de la imagen rotada (plano verde
con dimensiones de 640x480)
Estas proyecciones en el plano 2D están en función de la rotación que pueda
sufrir la cámara (alabeo (r), cabeceo (p)), y la distancia de longitud focal (f). La
ecuación 3.1 representa esta relación. Donde I representa el plano azul en la
figura 3.14, r el ángulo de alabeo, p el ángulo de cabeceo y f la distancia focal.
F= GeneracionDeProyeccion2DPlano (r, p, I ,f) (3.1)
Una vez realizada la proyección, se forma una figura geométrica con los puntos
de las aristas proyectas en el plano xy, esta figura geométrica se muestra en la
figura 3.15.
Figura 3.15 Las líneas naranjas representan la proyección de las aristas de la
imagen rotada (plano verde) en el plano xy.
33
De la figura geométrica descrita, se obtienen los 4 puntos de la aristas que
representan la imagen a proyectar(x, y). La cual se representa con la función 3.2.
D(x,y)= ObtencionDeLasCoordenadasImagen (F) (3.2)
C(X,Y)= ObtencionDeLasCoordenadasImagen (I) (3.3)
Estos puntos junto a los 4 puntos de la imagen proyectada(X, Y), mostrada en la
figura 3.11 y representada en la función 3.3, van a permitir resolver el sistema de
ecuaciones 2.29 y 2.30 con lo que finalmente se obtendría la matriz de
transformación de proyección H. Con los datos obtenidos de la orientación de la
cámara y la resolución de la imagen, en la etapa anterior, se obtiene una relación
matemática para hallar su proyección correspondiente en el plano xy, formando
una figura geométrica como en la figura 3.15. Con lo que finalmente el último
paso a realizar en esta etapa es la transformación de la imagen a rectificar (I) con
la matriz de transformación obtenida. En la figura 3.16 se muestra la
transformación de proyección aplicada una imagen con la matriz de
transformación obtenida.
a) Imagen original b) Transformación de proyección
c) Transformación de proyección con la matriz H invertida.
Figura 3.16 Transformaciones de proyección
34
3.6.3 Etapa de transformación afín
En esta etapa se toman como datos de entrada la imagen procesada de la etapa
anterior y el ángulo de rotación en el eje vertical (eje z). Para realizar la
transformación afín la operación es la misma que en 2.27, pero la matriz de
transformación es distinta. Esta matriz de rotación representada en 2.17 es un
caso particular de la matriz de transformación afín 2.14.
ܪ = ܽ ܾ ܿ݀ ݁ ݂0 0 1൩ (2.14)
ܪ = ܿݏө − ݏ݁݊ө 0 ݏ݁݊ө ܿݏө 00 0 1൩ (2.15)
En la figura 3.17 se observa una rotación de 30 grados en eje vertical,
movimiento de guiñada (y), en esta vista se representa el escenario descrito en
la etapa de transformación de proyección.
a) Vista superior de la cámara b) Vista superior con la cámara rotada
Figura 3.17 Rotación de la cámara
El resultado de realizar la transformación afín de rotación en esta etapa, es la
imagen geométricamente rectificada, como se muestra en la función 3.4. En el
cual I representa la imagen a rectificar e y el ángulo de rotación de guiñada.
Imagen_rectificada=Transformacion_afin(I,y) (3.4)
35
En la figura 3.18 se observan las transformaciones afín de rotación de 30 grados
a las imágenes procedentes de la etapa de transformación de proyección.
Figura 3.18 Transformaciones afín de rotación aplicadas a las imágenes de la
etapa anterior.
36
CAPÍTULO 4 PRUEBAS Y RESULTADOS
En este capítulo se expondrán las pruebas realizadas con imágenes aéreas y no
aéreas, según las disposiciones descritas en este capítulo. Luego de ello se
evaluará la efectividad del algoritmo planteado con las imágenes no aéreas.
4.1 Disposición del equipo empleado e implementación del algoritmo con
imágenes no aéreas
4.1.1 Consideraciones preliminares
La versión 8.1 de Matlab fue empleada para el desarrollo del algoritmo, el
código del mismo se encuentra en el Anexo 2.
El método de interpolación usado es el de vecino más cercano [27].
Las imágenes serán adquiridas con el software FlyCapture, interfaz gráfica
desarrollada para la adquisición de imágenes con la cámara Fireply Mv.
En la adquisición de imágenes, se hizo uso de un trípode, en el cual
estuvieron montadas la cámara y el Ardupilot; los movimientos que se dan
en una aeronave serán simulados con los movimientos del trípode.
Todas las imágenes adquiridas para la implementación y evaluación del
algoritmo corresponden a fotografías colocadas en una pared.
El formato de imagen a usar será el de BMP, formato de imagen sin
comprensión.
4.1.2 Diagrama de bloques de la implementación
En la figura 4.1 se muestra el diagrama de bloques de la implementación del
algoritmo, en él se incluye también el equipo empleado.
Figura 4.1 Diagrama de bloques
37
a) Cámara dirigida a la fotografía colocada en la pared
b) Ambiente en el cual fue realizada la implementación
b) Cámara y Ardupilot colocadas en el trípode
Figura 4.2 Imágenes correspondientes a la instalación de los equipos empleados
38
4.1.3 Pruebas
En la realización de las pruebas, se posiciona primero la cámara de forma que
se obtenga una imagen de la fotografía sin distorsión de perspectiva, la cual será
referida como imagen de referencia. A partir de esta condición se obtienen los
ángulos de rotación de la cámara, los cuales van a definir la posición de la
cámara de referencia. Los ángulos de rotación están definidos como cabeceo
(p), alabeo(r), guiñada (y), en el Ardupilot. Para el caso de la rotación en el eje
vertical (guiñada) el Ardupilot hace empleo de la brújula digital que dispone, en el
que 0 grados indica una dirección hacia el Norte y 180 grados corresponde una
dirección hacia el sur. La figura 4.1 muestra la imagen de referencia y la
obtención de los ángulos de rotación en el Mission Planner, para esa
correspondiente imagen.
a) Imagen de referencia b) Ángulos de rotación de la cámara
para la imagen de referencia
Figura 4.3 Obtención de datos de la imagen de referencia
Obtenidos ya los ángulos de rotación para la imagen de referencia, se procede a
tomar imágenes de perspectivas diferentes, y de ellas también se obtienen los
39
datos de rotación de la cámara. En la figura 4.2 se muestra una imagen de
perspectiva diferente y los datos de rotación de la cámara.
a) Imagen a rectificar b) Ángulos de rotación de la imagen
adquirida
Figura 4.4 Obtención de datos de la imagen que se desea rectificar
Con la obtención de los datos en la figura 4.4, se puede determinar el cambio de
rotación de la cámara respecto a la posición de referencia. En la figura 4.3 se
muestra la imagen rectificada empleando el algoritmo de rectificación geométrica
diseñado en al capítulo 3.
Figura 4.3 Imagen rectificada
El resultado de la rectificación geométrica obtenida en la figura 4.3, se asemeja a
la imagen de referencia en la figura 4.1, por lo que es posible afirmar que con el
40
algoritmo diseñado se obtiene un resultado aceptable. Sin embargo para
comprobar correctamente la efectividad del algoritmo diseñado se requiere de
una evaluación objetiva del mismo. Con esta finalidad se propone en el
subcapítulo 4.3 un algoritmo para evaluar los resultados obtenidos con el
algoritmo de rectificación geométrica propuesto, esta evaluación solo será
aplicado con las imágenes no aéreas.
4.2. Disposición del equipo empleado e implementación del algoritmo con
imágenes aéreas
4.2.1 Consideraciones preliminares
Para la etapa de procesamiento de imágenes se empleó versión 8.1 de
Matlab.
El vuelo se realizó en el Centro Internacional de la Papa (CIP) a las
11:50am y tuvo una duración de 8min aproximadamente.
Debido a que las tomas fueron realizadas cerca al mediodía, se aprecia en
las imágenes que las sombras correspondientes a edificios no son muy
notorias.
La altura máxima alcanzada en el vuelo fue de 180m aproximadamente.
Todas las imágenes fueron adquiridas con la cámara Firefly Mv y se
empleó también el formato BMP.
Se empleó una minicomputadora fit-PC2, instalada en la aeronave, en la
cual se guardaron las imágenes adquiridas, los datos de orientación y
rotación de la cámara.
Una vez realizado el vuelo y la toma de datos, se procede a la etapa de
procesamiento en tierra.
4.2.2 Diagrama de bloques de la implementación e imágenes
En la figura 4.4 se muestran el diagrama de bloques de la disposición del
ardupilot, la cámara y la fit-PC2 en el aeroplano. Adicionalmente a ello, se
dispone un módulo u-blox(gps) que va conectado al ardupilot, el cual brinda
información acerca de la latitud, longitud y la altura a tiempo real, información que
es obtenida del ardupilot.
41
Figura 4.4 Diagrama de bloques
a) Lugar en el CIP, donde se realizaron b) Aeroplano empleado
las pruebas
b) Montaje del aeroplano d) Disposición del ardupilot y el
fit-PC2 en el aeroplano
Figura 4.5 Imágenes correspondientes a las pruebas realizadas
42
4.2.3 Pruebas
Se modificó el script en C proporcionado por el fabricante para que adquiriera 30
imágenes por segundo, también se desarrolló un programa en C para obtener
datos del Ardupilot, a razón de 37 datos por segundo. Una vez obtenidos las
imágenes y los datos del sensor IMU, se realiza un proceso de correspondencia
según la hora en el que fueron adquiridos. En 8 minutos de vuelos se obtienen
cerca de 11000 imágenes, de las cuales se seleccionaron a aquellas que no
presentan una saturación por exceso de luz, y las que presentan formas
geométricas rectangulares. En la figura 4.6 se presentan algunas de las
imágenes sin procesar y procesadas, en las cuales se gráfica con líneas rojas la
forma geométrica rectificada .En el Anexo 5 se presentan más imágenes.
a) Imagen aérea 1 b) Imagen aérea 1 rectificada
a) Imagen aérea 2 b) Imagen aérea 2 rectificada
43
a) Imagen aérea 3 b) Imagen aérea 3 rectificada
a) Imagen aérea 4 b) Imagen aérea 4 rectificada
a) Imagen aérea 5 b) Imagen aérea 5 rectificada
Figura 4.6 Imágenes correspondientes a las pruebas de imágenes áreas
realizadas
44
4.2.4 Análisis de las imágenes obtenidas y sus correspondientes ángulos
En la tabla 4.1 se presentan el número de imágenes rectificadas que pertenecen
a un rango específico y el porcentaje de ellas que son correctas. La evaluación
para determinar si una imagen es correcta o no, se realizó de manera subjetiva a
las 52 imágenes aéreas rectificadas que se encuentran en el Anexo 5, de forma
que la imagen rectificada se asemeje a una forma rectangular , en caso contrario
la imagen rectificada no será correcta.
Tabla 4.1: Resultados de la rectificación de imágenes aéreas y los ángulos de la
cámara al momento de la adquisición de datos
45
De esta tabla se observa que para los rangos de -20 a 40 grados en el caso del
alabeo el porcentaje de imágenes correctas es mayor al 50%, de la misma forma
para los rangos -20 a 30 grados en el caso de cabeceo el porcentaje de
imágenes correctas es mayor a 50%.
En la figura 4.7 se presenta el diagrama de dispersión de los ángulos obtenidos
para cada imagen, en total se evaluaron 52 imágenes. Los puntos azules indican
las imágenes correctamente rectificadas y los puntos rojos las imágenes que no
fueron correctamente rectificadas.
Figura 4.7 Diagrama de dispersión
De este gráfico se observa que para los rangos de -20 a 20 grados en el caso del
alabeo el algoritmo tenga mayor efectividad que en el resto del rango. Para el
caso del ángulo de cabeceo el rango de -40 a 40 es donde se observa mayor
efectividad del algoritmo. Estos casos se dan por la disposición del sensor de
medición inercial en el aeroplano, para el caso del ángulo de alabeo la posición
del sensor coincidía con el mismo eje de rotación del aeroplano, más el ángulo
de cabeceo del aeroplano no coincidía exactamente con el eje de rotación del
aeroplano, sino que existía una diferencia ocasionada por las conexión internas
del sensor, con el ardupilot y el fit-PC2.
46
4.3 Diseño del algoritmo empleado en la evaluación de resultados
El algoritmo a diseñarse está enfocado a evaluar el nivel de efectividad de la
rectificación realizada y solo se empleara en las imágenes no aéreas, pues no se
dispone de una imagen de referencia que puede ser usada con las imágenes
aéreas. Para realizar esta evaluación se requiere de una imagen de referencia
con la cual se realiza una comparación de los puntos característicos comunes a
ambas imágenes. Esta comparación consiste en determinar si las proporciones
geométricas entre los puntos de interés se conservan, una vez realizada la
rectificación. Para obtener los puntos de interés en las imágenes se hace uso del
algoritmo SURF, descrito en el capítulo 2.
4.3.1 Diagrama de bloques
En la figura 4.8 se muestra el diagrama de bloques del algoritmo diseñado, en el
cual se incorpora el algoritmo SURF.
Figura 4.8 Diagrama de bloques
4.3.2 Descripción del algoritmo
Obtención de los puntos de característicos
En esta etapa se emplea el algoritmo SURF para obtener, puntos de interés que
sean comunes en ambas imágenes. La obtención de estos puntos parte de
encontrar de regiones de interés (blob detección [17]), empleando la matriz
47
hessiana para ello. Obtenidas ya los puntos de interés, se procede a la
generación de descriptores de estas regiones, y a partir de ello la obtención de
la escala y orientación de estas regiones. Una vez realizado la generación de
descriptores en ambas imágenes, se procede a realizar una comparación de los
puntos de interés entre ambas imágenes, para ello se evalúan los descriptores y
las características de escala y orientación de las regiones de interés en ambas
imágenes. Finalmente se obtienen los puntos de interés homólogos entre ambas
imágenes. En la figura 4.9 se observa la aplicación de este algoritmo en la
imagen de referencia y la imagen rectificada.
Figura 4.9 Obtención de los puntos de interés
Las funciones 4.1 y 4.2 representan este proceso, en el cual I representan la
imagen de referencia y J la imagen a evaluar.
A=obtención_de_puntos_caracteristicos_SURF(I) (4.1)
B=obtención_de_puntos_caracteristicos_SURF(J) (4.2)
Obtención de la distancia euclidiana entre los puntos de interés
En esta etapa, se toma un punto de referencia en una imagen, y a partir de ella
se obtiene la distancia entre el punto de referencia y los demás puntos de interés
48
de la imagen. Las funciones 4.2 y 4.3 representan es proceso. Este
procedimiento es realizado con todos los puntos de interés en una imagen.
C= distancia_euclidiana_entre_todos_los_puntos(A) (4.3)
D= distancia_euclidiana_entre_todos_los_puntos(B) (4.4)
De todos los puntos de interés en las imágenes, solo se tomarán 30 puntos [18],
con los cuales se obtendrán 465 relaciones de distancia, los mismos que serán
almacenados en un vector, C y D representan ese vector en 4.3 y 4.4. Este
procedimiento es realizado en ambas imágenes. En la figura 4.10 se muestra
gráficamente este procedimiento para un punto de referencia.
Figura 4.10 Obtención de la distancia euclidiana entre los puntos de interés en la
imagen de referencia.
49
Obtención y análisis de resultados
Luego de almacenar los datos de distancia de ambas imágenes en dos vectores,
se procede a realizar una división entre los elementos que conforman estos
vectores. La función 4.5 describe este proceso.
F=división_elemento_a_elemento(C,D) (4.5)
Los resultados de esa división se almacenarán en un vector que será referido
como vector de relación geométrica F, la función 4.5 representa esa división. De
los resultados obtenidos en este vector, se establece que cuando sus valores
tiendan a un valor constante, los puntos característicos de las imágenes van a
preservar su posición cuando se realice la rectificación. En las figura 4.11 y 4.12
se muestran la desviación estándar y la media aritmética de los elementos del
vector de relación geométrica, evaluados en la imagen de referencia, la imagen
no rectificada y la imagen rectificada.
Figura 4.11 Relación geométrica de los puntos de interés entre la imagen de
referencia y la imagen rectificada.
50
Figura 4.12 Relación geométrica de los puntos de interés entre la imagen de
referencia y la imagen no rectificada.
De las figuras 4.11 y 4.12, se puede observar que cuando los elementos del
vector de relación geométrica de las imágenes evaluadas se encuentran poco
dispersos, evaluación realizada con la desviación estándar, las imágenes tienden
a ser parecidas respecto a la forma geométrica. Por tal motivo, se hará uso de la
desviación estándar para evaluar el nivel de dispersión de los elementos del
vector de relación geométrica. De la misma forma se hará uso de la media
aritmética para analizar la similitud en las dimensiones de la imagen adquirida.
4.4 Evaluación del algoritmo de corrección geométrica
Para evaluar la efectividad del algoritmo de rectificación diseñado, se empleará el
algoritmo de evaluación de resultados (descrito en 4.3) en un banco de
imágenes. El cual contendrá cuatro imágenes sin procesar (una de estas será
tomada como referencia), y cuatro imágenes que ya han sido rectificadas. En la
figura 4.13 se muestra el banco de imágenes. De las ocho imágenes, se
empleará la imagen 8 como imagen de referencia para todas las pruebas.
51
a) Imagen 1 b) Imagen 2
c) Imagen 3 d) Imagen 4
e) Imagen 5 f) Imagen 6
52
g) Imagen 7 h) Imagen 8
Figura 4.13 Banco de imágenes
Las cuatro imágenes rectificadas geométricamente del banco de imágenes,
corresponden a imágenes adquiridas con diferentes posiciones de la cámara. El
proceso de rectificación y evaluación de estas imágenes están descritas en el
Anexo 4. En la tabla 4.2 se muestran los resultados de la evaluación del
algoritmo de rectificación del banco de imágenes, en la cual se toma como
referencia a la imagen 8.
Tabla 4.2: Resultados de la evaluación del banco de imágenes
4.5 Observaciones
De la tabla 4.2 y de la figura 4.13 se puede observar que cuando más pequeño
sea el valor de la desviación estándar, la imagen esta mejor rectificada. En la
imagen 1 por ejemplo, no se preserva la forma de la imagen de referencia, y ello
se ve reflejado en su desviación estándar, la cual es mayor a las demás. Se
53
tomara el valor de variación estándar de 0.0246 obtenida de la imagen 3, para
definirla como umbral de una correcta rectificación. En cuanto a la media
aritmética, esta indica la relación de dimensiones en las imágenes. De ello se
establece que cuando la media tiene un valor aproximado a 1, la imagen
rectificada y la imagen de referencia tienen similares dimensiones. Una prueba
de ello es la media aritmética de la imagen 5, la cual es más pequeña en
dimensiones respecto a la imagen y tiene una media de 0.7905, opuesto a la
imagen 1 que tiene dimensiones mayores y tiene una media de 1.288.
54
CONCLUSIONES
El algoritmo de rectificación geométrica puede ser empleado con otro tipo
de imágenes, siempre y cuando se modifiquen los parámetros de distancia
focal y resolución de la cámara con la que fueron adquiridas.
Las imágenes rectificadas obtenidas, demuestran que el error obtenido en
la implementación del algoritmo, se da en la etapa de obtención de los
datos. Puesto que para distintas posiciones de la cámara, se aplica el
mismo proceso pero no se obtienen los mismos resultados.
De las pruebas de rectificación geométrica evaluadas con el algoritmo
diseñado para tal fin, se afirma que para que una imagen rectificada sea
admisible como tal, la desviación estándar debe de tener un valor menor a
0.0246.
De acuerdo a las pruebas realizadas de la implementación y evaluación
del algoritmo, se comprueba que el algoritmo diseñado es aplicable a la
rectificación de imágenes no aéreas.
En base al análisis realizado al rango de ángulos con los cuales se obtiene
las imágenes aéreas y su rectificación, se concluye que el algoritmo
diseñado tiene un mejor rendimiento con ángulos de cabeceo y alabeo de
entre 30 y -30 grados sexagesimales.
55
RECOMENDACIONES
Se recomiendo realizar una evaluación sobre el sistema de medición
inercial empleado, en el cual se definan la calidad y alcance del sensor de
acuerdo a los requerimientos que plantea la tesis.
Sería conveniente realizar un estudio sobre la efectividad del algoritmo,
empleando otros algoritmos de obtención de puntos de interés
(alternativos al SURF) en el algoritmo de evaluación diseñado y
empleando otros algoritmos de evaluación.
Para una correcta evaluación del algoritmo con imágenes aéreas, es
conveniente adquirir imágenes de una superficie que presente puntos de
control que una imagen de una superficie cualquiera, de esa forma
georeferenciando esos puntos de control y rectificando la imagen, se
podría evaluar el algoritmo con programas de rectificación como es el
ENVI.
56
BIBLIOGRAFÍA
[1] Sensores Remotos de Bajo Costo para Agricultura de Precisión, 2010.
[Consulta 24/05/2013].
[2] Rojas Gómez, Renán Alfredo. Diseño de Un registro de Imágenes
orientado a la Agricultura de Precisión. Tesis de Licenciatura en Ciencias e
Ingeniería con mención en Ingeniería Electrónica. Lima: Pontificia
Universidad Católica del Perú.Facultad de Ciencias e Ingeniería, 2009.
[3] Wilhelm Burger, Mark J. Burge, Digital Image Processing: An Algorithmic
Introduction Using Java, Springer; 1st ed. 2008 edition
[4] Antonio Criminisi, Accurate Visual Metrology from Single and Multiple
Uncalibrated images. Phd Thesis, UNIVERSITY OF OXFORD ,1999.
[5] Allan Jepson, University of Toronto, Introduction to Image Understanding
2011, Image Projection
[Consulta 19/05/2013]
[6] Bernd Neumann, University of Hamburg, Computer Vision I, Perspective
Transformation, Interpolation, 2007
[Consulta 25/05/2013]
[7] Camera Calibration and 3D Reconstruction
[Consulta 15/05/2013]
57
[8] R. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision,
2nd edition, Cambrigde University Press, 2003
[9] Allan Jepson, University of Toronto, Computational Vision I Fall 2001, Warp
Demo
[Consulta 20/05/2013]
< http://www.cs.toronto.edu/~jepson/csc2503/index01.html>
[10] Gonzalez, Rafael C. Digital image processing. 3rd Edition, Pearson
Education, 2008
[11] Pennsylvania State University, Nature of Geographic Information, Plane
Coordinate Transformations
[Consulta 23/05/2013]
[12] Allan Jepson, University of Toronto, Foundations of Computer Vision Fall 2011,
Planar homographies
[Consulta 19/05/2013]
[13] Christopher R. Wren. Academic. “Perspective Transform Estimation”.
[consulta 09/05/2013]
< http://xenia.media.mit.edu/~cwren/interpolator/>
[14] A. Goshtasby, 2-D and 3-D image registration : for medical, remote
sensing and industrial applications, Wiley-Interscience, 2005
58
[15] Lowe, David G. “Object Recognition from local Scale-Invariant Features”.
International Conference on Computer vision, Corfu, Greece (1999),
pp.1150-1157.
[16] Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool "SURF:
Speeded Up Robust Features", Computer Vision and Image
Understanding (CVIU), Vol. 110, No. 3(2008), pp. 346-359.
[17] An Analysis and Implementation of the SURF Method, and its Comparison
to SIFT
[Consulta 28/05/2013]
< http://demo.ipol.im/demo/69/archive/?page=89>
[18] Chris Evans, The OpenSURF Computer Vision Library
[Consulta 28/05/2013]
[19] Firefly® MV Technical Reference Manual. Point Grey, Richmond, BC,
2011
[20] Lenses M0814-MP2, 2/3" 8mm f1.4 w/locking Iris & Focus, Computar
[Consulta 28/06/2013]
< http://computarganz.com/product_view.cfm?product_id=552 >
[21] APM Autopilot Suite
[Consulta 02/07/2013]
[22] William Premerlani and Paul Bizard, Direction Cosine Matrix IMU: Theory,
Draft 2009
[23] APM Plane, APM Copter, APM Rover source
59
[Consulta 10/07/2013]
[24] Technical Guide for Lenses. Computar, New York, 2007
[25] Mobile color selection feedback
[Consulta 15/05/2013]
[26] NASA, Virtual Skies, The Use of Coordinate Axes in Aeronautics
[Consulta13/05/2013]
[27] Carlos Pinilla Ruiz, Universidad de Jaén, Departamento de Ingeniería
Cartográfica, Georeferenciación
[Consulta 20/09/2013]