Traduction du texte intégral de l'article ORB-SLAM2

écrit devant

ORB-SLAM2 : Un système SLAM Open-Source sous forme de caméras monoculaires, stéréo et RVB-D est un article classique dans le domaine du SLAM. Il y a aussi beaucoup de traductions chinoises sur Internet, mais j'ai l'impression que les traductions ne sont pas très bonnes. La traduction de cet article est la traduction de documents en langue étrangère pour mon diplôme de premier cycle. Je l'ai traduit moi-même et cela semble plus fluide. S'il y a des erreurs, veuillez le signaler.

Raúl Mur-Artal et Juan D. Tardós. ORB-SLAM2 : un système SLAM Open Source pour caméras monoculaires, stéréo et RVB-D. Transactions IEEE sur la robotique, vol. 33, non. 5, p. 1255-1262, 2017.  PDF

sujet

ORB-SLAM2 : un système SLAM Open Source sous forme de caméras monoculaires, stéréo et RVB-D

Résumé 

Cet article propose ORB-SLAM2, qui est un système SLAM complet basé sur des caméras monoculaires, binoculaires ou RVB-D, qui inclut des fonctions de réutilisation de carte, de détection de fermeture de boucle et de relocalisation. Ce système peut être appliqué à une variété d'environnements, qu'il s'agisse d'un petit appareil portable d'intérieur ou d'un drone volant dans un environnement d'usine et d'un véhicule roulant dans une ville, il peut fonctionner en temps réel sur un processeur standard. Le backend du système utilise un ajustement de faisceau basé sur des observations monoculaires et binoculaires, ce qui lui permet d'estimer avec précision l'échelle de la trajectoire. Le système comprend un mode de positionnement léger qui utilise l'odométrie visuelle pour suivre les zones non cartographiées et faire correspondre les points de la carte pour un positionnement sans dérive. Des évaluations expérimentales sur 29 ensembles de données publics couramment utilisés montrent que notre méthode est la solution SLAM la plus précise dans la plupart des cas. Nous avons publié le code source du système pour promouvoir le développement du domaine SLAM, et également fournir aux chercheurs d'autres domaines un ensemble de solutions SLAM prêtes à l'emploi.

1. Introduction 

La cartographie de localisation simultanée (SLAM) a été un point chaud de la recherche dans les domaines de la vision par ordinateur et de la robotique au cours des deux dernières décennies, et récemment, elle a également attiré l'attention des entreprises de haute technologie. La technologie SLAM cartographie l'environnement inconnu et localise en même temps la position du capteur sur la carte en temps réel. Parmi les différents capteurs, les caméras sont relativement bon marché et peuvent fournir des informations environnementales riches nécessaires à une reconnaissance de localisation robuste et précise.Par conséquent, la solution visuelle SLAM avec des caméras comme capteur principal est actuellement le hotspot de recherche le plus populaire. La reconnaissance de position est un module clé du système SLAM pour réaliser la détection en boucle (lorsque le capteur est détecté pour revenir à la zone où la carte a été construite, l'erreur cumulée dans le processus d'exploration est corrigée). Il peut réinitialiser le système après un échec de suivi dû à une occlusion ou à un mouvement violent, repositionnez la position de la caméra.

Visual SLAM peut être réalisé avec seulement une caméra monoculaire, qui est le dispositif de capteur le moins cher et le plus petit. Cependant, les informations de profondeur ne peuvent pas être observées uniquement avec une caméra monoculaire, de sorte que l'échelle de la carte et la trajectoire estimée sont inconnues. De plus, étant donné que le système de vision monoculaire SLAM ne peut pas trianguler uniquement sur la base de la première image de l'image, plusieurs angles de vision ou techniques de filtrage sont nécessaires pour générer une carte initiale lorsque le système est démarré. Dans le même temps, le SLAM monoculaire provoquera une dérive d'échelle, qui peut échouer lors de l'exploration en rotation pure. Cependant, en utilisant des caméras binoculaires ou RVB-D, ces problèmes peuvent être résolus, ce qui se traduit par une solution SLAM visuelle plus fiable.

Dans cet article, sur la base de notre ORB-SLAM monoculaire précédemment proposé, nous proposons en outre ORB-SLAM2, qui a les contributions suivantes :

  • Le premier système SLAM open source basé sur des caméras monoculaires, binoculaires et RVB-D, comprenant des fonctions de détection de boucle, de relocalisation et de réutilisation de cartes.
  • Nos résultats RVB-D montrent qu'en utilisant l'ajustement de faisceau (BA), nous pouvons obtenir une plus grande précision que les meilleures méthodes actuelles basées sur le point le plus proche itératif (ICP) ou la minimisation des erreurs de largeur et de profondeur.
  • En utilisant des points binoculaires correspondants très proches et des observations monoculaires, nos résultats binoculaires sont plus précis que le SLAM binoculaire direct de pointe actuel.
  • Un modèle de relocalisation léger est proposé qui réutilise efficacement la carte lorsqu'elle ne peut pas être construite.

