Retour

Détection automatique de fers apparents : l'intelligence artificielle au service de la maintenance des actifs industriels

DÉTECTION DE DÉSORDRES
Le 24 août 2022

L’apparition de fers à la surface des ouvrages en béton armé est le signe d’une fragilisation de la structure ; la surveillance de ces fers constitue donc un enjeu majeur de maintenance.

Ils apparaissent généralement lorsque de l’eau s’infiltre dans le béton et que les tiges métalliques solidifiant la structure rouillent. Ces dernières gonflent sous l’effet de l’oxydation et éclatent la couche de béton à la surface. Le développement des fers apparents rend la structure de moins en moins résistante et peut même conduire à son effondrement.

fers apparentSchéma de la formation des fers apparents 

Pour permettre aux gestionnaires de maintenance de détecter ces désordres, Altametris a mis en place une prestation d’aide à l’inspection de ces surfaces très larges et souvent situées en hauteur grâce au drone.

Mais surtout, Altametris a mis en place une prestation de détection automatique des fers apparents grâce au traitement et à la valorisation des données collectées par le drone.

Dans ce contexte, j’ai intégré la Direction Technique d’Altametris lors d’un stage de quatre mois dans le but d’améliorer les performances d’un modèle de détection de fers apparents sur des ouvrages en béton armé et d’optimiser le traitement des données.

  1. Algorithme de détection d'objets

  1.  

Commençons par une première définition : la détection d’objets est une méthode de vision par ordinateur (ou Computer Vision en anglais) permettant de prédire la présence d’instances de diverses classes d’objets, comme des personnes ou des véhicules, dans des images numériques. Voici, par exemple, les résultats de la détection de personnes, d’animaux et d’objets du quotidien :

1_RpTe5TQOA0x_ch-WGLJPgQSource : Vidéo de démonstration de YOLO v3

À partir d’une image, l’algorithme prédit la position de boîtes englobant les objets présents.

Cependant, le réseau n'est pas utilisé seul et de nombreux traitements sont appliqués avant l'entrée et après la sortie du réseau. Commençons par le fonctionnement interne de l'algorithme complet, une image est donnée en entrée de l'algorithme puis est découpée suivant un quadrillage dont les dimensions (S x S) sont définies par l'utilisateur. Pendant l'inférence, le réseau détermine la probabilité qu'une cellule contienne une certaine classe. La probabilité la plus élevée est assignée à la cellule, ce qui peut être illustré comme tel : 

Auteur : Victor Bercy

A partir de la prédiction des probabilités de classe, un nombre B de boîtes englobantes sont déterminées pour chaque cellule (S x S).

Auteur : Victor Bercy

A cette étape, pour chaque cellule, l'algorithme a prédit la position du centre de B×S×S boîtes englobantes, leur longueur et largeur, un score de confiance quant à l'existence d'un objet proche de la cellule ainsi qu'une probabilité par classe. Ceci correspond à un vecteur de prédiction ayant pour dimensions (S,S,(4+1+C)×B), où C est le nombre de classes, comme illustré ci-dessous pour une cellule associée à la classe « Personne ».

Auteur : Victor Bercy

Pour ne garder qu’une boîte par objet, la méthode de Non-max suppression (NMS) est appliquée. Celle-ci se base la métrique « intersection sur l’union » (IoU pour Intersection over Union) définie comme le rapport de l’intersection sur l’union des surfaces des boîtes englobantes.

Source : Illustration d’Adrian Rosebrock

Toutes les boîtes sont comparées à celle possédant la plus grande probabilité de classe. Celles chevauchant trop cette dernière, donc ayant une IoU élevée, sont retirées car cela signifie qu’elles englobent le même objet. Puis l’algorithme passe à la boîte possédant la deuxième plus grande probabilité de classe, et ainsi de suite pour obtenir une boîte par objet.


Auteur : Victor Bercy

En sortie de l'algorithme, nous avons donc une liste des objets détectés sur la photo. A cette détection s’ajoute également la définition d’une fonction de coût. Elle prend en compte la classe, la position et la taille prédites de toutes boîtes englobantes. Elle permet alors au réseau, notamment pendant l’entraînement, de quantifier l’erreur existant sur la prédiction des boîtes englobantes par rapport à l’emplacement réel de l’objet et de la corriger.

