encyklopedia.run.place

SIFT (Scale‑Invariant Feature Transform)

SIFT – skrót od Scale‑Invariant Feature Transform – jest to algorytm wykrywania i opisu punktów charakterystycznych (kluczowych) w obrazach cyfrowych. Został opracowany w 1999 r. przez David Lowe i opublikowany w pełnej wersji w 2004 r. Algorytm jest powszechnie stosowany w dziedzinach takich jak wizja maszynowa, rozpoznawanie obrazów oraz robotyka.

Historia

Pierwsze prace nad metodami wykrywania charakterystycznych punktów w obrazach pojawiły się już w latach 80. XX‑wiego wieku, jednak brakowało rozwiązania odpornych na skalowanie i obrót. David Lowe wprowadził koncepcję skalowej niezmienniczości, co umożliwiło wykrywanie tych samych cech w obrazach o różnych rozdzielczościach i orientacjach. W 2004 r. opisane w pracy „Distinctive Image Features from Scale‑Invariant Keypoints” SIFT stało się jednym z najważniejszych narzędzi w przetwarzaniu obrazu.

Zasada działania

Algorytm SIFT składa się z czterech głównych etapów:

  1. Wykrywanie ekstremów w przestrzeni skali – budowana jest piramida gaussowska i przestrzeń kontrastowa (ang. Difference‑of‑Gaussians, DoG). W tej przestrzeni znajduję się lokalne maksima i minima, które zostają uznane za potencjalne kluczowe punkty.
  2. Precyzyjna lokalizacja punktów – dla każdego punktu przeprowadzana jest iteracyjna optymalizacja, aby usunąć przycięcia krawędzi i niską stabilność.
  3. Przypisanie orientacji – obliczana jest dominantna orientacja w otoczeniu punktu na podstawie gradientów, co zapewnia niezmienność względem obrotu.
  4. Tworzenie deskryptora – w oknie 16×16 pikseli wokół punktu budowany jest histogram gradientów podzielony na 4×4 sekcje, z których każda zawiera 8 binów orientacji. Ostatecznie 128‑elementowy wektor stanowi opis cechy.

Zastosowania

SIFT znalazł szerokie zastosowanie w licznych obszarach technologii i nauki:

Implementacje i dostępność

Algorytm jest dostępny w wielu otwarto‑źródłowych bibliotekach, m.in. w:

Krytyka i ograniczenia

Mimo licznych zalet, SIFT posiada również pewne wady:

  • Wysokie zapotrzebowanie na moc obliczeniową, co utrudnia jego zastosowanie w systemach o ograniczonych zasobach.
  • Patenty (w niektórych jurysdykcjach) związane z SIFT ograniczały w przeszłości wkładanie algorytmu do niekomercyjnych projektów open source.
  • W sytuacjach z bardzo niewielką liczbą cech lub dużym szumem algorytm może generować fałszywe dopasowania.

Rozwinięcia i alternatywy

W odpowiedzi na ograniczenia SIFT opracowano szereg szybszych i/lub mniej kosztownych metod:

  • SURF (Speeded‑Up Robust Features) – przyspieszona wersja inspirowana SIFT.
  • ORB (Oriented FAST and Rotated BRIEF) – metoda łącząca szybkość FAST z deskryptorem BRIEF.
  • AKAZE – algorytm oparty na nieliniowej skali i szybkich deskryptorach.
  • Sieci neuronowe typu CNN uczące się cech (np. DeepMatching).

Bibliografia

  1. Lowe, D. G. „Distinctive Image Features from Scale‑Invariant Keypoints”. International Journal of Computer Vision, 2004.
  2. Bay, H., Tuytelaars, T., Van Gool, L. „SURF: Speeded Up Robust Features”. Computer Vision – ECCV 2006.
  3. Rublee, E., Rabaud, V., Konolige, K., Bradski, G. „ORB: an efficient alternative to SIFT or SURF”. ICCV 2011.