Solutions de vision embarquée avec caméra sur carte USB-3.0

Solution de vision embarquée avec caméra sur carte USB-3.0

En plus de la vision 3D et de la vision robotique, la vision embarquée fait partie des thèmes tendance dans le domaine du traitement d’images. En effet, les systèmes de transport autonomes et les robots dans l’environnement Industrie 4.0, les véhicules automoteurs ou les drones autosuffisants ne sont pas envisageables sans un traitement des images en temps réel. Les systèmes classiques de traitement des images sont ici exclus pour des raisons de place et de coûts, les caméras dites intelligentes (Smart Cameras) sont pour la plupart fortement limitées dans leurs fonctionnalités. Seule la combinaison d’une caméra miniaturisée, d’une carte processeur compacte et d’un logiciel programmable souple permet le développement individuel d’applications de traitement des images et leur « embarquement » direct dans les machines ou les véhicules.

Utilisations

Solutions de vision embarquée avec caméra sur carte USB-3.0
Solutions de vision embarquée avec caméra sur carte USB-3.0

À titre une équipe de l’université technologique de Braunschweig a mis au point un multicoptère pour la cartographie en temps réel de zones sinistrées. Les cartes sont produites au moyen d’un système de vision embarquée intégré, composé d’un ordinateur monocarte ARM et d’une caméra sur platine USB 3.0 d’IDS.

Quelle peut être l’utilité d’un drone en cas de catastrophe ? Un drone peut, par exemple, prélever des échantillons d’eau, jeter des bouées de sauvetage ou fournir des données géographiques et des images de zones dans lesquelles il est impossible ou difficile à l’homme de se rendre. Dans le cadre de mandat, l’équipe AKAMAV, un groupe de travail réunissant des étudiants et des travailleurs de l’université technologique de Braunschweig et bénéficiant de l’appui de l’Institut für Flugführung (IFF) de l’université technologique de Braunschweig, a bâti un multicoptère spécialement aménagé.

Ce micro-drone survole les zones sinistrées — par exemple des régions frappées par un séisme ou des villes inondées, mais aussi des usines en flammes — et fournit des cartes en temps réel que les sauveteurs peuvent immédiatement utiliser dans leur planification des missions. Le multicoptère fonctionne de façon autonome. Sa zone opérationnelle est définie au moyen d’une image satellite géoréférencée existante. En fonction de la taille de la zone et de la résolution au sol souhaitée, une liste de points de cheminement est automatiquement créée. Celle-ci est ensuite survolée via GNSS (Global Navigation Satellite System) ou GPS. Le décollage et l’atterrissage du multicoptère sont eux aussi automatisés.

Les exigences de temps réel excluent les approches courantes de télédétection, par exemple la photogrammétrie. Celle-ci ne permet d’obtenir des résultats que lorsque toutes les images ont été prises et assemblées en fonction d’algorithmes de calcul très intensifs. Les cartes produites sont alors très précises, mais l’exactitude pour un premier aperçu en cas de catastrophe est secondaire et retarde inutilement les opérations de secours. La solution conçue par AKAMAV repose sur le principe de mosaïquage ou d’assemblage des images, un procédé établi, afin de créer très rapidement une image globale au moyen des différentes images. Pour pouvoir appliquer ce principe au multicoptère, les images fournies par la caméra doivent être traitées rapidement et à proximité d’un ordinateur.

Le système de vision « classique » comprend une caméra industrielle, raccordée via USB, GigE ou Firewire à un ordinateur de bureau ou un Box PC ; le traitement des images est effectué sur l’ordinateur au moyen d’un logiciel de traitement des images approprié et, le cas échéant, par la commande d’autres composants dans l’application.

Une telle configuration prend de l’espace, est comparativement coûteuse et offre de nombreuses fonctionnalités qui, en fin de compte, ne sont pas nécessaires. Les systèmes de vision embarquée fonctionnant avec des ordinateurs monocarte et en connexion avec des systèmes d’exploitation Open Source peuvent être très compacts, mais sont quand même programmables de façon flexible et pour la plupart peu coûteux à réaliser. Les caméras sur carte avec interface USB et les ordinateurs monocarte ARM forment par conséquent un tandem parfait. Ces derniers offrent une puissance de calcul suffisante, ont une faible consommation énergétique, existent dans différents formats pour la plupart très petits et sont offerts à partir de 100 euros. On peut penser par exemple au fameux Raspberry Pi. L’AKAMAV s’appuie sur la carte ODROID-XU4, très performante malgré ses petites dimensions (83 x 60 mm seulement), avec un processeur ARM OctaCore et le système d’exploitation Linux. L’ordinateur monocarte est équipé de toutes les interfaces importantes (notamment GigE, USB 2.0 et USB 3.0) et est relié à l’autopilote du système de vol par interface USB. Cette liaison de données permet à l’ordinateur de recevoir non seuelement les informations d’état du système de vol, mais aussi les informations sur la position actuelle en degrés de latitude et de longitude, ainsi que l’altitude barométrique et l’altitude via l’ellipsoïde de référence.

Caméra

