Paralelización de un clasificador automático de objetos con datos de sensores remotos LiDAR J. Martínez, F. F. Rivera, J.C. Cabaleiro, T.F. Pena, D.L. Vilariño 1 D. Miranda y S. Buján 2 1 Centro Singular de Investigación en Tecnoloxías da Información 2 Departamento de Ingeniería Agroforestal Universidade de Santiago de Compostela XXV Jornadas SARTECO de Paralelismo. 215. citius.usc.es
Índice de contenido 1 Introducción Descripción del problema LiDAR: qué y por qué? 2 Segmentación 3 Clasificación 4 Paralelización Visión general Balanceo de carga Equipos empleados 5 Conclusiones XXV Jornadas SARTECO de Paralelismo
Índice de contenido 1 Introducción Descripción del problema LiDAR: qué y por qué? 2 Segmentación 3 Clasificación 4 Paralelización Visión general Balanceo de carga Equipos empleados 5 Conclusiones XXV Jornadas SARTECO de Paralelismo
Introducción Segmentación Clasificación Paralelización Conclusiones Descripción del problema Necesitamos adquirir información sobre la superficie terrestre. Áreas de investigación: Remote Sensing, Pattern Recognition. Aplicaciones: cartografía, inventariado, servicios de emergencias... Enfoque tradicional: Enfoque emergente: análisis de imágenes análisis de nubes de puntos (pixel-based methods) (point-based methods) XXV Jornadas SARTECO de Paralelismo 1/21
LiDAR: qué y por qué? LiDAR: Light Detection And Ranging. En aeronaves en los 8s. Idea básica: emitir pulsos de luz y recoger el rebote. LiDAR: Equipamiento Láser GPS en la aeronave Unidad de medición inercial GPS de referencia en tierra Ventajas frente imágenes: Información de la elevación. Condiciones atmosféricas. Penetración de vegetación. Coste en barridos amplios. National Board of Agriculture and the Environment Central Mecklenburg, Germany. Final Report. Project number 3KIS15. 213. XXV Jornadas SARTECO de Paralelismo 2/21
Índice de contenido 1 Introducción Descripción del problema LiDAR: qué y por qué? 2 Segmentación 3 Clasificación 4 Paralelización Visión general Balanceo de carga Equipos empleados 5 Conclusiones XXV Jornadas SARTECO de Paralelismo
Objetivo: Dividir la nube en grupos de puntos similares. Idealmente cada grupo se corresponderá con un objeto. Variables consideradas: LiDAR: x, y, z, intensidad. Adicionales: vector normal. - Mejor extracción de objetos planares. - Estimación por mínimos cuadrados. Método de crecimiento de regiones. Epicentros: Permitir crecimiento sin perder la homogeneidad. XXV Jornadas SARTECO de Paralelismo 3/21
Segmentación con el vector normal extrae solo objetos planos. Segunda segmentación sin el vector normal. Resultado = combinación de ambas. XXV Jornadas SARTECO de Paralelismo 4/21
Índice de contenido 1 Introducción Descripción del problema LiDAR: qué y por qué? 2 Segmentación 3 Clasificación 4 Paralelización Visión general Balanceo de carga Equipos empleados 5 Conclusiones XXV Jornadas SARTECO de Paralelismo
Qué tipo de objeto es cada grupo segmentado? Clasificación basada en reglas de varias fases. Objetos clasificados: construcción, terreno, vegetación, carreteras. 1 Extracción de fronteras. Puntos en los límites 2D. Algoritmo Alpha Shapes. 2 Detección de salto. Objetos elevados y no elevados. Saltos de altura entre vecinos. 3 Restauración de edificios. Secuelas de la segmentación usando el vector normal: - División en planos (grupo = objeto). Unir. - Esquinas mal clasificadas (no planos). Absorber. XXV Jornadas SARTECO de Paralelismo 5/21
4 Filtro de planaridad. Detectar vegetación clasificada como construcciones. Dimensionalidad de un punto (D, 1D, 2D, 3D). 5 Estimación de área y volumen. Muestreo del área. Estimación proporcional. Volumen = área altura máxima. 6 Extracción de carreteras. Distinción respecto al terreno: baja intensidad. Detección de zonas de estacionamiento. - MBR (Minimun Bounding Box): área real / área del MBR. - ATS (Angular Texture Signature): forma local de los puntos. XXV Jornadas SARTECO de Paralelismo 6/21
Introducción Segmentación Clasificación Paralelización Conclusiones De izq. a dcha. Puntos sin clasificar, Puntos clasificados, Ortofotos: XXV Jornadas SARTECO de Paralelismo 7/21
Índice de contenido 1 Introducción Descripción del problema LiDAR: qué y por qué? 2 Segmentación 3 Clasificación 4 Paralelización Visión general Balanceo de carga Equipos empleados 5 Conclusiones XXV Jornadas SARTECO de Paralelismo
Visión general Paralelización mediante OpenMP. 5 de 7 fases paralelizadas. Balanceo de carga: static, dynamic y task. 4.739.877 puntos. 1.75 km 2. Lugo. 3 equipos: 1 sobremesa, 2 clústers de computación. XXV Jornadas SARTECO de Paralelismo 8/21
Balanceo de carga Reparto de grupos Cada hilo procesa un grupo. Los grupos pueden tener tamaños muy diferentes. static: carga de trabajo muy desigual. dynamic: mejor balanceo pero lejos del ideal. Reparto de puntos Cada hilo procesa un punto. Solo en métodos paralelizables a nivel de punto. task: balanceo de carga ideal. XXV Jornadas SARTECO de Paralelismo 9/21
Balanceo de carga Reparto de puntos. Puntos almacenados en listas enlazadas. Uso de tareas (directiva task introducida en OpenMP 3.). Un hilo crea tareas y los demás las ejecutan. Un hilo puede ejecutar una tarea o posponerla. Tarea: qué contiene? Código a ejecutar. Entorno de datos. Variables de control. Ruud van der Pas. OpenMP Tasking Explained. SC 13 Talk at OpenMP Booth. 213. Aplicaciones: bucles sin límites, productor-consumidor, problemas recursivos... XXV Jornadas SARTECO de Paralelismo 1/21
Balanceo de carga Pseudocódigo de una tarea usando la cláusula single. 1: for all g Grupos do 2: #pragma omp parallel 3: #pragma omp single 4: for p = g.inicio; p! = g.fin; p = siguiente do 5: #pragma omp task 6: procesar(p) 7: end for 8: #pragma omp taskwait 9: end for p: punto de un grupo. XXV Jornadas SARTECO de Paralelismo 11/21
Equipos empleados Procesador Núcleos Frecuencia Turbo Caché Intel Core i7-479 4 3.6 GHz 4. GHz 8 MB AMD Opteron 6262 HE 16 1.6 GHz 2.9 GHz 16 MB 2x Intel Haswell R5-268 24 2.5 GHz 3.3 GHz 6 MB Otras características a tener en cuenta: Aumento de frecuencia de los núcleos (Turbo Boost/Core). Depende de varios factores: Número de núcleos activos. Consumo energético. Temperatura. Carga. XXV Jornadas SARTECO de Paralelismo 12/21
Equipos empleados CMT (Clustered Multi-Thread). AMD Bulldozer en adelante. Cada par de núcleos forma un módulo. Un módulo comparte: Unidad de punto flotante (FPU). Memoria caché de nivel 2. Recogida y decodificación de instrucciones. XXV Jornadas SARTECO de Paralelismo 13/21
Fases paralelizadas Segmentación Clasificación Etapa Paralelo Tareas Cálculo del vector normal Crecimiento de regiones Extracción de fronteras Detección de salto Estimación de área Detección de carreteras Detección de estacionamientos XXV Jornadas SARTECO de Paralelismo 14/21
Intel Core i7: Carga de trabajo aumenta de izq. a dcha. Intel Core i7. Lineal Núcleos Estático Dinámico Tareas Vector normal Fronteras Estacionamientos 8 8 8 6 4 2 6 4 2 6 4 2 2 4 8 2 4 8 2 4 8 Salto Area 8 8 6 4 2 2 4 8 6 4 2 2 4 8 Dinámico > Estático rendimiento en Intel HT rendimiento reparto grupos XXV Jornadas SARTECO de Paralelismo 15/21
AMD Opteron: Carga de trabajo aumenta de izq. a dcha. AMD Opteron. Lineal Núcleos Estático Dinámico Tareas Vector normal Fronteras Estacionamientos 15 15 15 1 5 1 5 1 5 2 4 8 16 2 4 8 16 2 4 8 16 Salto Area 15 15 1 5 2 4 8 16 1 5 2 4 8 16 AMD Bulldozer tareas cuando se usa CMT: - Rendimiento negativo! XXV Jornadas SARTECO de Paralelismo 16/21
2x Intel Haswell: Carga de trabajo aumenta de izq. a dcha. 2x Intel Haswell. Lineal Estático Dinámico Tareas Vector normal Fronteras Estacionamientos 15 15 15 1 5 1 5 1 5 2 4 8 16 2 4 8 16 2 4 8 16 Salto Area 15 15 1 5 1 5 Gran overhead con tareas - > que estático/dinámico 2 4 8 16 2 4 8 16 - carga = rendimiento XXV Jornadas SARTECO de Paralelismo 17/21
Tiempos de ejecución: Intel Core i7 2 199,47 Tiempo (segundos) 1 28,5 6,84 97,12 21,94 83,66 27,36 6,35 2,17 44,93 4 núcleos 8 hilos 4.2 speedup Vector normal Fronteras Deteccion salto Area Estacionamientos XXV Jornadas SARTECO de Paralelismo 18/21
Índice de contenido 1 Introducción Descripción del problema LiDAR: qué y por qué? 2 Segmentación 3 Clasificación 4 Paralelización Visión general Balanceo de carga Equipos empleados 5 Conclusiones XXV Jornadas SARTECO de Paralelismo
Sumario Clasificador de objetos LiDAR Segmentación por crecimiento de regiones. Clasificación basada en reglas de 7 fases. Paralelización de 5 fases. Balanceo de carga por: Reparto de grupos (estático, dinámico) Reparto de puntos (tareas) Análisis de los resultados en 3 equipos. 1 PC y 2 clústers de computación XXV Jornadas SARTECO de Paralelismo 19/21
Conclusiones Rendimiento del balanceo dinámico mayor que el del estático. Usar más hilos que núcleos reduce la escalabilidad. Usar tareas con cuidado. De lo más costoso en OpenMP. Rendimiento negativo de tareas en AMD al compartir módulos. La clave: 1 Hacer un buen balanceo de carga. - Mal balanceo: Tiempo = Hilo con más carga. No escala. 2 Carga/unidad de trabajo significativa (más aún con tareas). - Carga pequeña: Overhead > Trabajo. Rendimiento negativo. XXV Jornadas SARTECO de Paralelismo 2/21
Preguntas? XXV Jornadas SARTECO de Paralelismo 21/21