R&D

Le pouvoir des données synthétiques

Rédaction

Shaghayegh (Sherry) Taheri ,

Vahe Vardanyan, PhD.

Date

20 septembre 2023

Les expert·es en IA Shaghayegh (Sherry) Taheri et Vahe Vardanyan mettent en lumière la recherche multidisciplinaire centrée sur les données synthétiques au CDRIN.

En bref: À travers le projet Modèle d’IA de segmentation d’images sous stéroïdes grâce à des données synthétiques générées dans Unity la chercheuse en IA Shaghayegh (Sherry) Taheri et le Directeur scientifique IA Vahe Vardanyan démystifient le concept d’IA centrée sur les données de plus en plus adopté par la communauté de l’IA. Ils mettent également en avant une approche multidisciplinaire et les défis et conclusions de la recherche collaborative menée par le CDRIN.

Retrouvez la version en anglais de cet article sur Medium.

Les modèles d’IA, en particulier ceux de vision par ordinateur, sont très gourmands en données. Il existe de nombreuses images de chats et de chiens sur Internet, et n’importe qui peut créer un classificateur de chats. Cependant, certains domaines spécifiques ne disposent pas de jeux de données publics. Pour certains ensembles de données, il y a aussi des problèmes de licences, par exemple, vous ne pouvez les utiliser que pour la recherche. Pour les images médicales, il existe également des problèmes de confidentialité. Sans parler du fait que, dans certains domaines tels que l’agriculture et la surveillance environnementale, la collecte de données réelles peut être très difficile ou coûteuse. Au CDRIN, nous avons commencé à utiliser des données synthétiques pour entraîner des modèles d’IA depuis 2020.

Qu’est-ce que les données synthétiques?

Les données synthétiques sont des informations artificiellement créées plutôt que générées par des événements du monde réel. Si nous voulons entraîner des modèles d’IA de vision par ordinateur, alors nos données synthétiques seront des images. Ces images peuvent être générées de nombreuses manières, par exemple, nous pouvons les rendre dans des logiciels de rendu tels qu’un moteur de jeu. Les moteurs de jeu comme Unity et Unreal ont été initialement conçus pour développer des jeux vidéo, mais ils ont de nombreuses autres utilisations dans différents domaines tels que le cinéma et l’animation, les jumeaux numériques (digital twins), la RV et la RA, et bien d’autres encore.

Avec les dernières avancées en technologie GPU, les moteurs de jeu ont parcouru un long chemin dans le rendu photoréaliste et les simulations de physique impressionnantes. Une fois que l’environnement virtuel est créé dans le moteur de jeu, vous pouvez rapidement générer un approvisionnement presque infini d’images libres de droits, avec des annotations au niveau des pixels sans faille. De plus, vous pouvez simuler une large gamme de scénarios qui pourraient être difficiles, voire impossibles, à capturer dans la vie réelle. De plus, ils offrent un contrôle total sur différentes propriétés des données simulées. Cela fait des données synthétiques une alternative parfaite pour entraîner un modèle d’IA.

Quel est notre objectif avec les données synthétiques?

Notre objectif ici est d’explorer l’utilisation de données synthétiques dans l’entraînement de grands réseaux neuronaux. Nous n’avons qu’une quantité limitée de données réelles annotées et même si elles sont annotées par des experts humains, elles contiennent encore des niveaux d’erreur. La génération de données simulées parfaitement annotées élimine ces obstacles et nous permet d’entraîner un modèle d’apprentissage en profondeur même lorsque nous n’avons pas suffisamment de données réelles.

Idéalement, pour entraîner un modèle d’apprentissage en profondeur qui fonctionne dans des scénarios du monde réel en utilisant les données synthétiques, les données devraient imiter au plus près possible la distribution des données du monde réel (c’est-à-dire que leurs propriétés statistiques telles que la variance, la moyenne, etc. devraient être similaires). De plus, elles devraient présenter la même variabilité et la même complexité que les données du monde réel et couvrir une gamme diversifiée de scénarios. (Par exemple, les différentes conditions météorologiques dans le projet de surveillance des glaces expliqué dans la section suivante).

