Photogrammétrie
DJI Mavic 2 Pro
Mode hyperlapse
Mode photo
exiftool filename.jpg
Paramètres pertinents:
Absolute Altitude Relative Altitude GPS Altitude
Mode vidéo
Les fichiers FlightRecord enregistrés sur le cellulaire qui a servi à piloter le drone contiennent beaucoup d'information concernant le vol et les paramètres d'image. Avant de les lire, il faut convertir ces fichiers, ce qui peut être fait avec l'application suivante:
https://airdata.com/
Compte et Logiciels
machine de traitement d'images Canot
adresse IP : 10.4.30.227
adresse DNS (à venir) : canot.uqar.ca
caractéristiques
CPU : Intel Xeon W-2145 (3.7GHz, 4.5GHz Turbo, 8C, 11MB Cache)
RAM : 64GB (4x16GB) 2666MHz
Mémoire : 1 TB SSD + 4TB HDD
carte graphique : NVIDIA GeForce GTX 1080
compte : polr.drone@gmail.com
mot de passe : polrismer
DJI
compte : polr.drone@gmail.com
mot de passe : polrismer2
Drone Harmony +
compte : polr.drone@gmail.com
mot de passe : polrismer
accès à l'application sur le web : app.droneharmony.com
Possibilité de charger / enregistrer des zones/plans de vols préalablement fait depuis l'application mobile.
OpenDroneMap
(OpenDroneMap ) est un software Open Source qui permet de créer des orthomosaiques géoréférencées et des modèles 3D de terrain à partir d'images aériennes de drone.
Installation
ODM a originellement été développé pour la distribution Linux Ubuntu.16.04 (Xenial) mais peut facilement s'installer sur n'importe quelle distribution Linux,MAC ou Windows grâce à l'application (Docker).
Docker peut être installé sur à peu près n'importe quel distribution ou système d'exploitation. Pour connaître la marche à suivre pour une distribution particulière, référez-vous à: https://docs.docker.com/install/
Pour CentOS 7:
Dans un terminal:
su - yum install docker
Une fois l'installation terminée, vous devez démarrer Docker:
systemctl start docker
Assurez vous que Docker fonctionne correctement:
systemctl status docker docker run hello-world
Pour démarrer automatiquement Docker lors de chaque démarrage de votre ordinateur
systemctl enable docker.service
Vous êtes maintenant prêt à utiliser OpenDroneMap. En effet l'image du programme est directement disponible à partir des librairies Docker Hub (docker.io/opendronemap/odm
), vous n'avez donc en théorie pas besoin de télécharger le code source de ODM et créer vous même l'image dans Docker. Si toutefois vous desirez le faire afin de posséder une image comprenant tous les derniers ajouts et modifications du code (Beta), vous pouvez vous référer à la documentation https://docs.opendronemap.org/building.html
à propos de Docker:
Docker peut être assimilé à une sorte de machine virtuelle. Le but étant de faire fonctionner des programmes développés pour un système d'exploitation donné sur n'importe quel système. Docker créer un conteneur qui rassemble le code source ainsi que toutes les dépendances nécessaire pour créer une image du programme qui pourra fonctionner comme un programme standalone.
Utilisation
Bases
OpenDroneMap s'utilise en ligne de commande. Pour votre première utilisation, ouvrez un terminal et créez un répertoire de travail ainsi qu'un sous répertoire images/
qui contiendra les images aeriennes que vous souhaitez traiter:
mkdir <mon_repertoire_ortho> cd <mon_repertoire_ortho> mkdir <images>
Creez votre première orthomosaique:
sudo docker run -it --rm --memory="6g"\ -v $(pwd)/images:/code/images:Z \ -v $(pwd)/odm_texturing:/code/odm_texturing:Z \ -v $(pwd)/odm_orthophoto:/code/odm_orthophoto:Z \ opendronemap/odm --fast-orthophoto
la synthaxe est docker run [arguments pour docker] opendronemap/odm [arguments pour ODM]
.
- Dans cet exemple, la commande
docker run
permet d’exécuter le programmeopendronemap/odm
. les argument de cette commande sont:-it
: permet de pouvoir interagir avec le programme--rm
: efface tout le contenu du conteneur créé une fois la tâche effectuée.--memory
: Maximum de mémoire vive que peut utiliser docker. Il est important d'utiliser cette argument en fonction de la capacité de votre machine. En effet, docker va utiliser de base toute la mémoire nécessaire pour effectuer la tâche. Or le traitement d'image, notamment effectuer des modeles 3D nécessitent beaucoup de mémoire vive. Si vous traitez beaucoup d'images, votre RAM risque d'être saturée par le programme et votre ordinateur ne sera plus capable d'effectuer aucune tâche.-v <répertoire_local>:<répertoire_conteneur>
: Permet de faire un lien entre un répertoire existant et l'emplacement "virtuel" dans le conteneur. Vous devez au minimum faire le lien vers le répertoireimage/
. les repertoires/code/odm_texturing
et/code/odm_orthophoto
sont les répertoires conteneurs où seront produits les résultats (respectivement, le modèle 3D.obj
et l'orthomosaique en format Géotiff.tif
). Il est à noter que si vous ne faites pas les liens vers des répertoires locaux, tous les résultats contenu dans les répertoires conteneurs seront effacés directement une fois que le programme sera terminé à cause de la commande--rm
Tous les arguments de la commande docker run
sont explicités ICI
- Dans cet exemple, nous donnons un seul argument pour ODM:
--fast-orthophoto
: permet de réaliser une orthomosaique sans faire de modèle 3D. Les resultats sont généralement passablement moins bons mais le temps d'execution est nettement plus rapide.
Tous les arguments pour ODM sont explicités ICI
Ground Control points
Les points de contrôle sont des points de coordonnées connues (LON,LAT,ALT) qui permettent d'augmenter l'efficacité et la précision du traitement. Par exemple des cibles de couleurs visible sur les images dont on prend les coordonnées à l'aide d'un DGPS.
Pour utiliser des points de contrôle on utilisera l'argument:
--gcp <path>
où <path> est le chemin vers un fichier nommé gcp_list.txt
dans lequel les coordonnées des points de contrôle correspondent aux pixel (x,y) de l'image. Ce fichier devra être placé dans votre repertoire image/
Exemple:
sudo docker run -it --rm \ -v $(pwd)/images:/code/images \ -v $(pwd)/odm_orthophoto:/code/odm_orthophoto \ -v $(pwd)/odm_texturing:/code/odm_texturing \ opendronemap/odm --gcp /code/images/gcp_list.txt
Une bonne documentation pour l'utilisation des points de contrôle est disponible ICI.
Le fichier gcp_list.txt
doit avoir un formatage précis. Pour faciliter la création de ce fichier un GUI matlab est disponible: Fichier:Groundcontrolpoints.zip
Fonctionnement
Bonnes pratiques
IMAGES
Renommer les images des drones avec fonction suivante :
exiftool '-filename<CreateDate' -d %y%m%d_%H%M%S%%-c.jpg repertoire
ODM
- Placer les images brutes sur le disque d'archive
/archive/PHOTOGRAMMETRIE/
et faire un lien symboliqueln -s
vers votre répertoire de travail - Pour de meilleurs résultats, enlever la distorsion des images brutes en utilisant le script python disponible dans
/archive/PHOTOGRAMMETRIE/CameraCalibration
, comme ci-dessous pour les images du Mavic 2 PRO :
python undistort.py --matrix /archive/PHOTOGRAMMETRIE/CameraCalibration/mavic/mav_matrix.txt --distortion /archive/PHOTOGRAMMETRIE/CameraCalibration/mavic/mav_distortion.txt "/path/to/images/"
- Les images prises par le drone sont volumineuses (~10 Mo), pour faciliter le traitement d'une grosse banque d'images, utiliser l'option
--resize-to 2048
pour redimensionner les images lors du traitement - Pour générer un modèle numérique de terrain (MNT ou DTM), utiliser l'option
--dtm
. Les options--smrf-*
vont influencer la qualité/précision du MNT (cf ODM création de MNT)
Docker
- lancer docker avec l'option
-d
(daemon) pour faire tourner le conteneur en arrière-plan sudo docker ps
affiche les conteneurs actifs et leurs IDsudo docker stats
affiche la RAM/CPU réservé pour les conteneurs et leurs pourcentages d'utilisationsudo docker logs ID
affiche les dernières lignes de la sortie standard du conteneur (utile pour vérifier l'état d'avancement du conteneur)sudo docker attach ID
met le conteneur en avant-plan etCtl-p Ctl-q
le remet à l'arrière plan
Drone Harmony Plus
Drone Harmony Plus génére des plans de vols avec prises de vue pour la création d'orthophotographies et de modèles numériques de terrain. L'application permet de simuler un environnement de vol à l'aide de polygones, puis de créer des zones d'interêts à partir desquels seront générées des plans de vols. L'ensemble de ces étapes préliminaires peut être sauvegarder via l'application et synchroniser entre plusieurs appareils (connecté au compte polr.drone@gmail.com).
Afin d'éviter les interférences entre l'application DJI GO 4 et DH+, quitter DJI GO 4 pour que la connexion avec le drone soit optimale. Ne pas oublier de se connecter au compte DJI sur DH+ via le menu "drone --» connexion à DJI".
Plan de vol
Banque d'images pour orthophotographie : utilisation du mode "balayage"
Banque d'images pour modèle 3D : utilisation du mode "quadrillage"
tips
- altitude > 100 m
- recouvrement ~80%
- désactiver l'option "prendre des images avec intervalles de temps"
- "réseau triple" pour modèle 3D
- vérifier le temps de vol théorique en cliquant sur le bouton ⓘ (en haut à droite) à la vitesse désirée (8 à 12 m/s)
- lors du lancement du plan de vol, choisir la prise de "photos aux points de controles, pas d'arrêt"
- Essayer le limiter le temps de vol théorique à 15~18min