Optimiser le développement du SLAM visuel pour les systèmes embarqués
La localisation et cartographie simultanées (SLAM) permettent à un dispositif — robot, drone ou véhicule autonome — de construire en temps réel une carte de son environnement tout en déterminant sa position dans cette carte. Le SLAM peut être implémenté avec divers algorithmes et capteurs : caméras, LiDAR, sonar, radar et unités de mesure inertielle (IMU).
Les caméras compactes et peu coûteuses ont fait du SLAM visuel monoculaire la solution de choix pour de nombreux robots, des rovers martiens aux machines agricoles, en passant par les drones de livraison et les plateformes autonomes urbaines. Le SLAM visuel excelle dans les environnements sans GPS, comme les entrepôts intérieurs ou les centres-villes denses où les signaux satellites sont bloqués ou dégradés.
Cet article explique le flux de travail fondamental du SLAM visuel, en couvrant les modules et algorithmes clés pour la détection de caractéristiques, l'appariement et la correction d'erreurs. Il aborde également les avantages du déchargement du calcul SLAM vers des unités de traitement de vision dédiées (VPU) et illustre ces atouts avec le SDK CEVA-SLAM.
SLAM direct vs SLAM basé sur les caractéristiques
Tous les systèmes SLAM visuels suivent des points à travers des images successives, triangulant leurs positions 3D tout en estimant la pose de la caméra. Ils minimisent également en continu l'erreur de reprojection — la différence entre les positions projetées et réelles des caractéristiques. La distinction principale réside dans l'utilisation de l'information image.
Le SLAM direct compare des images entières, offrant un détail environnemental riche mais au coût d'une charge de traitement plus élevée. Le SLAM basé sur les caractéristiques, objet de cet article, extrait des caractéristiques d'image distinctes — coins, taches et autres points saillants — et s'appuie uniquement sur celles-ci pour l'estimation de pose. Bien que les méthodes basées sur les caractéristiques rejettent certaines données d'image, elles offrent une solution plus simple, plus rapide et plus économe en énergie, particulièrement adaptée au matériel embarqué.

Figure 1 : SLAM direct vs SLAM basé sur les caractéristiques. (Source : https://vision.in.tum.de/research/vslam/lsdslam)
Le flux de travail du SLAM visuel
Le SLAM basé sur les caractéristiques se déroule en quatre étapes essentielles : 1) extraction de caractéristiques, 2) description de caractéristiques, 3) appariement de caractéristiques, et 4) fermeture de boucle. Ces étapes reposent sur un ensemble de blocs de construction bien établis, adaptables à diverses implémentations SLAM.
Extraction de caractéristiques
L'extraction de caractéristiques réduit une image à un ensemble concis de points saillants — coins, contours, taches et structures complexes comme des portes ou des fenêtres — représentés sous forme de vecteurs compacts. Les algorithmes populaires incluent la différence de gaussiennes (DoG) et le détecteur de coins FAST9, rapide et temps réel.

Figure 2 : Extraction de caractéristiques SLAM. (Source : https://medium.com/towards-artificial-intelligence/oriented-fast-and-rotated-brief-orb-1da5b2840768)
Description de caractéristiques
Une fois une caractéristique localisée, le patch de pixels environnant est converti en descripteur — une représentation compacte comparable à d'autres descripteurs. ORB et FREAK sont des algorithmes de description largement utilisés, alliant distinctivité et efficacité computationnelle.
Appariement de caractéristiques
Les descripteurs d'images successives sont appariés en calculant la distance de Hamming entre vecteurs de bits. Cette métrique s'évalue efficacement en matériel via des opérations XOR et pop-count, permettant un appariement rapide même sur des dispositifs à ressources limitées.
Fermeture de boucle
La fermeture de boucle détecte le retour du système vers un lieu déjà visité. En introduisant une contrainte entre images non adjacentes, elle réduit drastiquement la dérive accumulée. Les techniques de pointe incluent l'ajustement de faisceau (bundle adjustment), le filtrage de Kalman et le filtrage particulaire.
Le SLAM basé sur les caractéristiques est particulièrement adapté aux solutions embarquées, offrant un traitement plus rapide, une empreinte mémoire réduite et une performance robuste face aux variations d'éclairage, flou de mouvement et occultations. Le choix algorithmique dépend du type de carte, de la suite de capteurs, des exigences de précision et d'autres contraintes de l'application.
Défis d'implémentation
L'intensité computationnelle du SLAM visuel peut submerger les CPU conventionnels, augmentant la consommation d'énergie et limitant les cadences d'images. Les VPU dédiés, comme le CEVA-XM6, fournissent l'architecture spécialisée nécessaire pour accélérer les tâches de vision, avec une faible consommation, des ALU puissants, un accès mémoire à haut débit et des instructions dédiées au traitement d'image.

Figure 3 : Unité de traitement de vision CEVA XM6. (Source : CEVA)
Même avec un VPU, les développeurs font face à des défis : écrire du code efficace pour l'appariement de caractéristiques, l'ajustement de faisceau et autres opérations d'algèbre linéaire intensives ; gérer la disposition mémoire pour éviter les accès non contigus coûteux ; et intégrer le VPU au CPU hôte. Des bibliothèques de haut niveau et des routines optimisées sont essentielles pour exploiter pleinement le potentiel du VPU.
Accélérer le développement avec le SDK CEVA-SLAM
Le SDK CEVA-SLAM est une chaîne d'outils complète qui associe le matériel CEVA-XM6 à un ensemble riche de bibliothèques de vision. Il fournit des routines pré-optimisées pour la détection de caractéristiques, l'extraction de descripteurs, l'appariement, l'ajustement de faisceau et les opérations d'algèbre linéaire. Une instruction de chargement parallèle unique gère les accès mémoire non consécutifs, tandis qu'une instruction dédiée à la distance de Hamming accélère l'appariement.

Figure 4 : Le SDK CEVA SLAM. (Source : CEVA)
Dans une implémentation de référence, le SDK a atteint 60 ips de suivi SLAM ne consommant que 86 mW — un niveau de performance difficile à atteindre sur un CPU généraliste.
Conclusion
Le SLAM visuel devient rapidement une technologie clé pour les robots autonomes, drones et véhicules intelligents. À mesure que les déploiements embarqués croissent, l'efficacité du code et la consommation d'énergie deviennent des facteurs décisifs. Si les VPU déchargent les lourdes charges de travail de vision, développer un SLAM haute performance et basse consommation reste non trivial. En s'appuyant sur des boîtes à outils dédiées comme le SDK CEVA-SLAM, les développeurs peuvent accélérer la mise sur le marché et livrer des solutions SLAM fiables et économes en énergie.
Embarqué
- Comment l'extrusion pilote la précision en impression 3D
- Comment l'IA transforme les chaînes d'approvisionnement mondiales
- Pigments phtalocyanine : applications, industries et pourquoi la qualité compte
- Applications des colorants basiques à travers les industries
- Pigment bleu : applications clés, avantages et pourquoi les leaders de l'industrie font confiance aux fabricants de confiance
- De l'ivoire à la bakélite : retraçant l'évolution des plastiques modernes
- Choisir le Bon Contrôleur : PLC, PAC, DCS ou IPC Expliqués
- Vibrateurs industriels : booster l'efficacité dans tous les secteurs
- Sécuriser l'Industrie 4.0 : relever les défis uniques de cybersécurité des fabricants