Figure 1 ORB-SLAM2 traite les entrées binoculaires et RVB-D, estime les trajectoires de la caméra et construit une carte de l'environnement. Le système est capable de fermer des boucles, de déplacer et de réutiliser des cartes sur un processeur standard en temps réel avec une précision et une robustesse élevées.

La figure 1 montre la sortie du système ORB-SLAM2 avec des entrées binoculaires et RVB-D. L'exemple binoculaire montre la trajectoire estimée finale et les résultats de reconstruction clairsemés de la séquence 00 de l'ensemble de données KITTI. Il s'agit d'une séquence de données de scènes urbaines avec de multiples fermetures de boucle, qui ont été détectées avec succès par le système ORB-SLAM2. L'exemple RGB-D montre les résultats de l'estimation de la pose de l'image clé de la séquence frl-room dans l'ensemble de données TUM RGB-D et le nuage de points dense résultant, où le nuage de points dense est basé sur la pose de l'image clé et inverse la carte de profondeur du capteur obtenue par projection. Il convient de noter que le système ORB-SLAM2 n'effectue aucune fusion comme les systèmes tels que KinectFusion, mais il est capable d'estimer avec précision la pose de l'image clé. D'autres exemples seront présentés dans la vidéo ci-jointe.

Dans le reste de cet article, nous discutons des travaux connexes dans la section 2, introduisons notre système dans la section 3, présentons les résultats de l'évaluation expérimentale dans la section 4 et concluons dans la section 5.

2 travaux connexes

 Dans cette section, nous discutons des travaux connexes sur binoculaire et RGB-D SLAM. La discussion dans cette section et l'évaluation dans la section IV ne concernent que les méthodes SLAM.

2.1 SLAM binoculaire

Paz et al ont créé un excellent système SLAM binoculaire [5], basé sur un filtre de Kalman étendu à partition conditionnellement indépendante SLAM (EKF-SLAM), de sorte que le système peut être comparé à d'autres méthodes à cette époque. . Plus important encore, il est le premier à utiliser à la fois des points caractéristiques proches et éloignés (qui ne peuvent pas estimer de manière fiable la profondeur en raison de leur faible parallaxe dans les caméras stéréo), et à utiliser un paramètre de profondeur inverse pour ce dernier. Estimation [6]. Ils montrent empiriquement que les points caractéristiques peuvent être triangulés de manière fiable lorsque leur profondeur est inférieure à 40 fois la longueur de base de la caméra stéréo. Dans ce travail, nous poursuivons cette stratégie de traitement différent des points caractéristiques proches et éloignés, qui sera expliquée dans la section 3.1.

La plupart des systèmes SLAM stéréo modernes sont basés sur des images clés [7] et une optimisation BA locale pour l'évolutivité. Le travail de Strasdat et al [8] utilise l'optimisation BA dans la fenêtre d'image clé (contrainte point-pose) et l'optimisation du graphe de pose en dehors de la fenêtre d'image clé (optimisation pose-pose). En limitant la taille de la fenêtre, cette méthode peut atteindre une complexité temporelle constante, mais ne peut garantir une cohérence globale. Mei et. RSLAM peut réaliser la fermeture de la boucle, ce qui peut étendre la zone d'activation aux deux extrémités de la boucle, mais il ne peut pas améliorer la cohérence globale. Le récent S-PTAM [10] proposé par Pire et al., adopte le BA local, mais il lui manque la fonction de fermeture des grandes boucles. Semblable à ces méthodes, nous adoptons également BA dans la collection d'images clés locales, de sorte que la complexité de la méthode n'est pas affectée par la taille de la carte, et nous pouvons implémenter la méthode dans de grandes scènes. Cependant, notre objectif est de construire une carte cohérente à l'échelle mondiale. Semblable à RSLAM, lors de la fermeture d'une boucle, notre système alignera d'abord les deux extrémités, afin que le module de suivi puisse continuer à localiser en utilisant l'ancienne carte, puis utiliser l'optimisation du graphe de pose pour minimiser la dérive cumulative dans la boucle, puis effectuer une BA globale.

Le LSD-SLAM binoculaire récemment proposé [11] par Engel et al est une méthode semi-dense qui minimise l'erreur photométrique dans les régions avec de grands gradients d'image. La méthode espère atteindre une meilleure robustesse dans des environnements avec un flou de mouvement ou des textures faibles sans s'appuyer sur des fonctionnalités. Cependant, en tant que méthode directe, les performances de cette méthode se dégradent considérablement en raison de facteurs non modélisés, tels que l'obturateur roulant ou les réflexions non lambertiennes.

2.2 RVB-D SLAM

KinectFusion [4] proposé par Newcombe et al., est l'un des systèmes SLAM RVB-D les plus anciens et les plus célèbres. La méthode fusionne toutes les données de profondeur des capteurs dans un modèle volumétrique dense et utilise l'ICP pour suivre la pose de la caméra. Étant donné que le système utilise une représentation volumétrique et n'a pas de détection de fermeture de boucle, il ne peut être appliqué qu'à des espaces de travail à petite échelle. Kintinuous [12] proposé par Whelan et al utilise un tampon circulaire roulant et inclut un module de fermeture de boucle optimisé à l'aide de la reconnaissance de position et des graphes de pose, pouvant ainsi s'exécuter sur des scènes à grande échelle.

