Szybsze zakotwiczenie RCNN

10

Co w artykule „Szybszy RCNN”, gdy mówimy o zakotwiczeniu, co oznaczają przez użycie „piramid pól referencyjnych” i jak to się robi? Czy to tylko oznacza, że ​​w każdym punkcie kotwiczenia W * H * k generowana jest ramka ograniczająca?

Gdzie W = szerokość, H = wysokość, a k = liczba współczynników kształtu * skale num

link do artykułu: https://arxiv.org/abs/1506.01497

BadProgrammer
źródło
To jest bardzo dobre pytanie.
Michael R. Chernick

Odpowiedzi:

10

Kotwice wyjaśnione

Kotwice

Na razie zignoruj ​​fantazyjne określenie „piramidy pól referencyjnych”, kotwice są niczym innym jak prostokątami o stałej wielkości, które mają być dostarczane do Regionalnej Sieci Propozycji. Zakotwiczenia są zdefiniowane na ostatniej splotowej mapie obiektów, co oznacza, że ​​jest ich , ale odpowiadają obrazowi. Dla każdej kotwicy wówczas RPN przewiduje prawdopodobieństwo ogólnego umieszczenia obiektu i czterech współrzędnych korekcyjnych w celu przesunięcia i zmiany rozmiaru kotwicy do właściwej pozycji. Ale w jaki sposób geometria kotwic ma coś wspólnego z RPN? (HfeaturemapWfeaturemap)(k)

Kotwice faktycznie pojawiają się w funkcji Loss

Podczas szkolenia RPN najpierw do każdej kotwicy przypisywana jest etykieta klasy binarnej. Zakotwiczenia z przecięciem przez Unię ( IoU ) pokrywają się z polem prawdziwości gruntu, wyższym niż określony próg, mają przypisaną etykietę dodatnią (podobnie zakotwiczenia z IoU mniejszym niż określony próg będą oznaczone jako Negatywne). Te etykiety są następnie używane do obliczania funkcji utraty:

Funkcja utraty RPN

p jest wyjściem głowicy klasyfikacyjnej RPN, który określa prawdopodobieństwo zakotwiczenia zawierającego obiekt. W przypadku kotwic oznaczonych jako Negatywne nie dochodzi do strat w wyniku regresji - , etykieta prawdziwości gruntu wynosi zero. Innymi słowy, sieć nie przejmuje się wyjściowymi współrzędnymi dla ujemnych kotwic i jest szczęśliwa, dopóki poprawnie je klasyfikuje. W przypadku kotwic dodatnich brana jest pod uwagę utrata regresji. jest wyjściem głowy regresji RPN, wektorem reprezentującym 4 sparametryzowane współrzędne przewidywanej ramki granicznej. Parametryzacja zależy od geometrii kotwy i wygląda następująco:pt

wprowadź opis zdjęcia tutaj

gdzie i h oznaczają współrzędne środkowe ramki oraz jej szerokość i wysokość. Zmienne i dotyczą odpowiednio pola przewidywanego, pola zakotwiczenia i pola prawdziwości podłoża (podobnie dla ).x,y,w,x,xa,xy,w,h

Zauważ też, że kotwice bez etykiety nie są klasyfikowane ani przekształcane, a RPM po prostu wyrzuca je z obliczeń. Po wykonaniu zadania RPN i wygenerowaniu propozycji reszta jest bardzo podobna do szybkich R-CNN.