Quel est l’impact réel?

Les données nécessaires pour faire fonctionner les modèles d’IA constituent une contrainte majeure pour les petites entreprises, car la collecte et l’annotation de données peuvent être très coûteuses, voire impossibles dans certains cas. Parfois, les données sont disponibles, mais loin d’être suffisantes pour entraîner des modèles d’IA robustes et de haute qualité. Les méthodes traditionnelles d’augmentation de données ne peuvent faire que peu de choses. Dans de tels cas, nous pouvons utiliser des données synthétiques pour résoudre la situation. En utilisant des moteurs de jeu, nous pouvons augmenter la taille de l’ensemble de données de plus de 100 fois et augmenter considérablement la précision [1]. Par conséquent, nous pouvons conclure que les données synthétiques peuvent rendre possible la démocratisation de l’utilisation de l’IA en réduisant le coût de la collecte et de la gestion des données.

Étude de Cas : Surveillance des glaces fluviales

Dans cette section, nous aimerions discuter d’une étude de cas d’un projet de recherche sur lequel nous avons travaillé au CDRIN. Spoiler alert ! Il s’agit de glace, nous sommes basés au Canada après tout 🙂

Les prévisions météorologiques se sont considérablement améliorées grâce aux efforts déployés pour mettre en place de meilleurs systèmes de prévision, mais les prévisions sur la glace ne sont toujours pas fiables en raison d’un manque de compréhension des processus sous-jacents et de l’absence de données adéquates. Pour améliorer les prévisions, nous avons besoin d’un système de surveillance fiable. Les techniques d’apprentissage en profondeur peuvent être utilisées pour détecter les mouvements et la fragmentation de la glace, ce qui contribue à la prévision des conditions de glace. Le problème peut ainsi être simplifié en une tâche de « Segmentation Sémantique », où différents types de glace (tels que la glace fixe terrestre, la glace à la dérive, la neige fondante et l’eau) sont segmentés par rapport au reste de l’image. Comme vous l’aurez deviné, pour entraîner ces modèles, nous avons besoin d’un grand ensemble de données de haute qualité.

Les techniques courantes de collecte de données utilisées pour comprendre la topographie de la glace de mer, telles que les levés de surface, la stéréophotogrammétrie, le lidar et les images satellites, sont coûteuses, prennent beaucoup de temps et offrent une faible précision. Par conséquent, l’ensemble de données réel existant est petit et non annoté. Nous avons décidé d’améliorer cette situation en augmentant l’ensemble de données réel avec des données synthétiques. Pour ce faire, nous avons créé une version virtuelle du fleuve Saint-Laurent dans Unity avec de la glace et de l’eau simulées.

Collaboration multidisciplinaire: unir l’expertise

L’un des défis de ce projet est que, pour réussir, nous devions réunir l’expertise en océanographie physique, développement de jeux, art 3D et IA. Chacun avait un rôle important à jouer lors des différentes étapes de ce projet:

1. Créer un environnement dans Unity avec une rivière et de la glace flottante, en mettant l’accent sur le rendu photoréaliste. Cela inclut:

  • Simuler des montagnes réalistes, de l’eau, des arbres, des rochers, de la neige, un ciel et des nuages, etc.
  • Simuler des fluides
  • Créer un générateur de glace paramétrique

2. Ajouter un shader de segmentation et collecter des données:

  • Créer un shader de post-traitement en segmentant différents types de glace, de la rivière ou de la mer, du ciel et de la terre (c’est-à-dire six classes).
  • Créer des masques de segmentation: créer un module pour sauvegarder la trame actuelle et son masque de segmentation correspondant.
  • Ajouter un module pour exécuter automatiquement et prendre des photos de la scène avec des paramètres donnés.
  • Collecter des ensembles de données de différents scénarios à utiliser pour entraîner/tester les algorithmes: pour assurer la robustesse du modèle d’IA, il doit être formé sur un ensemble de données contenant différents scénarios.

