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.
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
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.
Jak niski jest region środkowy ale high.
3)
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.2
ciągle się powtarza, bez wyraźnego określenia jego pochodzenia.
5.
Macierz Hesji reprezentowana w kategoriach L
splotu 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ść w
wynosi:
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.
Odpowiedzi:
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).
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 kolumnie∂x = A . Następnie, przechodząc z białego na czarny, otrzymujesz przeciwną sumę:∑wszystkie piksele w kolumnie∂x = - A . Zatem masz małe∑ ∂x 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ę .
źródło
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
sigma
wartoś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).źródło