FPN(feature pyramid networks)

Jah ondertitel klopt, FPN is een zeer eenvoudige methode die met vrijwel elk model kan worden gebruikt om de resultaten te verbeteren. We zullen binnenkort ingaan op de technische aspecten van het artikel, maar voor deze blog zijn er enkele vereisten. Je moet een high-level idee hebben over de volgende Fast RCNN, Faster RCNN, anchor boxes, kennis van SSD zal van pas komen. Ik heb blogs voor al deze papers ook kunt u ze controleren (links aan het einde van deze blog). FPN is een relatief eenvoudiger als je alle randvoorwaarden goed begrijpt.

Image piramides(meerdere beelden van meerdere schalen) worden vaak gebruikt op het moment van voorspellingen om de resultaten te verbeteren. Maar het berekenen van resultaten met behulp van moderne deep learning-architecturen is vaak een duur proces in termen van zowel rekenkracht als tijd.

FPN is gebaseerd op het exploiteren van de inherente multi-scale piramidale hiërarchie van diepe CNN. Het is analoog aan het verschil tussen RCNN en Fast RCNN, RCNN is een regio-gebaseerde objectdetector waarin we eerst ROI’s vinden met behulp van een algoritme zoals selectief zoeken en dan deze ROI’s (ongeveer 2000) uit het beeld snijden en ze in CNN voeren om resultaten te krijgen en in Fast RCNN worden de eerste lagen van CNN gedeeld voor het volledige beeld en wordt het ROI-snijden gedaan op de geëxtraheerde feature map waardoor veel tijd wordt bespaard. In het geval van FPN, is het onderzoek gebaseerd op het exploiteren van de interne multi-scale natuur, en de beeldpiramide is op een of andere manier intern geïmplementeerd om de architectuur en het delen van de meeste delen van het netwerk. We zullen nu springen in technische details.

CNN is gebaseerd op de hiërarchische structuur waarin de resolutie van de feature map wordt verminderd na elke laag, maar semantiek vastgelegd door elke diepere laag is sterker dan de vorige laag. De semantisch sterkere kenmerken zijn ruimtelijk grover door downsampling. FPN creëert een architectuur waar de semantisch sterkere kenmerken worden samengevoegd met de kenmerken van de vorige lagen (die minder vaak zijn gesubsampled en dus meer nauwkeurige lokalisatie-informatie hebben).

De architectuur bestaat uit twee paden:

  1. Bottom-up pathway (Normale feed-forward CNN)
  2. Top-down pathway (Nieuwe architectuur gebruikt voor het samenvoegen van features)

FPN-architectuur Bron: FPN paper
  • Het is een normale feed-forward CNN-architectuur. In het artikel gebruikten de auteurs Resnet-architectuur voor de evaluatie van de prestaties. We zullen eerst de lagen C2, C3, C4, C5 noemen, dat zijn Conv 2,3,4 en 5 lagen in Resnet architectuur. De grootte van de kenmerkenkaart na toepassing van C2 is beeldgrootte/4 en deze ruimtelijke dimensie wordt na elke laag met een factor 2 gedownsampled.

Top-down traject (rechter piramide in de bovenstaande afbeelding)

In dit traject worden diepere kenmerken met behulp van laterale verbindingen samengevoegd met lagere kenmerken. Omdat het aantal kanalen van de lagen in de bottom-up route niet hetzelfde is, wordt eerst een 1*1 convolutie toegepast om een vast aantal kanalen voor elke laag te krijgen (deze dimensie wordt in het artikel 256 gehouden). De ruimtelijke grootte is ook verschillend, dus we upsamplen (2x) de diepere features zodat de ruimtelijke grootte van deze feature overeenkomt met een hogere resolutie feature map van de vorige laag in de bottom-down weg. Nu zijn de afmetingen van twee feature maps gelijk en worden ze samengevoegd door element-wise addition.

