UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INGENIERÍA EN COMPUTACIÓN GRÁFICA Desarrollo de un prototipo de escáner óptico 3D montado en un UAV con cámara 360 utilizando fotogrametría Trabajo de Titulación modalidad Proyecto de Investigación, previo a la obtención del Título de Ingeniera en Computación Gráfica AUTORA: Oña Vilatuña María Belén TUTOR: Fis. Campuzano Nieto Gonzalo Bayardo QUITO, 2019 DERECHOS DE AUTOR Yo, OÑA VILATUÑA MARÍA BELÉN en calidad de autora y titular de los derechos morales y patrimoniales del trabajo de titulación DESARROLLO DE UN PROTOTIPO DE ESCÁNER ÓPTICO 3D MONTADO EN UN UAV CON CÁMARA 360 UTILIZANDO FOTOGRAMETRÍA, modalidad proyecto de investigación, de conformidad con el Art. 114 del CÓDIGO ORGÁNICO DE LA ECONOMÍA SOCIAL DE LOS CONOCIMIENTOS, CREATIVIDAD E INNOVACIÓN, concedo a favor de la Universidad Central del Ecuador una licencia gratuita, intransferible y no exclusiva para el uso no comercial de la obra, con fines estrictamente académicos. Conservo a mi favor todos los derechos de autor sobre la obra, establecidos en la normativa citada. Así mismo, autorizamos a la Universidad Central del Ecuador para que realice la digitalización y publicación de este trabajo de titulación en el repositorio virtual, de conformidad a lo dispuesto en el Art. 144 de la Ley Orgánica de Educación Superior. El autor declara que la obra objeto de la presente autorización es original en su forma de expresión y no infringe el derecho de autor de terceros, asumiendo la responsabilidad por cualquier reclamación que pudiera presentarse por esta causa y liberando a la Universidad de toda responsabilidad. Firma: _________________________ Oña Vilatuña María Belén CC: 1720439353 Dirección Electrónica: [email protected] ii APROBACIÓN DEL TUTOR En mi calidad de Tutor del Trabajo de Titulación, presentado por la Srta. OÑA VILATUÑA MARÍA BELÉN, para optar por el Grado de Ingeniera en Computación Gráfica; cuyo título es: DESARROLLO DE UN PROTOTIPO DE ESCÁNER ÓPTICO 3D MONTADO EN UN UAV CON CÁMARA 360 UTILIZANDO FOTOGRAMETRÍA, considero que dicho trabajo reúne los requisitos y méritos suficientes para ser sometido a la presentación pública y evaluación por parte del tribunal examinador que se designe, por lo que lo APRUEBO, a fin de que el trabajo Proyecto de Investigación sea habilitado, para continuar con el proceso de titulación determinado por la Universidad Central del Ecuador. En la ciudad de Quito, a los 7 días del mes de agosto del 2019. _________________________ Fis. Gonzalo Bayardo Campuzano Nieto DOCENTE – TUTOR C.C. 1708459118 iii DEDICATORIA Este trabajo está dedicado a todas las personas que me han acompañado en todo el proceso de formación tanto académico como personal, especialmente a mi madre que siempre me ha apoyado en todas las decisiones que he tomado y me ha acompañado a lo largo de mi vida. Todos mis logros han sido gracias a los valores y educación que ella me ha brindado. iv AGRADECIMIENTOS Agradezco al Proyecto 30 de la Facultad de Ingeniería Ciencias Físicas y Matemática y a todos sus integrantes, que han aportado con los insumos y conocimientos para realizar este proyecto de titulación. Gracias a las personas que me han brindado su amistad a lo largo de mi carrera universitaria y han hecho que el transcurso de ese tiempo pase de una manera más llevadera. Y un agradecimiento especial al Coro de la Universidad Central por haberme acogido a lo largo de tres años y haber despertado en mi la pasión por el canto. v CONTENIDO DERECHOS DE AUTOR .............................................................................................................. ii APROBACIÓN DEL TUTOR ...................................................................................................... iii DEDICATORIA ............................................................................................................................ iv AGRADECIMIENTOS .................................................................................................................. v CONTENIDO ................................................................................................................................ vi LISTA DE FIGURAS .................................................................................................................... ix LISTA DE TABLAS .................................................................................................................... xii LISTA DE ANEXOS ................................................................................................................... xiii RESUMEN .................................................................................................................................. xiv ABSTRACT .................................................................................................................................. xv INTRODUCCIÓN .......................................................................................................................... 1 CAPÍTULO I .................................................................................................................................. 2 1. Presentación del Problema ...................................................................................................... 2 1.1. Antecedentes ................................................................................................................... 2 1.2. Formulación del Problema .............................................................................................. 3 1.3. Justificación .................................................................................................................... 4 1.4. Objetivos ......................................................................................................................... 4 1.4.1. Objetivo General ..................................................................................................... 4 1.4.2. Objetivos Específicos.............................................................................................. 4 1.5. Hipótesis ......................................................................................................................... 5 1.6. Alcance ........................................................................................................................... 5 1.7. Limitaciones.................................................................................................................... 5 CAPÍTULO II ................................................................................................................................. 6 2. Marco Teórico......................................................................................................................... 6 2.1. Visión por Computador................................................................................................... 6 2.1.1. Descripción de un Sistema de Visión por Computador .......................................... 6 2.1.2. Análisis de imágenes............................................................................................... 7 2.2. Cámaras Digitales ........................................................................................................... 8 vi 2.2.1. El dispositivo de carga acoplada en la captura de imágenes .................................. 8 2.2.2. Modelo básico de cámara, punta de alfiler (pinhole).............................................. 9 2.2.3. Distorsión de lente ................................................................................................ 13 2.2.4. Cámara hemisférica .............................................................................................. 15 2.2.5. Métodos de calibración de cámaras ...................................................................... 20 2.3. Geometría de dos vistas ................................................................................................ 21 2.3.1. Geometría Epipolar ............................................................................................... 21 2.3.2. Matriz Fundamental .............................................................................................. 23 2.4. Escáner tridimensional .................................................................................................. 24 2.4.1. Escáner de contacto............................................................................................... 25 2.4.2. Escáner sin contacto.............................................................................................. 27 2.5. Fotogrametría Esférica .................................................................................................. 33 2.5.1. Las ecuaciones de colinealidad para la fotogrametría esférica ............................. 36 2.5.2. La condición de coplanaridad ............................................................................... 37 2.5.3. Extracción de correspondencias............................................................................ 40 2.6. Drones o UAV .............................................................................................................. 40 2.6.1. Partes básicas de un dron ...................................................................................... 40 2.6.2. Clasificación ......................................................................................................... 41 2.6.3. Gimbal................................................................................................................... 42 CAPÍTULO III .............................................................................................................................. 44 3. Metodología .......................................................................................................................... 44 3.1. Tipo de estudio.............................................................................................................. 44 3.2. Metodología de la investigación ................................................................................... 44 3.3. Identificación de necesidades y requisitos para el prototipo ........................................ 46 3.3.1. Arquitectura del prototipo ..................................................................................... 47 3.4. Selección de técnicas y tecnologías .............................................................................. 47 3.5. Búsqueda de ideas ......................................................................................................... 50 3.5.1. Cámara de seguridad ............................................................................................. 50 3.5.2. Cámara Charge Coupled Device para drones ....................................................... 51 3.5.3. Universal Clip Lens .............................................................................................. 52 vii 3.6. Planteamiento de soluciones ......................................................................................... 53 3.7. Elaboración del prototipo .............................................................................................. 54 3.7.1. Análisis para la obtención de coordenadas de un punto 3D ................................. 54 3.7.2. Calibración de la cámara ....................................................................................... 60 3.7.3. Toma de fotografías .............................................................................................. 61 3.7.4. Identificación de puntos clave .............................................................................. 62 3.7.5. Correspondencia de puntos ................................................................................... 64 3.7.6. Algoritmo de cálculo de coordenadas 3D ............................................................. 66 3.7.7. Métodos de Traslación y Rotación ....................................................................... 68 3.7.8. Presentación de la nube de puntos ........................................................................ 69 3.7.9. Elaboración del soporte para el teléfono móvil .................................................... 69 CAPÍTULO IV.............................................................................................................................. 72 4. Pruebas y Resultados ............................................................................................................ 72 4.1. Simulación en Cinema 4D ............................................................................................ 72 4.2. Cálculo de coordenadas de un solo punto P.................................................................. 73 4.3. Pruebas de vuela con el quadcópter .............................................................................. 74 4.4. Análisis de un edificio de la Facultad de Ingeniería Ciencias Físicas y Matemática ... 76 CAPÍTULO V ............................................................................................................................... 87 5. Conclusiones y Recomendaciones ........................................................................................ 87 5.1. Conclusiones ................................................................................................................. 87 5.2. Recomendaciones ......................................................................................................... 88 BIBLIOGRAFÍA .......................................................................................................................... 90 ANEXOS ...................................................................................................................................... 94 viii LISTA DE FIGURAS Figura 2.1 Sistema de visión por computador (Mery, 2004) .......................................................... 6 Figura 2.2 Esquema de un proceso de análisis de imágenes (Mery, 2004) .................................... 7 Figura 2.3 Sistema CCD para capturar imágenes digitales (Barranco, Martínez, & Gómez, 2016). ................................................................................................................................................. 9 Figura 2.4 Modelo de cámara pinhole (Mery, 2004). ................................................................... 10 Figura 2.5 Rotación 𝜶, 𝜷, 𝜽 de un punto alrededor de los ejes X, Y, Z (Barranco, Martínez, & Gómez, 2016) ........................................................................................................................ 11 Figura 2.6 Geometría del pixel influye en la manera de modelar las imágenes digitales (Barranco, Martínez, & Gómez, 2016) ................................................................................................... 12 Figura 2.7 Componente de distorsión: radial y tangencial (Aguirre, 2016). ................................ 14 Figura 2.8 Orientación Interior (Luhmann, Robson, Kyle, & Harley, 2006) ............................... 14 Figura 2.9 Proyecciones clásicas (Models for the various classical lens projections, s.f.) .......... 16 Figura 2.10 Ejemplo de diferentes proyecciones (Thody, 2012) ................................................. 18 Figura 2.11 a) Proyección de perspectiva central. b) Proyección de ojo de pez (Schwalbe). ...... 18 Figura 2.12 Relación entre el punto de objeto y el punto de imagen (Schwalbe). ....................... 19 Figura 2.13 Patrón de tablero de ajedrez (Aguirre, 2016). ........................................................... 21 Figura 2.14 Geometría de correspondencia de puntos (Hartley & Zisserman, 2004) .................. 22 Figura 2.15 Geometría epipolar (Hartley & Zisserman, 2004). .................................................... 22 Figura 2.16 Métodos de Adquisición 3D según el hardware (Ruiz Segarra, 2016) ..................... 25 Figura 2.17 Escáner de brazo articulado (Ruiz Segarra, 2016) .................................................... 26 Figura 2.18 Escáner CMM (Abdel-Bary, 2011) ........................................................................... 26 Figura 2.19 Tomografía computarizada (Da Sousa, 2016) ........................................................... 27 Figura 2.20 Tiempo de vuelo para un pulso láser (Martín Barrio, 2016) ..................................... 28 Figura 2.21 Triangulación óptica (Ruiz Segarra, 2016) ............................................................... 29 Figura 2.22 Deformación que se produce cuando la luz impacta sobre una superficie tridimensional (Martín Barrio, 2016) .................................................................................... 30 Figura 2.23 Ejemplo de escáner que usa tecnología de Silueta (Dzananovic Ustovic, 2012). ..... 31 Figura 2.24 Del objeto a la imagen (Luhmann, Robson, Kyle, & Harley, 2006). ........................ 32 Figura 2.25 Proceso para la fotogrametría (Luhmann, Robson, Kyle, & Harley, 2006). ............. 33 ix Figura 2.26 Creación de una imagen panorámica: a) Proyección en un plano, b) Proyección sobre un cilíndrico, c) Proyección sobre una esfera, d) Panorama esférico (Cabezos Bernal & Cisneros Vivó, 2016) ............................................................................................................ 34 Figura 2.27 La proyección de latitud-longitud. Relación entre las coordenadas esféricas y la coordenada de la imagen de una imagen esférica (D'Annibale & Fangi, 2009) ................... 35 Figura 2.28 El punto de objeto P, el sistema esférico y el sistema terrestre, es un sistema centrado en el centro de la esfera y con su eje Z' paralelo al eje Z del sistema terrestre; dicho sistema tiene que estar orientado en un ángulo 𝜽𝟎 (Fangi & Nardinocchi, 2013). ........................... 36 Figura 2.29 Coplanaridad de dos panoramas esféricos (Fangi & Nardinocchi, 2013). ................ 38 Figura 2.30 Resultados de varios conjuntos de datos de imágenes panorámicas, que muestran los puntos coincidentes automáticamente (b, e, h), resultados de orientación (c, f, i) y reconstrucciones 3D de la escena (d, g, l) (Barazzetti, Fangi, Remondino, & Scaioni, 2010). ............................................................................................................................................... 39 Figura 2.31 Ejemplo de UAV de ala fija (Carrasco, 2015) .......................................................... 41 Figura 2.32 Ejemplo de UAV rotatorio (Carrasco, 2015). ........................................................... 41 Figura 2.33 Disposición de hélices de un quadcópter (García). ................................................... 42 Figura 2.34 Diferentes movimientos en un quadcópter (García). ................................................. 42 Figura 2.35 Gimbal en un dron (Ferreño, 2017) ........................................................................... 43 Figura 3.1 Fases de la Metodología de la investigación tecnológica ............................................ 45 Figura 3.2 Esquema del proceso del prototipo.............................................................................. 47 Figura 3.3 Característica VR cam (Manual usuario cámara 360°, s.f.) ........................................ 51 Figura 3.4 Cámara CCD FPV (Tipos de cámara FPV para un dron de carrera, s.f.) .................... 52 Figura 3.5 Kit Universal clip lens (Villareal, 2017) ..................................................................... 53 Figura 3.6 Diagrama de la relación de dos imágenes hemisféricas. .......................................... 55 Figura 3.7 Vista lateral izquierda .................................................................................................. 56 Figura 3.8 Vista inferior................................................................................................................ 56 Figura 3.9. Representación en pixeles de cada imagen. ............................................................... 58 Figura 3.10 Ejemplo de fotografía de patrón de ajedrez. .............................................................. 60 Figura 3.11 Código de la función cv2.fisheye.calibrate. .............................................................. 60 Figura 3.12 Posición de la cámara en cada fotografía .................................................................. 61 x Figura 3.13 Código: Algoritmo cv2.goodFeaturesToTrack ......................................................... 62 Figura 3.14 Esquina en una imagen .............................................................................................. 63 Figura 3.15 Ejemplo algoritmo SIFT ............................................................................................ 63 Figura 3.16 Ejemplo algoritmo ORB para la detección de puntos clave ...................................... 64 Figura 3.17 Código algoritmo ORB para la coincidencia de características ................................ 65 Figura 3.18 Cálculo de Matriz Fundamental y su Determinante .................................................. 66 Figura 3.19 Método para la obtención de los puntos 3D .............................................................. 67 Figura 3.20 a) Método de traslación. b) Método de rotación....................................................... 68 Figura 3.21 Ejemplo de presentación de puntos 3D ..................................................................... 69 Figura 3.22 Diseño de soporte 3D ................................................................................................ 70 Figura 3.23 Simulación de montaje de soporte en el quadcópter ................................................. 70 Figura 3.24 Impresora DIY 2018 .................................................................................................. 71 Figura 3.25 Resultado del soporte impreso................................................................................... 71 Figura 4.1 Simulación en Cinema 4D. .......................................................................................... 72 Figura 4.2 a) Imagen 1 b) Imagen 2. ............................................................................................. 73 Figura 4.3 Error en la forma de la semiesfera ............................................................................... 74 Figura 4.4 Dispositivo acoplado al quadcópter............................................................................. 75 Figura 4.5 Edificio de la Facultad de Ingeniería Ciencias Físicas y Matemática ......................... 76 Figura 4.6 Distribución de las fotografías del edificio de la facultad ........................................... 77 Figura 4.7 Medidas necesarias para el análisis. ............................................................................ 78 Figura 4.8 Fotografías tomadas del edificio de estudio. ............................................................... 79 Figura 4.9 Resultado algoritmo goodFeaturesToTrack ................................................................ 79 Figura 4.10 Resultado algoritmo ORB ......................................................................................... 80 Figura 4.11 Resultado algoritmo Brute Force Matcher ................................................................ 81 Figura 4.12 Sintaxis del algoritmo para guardar puntos de interés de una imagen. ..................... 83 Figura 4.13 Resultados de la nube de puntos. a) Vista Frontal. b) Vista Superior. c) Vista Lateral. ............................................................................................................................................... 84 Figura 4.14 Comparación entre el edificio real y la nube de puntos obtenida. ............................. 84 xi LISTA DE TABLAS Tabla 1: Cuadro comparativo de Lenguaje de Programación ....................................................... 48 Tabla 2: Cuadro comparativo de IDE’s que trabajan con Python. ............................................... 49 Tabla 3: Cuadro comparativo de librerías de visión computacional............................................. 50 Tabla 4: Longitud focal de la cámara FPV ................................................................................... 52 Tabla 5 Cuadro comparativo de las opciones de cámara .............................................................. 54 Tabla 6. Análisis de cada uno de los posibles casos. .................................................................... 58 Tabla 7: Características LG K8..................................................................................................... 69 Tabla 8: Características de impresora 3D ..................................................................................... 71 Tabla 9: Resumen de resultados de la prueba 1 ............................................................................ 73 Tabla 10 Resumen de resultados de la prueba 2 ........................................................................... 74 Tabla 11: Resultados de la primera prueba de vuelo .................................................................... 75 Tabla 12: Resultados del producto: 𝒙′𝑻𝑭𝒙, con puntos correspondientes ................................... 82 Tabla 13: Estimación del error. ..................................................................................................... 85 Tabla 14: Ejemplo del análisis realizado para estimar en error de los ejes. ................................. 85 Tabla 15: Características del Dron Tarot ...................................................................................... 94 xii LISTA DE ANEXOS ANEXO 1. CARACTERÍSTICAS DEL DRON TAROT ............................................................ 94 ANEXO 2. ANÁLISIS DE LAS TRES CÁMARAS PROPUESTAS ......................................... 95 ANEXO 3. TOMA DE FOTOGRAFÍAS EN LAS PRUEBAS DE VUELO ............................ 108 xiii TÍTULO: Desarrollo de un prototipo de escáner óptico 3D montado en un UAV con cámara omnidireccional utilizando la técnica de fotogrametría esférica. Autor: Oña Vilatuña María Belén Tutor: Fis. Gonzalo Bayardo Campuzano Nieto RESUMEN El presente proyecto consiste en el desarrollo de un prototipo de escáner 3D utilizando como base la técnica de fotogrametría haciendo uso de una cámara omnidireccional o de 360° como una alternativa rápida para la obtención de modelos 3D principalmente de espacios exteriores. En una primera instancia se realizó una investigación sobre la técnica de Fotogrametría que haga uso de este tipo de lentes de 360° para este propósito, con la finalidad de conocer su complejidad ya que este mercado no ha sido explorado en países de Latinoamérica. Se seleccionó la herramienta de software libre más adecuado para el procesamiento de imágenes, la cual fue Python, y la librería OpenCV. Este prototipo ha sido desarrollado de tal forma que la captura de imágenes se lo pueda realizar con la ayuda de un UAV (vehículo aéreo no tripulado) con la finalidad de en un futuro poder obtener fotografías aéreas de una determinada edificación. PALABRAS CLAVE: FOTOGRAMETRÍA ESFÉRICA / ESCÁNER TRIDIMENSIONAL / DIGITALIZACIÓN 3D / CÁMARA OMNIDIRECCIONAL. xiv TITLE: Development of a 3D optical scanner prototype assembled on a UAV with omnidirectional camera using the spherical photogrammetry technique. Author: Oña Vilatuña María Belén Tutor: Fis. Gonzalo Bayardo Campuzano Nieto ABSTRACT The present project consists of the development of a prototype of 3D scanner using as a base the technique of photogrammetry in the use of an omnidirectional camera or 360° as a fast alternative for the obtaining of 3D models mainly of exterior spaces. In the first time an investigation was carried out on the photogrammetry technique that makes use of this type of 360 ° lens for this purpose, with the objective of knowing its content and that this market has not been explored in the Latin American countries. It is selected the most appropriate free software tool for image processing, which was Python, and the OpenCV library. This prototype has been developed in such a way that the capture of images can be done with the help of a UAV (unmanned aerial vehicle) with the purpose of a future to obtain the characteristics of a specific building. KEYWORDS: SPHERICAL PHOTOGRAMMETRY / THREE-DIMENSIONAL SCANNER / 3D DIGITIZATION / OMNIDIRECTIONAL CAMERA. xv INTRODUCCIÓN La digitalización 3D se ha convertido en una herramienta poderosa en varias industrias como arquitectura, ingeniería, medicina, educación, arte, diseño entre otros, permitiendo obtener un modelo 3D de cualquier objeto. Hoy en día, en nuestro país dicha tecnología no ha sido explotada a plenitud generalmente se realizan escaneos 3D de piezas arquitectónicas, espacios interiores, animales, objetos varios, siendo el común denominador de todos estos su reducido tamaño que va desde centímetros hasta unos pocos metros. En Ecuador no existe un registro de una digitalización 3D de edificaciones completas debido a la complejidad que esto podría resultar además de los altos costos y el tiempo invertido, tampoco se utilizan fotografías panorámicas para la obtención de información; por esta razón el presente proyecto de investigación se enfoca en el desarrollo de un prototipo de escáner 3D capaz de digitalizar estructuras de cualquier tamaño, para esto se hará uso de una lente omnidireccional ya que su campo de visión es mucho más amplio, obteniendo así más información de una imagen que una fotografía común. En este caso se utilizará la técnica de fotogrametría que ha resultado una técnica poderosa utilizada para el escaneo 3D a gran escala. Debido al tipo de imágenes con las que se trabajará se pretende hacer uso de una técnica denominada Fotogrametría Esférica desarrollada por investigadores italianos. 1 CAPÍTULO I 1. Presentación del Problema 1.1. Antecedentes En los últimos 20 años se ha dado una aceleración en la mejora de procesos digitales para la obtención de modelos tridimensionales donde la aportación fotográfica en los sistemas tradicionales de medición ha hecho la diferencia. La Fotogrametría es una novedosa solución para la obtención de modelos en 3D, esta se basa en la utilización de imágenes tomadas desde todos los puntos de vista del objeto, sobre las que se encontrará puntos homólogos para obtener un modelo tridimensional (Rodriguez Navarro). Así como los procesos digitales han mejorado, la fotografía también lo ha hecho con la aparición de las imágenes panorámicas, las cuales en un principio se las obtenía a través de la costura de imágenes y cuya ventaja es su gran campo de visión, gracias a este avance investigadores italianos. A este respecto, Luigi Barazzetti, Enzo d'Annibale, Gabriele Fangi (Automation in Multi-Image Spherical Photogrammetry for 3D Architectural Reconstructions, 2010) de la Università Politecnica delle Marche desarrollaron la llamada técnica de Fotogrametría Esférica que usa imágenes panorámicas para la obtención de modelos 3D, además desarrollaron las ecuaciones fotogramétricas fundamentales para esta técnica. La Fotogrametría Esférica ha sido probada por sus creadores en varias partes del mundo entre las cuales podemos mencionar los siguientes: Jordania Para el año 2009 el procedimiento ya había sido probado; sin embargo, ni la fase de orientación ni trazado eran automatizadas, además existía la limitación de la difícil identificación de puntos correspondientes sobre todo si de superficies rugosas y desiguales hablamos. Debido a lo cual se optó por la edición interactiva 3D del modelo obtenido. El caso de estudio fue el Monasterio Al Deir en Petra, siendo el monumento más grande de esa localidad con 40 m de ancho. (D'Annibale & Fangi, 2009) Siria Durante un viaje realizado por Fangi a Siria, pudo realizar una cobertura fotográfica de sitios de la UNESCO, este trabajo sería de vital importancia pues la guerra civil que estalló en 2011 provocó 2 graves daños a sus monumentos. La ciudadela de Alepo fue uno de los lugares estudiados, se realizó la reconstrucción virtual no solo de la ciudadela sino también de la mezquita. (Fangi, Piermattei, & Wahbeh, Spherical Photogrammetry as Rescue Documentation for The Reconstruction of some UNESCO Sites in Syria, 2013) Brasil Brasil cuenta con el Laboratorio de Gráficos por Computador aplicados al diseño y arquitectura en la Escuela de Arquitectura de la Universidad Federal de Bahía, ellos en colaboración con la Università Politecnica delle Marche, Italia, trabajaron en la documentación de patrimonio arquitectónico de Bahía además de construir una plataforma tecnológica para observar los modelos 3D de sus monumentos. (Fangi, de Amorim, & Malinverni, 2013) Vietnam La Universidad Politécnica delle Marche se encargó del estudio y documentación de las Torres Chan en Vietnam. La etapa de orientación de Fotogrametría Esférica dio como resultado un conjunto de panoramas útil para las salidas del modelo 3D. El primer producto fue el modelo tridimensional, el cual fue texturizado y renderizado utilizando la imagen rectificada original. (Fangi, Malinverni, & Tassetti, 2013) El desarrollo de la Técnica de Fotogrametría Esférica ha sido la base para que investigadores de otros países realicen sus propias reconstrucciones utilizando cada vez cámaras más modernas como es el caso de la Samsung Gear 360° o la Panono 360° compuesta por 36 cámaras que cubren un campo de visión completo. 1.2. Formulación del Problema Existen varias industrias que utilizan el escaneo 3D para sus fines; sin embargo, este tipo de tecnologías suponen un alto costo y tiempo al momento de llevarlos a cabo. Para la replicación de objetos pequeños la iluminación estructurada o el escáner por triangulación han sido la principal herramienta utilizada, dando resultados favorables, pero en el caso de un escaneo 3D de espacios más amplios y el de edificios ha significado un verdadero reto. Una de las soluciones encontrada ha sido el modelado pieza por pieza que dicho espacio, o en el caso de construcciones más 3 elaboradas se ha hecho uso de los planos de las mismas, a pesar de que los resultados sean adecuados, el tiempo que conlleva hacerlo puede durar varios meses. 1.3. Justificación Ecuador ha demostrado un creciente desarrollo en la utilización de tecnologías de digitalización 3D, a pesar de ello la mayor parte de estos estudios han sido utilizando cámaras unifocales o bifocales. El uso de cámaras 360 a pesar de proporcionar una imagen mucho más amplia y completa que nos da mayor información en una sola fotografía no ha sido muy utilizado, por lo que proyectos enfocados con este tipo de cámaras han sido desarrollados mayoritariamente en países de Europa y Estados Unidos. Además, debemos tomar en cuenta que en nuestro país no hay un registro de réplicas tridimensionales de edificios o estructuras de mayor escala. Por ello, disponer de esta tecnología de vanguardia en Ecuador marcaría un paso importante en la evolución del escaneo 3D en esta región. 1.4. Objetivos 1.4.1. Objetivo General Desarrollar un prototipo de escáner 3D que use una cámara omnidireccional (360°) para la digitalización de edificaciones. 1.4.2. Objetivos Específicos Estudiar la mejor herramienta para la digitalización 3D que use cámaras omnidireccionales. Usar la fotogrametría para componer una geometría tridimensional a partir de imágenes. Utilizar un UAV para la obtención de toma aérea de un espacio determinado. Obtener una nube de puntos correspondientes a partir de dos imágenes del mismo espacio. 4 1.5. Hipótesis Dado que en Ecuador solamente existen escáneres 3D orientados a la digitalización de objetos pequeños. La incursión de la tecnología de escáner 3D con cámaras omnidireccionales sería la respuesta para obtener un modelo tridimensional de edificaciones u objetos de gran escala. 1.6. Alcance El presente estudio proporciona las bases para la elaboración del prototipo de escáner 3D con cámara 360°, tanto en fundamentos fotogramétricos basados en panoramas esféricos; análisis de los componentes que serán necesarios para la adaptación del quadcópter y su funcionamiento; procesamiento de las imágenes obtenidas, además de la obtención de la nube de puntos del lugar a ser escaneado. 1.7. Limitaciones El desarrollo de un escáner tridimensional que nos dé resultados de calidad con frecuencia requiere del trabajo de un equipo conformado por un número considerable de personas las cuales necesitan estar preparadas y tener experiencia en cada área determinada. El procesamiento de imágenes para fotografías omnidireccionales las cuales poseen una aberración considerable requiere de un análisis espacial. La manipulación de un quadcópter suele ser realizado por personas con años de práctica. 5 CAPÍTULO II 2. Marco Teórico 2.1. Visión por Computador La visión por computador es la transformación de datos de una fotografía o vídeo en una nueva representación, estas transformaciones se las hace con un objetivo específico. Una nueva representación podría ser el convertir una imagen de color a otra en escala de grises, o eliminar el movimiento de la cámara en una secuencia de imágenes (Kaehler & Bradski, 2016). Haralick y Shapiro (Computer and robot vision, 1992) definen a la Visión por Computador como la ciencia que desarrolla las bases teóricas y algorítmicas para obtener información sobre el mundo real a partir de una o varias imágenes. Así, se deja establecido la forma en que se va a tratar este concepto a lo largo del trabajo. 2.1.1. Descripción de un Sistema de Visión por Computador Como Mery (2004) nos muestra en su libro “Visión por Computador” los componentes de un sistema de visión por computador son: Figura 2.1 Sistema de visión por computador (Mery, 2004) 6 El manipulador: ayuda a colocar al objeto de estudio en la posición deseada sin que este sea tocado por el humano. Al poseer grados de libertad (traslación y/o rotación) indica los posibles movimientos que puede hacer para mover el objeto. Hay configuraciones en donde el manipulador mueve a las cámaras en lugar de al objeto. Fuente de energía: según el análisis que se desee hacer, se debe escoger el tipo de luz a utilizar como, por ejemplo: rayos X para una tomografía, luz (visible) para la fotografía, calor en la termología, etc. Sensor de imagen: debe ser sensible a la luz que se ha utilizado, teniendo un elemento fotosensible que transforme fotones reflejados por el objeto en alguna señal eléctrica. Conversor Análogo-Digital: convierte la señal eléctrica en un código binario que será interpretado por un computador para conformar la imagen digital de estudio. Computador: procesa la imagen enviada por el conversor análogo-digital. Entre las tareas de un computador tenemos: mejoramiento de imagen, segmentación, clasificación y análisis espacial. 2.1.2. Análisis de imágenes El esquema de un proceso de análisis de imágenes es el siguiente: Figura 2.2 Esquema de un proceso de análisis de imágenes (Mery, 2004) 7 Adquisición: Se adquiere la imagen apropiada del objeto de estudio. Procesamiento: Se emplean ciertos filtros digitales que ayuden a mejorar la imagen, como eliminación de ruido, o aumento de contraste. Segmentación: Se identifica el objeto de estudio de la imagen. Medición: Extracción de características. Interpretación: Según los valores obtenidos se lleva a cabo la interpretación del objeto. 2.2. Cámaras Digitales Actualmente la tecnología para desarrollar la visión por computadora se ha basado en las cámaras digitales, ya que tienen propiedades de una fuente de información digital. Estás cámaras capturan imágenes o vídeos que se traducen en fotografías o frames los cuales serán analizados por un microprocesador que ayuda en la toma de decisiones sobre que rutas seguir. Una fotografía ayuda a observar el entorno y analizarlo a través de programas de cómputo (Barranco, Martínez, & Gómez, 2016). 2.2.1. El dispositivo de carga acoplada en la captura de imágenes Barranco, Martínez, y Gómez (Visión estereoscópica por computadora con Matlab y OpenCV, 2016) nos dice que para conocer cómo se trabajaría con una imagen proveniente de una cámara digital es necesario saber la técnica utilizada en la fotografía digital. Este proceso se lleva a cabo por medio de un dispositivo llamado: dispositivo de cargas interconectadas CCD o en inglés, Charge-Coupled Device. El CCD es un circuito integrado que posee un número específico de condensadores acoplados en forma de matriz, estos condensadores son sensores de luz de una determinada frecuencia, que son las frecuencias de color azul, verde y rojo que constituyen el esquema RGB. El CCD está compuesto por una matriz de n.m números de sensores de luz los cuales translucen la energía luminosa a movimiento de electrones provocando una corriente eléctrica. A continuación, se muestra la configuración de un sistema CCD (Barranco, Martínez, & Gómez, 2016). 8 Figura 2.3 Sistema CCD para capturar imágenes digitales (Barranco, Martínez, & Gómez, 2016). 2.2.2. Modelo básico de cámara, punta de alfiler (pinhole) Sámano Molina (2013) afirma que la mayoría de procedimientos para la calibración de cámara se basaron en la cámara pinhole, que es el modelo más simple de una cámara. Este modelo consiste en un centro óptico C, donde convergen todos los rayos de la proyección y un plano R donde se proyecta la imagen. El plano de la imagen está ubicado a una distancia focal1 f del centro óptico y perpendicular al eje Z. Considerando la proyección central de puntos en el espacio dentro de un plano. Siendo el centro de proyección el origen de un sistema de coordenadas euclidiano, se considera el plano 𝑅, el cual es llamado plano focal o plano de imagen. Bajo el modelo de cámara pinhole, un punto en el espacio con coordenadas 𝑿 = (𝑋, 𝑌, 𝑍)𝑇 es asignado un punto sobre el plano de imagen, donde una línea que une el centro de proyección con el punto M se encuentra en el plano de imagen, como se muestra en la Figura 2.4 (Sámano Molina, 2013). 1 La distancia focal o longitud focal de una lente es la distancia entre el centro óptico de la lente y el foco (o punto focal). 9 Figura 2.4 Modelo de cámara pinhole (Mery, 2004). En la recta ̅̅̅̅̅ 𝐶𝑀, m es el punto 2D de intersección que tiene esta recta con el plano de imagen, se lo puede representar como: 𝑚 = ̅̅̅̅̅ 𝐶𝑀 ∩ 𝑅 Continuando con Sámano Molina (2013) el centro de proyección es llamado también centro de cámara o centro óptico. La línea desde el centro de cámara se denomina eje principal o rayo principal de la cámara, y el punto donde el eje principal se encuentra con el plano es llamado punto principal. Barranco, Martínez y Gómez (Visión estereoscópica por computadora con Matlab y OpenCV, 2016) nos dice que existe una transformación de 3D a 2D muy utilizada que se lo puede representar de la siguiente manera: ̃ 𝑠𝑚 = 𝐴[𝑅𝑡]𝑀 Donde: ̃ = (x, y, z, 1)T : es un punto 3D del objeto en coordenadas homogéneas. M m ̃ = (u, v, 1)T : es el mismo punto 2D anterior. s: factor de escala [Rt]: Matriz de parámetros extrínsecos de la cámara. A: Matriz de parámetros intrínsecos de la cámara. 10 2.2.2.1. Parámetros Extrínsecos Barranco, Martínez, & Gómez (2016) explican en su libro Visión estereoscópica por computadora con Matlab y OpenCv, que se refiere al decir parámetros Extrínsecos e Intrínsecos, lo cual se verá a continuación: [𝑅 𝑡] es la matriz de parámetros extrínsecos de la cámara, o también llamada matriz de parámetros externos, que definen la posición de la cámara en el sistema de coordenadas del mundo real. R es una matriz de rotación la cual alinea los ejes X, Y, Z en la misma dirección y sentido. El vector t es el vector de traslación que traslada el origen de sistema de coordenadas del objeto en el espacio al sistema de coordenadas de cámara. 𝑡 = [𝑡𝑥 , 𝑡𝑦 , 𝑡𝑧 ] Gracias a tres matrices de rotación alrededor del eje X que está especificada con un ángulo α, rotación alrededor del eje Y especificada por β y la rotación alrededor del eje Z dada por θ, se da la rotación de ejes. Figura 2.5 Rotación (𝜶, 𝜷, 𝜽) de un punto alrededor de los ejes X, Y, Z (Barranco, Martínez, & Gómez, 2016) A continuación, se muestran las matrices de rotación de cada uno de los ejes. 1 0 0 cos (𝛼) 𝑅𝛼 = [ 0 −sen(𝛼) cos(𝛽) 𝑅𝛽 = [ 0 sen(𝛽) 11 0 sen(𝛼)] cos(𝛼) 0 −sen(𝛽) 1 0 ] 0 cos(𝛽) cos(𝜃) 𝑅𝜃 = [sen(𝜃) 0 −sen(𝜃) cos(𝜃) 0 0 0] 1 Al multiplicar las tres matrices para trabajar solo con una tenemos lo siguiente: 𝑐𝑜𝑠(𝛽)𝑐𝑜𝑠(𝜃) 𝑅 = 𝑅𝛼 𝑅𝛽 𝑅𝜃 [𝑠𝑒𝑛(𝛼) 𝑠𝑒𝑛(𝛽)𝑐𝑜𝑠(𝜃) + 𝑐𝑜𝑠(𝛼) 𝑠𝑒𝑛(𝜃) 𝑐𝑜𝑠(𝛼)𝑠𝑒𝑛(𝛽) 𝑐𝑜𝑠(𝜃) − 𝑠𝑒𝑛(𝛼) 𝑠𝑒𝑛(𝜃) −𝑐𝑜𝑠(𝛽)𝑠𝑒𝑛(𝜃) −𝑠𝑒𝑛(𝛽) −𝑠𝑒𝑛(𝛼) 𝑠𝑒𝑛(𝛽)𝑠𝑒𝑛(𝜃) + 𝑐𝑜𝑠(𝛼) 𝑐𝑜𝑠(𝜃) 𝑠𝑒𝑛(𝛼)cos(𝛽)] − cos(𝛼) 𝑠𝑒𝑛(𝛽)𝑠𝑒𝑛(𝜃) − 𝑠𝑒𝑛(𝛼)cos(𝜃) cos(𝛼) cos(𝛽) La matriz de rotación R de forma simplificada se la encuentra de la siguiente manera: 𝑟11 𝑟12 𝑟13 𝑅 = [𝑟21 𝑟22 𝑟23 ] 𝑟31 𝑟32 𝑟33 Por lo tanto, la versión de matriz aumentada con el vector de traslación: 𝑟11 𝑟12 𝑟13 𝑡1 [𝑅𝑡] = [𝑟21 𝑟22 𝑟23 𝑡2 ] 𝑟31 𝑟32 𝑟33 𝑡3 2.2.2.2. Parámetros Intrínsecos Los parámetros intrínsecos definen la geometría interna y la óptica de la cámara. Estos determinan cómo la cámara proyecta los puntos del mundo 3D al plano de la imagen en 2D. Nos proporciona la siguiente información: Los coeficientes fx y fy nos da información de las dimensiones del pixel, su ancho y alto. El centro de la imagen C. El parámetro s es llamado skew y constituye la inclinación del pixel la cual se considera muy pequeña o cero. Figura 2.6 Geometría del pixel influye en la manera de modelar las imágenes digitales (Barranco, Martínez, & Gómez, 2016) 12 Formalmente, estos valores vienen representados por una matriz K. 𝑓𝑥 𝐾 = [0 0 𝑠 𝑓𝑦 0 𝐶𝑥 𝐶𝑦 ] 1 Para encontrar el punto de la fotografía correspondiente al punto del espacio fotografiado se utiliza la matriz: 𝑠𝑢 𝑓𝑥 [𝑠𝑣 ] = [ 0 𝑠 0 𝑠 𝑓𝑦 0 𝐶𝑥 𝑟11 𝐶𝑦 ] [𝑟21 1 𝑟31 𝑟12 𝑟22 𝑟32 𝑟13 𝑡1 𝑋 𝑟23 𝑡2 ] [𝑌 ] 𝑟33 𝑡3 𝑍 1 Al realizar el producto de la matriz de parámetros extrínsecos y la matriz de parámetros intrínsecos obtenemos lo siguiente: 𝑚11 𝑠𝑢 [𝑠𝑣 ] = [𝑚21 𝑚31 𝑠 𝑚12 𝑚22 𝑚32 𝑚13 𝑚14 𝑋 𝑚23 𝑚24 ] [𝑌 ] 𝑚33 𝑚34 𝑍 1 2.2.3. Distorsión de lente La curvatura de la lente de una cámara introduce una deformación de la imagen, debido a esta distorsión las líneas del espacio 3D que son rectas serán vistas como líneas curvas. Este efecto suele ser despreciable en el centro de la imagen, pero se va a grabando a medida que se acerca a los extremos, donde la normal de la superficie deja de ser paralela al eje óptico (Mery, 2004). Para (Aguirre, 2016) los efectos de la distorsión se traducen en una variación de posición de los puntos de la imagen, se constituyen por una componente radial y otra tangencial. 13 Figura 2.7 Componente de distorsión: radial y tangencial (Aguirre, 2016). Según Luhmann, Robson, Kyle, y Harley (Close Range Photogrammetry Principles, techniques and applications, 2006) una cámara se puede modelar como un sistema espacial que consiste en un área de imagen plana (película o Sensor electrónico) y la lente con su centro de perspectiva. Los parámetros de orientación interior de una cámara definen la posición espacial del centro de perspectiva, la distancia principal y la ubicación del punto principal. También abarcan desviaciones del principio de perspectiva central para incluir distorsión radial y tangencial y, a menudo, afinidad y ortogonalidad de imagen. Figura 2.8 Orientación Interior (Luhmann, Robson, Kyle, & Harley, 2006) Tras incluir la distorsión en una imagen queda definido su proceso de formación, la orientación interna que depende de los parámetros internos siguientes (Luhmann, Robson, Kyle, & Harley, 2006). • Punto principal H′: 14 Centro de perspectiva con coordenadas de imagen (x′0, y′0), para cámaras estándar aproximadamente igual al centro de la imagen: H′ ≈ M′ • Distancia principal c: Distancia normal al centro de perspectiva desde el plano de la imagen en la dirección negativa de z′; aproximadamente igual a la distancia focal de la lente cuando se enfoca en el infinito: c ≈ f ′ • Parámetros de funciones que describen errores de imagen: Las funciones o los parámetros que describen las desviaciones del modelo de perspectiva central están dominados por el efecto de la distorsión radial simétrica Δ′. Si se conocen estos parámetros, el vector de imágenes (sin errores) x' se puede definir con respecto al centro de perspectiva: 𝑥′𝑝 − 𝑥′0 − ∆𝑥′ 𝑥′ 𝒙′ = [𝑦′] = [𝑦′𝑝 − 𝑦′0 − ∆𝑦′] 𝑧′ −𝑐 Donde: (𝑥′𝑝 , 𝑦′𝑝 ): Coordenadas imagen medidas del punto p (𝑥′0 , 𝑦′0): Coordenadas del punto principal H’. ∆𝑥 ′ , ∆𝑦 ′: Correcciones. 2.2.4. Cámara hemisférica La cámara hemisférica está compuesta por una cámara digital equipada con un lente angular u ojo de pez, estos lentes tienen una distancia focal extremadamente corta. Además, estos cuentan con un campo visual cercano a los 180° (Diaz, Lencinas, & del Valle, 2014). Según nos dicen (Marcato, Antunes, & Garcia, 2015) la cámara con lente ojo de pez debe calibrarse para usarse en aplicaciones que requieren alta precisión. En fotogrametría, la colinealidad, basado en la proyección en perspectiva junto con modelos de distorsión de lente, se usa para la calibración de la cámara. Sin embargo, las lentes de ojo de pez están diseñadas siguiendo diferentes modelos de proyección, tales como: estéreo-gráfico, equidistante, ortogonal y ángulo equi-sólido. 15 Proyecciones clásicas de lentes Existen 5 modelos de proyecciones más utilizadas, las cuales se encuentran representadas a continuación. Donde el eje horizontal es el ángulo de la luz incidente en la lente donde 0 grados están a lo largo del eje de la lente. El eje vertical es proporcional al radio en la imagen de ojo de pez donde esa luz sale de la lente (Bourke, 2017). Figura 2.9 Proyecciones clásicas (Models for the various classical lens projections, s.f.) Esta gráfica ilustra la distancia r que se extiende desde el centro de la imagen hasta el punto de Imagen (en el plano de la imagen) en función del ángulo θ medido desde el eje longitudinal de la lente hasta el punto de interés correspondiente (en el espacio objeto). La fórmula para la proyección no distorsionada "estándar" (también conocida como perspectiva central o rectilínea) es r = f tan θ. La mayoría de las lentes fotográficas pertenecen a este primer tipo de proyección que representa líneas rectas en el espacio del objeto como líneas rectas en el plano de la imagen. Por otro lado, las fórmulas trigonométricas para las proyecciones de imágenes de ojo de pez se definen 16 con mayor frecuencia arbitrariamente mediante expresiones verbales que corresponden a funciones matemáticas (Models for the various classical lens projections, s.f.). Tales categorías clásicas son: Proyección estereográfica: r = 2f tan (θ / 2) Proyección de equidistancia (también conocida como equiangular): r = f θ Proyección de ángulo equisólido (también conocido como área igual): r = 2f sin (θ / 2) Proyección ortográfica (también conocida como ley de seno): r = f sin (θ) A primera vista cualquier imagen ojo de pez completamente circular se ve casi igual a cualquier otra para el espectador casual; sin embargo, están lejos de serlo, todo depende de la proyección que están utilicen. A continuación, tenemos un ejemplo de cada una: a) Proyección estereográfica (Longitud focal 7 mm) b) Proyección de ojo de pez equidistante (Longitud focal 7.6 mm) c) Proyección de ojo de pez de ángulo equisólido (Longitud focal 9.2 mm) d) Proyección ortográfica de ojo de pez (Longitud focal 12.2 mm) a) b) 17 c) d) Figura 2.10 Ejemplo de diferentes proyecciones (Thody, 2012) La geometría de una imagen tomada con una lente ojo de pez no cumple con la proyección de perspectiva central donde el ángulo de incidencia del rayo desde un determinado punto de objeto será igual al ángulo entre el rayo y el eje óptico dentro del espacio de la imagen (Figura 2.11). Las cámaras ojo de pez tienen lentes con una función de proyección diferente y siguen el modelo de cámara omnidireccional, la proyección de ojo de pez se basa en el principio de que, en el caso ideal, la distancia entre un punto de imagen y el punto principal depende del ángulo de incidencia del rayo desde el punto del objeto correspondiente (Figura 2.11). Figura 2.11 a) Proyección de perspectiva central. b) Proyección de ojo de pez (Schwalbe). 18 La proyección se puede definir en un mapeo de un punto 3D a un punto 2D en el plano de la imagen del modelo, cada rayo atraviesa el centro de proyección e interseca la esfera de la imagen, que determina la dirección del rayo (Beekmans, y otros, 2016). Para un lente de 180°, se proyecta un rayo de punto de objeto con un ángulo incidente de 90° en el borde exterior de la imagen circular (Figura 2.12), lo que significa que el punto de la imagen resultante tiene la distancia máxima del eje óptico. La relación entre la distancia resultante del punto de imagen y el ángulo de incidencia es constante para toda la imagen (Schwalbe). Por lo que la siguiente ecuación es básica para la proyección de ojo de pez: 𝛼 90° = 𝑟 𝑅 𝐷𝑜𝑛𝑑𝑒 𝑟 = √𝑥′2 + 𝑦′2 donde α = ángulo de incidencia r = distancia entre el punto de imagen y el eje óptico R = radio de la imagen x’, y’ = coordenadas de la imagen Figura 2.12 Relación entre el punto de objeto y el punto de imagen (Schwalbe). 19 2.2.5. Métodos de calibración de cámaras La calibración es el método que nos permite estimar los parámetros extrínsecos e intrínsecos de la cámara. Una vez que calibre una cámara, puede usar la información de la imagen para recuperar información tridimensional de las imágenes bidimensionales, también es posible estimar parámetros de distorsión de la lente (Mery, 2004). Según Rober Tsai (1987) la calibración debe satisfacer varias condiciones como son: Autonomía: No debe necesitar de la mano humana. Precisión: Se debe obtener un resultado de alta precisión para lo cual se deberá incluir la distorsión de las lentes. Eficiencia: Se deberá realizar a una velocidad elevada, así como incluir algoritmos de gran potencial. Versatilidad: Recogerá varias posibilidades en cuando a configuraciones y aplicaciones. Existen varias técnicas para la calibración de cámara, entre estas tenemos las siguientes (Barranco, Martínez, & Gómez, 2016): Método de Fougeras Para utilizar este método se debe conocer los parámetros intrínsecos y los parámetros extrínsecos de la cámara. Método de Zhang Este modelo propone la calibración basado en la observación de una plantilla plana (tablero de juego de ajedrez) que será analizado desde varias posiciones. Este método nos permite obtener los parámetros de la cámara a partir de un sistema de referencia como es el plano cuadriculado, en el cual no se necesita saber las posiciones de los puntos de interés, ni la posición donde se encuentra la cámara. El plano se lo puede mover simplemente con la mano, lo que hace que sea un método flexible. 20 Figura 2.13 Patrón de tablero de ajedrez (Aguirre, 2016). 2.3. Geometría de dos vistas En el análisis bifocal se tiene un sistema de visión de dos cámaras, o bien una sola cámara que toma dos imágenes del objeto de estudio en dos tiempos distintos (Mery, 2004). 2.3.1. Geometría Epipolar Hartley y Zisserman (Multiple View Geometry in compyter vision, 2004) nos dicen que la geometría epipolar entre dos vistas es esencialmente la geometría de la intersección de los planos de la imagen. Esta geometría generalmente está motivada a considerar la búsqueda de puntos correspondientes en coincidencia estéreo. Supongamos que se tiene un punto X en el espacio 3D, este punto se visualiza en dos vistas diferentes, x en la primera y x’ en la segunda. Como se muestra en la Figura 2.14, los puntos de imagen x y x’, el punto espacial X y los centros de la cámara son coplanares. Este plano se denota como π. Claramente, los rayos proyectados hacia atrás desde x y x’ se intersecan en X, y los rayos son coplanarios, que se encuentran en π. Es esta última propiedad la que tiene mayor importancia en la búsqueda de una correspondencia (Hartley & Zisserman, 2004). 21 Figura 2.14 Geometría de correspondencia de puntos (Hartley & Zisserman, 2004) En el caso de que solo se sepa el punto x, se desea encontrar su correspondiente x’. El plano π está determinado por la línea base y el rayo definido por x. Desde arriba se sabe que el rayo correspondiente al punto desconocido x’ se encuentra en π, por lo tanto, el punto x’ se encuentra en la línea de intersección l’ de π con el segundo plano de imagen. Esta línea l’ es la imagen en la segunda vista del rayo retroproyectado desde x. Es la línea epipolar correspondiente a x. En términos de un algoritmo de correspondencia estéreo, el beneficio es que la búsqueda del punto correspondiente a x no necesita cubrir todo el plano de la imagen, sino que puede restringirse a la línea l’ (Hartley & Zisserman, 2004). Las entidades geométricas involucradas en la geometría epipolar se ilustran en la Figura 2.15. Figura 2.15 Geometría epipolar (Hartley & Zisserman, 2004). La terminología es: 22 El epipolo es el punto de intersección de la línea que une los centros de la cámara (la línea base) con el plano de la imagen. De manera equivalente, el epipolo es la imagen en una vista del centro de la cámara de la otra vista. Un plano epipolar es un plano que contiene la línea base. Una línea epipolar es la intersección de un plano epipolar con el plano de la imagen. Todas las líneas epipolares se cruzan en el epipolo. 2.3.2. Matriz Fundamental La matriz fundamental es la representación algebraica de la geometría epipolar, esta matriz se puede derivar del mapeo entre un punto y su línea epipolar, recoge la posición y orientación que existe entre dos cámaras (Mery, 2004). Supongamos que las matrices de cámara son las de un equipo estéreo calibrado con el origen en el primer momento. 𝑃′ = 𝐾 ′ [𝑅|𝑡] 𝑃 = 𝐾 [𝐼 | 0] Entonces: −1 0 𝐶=( ) 1 𝑃 + = [𝐾 𝑇 ] 0 Por lo que se puede deducir la matriz Fundamental F de la siguiente forma: + 𝐹 = [𝑃′𝐶 ] × 𝑃′𝑃 = [𝐾′𝑡] × 𝐾 ′ 𝑅𝐾 −1 = 𝐾′−𝑇 [𝑡] × 𝑅𝐾 −1 = 𝐾′−𝑇 𝑅 [𝑅𝑇 𝑡] × 𝐾 −1 2.3.2.1. Propiedades de la Matriz Fundamental Mery Domingo (2004), nos proporciona las siguientes propiedades: 1. Las representaciones homogéneas de las rectas epipolares 𝑙1 y 𝑙2 se define como: 𝑙2 = 𝐹𝑚1 𝑙1 = 𝐹 𝑇 𝑚2 2. La restricción epipolar es: 𝑚2𝑇 𝐹𝑚1 = 0 3. F es homogénea, ya que kF para 𝑘 ≠ 0 4. La determinante de la matriz F es cero, puesto que: 23 |𝐹 | = |[𝑒2 ]× 𝑃′𝑃+ | = |[𝑒2 ]× ||𝑃′𝑃+| = 0 5. Como el determinante de F es cero, y F es homogénea se dice que F tiene solo siete grados de libertad, esto quiere decir que solo siete (de los nueve) elementos de F son linealmente independientes, los otros dos pueden ser calculados como función de los otros siete. 6. La matriz F no depende de los puntos 𝑚1 , 𝑚2 ni M, depende solo de las matrices de proyección P y P’, además es una matriz constante para una geometría estéreo dada. 7. La matriz fundamental se relaciona con los epipolos de la siguiente manera: 𝐹𝑒1 = 0 𝑦 𝐹 𝑇 𝑒2 = 0 Teniendo en cuenta que 0 = [0 0 0]𝑇 8. La relación de correspondencia entre dos puntos está dada por la siguiente ecuación: 𝑥′𝑇 𝐹𝑥 = 0 2.4. Escáner tridimensional Un escáner 3D es un dispositivo que analiza un objeto o escena con el fin de reunir datos de su forma, incluso su color y características superficiales. Con la información obtenida se puede construir modelos digitales tridimensionales. Inicialmente fueron desarrollados para aplicaciones industriales, pero han encontrado un gran campo de aplicación como la arqueología, ingeniería, arquitectura, la industria del entretenimiento para la producción de videojuegos y películas. (Scaner 3d) Funcionalidad Para Dzananovic Ustovic (Modelado 3D a partir de fotografías con 3DSOM, 2012) el propósito de un escáner 3D es crear una nube de puntos a partir de información de la superficie del objeto. Se puede realizar el proceso de reconstrucción a partir de estos puntos, extrapolando la forma del 24 objeto. El modelo obtenido por un escáner 3D describe la posición en el espacio tridimensional de cada punto analizado. Para la mayoría de los casos un solo escaneo no producirá un patrón completo del objeto. Se necesitan múltiples tomas desde varios puntos de vista para obtener información de todos los lados del objeto (Dzananovic Ustovic, 2012). Tipos de escáneres 3D Existen dos tipos de escáneres 3D en función de si hay contacto con el objeto o no existe contacto. Figura 2.16 Métodos de Adquisición 3D según el hardware (Ruiz Segarra, 2016) 2.4.1. Escáner de contacto Estos escáneres analizan el modelo mediante contacto directo con la superficie del objeto, cada contacto también llamado “toque” corresponde a un punto del modelo. Se obtiene su geometría gracias a un sensor y un brazo mecánico con el que va recorriendo y guardando las coordenadas tridimensionales (Abdel-Bary, 2011). Su principal inconveniente es la velocidad de escaneado pues deben recorrer por toda la superficie, además de perjudicar a las piezas si estas son de fácil deterioro. 25 Este en este grupo tenemos el escáner de brazo articulado donde la posición de la sonda siempre es conocida por los sensores que se encuentran en las articulaciones del brazo. (Ruiz Segarra, 2016) Figura 2.17 Escáner de brazo articulado (Ruiz Segarra, 2016) Por el contrario, en el escáner Coordinate Measure Machine o en sus siglas CMM, el brazo es el tercer eje de la máquina la cual sostiene el sensor y es controlad por computadora. (Ruiz Segarra, 2016) Figura 2.18 Escáner CMM (Abdel-Bary, 2011) 26 2.4.2. Escáner sin contacto Estos escáneres no hacen contacto físico con un objeto o superficie, se basan en algunas técnicas pasivas o activas para escanear un objeto, proyectando algún tipo de energía sobre el objeto desde una considerable distancia. Dando como resultado una nube de puntos que servirán para realizar la reconstrucción 3D (Abdel-Bary, 2011). Los métodos pueden ser reflexivos y transmisores. 2.4.2.1. Transmisores La señal es transmitida a través del objeto por medio de cortes medidos para luego recoger la información del volumen. Estos pueden ser imagen por resonancia magnética y tomografía computarizada (Ruiz Segarra, 2016). Figura 2.19 Tomografía computarizada (Da Sousa, 2016) 2.4.2.2. Reflexivos Tienen un receptor que captura la señal reflejada por la superficie del objeto, estos a su vez se clasifican en ópticos y no ópticos dependiendo de la fuente emisora de la señal, por un lado, los no ópticos pueden ser emisores acústicos y electromagnéticos como infrarrojos, ultrasonidos, microondas, ultravioleta, sonar, radar los cuales mandan energía para luego verificar el tiempo que tarda en retornar la señal después de haber tocado el objeto. Mientras que las técnicas ópticas se basan en el uso de luz para calcular los datos de la superficie, se clasifica en activas y pasivas (Ruiz Segarra, 2016). 27 a) Técnicas ópticas activas Emiten algún tipo de radiación o luz detectando su reflejo para sondear un objeto o entorno. Como ventajas podemos destacar que no requieren luz ambiental, estos generan su propia luz a demás proporcionan una gran cantidad de información de manera automática (Martín Barrio, 2016). Entre los más comunes tenemos el tiempo de vuelo, triangulación láser, luz estructurara y el interferómetro (Ruiz Segarra, 2016). Tiempo de vuelo Sansoni, Trebeschi y Docchio (State-of-The-Art and Applications of 3D Imaging Sensors in Industry, Cultural Heritage, Medicine, and Criminal Investigation, 2009) nos dicen que la medición del rango de la superficie se lo realiza enviando un pulso de luz hacia la superficie del objeto, se obtiene la información acerca de la profundidad midiendo el viaje de ida y vuelta de la señal de retorno y su intensidad. Este tipo de sensores dan excelentes resultados en piezas de 15 m a 100 m, pero son deficientes para rangos más cortos, para objetos pequeños de aproximadamente un metro de tamaño. En varias aplicaciones la técnica está condicionada por el rango de niveles permitidos de radiación, además afronta dificultades con superficies brillantes (Sansoni, Trebeschi, & Docchio, 2009). Figura 2.20 Tiempo de vuelo para un pulso láser (Martín Barrio, 2016) Triangulación Láser Los escáneres láser 3D de triangulación utilizan luz láser para sondear el entorno, a diferencia del escáner de tiempo de vuelo, el láser de triangulación hace brillar un láser sobre el sujeto y una 28 cámara busca la ubicación del punto. Esta técnica se denomina triangulación porque el punto del láser, la cámara y el emisor forman un triángulo (Abdel-Bary, 2011). Figura 2.21 Triangulación óptica (Ruiz Segarra, 2016) a) Elementos del sistema: el sensor de la cámara (CCD2) que capta la emisión de luz del láser sobre el objeto, el láser que proyecta un punto y la superficie a escanear. b) El láser proyecta una línea que se deforma al llegar al objeto; el sensor captura la imagen para después generar información de la profundidad. c) Nube de puntos. Luz estructurada Para Martín Barrio (Análisis y aplicación de un escáner 3D en el ámbito médico-estético, 2016) estos escáneres proyectan un patrón de luz sobre el objeto, analizando la deformación del patrón procedente de la geometría de la escena. Con una cámara fotográfica el reflejo es guardado para posteriormente determinar la posición de los puntos en un mapa tridimensional. El patrón de luz suele ser un número de líneas paralelas generadas por un láser. Los puntos tridimensionales de obtienen mediante el análisis de la deformación de las líneas, la anchura de la línea está dada por la inclinación de la superficie; la frecuencia y fase también dan información, pero deben ser medidas usando la transformada de Fourier3 (Martín Barrio, 2016). 2 3 Charge Coupled Device o en español, Dispositivo de Carga Acoplada Transformación empleada para transformar señales entre el dominio del tiempo y el dominio de la frecuencia. 29 Figura 2.22 Deformación que se produce cuando la luz impacta sobre una superficie tridimensional (Martín Barrio, 2016) La ventaja de esta técnica es que puede escanear múltiples puntos a la vez, reduciendo el problema de la deformación del movimiento (Dzananovic Ustovic, 2012). Luz modulada Los escáneres de luz modulada hacen brillar una luz que continuamente cambia en el objeto. La fuente de luz cicla su amplitud en un patrón sinusoidal mientras una cámara detecta la luz reflejada y la cantidad en que se desplaza el patrón determina la distancia que recorrió la luz. Esta técnica permite que el escáner ignore la luz de fuentes ajenas a un láser, eliminando interferencias (AbdelBary, 2011). b) Técnicas ópticas pasivas Se denominan pasivas porque tan solo con la iluminación de la escena y su reflejo sobre el objeto se obtiene la información sobre la superficie y geometría del objeto. Tomando en cuenta que no usan iluminación de escena, no necesitad de un hardware especializado para la emisión de luz, siendo estos los métodos más económicos (Ruiz Segarra, 2016). Visión estéreo En este método utiliza dos o más cámaras que capturan la misma escena simultáneamente. Los pasos que se siguen son los siguientes: i) adquisición de imágenes, ii) modelado de cámaras, iii) 30 extracciones de características, iv) análisis de correspondencia y v) triangulación. No se requieren de proyecciones especiales o fuentes de luz adicionales, siendo una de sus ventajas el bajo costo y la simplicidad del proceso; sin embargo, el problema principal radica en la identificación de puntos comunes dentro de los pares de imágenes, además que la calidad dependa de la nitidez de la textura de la superficie (Sansoni, Trebeschi, & Docchio, 2009). Silueta Usa contornos creados a partir de una secuencia de fotografías alrededor de un objeto tridimensional contra un fondo con gran contraste. Estas siluetas se extruyen y se intersecan para formar la aproximación visual del casco del objeto (Abdel-Bary, 2011). Figura 2.23 Ejemplo de escáner que usa tecnología de Silueta (Dzananovic Ustovic, 2012). Fotogrametría Para Luhmann, Robson, Kyle, y Harley (Close Range Photogrammetry Principles, techniques and applications, 2006) la fotogrametría abarca métodos de medición e interpretación de imágenes para obtener la forma y la ubicación de un objeto a partir de una o más fotografías de ese objeto. En principio, los métodos fotogramétricos pueden aplicarse en cualquier situación en la que el objeto a medir se pueda registrar fotográficamente. El propósito principal de una medida fotogramétrica es la reconstrucción tridimensional de un objeto en forma digital (coordenadas y elementos geométricos derivados) o forma gráfica (imágenes, dibujos, mapas). La fotografía o imagen representa un almacén de información que se puede acceder en cualquier momento. Para la reconstrucción de un objeto a partir de fotografías o imágenes, es necesario describir el proceso óptico mediante el cual se crea una imagen. Esto incluye todos los elementos que 31 contribuyen a este proceso, como las fuentes de luz, las propiedades de la superficie del objeto, el medio a través del cual viaja la luz, la tecnología del sensor y la cámara, el procesamiento de la imagen, el desarrollo de la película y el procesamiento posterior (Luhmann, Robson, Kyle, & Harley, 2006). Figura 2.24 Del objeto a la imagen (Luhmann, Robson, Kyle, & Harley, 2006). Siguiendo con (Luhmann, Robson, Kyle, & Harley, 2006) afirma que luego se requieren métodos de interpretación y medición de imágenes que permitan identificar la imagen de un punto objeto a partir de su forma, brillo o distribución de color. Para cada punto de imagen, se pueden obtener valores en forma de datos radiométricos (intensidad, valor de gris, valor de color) y datos geométricos (posición en la imagen). Esto requiere sistemas de medición con la calidad geométrica y óptica apropiada. A partir de estas medidas y una transformación matemática entre la imagen y el espacio de objetos, el objeto puede finalmente ser modelado. La figura 2.23 simplifica y resume esta secuencia. El lado izquierdo indica la instrumentación principal utilizada, mientras que el lado derecho indica los métodos involucrados. Junto con los modelos físicos y matemáticos, el conocimiento humano, la experiencia y la habilidad juegan un papel importante. Ellos determinan hasta qué punto el modelo reconstruido corresponde al objeto de la imagen o cumple los objetivos de la tarea (Luhmann, Robson, Kyle, & Harley, 2006). 32 Figura 2.25 Proceso para la fotogrametría (Luhmann, Robson, Kyle, & Harley, 2006). Aplicaciones de escáneres 3D Como nos menciona (Dzananovic Ustovic, 2012) existen varias aplicaciones para la tecnología de escaneo en 3D, a continuación, se mencionarán algunas de ellas: Industria El escáner 3D ha sido de vital importancia en la fabricación de componentes que requieren especificaciones muy estrictas, como álabes de turbinas. Las piezas se escanean y la nube de puntos permite un mejor control sobre la producción. Entretenimiento Dentro de la industria del entretenimiento, el escáner 3D permite la creación de modelos digitales para vídeo juegos y películas. Resulta más eficaz escanear un objeto tridimensional que recrearlo manualmente utilizando softwares de modelado. Patrimonio Cultural Para la preservación de patrimonio cultural, el escáner 3D ha sido una gran alternativa para documentar piezas arqueológicas, así como monumentos históricos. 2.5. Fotogrametría Esférica La Fotogrametría Esférica es una nueva técnica fotogramétrica desarrollada hace más de una década por Gabriele Fangi 4. Esta técnica se ha usado comúnmente para la documentación de 4 Profesor de Geomática en la Universidad Politécnica de Ancona, Italia. 33 patrimonio cultural, su característica principal es que no utiliza imágenes fotográficas comunes, sino fotografías panorámicas obtenidas por cámaras omnidireccionales o de 360°, estás cámaras son cada vez más populares permitiendo una mayor comprensión del objeto, que mejora aún más por la alta resolución de estas imágenes. Sin embargo, en un principio no existía este tipo de tecnología por lo que se optó por diferentes técnicas para reconstruirlas como por ejemplo la costura de imágenes. (Fangi & Nardinocchi, 2013) A continuación, podemos ver cómo sería la creación de un panorama esférico: a) b) c) d) Figura 2.26 Creación de una imagen panorámica: a) Proyección en un plano, b) Proyección sobre un cilíndrico, c) Proyección sobre una esfera, d) Panorama esférico (Cabezos Bernal & Cisneros Vivó, 2016) 34 Una vez creada la imagen panorámica se mapea en el plano cartográfico usando una proyección equirectangular. x = r.ϑ; y = r.φ (1) Donde ϑ es la longitud, φ es el complemento de la latitud y r es el radio de la esfera. Con los ángulos expresados en radianes. Tal representación no es conforme, ni equivalente. Los polos de la esfera están representados por dos segmentos de igual longitud a la circunferencia de la esfera, y por lo tanto el ecuador y los polos tienen la misma longitud. La altura del mapa es igual al desarrollo de un meridiano. De tal representación se pueden dibujar los ángulos de dirección de la línea proyectiva. Conociendo la extensión, se deriva el radio de la esfera generadora (D'Annibale & Fangi, 2009). r = a /2π ϑ = x/r (2) φ = y/r (3) Figura 2.27 La proyección de latitud-longitud. Relación entre las coordenadas esféricas y la coordenada de la imagen de una imagen esférica (D'Annibale & Fangi, 2009) Estos ángulos y el radio de la esfera generadora son los mismos que un teodolito5 mediría salvo dos diferencias: la primera, es la precisión alcanzada; y la segunda es que, si bien el teodolito se establece con su principal eje vertical, en el caso de la esfera, no es posible hacer suficientemente vertical el eje principal, por lo cual se hace necesario corregir dos ángulos de rotación alrededor de los ejes horizontales, esta operación es semejante a un compensador biaxial de un teodolito (Barazzetti, Fangi, Remondino, & Scaioni, 2010). 5 El teodolito es un instrumento topográfico de medición mecánico-óptico que se utiliza para obtener ángulos verticales y horizontales 35 2.5.1. Las ecuaciones de colinealidad para la fotogrametría esférica Fangi y Nardinocchi (2013) en su artículo “PROCESAMIENTO FOTOGRAMÉTRICO DE PANORAMAS ESFÉRICAS” Nos dicen que, entre el centro de proyección, el punto de imagen y el punto del objeto se escriben las ecuaciones de colinealidad, ecuaciones corregidas para tener en cuenta la verticalidad perdida del eje principal. Dada una imagen esférica con centro: O = [X0, Y0, Z0] T y radio r Un punto P [X, Y, Z]T a una distancia 𝑑 = √(𝑋 − 𝑋0 )2 − (𝑌 − 𝑌0 )2 − (𝑍 − 𝑍0 )2 que desde el centro de la esfera tiene coordenadas [X*, Y*, Z*] T en el sistema de referencia esférico que puede derivar de sus coordenadas esféricas (𝑑, 𝜗, 𝜑) mediante las siguientes relaciones: X* = d.sin φ.sin ϑ Y* = d.sin φ.cos ϑ (4) Z* = d.cos φ Figura 2.28 El punto de objeto P, el sistema esférico y el sistema terrestre, es un sistema centrado en el centro de la esfera y con su eje Z' paralelo al eje Z del sistema terrestre; dicho sistema tiene que estar orientado en un ángulo 𝜽𝟎 (Fangi & Nardinocchi, 2013). 36 Transformar el sistema de referencia esférico al terrestre se realiza en primer lugar gracias a la alineación de Z* con Z se realiza teniendo en cuenta los ángulos de corrección αx y αy. En segundo lugar, se resuelve la rotación alrededor del eje Z, introduciendo el ángulo de rotación esférica. 𝑑 𝑠𝑖𝑛𝜑 𝑠𝑖𝑛𝜗 𝑋 − 𝑋0 𝑋∗ 𝑋′ ∗ ′ [𝑌 ] = ∆𝑅(𝛼𝑥 , 𝛼𝑦 ) [𝑌 ] = ∆R(𝛼𝑥 , 𝛼𝑦 ) [ 𝑌 − 𝑌0 ] = [𝑑 𝑠𝑖𝑛𝜑 𝑐𝑜𝑠𝜗] (5) 𝑍 − 𝑍0 𝑑 𝑐𝑜𝑠𝜑 𝑍∗ 𝑍′ Donde [X′, Y′, Z′]T son las coordenadas de P en el sistema de referencia terrestre transferido al centro de la esfera y ∆𝐑(𝜶𝒙, 𝜶𝒚 ) es una rotación cuasi-ortogonal matriz: 1 ∆R(𝛼𝑥 , 𝛼𝑦 ) = [ 0 −d𝛼𝑦 0 1 d𝛼𝑥 d𝛼𝑦 −d𝛼𝑥 ] 1 Dividiendo la primera fila de la ecuación (5) por la segunda obteniendo la primera ecuación. (𝑋−𝑋0 )+d𝛼𝑦 (𝑍−𝑍0) 𝜃 = 𝜃0 + 𝑎𝑟𝑐𝑡𝑎𝑛 ( (𝑌−𝑌 )−d𝛼 𝑥 (𝑍−𝑍0 ) 0 ) (6a) Para la segunda ecuación φ se obtiene dividiendo la ecuación (5) por d. 𝜑 = 𝑎𝑟𝑐𝑐𝑜𝑠 ( d𝛼𝑦 (𝑋−𝑋0 )+d𝛼𝑥 (𝑌−𝑌0 )+(𝑍−𝑍0 ) 𝑑 ) (6b) Estas son las ecuaciones de colinealidad. 2.5.2. La condición de coplanaridad Así mismo (Fangi & Nardinocchi, 2013) Explican la condición de coplanaridad para imágenes esféricas. En la fotogrametría clásica la ecuación de coplanaridad nos dice que los dos rayos proyectivos a un punto P y a la base óptica b tienen que estar en el mismo plano epipolar. 37 De manera similar, la geometría epipolar de las imágenes esféricas se da mediante una ecuación de coplanaridad y describe la relación geométrica entre los puntos correspondientes en un par de imágenes. Más específicamente, la intersección entre dos imágenes dadas y el plano epipolar definido por el centro de las dos imágenes y un punto de objeto P, representa la línea epipolar. Figura 2.29 Coplanaridad de dos panoramas esféricos (Fangi & Nardinocchi, 2013). Dadas las coordenadas esféricas de un punto P0, adquirido a partir de las coordenadas de la imagen, las coordenadas correspondientes se obtienen por: 𝑋 = 𝑟. 𝑠𝑖𝑛𝜑. 𝑠𝑖𝑛𝜃 𝑌 = 𝑟. 𝑠𝑖𝑛𝜑. 𝑐𝑜𝑠𝜃 𝑍 = 𝑟. 𝑐𝑜𝑠𝜑 (7) Donde r es el radio, φ es el complemento de latitud y θ es la longitud. La ecuación del plano que pasa por O1, O2 y P0 se puede expresar como: 𝑍 = 𝑎𝑋 + 𝑏𝑌 + 𝑐𝑍 Donde a, b y c son cosenos de dirección del plano. Sustituyendo Z en la tercera expresión de la ecuación (7) se obtiene la expresión de la ecuación epipolar: 𝑐 𝜑 = 𝑎𝑟𝑐𝑡𝑎𝑛 (− 𝑎.sin(𝜃)+𝑏.cos(𝜃)) (8) Utilizando estos análisis se han realizado varias reconstrucciones de monumentos históricos. 38 Figura 2.30 Resultados de varios conjuntos de datos de imágenes panorámicas, que muestran los puntos coincidentes automáticamente (b, e, h), resultados de orientación (c, f, i) y reconstrucciones 3D de la escena (d, g, l) (Barazzetti, Fangi, Remondino, & Scaioni, 2010). 39 2.5.3. Extracción de correspondencias La identificación de correspondencias de imágenes panorámicas puede requerir un proceso largo de elaboración. La presencia de cambios de oclusiones, iluminación u objetos en movimiento requieren un procedimiento confiable (Barazzetti, Fangi, Remondino, & Scaioni, 2010). El método que la Fotogrametría Esférica se basa en la extracción y emparejamiento de características haciendo uso de los operadores SIFT (Scale-invariant feature transform) y SURF (Speeded Up Robust Features), combinados con algunos estimadores para la detección de correspondencias erróneas. Estas basadas en la estimación de la matriz fundamental (Barazzetti, Fangi, Remondino, & Scaioni, 2010). 2.6. Drones o UAV Según (Carrasco, 2015) un dron o UAV es un vehículo aéreo no tripulado, no requiere piloto. Debido a que, gracias a una serie de unidades de procesado, sensores y un alcance de comunicación es guiado remotamente por un operador en tierra. 2.6.1. Partes básicas de un dron Lucas García (Drones, el cielo está al alcance de todos) nos proporciona una lista de las partes básicas de un dron: Motores, Hélices y ESCs: Componentes que ayudan a mantener el dron en el aire. Los ESC (Electronic Speed Control) regulan la potencia eléctrica que es administrada a los motores y por ende la velocidad de giro del rotor. Controlador de vuelo: Es el cerebro del dron pues detecta y controla todos los aspectos de esta. Todos los componentes electrónicos van conectados al controlador de vuelo. Mando o control remoto: Es un dispositivo que posee dos joysticks o palancas multidireccionales, a través del cual se introduce los movimientos que el dron realizará. Radio receptor: Recibe las órdenes del mando, transmitiéndolas al controlador de vuelo, para que la instrucción pueda ser ejecutada. Baterías: Dan la energía necesaria para que el dron realice sus funciones. 40 2.6.2. Clasificación La clasificación principal de UAVs se asocia al sistema de propulsión utilizado, se pueden encontrar dos clasificaciones, los de ala fija y de ala rotatoria (Carrasco, 2015). a) UAV de ala fija: Son capaces de volar gracias a la acción del viento al atravesar las alas que están fijas. Alcanzan su velocidad gracias a turbinas propulsoras. Poseen una estructura simple con una eficiencia aerodinámica alta, lo que le permite volar por más tiempo. Por sus características son utilizados para reconocimiento aéreo de grandes zonas de terreno, además son capaces de transportar carda adicional. Para su despliegue o aterrizaje requieren de una pista para obtener velocidad (Carrasco, 2015). Figura 2.31 Ejemplo de UAV de ala fija (Carrasco, 2015) b) UAV de ala rotatoria: Dispone de una o numerosas hélices que rotan impulsadas por un motor a cuyo conjunto se lo llama rotor, el cual se encarga de dar el impulso necesario para el despegue y maniobrabilidad. Debido a su estructura compleja son más lentos y tienen un tiempo de vuelo más limitado; sin embargo, la ventaja que nos ofrece es que no requiere de una pista para despegar, además son capaces de permanecer suspendidos en el aire inmóviles, haciéndolo idóneo para tareas de control sobre objetos fijos (Carrasco, 2015). Figura 2.32 Ejemplo de UAV rotatorio (Carrasco, 2015). Dentro de la clasificación de UAV rotatorio cabe destacar el Dron quadcópter. 41 c) Dron Quadcópter: Consta de 4 hélices, dos de ellas giran en sentido horario y dos en sentido anti horario, proporcionándole equilibrio. Figura 2.33 Disposición de hélices de un quadcópter (García). El quadcópter posee cuatro tipos de movimiento: giro en sentido horario o anti horario respecto al eje vertical, inclinación hacia la derecha o izquierda, cabeceo hacia delante y hacia atrás y altitud, elevación o descenso. Figura 2.34 Diferentes movimientos en un quadcópter (García). 2.6.3. Gimbal El gimbal es un estabilizador de cámaras u otros objetos, de manera que cuando el usuario esté grabando vídeos, las capturas sean óptimas. Así, se puede mover mientras graba sin temer a que las imágenes obtenidas no sean estables. La lógica básica de este sistema que puede minimizar la 42 vibración en los dispositivos de grabación de video es crear un movimiento inverso en la dirección opuesta a la vibración (Pinto, 2019). Figura 2.35 Gimbal en un dron (Ferreño, 2017) 43 CAPÍTULO III 3. Metodología 3.1. Tipo de estudio El presente trabajo de titulación se enmarca en la modalidad de Proyecto de Investigación. La metodología más conocida para realizar este tipo de proyectos es la metodología de la investigación científica; sin embargo, es poco conocida la metodología de la investigación tecnológica la cual ha sido seleccionada para la realización de este proyecto. 3.2. Metodología de la investigación Para Cegarra Sánchez (Metodología de la investigación científica y tecnológica, 2004) la investigación tecnológica, también conocida como “Desarrollo”, se encarga de la creación de nuevos sistemas, procesos o máquinas; o la mejora de éstos. La investigación tecnológica es esencialmente experimental y está ligada a la investigación científica en varias de sus características como es la obtención de nuevos conocimientos, configuración de nuevos procesos u obtención de nuevos artefactos. De la Cruz (2016) en su artículo Metodología de la investigación tecnológica en ingeniería afirma lo siguiente: El objetivo del trabajo tecnológico es apoyarse en el reconocimiento para lograr la transformación de una realidad concreta particular. En el paradigma tecnológico tenemos un proceso que integra la investigación y la transformación a la vez. Así, requerimos conocer el objeto de estudio para después intervenir en una realidad particular modificando el estado de cosas, hasta alcanzar una aproximación a lo deseado (Cegarra Sánchez, 2004, pág. 44) Cabe recalcar que el presente trabajo tiene la característica de ser una tecnología evolutiva, pues modifica lo ya existente ofreciendo aportes de nuevas tecnologías. Además, que el producto de un proyecto de investigación tecnológica puede ser un diseño, una estrategia o un método dependiendo de la materia sobre la cual trate el problema. Tomando como base la propuesta de Gutiérrez Posada y Gómez Montoya, se desarrollaron las siguientes fases acorde a las necesidades de este proyecto: 44 Detección del problema Formulación del problema Busqueda de información Organización de la información Identificación de necesidades y requerimientos para el prototipo Selección de técnicas y tecnología Búsqueda de ideas Planteamiento de soluciones Elaboración del prototipo Figura 3.1 Fases de la Metodología de la investigación tecnológica 1. Detección de problema: Detección del problema que requiera de desarrollo tecnológico mediante la observación propia o la observación por un tercero. 2. Formulación del problema: Se expresa el problema de la manera más concreta posible. 3. Búsqueda de información: Recopilación de toda la información disponible sobre el tema. 4. Organización de la información: La información obtenida puedes ser de gran volumen por lo que es necesario clasificarla adecuadamente, escogiendo los textos más sobresalientes que se deberán leer con detenimiento. 5. Identificación de necesidades y requisitos para el prototipo: Una vez realizada la investigación pertinente, esta nos ayudará a identificar los puntos más importantes para definir los requisitos necesarios del prototipo. 6. Selección de técnicas y tecnologías: Elección de componentes de hardware y software. 7. Búsqueda de ideas: Ideas que se evaluarán para seleccionar la mejor o más apropiada de acuerdo a los requisitos ya seleccionados. 8. Planteamiento de soluciones: Una vez evaluada las posibles soluciones se clasifican para iniciar el trabajo, desarrollando la primera de ellas, en caso de que esta fracase, se separa y 45 se intenta con la siguiente, buscando un camino alterno y así acercarse a la solución del problema. 9. Elaboración del prototipo: El prototipo será el primer acercamiento a la realidad, siendo un diseño, estrategia o método. Es en esta fase que se da lugar a la mejor solución encontrada, la cual debe ser revisada y mejorada continuamente. En el capítulo I y II se han resumido las fases 1, 2, 3 y 4 de la Metodología de la Investigación Tecnológica. A continuación, se desarrollará las fases siguientes, de acuerdo a la necesidad del proyecto. 3.3. Identificación de necesidades y requisitos para el prototipo El presente proyecto tiene como fin el desarrollo de un prototipo de escáner 3D con una cámara omnidireccional montada en un quadcópter. Como requisitos necesarios tenemos: - Utilizar una cámara de bajo costo, pues en el mercado cámaras omnidireccionales de buena calidad pueden llegar a costar hasta $2000. - Posibilidad de manejo a distancia de la cámara ya que se la montará en el dron quadcópter, y la distancia entre este y el usuario puede llegar hasta los 100 m de radio. - La imagen resultante debe ser circular: para poder utilizar los principios de fotogrametría esférica la imagen resultante debe ser esférica. - Buena resolución de la imagen: necesaria para la identificación de puntos de interés. - Estabilidad en las imágenes que se tomarán, la cual resulta afectada por las vibraciones del dron. 46 3.3.1. Arquitectura del prototipo Figura 3.2 Esquema del proceso del prototipo. 3.4. Selección de técnicas y tecnologías Requerimientos de Hardware: a) Dron quadcópter modelo: Tarot 650 En vista de que este proyecto de titulación está trabajando dentro del Proyecto 30 perteneciente a la Facultad de Ingeniería Ciencias Físicas y Matemática, el dron dispuesto para este proyecto es el modelo Tarod 650, posee las siguientes características (Anexo A). -Hardware abierto. -Soporta hasta 1130 g. -El frame de este modelo es de fibra de carbono, proporcionando mayor estabilidad. -Alcanza una altura máxima de 122 m y una velocidad de 15 m/s. 47 b) Cámara omnidireccional Se requiere de una cámara omnidireccional que cumpla con los requisitos antes establecidos. c) Gimbal para estabilizar la imagen: Es necesario para que al momento del vuelo la imagen no resulte afectada ya que existen muchas vibraciones que podrían ser capturadas por la cámara. Requerimientos de Software Para escoger el Lenguaje de Programación a utilizar se realizó un cuadro comparativo de los Lenguajes de Programación más usados. Tabla 1: Cuadro comparativo de Lenguaje de Programación OpenSource Orientado a objetos Desenvolvimiento en la Experiencia visión del usuario artificial del 1 al 10 Java Si Si Bueno 2 C# Si Si Bueno 2 C++ Si Si Muy Bueno 1 Si Muy Bueno 1 Si Muy Bueno 5 M (lenguaje No de Matlab) Python Si Después del análisis se escogió el Lenguaje de Programación Python a) Python Según nos dice Guido van Rossum (El tutorial de Python, 2009) Python es un lenguaje de programación eficaz y de fácil aprendizaje. Cuenta con estructuras de datos de alto nivel y un enfoque simple pero efectivo a la programación orientada a objetos. La sintaxis de Python hace de éste un lenguaje ideal para scripting y desarrollo rápido de aplicaciones en diversas áreas y sobre la mayoría de las plataformas. 48 El intérprete de Python está a libre disposición y de código fuente para las principales plataformas desde el sitio web de Python, http://www.python.org/, y puede ser distribuido libremente. Python puede extenderse fácilmente con nuevas funcionalidades y tipos de datos implementados en C o C++ (u otros lenguajes accesibles desde C). Python también puede usarse como un lenguaje de extensiones para aplicaciones personalizables. Tabla 2: Cuadro comparativo de IDE’s que trabajan con Python. Software Estructura Marcación Popularidad del Libre de de errores 1 al 10 Muy 10 la interfaz PyCharm Si Muy Buena Buena PyDev Si Buena Buena 8 Atom Si Regular Buena 8 Si Buena Regular 9 IDE Spyder b) OpenCv OpenCV es una biblioteca de visión artificial de código abierto. La biblioteca está escrita en C y C++, se ejecuta en Windows, Linux o Mac. Existe un desarrollo activo para las interfaces Python, Java, MATLAB y otros idiomas. OpenCV ha recibo al largo de los años soporte por parte de Google e Intel. Contiene más de 500 funciones abarcando gran gama de áreas en el proceso de visión, como reconocimiento de objetos, procesamiento de imágenes, calibración de cámaras, visión estéreo y visión robótica (Kaehler & Bradski, 2016). 49 Tabla 3: Cuadro comparativo de librerías de visión computacional. Open Compatibilidad Consumo Popularidad Source con Python de del 1 al 10 recursos OpenCV Si Si Poco 10 Matlab No No Regular 9 No Regular 7 AForge.NET/ Accord.NET TensorFlow Si Si Bastante 7 SimpleCV Si Si Bastante 6 c) PyCharm PyCharm es el IDE más popular utilizado para el lenguaje de scripts Python ofreciendo algunas de sus mejores características para sus usuarios y desarrolladores en los siguientes aspectos: Finalización e inspección del código. Depuración avanzada. Soporte para la programación web y marcos como Django y Flask (PC PyCharm, s.f.). 3.5. Búsqueda de ideas Se optó por la búsqueda de cámaras omnidireccionales de bajo costo, se seleccionaron tres opciones que se analizaron, evaluaron y descartaron de ser el caso. 3.5.1. Cámara de seguridad La VR cam 360, es una cámara de seguridad, su precio oscila en los $30 y posee las siguientes características: 50 Figura 3.3 Característica VR cam (Manual usuario cámara 360°, s.f.) Luz infrarroja: encenderá la luz infrarroja automáticamente cuando detecte un nivel bajo de luminosidad. Ranura memoria: Se puede instalar una micro SD, se puede almacenar hasta 32G. Botón reset: Se volverá a los valores iniciales pulsando el botón durante 10-15. 3.5.2. Cámara Charge Coupled Device para drones La cámara FPV (First Person View) es una cámara utilizada para Drones cuyo precio es de $15 c/u, son de tamaño pequeño y ligeras., cuentan con un lente intercambiable, la placa con el sensor y el conector para salida de vídeo. La imagen en tiempo real es transmitida desde las cámaras hacia un video transmisor (Cámaras FPV, s.f.). CCD y CMOS son los principales sensores de imágenes utilizados en cámaras de vídeo en general, en nuestro caso el sensor a utilizar es CCD, sus características son: Mejor rango dinámico Menos ruido en condiciones de poca luz Baja latencia Mejor manejo de la luz 51 Figura 3.4 Cámara CCD FPV (Tipos de cámara FPV para un dron de carrera, s.f.) Campo de visión de la cámara FPV Tabla 4: Longitud focal de la cámara FPV Longitud Focal de la lente FOV 2.1 mm 160° - 170° 2.3 mm 145° 2.5 mm 130° - 140° 2.8 mm 120° - 130° 3.0 mm 110° - 125° 3.5.3. Universal Clip Lens En su blog (Villareal, 2017) nos dice que el universal clip lens es un accesorio para celular que consiste en un lente que se fija al dispositivo móvil por medio de una pinza. Son portables pudiéndose desmontar en cualquier momento. Este juego consta de los siguientes componentes: 52 Figura 3.5 Kit Universal clip lens (Villareal, 2017) Clip con rosca: los lentes se ajustan en este clip y se coloca sobre el lente de la cámara del móvil. Fish eye lens: Es el lente más robusto de los que vienen en el kit. Proporciona una visión más amplia y esférica. Macro: Permite la toma de fotografías de objetos de menor tamaño, teniendo su enfoque a menos de 1 cm. 0.67X WIDE: A diferencia de los otros dos lentes, este se adapta encima del lente macro y no directamente a la pinza, su función es similar a la lente macro, pero nos proporciona una mayor amplitud en la imagen. 3.6. Planteamiento de soluciones Se hizo una evaluación detallada de cada una de las opciones de cámara (Anexo B), a continuación, se muestra un cuadro de resumen con los resultados obtenidos: 53 Tabla 5 Cuadro comparativo de las opciones de cámara Requerimientos VR CAM 360 Cámara CCD para la cámara Universal clip lens FPV Posibilidad de Manejo a No Si Si Si No Si Si No Si distancia La imagen resultante debe ser circular Buena resolución de la imagen Una vez evaluada cada una de las opciones, se llegó a la conclusión de que la cámara que mejor resultado nos proporcionó fue el Universal clip lens, accesorio que fue montado en la cámara incluida en el modelo de teléfono móvil LGk8. 3.7. Elaboración del prototipo En esta fase se explican los pasos que se llevaron a cabo para desarrollar el prototipo una vez escogida la mejor opción de cámara. 3.7.1. Análisis para la obtención de coordenadas de un punto 3D Antes de lograr la automatización de la reconstrucción 3D mediante imágenes hemisféricas, fue necesario realizar el análisis que compruebe que la utilización de este tipo de imágenes es apta para obtener datos del mundo real. 54 El método propuesto en este proyecto de investigación se basa en la Técnica de Fotogrametría Esférica desarrollada por Gabriele Fangi (Documenting architectural heritage in Bahia, Brazil, using Spherical Photogrammetry, 2013). Sin embargo, el desarrollo será diferente pues la Fotogrametría Esférica clásica trabaja con panoramas esféricos que se forman mediante la superposición de imágenes tomadas desde el mismo punto y unidas en una esfera para después mapearlas en un plano con la llamada proyección equirectangular, mientras que en este proyecto se trabajará directamente con las imágenes hemisféricas que nos da nuestra cámara. Se realizó un análisis previo de la técnica de Fotogrametría esférica para adaptarla a la geometría de las imágenes hemisféricas. Como recurso visual, se presenta un diagrama que nos permite ver con mayor claridad la relación que existe entre dos imágenes y un punto P en el espacio. Haciendo uso de la técnica de triangulación se obtuvo las coordenadas 3D del punto P, sabiendo que u1 y u2 son proyecciones de dicho punto. Figura 3.6 Diagrama de la relación de dos imágenes hemisféricas. 55 Vista lateral izquierda (plano x, z): Figura 3.7 Vista lateral izquierda Vista inferior (plano x, y): Figura 3.8 Vista inferior Donde: R = Radio del círculo. 𝑢1 = √𝑥1 2 + 𝑦1 2 = distancia entre el punto de imagen y el eje óptico de la imagen 1. 𝑢2 = √𝑥2 2 + 𝑦2 2 = distancia entre el punto de imagen y el eje óptico de la imagen 2. 56 b = distancia entre el centro de las dos imágenes. Cabe resaltar que es el valor b es el que definirá las unidades de las coordenadas resultantes, ya sean metros, centímetros u otra unidad. Para obtener las coordenadas (X, Y, Z) del punto P, se necesita conocer el valor de los ángulos A, B y C, y para obtenerlos primero es necesario calcular tanto 𝜃1 como 𝜃2 que son los ángulos que se forman entre u1, u2 y el eje Y de cada imagen, por lo que tendremos: 𝜃1 = 𝑎𝑟𝑐𝑡𝑎𝑛 𝑥1 𝑦1 𝜃2 = 𝑎𝑟𝑐𝑡𝑎𝑛 𝑥2 𝑦2 Conociendo 𝜃1 y 𝜃2 se calculan los valores de A, B, C y sus respectivos lados usando la ley de senos. A = 90 + θ1 C = 90 – 𝜃2 B = 180 – A –C 𝑎= 𝑏 𝑠𝑖𝑛𝐴 𝑠𝑖𝑛 𝐵 𝑐= 𝑏 𝑠𝑖𝑛𝐶 𝑠𝑖𝑛 𝐵 Haciendo uso de la trigonometría se puede calcular las coordenadas X y Y del punto 3D 𝑿 = 𝑎 sin(𝜃2) 𝒀 = 𝑎 cos(𝜃2) Antes de calcular Z, es necesario saber el valor del ángulo φ, ángulo que se forma entre el punto P y el centro de la imagen 2 (ver Figura 3). 𝜑 = 𝑎𝑟𝑐𝑜𝑠 𝑢2 R Obteniendo φ, podemos decir que: 𝒁 = 𝑎 tan 𝜑 57 Estas relaciones variarían dependiendo la posición en que se encuentre el punto P y su determinada proyección en cada una de las imágenes, por lo que se han determinado seis posibles casos. En primer lugar hay que conocer el centro de imagen hemisférica en coordenadas de píxel que estará determinada por los parámetros de calibración de la cámara. Figura 3.9. Representación en pixeles de cada imagen. Tabla 6. Análisis de cada uno de los posibles casos. N° de Caso Condiciones a cumplir Representación de la coordenada 3D (X, Y, Z) 1 Si (x1 < Cx) & (y1 < Cy) & (x2 < Cx) & (y2 < Cy) (-(X-b),Y,Z) 2 Si (x1 > Cx) & (y1 < Cy) & (x2 > Cx) & (y2 < Cy) (X, Y, Z) 3 Si (x1 < Cx) & (y1 > Cy) & (x2 < Cx) & (y2 > Cy (-(X-b), -Y, Z) 4 Si (x1 > Cx) & (y1 > Cy) & (x2 > Cx) & (y2 > Cy). (X, -Y, Z) 5 Si (x1 > Cx) & (y1 < Cy) & (x2 < Cx) & (y2 < Cy). (X, Y, Z) 6 Si (x1 > Cx) & (y1 > Cy) & (x2 < Cx) & (y2 > Cy). (X, -Y, Z) 58 Caso 1: Caso 2: Caso 3: Caso 4: Caso 5: Caso 6: 59 Una vez analizado y comprobado que usar imágenes hemisféricas nos proporciona las coordenadas tridimensionales de un punto P se prosigue con los siguientes pasos. 3.7.2. Calibración de la cámara Se realizó la calibración de la cámara seleccionada, haciendo uso de la biblioteca de OpenCv que desde la versión 3.0 ha incluido un paquete cv2.fisheye. El código de calibración ayudará a encontrar 2 parámetros intrínsecos de la lente, OpenCV los llama K y D que son matrices numpy. El patrón de calibración utilizado fue el patrón de tablero de ajedrez usado en el Método de Zhang para la calibración de una cámara. El patrón de ajedrez se sostuvo frente a la cámara capturando imágenes desde diferentes posiciones y ángulos. La clave de este paso es que los patrones deben aparecer distorsionados de diferentes maneras para que OpenCv sepa todo lo posible sobre el lente. Figura 3.10 Ejemplo de fotografía de patrón de ajedrez. A continuación, se observa la sintaxis de la función cv2.fisheye.calibrate utilizada. rms, K, D, rvecs, tvecs = \ cv2.fisheye.calibrate( objpoints, imgpoints, gray.shape[::-1], K, D, rvecs, tvecs, calibration_flags, (cv2.TERM_CRITERIA_EPS+cv2.TERM_CRITERIA_MAX_ITER, 30, 1e-6) ) Figura 3.11 Código de la función cv2.fisheye.calibrate. 60 Algunos de los parámetros son: objectPoints: vector de vectores de puntos del patrón de calibración en el espacio de coordenadas del patrón de calibración. imagePoints: vector de vectores de las proyecciones de puntos del patrón de calibración. image_size: tamaño de la imagen utilizada solo para inicializar la matriz intrínseca de la cámara. K: Salida de matriz de cámara de punto flotante 3x3. re: Vector de salida de coeficientes de distorsión. rvecs: Vector de salida de los vectores de rotación estimados para cada vista de patrón. tvecs: Vector de salida de los vectores de traslación estimados para cada vista de patrón. 3.7.3. Toma de fotografías Después de calibrar la cámara se procede a la toma de fotografías del espacio del que se desea realizar la reconstrucción 3D. Cabe resaltar que el análisis de las imágenes se realizará de dos en dos, cada par de fotografías deberán apuntar al mismo punto a analizar, pero desde diferentes posiciones como se observa en la Figura 3.12. Además, hay que tener en cuenta la primera imagen tomada la cual tendrá como centro el punto (0, 0, 0) y a partir de esta se tomará la traslación y rotación de las siguientes fotografías que serán tomadas en sentido anti horario. Figura 3.12 Posición de la cámara en cada fotografía 61 3.7.4. Identificación de puntos clave Para poder realizar la correspondencia de puntos es necesario encontrar los puntos clave de las dos imágenes a analizar. OpenCv cuenta con métodos que nos ayudan a buscar los cambios de intensidad producidos en cada pixel para una región de un tamaño definido, en OpenCv este método está implementado por la función: cv2.goodFeaturesToTrack(), que determina las esquinas fuertes de una imagen. La función encuentra las esquinas más prominentes en la imagen o en la región de imagen especificada, estos son algunos de los parámetros que posee. image: ingrese una imagen de un solo canal de 8 bits o de coma flotante de 32 bits. maxCorners: número máximo de esquinas para devolver. qualityLeve: parámetro que caracteriza la calidad mínima aceptada de las esquinas de la imagen. minDistance: distancia euclidiana mínima posible entre las esquinas retornadas. corners: vector de salida de las esquinas detectadas. A continuación, se observa la sintaxis del método. corners = cv2.goodFeaturesToTrack(gray, 300, 0.01, 30) corners = np.int0(corners) A = [] for i in corners: x, y = i.ravel() cv2.circle(img, (x, y), 3, 255, -1) A.append((x,y)) Figura 3.13 Código: Algoritmo cv2.goodFeaturesToTrack La ventaja de este método es que se puede especificar la cantidad de puntos clave a encontrar. A demás del método de Features to track, OpenCv cuenta con algoritmos para identificar puntos clave y no solo las esquinas de una imagen, entre estos métodos tenemos a SIFT (Transformación de características invariables a escala). Algoritmo SIFT Los detectores de esquinas como el algoritmo visto anteriormente, son invariantes a la rotación, lo que significa que, incluso si la imagen gira, podemos encontrar las mismas esquinas, una esquina 62 puede no ser una esquina si la imagen está escalada. Por ejemplo, verifique la imagen simple a continuación. Una esquina en una imagen pequeña dentro de una ventana pequeña es plana cuando se hace zoom en la misma ventana. Figura 3.14 Esquina en una imagen Entonces, en 2004, D. Lowe, de la Universidad de Columbia Británica, ideó un nuevo algoritmo, Transformación de características invariables de escala (SIFT) en su documento, que extrae puntos clave y calcula sus descriptores. Para calcular el descriptor de un punto se toma un vecindario de 16x16 alrededor del punto clave. Se divide en 16 sub bloques de tamaño 4x4. Para cada sub bloque, se crea un histograma de orientación de 8 contenedores. Por lo tanto, hay disponibles un total de 128 valores bin. Se representa como un vector para formar un descriptor de punto clave. Además de esto, se toman varias medidas para lograr robustez contra los cambios de iluminación, rotación, etc. A pesar de que este es uno de los algoritmos más recomendados en el proceso de reconstrucción 3D, para hacer uso de este método es necesario realizar un pago, debido a esto Ethan Rublee, Vincent Rabaud, Kurt Konolige y Gary R. Bradski diseñaron el algoritmo ORB como alternativa a SIFT o SURF en 2011. import cv2 img = cv2.imread('home.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) sift = cv2.xfeatures2d.SIFT_create() kp = sift.detect(gray, None) img = cv2.drawKeypoints(gray, kp) cv2.imwrite('sift_keypoints.jpg', img) Figura 3.15 Ejemplo algoritmo SIFT 63 Algoritmo ORB (Oriented FAST and Rotated BRIEF) ORB es básicamente una fusión del detector de punto clave FAST y el descriptor BRIEF con muchas modificaciones para mejorar el rendimiento. Primero usa FAST para encontrar puntos clave, luego aplica la medida de la esquina de Harris para encontrar los N puntos principales entre ellos, ahora para los descriptores, ORB usa descriptores BRIEF. Para utilizar este algoritmo primero se crea un objeto ORB. Tiene una serie de parámetros adicionales, entre los más útiles están: nFeatures que da el número máximo de características a retener. WTA_K, decide el número de puntos que produce cada elemento del descriptor BRIEF. NORM_HAMMING, es la distancia que se usa en el caso de realizar la correspondencia. A continuación, un ejemplo del uso de este algoritmo: import cv2 from matplotlib import pyplot as plt img = cv2.imread("imagenes\img1.jpg", cv2.IMREAD_GRAYSCALE) orb = cv2.ORB_create(nfeatures=2000) keypoints, descriptors = orb.detectAndCompute(img, None) img=cv2.drawKeypoints(img,keypoints,None) print(keypoints) plt.imshow(img), plt.show() cv2.waitKey(0) cv2.destroyAllWindows() Figura 3.16 Ejemplo algoritmo ORB para la detección de puntos clave 3.7.5. Correspondencia de puntos Los puntos correspondientes son aquellos que representan una proyección del mismo punto físico en el espacio 3D. Podemos definir dos formas para identificar puntos correspondientes, mediante métodos existentes en OpenCV y haciendo uso de la matriz fundamental. 64 Basics of Brute-Force Matcher Es un método de OpenCv que toma el descriptor de una característica en el primer conjunto y se combina con todas las demás características en el segundo conjunto utilizando algunos cálculos de distancia. Y se devuelve el más cercano. Para BF matcher, primero tenemos que crear el objeto BFMatcher usando cv2.BFMatcher (). Se necesitan dos parámetros opcionales. El primero es normType, especifica la medida de distancia que se utilizará. Por defecto, es cv2.NORM_L. Para descriptores basados en cadenas binarias como ORB, BRIEF, BRISK, etc., se debe usar cv2.NORM_HAMMING, que utiliza la distancia de Hamming como medida. Si ORB está usando WTA_K == 3 o 4, se debe usar cv2.NORM_HAMMING2. Para este caso se realizará la coincidencia con descriptores de ORB, a continuación, se observa el código de este algoritmo. import cv2 from matplotlib import pyplot as plt img1 = cv2.imread('box.png',0) img2 = cv2.imread('box_in_scence.png',0) org = cv2.ORB() kp1, des1 = orb.detectAndCompute(img1, None) kp2, des2 = orb.detectAndCompute(img2, None) bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) matches = bf.match(des1,des2) matches = sorted(matches, key = lambda x:x.distance) img3 = cv2.drawMatches(img1, kp1, img2, kp2, matches[:10], flags=2) plt.imshow(img3),plt.show() Figura 3.17 Código algoritmo ORB para la coincidencia de características 65 Correspondencia con matriz fundamental Como ya se mencionó en el Capítulo II, una de las propiedades de la matriz fundamental es la igualdad para puntos correspondientes: 𝑥′𝑇 𝐹𝑥 = 0 Donde, x’ representa al punto clave de la primera imagen y x el punto clave de la segunda imagen, si estos son correspondientes la ecuación dará como resultado 0. Para calcular la Matriz Fundamental se usa la ecuación: 𝐹 = [𝐾′𝑡] × 𝐾 ′ 𝑅𝐾 −1 , donde K, representa la matriz de parámetros intrínsecos de la cámara, matriz proporcionada por el código de Calibración de cámaras fisheye. Ya que las dos imágenes a analizar se tomarán con la misma cámara se dice que: K’ = K. Haciendo uso de las herramientas de Python, se realiza el cálculo respectivo, además del cálculo de la Determinante de F, la cual, si es igual o aproximada a 0, significa que la Matriz Fundamental obtenida es correcta. F = (K*t)@(K*R*Kinv) F1 = K*t F2= K@t Det = np.linalg.det(F) Figura 3.18 Cálculo de Matriz Fundamental y su Determinante Paso siguiente se compara uno por uno los puntos clave x de la primera imagen con todos los puntos clave x’ de la segunda imagen, si la igualdad 𝑥′𝑇 𝐹𝑥 = 0 se cumple quiere decir que esos dos puntos son correspondientes. 3.7.6. Algoritmo de cálculo de coordenadas 3D Una vez obtenido los puntos correspondientes de las dos imágenes, se diseñó un método que realice el análisis visto en el punto 3.7.1. Cómo parámetros de entrada tenemos: kp1, puntos clave de la imagen1. kp2, puntos clave de la imagen 2 66 centrox, valor de x del centro de la cámara, valor obtenido en la matriz de parámetros intrínsecos. centroy, valor de y del centro de la cámara. b, distancia del centro de la imagen 1 y el centro de la imagen 2 radio, radio del lente. Después de ingresado los parámetros iniciales, el método recorre cada uno de los puntos correspondientes, identificando el caso al que pertenece y realizando el análisis correspondiente para obtener el valor de (X, Y, Z, 1) de cada punto, se añade un valor de 1 adicional para poder hacer la multiplicación por la matriz de traslación y rotación de ser el caso. Este método devuelve un array con los puntos 3D obtenidos de la correspondencia de puntos de las dos imágenes analizadas. A continuación, se muestra la sintaxis del método creado para la obtención de los puntos 3D. def coordenadas(kp1,kp2,centroX,centroY,b,radio): Coordenadas = [] for i in range(len(kp1)): #CASO 1 if kp1[i][0] < centroX and kp1[i][1] < centroY and kp2[i][0] < centroX and kp2[i][1] < centroY: else: #CASO 2 if kp1[i][0] > centroX and kp1[i][1] < centroY and kp2[i][0] > centroX and kp2[i][1] < centroY: else: #CASO 3 if kp1[i][0] < centroX and kp1[i][1] > centroY and kp2[i][0] < centroX and kp2[i][1] > centroY: else: #CASO 4 if kp1[i][0] > centroX and kp1[i][1] > centroY and kp2[i][0] > centroX and kp2[i][1] > centroY: else: #CASO 5 if kp1[i][0] > centroX and kp1[i][1] < centroY and kp2[i][0] < centroX and kp2[i][1] < centroY: else: #CASO 6 if kp1[i][0] > centroX and kp1[i][1] > centroY and kp2[i][0] < centroX and kp2[i][1] > centroY: return np.array(Coordenadas) Figura 3.19 Método para la obtención de los puntos 3D 67 3.7.7. Métodos de Traslación y Rotación No siempre las fotografías serán tomadas en la misma orientación, siempre existirá traslación y rotación generalmente en el eje Y, tal cómo se mostró en la Figura 3.12. Por este motivo fue necesario diseñar dos métodos adicionales, uno para la traslación y otro para la rotación. El método de traslación recibe como parámetros el valor la traslación en el eje X, Y & Z, además de la nube de puntos con coordenadas (x, y, z, 1) de cada punto y realiza el producto matricial entre el punto p[i] y la matriz de traslación. Cómo resultado devuelve un array con las nuevas coordenadas, como se puede ver en la Figura 3.20 (a). De manera similar a la traslación se desarrolló el método de rotación en el eje Y, este método recibe como parámetros de entrada el ángulo que se rotó y los puntos 3D, seguidamente haciendo uso de los métodos proporcionados por numpy, se hace el producto entre la matriz Ry y el punto p, dando como resultado final un array con los nuevos valores rotados, ver la Figura 3.20 (b). def traslation(x, y, z, puntos): nuevos_puntos = [] T = np.array([[1, 0, 0, x], [0, 1, 0, y], [0, 0, 1, z], [0, 0, 0, 1]]) a) for i in range(len(puntos)): nuevo = np.dot(T, puntos[i]) nuevos_puntos.append(nuevo) return np.array(nuevos_puntos) b) def rotationY(angle, puntos): nuevos_puntos = [] Ry = np.array([[math.cos(angle), 0, math.sin(angle), 0], [0, 1, 0, 0], [-math.sin(angle), 0, math.cos(angle), 0], [0, 0, 0, 1]]) for i in range(len(puntos)): nuevo = np.dot(Ry,puntos[i]) nuevos_puntos.append(nuevo) return np.array(nuevos_puntos) Figura 3.20 a) Método de traslación. b) Método de rotación. 68 3.7.8. Presentación de la nube de puntos Luego de tener la nueva nube de puntos con la traslación y rotación correspondiente, se procede a la representación de los mismos en una gráfica en tercera dimensión, para esto hacemos uso de Python y la biblioteca Matplotlib. A continuación, se detallan los pasos a seguir: 1) Se crea la figura con: fig = plt.figure() 2) Se crea el plano 3D: ax1 = fig.add_subplot (111, projection='3d') 3) Es necesario tener un array con cada coordenada por separado. 4) Agregamos los puntos en el plano 3D con el método scatter: ax1.scatter(x, y, z, c='g', marker='o'), el valor de 'g' representa el color con el que se dibujarán los puntos. 5) import matplotlib.pyplot as plt fig = plt.figure() ax1 = fig.add_subplot(111, projection='3d') x = [1,2,3,4,5,6,7,8,9,10] y = [5,6,7,8,2,5,6,3,7,2] z = [1,2,6,3,2,7,3,3,7,2] ax1.scatter(x, y, z c='g', marker = 'o') plt.show() Figura 3.21 Ejemplo de presentación de puntos 3D 3.7.9. Elaboración del soporte para el teléfono móvil La cámara a utilizar será el accesorio Universal clip lens que se colocará en el teléfono móvil LG K8, sus características físicas son las siguientes: Tabla 7: Características LG K8 Dimensiones: 146.3 x 73.2 x 8.2mm Peso: 149 g Pantalla: 5’’ Cámara Principal: 13 MP Resolución: 1280 x 960 69 El diseño del soporte fue realizado por otro miembro del Proyecto No 30, encargado de la parte técnica e impresión de piezas. Este soporte debe ser acoplado fácilmente a la estructura del gimbal. Tomando en cuenta las dimensiones del teléfono móvil, se hizo un croquis rectangular con las dimensiones exactas del móvil. Para la disminución de masa del soporte se realizó una matriz de orificios de 1.5 cm de diámetro en la parte trasera como se observa en la Figura 3.22. Figura 3.22 Diseño de soporte 3D Figura 3.23 Simulación de montaje de soporte en el quadcópter Para la fabricación de las piezas del prototipo las impresoras 3D que se utilizan son el modelo DIY 2018, estas impresoras son de tipo “Open Hardware”. Es una impresora 3D cartesiana capaz de construir en PLA con una resolución de 100 µm, con cama caliente y una extrusora cuya temperatura puede llegar a los 210º C. Este equipo es de bajo costo, y permite la construcción de piezas con un buen acabado. A continuación, se indican las características generales de este equipo. 70 Tabla 8: Características de impresora 3D Impresora 3D DIY 2018 Espacio de impresión (mm3) 200 x 200 x 180 Tiempo de ensamblaje Resolución Precio de mercado 7 horas 100 µm $250 Figura 3.24 Impresora DIY 2018 Después de impresa las piezas quedaron de la siguiente manera: Figura 3.25 Resultado del soporte impreso 71 CAPÍTULO IV 4. Pruebas y Resultados 4.1. Simulación en Cinema 4D Antes de trabajar con imágenes obtenidas desde nuestra cámara hemisférica, se realizó una prueba para verificar el correcto funcionamiento del código para la obtención de coordenadas de un punto P. Haciendo uso del programa Cinema 4D, se hizo un modelado simulando las condiciones anteriormente expuestas (Figura 3.9). Figura 4.1 Simulación en Cinema 4D. Como datos de entrada tenemos: u1 = 43.56 v1 = 50 u2 = 32.87 v2 = 50 θ2 = 26.60 b = 300 C = 26.38 Todas estas unidades son proporcionadas por Cinema 4D. A continuación, se muestra una tabla comparando los resultados obtenidos con nuestro análisis y las coordenadas reales del programa. 72 Tabla 9: Resumen de resultados de la prueba 1 Coordenadas X Y Z Coordenadas reales 200 250 400 Coordenadas obtenidas mediante el código 197.95 251.05 399.12 Los resultados obtenidos son más que satisfactorios, teniendo un margen de error mínimo. Esta prueba nos ayudó a verificar que el análisis realizado fue correcto. 4.2. Cálculo de coordenadas de un solo punto P Se tomó 2 fotografías de un pasillo con el objetivo de calcular las coordenadas (x, y, z) de un punto en específico utilizando el código de cálculo de coordenadas. a) b) Figura 4.2 a) Imagen 1 b) Imagen 2. Como datos de entrada tenemos u1 = 342.5 px v1 = 551 px u2 = 288.38 px v2 = 551 px θ2 = 25° b = 76 cm C = 45° 73 Una vez ejecutado el código tenemos los siguientes resultados: Tabla 10 Resumen de resultados de la prueba 2 Coordenadas X Y Z Coordenadas reales 131 cm 140 cm 197 cm Coordenadas obtenidas mediante el código 142 cm 142 cm 254 cm Como se puede observar, a pesar de que en el eje X & Y el margen de error se establece en 10 cm que es bastante bueno, en el eje Z no sucede lo mismo, existiendo un error bastante considerable. Esto se debe a que el accesorio Universal clip lens que utilizamos no tiene una forma hemisférica perfecta por lo que el radio de la imagen es diferente en cada punto. Semiesfera del accesorio Semiesfera perfecta Figura 4.3 Error en la forma de la semiesfera 4.3. Pruebas de vuela con el quadcópter Una vez realizado pruebas iniciales con una simulación en Cinema 4D y el análisis de un solo punto de un espacio determinado, el siguiente paso fue realizar pruebas de vuelo para verificar el correcto funcionamiento del soporte antes de montar el teléfono móvil en el mismo. Las pruebas se realizaron en un rango de 5 a 45 metros de altura, dónde se analizó si factores como viento, velocidad o cambios de dirección ocasionan que el soporte sufra alguna fractura. Se realizaron 3 pruebas de vuelo a distinta velocidad y altura, en cierto tiempo se aterriza el quadcopter y se comprueba visualmente si el soporte presentaba algún inconveniente. 74 Tabla 11: Resultados de la primera prueba de vuelo Tiempo de vuelo Altura Velocidad Presencia de fracturas 8 minutos 5m 3.1 m/s No 7 minutos 18 m 5.2 m/s No 6 minutos 42 m 4.7 m/s No Como se puede observar en la Tabla 6, los resultados del correcto funcionamiento del soporte fueron satisfactorios, soportando los diferentes cambios a los que fue sometido sin presentar algún tipo de fractura o daño de la estructura, soportando despegues y aterrizajes de la aeronave. El siguiente paso fue realizar pruebas de vuelo con el teléfono móvil montado en el soporte que va añadido al quadcópter como se puede ver en la Figura 4.4. Figura 4.4 Dispositivo acoplado al quadcópter Para la toma de fotografías de manera remota se usó la herramienta AirDroid (ver Anexo B) el cual permite mediante un computador acceder a la cámara del teléfono móvil y tomar las fotografías deseadas. En esta segunda prueba de vuelo de igual manera se realizaron 3 despegues con sus respectivos aterrizajes siendo como común denominador que en las tres ocasiones el dron Tarot perdió comunicación con la señal del control remoto. Después de un análisis de lo sucedido se llegó a la conclusión de que la frecuencia de 5GHz de la señal Wi-Fi proveniente del teléfono móvil provocó 75 una interferencia en la señal del control remoto por lo que el dron Tarot dejó de recibir las órdenes del control provocando su descenso. La señal Wi-Fi del teléfono móvil es necesaria para poder tomar las fotografías de manera remota por lo que apagarla o colocar el dispositivo en modo avión no es una opción. A pesar de que el soporte para el teléfono móvil funcionó de manera correcta, se tuvo que descartar la opción de tomar fotografías aéreas de edificaciones, por lo que se optó por tomar fotografías haciendo uso de un trípode que sostenga en teléfono móvil. 4.4. Análisis de un edificio de la Facultad de Ingeniería Ciencias Físicas y Matemática Continuando con el objetivo de este proyecto se prosiguió a la toma de fotografías de un edificio de la facultad, para poder obtener una nube de puntos del mismo, el edificio seleccionado fue el siguiente: Figura 4.5 Edificio de la Facultad de Ingeniería Ciencias Físicas y Matemática Siguiendo los pasos mencionados en el apartado 3.7, en primer lugar, se realizó la calibración de la cámara seleccionada. Calibración de cámara Haciendo uso del método cv2.fisheye.calibrate que nos proporciona la biblioteca de OpenCv, los parámetros devueltos fueron los siguientes: DIM = (1280, 960) 76 K=np.array([[506.2692088899974, 0.0, 624.9547272021955], [0.0, 498.44188307072085, 473.0689174866462], [0.0, 0.0, 1.0]]) D=np.array([[-0.07962037625147166], [0.21796080526946815], [-0.36826504921829034], [0.16216685308558942]]) Dónde DIM representa la resolución de la cámara, K es la matriz de parámetros intrínsecos y D es el vector de salida de coeficientes de distorsión. Toma de fotografías Una vez realizada la calibración de cámara se prosigue con la toma de fotografías, en este caso específico se tomaron 6 fotografías del edificio, distribuidas de la siguiente forma: Figura 4.6 Distribución de las fotografías del edificio de la facultad 77 Figura 4.7 Medidas necesarias para el análisis. A continuación, se muestran las fotografías reales tomadas. Imagen 1 Imagen 2 Imah Imagen 3 Imagen 4 78 Imagen 5 Imagen 6 Figura 4.8 Fotografías tomadas del edificio de estudio. Identificación de puntos clave Para la obtención de puntos clave se hizo uso de los dos métodos mencionados en el apartado 3.7.4, el algoritmo goodFeaturesToTrack y el algoritmo ORB, para determinar cuál es el más adecuado. Algoritmo goodFeaturesToTrack Figura 4.9 Resultado algoritmo goodFeaturesToTrack La ventaja de usar este método es que se puede especificar el número de puntos clave que se desea encontrar y la distancia entre uno y otro, al observar la imagen resultante podemos ver que los puntos encontraron se encuentran en su mayoría en las esquinas, lo cual facilita la formación de nube de puntos. 79 Algoritmo ORB (Oriented FAST and Rotated BRIEF) Figura 4.10 Resultado algoritmo ORB La característica de este método es que no solo nos da como resultado las coordenadas de los puntos clave encontrados sino también nos proporciona los descriptores de cada uno de ellos, esta información será necesaria al momento de utilizar el método de Basics of Brute-Force Matcher, que nos devuelve la correspondencia de los puntos clave de ambas imágenes Correspondencia de puntos Antes de obtener las coordenadas 3D de los puntos del edificio, es necesario tener los vectores con los puntos correspondientes de las dos imágenes analizadas, por este motivo se realizaron pruebas con cada una de las opciones presentadas en el punto 3.7.5 de este documento. Método Basics of Brute-Force Matcher Para usar este algoritmo como parámetros de entrada no solo nos pide los puntos clave de las dos imágenes sino también los descriptores de estos puntos, por esta razón el método para la identificación de puntos clave utilizado será el método ORB. Al ejecutar este algoritmo es resultado es el siguiente: 80 Figura 4.11 Resultado algoritmo Brute Force Matcher En la imagen resultante de este algoritmo, une con una línea los puntos que considera son correspondientes, como se puede observar existen varios puntos considerados correspondientes que en realidad no lo son. Además, las correspondencias encontradas no serán suficientes para la creación de una nube de puntos apta para la reconstrucción 3D ya que no se han tomado ni siquiera las esquinas más importantes de la edificación. Por esta razón se considera que el Método Brute Force Matcher no nos proporciona los datos necesarios para la creación de la nube de puntos. Correspondencia de puntos haciendo uso de la matriz Fundamental Como vimos anteriormente uno de los resultados del método de calibración de cámara es la matriz de parámetros intrínsecos K, la cual no proporciona la información de la cámara utilizada. 506.27 0.0 𝐾 = [ 0.0 498.44 0.0 0.0 624.95 473.07] 1.0 Para calcular la Matriz Fundamental se hace uso de la ecuación: 𝐹 = [𝐾′𝑡] × 𝐾 ′ 𝑅𝐾 −1 , siendo R la matriz de rotación y t, el vector de traslación. 81 1.0 0.0 𝑅 = [0.0 1.0 0.0 0.0 0.0 0.0], R es igual a la identidad cuando no exista ninguna rotación. 1.0 𝑡 = [6.22 0.0 0.0], traslación en el eje x. Como resultado tenemos que la matriz fundamental de las dos primeras imágenes tomadas es: 𝐹=[ 3148.99 0.0 3887.22 0.0 0.0 0.0 ] 0.0 0.0 0.0 Se ha verificado que la determinante de esta matriz sea igual a cero. La matriz Fundamental obtenida posee solo dos valores debido a que K=K’, además que al tratarse de las dos primeras imágenes tomadas no existió rotación en la cámara, solo una traslación de 6.22 m en el eje X. Una vez obtenida la Matriz Fundamental se hizo uso de la igualdad: 𝑥′𝑇 𝐹𝑥 = 0, para determinar los puntos correspondientes. El método utilizado para la obtención de los puntos clave de las imágenes para este caso, fue el método de goodFeaturesToTrack. Este método nos devolvió un array de puntos clave de cada imagen. Al analizar la igualdad para puntos correspondientes comparando cada punto clave de la primera imagen con todos los puntos clave de la segunda, se observó que el resultado obtenido no fue para nada cercano a cero como nos pide la igualdad. Por esta razón se decidió escoger manualmente puntos correspondientes de ambas imágenes y verificar si la igualdad se cumple. A continuación, se muestra una tabla con el valor de la igualdad para los 4 primeros puntos correspondientes escogidos. Tabla 12: Resultados del producto: 𝒙′𝑻 𝑭𝒙, con puntos correspondientes x x’ (396.77 , 74.6) (159.59 , 193.18) 77732.7523 (700.79 , 57.35) (323.46 , 106.94) 232811.5424 (1009.12 , 167.31) (748.22 , 83.22) 768968.3046 (394.62 , 115.56) (153.13 , 229.84) 86989.471 82 𝒙′𝑻𝑭𝒙 A pesar de que los puntos escogidos eran correspondientes entre sí, el resultado del producto 𝑥′𝑇 𝐹𝑥 en todos los casos fue un número extremadamente grande, este resultado se dio debido a que este análisis se lo realiza para imágenes planas y no para imágenes hemisféricas que presentan una distorsión significativa. Ya que ambos métodos para la obtención de puntos correspondientes no nos proporcionaron los resultados adecuados, se decidió proseguir con el análisis escogiendo puntos correspondientes manualmente. Para las imágenes 1 y 2, se identificaron 66 puntos correspondientes; para las imágenes 3 y 4, se identificaron 74 puntos correspondientes y finalmente para las imágenes 5 y 6, se identificaron 47 puntos correspondientes. Haciendo uso de las herramientas que nos proporciona Python, se realizó un algoritmo que nos permitiera visualizar la posición (x,y) de cada punto escogido, y esta serie de puntos correspondientes guardarlos en un archivo .npz para su posterior análisis. im = cv2.imread('imagenes2/img6_2.jpg') fig = plt.figure() coords = [] plt.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB)) def onclick(event): global ix, iy ix, iy = event.xdata, event.ydata print('x = %d, y = %d' % ( ix, iy)) global coords coords.append((ix, iy)) print(len(coords)) return coords cid = fig.canvas.mpl_connect('button_press_event', onclick) plt.show() print(coords) np.savez("img1.npz", coord=coords) Figura 4.12 Sintaxis del algoritmo para guardar puntos de interés de una imagen. 83 Presentación de la nube de puntos Ya que se han calculado los puntos correspondientes de cada par de imágenes a analizar, además de conocer las coordenadas del centro de la imagen (Matriz de parámetros intrínsecos), la distancia entre cada centro de imagen, la traslación y rotación realizada, es posible utilizar nuestro algoritmo para el cálculo de coordenadas 3D (Ver apartado 3.7.6). Este algoritmo nos devuelve una nube de puntos con coordenadas (x, y, z) de cada par de imágenes, por lo que al final tendremos 3 arrays de coordenadas 3D, los cuales serán representados en una gráfica tridimensional haciendo uso del método scatter. El resultado final de la nube de puntos es el siguiente: a) b) c) Figura 4.13 Resultados de la nube de puntos. a) Vista Frontal. b) Vista Superior. c) Vista Lateral. Figura 4.14 Comparación entre el edificio real y la nube de puntos obtenida. 84 Estimación del error Se realizaron en total 4 ensayos, donde se tomaron fotografías del mismo edificio y en posiciones similares, esto con el objetivo de verificar si existe variación en los resultados obtenidos en los diferentes ejes. La Tabla 12 nos muestra el resumen de la estimación del error del eje (X, Y, Z) para cada par de imágenes, es decir las coordenadas 3D de cada una de las 3 paredes del edificio, así como el número de puntos correspondientes obtenidos de cada imagen. Tabla 13: Estimación del error. Imagen N° de Estimación de error Estimación de error Estimación de error Analizada puntos del eje X del eje Y del eje Z 1y2 66 0.6474749575518515 0.909372869335131 2.4243688434154294 3y4 74 0.47061796636203934 0.4368616298602541 1.0383213801730464 5y6 45 0.6995959234215118 0.12132339861849835 1.4422034576144926 Como se puede observar existe mayor error en los ejes Z de cada par de imágenes, como se mencionó anteriormente esto se debe a la forma del lente que no es hemisférico perfecto, lo que nos produce mayor error en el cálculo de la profundidad. A continuación se muestra un ejemplo del procedimiento que se siguió para la obtención del error del eje Z de las imágenes 3 y 4. Tabla 14: Ejemplo del análisis realizado para estimar en error de los ejes. Imagen 3 y 4 Coordenada Z Punto Ensayo 1 Ensayo 2 Ensayo 3 Ensayo 4 1 2 3 4 5 . . . 74 -2,92E+00 1,59E+00 8,76E+00 -2,77E+00 -1,54E+00 . . . . -3,85E+00 1,38E+00 9,72E+00 -3,89E+00 -2,22E+00 . . . . -5,96E+00 1,18E+00 12,22E+00 -5,95E+00 -3,81E+00 . . . . -5,89E+00 1,28E+00 12,25E+00 -6,00E+00 -3,97E+00 . . . . 85 Desviación Estándar 1,51447818 0,17560459 1,82833334 1,59515219 1,19660561 . . . . Estimación de error 1.03832 Se tomó en cuenta el resultado del eje Z de cada uno de los puntos correspondientes en cada uno de los ensayos realizados, seguidamente se calculó la desviación estándar que verificaría la variación del conjunto de valores, estos datos serían los que nos ayudaron a calcular un error estimado. 86 CAPÍTULO V 5. Conclusiones y Recomendaciones 5.1. Conclusiones El prototipo de escáner 3D usando una cámara omnidireccional montada en un dron quadcópter presentó inconvenientes al momento de lograr la toma aérea; sin embargo, tanto la investigación realizada como las pruebas hechas, conforman un pilar fundamental para el mejoramiento de esta técnica. Los escáneres tridimensionales que utilizan imágenes omnidireccionales nos dan mejores resultados en términos de velocidad en la toma de imágenes puesto que una sola fotografía nos proporciona mayor información. De la investigación realizada se concluyó que el Lenguaje de Programación Python utilizado para el procesamiento de imágenes omnidireccionales con lente hemisférico dio excelentes resultados, en especial la biblioteca de visión artificial de código abierto OpenCV. El método propuesto para componer una geometría tridimensional a partir de dos imágenes del mismo espacio, se ejecutó de forma exitosa previo a análisis de los posibles casos que se pueden presentar. Este método demostró resultados satisfactorios a lo largo de las pruebas realizadas. Se puede realizar el proceso de escaneo 3D utilizando cámaras de bajo costo siempre y cuando estás cumplan con los requisitos establecido anteriormente, en nuestro caso simplemente usando un accesorio para teléfono celular que se encuentra de venta en cualquier local comercial de este tipo. El uso de un dron quadcópter supone una herramienta de gran utilidad al momento de capturar imágenes de edificios de una altura considerable. Sin embargo, debido a la interferencia entre la señal WiFi del teléfono móvil y el control del quadcópter, se produjo errores de conexión por lo que no fue factible el sobrevuelo del dron. 87 Se logró la obtención de una nube de puntos perteneciente a un edificio de la Facultad de Ingeniería Ciencias Físicas y Matemática, obteniendo un margen de error solo en el eje Z de las coordenadas 3D. 5.2. Recomendaciones Tiempo para desarrollar un prototipo funcional de escáner 3D Teniendo en cuenta que el desarrollo de un escáner 3D con técnicas no muy conocidas y poco utilizadas, aunque altamente efectivas como es el uso de imágenes hemisféricas, requiere de un proceso de investigación profundo antes de empezar con la elaboración del prototipo, por lo que el tiempo recomendable para realizar todo el proceso sería de uno a dos años de trabajo. Equipo de trabajo Se recomienda tener un equipo de trabajo mínimo de tres personas para realizar todas las actividades requeridas. Por ejemplo: una persona especializada en la parte técnica tanto para el mantenimiento del dron, como para el diseño e impresión de piezas necesarias; un piloto entrenado para poder volar el dron cerca de edificios y una persona encargada del procesamiento de imágenes. Consideraciones para el correcto manejo del Dron Se necita de un piloto especializado para volar un Dron quadcópter de estas dimensiones y características ya que este no estará volando en un lugar despejado como se recomienda, sino que volará cerca de las edificaciones que se desea escanear. Si no se pudiera conseguir un piloto especializado, se recomienda que la persona encargada de volar el dron tenga un tiempo de entrenamiento mínimo de 2 meses. Uso de software 88 En caso de ser necesario obtener resultados rápidamente, se podría hacer uso de softwares especializados en fotogrametría, los cuales se encuentran fácil mente en la red, existen tanto de paga como gratuitos, entre los mejores tenemos: -Pix4D (2600/año) -PhotoScan ($179 estandar) 89 BIBLIOGRAFÍA 1) Abdel-Bary, M. (2011). 3D Laser Scanners: history, applications, and future. 2) Aguirre, J. (2016). Calibración de cámaras no métricas, Estudio de metodologías y modelos matemáticos de distorción. Madrid, España. 3) Aplicación de monitoreo de cámara EseeCloud para PC con Windows. (31 de Octubre de 2018). Obtenido de BDFIX: https://bdfixforum.blogspot.com/2018/10/eseecloud-cameramonitoring-app-for.html 4) Barazzetti, L., Fangi, G., Remondino, F., & Scaioni, M. (2010). Automation in MultiImage Spherical Photogrammetry for 3D Architectural Reconstructions. 5) Barranco, A., Martínez, S., & Gómez, J. (Junio de 2016). Visión estereoscópica por computadora con Matlab y OpenCV. 6) Beekmans, C., Schneider, J., Labe, T., Lenner, M., Stachniss, C., & Simmer, C. (2016). Cloud photogrammetry with dense stereo for fisheye cameras. Atmospheric Chemistry and Physics, 14231-14248. 7) Bourke, P. (Junio de 2017). Classification of fisheye mappings. Obtenido de paulbourke: http://paulbourke.net/dome/fisheyetypes/ 8) Cabezos Bernal, P., & Cisneros Vivó, J. (2016). PANORAMAS ESFÉRICOS ESTEREOSCÓPICOS. EGA, 70-81. 9) Cámaras FPV. (s.f.). Obtenido de Experto en drones: https://www.expertodrones.com/camaras-fpv/ 10) CAPTURADORA DE VIDEO CONVERSOR DE VIDEO EASYCAP DC 60. (s.f.). Obtenido de euroextremeshop.com: http://euroextremeshop.shopmania.biz/compra/capturadora-devideo-conversor-de-video-easycap-dc-60-393698 11) Carrasco, J. A. (Abril de 2015). Integración de un UAV (vehículo aéreo no tripulado) en la plataforma robótica ARGOS. Proyecto fin de carrera. Madrid, España. 12) Cegarra Sánchez, J. (2004). Metodología de la investigación científica y tecnológica. Madrid. 13) Cinema 4D. (s.f.). Obtenido de ecured: https://www.ecured.cu/Cinema_4D 14) Da Sousa, A. (Septiembre de 2016). Papiloma invertido rinosinusal en una niña de nueve años. Caracas, Venezuela. 90 15) D'Annibale, E., & Fangi, G. (2009). Interactive Modelling by projection of oriented Spherical Panorama - Ad Deir, Petra, Jordan. 16) De La Cruz Casaño, C. (2016). MEtodología de la investigación tecnológica en ingeniería. Revista Ingenium, 43-46. 17) Diaz, M., Lencinas, D., & del Valle, H. (2014). Introducción a la fotografía hemisférica en ciencias forestales. Madera y Bosques, 20(1), 109-117. 18) Dzananovic Ustovic, N. (Diciembre de 2012). Modelado 3D a partir de fotografías con 3DSOM. Escuela de Ingenierías Industriales. Valladolid , España. 19) Fangi, G., & Nardinocchi, C. (10 de September de 2013). PHOTOGRAMMETRIC PROCESSING OF SPHERICAL. The Photogrammetric Record, XXVIII(143), 293-311. 20) Fangi, G., de Amorim, A., & Malinverni, E. (2013). Documenting architectural heritage in Bahia, Brazil, using Spherical Photogrammetry. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 219-224. 21) Fangi, G., Malinverni, E., & Tassetti, A. (2013). The metric documentation of Cham Towers in Vietnam by Spherical Photogrammetry. ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 121-126. 22) Fangi, G., Piermattei, L., & Wahbeh, W. (2013). Spherical Photogrammetry as Rescue Documentation for The Reconstruction of some UNESCO Sites in Syria. International Journal of Heritage in the Digital Era, 2(3), 335-341. 23) Ferreño, E. (26 de Octubre de 2017). ¿Qué es un gimbal? ¿Para qué sirve? Obtenido de Profesional review: https://www.profesionalreview.com/2017/10/26/que-es-un-gimbalpara-que-sirve/ 24) Fisheye Calibration Basics. (s.f.). Obtenido de MathWorks: https://www.mathworks.com/help/vision/ug/fisheye-calibration-basics.html 25) García, L. (s.f.). Drones, el cielo está al alcance de todos. 26) Gutierrez Posada, J., & Gómez Montoya, C. (27 de Septiembre de 2011). Metodología de la Investigación Tecnológica. Colombia. 27) Haralick, R., & Shapiro, L. (1992). Computer and robot vision. New York. 28) Hirning, M., Isoardi, G., & Coyne, S. (Diciembre de 2009). Applying the Use of High Dynamic Range Imaging Pipelines to Discomfort Glare Research. Australia. 91 29) Hobbytree RX-LCD5802. (s.f.). Obtenido de amazon: https://www.amazon.com/Hobbytree-RX-LCD5802-Diversity-ReceiverMonitor/dp/B0148BMA7W 30) Kaehler, A., & Bradski, G. (Diciembre de 2016). Learning OpenCV 3. 31) Luhmann, T., Robson, S., Kyle, S., & Harley, I. (2006). Close Range Photogrammetry Principles, techniques and applications. Whittles Publishing. 32) Manual usuario cámara 360°. (s.f.). Obtenido de zoominformatica: https://www.zoominformatica.com/docs-alarmas/Manual_usuario_castellano_IPFE02.pdf 33) Marcato, J., Antunes, M., & Garcia, A. (2015). EXPERIMENTAL ASSESSMENT OF TECHNIQUES FOR FISHEYE CAMERA CALIBRATION. 34) Martín Barrio, N. (Julio de 2016). Análisis y aplicación de un escáner 3D en el ámbito médico-estético. Madrid, España. 35) Mery, D. (14 de Agosto de 2004). Visión por Computador. Santiago, Chile. 36) Models for the various classical lens projections. (s.f.). Obtenido de http://michel.thoby.free.fr/Fisheye_history_short/Projections/Models_of_classical_projec tions.html 37) Ojala, M., & Aiko, M. (Septiembre de 2015). Fisheye optics for omnidirectional stereo camera Performance evaluation for AGV applications. 38) PC PyCharm. (s.f.). Obtenido de tutorialspoint: https://www.tutorialspoint.com/pycharm/pycharm_tutorial.pdf 39) Pinto, C. (2019). Diseño y desarrollo de gimbal para cámaras y láseres que funcionaran como escáneres 3D en drones. Trabajo de titulación. Quito, Ecuador. 40) Rodriguez Navarro, P. (s.f.). LA FOTOGRAMETRÍA DIGITAL AUTOMATIZADA FRENTE A LOS SISTEMAS BASADOS EN SENSORES 3D ACTIVOS. Expresión gráfica arquitectónica, 100-111. 41) Ruiz Segarra, A. (Mayo de 2016). Automatización del escáner David 3D para la digitalización de piezas patrimoniales del Ecuador. Quito, Ecuador. 42) Sámano Molina, J. M. (Septiembre de 2013). DISEÑO DE ROBOT MÓVIL Y CONTROL MEDIANTE VISIÓN POR COMPUTADORA PARA LA NAVEGACIÓN EN UN ESPACIO CONOCIDO. 92 43) Sansoni, G., Trebeschi, M., & Docchio, F. (Enero de 2009). State-of-The-Art and Applications of 3D Imaging Sensors in Industry, Cultural Heritage, Medicine, and Criminal Investigation. Sensors, 569-601. 44) Scaner 3d. (s.f.). Obtenido de EcuRed: https://www.ecured.cu/Scaner_3d 45) Schwalbe, E. (s.f.). GEOMETRIC MODELLING AND CALIBRATION OF FISHEYE LENS CAMERA SYSTEMS. Alemania. 46) Thody, M. (6 de Noviembre de 2012). About the various projections of the photographic objective lenses. Obtenido de http://michel.thoby.free.fr/Fisheye_history_short/Projections/Various_lens_projection.ht ml# 47) Tipos de cámara FPV para un dron de carrera. (s.f.). Obtenido de midrondecarreras: https://www.midronedecarreras.com/camaras-fpv/ 48) TS5828 Mini transmisor de vídeo inalámbrico. (s.f.). Obtenido de AliExpress: https://es.aliexpress.com/item/FPV-5-8GHz-600mW-32-Channels-Mini-Wireless-A-VTransmitting-TX-Module-TS5828-RP-SMA/32315877308.html 49) Tsai, R. (1987). A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-self TV cameras and lenses. IEEE Journal of Robotics an Automation, 323-344. 50) van Rossum, G. (Septiembre de 2009). El tutorial de Python. 51) Villareal, H. (2017). Universal lens kit. Obtenido de https://www.iosoffices.com/lifestyle-1/2018/1/31/universal-lens-kit 93 IOS OFFICES: ANEXOS ANEXO 1. CARACTERÍSTICAS DEL DRON TAROT Tabla 15: Características del Dron Tarot Aeronave Peso (incluida la batería) 2180 g Max. Carga útil 1500 g Carga útil óptima 1130 g Velocidad angular 200 ° / s Ángulo de inclinación máxima 35 ° Velocidad máxima de vuelo 15 m/s Altura máxima de vuelo A.G. L 122 m Tiempo de vuelo 35 min Radio control Frecuencia 2.4 GHz Temperatura de funcionamiento -10.0 ° C - 50.0 ° C Rango de voltaje de trabajo 7.2 V - 22.2 V Amperaje de trabajo 40 A nominal con 70 A pico máximo Batería Tipo de polímero Litio Peso ~ 1700 g Amperaje Horas 12000 mAh Voltaje 22.2 V (6 celdas) 94 ANEXO 2. ANÁLISIS DE LAS TRES CÁMARAS PROPUESTAS DESARROLLO CON VR CAM 360 Requerimientos de Hardware VR cam 360: Cámara de seguridad omnidireccional. Figura B.1 VR cam 360 Cable de red: Cable de aproximadamente 7 metros de longitud. Figura B.2 Cable de red 95 Adaptador de 12V Figura B.3 Adaptador universal de 12v Dispositivo Móvil: Se utilizará el dispositivo LG k8. Requerimientos de Software App VR CAM: Es una aplicación para Android que nos ayuda al monitoreo de las cámaras VR CAM 360. Figura B.4 Aplicación VR CAM (Manual usuario cámara 360°, s.f.) 96 Desarrollo Para empezar con la utilización de la cámara se deben seguir los siguientes pasos: 1. Conexiones: La cámara debe estar conectada a la fuente de energía para empezar con la configuración. 2. Descargar la App: En un dispositivo Android la aplicación “VR CAM” se encuentra en la Play Store, una vez instala se deberá crear una cuenta para usarla. Figura B.5 App en la Play Store 3. Añadir cámara: Una vez instalada la aplicación y con la cámara conectada al router, simplemente se procede a añadir el dispositivo y se podrá observar la imagen que la cámara capte en ese momento. Figura B.6 Screenshots del funcionamiento de la aplicación 97 La ventaja de esta aplicación es que te permite observar la imagen de varias formas: a) b) c) Figura B.7 a) imagen fish eye, b) imagen cilíndrica, c) imagen en dos partes Al tener la correcta conexión para la obtención de datos, se tomó fotografías del patrón de calibración de ajedrez para realizar la calibración de la cámara. Figura B.8 Patrón de ajedrez con VR CAM 360 98 Al comprobar que el código de calibración funcionó correctamente con las imágenes tomadas, el siguiente paso fue lograr fotografías tomadas de manera inalámbrica sin la necesidad de usar un cable de red, para así poder montar la cámara en el quadcópter. Cuando el cable era separado de la cámara esta perdía la señal, mostrando el siguiente mensaje: Figura B.9 Screenshot de mensaje de error Conclusión A pesar de que la imagen obtenida por la cámara VR CAM 360 nos proporciona los datos que necesitamos, no nos ayudó en el propósito de este proyecto pues necesariamente tiene que estar conectada por un cable de red al router donde el móvil está conectado, por lo que montarla en el quadcópter para tomar fotografías aéreas no se podría realizar. DESARROLLO CON LA CÁMARA CCD FPV Requerimientos de Hardware Cámara CCD FPV: Cámara usada para monitorear el vuelo de un dron. 99 Figura B.10 Micro cámara FPV mini Transmisor de vídeo: El TS5828 es un mini transmisor de vídeo inalámbrico, que enviará la señal proveniente de la cámara a un receptor de vídeo. Especificaciones: Formato de vídeo compatible: NTSC/PAL. Conexión de la antena: RP-SMA, conector. Entrada de energía: 7-24 V (3 S Lipoly sugerido). Potencia de transmisión: 600 mW. Ganancia de antena: 2dbm. Corriente de funcionamiento: 310mA a 12 V. Ancho de banda de vídeo: 8 Mhz. De ancho de banda: 6,5 Mhz. Peso: 7g (sin antena). Dimensiones: 23x25x7,7mm (excepto antena). Figura B.11 Mini transmisor de vídeo TS5828 (TS5828 Mini transmisor de vídeo inalámbrico, s.f.) 100 Receptor de vídeo: Hobbytree RX-LCD5802 es un receptor monitor que nos ayudará a recibir la señal enviada por el transmisor de vídeo. Posee 40 canales distintos y puede recibir dos señales diferentes. Especificaciones: Dimensiones de 7.1"x 4.7"x2". Ángulo de visión: 140/120 grados (horizontal/vertical). Resolución: 800 x 480. Brillo: 450 cd/㎡. Temperatura de trabajo: -10 ℃ ~ + 65 ℃. Consumo de energía: 650 mA @ 12 V (Max). Figura B.12 Receptor de vídeo (Hobbytree RX-LCD5802, s.f.) Capturador de audio y vídeo: EasyCap DC 60, es un capturador y conversor de vídeo, permitiendo guardar la imagen que se proyecte en el receptor Hobbytree. Especificaciones: Captura de Audio y Video en tiempo real. Control de Brillo, Contraste, Matiz y Saturación. Permite capturar audio sin necesidad de disponer de tarjeta de sonido. Conexión y Alimentación mediante USB 2.0. Menú predictivo para un fácil uso. Soporta Formatos: DVD+/-R/RW, DVD+/-VR y DVD-Video. Soporta formatos de video NTSC y PAL. 101 Entrada de Video: RCA Hembra o S-video. Entrada de Audio: RCA Hembra (Estéreo). Resolución de capturas: 720*480(NTSC) / 720*576 (PAL). Compatible con XP + Vista + Win 7. Figura B.13 Capturador de vídeo (CAPTURADORA DE VIDEO CONVERSOR DE VIDEO EASYCAP DC 60, s.f.) Requerimientos de Software Honestech VHS to DVD: Permite capturar vídeo proveniente de otras vídeo grabadoras. Figura B.14 Honestech VHS to DVD Desarrollo Para empezar la prueba se debe verificar que el monitor esté recibiendo la señal de la cámara, como se puede observar a continuación: 102 Figura B.15 Imagen recibida de la cámara Se conectará el monitor al computador mediante el capturador de audio y vídeo, para así poder tomar fotografías de la imagen recibida por el monitor. Figura B.16 Conexión entre el monitor y el computador En vista de que la lente de la cámara no es omnidireccional, se optó con acoplarle el dispositivo Universal clip lens para obtener una imagen con mayor apertura. 103 Figura B.17 Imagen de la cámara con el accesorio Universal clip lens Se pudo observar que la imagen antes de ser colocada el lente ya presentaba una pequeña aberración como se puede observar en el apartado a. de la Figura--, y al momento de montar el Universal clip lens, el resultado fue una imagen ovala más que circular, puesto que la aberración inicial influyó en la imagen final. Conclusión La ventaja de este dispositivo es que al ser una cámara diseñada específicamente para drones quadcópter tanto la transmisión como la recepción de imagen no presentan ningún inconveniente. Tampoco es un problema montar la cámara en el dron, como sí sucedía con la VR CAM 360. Sin embargo, por defecto estas cámaras no vienen con un lente fish eye, pero si con una lente con una aberración considerable. Para poder cambiarla es necesario la exportación del lente ojo de pez. A demás considerando la aberración sumada del lente original, se descartó la utilización de esta cámara. DESARROLLO CON EL UNIVERSAL CLIP LENS Requerimientos de Hardware Universal clip lens: Accesorio para celular que adapta la cámara del mismo con una lente fish eye. 104 Figura B.18 Universal clip lens Teléfono móvil LG K8: Características Clave Cámara de 13 MP Cámara selfie de 5MP con auto disparo Pantalla HD de 12.7cm/5" HD con tecnología In-cell y diseño curvo 2.5D Rendimiento mejorado Procesador: MediaTek MT6735 1.3GHz Figura B.19 LG K8 105 Requerimientos de Software AirDroid: Herramienta utilizada para controlar un smartphone o tablet de forma remota desde un ordenador, concretamente desde el navegador web. Figura B.20 Pantalla de inicio de AirDroid Desarrollo En primer lugar, se tiene que realizar el registro en la plataforma de AirDroid y agregar el dispositivo que se va a utilizar. Figura B.21 Agregar el dispositivo a AirDroid Al verificar la correcta conexión entre el programa y nuestro celular, se prosigue a acceder a la cámara del celular de manera remota. 106 Figura B.22 Acceso remoto a la cámara de celular A continuación, se puede observar un ejemplo de una fotografía capturada con este método. Figura B.23 Fotografía tomada remotamente desde la aplicación AirDroid Conclusión A pesar de que la imagen no es 100% circular, nos proporciona toda la información necesaria, además al poder controlar la cámara del celular mediante la computadora, esto hace posible que el dispositivo sea montado en el dron quadcópter. 107 ANEXO 3. TOMA DE FOTOGRAFÍAS EN LAS PRUEBAS DE VUELO 108