FPN(feature pyramid networks)

Da, subtitlul este corect, FPN este o metodă foarte simplă care poate fi folosită cu aproape orice model pentru a îmbunătăți rezultatele. Vom trece în curând la aspectele tehnice ale lucrării, dar pentru acest blog, există câteva condiții prealabile. Ar trebui să aveți o idee de nivel înalt despre următoarele Fast RCNN, Faster RCNN, anchor boxes, cunoștințele despre SSD vă vor fi utile. Am bloguri pentru toate aceste lucrări, de asemenea, le puteți verifica (linkuri la sfârșitul acestui blog). FPN este o metodă relativ mai simplă dacă înțelegeți bine toate premisele.

Piramidele de imagini(mai multe imagini de mai multe scări) sunt adesea folosite în momentul predicțiilor pentru a îmbunătăți rezultatele. Dar calcularea rezultatelor folosind arhitecturi moderne de învățare profundă este adesea un proces costisitor atât din punct de vedere al calculului, cât și al timpului.

FPN se bazează pe exploatarea ierarhiei piramidale la mai multe scări inerente a CNN-ului profund. Este analog cu diferența dintre RCNN și Fast RCNN, RCNN este un detector de obiecte bazat pe regiuni în care mai întâi găsim ROI-uri folosind un algoritm cum ar fi căutarea selectivă și apoi decupăm aceste ROI-uri (aproximativ 2000) din imagine și le introducem în CNN pentru a obține rezultate, iar în Fast RCNN straturile inițiale ale CNN sunt partajate pentru întreaga imagine, iar decuparea ROI-urilor se face pe harta de caracteristici extrasă, economisind astfel mult timp. În cazul FPN, cercetarea se bazează pe exploatarea naturii interne la mai multe scări, iar piramida imaginii este cumva implementată în interiorul arhitecturii și partajarea majorității părților rețelei. Vom trece acum la detalii tehnice.

CNN se bazează pe structura ierarhică în care rezoluția hărții caracteristicilor este redusă după fiecare strat, dar semantica captată de fiecare strat mai profund este mai puternică decât cea a stratului anterior. Caracteristicile mai puternice din punct de vedere semantic sunt mai grosiere din punct de vedere spațial din cauza reducerii eșantionării. FPN creează o arhitectură în care trăsăturile mai puternice din punct de vedere semantic sunt îmbinate cu trăsăturile din straturile anterioare (care sunt subeșantionate de mai puține ori și, prin urmare, au informații de localizare mai precise).

Arhitectura este formată din două căi:

  1. Calea de jos în sus (CNN normal de tip feed-forward)
  2. Calea de sus în jos (Noua arhitectură utilizată pentru fuzionarea trăsăturilor)

Arhitectura FPN Sursa: FPN paper

  • Este o arhitectură CNN normală de tip feed-forward. În lucrare, autorii au folosit arhitectura Resnet pentru evaluarea performanțelor. Vom numi mai întâi straturile ca fiind C2, C3, C4, C5, care sunt Conv 2,3,4 și 5 straturi în arhitectura Resnet. Dimensiunea hărții caracteristicilor după aplicarea C2 este imagesize/4 și această dimensiune spațială este micșorată cu un factor de 2 după fiecare strat.

Calea de sus în jos (piramida din dreapta în imaginea de mai sus)

În această cale, caracteristicile mai profunde sunt îmbinate cu caracteristicile inferioare folosind conexiuni laterale. Deoarece numărul de canale ale straturilor din calea ascendentă nu este același, se aplică mai întâi o convoluție 1*1 pentru a obține un număr fix de canale pentru fiecare strat (această dimensiune este păstrată la 256 în lucrare). Dimensiunea spațială este, de asemenea, diferită, prin urmare, supraeșantionăm (2x) trăsăturile mai profunde, astfel încât dimensiunea spațială a acestei trăsături să se potrivească cu o hartă a trăsăturilor de rezoluție mai mare a stratului anterior din calea de jos în jos. Acum, dimensiunile celor două hărți de caracteristici sunt aceleași și ele sunt fuzionate prin adunare în funcție de elemente.

