Ahmad Audi, Marc Pierrot-Deseilligny, Christophe Meynard, Christian Thom 01 / 32
INTRODUCTION Caméra aérienne légère de l IGN 02 / 32
03 / 32 INTRODUCTION Problème Prises de vue sous couvert nuageux Prises de vue de nuit Imagerie en bande spectrale étroite Mouvements erratiques du drone Prises de vue en cas de crues (IGN) Prise de vue de nuit de la ville Metz (IGN) New AeroSky C17 Professional UAV Hexacopter http://www.xheli.com/c17hexa.html tpose long «Flou de mouvement» dans les images
INTRODUCTION Solution Empilement de plusieurs images avec un tpose court Génération d une image finale composite «empilée» sans flou, photogrammétrique Image finale ~ à un tpose long Objectif final : performance temps réel Temps réel? Caméra Légère IGN 04 / 32 N images avec tpose court Chaque image : 20 MB técritureimage = 2 s Principe générale de la solution image avec tpose long Pas de flou de mouvement
INTRODUCTION Hypothèses 05 / 32 Acquisition des images avec un frame rate élevé (30 images/s) La déformation entre les images est petite La problématique générale nécessite la connaissance du MNS (modèle 3D) En l absence de ce MNS deux approches sont étudiées dans notre travail : 1- le drone est considéré comme quasi-stationnaire Prise en compte de l orientation de la camera et correction de la déformation due à la rotation 2- le drone est en translation La scène est considérée comme planaire et l homographie 2D est utilisée
PLATEFORME MATERIELLE 06 / 32
PLATEFORME MATERIELLE 07 / 32 CMV20000 (20 MP) SoC-FPGA Zynq 7030 IMU-6 axes alignés sur les axes du CMOS Capteur CMOS avec les capteurs inertiels et l intelligence embarqué (SoC Zynq 7030) Capteur CMOS et IMU à l intérieur de la caméra Capteur CMOS 20 MP «global shutter» (CMOSIS CMV20000) ICM-20608-G IMU Estimation du mouvement de la caméra Zynq 7030 SoC (Xilinx) : FPGA & 2 ARM cores (Linux OS) Co-design (Soft/Hard) Optique : Objectif standard de focale 35 mm Prise en compte de la distorsion
Algorithme de traitement d images et des données 08 / 32 0 : Acquisition N images et données IMU N images +
Algorithme de traitement d images et des données 09 / 32 0 : Acquisition N images et données IMU 1 : Détection des points d intérêts dans la première image Première image
Algorithme de traitement d images et des données 10 / 32 0 : Acquisition N images et données IMU 1 : Détection des points d intérêts dans la première image 2 : Utilisation IMU pour la prédiction des zones de recherche Pour toutes les autres images Première image N ième image
Algorithme de traitement d images et des données 11 / 32 0 : Acquisition N images et données IMU 1 : Détection des points d intérêts dans la première image 2 : Utilisation IMU pour la prédiction des zones de recherche 3 : Recherche des points homologues par corrélation Pour toutes les autres images Première image N ième image
Algorithme de traitement d images et des données 12 / 32 0 : Acquisition N images et données IMU 1 : Détection des points d intérêts dans la première image 2 : Utilisation IMU pour la prédiction des zones de recherche Pour toutes les autres images 3 : Recherche des points homologues par corrélation 4 : Estimation de la transformation géométrique par méthode moindres carrés Première image N ième image
Algorithme de traitement d images et des données 13 / 32 0 : Acquisition N images et données IMU 1 : Détection des points d intérêts dans la première image 2 : Utilisation IMU pour la prédiction des zones de recherche Pour toutes les autres images 3 : Recherche des points homologues par corrélation 4 : Estimation de la transformation géométrique par méthode moindres carrés 5 : Ré-échantillonnage + Superposition
Algorithme de traitement d images et des données 1. Détection des points d intérêts Détecteur FAST 14 / 32 Illustration du détecteur FAST Cercle de rayon r (r=3) autour du pixel candidat (P) Seuil paramétrable (s) P est un point d intérêt ssi il existe 12 points contigus (parmi les 16 pixels) et qui sont tous soit : > Ip + s < Ip - s
Algorithme de traitement d images et des données 1. Détection des points d intérêts é ê 15 / 32 La répartition des points d intérêts dépend du contenu de l image (Schauwecker et al., 2012) Distribution non uniforme des points d intérêts dans l image L estimation des transformations entre les images n est pas robuste (Behrens & Rollinger, 2010) M N Approche de selection des points d intérêts
Algorithme de traitement d images et des données 1. Détection des points d intérêts é ê 16 / 32 Seuil = 6. Grille = 100 x 100 blocs. 2854 points. Seuil = 3. Grille = 100 x 100 blocs. 5935 points. Distribution uniforme des points d intérêts détectés par FAST dans l image. Seuil = 3. Grille = 10 x 10 blocs. 95 points.
17 / 32 Algorithme de traitement d images et des données 1. Détection des points d intérêts Implémentation dans le FPGA Les dimensions de l image et le seuil sont configurés par le software Le format des pixels d entrée est 8-bit (niveau de gris). Les coordonnées des points d intérêts (x, y) sont écrites dans la mémoire. Chaque coordonnée est codée en 16 bits 0,3% de ressources Design du hardware du détecteur FAST avec l approche de sélection
Algorithme de traitement d images et des données 2. Estimation des positions des points homologues dans les autres images En utilisant les paramètres de l orientation interne et la rotation 3D entre les poses Les différentes étapes pour obtenir le point homologue initial approximatif dans les autres images. est la rotation 3D obtenue par les mesures de l IMU. La rotation entre trois images IMU de type MEMS => la dérive due à l'accumulation de biais Position approximative des points Centre de la zone de recherche Cette étape aide fortement à obtenir une performance temps-réel 18 / 32 Positions des points homologues estimées par les mesures de l IMU pour toute la séquence des images.
Algorithme de traitement d images et des données 3. Corrélation 2D entre les patches 19 / 32 Points d intérêts détectés. Le seuil est configuré à 7. Le nombre de blocs de la grille est 100 x 100, la résolution de l image est 2560 x 1920 pixels. Les zones de recherche obtenues par les mesures des gyromètres entre la première image et la 10 ème image. les points verts représentent les points homologues obtenus par corrélation. La taille de chaque zone de recherche est 11 x 11 pixels, la résolution de l image est 2560 x 1650 pixels.
Algorithme de traitement d images et des données 5. Ré-échantillonnage des images 20 / 32 Les différentes étapes pour obtenir le point homologue projeté dans l autre image en utilisant l homographie 2D estimée entre les images Ré-échantillonnage des images dans le plan de la première image Les différentes étapes pour obtenir le point homologue projeté dans l autre image en utilisant la rotation 3D estimée entre les images Utilisation de la rotation ou de l homographie Prise en compte de la distorsion Interpolation bilinéaire L étape la plus coûteuse en calcul ( 18 sec) ~ 1. Algorithme plus performant 2. Implémentation dans le FPGA
21 / 32 Algorithme de traitement d images et des données 5. Ré-échantillonnage des images Autre algorithme Approximation bilinéaire de calcul des points projetés Une fonction bilinéaire Ré-échantillonnage au plus proche voisin
22 / 32 Algorithme de traitement d images et des données 5. Ré-échantillonnage des images Autre algorithme Précision de la méthode accélérée Max : 3 centièmes de pixels Différence selon x pour chaque pixel entre le point projeté obtenu par rotation et le point projeté obtenu par la fonction bilinéaire, entre la 1 ère et la 10 ème image. Différence selon y pour chaque pixel entre le point projeté obtenu par rotation et le point projeté obtenu par la fonction bilinéaire, entre la 1 ère et la 10 ème image. Distance maximale (en pixels) pour chaque case de la grille entre le point projeté par rotation et le point projeté par fonction bilinéaire.
Algorithme de traitement d images et des données 5. Ré-échantillonnage des images Autre algorithme Qualification Qualification Peak Signal-to-Noise Ratio (PSNR) = 51.08 db Image compressée JPEG à 95% 23 / 32 Différence entre l image empilée obtenue avec la méthode non accélérée (Rotation + Interpolation bilinéaire) et l image empilée obtenue avec la méthode accélérée (Fonction bilinéaire + Interpolation au plus proche voisin)
Algorithme de traitement d images et des données 5. Ré-échantillonnage des images Autre algorithme Qualification La ligne rouge utilisée pour calculer les profils radiométriques. 24 / 32 Première image brute : rouge Image empilée dont la partie du ré-échantillonnage est non accélérée : vert Image empilée dont la partie du ré-échantillonnage est accélérée : bleu
25 / 32 Algorithme de traitement d images et des données 5. Ré-échantillonnage des images Accélération dans le FPGA Le SOFT calcule les paramètres de la partie y de la fonction bilinéaire du prochaine ligne Le FPGA calcule les paramètres de la partie x de la fonction bilinéaire actuelle Le FPGA traite la ligne actuelle et écrit la ligne empilée dans la mémoire. FPGA PS 2% de ressources Utilisation de plusieurs copies de l IP
Résultats et discussions Précision de l IMU 26 / 32 Les deux rotations 3D entre les poses
Résultats et discussions La précision des estimations des transformations 27 / 32 Les résidus de l estimation de la rotation 3D entre la 1 ère et la 10 ème image dans les régions herbeuses et la route Les résidus de l estimation de la rotation 3D entre la 1 ère et la 10 ème image dans les régions herbeuses et la route, les vecteurs verts représentent les résidus dans les régions herbeuses et les vecteurs rouges représentent les résidus dans la route.
Résultats et discussions La précision des estimations des transformations 28 / 32 Les résidus obtenus par l estimation de la rotation 3D Les résidus obtenus par l estimation de l homographie 2D Les résidus en RMS obtenus par l estimation de la rotation 3D et de l homographie 2D
Résultats et discussions La qualité des résultats 29 / 32 L image empilée, la partie rouge est la partie non commune entre la 1 ère et la 10 ème image. (Shah & Schickler, 2012) Méthode de dé-convolution Quelques pixels (a) est obtenue en moyennant les 10 images, (b) est l image empilée. Le mouvement angulaire entre les images est de 1.2 correspondant à 59 pixels.
Résultats et discussions Résultats de temps (en secondes) de la partie du ré-échantillonnage accélérée dans le FPGA 30 / 32 Le temps de la partie du ré-échantillonnage (en secondes) en fonction de la taille du bloc etdu nombre d IP utilisés
Résultats de temps (en secondes) 31 / 32 t < 1s (1) : Fonction bilinéaire + Interpolation bilinéaire (2) : Fonction bilinéaire + Ré-échantillonnage au plus proche voisin. Tous les tests ont été exécutés sur deux plateformes: Tout d'abord, une station de travail HPZ210 avec un processeur Intel Xeon 3,30 GHz et 8,0 Go de RAM. Deuxièmement, la caméra légère de l IGN avec 666 MHz dual-core ARM Cortex-A9 processeurs.
Conclusion et perspectives 32 / 32 Efficacité et précision de notre méthode quand le drone est quasi-stationnaire La partie traitement des données de l IMU et la correction du biais peut être faite en temps réel Autres applications L algorithme de «stacking» est en temps réel Phase de réassemblage de toute la chaine de l algorithme Optimisation des différents paramètres pour avoir des bons résultats en moins de temps Intégration de la translation (GPS/IMU) dans le calcul pour prendre en compte le mouvement du drone