3. Entraîner et valider le modèle d’IA pour capturer les mouvements et la fragmentation des morceaux de glace :

  • Entraîner et valider le modèle avec des images réelles (nous utilisons l’IOU comme métrique de performance).
  • Améliorer le modèle avec les images simulées par le moteur de jeu.

Combiner les données réelles avec les données synthétiques

Entraîner le modèle d’IA uniquement sur les données synthétiques ne fonctionne pas vraiment, car il y a toujours un écart de domaine entre les données réelles et les données simulées. Les résultats suivants sont issus de l’expérience dans laquelle nous avons mélangé des images réelles et simulées dans un rapport de 0,35 : 0,65 pour affiner le modèle DeepLabV3 pré-entraîné.

L’IOU moyen pour toutes les classes était de 83 %.

Et la suite?

Les résultats ne sont pas parfaits, n’est-ce pas? Il y a encore beaucoup de travail à faire pour améliorer l’IOU moyen. Voici quelques idées:

Réduire l’écart entre les domaines synthétiques et réels

  • Améliorer la qualité des simulations
  • Réduire l’écart de domaine en utilisant des techniques de simulation vers la réalité. Par exemple, utiliser des GANs ou d’autres techniques d’IA sur les données synthétiques pour améliorer l’apparence et le réalisme global des images.

Par exemple, les chercheurs chez Intel [2] ont développé une méthode pour améliorer le réalisme des scènes de jeu grâce à un réseau de convolution qui utilise les représentations intermédiaires (c’est-à-dire les G-buffers) produites par le moteur de jeu, telles que les normales de surface, la distance à la caméra, les informations sur les matériaux, etc.

Un autre exemple sont les chercheurs chez Ford [3] qui utilisent une approche basée sur les GANs pour améliorer le réalisme des images synthétiques générées par le moteur Unreal.

Améliorer les données réelles: toujours très critiques

Ajouter des données simulées aux données réelles existantes peut considérablement améliorer les performances du modèle, mais nous ne pouvons pas nous fier uniquement aux données synthétiques pour l’entraînement. (Actuellement, nous n’avons qu’environ 50 échantillons, ce qui n’est probablement pas suffisant).
Les annotations actuelles ne sont pas assez précises. Les erreurs dans l’annotation des images réelles perturbent le modèle et entraînent une baisse significative des performances.

Quel est le meilleur ratio?

Nous n’avons pas parlé du ratio optimal synthétique/réel. Pour le projet qui fait l’objet de cet article, nous utilisons 95 % de données synthétiques, mais nous ne sommes pas sûr.es que ce soit le ratio optimal. C’est une question intéressante que nous espérons pouvoir répondre dans de futures expériences.

Qu’est-ce que l’IA centrée sur les données?

Ce que nous vous présentons ici est un exemple classique d’IA centrée sur les données. L’IA centrée sur les données est un concept en croissance dans la communauté de l’IA, qui met l’accent sur la qualité et la quantité des données utilisées pour entraîner les modèles d’IA, plutôt que de se concentrer uniquement sur l’amélioration des architectures et des algorithmes des modèles.

Dans les articles sur l’IA publiés par les chercheur.ses universitaires, l’accent est mis sur l’amélioration de l’architecture du modèle, car c’est ce qui rend l’article publiable. Cependant, très souvent, dans des scénarios du monde réel, nous pouvons améliorer les performances/la précision du modèle simplement en ajoutant plus de données et/ou de données de meilleure qualité, sans changer une seule ligne de code. L’utilisation de données synthétiques est l’une des techniques les plus efficaces centrées sur les données pour l’entraînement de modèles d’IA.

Au CDRIN, nous exploitons notre expérience décennale dans le développement de jeux et les graphiques informatiques pour synthétiser des images pour divers algorithmes et modèles de vision par ordinateur.

Si vous avez des idées de projet, nous serons heureux de collaborer 😉

Références

[1] Unity Perception: Generate Synthetic Data for Computer Vision

[2] Enhancing Photorealism Enhancement

[3] The Driving Force: How Ford Uses AI to Create Diverse Driving Data

Un projet à faire
émerger?

Contactez-nous