Mahan Fathi
źródło
@Fathi A co, jeśli mamy wiele zajęć? O ile mi wiadomo, w Fast R-CNN każdemu treningowi RoI przypisana jest jedna naziemna klasa prawdy. Myślę, że dzieje się tutaj coś podobnego?
thanasissdr
@Fathi Całkowicie zgadzam się z tym, co mówisz, więc przypuszczam, że się ze mną zgadzasz. Chodzi mi o to, że autorzy oryginalnej pracy dla Szybszego R-CNN użyli tylko dwóch klas (tło / obiekt) dla uproszczenia, próbując wyjaśnić, jak działa RPN, prawda? Więc zamiast mieć tylko dwie klasy, mógłbym mieć więcej niż tylko dwie i chyba mógłbym przyjąć znaną funkcję utraty entropii krzyżowej, prawda?
thanasissdr
@thanasissdr Podstawową ideą Szybszego R-CNN było to, że „gdy sieci neuronowe są tak dobre we wszystkim innym, dlaczego nie wykorzystać ich również do propozycji regionalnych?”. Porównując szybki R-CNN ze standardowym R-CNN, jedyną różnicą jest to, że propozycje RoI - które są ponownie tworzone przy użyciu tych samych starych technik, np. SelectiveSearch lub EdgeBoxes - są mapowane z surowego obrazu na funkcje splotowe, a następnie podawane do FC. W ten sposób proces przekazywania do przodu każdego RoI przez CNN jest pomijany.
Mahan Fathi
W szybszym R-CNN RPN uczy się proponować właściwe regiony. Po zakończeniu RPN reszta jest podobna do Fast R-CNN, a FC klasyfikują i wycofują propozycje.
Mahan Fathi
@thanasissdr Tak. Jesteśmy na tej samej stronie. Przypuszczam, że można sklasyfikować w RPN, ale byłoby to zbędne, ponieważ sieć FC ponownie dokonuje klasyfikacji i nie ma trudności z odrzuceniem niepotrzebnych propozycji. Pomyśl także o potoku, w jaki sposób zamierzasz wykorzystać wyniki klasyfikacji i jak by ci pomogły? Moje ostatnie stanowisko jest takie, że klasyfikacja (tła / obiektu) jest kamieniem węgielnym w Szybszym R-CNN.
Mahan Fathi
1

Przeczytałem ten artykuł wczoraj i, na pierwszy rzut oka, było to również dla mnie mylące. Po ponownym przeczytaniu doszedłem do tego wniosku:

  • Ostatnia warstwa oryginalnej sieci (ZF lub VGG-16) służy jako dane wejściowe dla sieci propozycji regionu i puli RoI. W przypadku VGG-16 ta ostatnia warstwa konwekcyjna to a 7x7x512 (HxWxD).
  • Ta warstwa jest odwzorowana na 512-wymiarową warstwę z 3x3warstwą konwekcyjną. Rozmiar wyjściowy to 7x7x512(jeśli zastosowano padding).
  • Warstwa ta jest odwzorowana na 7x7x(2k+4k)(np. 7x7x54) Warstwę z 1x1warstwą konwekcyjną dla każdej kskrzynki kotwiczącej.

Teraz, zgodnie z rysunkiem 1 w artykule, możesz mieć piramidę obrazów wejściowych (te same obrazy o innej skali), piramidę filtrów (filtry o innej skali, na tej samej warstwie) lub piramidę pól referencyjnych. Ten ostatni odnosi się do kramek kontrolnych na ostatniej warstwie sieci propozycji regionu. Zamiast filtrów o różnych rozmiarach ułożonych jeden na drugim (środkowa część), filtry o innym rozmiarze i proporcjach są ułożone jeden na drugim.

W skrócie, na każdym punkcie zakotwiczenia ( HxWnp 7x7) piramidy pola odniesienia ( kEG 9) jest używany.

Pieter
źródło
ale czym dokładnie jest skrzynia kotwiczna? Czy przeznaczenie każdej skrzynki kontrolnej: jest używane jako dane wejściowe do RPN do przewidywania delty szerokości i wysokości skrzynki kontrolnej dla każdej skrzynki kontrolnej uważanej za część pierwszego planu?
BadProgrammer,
RPN przewiduje zarówno przesunięcie delty położenia pierwszego planu, jak i wynik za obiektowość. Ten ostatni próbuje jednoznacznie przewidzieć, czy jest to tło, czy pierwszy plan (patrz także przypis 3).
Pieter
Czy możesz wyjaśnić, jak tłumaczy się 3x3warstwa konwekcyjna 7x7? W prototeksie napisano, że wypełnienie to 1 na ostatniej warstwie VGG16.
Klik