RGB-D SLAM [13] proposé par Endres et al., est probablement le premier système open source populaire. Il s'agit d'un système basé sur les fonctionnalités. Son front-end calcule le mouvement entre les images via la correspondance des fonctionnalités et l'ICP. Son back-end utilise l'optimisation des graphes de pose et ses contraintes de détection de fermeture de boucle sont obtenues par recherche heuristique. De même, le backend de DVO-SLAM [14] proposé par Kerl et al utilise également l'optimisation des graphes de pose, où les contraintes entre les images clés sont calculées par une odométrie visuelle qui minimise les erreurs photométriques et de profondeur. Pendant ce temps, DVO-SLAM recherche de manière heuristique les candidats à la fermeture de boucle dans toutes les trames précédentes sans s'appuyer sur la reconnaissance de position.

Récemment, ElasticFusion [15] proposé par Whelan et al. a établi une carte surfel de l'environnement. Il s'agit d'une méthode qui ignore la pose et prend la carte comme noyau. Elle utilise une déformation non rigide de la carte pour obtenir une fermeture de boucle à la place. La méthode d'optimisation du graphe de pose est adoptée. La reconstruction détaillée et la précision de positionnement du système sont excellentes, mais en raison de la complexité apportée par le nombre de surfels dans la carte, il est actuellement limité à la construction d'une carte de la taille d'une pièce.

Notre système ORB-SLAM2 utilise une méthode proposée par Strasdat et al [8] qui utilise des informations de profondeur pour synthétiser les coordonnées stéréo pour les caractéristiques extraites dans les images. De cette manière, notre système peut gérer les entrées stéréo ou RGB-D. Différent de toutes les méthodes ci-dessus, le backend de notre méthode est basé sur BA, et peut obtenir une reconstruction parcimonieuse globalement cohérente. Notre méthode est donc légère et peut fonctionner sur des processeurs standards. Notre objectif est de parvenir à une localisation à long terme et cohérente à l'échelle mondiale plutôt qu'à une reconstruction dense avec plus de détails. Cependant, notre méthode peut également reconstruire avec précision l'environnement local en temps réel en effectuant une fusion de cartes de profondeur avec des poses d'images clés de haute précision, ou traiter les cartes de profondeur de toutes les images clés après BA global pour obtenir l'ensemble de la scène.Modèles 3D précis.

3 ORB-SLAM2

ORB-SLAM2 basé sur des caméras binoculaires et RVB-D s'appuie sur notre ORB-SLAM monoculaire basé sur les fonctionnalités [1]. Pour la commodité du lecteur, nous résumons ici les composants de base de l'ORB-SLAM monoculaire. Un aperçu général du système ORB-SLAM2 basé sur des caméras binoculaires et RVB-D s'appuie sur notre ORB-SLAM monoculaire basé sur les fonctionnalités. Pour la commodité du lecteur, nous résumons ici les composants de base de l'ORB-SLAM monoculaire. Figure 2 ORB-SLAM2 se compose de trois threads parallèles principaux : le suivi, le mappage local et la détection de boucle. Après la détection de bouclage, le quatrième thread sera exécuté pour effectuer une BA globale. Le fil de suivi prétraite les entrées binoculaires et RVB-D, permettant au reste du système de fonctionner indépendamment des capteurs d'entrée. Bien que non représenté sur cette figure, ORB-SLAM2 peut également fonctionner sur une entrée monoculaire. La figure 2 donne un aperçu général du système. Le système comporte trois threads parallèles principaux : 1) le thread de suivi est utilisé pour localiser la position de la caméra dans chaque image, en faisant correspondre les caractéristiques et les cartes locales et en effectuant un BA de mouvement uniquement (BA de mouvement uniquement) pour minimiser l'erreur de reprojection ; 2) ) Le fil de mappage local est utilisé pour gérer et optimiser la carte locale ; 3) Le fil de détection de boucle est utilisé pour détecter les grandes boucles et corriger l'erreur cumulative en effectuant une optimisation du graphe de pose. Une fois le graphe de pose optimisé, ce thread démarrera le quatrième thread pour exécuter le BA global afin de calculer la structure optimale et les résultats de mouvement.

 Figure 2 ORB-SLAM2 se compose de trois threads parallèles principaux : le suivi, le mappage local et la détection de boucle. Après la détection de bouclage, le quatrième thread sera exécuté pour effectuer une BA globale. Le fil de suivi prétraite les entrées binoculaires et RVB-D, permettant au reste du système de fonctionner indépendamment des capteurs d'entrée. Bien que non représenté sur cette figure, ORB-SLAM2 peut également fonctionner sur des entrées monoculaires [1]. (a) Threads et modules système (b) Prétraitement des entrées

Le système embarque un module de reconnaissance de position basé sur DBoW2 [16], qui est utilisé pour la relocalisation en cas d'échec de suivi (par exemple, collision) ou de réinitialisation dans la scène cartographiée, et pour la détection de fermeture de boucle. Le système maintient une carte visible [8], qui relie toutes les deux images clés qui observent le même point de la carte ; en même temps, le système maintient également un arbre couvrant minimum, qui relie toutes les images clés. Cette structure de carte réalise la récupération de la fenêtre locale de l'image clé, de sorte que le fil de suivi et le fil de mappage local peuvent s'exécuter localement, de sorte qu'il puisse fonctionner dans une grande scène ; en même temps, la structure peut également être utilisée pour optimisation du graphe de pose lors de la fermeture de la boucle. Peut être utilisé comme structure de graphe optimisée.

