Neural network validation

Parmi les défis actuels de l’industrie automobile, arriver à démontrer la sûreté de fonctionnement des systèmes d’IA embarqués dans les voitures autonomes est primordial.

Saimple : Assurer la sûreté dans la classification de panneaux de signalisation

Le marché des véhicules autonomes est estimé à plus de 500 milliards d’euros à horizon 2035. Cependant, le développement de ce marché est fortement lié au dépassement de contraintes tant technologiques et matérielles qu’éthiques et sociétales. Ainsi, de nombreuses questions autour de la sécurité se posent.

Une étude réalisée en 2019 sur la perception de 51 pays concernant les voitures autonomes a montré qu'environ 44% des personnes interrogées pensent que les véhicules à conduite autonome sont sûrs. Pour 39%, ils seront suffisamment sûrs pour être utilisés dans moins de 5 ans {1}.

Parmi les défis, il faut arriver à démontrer la sûreté de fonctionnement des systèmes d’IA embarqués. Mais comment garantir la fiabilité des modèles ? Quels critères ont permis à l’IA de prendre sa décision ?

Cet article a pour but de répondre à ces problématiques en présentant, à travers des cas concrets, les fonctionnalités de l’outil Saimple pour assurer la confiance des modèles. 

1 Détection de panneaux

1.1 Objectif

Un véhicule autonome est un véhicule conçu pour rouler sans l’intervention d’un conducteur. Il existe cinq niveaux d’autonomie, allant de l’aide à la conduite à une autonomie complète {2}. Aujourd’hui, la plupart des véhicules récents ont une certaine automatisation de la conduite comme par exemple pour l’aide au stationnement et au freinage d’urgence. Ces dispositifs utilisent des capteurs contenus dans le véhicule récoltant des données, en grande partie, sous forme d’images.

Mais avant de produire un véhicule entièrement autonome, il faut avoir un dispositif de confiance, robuste et répondant aux normes de sécurité en vigueur. Comme annoncé, plusieurs défis quant à la sûreté de fonctionnement de tels véhicules restent à relever.

Par exemple, comment garantir que la performance du système de conduite va se maintenir en cas d’une forte chute de neige, ce qui pourrait perturber les capteurs du véhicule ? Le nombre de cas à considérer est presque infini et il est impossible de tous les tester exhaustivement. Il est donc nécessaire de concevoir des systèmes d’IA qui puissent être robustes par construction.

Afin d’aider cette démarche, Numalis a développé Saimple, un outil qui permet de comprendre pourquoi un modèle (ici un réseau de neurones) a pris chacune de ses décisions. Il permet également de considérer différents types de bruits dans les images pour mesurer la robustesse du modèle aux perturbations auxquelles il peut être confronté. Ainsi, Saimple permettra d’aider à valider le système et d’accroître la confiance que l’utilisateur pourra avoir en celui-ci.

1.2 Description du jeu de données

Le cas d’étude traite de la reconnaissance des panneaux de signalisation qui fait partie du cadre classique du développement de véhicules sans chauffeur.

Le jeu de données contient plus de 50.000 images. Il est composé de 43 classes distinctes représentant différents types de panneaux de signalisation allemands :

  • L’ensemble d’apprentissage contient 34 799 images ;
  • L’ensemble de validation contient 4 410 images ;
  • L’ensemble de test contient 12 630 images.

Ces images de panneaux sont très variées. En effet, dans une même classe, il est possible d’avoir la même image mais avec des variations de paramètres : luminosité, contraste, colorisation et résolution. De plus, elles sont de tailles diverses, allant de 30x30 à 140x140 pixels. Pour la plupart, les tailles d’images de 30x30, dites de petite taille, s’expliquent par le fait qu’elles sont destinées à être analysées par des réseaux embarqués dans des véhicules.

En dépit de la résolution des caméras actuelles, un tel choix de résolution s’explique par le fait que les panneaux doivent être détectés le plus loin possible par le véhicule pour que sa conduite s’y adapte dès que possible.

