Détection d'objets sur des images

27
Détection d'objets sur des images Conférence ISN 20 mai 2015 Matthijs Douze Ingénieur, équipe INRIA LEAR

Transcript of Détection d'objets sur des images

Page 1: Détection d'objets sur des images

Détection d'objets sur des images

Conférence ISN

20 mai 2015

Matthijs Douze

Ingénieur, équipe INRIA LEAR

Page 2: Détection d'objets sur des images

Détection d'objets dans des images 2 / 23

La détection d'objets: définition

Objectifs de la présentation : ► Pourquoi les ordinateurs ne voient-ils pas l'évidence ?► Survol des techniques de détection d'objets

+/- dans l'ordre chronologique► Le niveau de performance actuel

Page 3: Détection d'objets sur des images

Détection d'objets dans des images 3 / 23

Pourquoi n'avons-nous pas des robots humanoïdes?

L'intelligence artificielle est à ses balbutiments► Compréhension de texte► Transcription du language parlé

Vision ► Lecture de texte► Perception de la 3D► Analyse du mouvement► Reconnaissance d'objets

Page 4: Détection d'objets sur des images

Détection d'objets dans des images 4 / 23

Pourquoi les ordinateurs ne voient-ils pas l'évidence ?

“Ctrl-F” - chat► Pourquoi ça ne marche pas sur mes photos ?

Ce que “voit” l'ordi: des nombres

Calculs locaux (sur max. 10 nombres)

187 189 154 112 87 63 58 52 44 45 55 64 74 93 108 146 186 212 210 214 136 84 40 31 36 37 31 37 35 38 34 29 24 22 34 49 86 144 147 216 18 22 27 34 44 48 53 54 64 70 78 79 63 48 26 25 36 66 111 203 32 34 34 48 56 62 64 67 95 101 116 117 123 133 103 58 24 33 69 143 38 40 44 60 64 66 63 77 109 97 64 49 74 127 146 143 53 22 35 72 35 40 54 65 66 67 61 72 104 64 17 26 46 90 105 107 66 25 20 35 50 54 59 65 73 68 65 70 81 40 15 20 41 66 65 54 48 37 24 22 60 65 76 81 80 82 76 72 45 16 8 21 48 60 59 58 47 46 30 18 54 68 77 85 91 89 81 71 46 17 12 29 58 68 69 66 61 57 34 19 51 66 83 88 84 78 72 70 48 20 18 48 71 79 86 75 67 63 40 29 44 71 82 83 80 84 80 61 50 25 27 60 76 81 92 87 79 59 38 22 24 55 88 76 73 81 75 67 63 37 41 64 82 76 86 88 89 56 34 18 21 34 87 109 94 96 101 78 68 56 57 64 77 91 80 82 74 48 29 17 47 24 58 121 124 115 119 92 81 69 71 84 80 90 83 64 54 31 18 14 100 30 31 84 133 124 120 114 104 85 103 131 96 75 76 70 50 28 15 12 118 87 30 32 93 145 144 132 120 112 119 140 104 78 58 45 30 20 14 14 108 104 76 36 35 68 109 129 127 125 122 117 92 61 44 27 20 13 12 17 136 113 98 96 60 28 32 43 61 73 70 66 55 37 21 16 16 22 34 46 150 153 119 103 100 78 48 36 31 26 25 26 24 24 28 34 43 55 62 73 183 187 179 154 141 134 116 100 88 79 78 82 92 96 87 87 92 106 94 86

Page 5: Détection d'objets sur des images

Détection d'objets dans des images 5 / 23

Fonction élémentaire: deux images se ressemblent-elles ?

Mesure de similarité entre images

On simplifie encore: reconnaître des images transformées

0.6

0.4

Page 6: Détection d'objets sur des images

Détection d'objets dans des images 6 / 23

Principe: on reconnaît la même image transformée

Le plus strict: comparaison pixel à pixel► On supprime la couleur (peu informative)► On superpose les images

similarité = produit scalaire entre vecteurs de pixels (taille largeur x hauteur)► On normalise les vecteurs avant

Exemple avec des niveaux croissants de bruit

[⋮] [⋮]

Page 7: Détection d'objets sur des images

Détection d'objets dans des images 7 / 23

Détection sur une grande image

Petit motif, grande image

On glisse la fenêtre sur l'image► Calcul de similarité à chaque position► on retient la plus forte: position -> rectangle de détecté► Équivalent à une convolution

Page 8: Détection d'objets sur des images

Détection d'objets dans des images 8 / 23

Similarité de contours Le produit scalaire est trop sensible aux zones uniformes

On ne garde que les contours

En les séparant par orientation

8 orientations8 convolutions

Page 9: Détection d'objets sur des images

Détection d'objets dans des images 9 / 23

Agrégation spatiale

Superposition pixel-à-pixel trop sensible aux petites translations

Information statistique sur un voisinage ► Agrégation sur des cellules (somme, max, ...)