Le système utilise les mêmes fonctionnalités ORB [17] pour les tâches de suivi, de cartographie et de reconnaissance de lieu. Ces fonctionnalités sont robustes aux changements de rotation et d'échelle, ainsi qu'invariantes au gain automatique de la caméra, à l'exposition automatique et aux changements d'éclairage. De plus, la vitesse d'extraction et d'appariement des caractéristiques ORB est rapide, ce qui permet de s'exécuter en temps réel, et il montre une bonne précision/rappel sur la tâche de reconnaissance de position du modèle de sac de mots [18].

Dans le reste de cette section, nous montrons comment utiliser les informations stéréo/profondeur et quelles parties du système seront affectées. Pour une description plus détaillée de chaque partie du système, veuillez vous référer à notre article monoculaire ORB-SLAM [1].

3.1 Points clés monoculaire, stéréo proche et stéréo lointain

En tant que méthode basée sur les fonctionnalités, ORB-SLAM2 prétraite l'entrée et extrait les fonctionnalités aux points clés saillants, comme le montre la figure 2b. Ensuite, l'image d'entrée sera supprimée et tous les calculs du système seront basés sur ces caractéristiques, de sorte que le système peut fonctionner indépendamment de l'entrée binoculaire ou RVB-D. Notre système gère les points clés monoculaires et stéréo, qui sont ensuite divisés en points proches et éloignés.

x_s=(u_L,v_L,u_R )Les points clés stéréo (binoculaires) sont définis par des coordonnées tridimensionnelles , (u_L,v_L ) qui sont les coordonnées du point clé sur l'image de gauche et u_Rles coordonnées horizontales du point clé sur l'image de droite. Pour les caméras binoculaires, nous extrayons les caractéristiques ORB simultanément dans les images gauche et droite. Pour chaque fonctionnalité ORB dans l'image de gauche, nous recherchons une correspondance correspondante dans l'image de droite. Pour les images binoculaires rectifiées, les lignes épipolaires sont horizontales, de sorte que les tâches ci-dessus peuvent être effectuées très efficacement. Ensuite, nous générons des points clés stéréo en fonction des coordonnées de la fonction ORB dans l'image de gauche et des coordonnées horizontales de la fonction correspondantes dans l'image de droite. Pour les caméras RVB-D, comme indiqué par Strasdat et al [8], nous extrayons les caractéristiques ORB sur les images RVB.Pour chaque  (u_L,v_L ) caractéristique avec des coordonnées, nous calculons une coordonnée droite virtuelle de l'image en fonction de sa valeur de profondeur d :

u_R=u_L-(f_x b)/d

où  f_xest la distance focale horizontale ; best la distance de base entre le projecteur de lumière résultant et la caméra infrarouge, que nous avons réglée à environ 8 cm dans les caméras Kinect et Asus Xtion. L'incertitude du capteur de profondeur est représentée par la coordonnée droite virtuelle. De cette façon, le reste du système peut traiter les caractéristiques de l'entrée stéréo ou RVB-D de la même manière.

Comme décrit dans [5], si la valeur de profondeur d'un point clé stéréo est inférieure à 40 fois la longueur de base des binoculaires/RVB-D, il est considéré comme un point proche, sinon il est considéré comme un point éloigné. Les points clés à proximité peuvent être triangulés en toute sécurité, car leur profondeur peut être estimée avec précision et des informations sur l'échelle, la translation et la rotation sont fournies. D'autre part, les points clés distants, tout en fournissant des informations de rotation précises, ne peuvent pas fournir d'informations précises sur l'échelle et la translation. Ainsi, nous ne triangulons les points clés distants que lorsqu'ils existent dans plusieurs vues.

x_m=(u_L,v_L)Les points clés monoculaires sont définis par les coordonnées bidimensionnelles dans l'image de gauche  Si la correspondance binoculaire de la fonction ORB échoue ou si la caméra RVB-D ne peut pas obtenir sa valeur de profondeur effective, cette méthode est utilisée. Ces points ne sont triangulés qu'en multi-vues et ne fournissent pas d'informations d'échelle, mais ils peuvent être utilisés pour l'estimation de la rotation et de la translation.

3.2 Démarrage du système

L'un des principaux avantages de l'utilisation d'une caméra binoculaire ou RVB-D est que nous pouvons obtenir directement les informations de profondeur d'une seule image d'image, sans avoir besoin d'utiliser une initialisation SFM (structure from motion) spécifique comme dans le SLAM monoculaire. Au démarrage du système, nous créons la première image, définissons sa pose comme pose initiale et construisons une carte initiale à partir de tous les points clés stéréo.

3.3 Méthode d'optimisation du faisceau (BA) sous contraintes monoculaires et binoculaires

