Vista previa del material en texto
© Luis Ismael Minchala Avila, 2011 INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY C A M P U S M O N T E R R E Y P R O G R A M A D E G R A D U A D O S E N M E C A T R Ó N I C A Y T E C N O L O G Í A S D E INFORMACIÓN TECNOLÓGICO DE MONTERREY M E T O D O L O G Í A D E I N T E G R A C I Ó N O R I E N T A D A A L A S T É C N I C A S D E VISIÓN E S T E R E O S C Ó P I C A E I L U M I N A C I Ó N E S T R U C T U R A D A P A R A O B T E N E R A T R I B U T O S 3D E N L A I N S P E C C I Ó N D E O B J E T O S T E S I S P R E S E N T A D A C O M O R E Q U I S I T O P A R C I A L P A R A O B T E N E R E L G R A D O A C A D É M I C O D E : M A E S T R O E N C I E N C I A S C O N E S P E C I A L I D A D E N A U T O M A T I Z A C I Ó N P O R : LUIS I S M A E L M I N C H A L A A V I L A M O N T E R R E Y , N . L M A Y O D E 2011 INSTITUTO TECNOLÓGICO Y D E ESTUDIOS SUPERIORES D E M O N T E R R E Y C A M P U S M O N T E R R E Y P R O G R A M A D E G R A D U A D O S E N MECATRÓNICA Y TECNOLOGÍAS D E INFORMACIÓN TECNOLÓGICO DE MONTERREY M E T O D O L O G Í A D E I N T E G R A C I Ó N O R I E N T A D A A L A S T É C N I C A S D E V I S I Ó N E S T E R E O S C Ó P I C A E I L U M I N A C I Ó N E S T R U C T U R A D A P A R A O B T E N E R A T R I B U T O S 3 D E N L A I N S P E C C I Ó N D E O B J E T O S TESIS P R E S E N T A D A C O M O R E Q U I S I T O P A R C I A L P A R A O B T E N E R E L G R A D O A C A D E M I C O D E : M A E S T R O E N C I E N C I A S C O N E S P E C I A L I D A D E N AUTOMATIZACIÓN P O R : Luis Ismael Mínchala A v i l a M O N T E R R E Y , N . L . Mayo de 2011 Metodología de integración orientada a las técnicas de visión estereoscópica e iluminación estructurada para obtener atributos 3D en la inspección de objetos por Ing. Luis Ismael Mínchala Avila Tesis Presentada al Programa de Graduados de la División de Mecatrónica y Tecnologías de la Información como requisito parcial para obtener el grado académico de Maestro en Ciencias especialidad en Automatización Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey Mayo de 2011 E l buen ejemplo, la honestidad y la perseverancia son un legado que se los debo a mis formadores, quienes con amor y comprensión han sabido enrumbarnos a nosotros, sus hijos, por el camino del bien. Gracias Papi y Mami por ser mi infinita fuente de inspiración, a ustedes va dedicado éste trabajo con el que culmino una importante etapa de formación profesional. Reconocimientos L a consecución no solo de éste trabajo, sino de una productiva estancia en Méxi- co se las debo a muchas personas valiosas que tuve la oportunidad de conocer en el I T E S M . Quiero agradecer de manera especial al Dr. Luis Eduardo Garza Castañón por su intenso apoyo en la fase de investigación, adicionalmente me es grato reconocer el importante aporte de los miembros del comité de tesis: Dr. Francisco Palomera Palacios y MSc. Luis Rosas Cobos. A los grandes amigos que he conocido en México les debo un agradecimiento especial, ya que permitieron que el período de estudios de maestría además de ser enriquecedor en conocimiento, sea un espacio de crecimiento personal; y sobre todo gracias a esa increíble persona que me supo apoyar a pesar de la distancia que nos separa, Alejandra. L u i s I S M A E L M Í N C H A L A A V I L A Instituto Tecnológico y de Estudios Superiores de Monterrey Mayo 2011 v Metodología de integración orientada a las técnicas de visión estereoscópica e iluminación estructurada para obtener atributos 3D en la inspección de objetos Luis Ismael Minchala Av i la , M . C . Instituto Tecnológico y de Estudios Superiores de Monterrey, 2011 Asesor de la tesis: Dr. Luis Eduardo Garza Castañón Resumen E l control de calidad al final de las líneas de manufactura es un punto neurálgico en el proceso de fabricación de un producto, más aún si se considera que mayoritariamente se realiza de manera manual. Disminuir los errores de estimación en mediciones de distan- cias y formas, además de aumentar el número de piezas inspeccionadas por unidad de tiempo en una línea de producción es el objetivo de muchos trabajos de investigación, por lo que en el desarrollo de esta tesis se propone una metodología que permita im- plementar un sistema de inspección tridimensional en una línea de manufactura. E n esta tesis se plantea la captura de información relacionada con la geometría de los objetos y a través de sus características tridimensionales emitir un reporte con información de distancias y formas dentro de rangos establecidos de tolerancia propios del sistema de visión, que permitan decidir si éstos continúan el proceso de fabricación o deben ser redireccionados para su reparación o desecho. Las soluciones actuales a esta problemática se enfocan principalmente en inspeccionar los objetos en 2D, mientras que las soluciones de tres dimensiones son extremadamente costosas y se basan en técnicas de visión estereoscópica o iluminación estructurada por separado, teniendo como base la triangulación para generar información del espacio tridimensional. E n este trabajo de investigación las dos técnicas anteriores se fusionan para establecer un enfoque de sensor 3D, que analiza en detalle las características tridimensionales de los productos y las partes que lo componen. Los resultados se cuantifican a través de las diferentes respuestas que nos brinda un prototipo construido para desarrollar esta metodología, compuesto por dos cámaras para visión estereoscópica y un haz de luz estructurado. L a integración de las técnicas de visión estereoscópica e iluminación estructurada, que es el principal aporte de éste trabajo de investigación, considera la simplificación del problema de correspondencia de puntos que presentan el par de imágenes estéreo, a través del análisis del patrón de luz estructurado que se encuentra proyectado sobre el objeto bajo análisis, lo que permite reducir la complejidad de los algoritmos y mejorar los tiempos de procesamiento en el software. vil Índice general Reconocimientos v Resumen vi índice de tablas xi Indice de figuras xn Lista de símbolos xiv Capítulo 1. Introducción 1 1.1. Introducción 1 1.2. Definición del Problema y Motivación 3 1.3. Meta 4 1.4. Objetivos 5 1.5. Hipótesis 6 Capítulo 2. Fundamentos de visión estereoscópica e iluminación estruc- turada para el cálculo de posición de objetos en el espacio 7 2.1. Aspectos generales de una configuración estereoscópica 7 2.2. Herramientas matemáticas para localización espacial 10 2.2.1. Representación de la posición 10 2.2.2. Representación de la orientación 11 2.2.3. Coordenadas y matrices homogéneas 15 2.3. Modelo de la cámara 16 2.3.1. Matriz de transformación para perspectiva 17 2.3.2. Proyección ortogonal y de perspectiva débil 20 2.3.3. Estimación de puntos 3D utilizando sistemas de visión artificial 21 2.4. Estimación de la matriz de calibración con un enfoque práctico 22 2.4.1. Ejemplo de calibración de dos cámaras y cálculo de posición 3D 24 2.5. Iluminación estructurada 25 2.5.1. Triangulación Activa 26 V I I I 2.5.2. Iluminación estructurada 28 2.6. Trabajos relacionados 30 2.7. Aporte al conocimiento 32 Capítulo 3. Construcción y calibración de un prototipo para pruebas experimentales 34 3.1. Diseño y construcción del prototipo . . 34 3.1.1. Cámaras 36 3.1.2. Proyector luz estructurada 38 3.1.3. Circuito de control y comunicación con la P C . 39 3.2. Ventajas de la configuración estereoscópica con iluminación estructurada 40 3.3. Calibración del sistema de visión 43 3.3.1. Adquisición de las imágenes 43 3.3.2. Pre-pr(*cesamiento de las imágenes 44 3.3.3. Barrido del ángulo del láser 46 3.3.4. Correspondencia de puntos 47 3.3.5. Cálculo de las matrices de calibración 49 3.4. Validación de la calibración del sistema 52 Capítulo 4.Desarrollo de una metodología para inspección de objetos con visión estereoscópica e iluminación estructurada 58 4.1. Evaluación del desempeño del prototipo 58 4.1.1. Precisión del sistema 58 4.1.2. Pruebas de precisión sobre un objeto de manufactura 63 4.1.3. Operación bajo diferentes condiciones de iluminación 65 4.2. Metodología utilizada en el desarrollo del proyecto 66 4.3. Metodología para la integración de visión estéreo e iluminación estruc- turada para la inspección de objetos y adquirir atributos 3D 68 4.3.1. Selección de los componentes del sistema 70 4.3.2. Configuración del ambiente de trabajo 71 4.3.3. Desarrollo y pruebas de algoritmos de Pre-procesamiento de imá- genes 72 4.3.4. Validación de la calibración del sistema 74 4.3.5. Decodificación de información tridimensional 74 Capítulo 5. Conclusiones y trabajos futuros 76 5.1. Conclusiones 76 5.2. Trabajos futuros 78 Apéndice A . Algoritmo de calibración en Matlab 79 I X Apéndice B . Programación Basic del microcontrolador Bibliografía x 82 85 Índice de tablas 2.1. Datos de dos cámaras distintas y de puntos en el espacio 25 2.2. Resultados obtenidos con el software implementado en Mathscript de L a b V I E W y/o Matlab 26 3.1. Heurísticas para la localización de los puntos de inflexión 50 3.2. Puntos de calibración en el espacio y coordenadas en el par de imágenes estéreo 55 3.3. Resultados de la validación de la calibración del sistema 56 4.1. Resultados de la medición de distancias sobre el rectángulo de prueba. . 60 4.2. Resultados de la medición de distancias sobre la pieza de la figura 4.2. . 62 4.3. Resultados de la medición de distancias sobre la pieza manufactura de la figura 4.4 65 XI Índice de figuras 2.1. Configuración de un par de cámaras en el espacio 8 2.2. Configuración estéreo con una cámara y un proyector de luz 9 2.3. Representación de un vector en un sistema coordenado cartesiano derecho. 10 2.4. Representación de un vector en un sistema de coordenadas polares y cilindricas 11 2.5. Representación de un vector en un sistema de coordenadas esféricas. . . 12 2.6. Orientación de un sistema móvil OUV con relación a uno fijo OXY. . . 13 2.7. Rotación del sistema OUVW con respecto a los ejes OX, OY y OZ. . 14 2.8. Transformación de perspectiva 17 2.9. Transformación de perspectiva. E l sensor de la cámara está en el centro de la proyección 18 2.10. Comparación de proyecciones: perspectiva y ortogonal 20 2.11. Arquitectura de un sistema de triangulación activa básico 27 2.12. Patrón de franjas codificado y proyectado sobre un objeto cilindrico. . . 27 2.13. Proyección de un patrón tipo rejilla sobre objetos 3D [15] 28 2.14. Concepto de Iluminación Estructurada 29 2.15. Sistema propuesto en [6] 30 2.16. Sistema propuesto en [21] 31 2.17. Arquitectura del sistema propuesto en [11] 32 3.1. Disposición de las cámaras y el patrón de iluminación en el prototipo. . 35 3.2. Arquitectura del sistema de visión 3D prototipo 36 3.3. Sistema prototipo implementado 37 3.4. Comparación U S B - I E E E 1394 39 3.5. Proyector de luz estructurada 40 3.6. Circuito de control y comunicación 41 3.7. P C B del circuito de control y comunicación 42 3.8. Problema de correspondencia analizado con correlación cruzada 43 3.9. Simplificación del problema de correspondencia a través de la redundan- cia del sistema de visión 44 3.10. Diagrama de flujo del algoritmo de calibración 45 XII 3.11. Adquisición de imágenes en L a b V I E W 46 3.12. Preprocesamiento de las imágenes 46 3.13. Esqueletización de la imagen preprocesada. 48 3.14. Conectividad entre píxeles 49 3.15. Formaciones de las submatrices 5 x 5 y 3 x 3 para el criterio de las heurísticas 51 3.16. Diseño del patrón de calibración 52 3.17. Puntos de calibración en la pieza 53 3.18. H M I implementado en L a b V I E W para el proceso de calibración 54 3.19. Dispersión del error en las mediciones de distancia realizadas sobre el objeto patrón 57 4.1. Objeto de prueba para mediciones longitudinales 59 4.2. Medición del angho de una pieza tridimensional 61 4.3. Reconstrucción "del patrón de calibración en 3D 63 4.4. Objeto de manufactura utilizado para comprobar la precisión del sistema. 64 4.5. Preprocesamiento fallido de la imagen. Sistema funcionando en un am- biente con demasiada luz 66 4.6. Preprocesamiento exitoso sobre una de las imágenes capturadas del par estéreo 66 4.7. Pasos seguidos a lo largo del camino de investigación 67 4.8. Metodología para la integración de las técnicas de visión estereoscópica e iluminación estructurada para inpección de objetos en 3D 69 4.9. Selección del lente de la resolución y el lente de la cámara 70 4.10. Niveles de procesamiento en aplicaciones que involucran imágenes digitales. 73 4.11. Decodificación de puntos de inflexión 75 XIII Lista de símbolos Punto en el espacio con coordenadas (w Px , w Py , w Pz) Rayo de proyección entre WP y el centro coordenado de la cámara 1 Distancia medida en un sistema coordenado cartesiano desde el origen hasta la punta del vector con coordenadas (WPX,W Py,w Pz) Ángulo formado por el eje de las abscisas en un sistema coordenado cartesiano y la proyección de un vector v, en el plano xy Ángulo formado por el eje z y un vector v en el espacio Matriz de transformación homogénea Punto del espacio proyectado en la cámara, con coordenadas (r, c) Matriz de transformación de coordenadas espaciales a coordenadas de la imagen (r, c), luego de la adquisición Matriz de transformación para perspectiva Columnas de una submatriz de 5 x 5 de la imagen original para aplicar las heurísticas que permiten encontrar los puntos de inflexión Renglones de una submatriz de 5 x 5 de la imagen original para aplicar las heurísticas que permiten encontrar los puntos de inflexión Columnas de una submatriz de 5 x 5 de la imagen original para aplicar las heurísticas que permiten encontrar los puntos de inflexión Renglones de una submatriz de 3 x 3 de la imagen original para aplicar las heurísticas que permiten encontrar los puntos de inflexión Field of View, ó campo de visión. Focal length Bus de comunicación estándar para cámaras digitales Industrial and Instrumentation specification for Digital Cameras X I V Capítulo 1 Introducción 1.1. Introducción L a geometría de un objeto es invariante con respecto a rotaciones, suciedad e i n - cluso condiciones de iluminación. Además, la forma de un objeto es la característica que normalmente es requerida en los propósitos de inspección de calidad. L a mayoría de técnicas actuales para control de calidad utilizando visión artificial, basan su fun- cionamiento en imágenes adquiridas por una sola cámara y un exhaustivo procesamiento de las mismas en una P C o en un procesador con una aplicación de visión artificial em- bebida corriendo en tiempo real, que comunica la decisión de la inspección realizada sobre el objeto al sistema (normalmente de control) para que éste realice la clasificación de manera adecuada. A pesar de que la iluminación juega un rol fundamental en las aplicaciones de visión artificial 2D, el objetivo fundamental en estas aplicaciones es ho- mogeneizar la cantidad de luz sobre los objetos a analizar, eliminar reflejos y sombras, etc. Los atributos que se pueden obtener del procesamiento de imágenes 2D tienen que ver principalmente con mediciones de longitudes, diámetros, determinación de color y textura [25]. Resulta, sin embargo, muy complicado obtener información de la forma de los objetos con una sola imagen de los mismos, por lo que la construcción de una representación 3D a partir de imágenes 2D sería una aproximación con muchos detalles perdidos [14]. E n el momento, en el que detalles de la forma de los objetos se vuelven impor- tantes, ganan un significante protagonismo las técnicas de procesamiento de más de una imagen del mismo objeto capturadas con más de una cámara, y a través de una configuraciónparticular de las mismas (por ejemplo, visión estereoscópica) es posible decodificar detalles 3D de partes claves del producto para su posterior procesamiento. Existe sin embargo, otro enfoque, que al igual que la visión estereoscópica, basa el análi- sis de las características de forma de los objetos en cálculos a partir de triangulaciones, desde un punto de iluminación y una cámara apuntando el objeto en cuestión. E n este caso además de la cámara existe un haz de luz estructurado, proyectando un patrón 1 específico de iluminación: punto, línea, rejilla, etc. Gracias a esta técnica es posible capturar características 3D con una sola cámara [15]. Los sistemas de inspección visual 3D son en la actualidad bastante especializa- dos y por tanto relativamente costosos, considerando que muchas empresas del sector industrial que requieren solucionar problemas relacionados con inspección automática prefieren continuar trabajando en modo manual en lugar de invertir en un sistema de visión 3D. Estos sistemas, por otra parte, basan su principio de operación en técnicas de visión estereoscópica o iluminación estructurada por separado. Existen, sin embargo una gran variedad de técnicas para adquirir modelos de objetos 3D, con un variado rango de costos de hardware y diferentes niveles de precisión y detalle en la geometría de los modelos capturados como se menciona en [4, 6, 10, 11, 22]. Durante el desarrollo de esta investigación se trabajará en el concepto de un sensor 3D que basará su fun- cionamiento en la combinación de las técnicas de visión estereoscópica e iluminación estructurada, a través del análisis de imágenes estéreo adquiridas por cámaras de idénti- cas características y la alineación de las imágenes proyectando patrones conocidos en los objetos a analizar, emitidos por un sistema de iluminación estructurado. E l énfasis en la información 3D de un objeto se justifica porque representa el detalle de la forma geométrica de éste y por tanto posee mucho más valor que la información 2D que representa las variaciones locales de reflectividad solamente [23]. E l concepto de sensor 3D va de la mano con el concepto de triangulación activa [30], en donde existe una fuente de luz estructurada que ilumina el objeto. L a ventaja de utilizar iluminación estructurada radica en el uso de un patrón de luz conocido, como por ejemplo un punto láser proyectado en la superficie a analizar, o también una línea, una rejilla o un patrón senoidal con frecuencia variable para lograr una triangulación de fase [15]. Los trabajos desarrollados en [6, 10, 11, 13, 18, 22] utilizan variadas técnicas de adquisición de características tridimensionales, utilizando principalmente visión estéreo o iluminación estructurada por separado, a excepción de [18] que contempla combinar las dos técnicas para la reconstrucción del relieve facial. E l presente trabajo, por otro lado tiene por meta el procesamiento de las imágenes del par estéreo para adquirir los atributos 3D, simplificando el problema de correspondencia de puntos a través de la búsqueda del patrón de iluminación estructurada (línea) en el objeto bajo análisis en las dos imágenes de manera simultánea utilizando procesamiento multihilo (multithread) en L a b V I E W . Los resultados de la investigación, se cuantificarán a través de las diferentes res- puestas que nos brinde un prototipo construido para desarrollar una metodología que permita obtener atributos de objetos en 3D utilizando la fusión de las técnicas de i lumi- 2 nación estructurada y visión estereoscópica. Este prototipo utilizará una configuración de dos cámaras dispuestas en formato estéreo, un haz de luz estructurado para resaltar las características 3D del objeto y que a su vez servirá como patrón conocido en el par de imágenes estéreo para simplificar el problema de correspondencia. L a implementación de los algoritmos de visión artificial, triangulación, calibración de cámaras, interpo- lación, ingeniería inversa, etc., se realizarán en la plataforma de desarrollo L a b V I E W 2009. 1.2. Definición del Problema y Motivación E l control de calidad al final de una línea de producción se lleva a cabo de diversas maneras: • Manual. U n operador al final de una línea de producción se encarga de analizar detalladamente las características, forma, dimensiones, etc., del producto y decide si éste debe continuar o no con el proceso de fabricación. • Muestra aleatoria [20]. Se elige una muestra del total de un lote de producción y se aprueba o no el lote completo para su distribución en base a la cantidad de objetos que hayan pasado la inspección. Es posible notar que a pesar de que los métodos estadísticos normalmente son confiables, existirán de todas maneras productos defectuosos en el mercado. • Semiautomática. U n operador inspecciona el producto asistido por algún sistema automático. • Automática. Se encuentran difundidas técnicas de visión 2D para reconocimiento de patrones, análisis de color, textura, etc. • No se realiza. Uno de los principales problemas en los procesos de control de calidad tiene que ver con los tiempos de inspección y la precisión con la que éste pueda realizarse. E n la actualidad existen numerosos sistemas de visión 2D que solucionan parte de los pro- cesos de inspección para control de calidad, sin embargo no cubren áreas específicas, como la automotriz por ejemplo, en la que se requiere un análisis detallado de las piezas (altos y bajos relieves, agujeros, etc.) que se usarán en ensambles completos de vehícu- los y que por supuesto no pueden fallar, de manera que no se ponga en riesgo la vida del usuario. Es posible por tanto, notar que una parte importante en un proceso de producción tiene que ver con la inspección de objetos al final de una línea de producción. 3 L a inspección de la forma de los objetos, de manera particular está vinculada con el campo de aplicaciones de visión artificial 3D e ingeniería inversa [15]. E l méto- do activo sin contacto más ampliamente usado en el campo de visión 3D es el de los sistemas de iluminación estructurada. Estos sistemas están compuestos comúnmente por una cámara y un proyector de luz estructurada [23]. Sin embargo el costo de es- tas aplicaciones han limitado su expansión a nivel industrial, por lo que una solución de costo moderado y que pueda inspeccionar objetos en tiempos mucho menores que lo que lo haría un operador de manera manual tendrá muy buena acogida en el mercado. A pesar de que el estado del arte actual en visión 3D permite la adquisición de una gran variedad de objetos; operadores eficientes y procedimientos con tiempos de retardo más bajos siguen siendo una meta de investigación en los trabajos que se están llevando a cabo, como por ejemplo: 11A Simple, Low Cost, 3D Scanning System Using the Láser Light-Sectioning Method" [6] y "3D real time camera" [13], por citar un par de trabajos de investigación realizados en esta área. De allí, se han encontrado varias áreas de mejora para la adquisición de modelos 3D, identificados en [4], como se menciona a continuación: • Planificar métodos para adquisición de datos. • Captura confiable y procesamiento robusto de información para un gran número de clases de objetos, ambientes, y objetos con superficies particulares. • Automatización de todos los procedimientos, para minimizar la interacción del usuario con el sistema. • Retroalimentación en tiempo real de la superficie adquirida. • Métodos para evaluar la precisión global del modelo. Adicionalmente y no menos importante, resulta interesante mencionar que el cam- po de los sistemas de visión 3D, no sólo es posible aplicarlos a nivel industrial para procesos automáticos, como los de control de calidad que es el caso específico de este trabajo de investigación, sino que también se puede encontrar una enorme área de aplicación práctica en la robótica móvil y la robótica industrial, por lo que el aporte científico,que este trabajo brinde será de gran utilidad para los estudiantes, profesiona- les e investigadores involucrados o que deseen involucrarse en el campo de aplicaciones de visión artificial. 1.3. Meta L a meta de este trabajo de tesis es desarrollar una metodología para la integración de las técnicas de visión estereoscópica e iluminación estructurada en el campo de i n - 4 spección de objetos para adquirir características 3D. Esta metodología se aplica a un prototipo desarrollado en la etapa de investigación y que consta de dos cámaras de idénticas características, un haz de luz estructurado y objetos conocidos construidos con alta precisión (patrones de calibración) de forma que permitan calibrar el sistema y además comprobar su exactitud. E l software que despliega los resultados de las medi- ciones 3D se implementará con L a b V I E W como plataforma de desarrollo. 1.4. Objetivos E l objetivo general de este trabajo de investigación es alcanzar la meta estableci- da en la sección 1.3, para lo cual adicionalmente se requiere cumplir con los siguientes objetivos particulares: • Construir un prototipo que incluya dos cámaras y un sistema de iluminación estructurada para evaluar resultados con diferentes objetos. • Evaluar el desempeño en la adquisición de atributos 3D, de sistemas de i lumi- nación estructurada basados en patrones de punto y línea. • Implementar un Interfaz Hombre Máquina (HMI) para la interacción del usuario con el sistema. Las utilerías con las que el H M I debe contar son las siguientes: • Una ventana de visualización del proceso de captura de imágenes en tiempo real. • Panel de control para calibración de cámaras, control del ángulo del haz de luz estructurada y ejecución y paro de la aplicación. • Una ventana flotante que presente los datos del perfil del objeto en 3D. • Salida en un archivo de texto con los resultados de la medición 3D. • Desarrollar una metodología de calibración de cámaras en formato estéreo, al igual que el patrón de iluminación estructurado. Esta metodología debe contemplar el desarrollo de las siguientes actividades: • Hallar matrices de calibración individuales para las cámaras y el haz de luz. • Combinar las matrices de calibración individuales para ajusfar el sistema de adquisición 3D de forma que sea posible adquirir atributos de la geometría de objetos. • Desarrollar y utilizar algoritmos de autocalibración de L a b V I E W . 5 1.5. Hipótesis L a combinación de sistemas de iluminación estructurada y visión estereoscópica son eficientes para adquirir la geometría tridimensional de objetos de manufactura para implementar procesos de inspección automáticos que permitan tomar decisiones de con- trol de calidad en líneas de producción. L a tesis busca responder además, las siguientes preguntas de investigación: • ¿Puede un sistema de triangulación activa monitorear la forma de los objetos en tiempo real? • ¿La precisión del sistema de inspección 3D de bajo costo se adaptará a los re- querimientos de la industria? X • ¿Será posible utilizar cámaras de diferentes especificaciones y lograr una cali- bración óptima del sistema completo? 6 Capítulo 2 Fundamentos de visión estereoscópica e iluminación estructurada para el cálculo de posición de objetos en el espacio Presentar la relación cuantativa entre imágenes 2D y sus estructuras 3D del mun- do real, a través de las matemáticas e ingeniería involucradas es el principal objetivo de este capítulo. E n la sección 2.1 se encuentra el detalle de una configuración estéreo general. L a sección 2.2 detalla sistemas coordenados para representar posición y ori- entación, a la vez que se presentan los conceptos de coordenadas homogéneas y matrices de transformación homogéneas. L a sección 2.3 presenta la modelación matemática de cámaras para adquisición de imágenes, y la forma en la que utilizando configuración estereoscópica es posible calcular la posición tridimensional de puntos definidos en el espacio. L a sección 2.4 presenta en detalle el cálculo de matrices de calibración de dos cámaras distintas y la estimación de puntos en el espacio utilizando estas matrices y Matlab como herramienta de desarrollo. Las características técnicas y de diseño de i l u - minación estructurada se presentan en la sección 2.5. Finalmente la sección 2.6 contiene breves descripciones de aplicaciones e investigaciones relacionadas al área de inspección tridimensional utilizando técnicas de visión estéreo o iluminación estructurada. 2.1. Aspectos generales de una configuración estereos- cópica E n la figura 2.1 se ilustra la configuración general de dos cámaras observando el mismo espacio tridimensional. A menudo, en el manejo de gráficos por computadora el uso de un sistema coordenado derecho resulta lo más común, con el eje Z correspondi- ente al rayo que deja el lente de la cámara hacia el campo de visión (FOV ~ Field of View) [14]. De la figura 2.1, se puede notar que las dos cámaras observan un mismo espacio de trabajo, siendo éste el espacio tridimensional con su propio sistema de coordenadas 7 W adjunto a él. Intuitivamente, resulta sencillo notar que la localización del punto en el espacio de trabajo puede ser obtenido simplemente de- terminando la intersección de los dos rayos de las imágenes wP 10 y wP 20. Para poder realizar la configuración estéreo general ilustrado en la figura 2.1, se deben considerar los siguientes aspectos: • Debemos conocer la posición de la cámara C\ en el espacio de trabajo W y algunas de las características internas de la cámara, como la distancia focal. • De manera similar, debemos conocer la posición de la cámara C2 en el espacio de trabajo W y sus parámetros internos. • Es necesario identificar la correspondencia del punto 3D, w P con los puntos 2D de las imágenes ( 1 P, 2P). • Se requiere de alguna formulación que calcule w P de los dos rayos de las imágenes wP lO y wP 20. 8 Antes de entrar en el detalle de los puntos citados, se describen a continuación variantes a la configuración estéreo general presentanda en la figura 2.1: • L a configuración mostrada en la figura 2.1 consiste de dos cámaras calibradas a las coordenadas del espacio de trabajo. Las coordenadas de un punto 3D son cal- culadas a través de la intersección de dos rayos de las imágenes correspondientes a los puntos en ellas. • Una de las cámaras puede ser reemplazada por un proyector el cual ilumina una o más puntos de la superficie utilizando un haz de luz o un patrón especial (Iluminación Estructurada). E l proyector puede ser calibrado de idéntica manera a una cámara, como se ilustra en la figura 2.2 [14]. • E l conocimiento previo del modelo del objeto puede reemplazar una de las cámaras. E n muchos casoS la información del modelo del objeto agrega suficiente infor- mación que permite decodificar información tridimensional a partir de una sola imagen. Figura 2.2: Configuración estéreo con una cámara y un proyector de luz. 9 2.2. Herramientas matemáticas para localización es- pacial E n la sección 2.1 se resaltó la importancia de hallar una formulación matemática que permita calcular w P de los dos rayos de las imágenes wP lO y wP 20. Las herramientas matemáticas de localización espacial que se presentan en esta sección son de aplicación general, siendo los campos de aplicación principales los de visión 3D, robótica y realidad virtual. 2.2.1. Representación de la posición L a localización de un cuerpo rígido en el espacio precisa de especificar tanto su posición como su orientación. Ambas deben ser establecidas en relación a un sistema de referencia definido* E n un plano bidimensional, la posición de un cuerpo rígido está ligada a dos grados de libertad y, por tanto, la posición del cuerpo quedará definida por dos componentes independientes. E n el caso de espacio tridimensional será necesario emplear tres componentes. C o o r d e n a d a s cartes ianasSi se trabaja en un plano, con un sistema coordenado OXYZ de referencia aso- ciado, un punto p vendrá expresado por las componentes (x,y,z) correspondientes a los ejes coordenados del sistema OXYZ, como se ilustra en la figura 2.3. Figura 2.3: Representación de un vector en un sistema coordenado cartesiano derecho. 10 C o o r d e n a d a s polares y c i l indr i cas Para un plano, es posible también caracterizar la localización de un punto p de un vector utilizando como referencia la distancia desde el origen del sistema coordenado hasta el punto de interés y el ángulo que forma el rayo trazado desde el origen hasta el punto p, y el eje x. Para el caso tridimensional se aumenta la coordenada z para caracterizar la localización del punto p. Esta situación se ilustra en la figura 2.4. Figura 2.4: Representación de un vector en un sistema de coordenadas polares y cilindri- cas. C o o r d e n a d a s esféricas Es posible también utilizar coordenadas esféricas para realizar la localización de un vector en un espacio tridimensional. Considerando el sistema de referencia OXYZ, un vector cualquiera p tendrá como coordenadas esféricas (r, 0,0), donde r es la distancia medida desde el origen hasta el extremo del vector p; la componente 9 es el ángulo formado por la proyección del vector en el plano OXY y el eje OX, y finalmente la componente 0 es el ángulo formado por el vector p y el eje OZ, como se ilustra en la figura 2.5. 2.2.2. Representación de la orientación U n punto en el espacio queda completamente definido a través de los datos de su posición. Sin embargo, en el caso de un sólido rígido, se requiere conocer adicionalmente x 11 Figura 2.5: Representación de un vector en un sistema de coordenadas esféricas. su orientación con respecto al sistema de referencia. Una orientación en el espacio tridimensional viene definida por tres grados de l i - bertad o tres componentes linealmente independientes. Para poder describir de forma sencilla la orientación de un objeto respecto a un sistema de referencia, es habitual asignar solidariamente al objeto un nuevo sistema, y después estudiar la relación es- pacial existente entre los dos sistemas, el de referencia fijo y el nuevo. Para simplificar este análisis, se utilizan las matrices de rotación. M a t r i c e s de rotación Considérese un sistema OXY de referencia fija y un sistema móvil OUV solidario al objeto cuya orientación es de interés. U n vector p del plano se puede representar como: (2.1) Adicionalmente, se presentan las siguientes igualdades: (2.2) Realizando la sustitución de la expresión 2.1 en la ecuación 2.2, se obtiene: (2.3) 12 Donde: es la matriz de rotación, que define la orientación del sistema OUV con respecto al sistema OXY, y que sirve para transformar las coordenadas de un vector en un sistema a las del otro. E n el caso de un sistema de dos dimensiones, la orientación viene definida por un único parámetro independiente, como se ilustra en la figura 2.6. Figura 2.6: Orientación de un sistema móvil OUV con relación a uno fijo OXY. Para el caso tridimensional el razonamiento es similar. Supóngase ahora que los sistemas OXYZ y OUVW son coincidentes en el origen. U n vector p del espacio podría estar referido, como se estudió en la sección 2.2.1, a cualquiera de los dos sistemas de la siguiente manera: Donde: 13 • Y de manera similar al caso bidimensional, es posible establecer la siguiente equiv- alencia: (2-6) es la matriz de rotación que define la orientación del sistema OUVW con respecto al sistema OXYZ. Resulta de gran utilidad establecer la expresión de matrices de rotación que relacionen giros sobre un eje únicamente, como se ilustra en la figura 2.7. Figura 2.7: Rotación del sistema OUVW con respecto a los ejes OX, OY y OZ. Las matrices de rotación pueden componerse para expresar la aplicación conti- nua de varias rotaciones [2]. Es importante considerar el orden en que se realizan las rotaciones, pues el producto de matrices no es conmutativo. 14 2.2.3. Coordenadas y matrices homogéneas (2.7) L a ecuación 2.7 puede ser utilizada para representar la orientación y la posición de un sistema O'UVW resultado de rotar y trasladar el sistema original OXYZ según R-3x3 y P 3 x i respectivamente. Asimismo, esta matriz puede servir para conocer las coordenadas (rx,ry,rz) del vector r en el sistema OXYZ a partir de sus coordenadas (ru, rv, rz) en el sistema O'UVW: (2.8) L a principal ventaja de las matrices homogéneas reside en su capacidad de repre- sentación conjunta de posición y orientación. Esta representación se realiza utilizando al mismo tiempo la matriz de rotación R-3X3 y el vector de traslación P 3 X i en una mis- ma matriz de transformación homogénea [2]. Se debe considerar sin embargo, el orden de las transformaciones puesto que se pueden producir resultados diferentes. Una aplicación de gran utilidad en nuestros propósitos de visión 3D, que las ma- trices de transformación homogéneas nos ofrecen es la transformación de perspectiva. Supóngase un lente situado sobre el plano OXZ cuya distancia focal es / situado sobre Para representar de manera conjunta la posición y la orientación de un sólido en el espacio, se introducen las coordenadas homogéneas. U n elemento de un espacio n-dimensional, se encuentra representando en coordenadas homogéneas por n+1 dimen- siones, de tal forma que un vector p(x, y, z) vendrá representado por p(wx, wy, wz, w), donde w tiene un valor arbitrario y representa un factor de escala. A partir de la definición de las coordenadas homogéneas surge inmediatamente el concepto de matriz de transformación homogénea. Se define como matriz de transfor- mación homogénea, T a una matriz de dimensión 4 x 4 que representa la transformación de un vector de un sistema de coordenadas a otro. Donde, R-3X3 representa una matriz de rotación como las que se presentaron en la sección 2.2.2, P 3 X i por otro lado es un vector de posición en coordenadas cartesianas similar a los presentados en la sección 2.2.1, f i X 3 indica la transformación de perspec- tiva, que se detalla más adelante para el caso de cámaras en configuración estéreo, y W i x i se usará como herramienta de escalamiento global. 15 el eje O Y , como se ilustra en la figura 2.8. Es posible comprobar que el punto r(x, y, z) se ve en el plano del lente como un punto r'(x', y', z') cuyas coordenadas vienen dadas por la siguiente expresión: (2.9) Es posible representar esta transformación de perspectiva, utilizando una sola matriz de transformación homogénea del tipo: (2.10) 2.3. Modelo de la cámara E n la ecuación 2.11 se presenta el modelo algebraico utilizado para calibrar sis- temas de visión con imágenes en perspectiva. A lo largo de esta sección nos dedicaremos a determinar los componentes de la matriz JWC a partir de configuraciones fijas del sis- tema de visión. (2.11) 16 2.3.1. M a t r i z de transformación para perspectiva E n la figura 2.8 se ilustra la problemática general de perspectiva en un sistema de visión. E l conjunto de ecuaciones 2.12 presenta el álgebra de la transformación de perspectiva. Las coordenadas de la imagen [FPX, FPy,]T se encuentran en las mismas unidades que las coordenadas del espacio tridimensional, y no en píxeles. L a transfor- mación a píxeles se desarrolla en detalle más adelante. 17 (2.12) Una transformación de perspectiva sencilla se ilustra en la figura 2.9, que a su vez se define únicamente en términos del parámetro / , la distancia focal. L a matriz F,Tl{f) se presenta en la ecuación 2.13 en su forma de 4 x 4 elementos, de forma que se pueda combinar con otras matrices de transformación. Nótese que la matriz tiene rango 3, y no 4, por lo que no es invertible. (2.13) Figura 2.9: Transformación de perspectiva. E l sensor de la cámara está en el centro de la proyección. Una transformación alternativa puede definirse colocando elorigen de la cámara en el centro de la imagen de manera que FPZ = 0, a diferencia de lo que se muestra en la figura 2.9 en la que FPZ = / . L a matriz de proyección, por tanto quedaría modificada de la siguiente manera: (2.14) E l caso más general, involucra la no coincidencia del sistema coordenado general W y el de la cámara C. Una rotación y traslación son necesarias para convertir el punto 18 del mundo w P a las coordenadas de la cámara P. Tres parámetros de rotación y tres de traslación se requieren para lograr esto: (2-15) Es posible por tanto, combinar las transformaciones para modelar el cambio de coordenadas de W a C, seguido de una transformación de perspectiva. L a tercera fila de la matriz se descarta puesto que únicamente se obtendrá el valor constante para FPZ. FP está en el plano de la imagen por lo que una transformación de escalamiento será necesaria para convertir a las coordenadas de píxeles de 1P. (2.16) L a transformación de números reales a píxeles, incluyendo la dirección opuesta del eje vertical está dada por: (2.17) siendo dx y dy el tamaño vertical y horizontal, respectivamente, de capa píxel en la ima- gen, pero en unidades del mundo real. E l resultado final para la matriz de calibración de la cámara que transforma los puntos 3D en coordenadas de píxeles de imagen está dada por: (2.18) 19 Resulta muchas veces complicado ejecutar este cálculo con precisión suficiente, puesto que en la práctica se requieren medir ángulos y distancias, por lo que muchas veces es recomendable y preferible utilizar un procedimiento definido para calibración de la cámara, como se detalla más adelante en este capítulo. 2.3.2. Proyección ortogonal y de perspectiva débil Si simplificamos el problema de proyección de la sección 2.3.1, proyectando cada punto del mundo, W, paralelamente al eje óptico y directamente sobre el plano de la imagen, obtendremos una situación similar a la que se ilustra en la figura 2.10. L a proyección ortogonal se puede observar como una proyección de perspectiva consideran- do una distancia focal, / , igual a infinito. Figura 2.10: Comparación de proyecciones: perspectiva y ortogonal. (2.19) 20 A menudo, una transformación de perspectiva puede ser aproximada por una de perspectiva ortogonal a través de un escalamiento uniforme en el plano real de la imagen. Proyectar un punto lejano en la coordenada z y aplicar un escalamiento uniforme ha sido llamado perspectiva débil. U n factor de escala adecuado se encuentra por la relación de la distancia del objeto, WPZ, y la distancia focal, / , de la cámara a través de la expresión s = wp-. L a transformación de perspectiva, queda por tanto representada como sigue: (2.20) 2.3.3. Estimación de puntos 3D utilizando sistemas de visión artificial E n la figura 2.1 se ilustra la configuración general estéreo de dos cámaras. Resulta sencillo allí observar que el punto WP puede ser estimado de la intersección de los dos rayos que salen de los centros de proyección de las cámaras. Por tanto, si utilizamos las matrices de calibración de perspectiva estudiadas en las secciones anteriores, para dos cámaras, podremos estimar las coordenadas reales tridimensionales de un punto en el espacio, [x, y, z] a partir de las coordenadas de imagen obtenidas con las cámaras previamente calibradas, [ r i , C i ] y [r2,C2J. Tomando como referencia la ecuación de calibración de una cámara, presentada en la expresión 2.11, podemos plantear un sistema de ecuaciones para la estimación de un punto en el espacio, con un procedimiento similar al que se muestra a continuación: Las variables desconocidas son las coordenadas del punto en el espacio, [x, y, z], y 21 (2.21) si eliminamos las coordenadas homogéneas s y t de las ecuaciones anteriores, es posible plantear el siguiente sistema lineal de ecuaciones: (2.22) Errores de aproximación en los modelos de las cámaras y el truncamiento de coordenadas continuas a píxeles, pueden producir inconsistencia en la solución de las ecuaciones 2.22. Una solución apropiada planteada en [14], menciona calcular la distan- cia más corta entre los rayos de las imágenes hacia el punto en el espacio tridimensional. Si la distancia de este segmento es lo suficientemente pequeña, se asigna el punto medio como el punto de intersección de los rayos de la imagen, [x, y, z]. 2.4. Estimación de la matriz de calibración con un enfoque práctico Se presenta a continuación la manera de encontrar los elementos de la matriz de calibración presentada en la ecuación 2.11, utilizando un enfoque práctico. E l campo de visión de la cámara y el enfoque deben permanecer fijos y, con el uso de un patrón de calibración, con dimensiones conocidas, procedemos a plantear un problema de op- timización para ajusfar los parámetros de calibración de nuestra cámara. Se toma un juego de coordenadas rPj, wPj, donde TPj = [TPr, 1 P¿[ es la coorde- nada del píxel en la imagen donde se visualiza el punto 3D wPj = [WPX, WPy, WPz]- E n [14] recomiendan un mínimo de 6 puntos para una calibración adecuada, siendo 25 o más lo ideal para mejorar el proceso de optimización a través de mínimos cuadrados. De manera similar a la que utilizamos para eliminar el factor de escala en las ecuaciones 2.22, definimos dos ecuaciones que modelan la geometría del rayo de una de las cámaras (ecuación 2.23). Cabe destacar en este punto, que este análisis y el método en si, puede ser aplicado a otra cámara con una ubicación diferente, y una vez obtenidas las matrices de calibración de las cámaras es posible proceder a los cálculos de posición de objetos en el espacio, como se mencionó en la sección 2.3.3. 22 E n virtud de que se pueden tener varios rayos desde el centro de la imagen a diferentes puntos en el espacio y generar siempre para cada rayo el conjunto de ecua- ciones planteadas en la expresión 2.23, es posible obtener 2n ecuaciones diferentes a partir de n puntos de calibración. Se puede utilizar notación matricial para reescrbir nuevamente la expresión 2.23 de la siguiente forma, considerando n puntos de cali- bración: A 2 n X i i X i i x i — b 2 „ x i (2.25) Resulta sencillo notar, analizando brevemente la expresión 2.25 que existen 11 incógnitas y más de 12 ecuaciones, por lo que el sistema es redundante y nuestro prob- lema se vuelve principalmente de optimización. E n la sección 2.3.3 se mencionó que las ecuaciones de los rayos de las cámaras apuntando hacia un punto no siempre tendrán solución, y en virtud de que nuestro análisis partió de las ecuaciones en esa sección planteadas, existe una gran posibilidad de que el sistema de ecuaciones 2.25 no sea consistente. Se trata por tanto, de hallar la solución que más se acerque a una solu- ción real del sistema, en caso de que fuera consistente. E n [12], se detalla el proceso de proyección ortogonal y la minimización del error en el cálculo de sistemas de ecuaciones 23 inconsistentes a través del algortimo de mínimos cuadrados, que es justamente lo que utilizaremos en nuestra aplicación práctica. E l proceso de proyección ortogonal y mini- mización del error para la estimación de la solución de un sistema como el presentado en la expresión 2.25, trata de proyectar el vector al cual queremos representar en el espacio columna de nuestra matriz de coeficientes a través de la ortogonalización del mismo en este espacio generado. A pesar de la complejidad aparente del criterio, la aplicación del algoritmo para dar solución a nuestro problema y lograr los resultados esperados es muchísimo más simple de lo que aparenta. A continuación se presenta el algoritmo de solución del sistema de ecuaciones 2.25 a través de mínimos cuadrados: 24 (2.26) Si utilizamos Matlab o L a b V I E W como herramienta de desarrollo para implemen- tar el método de mínimos cuadrados para la solución del sistema de ecuaciones 2.25, basta utilizar el comando x = A\B. A continuación se presentaun ejemplo de cali- bración de dos cámaras diferentes y el cálculo de posición 3D utilizando la teoría hasta aquí presentada. 2.4.1. Ejemplo de calibración de dos cámaras y cálculo de posi- ción 3D E n la tabla 2.1 se presenta un conjunto de datos que representan varios puntos 3D, en milímetros, y las coordenadas correspondientes en el par de imágenes estéreo, imagen 1 e imagen 2 capturadas por dos cámaras distintas. E n el Anexo 1 se presenta el detalle de la solución de este ejemplo utilizando el Mathscript de L a b V I E W 2009, y los resultados generados por el sistema se analizan en esta sección. E l Mathscript de L a b V I E W 2009 posee una estructura idéntica a la que el Matlab ofrece, en lo que a creación de archivos se refiere, por lo que el código del Anexo 1 podría ejecutarse sin problema también en ésta platafoma. Los resultados de calcular los puntos en el espacio partiendo de los datos del par de imágenes estéreo, y luego de haber hallado las matrices de calibración del sistema C\ y C 2 , como se detalla en la sección 2.4, se presentan en la tabla 2.2. Las columnas 8,9 y 10 muestran el error generado en la estimación del punto en el espacio, al que se hace referencia en la columna correspondiente; resulta sencillo notar que a pesar de que Tabla 2.1: Datos de dos cámaras distintas y de puntos en el espacio. el método de calibración utilizado es eficiente y que la estimación del error se realiza sobre los mismos puntos utilizados en la calibración del sistema pueden existir errores de hasta 0,1721 mm, lo que nos indica como primer resultado experimental previo a la implementación práctica que el error de estimación de los puntos en el espacio con una configuración estereoscópica será mayor que cero. E n la sección 3.4 se presentan los resultados de precisión del sistema experimental utilizando el mismo enfoque de éste ejemplo. 2.5. Iluminación estructurada L a mayoría de los problemas de inspección industrial, ingeniería inversa y reali- dad virtual requieren información sobre la forma geométrica de los objetos en el espacio tridimensional [15]. Los sensores ópticos 3D trabajan con fuentes de luz, lentes, foto- diodos y cámaras de video para brindar información de la geometría de un objeto, de manera tan precisa como las limitaciones físicas de los componentes del sistema lo per- mitan. Una práctica bastante común en visión 3D es proyectar un patrón conocido en la superficie del objeto a analizar y observar este patrón (triangulación activa). Para interpretar la información 3D del objeto, se requieren conocimientos y experiencia en 25 Tabla 2.2: Resultados obtenidos con el software implementado en Mathscript de Lab- V I E W y /o Matlab. el manejo de imágenes bidimensionales y adquisición de imágenes. 2.5.1. Triangulación Activa L a triangulación, en geometría, es el uso de triángulos para determinar posiciones de puntos, medidas de distancias o áreas de figuras. L a aplicación práctica de este princi- pio matemático, para la obtención de la información geométrica mediante triangulación activa por proyección de luz estructurada, consiste en lo siguiente: • U n patrón es proyectado sobre el objeto bajo prueba, en una "dirección de i lumi- nación" específica, y es observado desde una diferente "dirección de observación". E l ángulo formado entre las dos direcciones es llamado ángulo de triangulación 0, figura 2.11. • E l patrón puede ser un punto de un láser, para medición de distancias locales, ó un patrón de franjas, para una medición completa de la forma del campo de visión adquirido, como se ilustra en la figura 2.12. De la ubicación del patrón en la imagen, a través de triangulación se evalúa la distancia del detalle sobre el objeto, que queremos resaltar y decodificar. U n cambio en la distancia hacia el objeto se codificaría como un desplazamiento lateral del patrón. Proyectar una 26 línea sobre la superficie del objeto brinda la posibilidad de observar un perfil de la superficie. Para adquirir la superficie completa, haría falta un 'sean' de la línea láser sobre el objeto. Figura 2.12: Patrón de franjas codificado y proyectado sobre un objeto cilindrico. L a técnica de triangulación por medición de fase (pmt), por otro lado proyecta un patrón tipo rejilla sobre el objeto o un patrón sinusoidal con diferentes desplazamientos de fase. A través del uso de está técnica es posible adquirir la forma de la superficie de un objeto sin un 'sean', debido a que en el caso de un patrón tipo rejilla, por ejemplo, en un objeto curvado la cámara captaría líneas de rejillas curvadas también. Asimismo, si el patrón posee una diferencia de fase, con por lo menos tres exposiciones de éste es posible derivar la distancia de capa punto del objeto (figura 2.13). 27 Figura 2.13: Proyección de un patrón tipo rejilla sobre objetos 3D [15] 2.5.2. Iluminación estructurada L a iluminación tiene un papel fundamental en un sistema de visión artificial, puesto que ayuda a simplificar considerablemente el análisis e interpretación de las es- cenas. A l implementar una buena iluminación, se consigue una buena formación de la imagen a adquirir, y esto facilita su procesamiento. Por el contrario, una mala i lumi- nación puede aumentar complejidad a los algoritmos de procesamiento. E l problema en visión artificial es ubicar correctamente la iluminación, los sensores y los cuerpos a examinar para resaltar las características visuales de los objetos. L a iluminación estructurada, particularmente utiliza la proyección de patrones de luz específicos, como puntos, franjas o rejillas sobre la superficie de trabajo. E n función de cómo se deforme este patrón de luz es posible detectar las singularidades de la pieza y /o objeto bajo análisis. Por tanto, el término iluminación estructurada se define como' la proyección de un patrón de luz simple o codificado sobre la escena iluminada [24]. Este método de iluminación posee dos ventajas importantes con respecto a metodologías de iluminación tradicionales para 2D: • Establece un patrón de luz conocido sobre la superficie de trabajo y las diferencias con este patrón indican la presencia de un objeto, simplificándose así el problema de detección de un objeto. • Analizando la forma en que el patrón de luz es distorsionado, es posible obtener información de las características tridimensionales del objeto (figura 2.14). Los métodos tradicionales de luz estructurada para el sensado de profundidad, por 28 Figura 2.14: Concepto de Iluminación Estructurada. lo general, están basados en la introducción de información geométrica en la técnica de iluminación a fin de facilitar la extracción de la profundidad de la escena de análisis. Una de estas técnicas consiste en la proyección de una línea sencilla de luz sobre la escena y la imagen bidimensional es adquirida por medio de una cámara digitalizadora que se encuentra a un ángulo de toma adecuado. L a información de profundidad se adquiere del desplazamiento relativo de los d i - ferentes puntos de la línea de luz. Una particularidad del método de línea sencilla es la necesidad de procesar múltiples imágenes para reconstruir la escena completa. L a totalidad de la escena puede cubrirse ya sea moviendo la fuente de luz o bien, dejando el sistema de iluminación fijo y recorrer la escena. Una variación de este método de luz estructurada consiste en la proyección de múltiples líneas sobre la escena con una regularidad o un patrón definido. Lo anterior es logrado mediante el uso de una rejilla de difracción diseñada para el caso. L a técnica de múltiples líneas tiene la ventaja ob- 29 via de requerir en principio una sola imagen para lograr la reconstrucción de la escena completa. Esta ventaja, en términos computacionales, representa una simplificación en el manejo de los "buffers" o memoria R A M . Sin embargo, la complejidad de los algo- ritmos de reconstrucción aumenta considerablemente pues es necesarioresolver ciertas dificultades inherentes al método, entre las cuales destaca la posible confusión entre las diferentes líneas. E l principio de extracción de profundidad mediante el desplazamiento relativo de plintos de luz conduce al diseño de algoritmos demasiado complejos para poder aspirar a su implantación en tiempo real [26]. 2.6. Trabajos relacionados A continuación se presentan algunas referencias de trabajos de investigación rela- cionados con el campo de adquisición y análisis de imágenes 3D. E l uso de sistemas de escaneo tridimensional para adquirir características externas de un objeto arbitrario posee muchas aplicaciones en el campo industrial, por lo que el trabajo presentado en [6] se enfoca en analizar objetos con formas geométricas sencillas como: cilindros, rectángulos, etc. E l sistema propuesto utiliza un haz de luz estructurada de la fábrica StockerYale tipo línea con un costo de USD 2500 (el láser únicamente) una tarjeta NI PCI-1411 y una cámara TM-200 C C D de alta resolución. L a técnica utilizada es la de escaneo progresivo del láser a través del objeto y capturas consecutivas de la cámara (Light Sectioning [17]) para resolver las características 3D en software a través de un programa escrito en Matlab. Figura 2.15: Sistema propuesto en [6] 30 E n [13] se detalle el esfuerzo de un grupo de investigadores por generar un concep- to de cámara tridimensional utilizando como patrón de iluminación señales senoidales consecutivas con fases distintas, de forma que sea posible implementar la técnica de tri- angulación por medición de fase (pmt), para ello emplean un proyector de alta definición (Ferroelectric Crystal Display - F L C ) muy costoso. Gracias a la proyección perfecta de patrones senoidales con intervalos de tiempo entre cada patrón de tan solo 3fis y un procesamiento de la imagen en computadoras dedicadas es posible presentar la infor- mación 3D de las escenas en tiempo real. L a medición de perfiles en piezas de manufactura es el principal objetivo del sis- tema propuesto en [21]. E l objeto es rotado en frente de un sistema de iluminación estructurado: proyección de luz estructurada tipo línea y una cámara que observa el objeto en un ángulo diferente, llamado ángulo de triangulación. Para la reconstrucción de la geometría del objeto §e implementa en Matlab una aproximación por mínimos cuadrados a través de un círculo cuya curvatura es estimada en función de las distancias calculadas por el sistema. Por otro lado, en [11] se describe la técnica utilizada para adquirir la superficie completa de un objeto en una escena sin la necesidad de rotar o mover el sistema y /o el objeto. L a configuración del sistema es novedosa y propone utilizar una cámara de alta resolución, un proyector de luz estructurada D L P que emita una secuencia de luz codificada en código Gray, y el tercer elemento para completar el sistema consiste de un arreglo de espejos que permita tener capturas de diferentes ángulos del objeto bajo análisis, como se ilustra en la figura 2.17. L a ventaja inmediata que este sistema 31 presenta es la supresión de múltiples capturas de la imagen para su reconstrucción tridimensional. Figura 2.17: Arquitectura del sistema propuesto en [11] 2.7. Aporte al conocimiento E n la sección anterior se presentan brevemente trabajos relacionados con la temática de inspección de objetos utilizando los enfoques de visión estereoscópica e iluminación estructurada. E n virtud de que existe gran cantidad de literatura formal y trabajos realizado en éstas áreas, con resultados y metodologías diferentes, se han identificado las siguientes contribuciones, no mencionadas, ni tratadas en ningún trabajo citado en ésta investigación, que el presente trabajo de tesis aborda: • Metodología de integración de dos técnicas de visión 3D: visión estereoscópica e iluminación estructurada. Se estudia con detalle ésta metodología en la sección 4.3. • Sencillez en la calibración del sistema y en la implementación práctica de los algoritmos. E n la sección 2.4 se presentó el algoritmo de calibración de las cámaras y un ejemplo práctico. 32 • No se requieren proyectores de luz estructurada costosos, ni patrones de luz estruc- turada complejos como rejillas ó franjas, ni codificación a través de triangulación por medición de fase (pmt). Estos resultados se abordan con mayor profundidad en el capítulo 4. • L a redundancia que el sistema ofrece al estar compuesto por tres diferentes sitemas de visión 3D asegura continuidad en la operación en una línea de producción, en caso de que uno de los componentes falle. Las ventajas que la redundancia del sistema ofrece se presentan en la sección 3.2. • Simplificación del problema de correspondencia de imágenes en imágenes cap- turadas por el sistema de visión estereoscópico. 33 Capítulo 3 Construcción y calibración de un prototipo para pruebas experimentales E n el capítulo anterior se expusieron los conceptos relacionados con visión es- tereoscópica e iluminación estructurada desde un enfoque enteramente matemático. E l objetivo principal de éste capítulo, es detallar la aplicación de las matemáticas e in - geniería involucradas en sistemas de visión 3D a través de pruebas experimentales de calibración en un sistema prototipo cuyo diseño y construcción se discuten más ade- lante. L a sección 3.1 presenta el diseño y construcción del prototipo para las pruebas experimentales que se desarrollan a lo largo de éste trabajo de investigación. L a justifi- cación de la arquitectura elegida y sus ventajas se exponen en la sección 3.2. L a tercera sección está dedicada al problema de calibración del sistema y el Pre-procesamiento de las imágenes del par estéreo. Finalmente la sección 3.4 presenta los diferentes resultados de precisión alcanzados en la calibración a través de pruebas de medición realizadas so- bre los mismos objetos utilizados en el proceso de cálculo de las matrices de calibración de las cámaras. 3.1. Diseño y construcción del prototipo L a arquitectura elegida para obtener los atributos espaciales de un objeto, se bosqueja en la figura 3.1. Resulta sencillo notar allí que el sistema de visión 3D plantea- do es un sistema redundante. Las razones por la que se asevera que el sistema es re- dundante, tienen que ver con el hecho de que se forman simultáneamente 3 diferentes sistemas de visión artificial para obtener atributos 3D, mismos que se detallan a con- tinuación: • Sistema de iluminación estructurada con una cámara. Utilizando cualquiera de las dos cámaras que se muestran en la figura 3.1, y el proyector del patrón de luz estructurada es posible construir un sistema de visión 3D basándose en los con- ceptos de triangulación activa que se detallan en la sección 2.5.1, y cuya aplicación se comenta en [16] y [21]. Ejemplos de calibración de éste sistema se presentan en [9]. 34 Figura 3.1: Disposición de las cámaras y el patrón de iluminación en el prototipo. • Sistema de visión estéreo. Claramente se puede obsevar que usando las dos cámaras del sistema de la figura 3.1 y el procesamiento de las dos imágenes en un com- putador, será posible adquirir la geometría de un objeto situado en el espacio de trabajo (área calibrada [31]). Se vuelve, sin embargo relativamente compleja la correspondencia de puntos entre las imágenes adquiridas por cada cámara para aplicar los conceptos del capítulo anterior, relacionados con la ubicación de pun- tos y /o patrones en el par de imágenes estéreo. Fácilmente podemos suponer que el esfuerzo computacional se incrementa debido al procesamiento adicional para solucionar el problema de correspondencia en las imágenes, lo cual no aplica en el primer sistema, descrito anteriormente. E n [1] se detallan las limitaciones de los sistemas de visión estéreo, al igual que sus ventajas. • Sistema de visión estéreo + iluminación estructurada. Se debe precisamente a éste sistema la configuraciónde la figura 3.1, cuya justificación se menciona en detalle en la sección 3.2. L a ubicación de las cámaras no está sujeta a restricciones de ningún tipo, más bien se pretende situarles de forma que se cubra la mayor cantidad de volumen del objeto bajo análisis. E l proyector de luz estructurada, sin embargo se propone ubicarlo en el plano yz, forma que el procesamiento posterior de las imágenes resulte menos complejo. E n la figura 3.2 se ilustra la configuración del sistema prototipo. L a implementación del sistema bosquejado en la figura 3.2 se muestra en la figura 3.3. Los componentes principales del sistema se describen en las siguientes secciones. 35 Figura 3.2: Arquitectura del sistema de visión 3D prototipo. 3.1.1. Cámaras Las cámaras que se eligieron para el desarrollo del proyecto son de la firma U n i - brain, modelo Fire- i Digital Camera. Las especificaciones principales son las siguientes: • Tipo de dispositivo: I IDC FireWire Digital Camera • Inter fase: FireWire, 2 puertos (6 pines) • Velocidad: AQQMbps - T ipo de sensor: SONY® Wfine 1/4" C C D • Escaneo: Progresivo • Resolución: (H x V) 640 x 480 • Distancia focal: 4,65 mm 36 Figura 3.3: Sistema prototipo implementado. • Ángulo h o r i z o n t a l de visión: 42° • Ángulo v e r t i c a l de visión: 32° • C o l o r : Monocromática - R B G 24 bits A pesar de que en sistemas de visión estéreo se recomienda utilizar cámaras idénti- cas para facilitar los cálculos de las matrices de calibración, la metodología que se de- sarrolla a lo largo de éste trabajo, no propone esa restricción principalmente debido a la estimación de las matrices de calibración a través de un criterio de minimización del error, como se detalla en la sección 2.4. L a elección de un bus de comunicación I E E E 1394 en lugar de uno U S B en las cámaras a utilizar tiene que ver con los siguientes aspectos: • Velocidad de transferencia efectiva: A pesar de que la especificación de U S B 2.0 permite alcanzar un ancho de banda de hasta 480 Mbps [8], el encabezado del protocolo de comunicación resta velocidad a la transmisión de datos de los dis- positivos, además de ser un bus compartido dentro del P C . Por otro lado, la 37 especificación I E E E 1394a asegura una transferencia efectiva de 400 Mbps, lo cual permite una transferencia de hasta 100 cuadros por segundo en imágenes con una resolución de 640 x 480. • Estandarización del interfase: A pesar de que existen muchos puertos U S B dis- ponibles en una P C , es uno de los buses menos estandarizados dentro del campo de adquisición de imágenes. Cada fabricante ha implementado su propio diseño de hardware y software, lo que significa que muchas veces se requiere de un driv- er específico para conectar la cámara con la P C . Por otro lado, hace muchos años la Asociación de Intercambio 1394 formó un grupo que defina especifica- ciones de cámaras cuyo bus de comunicación sea I E E E 1394. E l resultado de ésta asociación es el estándar IIDC (Industrial and Instrumentation specification for Digital Cameras), con muchos dispositivos de hardware para disparo e i lu - minación con comunicación a éste bus, ademas de la especificación completa de comunicación de cámaras I E E E 1394a/b. • Uso del CPU: I E E E 1394 no requiere de un frame grabber, lo que significa que el estándar confía en el C P U para la transferencia de imágenes hacia la memoria. E n U S B , además de relegar la tarea de transferencia de imágenes hacia la memoria al C P U , se requieren software utilitarios corriendo en segundo plano como el caso de DirectShow, lo cual por supuesto genera mayor demanda de uso del procesador. • Disponibilidad de las cámaras: A pesar de que encontrar cámaras U S B es muy sencillo, la mayoría de aplicaciones de visión artificial a nivel industrial requieren un rendimiento superior al que la electrónica de consumo puede ofrecer. I E E E 1394 ha sido un estándar industrial en cámaras para aplicaciones industriales por más de 5 años. Actualmente se pueden encontrar cámaras infrarrojas, linescan, de alta resolución, y de alta velocidad con bus de comunicación I E E E 1394. E n la figura 3.4 se puede apreciar la ventaja que supone desarrollar el sistema de visión 3D con cámaras estandarizadas I IDC sobre cámaras con comunicación U S B . 3.1.2. Proyector luz estructurada A pesar de la diversidad de patrones de iluminación estructurada que se pueden encontrar en el mercado, para el desarrollo de este proyecto, en virtud de que se ha diseñado una arquitectura redundante de visión estéreo + iluminación estructurada, se eligió como proyector de iluminación estructurada un láser de línea, con las siguientes especificaciones: • Voltaje de operación: 3V 38 Figura 3.4: Comparación U S B - I E E E 1394. • Corriente de operación: 300mA • Potencia del LED: 5mW — 532nra • Angulo de generación: 110° E n la figura 3.5 se muestra el aspecto físico del generador de línea láser. Esta línea se proyecta sobre los objetos bajo análisis para aplicar las técnicas de triangulación activa y visión estereoscópica con correspondencia de puntos generada a través del patrón de luz estructurada sobre el objeto. 3.1.3. Circuito de control y comunicación con la P C E n base a las especificaciones de operación de las cámaras y del láser de línea, además de las necesidades del sistema de visión 3D, se propone un circuito que sea capaz de manejar la corriente de los láseres de línea, controlar un servomotor sobre el que se monta el láser para barrer la línea generada sobre el objeto bajo análisis. Cabe destacar en este punto que se vuelve un requisito permitir que la P C controle desde el software de aplicación el encendido/apagado de los láseres y el ángulo de giro del motor que a su vez tiene montado el proyector de líneas sobre su eje. Para alcanzar éste 39 Figura 3.5: Proyector de luz estructurada. propósito, se dota al circuito de control un interfase RS-232 para que a través del puerto serie de la P C se envíen las instrucciones pertinentes al circuito microcontrolado. E n las figuras 3.6 y 3.7 se ilustran los circuitos de control y el diseño de la tarjeta electrónica. 3.2. Ventajas de la configuración estereoscópica con iluminación estructurada E l aspecto que guarda mayor complejidad en un sistema de visión estéreo no se encuentra en el cálculo de la profundidad, sino en la determinación de las corresponden- cias utilizadas en éste cálculo. E n caso de que alguna correspondencia esté incorrecta, el cálculo de las coordenadas en el espacio será incorrecto también [14]. Las técnicas más utilizadas para el establecimiento de correspondencias, son las que se detallan a continuación: • Correlación cruzada. Parte de la suposición de que para un punto P\ en una imagen Ii (la primera imagen del par estéreo), existirá una región fija en la ima- gen I2 (la segunda imagen del par estéreo) en la cual se localizará el punto P2 que corresponde al punto P:. L a técnica de búsqueda, utiliza el operador de correlación cruzada a los vecindarios cercanos a P 2 , hasta que se encuentre el píxel que maximice la respuesta a ésta operación, que será el correspondiente a 40 Figura 3.6: Circuito de control y comunicación. su par Pi. E n la figura 3.8 se ilustra el análisis de correlación cruzada en un par de imágenes estéreo. • Emparejamiento simbólico y restricciones relaciónales. Se debe realizar la búsqueda de una característica en una imagen que se relacione con alguna característica en la otra imagen. Las características que típicamente se utilizan son cruces, segmentos de línea, o regiones. L a técnica de búsqueda, normalmente se basa en el etiquetamiento de imágenes binarias, de forma que sea más sencillo relacionar características sin consumir demasiado tiempo del procesador. Uno de los problemas típicos en sistemas de visión estéreo, se da cuando no es posible detectar las características de la primera imagen,en la segunda. Algunas carac- terísticas pueden simplemente no estar presentes, debido a la ubicación de las cámaras. Ocurre por ejemplo que, algunas características serán visibles en una imagen, pero en la otra estarán ocultas. L a configuración del sistema de visión 3D presentada en la figura 3.1, por tanto tiene la ventaja de proyectar un patrón de iluminación conocido sobre el objeto, lo cual permitirá simplificar el problema de correspondencia puesto que el procesamiento de las imágenes será sobre líneas ubicadas y orientadas de manera distinta en cada imagen, como se ilustra en la figura 3.9. Claramente se puede notar que en las dos 41 Figura 3.7: P C B del circuito de control y comunicación. imágenes (Izquierda y Derecha), se encuentra presente la línea proyectada por el láser sobre el objeto a analizar. Adicionalmente, resulta importante destacar que el hecho de procesar únicamente líneas en las dos imágenes, reducirá significativamente el tiempo de procesamiento. E l problema de correspondencia para esta aplicación, se reduce por tanto a la búsqueda de "puntos de quiebre" en las líneas de cada imagen, que en la práctica representan cambios en la orientación de la superficie sobre la que está siendo proyectada la línea del láser, y que a la postre nos brindará la información necesaria para la reconstrucción tridimensional del objeto bajo análisis. 42 Figura 3.8: Problema de correspondencia analizado con correlación cruzada. 3.3. Calibración del sistema de visión E l proceso de calibración del sistema de visión consiste en utilizar una pieza (ob- jeto) con dimensiones conocidas en el espacio, y a través del conocimiento de las coor- denadas bidimensionales (u, v) en cada imagen, y utilizando el proceso detallado en la sección 2.4, se encuentran matrices de calibración para cada una de las cámaras del sistema, con las que es posible calcular las coordenadas de los puntos del objeto en el espacio. E n [7] se detalla el procedimiento de calibración de un sistema de visión estéreo. Previo al proceso de calibración, resulta importante pre-procesar las imágenes, justamente con el objetivo de reducir la complejidad del problema de correspondencia, de forma que se obtengan como imágenes resultado únicamente las líneas que el láser proyecta sobre el objeto a analizar. E n la figura 3.10 se ilustra un diagrama de flujo del proceso de calibración y Pre-procesamiento de las imágenes, cuyos pasos se detallan en las secciones siguientes. 3.3.1. Adquisición de las imágenes L a plataforma de software en la que se desarrolla el presente trabajo de investi- gación es L a b V I E W 2009 de la firma National Instruments. Se utilizan dos cámaras con formato de comunicación I E E E 1394a, cuyas características técnicas se describen en la subsección 3.1.1. E l detalle de programación en L a b V I E W para adquirir las imágenes desde las cámaras se presenta en la figura 3.11, de donde es posible resaltar cuatro 43 Figura 3.9: Simplificación del problema de correspondencia a través de la redundancia del sistema de visión. pasos básicos: • Crear espacio de memoria. Las imágenes que están siendo adquiridas por las cámaras se colocan en la memoria R A M de la computadora a través del bloque " I M A Q Créate". Se recomienda manejar con cuidado la cantidad de espacios de memoria que se creen a lo largo del desarrollo de la aplicación puesto que se podrían generar cargas excesivas de memoria, y por ende problemas en depuración y tiempos de ejecución. • Adquirir la imagen. Una vez que la sesión con la cámara ha sido abierta, la función "Grab" se encarga de realizar adquisición continua de las imágenes, a la velocidad que la cámara ha sido configurada. E n esta aplicación la velocidad de transferencia de imágenes es de 30 fps (cuadros por segundo). • Mostrar imagen en pantalla. L a opción de despliegue de imágenes es opcional. Por ejemplo, en el caso de éste sistema el objetivo es adquirir la información de la geometría del objeto bajo análisis y no interesan el par de imágenes estéreo, sin embargo en la etapa de desarrollo se vuelve fundamental desplegar las imágenes en pantalla para corroborar el resultado de ciertos algoritmos. • Cerrar sesión. A l momento en que la aplicación se detenga se deben cerrar las sesiones de las cámaras, de forma que en la siguiente oportunidad en que éste recurso (cámaras) sea llamado se encuentre disponible, asimismo es recomendable destruir los espacios de memoria R A M generados. 3.3.2. Pre-procesamiento de las imágenes L a etapa de Pre-procesamiento del par de imágenes estéreo, es quizás una de las que se debe realizar con mayor cuidado, ya que los resultados posteriores depen- Figura 3.10: Diagrama de flujo del algoritmo de calibración. derán fuertemente del desempeño que aquí se obtenga. E l par de imágenes adquiridas utilizarán los mismos algoritmos de Pre-procesamiento, por lo que se describirán los algoritmos utilizados en una de las dos imágenes. E l objetivo de ésta etapa es básicamente segmentar la información de la imagen adquirida de forma que se obtenga como resultado únicamente la línea que el láser proyecta sobre el objeto, como se ilustra en la figura 3.12. Para lograr éste resultado, como se puede suponer, es necesario binarizar la imagen utilizando como límites de umbralización, valores que se aproximen a la intensidad luminosa de los píxeles que forman la línea láser proyectada sobre el objeto a analizar. Posteriormente, en virtud de que algunos píxeles que no pertenecen a la línea láser proyectada sobre el objeto 45 también están presentes en la imagen luego de haber sido binarizada, se utiliza un filtro que elimine los clústeres de píxeles de la imagen con áreas menores a 3 píxeles, a través del uso de la herramienta morfológica de erosión y luego la de dilatación, con un elemento estructurante de tamaño 3 x 3 . 3.3.3. Barr ido del ángulo del láser L a proyección de una línea láser sobre el objeto que se encuentra bajo análisis permite, a través del procesamiento del par de imágenes estéreo, resaltar las carac- 46 terísticas geométricas de éste. Sin embargo, la proyección de ésta línea resalta una pequeña porción de la totalidad del volumen, y para cubrir la geometría completa que se encuentra disponible en las imágenes de la configuración estereoscópica, I\ e I2, se proponen algunos métodos entre los que se destacan dos sencillos: 1. Se propone mover el objeto longitudinalmente a lo largo de una distancia, y\ constante medida desde el eje y del sistema (la elección del eje y se debe a la manera en la que se ubicó el sistema coordenado de referencia fijo); y 2. Otra solución, que es precisamente la que se propone en éste trabajo, considera la no movilidad del objeto, y en consecuencia la rotación del ángulo de proyección del láser de línea de forma que cubra la totalidad del cuerpo del objeto bajo inspección. L a modificación del ángulo de proyección del láser se logra rotando el eje del servomotor, al cual se encuentra acoplado el proyector de luz estructurada, generándose así el barrido láser. E n el anexo 2 se detalla la programación en Microcode utilizando lenguaje Basic del microcontrolador, que se dedica al control del encendido y apagado de los láseres y se encarga de gestionar la comunicación (i?5232) entre la tarjeta electrónica y la P C . 3.3.4. Correspondencia de puntos L a complejidad y los métodos que tradicionalmente se utilizan para solucionar el problema de correspondencia en visión estereoscópica se analizaron en la sección 3.2. L a proyección de un patrón conocido sobre el objeto que será objeto de análisis, sim- plifica notablemente el problema de hallar la correspondencia de puntos en el par de imágenes estéreo, y por otra parte, el pre-procesamiento de las imágenes se reduce a la búsqueda de imágenes que den como resultado líneas con geometrías relacionadas directamente con la forma de los objetos,