2. Optimisation des performances du modèle de détection de fers apparents

a. contexte technique

 

Comme vu précédemment, le réseau utilisé par Altametris est capable de détecter n'importe quel type d'objets sous réserve de l'avoir entraîné à le faire. Altametris a donc souhaité exploiter les performances de cet algorithme pour détecter les fers à la surface des structures.

Pour utiliser ce type d’algorithme, faisant appel à du Deep Learning, une première étape d’apprentissage, appelée entraînement, est nécessaire.

Le réseau doit apprendre à reconnaître les caractéristiques communes des objets à détecter. Pour les fers apparents, il peut s’agir de leur couleur rouille, de leur forme allongée ou encore du contexte autour de ceux-ci, présentant généralement des éclats de béton.

Photo fers apparents

Photographie de quatre fers apparents

Une fois les caractéristiques des objets retenues, ou le modèle entraîné, il est possible de les détecter sur des images que le réseau n’aura encore jamais vu durant l’entraînement. On parle alors d’inférence ou de prédiction.

Pour entraîner comme pour inférer, nous utilisons l’environnement de Cloud computing d’Azure Machine Learning.
Il permet notamment d’avoir une interface graphique pour l’entraînement et la comparaison des modèles, de stocker les données dans le Cloud, de mettre en place un versionnage des modèles d’intelligence artificielle et des jeux de données, tout en utilisant une puissance de calcul délocalisée. Il est relié à un environnement Azure DevOps dans lequel des pipelines, tunnels permettant le test et la réalisation automatique de projet de code, sont mis en place pour entraîner et mettre en production les modèles.

Exemple d’interfaces graphiques pour les pipelines Azure DevOps (à gauche) et les entraînements sur Azure Machine Learning (à droite)

b. Entraînement d'un nouveau modèle 

Pour entraîner un modèle, il est primordial de se procurer d’abord une base de données. Dans notre cas, nous avons besoin d’images contenant des fers apparents.

C’est dans le cadre d’un projet client que la base de données de fers apparents a pu être développée : divers ouvrages en béton armé ont été photographiés à l’aide de drone grâce à ce service. Une fois les photographies traitées, nous avons eu à disposition plusieurs orthophotos contenant les édifices en un seul tenant.

Cependant, ce format de haute résolution est bien trop volumineux pour le réseau et les fers présents ne couvrent qu’une très petite surface relativement à la surface des édifices. On en extrait donc des tuiles qui formeront la base de données (cf. illustration ci-dessous).

fers apparentsAuteur : Victor Bercy

Pour créer cette base de données, il s’agit non seulement de découper des tuiles dans les différentes orthophotos mais aussi de sélectionner les tuiles pertinentes pour optimiser les performances de détection de l’algorithme sur de nouvelles images.

Pour un réseau de neurones, on parle de capacité de généralisation. Ceci fut une première étape fondamentale du travail sur la détection automatique de fers apparents.

Nous souhaitions trouver la configuration idéale, tant pour le réseau que pour la base de données. Ayant la possibilité de charger différentes configurations du réseau, ayant chacune leurs avantages et inconvénients, nous les avons testées à travers différents entraînements. De même, nous avons évalué la pertinence de différents jeux de données pour l’entraînement, extraits de l’ensemble des tuiles. Pour avoir une comparaison fiable et sensée, nous avons donc décidé de former de la même manière un deuxième jeu de données, indépendant et figé, pour l’évaluation.

Pour comparer, il nous faut aussi des indicateurs appelés « métriques » en Data Science, permettant d’évaluer la précision de la prédiction des boîtes englobant les fers apparents.Celles-ci sont directement calculées par l’algorithme (ex. : AP, précision, rappel).

Détection de défaut sur fer

Auteur : Victor Bercy 

Pour déterminer la performance d’un modèle nouvellement entraîné, nous calculons la valeur de ces métriques sur les données d’évaluation, encore jamais vu par le réseau. Ceci nous permet d’avoir un bon aperçu du comportement et des performances du modèle sur de nouvelles images.