Notre système utilise BA dans le fil de suivi pour optimiser la pose de la caméra (BA de mouvement pur), dans le fil de mappage local pour optimiser les fenêtres locales d'images clés et de points (BA local), et pour optimiser toutes les images clés et tous les points après la fermeture de la boucle (BA global ). Nous utilisons la méthode de Levenberg-Marquardt implémentée dans g2o [19] pour l'optimisation.

Pure motion BA (motion-only BA) optimise la matrice de rotation  \mathbf{R} \in SO(3)et la position  de la caméra, minimisant l'erreur de reprojection entre le point 3D et le point clé \mathbf{t}\in \mathbb{R}^{3}dans le système de coordonnées mondial correspondant   (point monoculaire   ou point binoculaire  , pour tout droit correspondant ):\mathbf{X}^{i}\in \mathbb{R}^{3}\mathbf{x}_{(\cdot)}^{i}\mathbf{x}_{\mathrm{m}}^{i}\mathbb{R}^{2}\mathbf{x}_{\mathrm{s}}^{i}\mathbb{R}^{3}je \in \mathcal{X}

\{\mathbf{R}, \mathbf{t}\}=\interpret{\mathbf{R}, \mathbf{t}}{\operatorname{argmin}} \sum_{i\in \mathcal{X}} \rho\left(\left\|\mathbf{x}_{(\cdot)}^{i}-\pi_{(\cdot)}\left(\mathbf{R}\mathbf{X}^{i }+\mathbf{t}\right)\right\|_{\Sigma}^{2}\right)

 où \rhôest la fonction de coût de Huber robuste et \sommeest la matrice de covariance de l'échelle des points clés. Parmi elles, la fonction de projection \pi_{(\cdot)}, la fonction de projection monoculaire \pi_met la fonction de projection binoculaire corrigée \pi_ssont définies comme suit :

\pi_{\mathrm{m}}\left(\left[\begin{tableau}{l} X \\ Y \\ Z \end{tableau}\right]\right)=\left[\begin{tableau} {l} f_{x} \frac{X}{Z}+c_{x} \\ f_{y} \frac{Y}{Z}+c_{y} \end{array}\right], \pi_ {\mathrm{s}}\left(\left[\begin{array}{l} X \\ Y \\ Z \end{array}\right]\right)=\left[\begin{array}{c } f_{x} \frac{X}{Z}+c_{x} \\ f_{y} \frac{Y}{Z}+c_{y} \\ f_{x} \frac{Xb}{Z }+c_{x} \end{tableau}\right]

(f_x,f_y)est la distance focale, (c_x,c_y)est le point central optique bet est la longueur de base, et ces valeurs sont obtenues par étalonnage.

Global BA est un cas particulier de BA local, dans lequel toutes les images clés et tous les points de la carte sont optimisés à l'exception de l'image clé initiale, qui est fixée pour éliminer les degrés de liberté de calcul.

Local BA associe un ensemble d'images clés visibles \mathcal{K}_Là tous les points visibles dans ces images clés \mathcal{P}_L. Toutes les autres images clés qui ne sont pas \mathcal{K}_Ldans , mais qui observent également les points dans , participeront également au calcul de la fonction de coût, mais ne seront pas optimisées. Nous définissons l'ensemble des paires correspondantes entre les points dans et les points clés dans l'image clé k comme , et définissons le problème d'optimisation comme suit :\mathcal{P}_L\mathcal{K}_F\mathcal{P}_L\mathcal{X}_k

\begin{array}{c}\left\{\mathbf{X}^{i}, \mathbf{R}_{l}, \mathbf{t}_{l} |  i \in \mathcal{P}_{L}, l \in \mathcal{K}_{L}\right\}=\mathbf{X}^{i}, \mathbf{R}_{ l}, \mathbf{t}_{l}}{\operatorname{argmin}} \sum_{k \in \mathcal{K}_{L}\cup \mathcal{K}_{F}} \sum_{ j \in \mathcal{X}_{k}}\rho\left(E_{kj}\right) \\E_{kj}=\left\|\mathbf{x}_{(\cdot)}^{ j}- \pi_{(\cdot)}\left(\mathbf{R}_{k} \mathbf{X}^{j}+\mathbf{t}_{k}\right)\right\|_ {\Sigma }^{2}\end{tableau}

Global BA est un cas particulier de BA local, dans lequel toutes les images clés et tous les points de la carte sont optimisés à l'exception de l'image clé initiale, qui est fixée pour éliminer les degrés de liberté de calcul.

3.4 Détection de boucle et BA global

La détection de la fermeture de la boucle est effectuée en deux étapes : la première étape consiste à détecter et à confirmer la fermeture de la boucle, et la deuxième étape consiste à corriger la fermeture de la boucle en optimisant le graphe de pose. Par rapport à l'ORB-SLAM monoculaire, qui peut avoir une dérive d'échelle [20], les informations binoculaires/de profondeur rendront l'échelle observable, de sorte que la vérification géométrique et l'optimisation du graphe de pose n'ont plus besoin de traiter la dérive d'échelle ; en même temps, il est basé sur des corps rigides Transformation plutôt que basée sur la similitude.