L’acquisition des images est effectuée par une caméra sur platine de la série USB 3 uEye LE d’IDS. Dans la variante sur carte, cette caméra industrielle avec connexion USB 3.0 ne mesure que 36 x 36 mm, mais elle offre toutefois toutes les fonctions essentielles. Elle est équipée de capteurs CMOS de la plus récente génération de onsemi et d’e2v, pour une résolution de 18 mégapixels. Un connecteur 8 broches avec alimentation 5 V, déclencheur et flash, 2 GPIO et un bus I2C pour la commande de la périphérie offrent une connectivité quasiment illimitée et une grande flexibilité.

L’AKAMAV a monté sur le multicoptère le modèle UI-3251LE-C-HQ avec capteur CMOS 2 mégapixels et monture d’objectif S, même si la résolution de la caméra est secondaire dans ce cas, comme l’expliquer Alexander Kern, membre étudiant de l’AKAMAV. « Ce sont les données images originales qui sont traitées, parfois même réduites, afin de garantir la performance optimale de l’algorithme global. Dès que la caméra saisit une image et que celle-ci est envoyée à l’ordinateur monocarte, il est recherché sur cette image des points marquants, appelés features, qui sont ensuite extraits. Sur l’image suivante, on recherche aussi ces features, et l’image est appariée à l’image précédente sur la base de ces features. Les paires de points correspondants permettent ainsi de déterminer comment les images ont été acquises l’une par rapport à l’autre et ainsi, chaque nouvelle image peut être rapidement ajoutée à une carte globale.

Pour une zone d’un hectare, le multicoptère a besoin d’environ 4 à 5 minutes si le décollage et l’atterrissage ont lieu à la périphérie de la zone à photographier. Pour une hauteur de vol d’environ 40 m et une résolution d’image mise à l’échelle de 1200 x 800 pixels, la résolution au sol est en moyenne d’environ 7 cm/px. Le système de vision embarquée étant adapté à la vitesse de vol du multicoptère, d’un maximum de 5 m/s, et une vitesse d’acquisition d’images comparativement faible de 1 à 2 images/seconde suffit donc et une mise en mémoire tampon des données images n’est pas non plus nécessaire.

S’il existe une liaison radio entre le système de vol et la station de contrôle, le processus d’assemblage des images peut être effectué en direct au sol. Une fois terminée la cartographie, la carte complète peut être récupérée à distance, à condition que le multicoptère se trouve à portée radio, ou être copié après son atterrissage sur un support de données externe et faire l’objet d’un traitement plus approfondi.

Logiciel

Le traitement des images a été réalisé par AKAMAV avec la bibliothèque Open Source OpenCV et C++. « Étant donné que la mission comporte une exigence de temps réel, le logiciel doit être aussi performant que possible, c’est pourquoi seul un langage évolué est envisageable. OpenCV s’est établi au cours des dernières années comme norme pour le traitement des données dans le domaine de la recherche et convainc par un large choix de fonctions existantes pour l’analyse des images ou pour la vision par ordinateur », indique Mario Gäbel, membre étudiant du groupe de travail AKAMAV.

L’intégration de la caméra se fait via l’API uEye. L’API joue un rôle particulièrement important dans toutes les applications de vision, puisqu’elle détermine d’une part la facilité d’utilisation des fonctionnalités de la caméra et, d’autre part, à quel point le potentiel de la caméra pourra être exploité. Avec sa « norme », IDS offre ici un avantage décisif dont les développeurs des applications de vision embarquée profiteront énormément : Quelle que soit la caméra du fabricant utilisée, la technologie d’interface (USB 2.0, USB 3.0 ou GigE) nécessaire et la plateforme (de bureau ou intégré) utilisée — l’API uEye est toujours la même. Cela facilite non seulement l’interchangeabilité de la caméra ou de la plateforme, mais cela permet aussi aux développeurs de mettre au point des projets sur un ordinateur de bureau et de l’utiliser par la suite 1:1, sans adaptation complexe du code, sur un ordinateur intégré. Tant l’intégration de la caméra que l’adaptation à un logiciel de traitement d’images tiers, par exemple Halcon, sont absolument identiques sur la plateforme embarquée et dans l’environnement de bureau.

Étant donné que la mission comporte une exigence de temps réel, le logiciel doit être aussi performant que possible, c’est pourquoi seul un langage évolué est envisageable.

— Mario Gäbel, membre étudiant du groupe de travail AKAMAV —

Des outils spéciaux, comme le uEye Cockpit, qui fait aussi partie du kit de développement logiciel propre d’IDS, réduisent en outre la complexité pour le programmeur. Selon la devise « configurer plutôt que programmer », la caméra peut être préconfigurée en quelques clics de souris sur l’ordinateur de bureau. La configuration peut être enregistrée et être par la suite tout simplement chargée dans l’application de vision embarquée.

En particulier dans l’environnement embarqué, la programmation est généralement très complexe en raison de la compilation croisée. Du fait de l’absence de connexions clavier ou écran, il est souvent impossible de régler la caméra raccordée directement sur l’appareil. C’est exactement dans ce type de situation qu’une préconfiguration des paramètres de la caméra dans uEye Cockpit est précieuse.

USB 3 uEye LE – la caméra de projet économique et de faible encombrement