Zrozumienie procesu obliczania funkcji SURF

9

Czytałem więc artykuł na temat SURF (Bay, Ess, Tuytelaars, Van Gool: Speeded-Up Robust Features (SURF) ) i nie mogę zrozumieć tego akapitu poniżej:

Ze względu na zastosowanie filtrów pudełkowych i zintegrowanych obrazów, nie musimy iteracyjnie stosować tego samego filtra do wydruku poprzednio filtrowanej warstwy, ale zamiast tego możemy zastosować filtry pudełkowe o dowolnym rozmiarze z dokładnie taką samą prędkością bezpośrednio na oryginalnym obrazie i nawet równolegle (chociaż ten ostatni nie jest tutaj wykorzystywany). Dlatego przestrzeń skali jest analizowana przez skalowanie w górę rozmiaru filtra zamiast iteracyjnego zmniejszania rozmiaru obrazu, rysunek 4.

This is figure 4 in question.

Rycina 4

PS: Artykuł zawiera wyjaśnienie integralnego obrazu, jednak cała jego treść oparta jest na powyższym akapicie. Jeśli ktoś przeczytał ten artykuł, możesz krótko wspomnieć, co się tutaj dzieje. Całe matematyczne wyjaśnienie jest dość skomplikowane, aby mieć dobre zrozumienie, więc potrzebuję pomocy. Dzięki.

Edytuj, kilka problemów:

1.

Każda oktawa jest podzielona na stałą liczbę poziomów skali. Ze względu na dyskretną naturę całek, minimalna różnica skali między 2 kolejnymi skalami zależy od długości lo dodatnich lub ujemnych płatów częściowej pochodnej drugiego rzędu w kierunku pochodnej (x lub y), która jest ustawiona na jedna trzecia długości rozmiaru filtra. W przypadku filtra 9x9 ta długość lo wynosi 3. Dla dwóch kolejnych poziomów musimy zwiększyć ten rozmiar o co najmniej 2 piksele (jeden piksel z każdej strony), aby utrzymać nierówny rozmiar, a tym samym zapewnić obecność centralnego piksela . Powoduje to całkowity wzrost rozmiaru maski o 6 pikseli (patrz rysunek 5).

Figure 5

Rycina 5

Nie mogłem zrozumieć linii w danym kontekście.

Dla dwóch kolejnych poziomów musimy zwiększyć ten rozmiar o co najmniej 2 piksele (jeden piksel z każdej strony), aby utrzymać nierówny rozmiar, a tym samym zapewnić obecność środkowego piksela.

Wiem, że starają się zrobić coś z długością obrazu, nawet jeśli próbują to zrobić dziwnie, tak aby istniał centralny piksel, który pozwoli im obliczyć maksymalny lub minimalny gradient pikseli. Jestem trochę niepewny co do kontekstowego znaczenia.

2)

Do obliczenia deskryptora używana jest falka Haara.

Haar Wavelet

Jak niski jest region środkowy  rexale high. |rex|

3)

Inny

Jaka jest potrzeba posiadania filtra przybliżonego?

4. Nie mam problemu ze sposobem, w jaki odkryli rozmiar filtra. „Zrobili” coś empirycznie. Mam jednak dokuczliwy problem z tym fragmentem

Wyjściowy filtr 9x9, wprowadzony w poprzednim rozdziale, jest uważany za początkową warstwę skali, którą będziemy odnosić jako skalę s = 1,2 (przybliżenie pochodnych gaussowskich σ = 1,2).

Jak dowiedzieli się o wartości σ. Ponadto, w jaki sposób obliczenia skalowania wykonane pokazano na poniższym obrazku. Powodem, dla którego mówię o tym obrazie, jest to, że wartość s=1.2ciągle się powtarza, bez wyraźnego określenia jego pochodzenia. Skaluj obraz

5. Macierz Hesji reprezentowana w kategoriach Lsplotu gradientu drugiego rzędu filtru Gaussa i obrazu.

Mówi się jednak, że „przybliżona” wyznacznik zawiera tylko terminy obejmujące filtr Gaussa drugiego rzędu.

Wartość wwynosi:

Moje pytanie, dlaczego wyznacznik jest obliczany w ten sposób powyżej i jaki jest związek między przybliżoną macierzą Hesji i Hesji.