Dans ORB-SLAM2, nous utilisons l'optimisation BA globale pour obtenir la solution optimale après l'optimisation du graphe de pose. Ce processus d'optimisation peut être coûteux, nous le plaçons donc dans un thread séparé, afin que le système puisse continuer à créer des cartes et à détecter les bouclages. Mais dans ce cas, il sera difficile de fusionner la sortie BA avec l'état actuel de la carte. Si une nouvelle boucle est trouvée pendant l'exécution de l'optimisation, nous arrêtons l'optimisation et fermons la boucle à la place, ce qui redémarre l'optimisation BA globale. Lorsque le BA global est terminé, il est nécessaire de fusionner l'ensemble des images clés et des points mis à jour par l'optimisation globale du BA avec les images clés et les points non mis à jour insérés lors du processus d'optimisation. Cela se fait en transmettant la correction des images clés mises à jour (transformation de la pose non optimisée à la pose optimisée) le long de l'arbre couvrant vers les images clés non mises à jour. Les points non mis à jour sont transformés en fonction de la révision de leur référentiel.

3.5 Insertion d'images clés

ORB-SLAM2 suit la stratégie introduite dans l'ORB-SLAM monoculaire : insérer fréquemment des images clés, puis supprimer les images clés redondantes. La différence entre le point stéréo proche et le point stéréo lointain nous permet d'introduire une nouvelle condition lors de l'insertion d'images clés, ce qui est très important lorsqu'il y a une grande partie de la scène dans l'environnement loin du capteur binoculaire, comme indiqué dans Figure 3 illustrée. Dans un tel environnement, nous avons besoin d'avoir suffisamment de points proches pour estimer avec précision la translation, donc lorsque le nombre de points proches suivis est inférieur à et que \tendu}cette image peut créer au moins \tau_{s}de nouveaux points stéréo proches, le système Insert insèrera cette image comme un nouvelle image clé. Selon l'expérience, dans nos expériences, \tau_{t} = 100, \tau_{s} = 70l'effet de .

Figure 3 Points de suivi dans KITTI 01. Les points verts représentent des points avec des valeurs de profondeur inférieures à 40 fois la longueur de la ligne de base binoculaire, et les points bleus représentent des points plus éloignés. Dans ce type de séquence vidéo, il est nécessaire d'insérer fréquemment des images clés afin que le nombre total de points proches réponde à l'exigence d'estimation précise de la quantité de translation. Les points éloignés sont utiles pour estimer la rotation, mais pas tant pour estimer la translation et l'échelle.

3.6 Mode de positionnement

Notre système inclut un mode de localisation qui est efficace pour une localisation légère à long terme dans des régions bien cartographiées, tant que l'environnement ne change pas de manière significative. Dans ce mode, le fil de mappage local et le fil de détection de boucle sont désactivés, et la caméra est continuellement repositionnée par la fonction de repositionnement du fil de suivi si nécessaire. Dans ce mode, le fil de suivi utilise des paires correspondantes de l'odométrie visuelle et les associe aux points de la carte. Une paire correspondante en odométrie visuelle fait référence à une paire correspondante entre les caractéristiques ORB dans l'image actuelle et les points 3D créés à partir des informations binoculaires/profondeur dans l'image précédente. Ces paires correspondantes rendent la fonction de localisation plus robuste dans les régions non cartographiées, mais souffrent d'une dérive cumulative. La correspondance avec les points de la carte garantit un positionnement sans dérive dans la zone cartographiée. Ce mode est démontré et expliqué dans la vidéo ci-jointe.

4 commentaires

Nous évaluons les performances d'ORB-SLAM2 sur trois ensembles de données couramment utilisés et les comparons avec d'autres systèmes SLAM à la pointe de la technologie. Les résultats d'évaluation des autres systèmes SLAM que nous utilisons proviennent des mesures d'évaluation standard de l'article de l'auteur original. Nous exécutons ORB-SLAM2 sur un ordinateur de bureau avec un processeur Intel Core i7-4790 et 16 Go de RAM. Afin d'éviter que l'incertitude du système multithread n'affecte les résultats de l'évaluation, nous exécutons chaque séquence de données 5 fois, et montrons enfin la valeur médiane des résultats de précision de l'estimation de la trajectoire. Notre implémentation open source comprend l'étalonnage de la caméra et des instructions sur la façon d'exécuter le système ORB-SLAM2 sur ces ensembles de données.

4.1 Jeu de données KITTI

