El éxito de una buena clasificación depende en gran medida del algoritmo utilizado, pero también de las características de la zona. Por ello, es necesario conocer el funcionamiento del algoritmo y las propiedades del terreno, pudiendo optar por uno u otro en función de sus características.
La tendencia actual de los filtros es la integración de la intensidad registrada en cada punto y datos obtenidos con otras tecnologías, por ejemplo, sensores ópticos (fotografías aéreas georreferenciadas, ortofotografías, imágenes de infrarrojo o térmicas).
Se van a considerar seis categorías diferentes de algoritmos (Meng, et al., 2010): basados en la segmentación y agrupamiento, morfológicos, en función de la dirección de escaneado, basados en las curvas de nivel, basados en triangulación y basados en interpolación.
a)Algoritmos basados en la segmentación y agrupamiento
La segmentación y el agrupamiento son técnicas muy utilizadas en la clasificación de usos de suelo y se ha implementado en la clasificación de nubes de puntos LiDAR. El proceso de clasificación comienza en una zona elegida como semilla, añadiendo puntos progresivamente realizando medidas sobre el plano que definen los puntos previos y desechando aquellos que, por su diferencia de cota, pertenecen a objetos. Para el cálculo de la superficie se utiliza la técnica de mínimos cuadrados con ponderación. Ofrecen buenos resultados en zonas llanas.
Un algoritmo representativo de este grupo podría ser el definido por Roggero. Es una variante del filtro morfológico desarrollado por Vosselman (Vosselman & Maas, 2001). Inicialmente, calcula una rejilla por interpolación, eliminando los errores groseros. A continuación, aplica un operador basado en la pendiente local a partir del punto con menor cota y con un criterio de regresión lineal ponderado en función de la distancia al punto, determinando los puntos pertenecientes al suelo. El umbral para decidir si un punto es objeto, se determina en el proceso de generación de la rejilla a partir de la pendiente media de la zona. Es un proceso iterativo. Puede presentar problemas debido a falsos puntos bajos y la preservación de discontinuidades, esencialmente pendientes en escalones (Roggero, 2002).
Nardinocchi propone un algoritmo que busca regiones homogéneas y conexas partiendo de un píxel semilla y evaluando las diferencias de cota con sus vecinos. Aquellos en los que esta diferencia sea menor a un umbral se incluyen en la región y se convierten en semillas de la misma. La clasificación se realiza mediante las relaciones topológicas existentes entre las diferentes regiones: regiones de pequeño tamaño aisladas se clasifican como ruido; se agrupan los segmentos pequeños juntos para ser clasificados como vegetación. Se pueden establecer otras relaciones topológicas, como por ejemplo que los segmentos de edificios tengan mayor cota que sus vecinos o que los segmentos de terreno tengan mayor tamaño que sus vecinos (Nardinocchi, et al., 2003).
El algoritmo propuesto por Mass segmenta la nube de puntos y la clasifica por medio de una serie de bandas derivadas de las alturas, al igual que se hace en clasificación multiespectral de imágenes. En función de esto, se pueden generar bandas con las alturas originales, con las pendientes, con el rango de altura entorno a un punto, la varianza de altura o con el resultado de aplicar algún filtro típico de imágenes. El usuario puede elegir qué bandas utilizar en cada caso (Maas, 1999). Baatz y Schäpe también proponen un algoritmo basado en la segmentación de imágenes (Baatz & Schäpe, 2000).
Sithole y Vosselman proponen un algoritmo que segmenta la nube considerando que dos puntos pertenecen a la misma superficie si existe un camino suave a lo largo de puntos adyacentes entre ellos. Para ello utilizan segmentaciones lineales en varias direcciones, como si se trataran de perfiles, trabajando de forma iterativa, primero eliminando los objetos más claros y luego refinando el modelo de suelo. El algoritmo intenta ajustar la nube de puntos a un conjunto de grafos conexos, realizando la clasificación sobre los segmentos que forman los grafos. Destaca su mal comportamiento ante objetos bajos, terreno desconectado, edificios en pendientes y la preservación de discontinuidades (Sithole & Vosselman, 2005).
El algoritmo OBA (Object-Based Analysis) se basa en la organización de los puntos bajo una rejilla, de tal forma que acelera el proceso de búsqueda de puntos vecinos. Inicialmente, elimina los puntos groseramente hundidos, resultado de alguna medición incorrecta y procede a buscar mínimos locales en cada celda. A partir de los puntos con la cota mínima, calcula las pendientes entre los puntos de celdas vecinos y procede a su clasificación (Yan, et al., 2012).
Otro algoritmo, el cual precisa de edición para afinar los resultados, es el propuesto por Jiang y Ming (Jiang & Ming, 2006).
b)Algoritmos morfológicos
Estos algoritmos están basados en la utilización de la forma de los objetos para reconocer aquellas formas que no son suelo desnudo. Suelen ser iterativos y necesitan del conocimiento previo de la zona para detectar las posibles formas. Pueden tener problemas si los objetos presentan tamaños muy diferentes, puesto que se debe emplear una zona de estudio. Para solucionarlo, algunos de ellos reconstruyen las zonas cuando se detecta un objeto y otros van cambiando el tamaño de la zona de estudio gradualmente. Zhang combina este algoritmo con otro de pendiente máxima y diferencia de altitud, obteniendo mejores resultados (Zhang, et al., 2003). Otra propuesta, comienza con un tamaño de zona de estudio pequeño para eliminar la mayoría de la vegetación y termina con un tamaño mayor para la detección de objetos más grandes, por ejemplo, edificios.
Otro algoritmo representativo de este grupo podría ser el definido por Arefi y Hahn basado en el concepto de dilatación geodésica (Arefi & Hahn, 2005).
Sithole utiliza un elemento estructural (un cono invertido) centrado horizontalmente sobre un punto y por debajo de él. Se realiza un movimiento vertical y se detiene cuando la
estructura encuentra un punto. Si el punto encontrado no es el punto en el que se centró, se considerará al punto central como objeto y al punto encontrado como suelo. El elemento estructural se caracteriza por su pendiente, que se determina en un paso previo en función del tipo de superficie. Al utilizar la pendiente para clasificar puede tener problemas debido a falsos puntos bajos o en las terrazas (Sithole, 2001).
Wack y Wimmer proponen un método basado en el cálculo de una rejilla jerárquica. Inicialmente, se utilizan celdas de nueve metros para localizar grandes edificios y vegetación densa, donde cada celda toma la cota más baja del 99% de los puntos para evitar errores groseros. El algoritmo utiliza un filtro LoG (Laplaciano del Gausiano) suponiendo que los grandes objetos producen cambios bruscos en la superficie. A continuación, se calcula una rejilla de celdas de tres metros, utilizando nuevamente el filtro LoG para localizar objetos. En este caso, se utiliza la desviación estándar en el cálculo de la cota de cada celda como peso en los datos obtenidos por el filtro. En el siguiente paso, se calcula una nueva rejilla con celdas de un metro, repitiendo el proceso. Precisa un bloque mínimo, presentando problemas con objetos de pequeño tamaño como automóviles o árboles (Wack & Wimmer, 2002).
c)Algoritmos en función de la dirección de escaneado
Estos filtros utilizan consideraciones realizadas en 2D, es decir, a lo largo de línea de escaneado registrada en vuelo. Calculan la pendiente o la diferencia de altitud entre puntos registrados en una determinada misma zona, es decir, se establece un ámbito previamente. Al ser relaciones relativamente pobres, pueden tener problemas en algunas zonas, provocando líneas de puntos erróneamente clasificados. Para paliar este defecto, Meng desarrolló un algoritmo (MGF, Multi-directional Ground Filtering) que permite buscar puntos en 2D mediante una reorganización raster (Meng, et al., 2009).
d)Algoritmos basados en las curvas de nivel
El modelado activo es uno de los métodos utilizados para la extracción de curvas de nivel y también se utiliza para la extracción del terreno de una nube de puntos LiDAR. Se basa en la eliminación de puntos en función de la fuerza de la gravedad y de atracción entre zonas. De todas formas, en algunas zonas es necesario utilizar otros algoritmos para depurar los resultados.
Un algoritmo representativo de este grupo podría ser el definido por Elmqvist, que estima la superficie del suelo mediante un modelado activo a partir de la minimización de la energía como si se tratara de una membrana que envuelve a todos los puntos y reposa en un estado de mínima energía. Matemáticamente utiliza splines en dos dimensiones y comienza a partir del punto de cota más baja. Aquellos puntos que precisen de mucha energía para deformar la spline serán considerados objetos. Permite diferenciar entre edificios y vegetación e identificar árboles individuales (Elmqvist, 2001).
e)Algoritmos basados en triangulación
Uno de los filtros pertenecientes a este grupo es el denominado VDF (Virtual
Deforestation Filter) que permite eliminar puntos asumiendo que el terreno cambia de una
manera progresiva y suave sin grandes alteraciones. De esta forma, aquellos puntos donde se produzca una fuerte curvatura debido a su cota, se considerará que no es terreno y será eliminado. De la misma manera, se actúa con determinadas depresiones. El algoritmo calcula inicialmente un TIN para obtener una rejilla que se suaviza para obtener los valores de las curvaturas. Se necesitan dos parámetros para definir la curvatura máxima del terreno y la máxima depresión de este. Es iterativo. Es efectivo con puentes y pequeños edificios, pero tiene dificultades con grandes edificios que no tengan muchas plantas y con algunas depresiones.
Axelsson también propone un método por medio de un TIN al que se le van añadiendo puntos de forma progresiva en función de la diferencia de cota y el valor del ángulo de los triángulos. Es adecuado en discontinuidades y también es iterativo (Axelsson, 2001).
Sohn y Dowman utilizan un proceso de dos pasos para densificar un TIN. Primeramente, se realiza una densificación “hacia abajo”, cuyo propósito es obtener una representación inicial del terreno. Se genera un rectángulo que envuelve la nube de puntos, considerando que los puntos más cercanos a cada uno de los vértices pertenecen al terreno. A continuación, se realiza una triangulación de Delaunay con las esquinas y se recalcula progresivamente la triangulación introduciendo aquellos puntos que queden por debajo de cada triángulo. En el segundo paso, se realiza una densificación “hacia arriba”, cuyo objetivo es el refinamiento de la triangulación anteriormente obtenida. Utiliza una distancia vertical para decidir si los puntos son objeto o no, calculando el tetraedro formado por un punto y el triángulo donde se encuentra. Se seleccionarán aquellos puntos que generen el tetraedro más plano (Sohn & Dowman, 2002).
Otro algoritmo de este tipo podría ser el planteado por Morgan y Habib, basado en TIN y criterios morfológicos de los objetos (Morgan & Habib, 2001).
f)Algoritmos basados en interpolación
Existe un gran número de filtros basados en interpolación que van clasificando puntos en función de la diferencia de cota respecto de la interpolación con puntos de su entorno. Se debe generar un proceso iterativo para eliminar los puntos y que no afecten en el proceso de iteración. Se pueden aplicar interpolaciones mediante mínimos cuadrados, splines u otros modelos estadísticos.
Pfeifer y Stadler proponen un método jerárquico, en el que en cada nivel se realiza una interpolación robusta para la superficie clasificando los datos. El proceso comienza con el cálculo de una interpolación burda del terreno al que se le van añadiendo puntos progresivamente, dando pesos a cada uno de ellos en función de su posición respecto de la
superficie. Los puntos situados por encima de la superficie se les asignan un peso menor que los sitiados por debajo, de tal forma que se realiza una nueva interpolación, generando una superficie más cercana a los puntos bajos. El proceso es iterativo, clasificando los puntos como suelo u objeto en función de su diferencia de cota respecto de la superficie de interpolación calculada. Utiliza una gran cantidad de parámetros para una clasificación fina (hasta cien) y es el algoritmo utilizado por el programa SCOP (Pfeifer & Stadler, 2001).
Brovelli estructura su propuesta en cinco pasos. Primeramente, realiza un pre-proceso de la información para eliminar los errores groseros mediante una interpolación bicúbica utilizando splines. Las splines se configuran en función de la resolución de la nube. A continuación, se realiza una detección de bordes mediante la generación de teselas donde se emplean nuevamente splines bicúbicas. Se utilizan dos juegos diferentes de splines utilizando parámetros para ajustarse más a los datos originales o para obtener la mejor interpolación con la mínima curvatura. La diferencia de cota de los puntos entre ambas splines aportará la información para clasificar un punto. El tercer paso consiste en generar una rejilla donde se categorizan las celdas en función de la existencia o no de dobles pulsos, comenzando por los puntos encontrados en el paso anterior y generando formas convexas. El cuarto paso es un proceso iterativo de corrección de los puntos clasificados como suelo en los pasos anteriores. Nuevamente, se utilizan splines bicúbicas para interpolar, minimizando la curvatura. En este caso, se diferencia la vegetación del resto de objetos en función de los pulsos recibidos. Por último, se calcula un modelo digital basado en rejilla con los puntos clasificados con suelo (Brovelli, et al., 2002).