Détection des défauts de la chaussée au moyen de l’apprentissage actif profond
The BaaL team The BaaL team
4 mai 7 min

Détection des défauts de la chaussée au moyen de l’apprentissage actif profond

Les équipes d’Element AI utilisent notre bibliothèque sur l’apprentissage actif BaaL pour passer rapidement de l’étiquetage aux modèles de production. Pour avoir un bon aperçu de l’apprentissage actif, nous vous suggérons de lire notre blogue à ce sujet. Récemment, la capacité à détecter les défauts de la chaussée a été ciblée comme un domaine intéressant pour l’apprentissage actif. L’objectif était de déterminer automatiquement si un tronçon de chaussée avait besoin d’un resurfaçage. Plus précisément, nous avions besoin d’une évaluation approximative de la chaussée endommagée. C’est pourquoi nous avons traité ce problème comme un problème de segmentation sémantique.

Définition des données

Nous avons trouvé un ensemble de données public, mais, malheureusement, les étiquettes fournies étaient conçues pour des rectangles englobants seulement. Pour générer les étiquettes de polygones nécessaires pour la segmentation sémantique, nous avons fait appel à l’équipe d’étiquetage des données d’Element AI qui nous a aidés à définir la tâche.

Nous avons établi trois types de défauts et une autre caractéristique à détecter :

  1. Fissures
  2. Rapiéçages
  3. Puits d'accès
cracks patches manholes

Définition du modèle d’apprentissage actif

Pour exploiter l’apprentissage actif, nous avons utilisé MC-Dropout (Gal et coll.) et BALD (Houlsby et coll.) afin d’estimer l’incertitude de chaque échantillon non étiqueté.

Notre modèle est un réseau de neurones U-Net (Ronneberger et coll.), auquel nous avons ajouté une couche Dropout avant la dernière convolution. La couche Dropout nous permet d’utiliser MC-Dropout (plus de détails à la section suivante). Nous avons entraîné notre réseau au moyen de l’entropie croisée pondérée. Les poids sont automatiquement détectés en fonction de la proportion de pixels par classe à chaque étape de l’apprentissage actif.

Sans apprentissage actif (méthode traditionnelle)

Le processus linéaire pendant lequel l’étiquetage est réalisé a lieu avant l’entraînement du modèle.

sans apprentissage actif



Avec apprentissage actif (méthode utilisant l’IA)

Le modèle d’IA est toujours dans la boucle et apprend tout au long du processus d’étiquetage.

apprentissage actif



MC-Dropout et BALD

Monte Carlo Dropout – alias MC-Dropout – est une technique proposée par Gal et coll. pour estimer la distribution postérieure du modèle ayant recours à Dropout. On peut constater que Dropout agit pratiquement comme un ensemble bayésien. En faisant une estimation Monte Carlo de cette distribution antérieure, nous obtenons une distribution de prédictions qui peut avoir une variance élevée si les paramètres du modèle sont incertains. Cette technique ne peut qu’estimer l’incertitude épistémique.

BALD (Bayesian Active Learning by Disagreement) est une méthode heuristique qui peut être utilisée avec MC-Dropout pour quantifier l’incertitude d’une distribution. Une propriété intéressante de BALD est qu’il ne fait pas d’hypothèse gaussienne sur la distribution comme la variance.

Hyperparamètres

Il faut se rappeler que, lorsqu’on utilise l’apprentissage actif dans un projet du monde réel, on doit recalculer l’incertitude aussi vite que possible. Pour ce faire, il faut limiter le nombre d’estimations Monte Carlo, car elles ralentissent le processus. Dans notre cas, nous avons limité le nombre d’échantillons MC à 20. Nos expériences ont montré que cela créait un bon compromis entre la vitesse et la qualité des incertitudes qui étaient calculées au moyen de notre méthode.

Étiquetage avec apprentissage actif

Les membres de l’équipe d’étiquetage d’Element AI collaborent activement avec l’équipe d’apprentissage actif.

Ils travaillent en étroite collaboration avec l’expert en science des données responsable du projet afin que les données puissent être facilement intégrées au processus d’apprentissage automatique. Nous pensons que le dialogue avec des experts en apprentissage machine peut aider les étiqueteurs à produire des étiquettes performantes et les experts à mieux comprendre les données.

Problème de démarrage à froid

L’apprentissage actif souffre du problème de démarrage à froid, ce qui signifie qu’il ne peut être utilisé avant d’étiqueter de nombreux échantillons. Bien que certaines approches telles que les indicateurs de base (Sener et Savarese) et l’apprentissage à partir de peu d’exemples (Snell et coll.) aient été proposées, nous ne les avons pas encore expérimentées. Par conséquent, nous étiquetons au hasard une petite quantité de données pour créer un ensemble de test et un ensemble de données d’apprentissage initial. Dans nos futurs travaux, nous visons à intégrer des indicateurs de base comme première étape de notre processus d’apprentissage actif.

Quand arrêter

Nous avons surveillé plusieurs paramètres pendant l’étiquetage, notamment les suivants :

  • Précision
  • Rappel
  • Perte de validation

Nous avons expliqué les paramètres à l’équipe d’étiquetage et lui avons montré à quoi ressemblait un processus convergent.

De cette façon, l’équipe d’étiquetage peut être autonome et communiquer avec l’expert en science des données responsable du projet lorsque le processus converge ou lorsque le budget d’étiquetage est atteint.

Résultats

Après quelques jours d’étiquetage, nous avons décidé d’arrêter, car le modèle convergeait. Voici nos conclusions.

Prédiction sans post-traitement. Rouge : Fissures; Bleu-vert : Puits d’accès; Vert : Rapiécages (nous voyons que le modèle est induit en erreur par l'essuie-glace).

Légende

À gauche : La précision et le rappel se sont améliorés pour les fissures, les rapiéçages et les couvercles de puits d’accès à mesure que le nombre d’échantillons étiquetés augmentait. À droite : Le modèle a priorisé l’étiquetage des échantillons qui maximiseraient le plus ses performances, ce qui signifie que le modèle a été entraîné en beaucoup moins de temps et en utilisant moins de points de données.

Économies

Il y a 9 900 échantillons dans cet ensemble de données; nous en avons étiqueté 900 pour l’entraînement et 90 pour la validation.

En nous basant sur une étude de marché qui agrège des données générées par la population avec d’autres sources de données, le coût d’étiquetage de haute qualité d’une image peut être estimé à 50 cents.

À partir de l’ensemble de données public utilisé, nous évaluons le temps d’étiquetage d’une image à 30 secondes. Au final, nous avons économisé 4 500 $ et 75 heures de travail, car nous avons étiqueté uniquement 990 des 9 900 images.

Prédictions

Voici quelques prédictions issues des modèles entraînés à partir de moins de 10 % des données. Il s'agit d'une prédiction sans post-traitement, où le rouge correspond aux fissures, le bleu-vert aux puits d'accès et le vert aux rapiéçages. Nous voyons que le modèle est induit en erreur par l'essuie-glace.

predictions

Références

Nous avons publié BaaL 1.2.0! Cette version inclut notre nouveau module de calibration et plus. Vous pouvez voir tous les changements en suivant ce lien : https://github.com/elementai/baal/releases.

Auteurs : Parmida Atighehchian, Frédéric Branchaud-Charron et Lorne Schell