Par rapport à la valeur du pixel► - précise spatialement► + riche (8 orientations au lieu d'1 valeur)

Histogramme d'orientation de gradients (HOG)

Carré de 10x10

8 orientations par pixel

8 orientations pour le carré(vu comme des vecteurs)

[⋮]

Page 10: Détection d'objets sur des images

Détection d'objets dans des images 10 / 23

Pour localiser un motif

On peut utiliser le HOG avec une fenêtre glissante

Page 11: Détection d'objets sur des images

Détection d'objets dans des images 11 / 23

Technique: représentation → classification Comparaison avec un motif de référence

► Marche pour des motifs univoques (chat tigré...) ► Ne permet pas de prendre en compte une variété d'aspects

Nécessite une méthode de classification

apprentissageVecteurs

DescripteursHOG

Exemples positifsExemples positifs Exemples négatifs

[⋮⋮] [⋮⋮][⋮⋮] [⋮⋮] [⋮⋮][⋮⋮]

test P(voiture) = 72 %

Modèle pour “voiture”

[⋮⋮]

Page 12: Détection d'objets sur des images

Détection d'objets dans des images 12 / 23

Classification

Slides courtesy Alex Smola

PositifsPositifs

Négatifs

Visualisons ce qu'il se passe dans l'espace des HOG

Classifieur basique: ► Le point le plus proche dans l'espace HOG est-il positif ou négatif ?► = classifieur de plus proche voisin

?

Espace dehaute dimension

Page 13: Détection d'objets sur des images

Détection d'objets dans des images 13 / 23

Classification par machine à vecteur de support

Positifs

Négatifs

Page 14: Détection d'objets sur des images

Détection d'objets dans des images 14 / 23

Classification par machine à vecteur de support

Positifs

Négatifs

Page 15: Détection d'objets sur des images

Détection d'objets dans des images 15 / 23

Classification par machine à vecteur de support

Positifs

Négatifs

Page 16: Détection d'objets sur des images

Détection d'objets dans des images 16 / 23

Classification par machine à vecteur de support

Marge maximale

Positifs

Négatifs

P

Score de classification = se calcule comme un produit scalaire

Page 17: Détection d'objets sur des images

Détection d'objets dans des images 17 / 23

Résultats de la chaîne HOG + vecteurs de support

Thèse Navneet Dalal

Page 18: Détection d'objets sur des images

Détection d'objets dans des images 18 / 23

La tendance actuelle: réseaux de neurones convolutionnels

HOG + machine à vecteur de support =► Convolution avec 8 filtres orientés► Agrégation spatiale► Convolution (= produit scalaire pour calculer le score du classifieur)

Généralisation de cette chaîne

Plusieurs couches composées de► convolution ► Agrégation ► Opération non-linéaire

Cours Yann LeCun

Page 19: Détection d'objets sur des images

Détection d'objets dans des images 19 / 23

Réseaux de neurones convolutionnels

Apprentissage des filtres de convolution► Optimisation de bout-en-bout► Objectif = cette image doit renvoyer “chat”

Nécessite énormément de données d'apprentissage (1M d'images)

+ puissance de calcul

voiture

chien

chat

kangourou [0.10.80.90.1⋮

]

Page 20: Détection d'objets sur des images

5th april 2011Quaero Karlsruhe

Ensemble d'apprentissage = images annotées

saturnschool-busscorpion-101screwdriversegwayself-propelled-lawn-mowersextantsheet-musicskateboardskunkskyscrapersmokestacksnailsnakesneakersnowmobilesoccer-ballsockssoda-canspaghettispeed-boatspiderspoonstained-glassstarfish-101steering-wheelstirrupssunflower-101supermansushiswanswiss-army-knifeswordsyringet-shirttambourineteapotteddy-bearteepeetelephone-boxtennis-balltennis-courttennis-rackettennis-shoestheodolitetoadtoastertomato........

Page 21: Détection d'objets sur des images

Détection d'objets dans des images 21 / 23

Exemples de résultats

Page 22: Détection d'objets sur des images

Détection d'objets dans des images 22 / 23

Exemples de résultats (bien choisis...)

Delving Deep into Rectif iers: Surpassing Human-Level Performance on ImageNet Classif ication, He et al. (MSRA), Arxiv

Page 23: Détection d'objets sur des images

Détection d'objets dans des images 23 / 23

Conclusion

La détection d'objets dans les images se rapproche des performanceshumaines► Lentement...

Les opérateurs de base ► traitement de signal► Apprentissage machine

Matière pour TP de traitment d'image► Convolution, fenêtre glissante► Extraction de maxima locaux

Page 24: Détection d'objets sur des images

Détection d'objets dans des images 24 / 23

Représentation

http://www.cat.uab.cat/Research/object-detection/

Page 25: Détection d'objets sur des images

Détection d'objets dans des images 25 / 23

Fonction élémentaire: deux images se ressemblent-elles ?

Mesure de similarité entre images

Recherche par similarité dans une base d'images

0.6

0.4

requêtebase

Page 26: Détection d'objets sur des images

Détection d'objets dans des images 26 / 23

Qu'est-ce qu'on veut reconnaître ?

?

?

Page 27: Détection d'objets sur des images

Détection d'objets dans des images 27 / 23

Principe: on reconnaît la même image transformée

Cas non-ambigü

Procédure: ► Pour commencer: comparaison très stricte / rigide► On ajoute des degrés d'invariance