We kunnen dit begrijpen met een voorbeeld. Laten we zeggen dat onze beeldgrootte 512*512 is, nu zal de grootte van de feature map na elke convolutielaag (C2, C3, C4, C5) zijn. Het aantal kanalen van elke laag is . Nu passen we een 1*1 convolutie toe (met output aantal kanalen = 256) op de outputs van C2, C3, C4, C5 om een gelijk aantal kanalen te krijgen. We noemen deze tussenliggende kenmerken met hetzelfde aantal uitgangskanalen S2, S3, S4, S5, die overeenkomen met C2, C3, C4, C5. S5 wordt nu ge-upsampled naar 32*32 en samengevoegd met S4 door element-wise additie. Nu wordt deze output ge-upsampled naar 64*64 en samengevoegd met S3 enzovoort. De output van deze stap noemen we T2, T3, T4, T5.

Om het effect van aliasing door upsampling te verminderen wordt een 3*3 convolutie toegepast op T2, T3, T4, T5 om onze uiteindelijke kenmerkkaarten P2, P3, P4, P5 te krijgen, die corresponderen met C2, C3, C4, C5. Deze kenmerken worden gebruikt om de uiteindelijke classificatie- en regressiescores te genereren (bbox). De parameters voor de kop kunnen worden gedeeld en een aparte kop geeft geen extra voordeel.

Dat is het in de theorie van FPN. Maar we zullen zien hoe FPN kan worden geïmplementeerd voor Faster RCNN en Fast RCNN.

FPN voor Faster RCNN

Faster RCNN maakt gebruik van regio voorstel netwerk. RPN wordt gebruikt om bounding box voorstellen te genereren en deze voorstellen worden later gebruikt om uiteindelijke voorspellingen te genereren. RPN is een klein netwerk dat wordt geïmplementeerd over de geëxtraheerde kenmerken van de laatste laag (C5). Een 3*3 convolutie wordt toegepast op dit geëxtraheerde kenmerk, gevolgd door twee soortgelijke 1*1 convolutielagen (een voor classificatie en de andere voor regressie).

RPN wordt hier aangepast door eenvoudig een enkele schaal feature map te vervangen door FPN. Nu is RPN dus geïmplementeerd voor P2-P5 en niet alleen voor C5. Voor de training van RPN worden ankervakken van meerdere schalen gebruikt. Maar omdat de meerschaligheid nu inherent is aan het geëxtraheerde kenmerk, is het niet nodig ankervakken met meerdere schalen te hebben op elk van de niveaus. In plaats daarvan wordt aan elk niveau een ankerveld van één schaal toegekend. De grootte van de ankerdozen die in dit artikel gebruikt worden is {32², 64², 128², 256², 512²} voor {P2, P3, P4, P5, P6}. P6 wordt hier geïntroduceerd zodat een grote ankerdoos kan worden gebruikt. P6 wordt gesubsampled van P5 met stride 2. De ankerdozen van {1:1, 1:2, 2:1} aspect ratio’s wordt gebruikt.

Deze ankerdozen worden gematched met ground truth dozen en het model wordt getraind van begin tot eind.

FPN voor Fast RCNN

Implementatie van de FPN in fast RCNN is zeer eenvoudig. Snelle RCNN maakt gebruik van regio voorstel technieken zoals selectief zoeken naar ROI te genereren en maakt gebruik van ROI pooling op de single-scale feature map om de uiteindelijke resultaten te krijgen. Door het toepassen van FPN zullen we meerdere feature maps van verschillende schalen en we moeten een strategie om bepaalde ROI toewijzen aan feature map (nu hebben we meerdere feature maps, welke feature map te gebruiken voor bepaalde ROI?).

De gebruikte feature map wordt berekend met:

Hier 224 is de trainingsgrootte van het beeld in de imagenet dataset (het gebruikte resnet wordt behouden op imagenet). k0 is de feature map waaraan ROI van grootte 224 is toegewezen, w en h is breedte en hoogte van ROI. Het hoofd heeft gedeelde parameters voor elke feature map.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.