motiur
źródło
Hej! Dodałem nazwiska autorów i tytuł artykułu do twoich pytań, mam nadzieję, że nie masz nic przeciwko. Po pierwsze, umożliwia przeszukiwanie artykułu, nawet jeśli link przestanie działać. Po drugie, jako ktoś, kto prowadzi badania, uważam, że podanie autorom ich nazwisk i nazwisk publikacji jest co najmniej możliwe, aby uznać ich dzieło :)
penelopa
@penelope: Bałem się, że ludzie będą głosować za mną w zapomnienie.
motiur
Myślę, że to naprawdę miłe pytanie, jedno z bardziej interesujących ostatnio. Sam nigdy nie wchodziłem w SURF, ale jutro mógłbym rzucić okiem i sprawdzić, czy mogę się przyłączyć, pytanie mnie zainteresowało :) i PS: jeśli robisz to w ramach „oficjalnego” projektu Uni , Jestem pewien, że twój przełożony chętnie ci pomoże (szczególnie jeśli jesteś na poziomie magisterskim). Częścią ich pracy jest nauka czytania literatury naukowej.
penelopa
PPS: możesz zredagować swoje pytanie, aby dodać krótkie wyjaśnienie pojęć integralny obraz i filtr pudełkowy : zrozumienie tego, co rozumiesz, prawdopodobnie pomoże nam zrozumieć to, czego nie rozumiesz;)
penelopa
@penelope: Jesteś ładną dziewczyną / facetem, cokolwiek. I nie, muszę przejrzeć literaturę tego artykułu, przeczytałem ten napisany przez Davida Lowe'a zarówno w 2004, jak i 1999 r. Ten był dość zrozumiały, a do tego był miły wykład na youtube. Problem polega na tym, że w tekście wykorzystano mnóstwo terminów matematycznych, takich jak SURF. Jeśli nie masz w głowie modelu matematycznego, trudno jest zobaczyć główny pomysł.
mot

Odpowiedzi:

10

Co to jest SURF?

Aby poprawnie zrozumieć, co się dzieje, musisz także zapoznać się z SIFT : SURF jest w zasadzie przybliżeniem SIFT. Teraz prawdziwe pytanie brzmi: co to jest SIFT? .

SIFT to zarówno wykrywacz kluczowych punktów, jak i deskryptor kluczowych punktów . W części detekcyjnej SIFT jest zasadniczo wieloskalowym wariantem klasycznych detektorów narożnych, takich jak narożnik Harrisa, który ma możliwość automatycznego dostrajania skali. Następnie, biorąc pod uwagę lokalizację i rozmiar łatki (wyprowadzony ze skali), może obliczyć część deskryptora.

SIFT jest bardzo dobry w dopasowywaniu lokalnie afinicznych fragmentów obrazów, ale ma jedną wadę: obliczanie jest kosztowne (tj. Długie). Dużo czasu poświęca się na obliczenie skali skali Gaussa (w części detektora), a następnie na obliczenie histogramów kierunku gradientu (dla części deskryptora).

Zarówno SIFT, jak i SURF można postrzegać jako różnicę Gaussa z automatycznym wyborem skali (tzn. Rozmiarów Gaussa). W ten sposób konstruujesz najpierw przestrzeń skali, w której obraz wejściowy jest filtrowany w różnych skalach. Skala-przestrzeń może być postrzegana jako piramida, w której dwa kolejne obrazy są powiązane zmianą skali (tj. Zmienił się rozmiar gaussowskiego fiuta dolnoprzepustowego), a następnie skale są pogrupowane według oktaw (tj. Duża zmiana w rozmiarze filtra Gaussa).

  • W SIFT odbywa się to poprzez wielokrotne filtrowanie wejścia za pomocą Gaussa o stałej szerokości, aż do osiągnięcia skali następnej oktawy.
  • W SURF nie ponoszą Państwo żadnej kary za czas działania wynikający z wielkości filtra Gaussa dzięki zastosowaniu sztuczki zintegrowanego obrazu. W ten sposób obliczasz bezpośrednio obraz filtrowany w każdej skali (bez użycia wyniku w poprzedniej skali).

Część przybliżająca

Ponieważ obliczanie skali skali Gaussa i histogramów kierunku gradientu jest długie, dobrym pomysłem (wybranym przez autorów SURF) jest zastąpienie tych obliczeń szybkimi przybliżeniami.