Putem înțelege acest lucru cu un exemplu. Să spunem că dimensiunea imaginii noastre este de 512*512, acum dimensiunea hărții caracteristice după fiecare strat de convoluție (C2, C3, C4, C5) va fi . Numărul de canale de ieșire al fiecărui strat este . Acum aplicăm o convoluție 1*1 (cu un număr de canale de ieșire = 256) la ieșirile din C2, C3, C4, C5 pentru a obține un număr egal de canale. Vom numi aceste caracteristici intermediare cu același număr de canale de ieșire S2, S3, S4, S5 corespunzătoare lui C2, C3, C4, C5. Acum, S5 este supraeșantionat la 32*32 și fuzionat cu S4 folosind adunarea în funcție de elemente. Acum, această ieșire va fi supraeșantionată la 64*64 și va fi îmbinată cu S3 și așa mai departe. Vom numi ieșirile din această etapă T2, T3, T4, T5.

Pentru a reduce efectul de aliasing din cauza supraeșantionării, se aplică o convoluție 3*3 la T2, T3, T4, T5 pentru a obține hărțile caracteristice finale P2, P3, P4, P5 corespunzătoare lui C2, C3, C4, C5. Aceste caracteristici sunt utilizate pentru a genera scorurile finale de clasificare și regresie (bbox). Parametrii pentru cap pot fi partajați și un cap separat nu oferă niciun beneficiu suplimentar.

Asta este tot în teoria FPN. Dar vom vedea cum poate fi implementată FPN pentru Faster RCNN și Fast RCNN.

FPN pentru Faster RCNN

Faster RCNN utilizează rețeaua de propunere de regiune. RPN este utilizată pentru a genera propuneri de cutii de delimitare, iar aceste propuneri sunt utilizate ulterior pentru a genera predicții finale. RPN este o rețea mică care este implementată peste caracteristicile extrase din ultimul strat (C5). O convoluție 3*3 este aplicată acestei caracteristici extrase, urmată de două straturi similare de convoluție 1*1 (unul pentru clasificare și celălalt pentru regresie).

RPN este adaptată aici prin simpla înlocuire a unei hărți de caracteristici la o singură scară cu FPN. Astfel, acum RPN este implementat pentru P2-P5 și nu doar pentru C5. Pentru antrenarea RPN, se utilizează cutii de ancorare de mai multe scări. Dar, din moment ce scara multiplă este acum inerentă caracteristicii extrase, nu este necesar să existe cutii de ancorare cu scări multiple pe niciunul dintre niveluri. În schimb, fiecărui nivel i se atribuie o singură casetă de ancorare pe scară. Dimensiunea cutiilor de ancorare utilizate în lucrare este {32², 64², 128², 256², 512²} pentru {P2, P3, P4, P5, P6}. P6 este introdus aici pentru a permite utilizarea unei cutii de ancorare de dimensiuni mari. P6 este subeșantionat din P5 cu pasul 2. Se utilizează cutii de ancorare cu rapoarte de aspect {1:1, 1:2, 2:1}.

Aceste cutii de ancorare sunt potrivite cu cutii de adevăr la sol și modelul este antrenat de la un capăt la altul.

FPN pentru RCNN rapid

Implementarea FPN în RCNN rapid este foarte simplă. Fast RCNN utilizează tehnici de propunere a regiunilor, cum ar fi căutarea selectivă, pentru a genera ROI și utilizează punerea în comun a ROI pe harta caracteristicilor la o singură scară pentru a obține rezultatele finale. Prin aplicarea FPN vom avea mai multe hărți de caracteristici la scări diferite și avem nevoie de o strategie pentru a atribui un ROI dat unei hărți de caracteristici (acum avem mai multe hărți de caracteristici, ce hartă de caracteristici să folosim pentru un ROI dat?).

Harta caracteristicilor utilizată este calculată folosind:

Aici 224 este dimensiunea de instruire a imaginii din setul de date imagen (rețeaua utilizată este reținută în imagenet). k0 este harta de caracteristici căreia i se atribuie ROI de dimensiunea 224, w și h sunt lățimea și înălțimea ROI. Capul are parametri partajați pentru fiecare hartă de caracteristici.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.