Sélectionner une page

Exemples de paires contrastives

générées avec ces augmentations

La méthode

 

L’algorithme SCAN est une méthode de clustering non supervisé, c’est à dire qu’elle associe des étiquettes à des images, sans nécessiter d’exemples.

Elle est composée de trois étapes :

  • Vectorisation : La première étape de traitement sert à vectoriser les images, c’est à dire transformer chaque image en vecteur de N dimensions, tels que les images qui présentent des caractéristiques communes correspondent à des vecteurs proches en N dimensions.
  • Cette étape est assurée dans l’article original par une adaptation de la méthode SimCLR. Cependant, n’importe quelle méthode de vectorisation non-supervisée peut être employée à la place.
  • Le résultat de la vectorisation permet de trouver, pour chaque image, les k plus proches voisins et leurs vecteurs, qui serviront de données d’entrée pour l’étape suivante.
  • Clustering : A partir des vecteurs de l’étape précédente et en se basant sur l’extraction des k plus proches voisins, cette étape assigne un cluster à chaque image, en optimisant deux critères:
    • Une image et ses voisins sont assignés au même cluster
    • Un paramètre d’entropie permet de répartir les images entres tous les clusters (éviter que toutes les images soient assignées au même cluster).
  • Self-supervised Learning : En ne prenant en compte que les images pour lesquelles le modèle est le plus sur de son choix, il réapprend les classes des autres exemples. A chaque époque d’entrainement, de plus en plus d’images seront éligibles à servir d’exemple pour cette étape.

On peut remarquer que la première étape est cruciale, car elle permet de refléter les caractéristiques des images dans un espace multi-dimensionnel, utilisé par la suite pour le clustering. Si les caractéristiques des images qui doivent servir à les rapprocher ne sont pas correctement prises en compte dans cette étape de vectorisation, les étapes suivantes ne produiront pas le résultat désiré.

Tests

Implémentation

Nous avons utilisé l’implémentation open source des auteurs pour effectuer nos tests : https://github.com/wvangansbeke/Unsupervised-Classification

Données

Nous avons utilisé le jeu de données lymparza2, composé de 10 vues et 6 classes de défauts.

Modèle

Le modèle utilise un Backbone resnet18, avec une sortie en 2048 dimensions

Augmentations

L’apprentissage contrastif sur lequel repose cette méthode nécessite de générer des paires d’images qui appartiennent au même groupe. En pratique, on utilise généralement une même image de base, modifiée de deux manières différentes à l’aide d’augmentations prises dans un ensemble pré-déterminé.

Pour nos tests nous avons utilisé les augmentations suivantes:

  • Miroir horizontal et vertical
  • Rotation de 180°
  • ColorJitter
  • Bruit gaussien
  • Jigsaw (mélange de parties de l’image à la manière d’un jeu de taquin)

Exemples de paires contrastives générées avec ces augmentations

Test jeu de données complet

Nous avons commencé par tester la méthode sur le jeu de données complet

Le résultat de ce test donne bien des clusters identifiables, mais qui correspondent aux différentes vues du dataset, qui sont plus facilement reconnaissables par le modèle que les défauts.

Test sur une seule vue

Pour éviter que le modèle ne se focalise sur les différences entre vues, nous avons également testé en n’utilisant qu’une seule vue. Le but est alors de différencier les comprimés normaux de ceux présentant des défaut, pour cette vue.

Dans ce cas, l’étape de vectorisation ne converge pas et ne donne pas de séparation entre les deux classes.

L’étape de clustering proprement dite collapse, c’est à dire qu’elle finit par assigner toutes les images au même cluster.

Conclusions

La méthode SCAN ne semble pas adaptée pour traiter ce jeu de données. Les détails des défauts à identifier sont trop difficiles à identifier sans supervision. Une piste de progrès consisterait à remplacer la tache prétexte (actuellement via SimCLR) par une autre tâche, pour obtenir une meilleure vectorisation.

Bibliographie

VAN GANSBEKE, Wouter, VANDENHENDE, Simon, GEORGOULIS, Stamatios, et al. Scan: Learning to classify images without labels. In : European Conference on Computer Vision. Springer, Cham, 2020. p. 268-285.