Autorzy zauważyli, że małych Gaussów (takich jak te używane w SIFT) można dobrze przybliżyć przez całki kwadratowe (znane również jako rozmycie pola ). Te średnie prostokątne mają tę fajną właściwość, że można je bardzo szybko uzyskać dzięki zintegrowanej sztuczce obrazu.

Ponadto Gaussowska skala przestrzeni nie jest właściwie używana sama w sobie , ale do przybliżenia Laplaciana Gaussa (można to znaleźć w pracy SIFT). Dlatego nie potrzebujesz tylko rozmytych obrazów Gaussa, ale ich pochodne i różnice. Tak więc, popychasz nieco dalej ideę przybliżenia Gaussa przez pole: najpierw wyprowadzaj Gaussa tyle razy, ile potrzeba, a następnie przybliżaj każdy płat o pole o odpowiednim rozmiarze. W końcu otrzymasz zestaw funkcji Haar.

Przyrost o 2

To tylko artefakt implementacyjny, jak się domyślacie. Celem jest posiadanie centralnego piksela. Deskryptor funkcji jest obliczany względem środka opisywanej łatki obrazu.

Środkowy region

Przechodząc od czarnego promienia do białego promienia, masz coś takiego wszystkie piksele w kolumniex=ZA. Następnie, przechodząc z białego na czarny, otrzymujesz przeciwną sumę:wszystkie piksele w kolumniex=-ZA. Zatem masz małex dla okna, ale wyższa suma wielkości.

magiczny numer

Pierwsza skala jest uzyskiwana przez zastosowanie rozmycia za pomocą σ=1.2(lub 1.4 w niektórych dokumentach). Wynika to z faktu, że naturalny (rzeczywisty) ostry obraz można uznać za wynik splotu idealnego (bez aliasingu) obrazu z ziarnem rozmycia o szerokościσ=1.2. Naprawdę nie pamiętam, skąd pochodzi, ale zostało to również wyraźnie zbadane w pracy Guoshena Yu nad A-SIFT, więc możesz sprawdzić tę stronę .

sansuiso
źródło
Dzięki za wyjaśnienie, wyczyściłem niektóre rzeczy, pozwól mi zobaczyć, czy ktoś ma bardziej skomplikowane zrozumienie.
motiur
Zredagowałem odpowiedź dotyczącą twoich nowych pytań.
sansuiso
O tak, dzięki. Papier jest dość długi, więc wiele rzeczy idzie na raz.
motiur
Chcesz zobaczyć moją ostatnią edycję?
motiur
1
Jest to połączenie powszechnej wspólnej wiedzy (małe Gaussianie są dobrze przybliżone przez rozmycie pól), eksperymentów (minimalne / maksymalne rozmiary obiektów będących przedmiotem zainteresowania w rzeczywistych obrazach) i matematyki (biorąc pod uwagę początkowy rozmiar łatki, obliczanie prostokątów i Gaussów, które pasują) .
sansuiso
4

Aby zidentyfikować potencjalne punkty zainteresowania, często wykorzystuje się funkcję różnicy Gaussa (DOG) do przetwarzania obrazu, co czyni go niezmiennym w skali i orientacji.

W SIFT piramidy obrazu są tworzone przez filtrowanie każdej warstwy za pomocą DOG rosnących sigmawartości i uwzględnianie różnicy.

Z drugiej strony, SURF stosuje znacznie szybsze przybliżenie pochodnych cząstkowych drugiego rzędu Gaussa z Laplacianem Gaussa (LoG) i filtrami kwadratowymi o różnych rozmiarach (9 * 9, 15 * 15, ...). Koszt obliczeniowy jest niezależny od rozmiaru filtra. Nie ma próbkowania (zmiany sigma) w dół dla wyższych poziomów w piramidzie, ale jedynie zwiększenie wielkości filtra, co skutkuje uzyskaniem obrazów o tej samej rozdzielczości.

EDYTOWAĆ

Jedna dodatkowa uwaga: autorzy w swojej pracy dalszego uproszczenia Gaussa drugą pochodną w 4 kierunkach (x, y, xy, yx) z jądrem [1 -2 1], [1 -2 1]', [1 -1;-1 1], i [-1 1;1 -1]. Gdy rozmiar filtra wzrasta, wystarczy rozszerzyć uproszczone regiony jądra, aby uzyskać większy. Jest to odpowiednik DOG z różnymi skalami (krzywa LoG ma taki sam kształt jak DOG, a rozmiar filtra sprawia, że ​​ich szerokość również jest równa).

lennon310
źródło