Ile było wystąpień obiektu podczas pojedynczej gry?
Jaką szybkość jesteśmy w stanie uzyskać dla jakiej rozdzielczości?
Klasyfikator Haar’a?
SURF jest algorytmem za pomocą, którego możemy wydobywać z obrazu obiekty. Częściowo wzorowanym jest na algoritmie SIFT lecz jest kilka razy od niego szybszy.
Do przyspieszenia obliczeń algorytm wykorzystuje pośrednią reprezentacje obrazu, czyli tzw. zintegrowany obraz. Jest on obliczany na podstawie obrazu wejściowego poprzez zsumowanie wartości pikseli. Dzięki zastosowaniu tej metody rozmiar obrazu nie ma wpływu na czas działania algorytmu. Pozwala to na przetwarzanie obrazów o dużej rozdzielczości.
Algorytm ten jest również niewrażliwy na skalowanie i obrót rozpoznawanego obiektu. Jest to szczególnie ważne gdy interesujące nas obiekty lub nasza kamera znajdują się w innych orientacjach niż standardowo. Często zdarza się to w urządzeniach mobilnych lub robotach. Zastosowanie tej metody daje mu przewagę nad algorytmem HAAR.
Realizacja algorytmu SURF w OpenCV w pierwszej kolejności zamienia obraz na obraz w skali szarości. Później odpowiednie funkcję wyodrębniają tzw punkty charakterystyczne (keypoints), a następnie dla każdego z nich obliczane są 64 elementowe wektory zwane deskryptorami (descriptors). Dla każdego z nich wyznaczany jest okrąg o środku w danym punkcie i promieniu o wielkości zależnej od siły deskryptora.
gdzie L jest pochodną drugiego rzędu z obrazu w skali szarości. W implementacjach przekształcenia te są zastępowane przez prostszymi filtrami. Następnie jest interpolowane w skali obrazu i jego przestrzeni, aby posiadało właściwość niezależności od skali.
Działanie algorytmu oparte jest o macierz zwaną Hessjanem, która zdefiniowana została następująco:
Najpierw punktowi kluczowemu przypisuje się orientację. Następnie dookoła punktu budowany jest kwadratowy obszar. Potem obszar ten jest ustawiany zgodnie z wyznaczoną orientacją dla punktu.
Obszar jest podzielony na mniejsze obszary o wymiarach 4x4. Dzięki temu zachowujemy istotne przestrzenne informacje. Dla każdego z podobszarów liczymy cechy dla przykładowych punktów rozłożonych regularnie w wierzchołkach siatki 5x5. Przy pomocy Falki Haara obliczamy wartości dx oraz dy. Następnie sumujemy je po każdym z podregionów i budujemy pierwszy zbiór cech (wektor). Obliczone wartości wraz wartościami bezwzględnymi tworzą czterowymiarowy deskryptor. Obliczenia wykonujemy dla każdego z podregionów o rozmiarze 4x4, mamy dzięki temu wektor cech o długości 64.
Algorytm ten powstał w celu przyspieszenia algorytmu SIFT. Jest mniej odporny i mniej dokładny, jednak znacznie szybszy. Szacuje się, że przy utracie 10% dokładności, pracuje 3 razy szybciej. W celu znalezienia skali przestrzennej nie korzysta z aproksymacji Lapasjanu, filtrów Gaussowskich ani różnicy Gaussowskiej.
Lyy oraz Lxy obliczane są w następujący sposób:
Rozpoznawanie ręki (SURF)
Segmentacja obrazu
Oczyszczanie
Wykrywanie gestów
Rozpoznawanie sylwetki konkretnej osoby algorytmem SURF