Ancrage plus rapide du RCNN

10

Dans le document Faster RCNN, lorsque l'on parle d'ancrage, que signifient-ils en utilisant des «pyramides de boîtes de référence» et comment cela se fait-il? Cela signifie-t-il simplement qu'à chacun des points d'ancrage W * H * k, une boîte englobante est générée?

Où W = largeur, H = hauteur et k = nombre de proportions * échelles numériques

lien vers le papier: https://arxiv.org/abs/1506.01497

BadProgrammer
la source
C'est une très bonne question.
Michael R. Chernick

Réponses:

10

Les ancres expliquées

Ancres

(HfeaturemapWfeaturemap)(k)d'entre eux, mais ils correspondent à l'image. Pour chaque ancre, le RPN prédit la probabilité de contenir un objet en général et quatre coordonnées de correction pour déplacer et redimensionner l'ancre à la bonne position. Mais comment la géométrie des ancres doit-elle faire quoi que ce soit avec le RPN?

Les ancres apparaissent réellement dans la fonction de perte

Lors de la formation du RPN, une étiquette de classe binaire est d'abord attribuée à chaque ancre. Les ancres avec intersection sur union ( IoU ) se chevauchent avec une boîte de vérité au sol, supérieure à un certain seuil, se voient attribuer une étiquette positive (de même les ancres avec des IoU inférieures à un seuil donné seront étiquetées négatives). Ces étiquettes sont en outre utilisées pour calculer la fonction de perte:

Fonction de perte RPN

ppt

entrez la description de l'image ici

x,y,w,x,xa,xy,w,h

Notez également que les ancres sans étiquette ne sont ni classées ni remodelées et le RPM les jette simplement hors des calculs. Une fois le travail du RPN terminé et les propositions générées, le reste est très similaire aux Fast R-CNN.

Mahan Fathi
la source
@Fathi Et si nous avons plusieurs classes? Pour autant que je sache, dans Fast R-CNN, chaque formation RoI se voit attribuer une classe de vérité au sol. Donc, je suppose que quelque chose de similaire se produit ici?
thanasissdr
@Fathi Je suis totalement d'accord avec ce que vous dites, donc je suppose que vous êtes d'accord avec moi. Je veux dire que les auteurs du document original pour Faster R-CNN n'ont utilisé que deux classes (arrière-plan / objet) pour plus de simplicité, essayant d'expliquer comment RPN fonctionne, non? Donc, au lieu d'avoir seulement deux classes, je pourrais en avoir plus que deux et je suppose que je pourrais prendre la fonction connue de perte d'entropie croisée, non?
thanasissdr
@thanasissdr L'idée fondamentale derrière Faster R-CNN était que "quand les réseaux de neurones sont si bons dans tout le reste, pourquoi ne pas les utiliser aussi pour les propositions de régions?". En comparant le R-CNN rapide au R-CNN standard, la seule différence est que les propositions de RoI - qui sont à nouveau faites en utilisant les mêmes anciennes techniques, par exemple SelectiveSearch ou EdgeBoxes - sont mappées de l'image brute aux fonctionnalités convolutives, puis alimentées les FC. De cette façon, le processus de transmission directe de chaque RoI via CNN est omis.
Mahan Fathi
Dans Faster R-CNN, le RPN apprend à proposer des régions appropriées. Une fois le RPN terminé, le reste est similaire au Fast R-CNN, et les FC classent et régressent les propositions.
Mahan Fathi
@thanasissdr Oui. Nous sommes sur la même page. Je suppose que vous pouvez classer dans RPN, mais ce ne serait pas nécessaire puisque le FC net refait la classification et n'a aucune difficulté à rejeter les propositions indésirables. Pensez également au pipeline, comment allez-vous utiliser les scores de classification et comment ils pourraient vous aider? Ma position finale est, (arrière-plan / objet) la classification est une pierre angulaire de Faster R-CNN.
Mahan Fathi
1

J'ai lu cet article hier et, à première vue, cela me déroutait aussi. Après avoir relu, je suis arrivé à cette conclusion:

  • La dernière couche du réseau d'origine (ZF ou VGG-16) sert d'entrée au réseau de proposition de région et au pool de RoI. Dans le cas du VGG-16, cette dernière couche conv est un 7x7x512 (HxWxD).
  • Cette couche est mappée sur une couche de 512 dimensions avec une 3x3couche conv. La taille de sortie est 7x7x512(si un remplissage est utilisé).
  • Cette couche est mappée à une couche 7x7x(2k+4k)(par exemple 7x7x54) avec une 1x1couche conv pour chacune des kboîtes d'ancrage.

Maintenant, selon la figure 1 du document, vous pouvez avoir une pyramide d'images d'entrée (les mêmes images avec une échelle différente), une pyramide de filtres (filtres d'une échelle différente, dans la même couche) ou une pyramide de boîtes de référence. Ce dernier fait référence aux kboîtes d'ancrage de la dernière couche du réseau de propositions de région. Au lieu de filtres de tailles différentes qui sont empilés les uns sur les autres (le boîtier central), les filtres de taille et de rapport d'aspect différents sont empilés les uns sur les autres.

En bref, pour chaque point d'ancrage ( HxWpar exemple 7x7), une pyramide de boîtes de référence ( kpar exemple 9) est utilisée.

Pieter
la source
mais qu'est-ce qu'une boîte d'ancrage exactement? Le but de chaque boîte d'ancrage est-il utilisé comme entrée dans le RPN pour prédire un delta dans la largeur et la hauteur de la boîte d'ancrage pour chaque boîte d'ancrage considérée comme faisant partie du premier plan?
BadProgrammer
Le RPN prédit à la fois le décalage delta de l'emplacement au premier plan et le score d'objectivité. Ce dernier essaie de prédire explicitement s'il s'agit de l'arrière-plan ou du premier plan (voir également la note de bas de page 3).
Pieter
Pourriez-vous expliquer comment se 3x3traduit une couche conv 7x7? Dans le prototxt, il est indiqué que le remplissage est de 1 sur la dernière couche VGG16.
Klik