Représentation d'images et apprentissage (profond) de représentations Stephane

Représentation d'images et apprentissage (profond) de représentations Stephane Ayache – Qarma, LIF Motivations Motivations ●Grande quantité d'images, de multiples applications – généraliste, médicale, robotique, biométrie, surveillance, … – apprentissage/classifcation, recherche d'information ●Besoin de comparer des images – La comparaison s'oppère à partir d'une représentation – Les pixels constituent une première représentation mais très peu robustes aux variations de luminosité, échelle, occlusion, rotation, … Motivations Motivations ● Interprétation de scènes, détection d'objets – Plusieurs niveau d'interprétations, signal vs sémantique (cf cerveau humain) – Problème difcile ! ● Vers un très grand nombre d'images d'apprentissage et de classes ⇒ Big data ! – Les approches classiques ne passent pas à l'échelle – Un apprentissage semi-supervisé et/ou incrémental peu aider.. Outline ●Apprentissage de représentation : la solution ? – Après le Perceptron, MLP, autoencodeurs, stacked- autoencodeurs, RBM, DNN ⇒ Convolutional Neural Network (CNN) ! ●Mais d'abord, retour sur l'analyse et les descripteurs d'image classiques – L'ancêtre du CBIR : histogramme de couleur... – Filtrage d'images, convolutions, points d'intérêts – Paradigme "Bag of Visual Words" – Pooling et pyramidal features ●Quelques mots sur l'apprentissage de dictionnaires (sparse CBIR : Content-based Image Retrieval ●Recherche d'images par le contenu (début 1990s) – Interrogation par une image exemple (ou représentation) ●Besoin d'une représentation la plus discriminante possible : descripteur d'images – Couleur, texture, forme, ... Extraction des représentations Expression de la requête Index Comparaison Obama Image : la structure de donnée ●Un tableau de NxM pixels – Une matrice 2D NxM – Exemple : Image en niveaux de gris ● Un pixel est un élément atomique de l’image – Binaire, Intensité, Couleur (RGB), … – Dimension? – Distance N M L valeurs possibles Noir = 0 l < L = Blanc avec L=256, 1 pixel = 1 octet Représentation et correspondance • Représentation, descripteurs : – Couleur, – Texture, – Points d’intérêts, – Forme, – Structure … • Mesures de correspondance associées : – Dépendent du descripteur et du contexte d’application • Attention à la taille des descripteurs  Temps de calcul ! + + - Quelques descripteurs d'images Quelques espaces de couleur • Linéaires : – RGB : Rouge, vert, bleu. ● Système de couleur additif – YCbCr : Luminance, Chrominances (L-rouge, L-bleu) • Non linéaires : – HSV : Hue, Saturation, Value, – LAB : Luminance, Chrominances ⇒ Les distances euclidiennes entre couleurs sont plus proches des diférences perçues par les humains Histogrammes de couleur • Un histogramme par canal de couleur : – Histogramme composante par composante ou histogramme unique si l’image est monochrome, – Discrétisation : l’espace des valeurs de l’intensité est décomposé en intervalles complémentaires (batons ou « bins »), – Pour chaque intervalle, on calcule le pourcentage de pixels de l’image dont l’intensité s’y trouve – Le vecteur de ces pourcentages est le descripteur – Possibilité de considérer trois histogrammes pour les images en couleur Histogrammes de couleur • Multidimensionnels : – L’espace des valeurs de pixels est multidimensionnel (en général de dimension 3) – L’espace des valeurs est décomposé (discrétisé) en parallélépipèdes complémentaires (« bins ») – Mesure les coocurrences entre canaux de couleur – Pour chaque parallélépipède, on calcule le pourcentage de pixels de l’image dont l’intensité s’y trouve, – Ce tableau est le descripteur (on peut toujours le voir comme un vecteur si on sérialise les composantes). > python color_histogram3D.py Descripteurs à base de points d’intérêt • Points de « haute courbure » ou « coins », – Points géométriques « singuliers » de la surface Image[i][j] • Extraits par divers fltres [Schmid 2000] : – Calcul des dérivées spatiales à une échelle donnée, – Convolution par des dérivées de gaussienne (Sobel, …) – Construction d’invariants par une combinaison appropriée de ces diverses dérivées (module du gradient par exemple), – Chaque point est sélectionné puis représenté par un ensemble de valeurs de ces invariants (histogramme de directions) • L’ensemble des points sélectionnés est organisé topologiquement (relations entre points « voisins ») : SIFT – Descriptions très volumineuses ! Filtrage ●Le traitement d’un pixel dépend de ses voisins ●Permet de nombreuses opérations sur les images – Flou, points d’intérêt, contour, réhaussement, … ●Espace Fourier / Spatial – Une multiplication dans le domaine de Fourier équivaut à une convolution dans le domaine spatial ●Opérateur de convolution Filtrage : convolution ● Opérateur de convolution – Parcourt de l’image en glissant une fenêtre : le noyau de convolution ● Approximation dans un voisinage de pixels – Typiquement 3x3, 5x5, 7x7, ... ● Exemple en 1D [1 2 3 4 5 6 7] [2 3 1]  2 + 6 + 3 = 11 [1 2 3 4 5 6 7] [2 3 1]  4 + 9 + 4 = 14 [1 2 3 4 5 6 7] [2 3 1]  6 + 12 + 5 = 23 Et ainsi de suite... à la fn, la réponse de la convolution est le vecteur [11 14 23 29 35] Quelques noyaux pour image ●Filtre « Moyenneur » ●Alternative plus précise ●Intègre plus de 80% des approximations discrètes d’une gaussienne ●Génère du « fou »  diminue le contraste 1 1 1 1 1 1 1 1 1   1 9 1 2 1 2 4 2 1 2 1   1 16 Détection d’orientations Opérateurs de Sobel • Noyaux des gradients horizontaux et verticaux : • Convolution par ces noyaux → détection des orientations • Un descripteur possible : Histogramme des directions Histogramme des gradients orientés (HOG) [Dalal, 2005] • Norme du gradient : • Direction du gradient : • Seuil sur la norme détection de points d'intérêts Classifcation d'images "classique" ●Architectures "plates" (ou shallow) Classifcation d'images par "sac de mots visuels" Descripteur local • Descripteur discriminant extrait autour de points d'intérêts • Histogramme d'orientations normalisé ● Invariant aux transformations : translation, échelle, rotation, afne ● Il en existe plusieurs : SIFT, SURF, ORB, BRIEF ● Le plus populaire est le SIFT [Lowe, 1999], mais breveté Stratégies d'échantillonage A set of points [Csurka et al. 2004] [Vogel & Schiele, 2003] [Vidal-Naquet & Ullman, 2002] [Fei-Fei & Perona, 2005] [Fei-Fei & Perona, 2005] [Sivic et al. 2005] Représentation par "sac de mots" (BoW) ●Plusieurs inspirations : - Représentation de documents textuels [Salton, 1983] - Perception de la texture → les textons [Julesz, 1981] ●L'ordre et la caractérisation spatiale importent peu ●Nécessite un dictionnaire (mots, textons, mots visuels) Représentation par "sac de mots" (BoW) ●Les mots visuels : regroupement (clustering) de descripteurs locaux ●Typiquement : SIFT + Kmeans ⇒ Codebook (le dictionnaire) - Puis, représentation par histogramme de mots-visuels Codebook learning & Vector Quantization SIFT space R 1 R 2 R 3 ● Apprentissage du codebook (non-supervisé) - Kmeans - GMM - Supervisé : un codebook par classe, LDA, Sparse coding, ... ● Quantifcation des vecteurs → Assigne les vecteurs (SIFT) aux clusters - Hard assignment (plus proche voisin) - Soft assignment (selon la distance aux clusters) BoW : vector quantization (vq ou coding) ●Hard assignment – Augmente la sparsité des représentations – Génère de l'instabilité selon la taille du codebook ●Soft assignment – Représentation dense, peu redondante ●Stratégie hybride – ie : soft assignment sur les K plus proches voisins BoW : Pooling ●Quelque soit la taille des sacs de mots, la représentation sera de même taille ●Sum (ou Average) Pooling ●Max Pooling ⇒ Le vecteur des z constitue la représentation fnale Bag of Words issues • Taille et algorithme d'apprentissage du codebook ? – Trop petit: mots visuels peu représentatifs de la base d'apprentissage – Trop gros: problème de quantification, sur-apprentissage • Quelle stratégies d'échantillonage, quantification et pooling ? • Passage à l'échelle ? – Millions d'images => milliards de SIFT.. (tirage aléatoire) • Quelle classification à partir de cette représentation ? • Comment intégrer la distribution spatiale des descripteurs ? • Apprentissage joint de la représentation et du classifieur ? Spatial pyramid matching ➔ Pooling spatial [Lazebnik & al., 2006] BoW : classification d'images K-means Dense/Sparse SIFT codebook Codebook Learning VQ Coding Dense/Sparse SIFT Spatial Pyramid Pooling Nonlinear SVM Image Classification Combining multiple descriptors Multiple Feature Detectors Multiple Descriptors: SIFT, shape, color, … VQ Coding and Spatial Pooling Nonlinear SVM Diagram from SurreyUVA_SRKDA, winner team in PASCAL VOC 2008 Classifcation d'images par Sparse Coding Sparse Coding ●Codage du signal avec contrainte de sparsité [Olshausen and Field, 1997] – Apprentissage de dictionnaire (codebook) pour la représentation parcimonieuse du signal – La fonction induit la parcimonie sur les alpha ●Pseudo-norme L0 : #αi ≠ 0 (NP-hard) ●Norme L1 : Σ|αi| (~convex) ⇒ [Olshausen and Field, 1997], [Engan et al., 1999], [Lewicki and Sejnowski, Sparse Coding ●Nombreuses applications – Image denoising [Elad and Aharon, 2006] Sparse Coding ●Nombreuses applications – Image denoising [Elad and Aharon, 2006] Sparse Coding ●Nombreuses applications – Image restoration [Mairal, Sapiro, and Elad, 2008] Sparse Coding ●Nombreuses applications – Inpainting [Mairal, Elad, and Sapiro, 2008b] Sparse Coding ●Nombreuses applications – Digital zooming [Couzinie-Devy, 2010] ●Un patch de 14x14 pixels est représenté par 196 valeurs (souvent redondantes) ●Problème: Pouvons nous apprendre une meilleure représentation ? Sparse Coding uploads/Management/ representation-d-x27-images-et-apprentissage-profond-pdfdrive 1 .pdf

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Nov 28, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 5.0164MB