Deep Learning : utilisation de CrossViT

L’objectif de ce projet était de développer un modèle de deep learning capable de détecter la présence d’épines sur une plante à partir d’images. En équipe de quatre, nous avons implémenté et adapté le modèle CrossViT-Tiny, une architecture développée par des chercheurs d’IBM, en testant différentes stratégies de prétraitement et en analysant l’attention du modèle afin de garantir des résultats fiables et interprétables.

Ce projet a représenté un véritable challenge pour notre équipe : maîtriser une architecture avancée, optimiser ses performances et s’assurer que le modèle apprenne réellement les bonnes caractéristiques visuelles.

outils utilisés

Langage Python

Python

Prétraitements des images, entraînements, analyses des performances

logo Visual Studio Code

Visual Studio Code

Environnement de développement

Logo prism

Prism (anciennement Crixet)

Rédaction collaborative du rapport LaTeX

Projet réalisé pour

logo Cy Tech

École d’ingénieur informatique CY Tech

Notre article scientifique

Notre rapport scientifique présente en détail la méthodologie adoptée, les résultats obtenus ainsi que les analyses approfondies menées au cours du projet.

Cependant, il ne peut pas être rendu public, car il contient des données confidentielles, notamment des éléments issus du dataset, des visualisations (heatmaps) ainsi que des images illustrant les zones d’attention du modèle sur les plantes.

Naissance du projet

Dans le cadre du module Deep Learning en ING3 (spécialité IA), nous avons mené un projet en groupe de 4 autour d’un besoin concret : détecter automatiquement si une plante possède des épines ou non, à partir d’images d’herbiers numérisés.

Le dataset fourni par notre encadrant comprenait des images segmentées et non segmentées, auxquelles nous avions pleinement accès pour l’entraînement et l’analyse. Cependant, ces données ne pouvant pas être diffusées publiquement, notre présentation se concentre sur la méthodologie, les choix techniques et les résultats obtenus, sans afficher d’images issues du dataset.

Comprendre le challenge

Les images d’herbiers ne sont pas « propres » : on y trouve souvent des éléments parasites (étiquettes, règles, codes-barres, fonds variés) qui peuvent tromper un modèle.

Pour limiter cet effet, chaque échantillon était disponible sous deux formes :

    • une image non segmentée (planche complète)

    • une image segmentée (fond supprimé, plante isolée)

Ce duo nous a permis d’étudier à la fois la performance du modèle et sa capacité à vraiment regarder la plante, plutôt que d’apprendre des biais de fond.

Choix du modèle : CrossViT (Cross Vision Transformer)

Nous avons basé notre approche sur le modèle CrossViT, proposé par des chercheurs d’IBM :  « CrossViT: Cross-Attention Multi-Scale Vision Transformer for Image Classification », par Chun-Fu (Richard) Chen et Quanfu Fan et Rameswar Panda, en 2021 [Lien vers le Github]. Nous avons utilisé la version CrossViT-Tiny du dépôt, adaptée à des images en 224×224.

L’intérêt principal : CrossViT traite l’image via deux branches (une vision globale et une vision plus fine), avec un mécanisme de cross-attention pour fusionner les informations.

Ensuite, on l’a adapté à notre tâche : classification binaire (épines / pas d’épines).

Méthode : itérations, expérimentations et ablations

Plutôt que de nous limiter à un unique entraînement, nous avons adopté une démarche structurée, proche d’un protocole de recherche expérimental, en comparant plusieurs configurations et en analysant finement leur impact.

1) Comparaison des prétraitements

    • Dataset Simple : redimensionnement standard des images.

    • Dataset Augmenté : recadrage centré sur la plante, accompagné d’augmentations de données afin d’améliorer la robustesse du modèle.

L’objectif était d’évaluer l’influence du prétraitement sur la performance et la capacité de généralisation.

2) Étude de configurations (A, B, C1, C2)

Nous avons expérimenté différentes manières d’exploiter les images segmentées et non segmentées au sein des deux branches du modèle CrossViT-Tiny, afin d’identifier la stratégie la plus pertinente pour la classification binaire.

3) Pondération par patch

Une stratégie de pondération a été introduite pour accorder davantage d’importance aux zones correspondant réellement à la plante, en s’appuyant sur la densité de pixels végétaux. Cette approche visait à guider plus efficacement le mécanisme d’attention du modèle.

4) Analyse d’interprétabilité

Nous avons étudié les heatmaps d’attention (attention rollout) afin de vérifier que le modèle se concentrait sur les régions pertinentes. L’alignement entre l’attention du modèle et la zone de la plante a été quantifié à l’aide de la métrique IoU (Intersection over Union).

Résultats

    • Meilleures performances de classification observées : 90.59% d’accuracy (avec une régularisation IoU dans la loss, sur le dataset Simple)

    • Meilleur compromis « le modèle regarde la plante » : configuration C2 sur dataset Simple, avec IoU moyen = 0.609

    • La segmentation aide l’interprétabilité, mais tout segmenter peut dégrader la classification, car le fond contient parfois des informations contextuelles utiles (ou des biais)

    • La taille de patch est critique : passer en patch 32 fait chuter les performances (les épines sont trop fines)

Conclusion

Ce projet nous a permis de développer un modèle de deep learning capable de classifier des plantes selon la présence d’épines, tout en abordant une question essentielle : le modèle se concentre-t-il réellement sur les bonnes caractéristiques visuelles ?

Au-delà de la performance brute, nous avons cherché à équilibrer précision, robustesse et interprétabilité. La démarche adoptée : comparaison de prétraitements, expérimentations successives, études d’ablation, analyse des erreurs et évaluation des mécanismes d’attention, s’inscrit dans une logique rigoureuse proche de celle d’un travail de recherche.

Un projet relativement court, mais particulièrement exigeant et formateur sur le plan technique, méthodologique et collaboratif.