Cartographie par drone Open Source – Episode 2 – Assemblage

Après une mission de cartographie (voir ) on se retrouve avec ceci :
Miniatures

Il faut ensuite corriger les déformations si les images viennent d’une GoPro. Cela facilite l’assemblage. D’où l’intérêt de pouvoir le faire d’un coup sur toutes les images comme expliqué dans mon article.

Il faut également ajouter les coordonnées GPS des points où ont été prises les photos. Cela facilite également le travail des logiciels d’assemblage.
Le plus simple est évidemment d’utiliser un appareil photo avec un GPS. Mais on peut aussi synchroniser les photos avec la trace GPS du contrôleur de vol. Cette démarche est expliquée en détail le wiki arducopter.

A partir de là il y a deux options :

      Réaliser un simple assemblage à l’aide de Hugin ou autre.
      Réaliser une orthomosaïques qui corrige les déformations des photos, corrige la perspective et corrige les déformations du relief. C’est ce qui permet la réalisation d’une vrai carte où tout semble vue parfaitement de dessus. Mais ceci entraîne souvent des barbouillis sur les reliefs abruptes, tel un bâtiment comme nous allons le voir. Par contre ces calculs entraînent la constitution d’un nuage de point, qui peut ensuite être exploité dans un logiciel de 3D !

C’est cette deuxième option que nous allons réaliser ici. De nombreux logiciels existent : Photomodeler, Pix4D, Agisoft PhotoScan, Ultramap, Micmac, Ossim, Insight 3D, DroneMapper, WorkMode, OpenDroneMap

Je vais utiliser Micmac qui est libre , gratuit, multi-plateforme et développé par l’IGN… Mais ceci aux prix d’une installation difficile et d’un usage très peu ergonomique 🙁

Cette article est grandement inspiré de la lecture de cet article de J.-M Friedt paru dans OpenSilicium ainsi que du blog de Mathias Fantin.

Pour réussir à l’utiliser sous Ubuntu 14.10 j’ai dû le compiler à partir de l’archive des sources de Micmac disponibles ici.

J’ai décompressé les sources dans le répertoire /opt/micmac-src/, à remplacer par votre propre répertoire.

Voici les différentes commandes à lancer, avec les commentaires plus qu’inspirés par Mathias Fantin :

#Phase 1 - recherche des correspondances
# Première recherche avec les images automatiquement réduites à 300 pixels, puis recherche complète avec image réduite à 1000 pixels
/opt/micmac-src/micmac/bin/mm3d Tapioca MulScale ".*JPG" 300 1000
#:: Phase 2 - Calibration, pour trouver les réglages intrinsèques de l'appareil photo correspondant à ce jeu de photos
/opt/micmac-src/micmac/bin/mm3d Tapas RadialStd ".*JPG" Out=Call
# Phase 3 - Orientation externe des images les unes par rapport aux autres, en connaissant déjà la calibration intrinsèque
/opt/micmac-src/micmac/bin/mm3d Tapas AutoCal ".*JPG" InCal=Call Out=Oril
# Phase 4 - Création du nuage de point grossier, avec position des prises de vues - pour vérification du bon déroulement des 3 premières phases
/opt/micmac-src/micmac/bin/mm3d AperiCloud ".*JPG" Oril Out=PosCams.ply

A ce niveau on obtient une première chose intéressante :

Camera_CartoHangar-1000

Ce n’est pas bien visible comme ça mais c’est la zone survolée reconstituée sous forme d’un nuage de points de faible définition avec l’emplacement déterminé de l’appareil photo pour chaque photo.
L’intérêt est de vérifier que nous sommes sur la bonne voie puisque les positions de l’appareil photo correspondent au plan de vol.

Poursuivons :

# Phase 5 - Calcul de la carte de profondeur
/opt/micmac-src/micmac/bin/mm3d Malt Ortho ".*JPG" Oril "DirMEC=Resultats3" UseTA=1 ZoomF=4 ZoomI=32 Purge=true

A ce stade une carte du relief est créée, mais dans un format difficilement lisible : Tiff 16 bits. Il est possible de faire autrement, à tester plus tard…

# Phase 6 -Assemblage des images orthorectifiées
/opt/micmac-src/micmac/bin/mm3d Tawny Ortho-Resultats3/

Voici donc la carte proprement dite, de 4774×5643 pixels pour 1,5 hectare seulement :
Carte-1000px

Pour bien visualiser la différence par rapport à un simple assemblage, voici un extrait d’une des photos d’origine :
DCIM100GOPROG0030904.

Et la même zone après traitement :
CarteMicMac-100pourCent

On voit clairement la perte de détail causée par les différents traitements. Il y a certainement moyen d’améliorer les choses en ajustant certains paramètres.

Et pour terminer on exporte le nuage de point colorié en haute densité :

# Phase 7 - Exportation et coloration du nuage de point dense (Dense point cloud)
/opt/micmac-src/micmac/bin/Nuage2Ply Resultats3/NuageImProf_STD-MALT_Etape_6.xml Attr="Ortho-Resultats3/Ortho-Eg-Test-Redr.tif"

C’est lui qui va permettre de réaliser une version 3D du site survolé :
MeshLabCartoHangar-1000px

Dans le prochain épisode nous verrons donc comment utiliser le résultat du traitement dans Blender.