Ainsi, il est nécessaire de pouvoir classifier des images de panneaux de signalisation, même de petites résolutions, pour pouvoir mieux anticiper la décision du véhicule. Par exemple, dans le cas d’un panneau de signalisation représentant un panneau “stop”, le véhicule doit pouvoir s’arrêter à la ligne et donc commencer son freinage bien avant pour ne pas freiner brutalement juste devant.

Le jeu de données GTRSB utilisé est référencé ci-dessous : https://benchmark.ini.rub.de/?section=gtsrb&subsection=datas

1.2.1 Visualisation du jeu de données

Voici quatre images de la classe 0

 

Voici quatre images de la classe 21

1.2.2 Proportion des classes

Comme mentionné précédemment le jeu de données GTSRB est très riche, il contient environ 50 000 images et plus de 40 classes. Néanmoins, le jeu de données n’est pas parfaitement équilibré. Comme certains panneaux de signalisation sont plus rares que d’autres, il est normal d’avoir des classes n’ayant pas le même nombre d’images. Or, un réseau entraîné sur un jeu de données déséquilibré peut avoir des faiblesses pour reconnaître certaines classes trop peu représentées par rapport aux autres classes.

1.2.3 Data augmentation

La data augmentation peut permettre de rééquilibrer les classes. Il s’agit d’une technique d’amélioration du jeu de données. Elle consiste à utiliser un échantillon d’images des classes sous représentées pour générer de nouvelles images et ainsi équilibrer le jeu de données.

Après avoir réalisé la data augmentation et ré-entraîné le réseau, on peut alors réexaminer ce dernier avec Saimple afin d’observer si cette dernière a été efficace, de montrer l’impact de la data augmentation sur le modèle et de déterminer si elle a permis de rendre le réseau plus robuste. Pour effectuer une data augmentation, il est possible d’utiliser de nombreuses méthodes de transformation des entrées comme :

  • Redimensionner l’image : agrandir ou rétrécir l’image ;
  • Remplir des pixels (c’est-à-dire compléter les espaces manquants dans l’image redimensionnée) ;
  • Changer la perspective de l’image.

Le graphique, ci-dessous, représente la répartition des classes après data augmentation. La couleur orange correspond à l’ajout d’images pour atteindre 500 images par classes.

Pour notre exemple, nous avons choisi d’équilibrer le jeu de données à 500 images par classes en modifiant le zoom, la luminosité et le contraste de certaines images.

Certaines transformations géométriques, comme par exemple la rotation, ne sont pas incluses pour ce cas d’usage.

En effet, il faut que le modèle ne prenne pas en compte des panneaux qui pourraient se refléter soit dans une vitre quelconque (la réflexion) ou soit dans une flaque d’eau (panneaux à l’envers). D’où l’intérêt d’avoir un autre modèle pour s’assurer que les panneaux détectés ne soient pas dans ce type de cas.

Il faut noter que dans ce cas d’étude, la transformation par perspective n’est volontairement pas prise en compte, elle sera utilisée par la suite pour tester le réseau et vérifier ses méthodes de classification c’est-à-dire sa capacité à généraliser.

1.3 Explication du modèle

Pour ce cas d’étude, un réseau de neurones convolutionnel est utilisé. Il s’agit du type de modèle le plus adapté à la classification d’images. Le réseau traite une image en entrée et attribue des scores (probabilités) de classification à chaque classe. Le score le plus élevé correspond à la classe reconnue par le modèle.

1.4 Résultat du modèle

L’image choisie est ‘standard’ pour le réseau, elle ressemble aux images du jeu de données d’apprentissage dont le score d’apprentissage est de 96 %. En effet, l’image est un gros plan, centrée.

Maintenant que notre modèle est créé et fonctionnel, nous allons pouvoir le challenger.

Pour cela, nous allons modifier le jeu de données de test et créer de nouvelles images, plus complexes à classifier, que le modèle n’a jamais vu.

1.5 Challenger le réseau

La transformation de perspective est une méthode qui consiste à modifier les propriétés d’une image de sorte à ce qu’elle semble être prise d’un autre point de vue. La même image peut donc aboutir à de nombreuses variations, ce qui est très intéressant pour mettre à l’épreuve notre réseau ou enrichir le jeu de données.