Puis, nous comparons ces scores avec le modèle précédemment enregistré et gardons le plus performant des deux. Ainsi, le meilleur modèle est conservé et enregistré dans le Cloud avec ses scores obtenus sur l’ensemble d’évaluation.

Schéma

Graphiques Azure ML des métriques mesurées pour trois modèles YOLO entraînés pour la détection de fers apparents

Après de nombreuses versions des deux jeux de données (entraînement et évaluation) et des essais de différentes configurations du réseau, nous avons pu obtenir un modèle de détection de fers apparents bien plus efficace. En plus d’améliorer ses performances, nous avons aussi optimisé le processus d’entraînement. Plusieurs fonctionnalités ont été rajoutées, comme l’ajout du jeu de données d’évaluation invariable d’un entraînement à l’autre ou un nouvel étiquetage des modèles sur Azure Machine Learning (format et nouvelles métriques).

 c. Optimisation des prédictions

 Une fois le modèle de détection des fers apparents entraînés, il faut le rendre utilisable pour la prédiction : c’est l’étape d’inférence. Par exemple, un client souhaite déterminer s’il est nécessaire de restaurer son château d’eau en fonction de la quantité et de la taille des fers en surface. On passe alors les données du client, nouvelles pour le réseau, à l’algorithme pour prédire la position et la taille des fers.

Le format des données choisies en entrée de la chaîne d’inférence est l’orthophoto. En plus des avantages précédemment cités, celle-ci renseigne également la résolution spatiale de l’image (en nombre de pixels par mètre sur l’édifice).

Comme pour la phase d’entraînement, un découpage des orthophotos est donc nécessaire avant de pouvoir inférer. Ainsi, quelle que soit la résolution spatiale de l’orthophoto, la taille des fers apparents sur les tuiles reste identique. Cette étape de normalisation est essentielle pour garantir les performances du réseau.

Cependant, le découpage réalisé avant l’inférence est particulier et inspiré de l’algorithme SAHI (Slicing Aided Hyper Inference). Ce dernier utilise un principe de fenêtre glissante pour prédire la position d’objets très petits sur l’image originale (cf. illustration ci-dessous), ce qui est le cas des fers apparents sur les orthophotos. Cette méthode nous permet d’obtenir de meilleures performances de détection sur les petits objets, tels que les fers apparents.

GIF 2

Source : GitHub  de SAHI

Une fois l’inférence réalisée sur l’ensemble des tuiles ainsi découpées, il ne reste plus qu’à recombiner l’ensemble des prédictions pour pouvoir les visualiser sur l’édifice complet.

Ainsi, dès qu’un modèle plus performant est entraîné, celui-ci est stocké dans une image docker avec l’ensemble de ce processus d’inférence pour être mis en production sur la plateforme Altametris Suite. Il est désormais possible de détecter automatiquement les fers apparents à partir de photos de vos édifices.

Alors n’hésitez pas à demander une démonstration de la plateforme Altametris Suite !

Altametris Suite détection automatique fers apparents
Interface graphique pour la détection automatique de fers apparents sur Suite

3. Une mission de bout en bout 

  1. Recruté en stage pour optimiser le processus de détection automatique des fers apparents, de l’entraînement à l’inférence, j’ai ainsi pu travailler pendant trois mois à la mise en place d’un service aujourd’hui disponible pour les clients. Avoir pu travailler sur l’ensemble de cette chaîne et vu se concrétiser mon travail par la mise en place du service sur une plateforme Web fut une vraie chance et une expérience professionnelle enrichissante.

    Les réunions hebdomadaires avec l’ensemble de l’équipe et les points avec la Direction technique m’ont beaucoup appris, tant sur des aspects techniques que sur le fonctionnement de l’entreprise.

    Je tiens à remercier l’ensemble de l’équipe Altametris pour son accueil, son atmosphère chaleureuse et bon enfant. Je remercie plus particulièrement la Direction technique de m’avoir formé et accompagné pendant quatre mois, l’équipe SUITE pour tous ces déjeuners partagés et leurs afterworks ainsi que la PROD pour leurs nerfs détonnant dans l’open-space !