Le jeu de données KITTI [2] comprend des séquences vidéo binoculaires capturées par des véhicules en milieu urbain et autoroutier. La longueur de base du capteur binoculaire est de 54 cm, la fréquence de travail est de 10 Hz et la résolution corrigée est de 1240 × 376 pixels. Où les séquences vidéo 00, 02, 05, 06, 07 et 09 incluent des boucles. Notre système ORB-SLAM2 peut détecter toutes les fermetures de boucle et peut réutiliser la carte par la suite (sauf pour la séquence vidéo 09, puisque les fermetures de boucle ne se produisent que dans quelques images vers la fin de la séquence). Le tableau 1 présente les résultats de l'évaluation sur 11 séquences vidéo de formation avec des vérités terrain correspondantes accessibles au public. À notre connaissance, seuls les algorithmes SLAM binoculaires peuvent produire des résultats nuancés sur toutes les séquences vidéo mentionnées ci-dessus, nous comparons donc notre méthode avec le LSD-SLAM binoculaire à la pointe de la technologie [11]. Nous utilisons deux métriques différentes, la RMSE de translation absolue t_abs [3], l'erreur moyenne de translation relative t_rel, l'erreur moyenne de rotation relative r_rel [2]. Notre système surpasse le LSD-SLAM binoculaire sur la plupart des séquences vidéo, généralement avec une erreur relative inférieure à 1 %. La séquence vidéo illustrée à la figure 3 est la seule séquence vidéo sur l'autoroute dans l'ensemble d'apprentissage, et son erreur de traduction est légèrement pire. Dans cette séquence, la quantité de translation est plus difficile à estimer car la vitesse élevée et la faible fréquence d'images entraînent le suivi de très peu de points. Cependant, la rotation estimée est très précise, avec une erreur de seulement 0,21 degrés par 100 mètres, car il existe de nombreux points éloignés qui peuvent être suivis pendant une longue période. La figure 4 montre quelques exemples de trajectoires estimées.

Tableau 1 Comparaison de la précision de chaque système SLAM dans le jeu de données KITTI

 

 Figure 4 Trajectoires estimées (noir) et vérité terrain (rouge) dans KITTI 00, 01, 05, 07 : par rapport aux résultats ORB-SLAM monoculaires dans [1], la version binoculaire proposée dans cet article peut gérer le traitement du système monoculaire Pas de vidéo séquence 01. On peut voir sur la figure 3 que dans cette séquence d'autoroute, les points proches ne peuvent continuer à apparaître que dans quelques images. La version binoculaire peut créer des points de carte basés sur une image clé stéréo, sans avoir besoin d'une version stéréo qui n'a besoin que d'une image clé stéréo pour créer des points de carte, au lieu d'utiliser une initialisation paresseuse comme monoculaire (dans deux images clés à la recherche de paires correspondantes), ce qui rend il est moins susceptible d'être perdu dans cette séquence. De plus, les systèmes stéréo peuvent estimer l'échelle des cartes et des trajectoires sans dérive d'échelle.

Figure 5. Trajectoires estimées (noir) et vérité terrain (rouge) dans KITTI 08. Gauche : ORB-SLAM monoculaire [1] ; Droite : ORB-SLAM2 (binoculaire). L'ORBSLAM monoculaire produit une dérive d'échelle importante dans cette séquence, en particulier dans les virages. En comparaison, la version binoculaire proposée dans cet article peut bien estimer l'échelle exacte des trajectoires et des cartes sans dérive d'échelle.

4.2 Ensemble de données EuroC

Le récent ensemble de données EuRoc [21] contient 11 séquences vidéo binoculaires capturées par un micro-véhicule aérien sans pilote (MAV) dans deux maisons différentes et un grand environnement industriel. Le capteur binoculaire a une longueur de base de 11 cm et produit des images WVGA à 20 Hz. Ces séquences vidéo sont classées comme faciles, moyennes et difficiles en fonction de la vitesse du micro-drone, des conditions d'éclairage et de la texture de la scène. Dans toutes les séquences vidéo, les micro-drones retournent aux endroits où ils étaient auparavant, permettant au système ORB-SLAM2 de réutiliser des cartes ou de fermer des boucles en cas de besoin. Le tableau 2 montre l'erreur quadratique moyenne de la quantité de traduction absolue d'ORB-SLAM2 et de LSD-SLAM binoculaire [11] dans toutes les séquences vidéo de cet ensemble de données. La précision de positionnement de l'ORB-SLAM2 atteint le niveau centimétrique, ce qui est supérieur à celui du LSD-SLAM binoculaire. Certaines parties de la séquence V2_03_difficile sont perdues par notre module de suivi en raison d'un important flou de mouvement. Comme décrit dans [22], cette séquence peut être traitée en ajoutant des informations sur l'unité de mesure inertielle (IMU). La figure 6 montre la comparaison entre certaines estimations de trajectoire calculées et la vérité terrain.

Tableau 2 Ensemble de données EuRoC : Comparaison des résultats de l'erreur quadratique moyenne de traduction (RMSE)

Fig. 6 Trajectoires estimées (noir) et valeurs vraies (rouge) dans les séquences EuRoC V1 02 medium, V2 02 medium, MH 03 medium et MH 05 difficile.

4.3 Jeu de données TUM RVB-D

