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]