Análisis de Rendimiento para el Procesamiento de cientos de Imágenes Drones con OpenDroneMap

odmIntro.jpg.jpg

Las imágenes de drones nos permite tener ortofotos de terrenos y modelos de elevación a un costo razonable con una menor influencia de nubes o polvos a diferencia de las imágenes satélitales. Sin embargo, creemos que diferentes tipos de drones y herramientas que procesan imágenes de drones están diseñados para una escala local, dejando incierta la escala regional.

En los estudios de recursos hídricos y medioambiente, los modelos de elevación y ortofotos generados del procesamiento de imágenes de drones, son de particular interés para determinar las principales características del terreno relacionado con los flujos de aguas superficiales o subterráneas y la interacción con el ecosistema, pero estás imágenes necesitan estar a escala regional (>1 Km2).

En la actualidad, OpenDroneMap (https://github.com/OpenDroneMap/ODM/) es una buena alternativa para el procesamiento de imágenes de drones. El software es una compilación de diferentes herramientas para el procesamiento y análisis de imágenes / nubes de puntos / mallas / rásters como GDAL, OpenSfm, OpenCV, Pdal y muchos otros. Debido a todas sus dependencias, OpenDroneMap se ejecuta mejor en un entorno de virtualización como Docker. Casi todas las herramientas de procesamiento de imágenes se implementan en OpenDroneMap con opciones para generar una nube de puntos geoespaciales, ortofotos y modelos de elevación, entre otros datos espaciales desde la etapa de procesamiento.

Para este artículo se ha realizado un análisis recursivo sobre un conjunto de fotos aéreas en una computadora estándar para tener un panorama de las tasa y tendencias de la operación de OpenDroneMap para procesar diferentes cantidades de imágenes. Aunque las tasas y tendencias se aplican solo a un conjunto de datos y una especifica configuración de una computadora, este estudio puede tomarse como referencia para el evaluar el tiempo de cómputo y de cómo funciona el software con gran cantidad de datos.

Conjunto de datos y configuración de la computadora

Para este análisis, se usó datos del “Adobe Buttes – Delta, Colorado” que son datos de muestra del Drone Mapper que esta disponible en este link:

https://dronemapper.com/sample_data/

La configuración del sistema de la computadora es la siguiente:

  • Arquitectura: x86_64

  • CPU (s): 8

  • Nombre del modelo: Intel (R) Core (TM) i7-4790 CPU @ 3.60GHz

  • MHz de CPU: 3899.047

El sistema operativo seleccionado para este análisis fue Debian GNU/Linux 9.8 (stretch) y OpenDroneMap que se ejecutó con Docker.

Datos de entrada

El conjunto de datos provienen de dos vuelos que dan un total de 531 imágenes que fueron divididas en subgrupos de 150 imágenes. El conjunto de datos pesan 2.8 GB donde el tamaño de cada imagen es de 5.6 - 6.0 MB.

En la siguientes figura se muestra una vista previa de la ubicación espacial de la cámara del dron y la ortofoto resultante para un grupo de 100 imágenes y para el conjunto total (531 imágenes).

100 imágenes

100 imágenes

531 imágenes

531 imágenes

A continuación, se muestra los comandos de Linux para almacenar la fecha y los comandos de Docker para ejecutar OpenDroneMap:


date > outputData/images400start.log

docker run --rm -v "$(pwd)/inputImages/images400:/code/images" 
-v "$(pwd)/outputData/odm_georeferencing400:/code/odm_georeferencing" 
-v "$(pwd)/outputData/odm_orthophoto400:/code/odm_orthophoto" 
opendronemap/opendronemap
date > outputData/images400end.log

Análisis de rendimiento

El tiempo de inicio y final del procesamiento de OpenDroneMap fue registrado y procesado con Python. En la siguiente tabla se muestra los tiempos de cálculo, cantidad y tamaños de las imágenes procesadas.

dataframe.png

El tiempo de simulación varía desde 0.4 horas para 50 imágenes con un tamaño total de 290 MB hasta 5.47 horas para 500 imágenes con un tamaño total de 2890 MB. Se realizó un análisis de regresión lineal para el conjunto de resultados, en la siguiente figura se muestra el número de imagen vs. el tiempo computacional con la línea de tendencia y ecuación de regresión.

linearRegression1.jpg

Se observa que el tiempo de cálculo no tiene una relación lineal con el número de imágenes. La gran cantidad de imágenes tarda más tiempo en procesarse que la tendencia lineal.

Para tener un mejor panorama de las tasas crecientes del tiempo de calculo, se ha separado la línea de regresión en tres partes como se observa en la siguiente figura:

linearRegressionSplitted1.jpg

Para el grupo superior de imágenes, la tasa de aumento del tiempo de cálculo es 30% superior al promedio para todos los puntos y 65% más alta que el tercio inferior de las imágenes.

La tendencia del procesamiento de imágenes con OpenDroneMap, permite plantearnos preguntas sobre el rendimiento del software cuando procesa miles de imágenes. Este artículo muestra que existen alternativas como agrupar las imágenes por ubicación y realizar un análisis por agrupaciones. En nuestra experiencia, el tiempo de cálculo disminuye, pero la distancia diferencial de la superposición de las imágenes resultantes es superior a 1 metro, por lo que se debe hacer una mayor investigación para garantizar el procesamiento de las imágenes a escala regional con adecuado tiempos computacionales.

Smiley face

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

Posted on July 4, 2019 .