• Aucun résultat trouvé

4.2 Une approche basée sur les descripteurs profonds

4.2.3 Application à la localisation et à la détection

Les réseaux de neurones convolutifs ont été conçus à la base pour les tâches de classification. Des travaux récents ont étendu leur application aux tâches de localisation et de détection5 avec

5. La localisation consiste à fournir la position d’un objet en plus de sa classe. La détection étend cette tâche en supposant un nombre quelconque (pouvant être nul) d’objets dans l’image, pénalisant les faux positifs.

principalement OverFeat [SEZ+13], R-CNN [GDDM14] [Gir15] [RHGS15] ou encore FCN (Fully Connected Network) [LSD15].

Sermanet [SEZ+13] propose le système OverFeat, qui étend l’application d’un réseau de neu- rones convolutifs en l’appliquant sur des fenêtres glissantes à différentes échelles. Les régions déli- mitant un objet (bounding box) sont inférées à partir d’une couche intermédiaire. Les descripteurs issus de cette couche sont ensuite propagés en entrée d’un réseau constitué de deux couches entière- ment connectées et d’une couche de sortie à quatre unités (coordonnées du rectangle de détection). Il y a un régresseur de ce type par classe.

R-CNN [GDDM14] décompose lui le problème en deux étapes : une proposition de région correspondant à un objet puis l’application d’un CNN sur ces régions. Leur méthode générale ne dépend pas de l’algorithme de proposition de régions. Ils utilisent un CNN préentraîné sur Image- Net, qui peut ensuite être raffiné en se basant seulement sur des régions d’images. La détection se fait non pas directement à partir de la couche finale de leur CNN mais en entraînant un classifieur SVM binaire pour chaque classe avec pour descripteur image la sortie d’une couche intermédiaire. Ils utilisent pour cela les régions de la réalité terrain comme positifs et les régions suffisamment disjointes de celles-ci comme négatifs. Dans [Gir15], le même auteur propose de partager les des- cripteurs issus des couches du CNN à toutes les régions objets. Ceci est fait en considérant la région d’une couche intermédiaire correspondant à la région au niveau de l’image (cf la notion de champ réceptif). Une dernière amélioration [RHGS15] propose également d’intégrer la proposition de ré- gion objet dans un réseau de neurones, en partageant les couches de convolution avec le réseau responsable de la classification.

Enfin Long [LSD15] remarque que l’on peut convertir les couches entièrement connectées FC en couche de convolution6, permettant de voir n’importe quel CNN comme un filtre de convolution de même taille que ses entrées (227 pour AlexNet par exemple). Le fait de ne pas recalculer les descripteurs des couches de convolution à chaque région permet une meilleure efficacité. On obtient donc une classification sur une grille régulièrement séparée et recouvrante de l’image.

Une classification dense par pixel peut être obtenue en fusionnant la prédiction de couches inférieures (échelle plus petite) avec la prédiction finale. Pour se faire, il faut sur-échantillonner les couches inférieures avec des couches de déconvolution (opération inverse de la convolution). Les poids associés à ces couches peuvent être fixés (eg. suréchantillonnage bilinéaire) ou appris.

4.2. UNE APPROCHE BASÉE SUR LES DESCRIPTEURS PROFONDS 96 256 384 384 256 4096 4096 FCN AlexNet 1 Random Forest Similarité cosinus 1 Réference Détection concept Détection instance

Figure 4.10 – Adaptation d’un FCN avec classifieur binaire RF et similarité cosinus

Nous notons par la suite f c ∗ _conv les couches f c∗ après conversion en couches de convolution classique.

Il faut noter également que les dimensions de ces couches ne sont plus fixes : elles dépendent de la taille de l’image d’entrée. Deux éléments voisins (±1 en largeur/hauteur) de ces couches correspondent, sur l’image d’origine, à deux régions de tailles égales à l’image d’entrée du CNN d’origine (227 pour AlexNet, 224 pour VGG). Le décalage s entre ces régions dépend des décalages des couches de convolutions précédentes. Par exemple, pour la couche f c7 d‘AlexNet, on a s = 32. De là, on peut en déduire le nombre de régions minimum recouvrant l’image et donc la taille finale de la couche. Ainsi, pour un FCN basé sur AlexNet, une image 611 × 483 donnera une couche

f c7_conv de dimensions 12 × 8 × 4096. Du zéro-padding est utilisé lorsqu’une région "sort" des

frontières de l’image. Le zéro-padding est également employé dans les couches de convolution afin d’agrandir la couche d’entrée, permettant ainsi de contrôler indépendamment la taille des noyaux et de la sortie. Sans cela, la taille des couches du réseau diminuerait trop rapidement imposant alors soit de limiter fortement le nombre de couches, soit de n’utiliser que de petits noyaux.

Parmi les méthodes présentées ci-dessus, le FCN nous a paru la plus appropriée à notre système. La raison principale est qu’elle ne nécessite pas de données d’entraînement supplémentaires : elle est directement applicable à n’importe quel CNN préentraîné. Les méthodes basées sur de la pro- position d’objet non supervisée (comme la première version de R-CNN) semblent moins robuste. En effet, la proposition d’objet dans une scène se rapproche de la problématique de saillance et de segmentation de scène. Comme discuté plus tôt dans cette section, ce sont des problèmes difficiles et les résultats, lorsque le cadre d’application est ouvert (pas d’hypothèse sur les scènes observées), sont très variables.

Nous avons adapté l’approche FCN afin de pouvoir détecter un concept via les classifieurs bi- naires RF associés à chacun des nœuds de notre modèle de connaissance (figure 4.10). De la même manière, nous pouvons également détecter la présence d’une instance particulière à partir d’un des- cripteur de référence lui étant attaché. Dans un FCN classique, la dernière couche (f c8 pour AlexNet et VGG) correspond à des régions recouvrantes auxquelles sont associé un vecteur de probabilité, chaque coordonnée correspondant à une classe. Nous la remplaçons par une couche Random Forest de même hauteur et largeur que la couche précédente f c7_conv mais de profondeur 1 (la probabilité d’être de la classe représentée par le RF). On peut ensuite modifier le Random Forest employé en fonction de la classe à rechercher sans avoir à recharger le FCN en mémoire GPU.

On utilise exactement le même principe pour la recherche d’instance. On remplace la couche

f c8 par une couche de similarité cosinus, également de même hauteur et largeur que f c7_conv et

de profondeur 1. Le seul paramètre de cette couche est le descripteur de référence. En pratique, il est modifiable sur un FCN préchargé en mémoire.

Dans la suite, l’utilisation des descripteurs CNN dans nos travaux sera justifiée en analysant certaines de leur propriétés. Tout d’abord, nous montrerons que ces descripteurs sont bien adaptés à la représentation d’instance (réalisation physique d’une classe). Pour cela, différentes causes de variations de ces descripteurs dans le cas d’objets supposés rigides seront analysées

− Dans un premier temps, les variations entre objets d’une même classe seront analysées à partir des similarités intra-classe.

− Dans un second temps, nous inspecterons une autre cause de variation de ces descripteurs liée aux transformations de similarité SIM(2)7. Malgré la forte non-linéarité des CNN, on observera que la variation des descripteurs reste relativement régulière. Nous proposerons ensuite des exploitations de cette propriété. Nous finirons sur une formalisation sous forme matricielle dans le but de justifier et de mieux exploiter cette propriété des réseaux.

Chacun de ces résultats sera comparé en fonction de la profondeur à laquelle sont extraits les des- cripteurs et pour différents réseaux (AlexNet, VGGNet et GoogLeNet).