L'ensemble de données TUM RGB-D [3] se compose de séquences vidéo d'intérieur capturées par des capteurs RGB-D regroupés en plusieurs catégories pour évaluer la reconstruction d'objets et les méthodes SLAM/odométrie sous différentes conditions de texture, d'éclairage et de structure. Nous montrons les résultats d'évaluation sur plusieurs séquences vidéo les plus couramment utilisées pour l'évaluation des méthodes RVB-D. Dans le tableau 3, nous comparons la précision de notre méthode avec les meilleures méthodes actuelles (ElasticFusion [15], Kintinuous [12], DVO-SLAM [14], RGB-D SLAM [13]), notre méthode C'est la seule BA- méthode basée, et son effet est meilleur que les autres méthodes dans la plupart des séquences. Nous avons observé que le RGB-D SLAM dans [1] a une déviation d'échelle de 4% dans la carte de profondeur de la séquence de Fribourg 2, qui peut être causée par un mauvais calibrage, nous avons donc compensé cela à la volée. Cela explique en partie nos bons résultats. La figure 7 montre les résultats du nuage de points obtenus en rétroprojectant la carte de profondeur du capteur en fonction des poses d'images clés calculées dans quatre séquences vidéo. Les résultats expérimentaux montrent que notre méthode reconstruit bien les contours des tableaux et des affiches, ce qui montre que notre méthode a une grande précision de localisation.

Tableau 3 Ensemble de données TUM RGB-D : Comparaison des résultats de l'erreur quadratique moyenne de traduction

Figure 7 Reconstruction de nuages ​​de points denses des séquences TUM RGB-D fr3_office, fr1_room, fr2_desk, fr3_nst en fonction de la pose d'image clé estimée et de la carte de profondeur du capteur.

4.4 Résultats chronométrés

Afin d'évaluer notre système proposé de manière plus complète, nous montrons la consommation de temps de calcul sous différentes résolutions d'image et conditions de capteur dans trois séquences vidéo du tableau 4. Nous montrons le temps écoulé moyen par thread et sa plage de deux écarts-types. Étant donné que ces séquences consistent en une seule boucle, certaines tâches des threads de détection globale BA et de boucle ne doivent être effectuées qu'une seule fois, nous ne montrons donc qu'une seule mesure de temps. Le temps de suivi moyen par image dans chaque séquence est inférieur à l'inverse de la fréquence d'images de la caméra, ce qui signifie que notre système peut fonctionner en temps réel. Étant donné que l'extraction des caractéristiques ORB dans les images binoculaires gauche et droite est parallèle, on peut voir que la vitesse d'extraction de 1000 caractéristiques ORB dans l'image WVGA binoculaire de la séquence V2_02 est la même que celle dans le canal d'image VGA unique de fr3_office Quantitative les fonctionnalités prennent à peu près le même temps.

Tableau 4 Temps de calcul par thread/ms (moyenne ± 2 écarts-types)

Nous montrons le nombre d'images clés dans la fermeture de boucle, qui est utilisé comme référence pour la consommation de temps de détection de fermeture de boucle. Bien que la séquence KITTI 07 contienne plus d'images clés, le graphe de convivialité de la séquence intérieure fr3_office est plus dense, de sorte que la surcharge de la fusion de fermeture de boucle, l'optimisation du graphe de pose et la BA globale sont plus importantes. Plus le graphique de convivisibilité est dense, plus la carte locale contient de hors-cadres et de points, de sorte que la surcharge du suivi de la carte locale et de la BA locale sera plus importante.

5. Conclusion

Nous proposons un système SLAM complet basé sur des capteurs monoculaires, binoculaires ou RGB-D, qui peut réaliser une relocalisation en temps réel, une fermeture de boucle et une réutilisation de carte sur un CPU standard. Notre objectif est de créer des cartes cohérentes à l'échelle mondiale pour une localisation à long terme dans les environnements à grande échelle présentés dans nos expériences. Notre schéma de localisation proposé, y compris la relocalisation, est une méthode de localisation robuste, sans dérive et légère dans des environnements connus. Ce mode peut être adapté pour des applications spécifiques, comme le suivi du point de vue de l'utilisateur en réalité virtuelle où l'environnement est bien cartographié.

Comparé aux meilleurs systèmes SLAM actuels, ORB atteint la plus grande précision dans la plupart des cas. Dans le benchmark d'odométrie visuelle KITTI, ORB-SLAM2 est actuellement la meilleure solution SLAM binoculaire. Surtout, par rapport à la méthode d'odométrie visuelle binoculaire récemment populaire, ORB-SLAM2 permet une localisation sans dérive dans la zone cartographiée.

Étonnamment, nos résultats RVB-D montrent que BA fonctionne mieux que les méthodes directes ou ICP si la localisation de la caméra la plus précise est requise, en plus elle nécessite moins de calculs et peut être effectuée en temps réel sans compter sur l'exécution du GPU.

Nous publions le code source du système, des exemples et des instructions, afin que d'autres chercheurs puissent facilement utiliser le système. À notre connaissance, ORB-SLAM2 est le premier système SLAM visuel open source qui fonctionne avec des entrées monoculaires, binoculaires ou RVB-D. De plus, notre code source inclut un exemple d'application de réalité augmentée utilisant une caméra monoculaire pour démontrer les possibilités de notre solution.

Les futures directions de recherche peuvent inclure : plusieurs caméras sans chevauchement, caméras fisheye, prise en charge de caméras panoramiques, fusion dense à grande échelle, cartographie collaborative et robustesse accrue au flou de mouvement.

Réimprimé dans : https://www.cnblogs.com/MingruiYu/p/12991119.html

Je suppose que tu aimes

Origine blog.csdn.net/weixin_58045467/article/details/130887883
conseillé
Classement