6

Chciałbym utworzyć wykrywacz obiektów oparty na klasyfikatorze kaskadowym, jedynym problemem jest to, że funkcje LBP i Haar nie są niezmiennymi obrotami. Pierwszą rzeczą, która przychodzi mi do głowy, jest obracanie próbki treningu pod różnymi kątami, ale wątpię, aby wynikowy klasyfikator miał dobrą jakość, ponadto obiekt mógłby mieć rozciągnięte proporcje. Istnieje wiele detektorów niezmiennych rotacji, na przykład iPhone rozpoznaje twarze w czasie rzeczywistym w dowolnej orientacji, więc zastanawiam się, jak to osiągnąć? Wolałbym użyć OpenCV do tego.Jakie jest najlepsze rozwiązanie dla detektora niezmiennego obrotu?

+2

Powinieneś użyć google invariant detectors. Istnieje wiele algorytmów, ale musisz znaleźć odpowiedni algorytm, który będzie pasował do twojej aplikacji. Może dobrym punktem wyjścia jest ten dokument: epubs.surrey.ac.uk/726872/1/Tuytelaars-FGV-2008.pdf – Adi

+1

Nie ma czegoś takiego, jak najlepsze rozwiązanie w komputerowej wizji. Sprawa, że ​​iPhone rozpoznaje jakąś cechę X, jest nieistotna, jest to pojedyncze urządzenie o znanych cechach, które może mieć dodatkowe informacje, aby łatwo odwrócić rotację. Dodatkowo, wspomniałeś o wykrywaniu twarzy, które jest jednym dobrze zbadanym tematem ze sprawdzonymi, dobrymi rozwiązaniami. Ponieważ nie próbujesz wykryć twarzy (na swój komentarz w jakiejś odpowiedzi), lepiej nie wskazywać, ponieważ jest to zupełnie inny temat. – mmgp

+1

Nie sądzę, że jest to nieistotne, ponieważ niektóre pomysły wykorzystywane w wykrywaniu twarzy mogą być użyteczne do wykrywania innych obiektów, przynajmniej powinienem spróbować. Nawiasem mówiąc, nie widzę, jak można "odwrócić" rotację. Możemy określić orientację iPhone'a za pomocą danych przyspieszeniomierza, ale obrót twarzy może być inny i nadal działa. – lizarisk

Odpowiedz

1

Co jakiś proste rozwiązanie ....

Object Detection using SURF

+0

Działa to zbyt wolno i niestabilnie dla moich celów (próbuję wykryć małe logo na dużym obrazie). – lizarisk

+0

Jeśli uważasz, że SURF jest wolny, możesz zamiast tego użyć ORB. Ale nie oczekuj cudów, musisz wykonać swoją pracę, aby była stabilna. –

+0

W moich eksperymentach ORB działał znacznie gorzej niż SURF i SIFT. Jak mogę uczynić go bardziej stabilnym? – lizarisk

2

deskryptorów Fouriera są obrotowe niezmienniki (i tłumaczenie, a także skalowanie niezmienniki); ideą byłoby zatem wyszkolenie dowolnego klasyfikatora, z jakim można sobie poradzić w wyniku deskryptora Fouriera (PCA na deskryptorze Fouriera, skojarzone z SVM wydaje się być logicznym wyborem).

Zobacz Fourier Descriptors (Wolfram)

+0

Głównym problemem z konturami jest brak odporności - na zdjęciach z jakiegoś hałasu i tła może to być niemożliwe do wykrycia je poprawnie (niektóre tła bałaganu mogą zakłócać kontur obiektu, różne kontury można scalić w jeden rudy jeden połączony kontur mógł podzielić na różne części itp.). Ale dzięki za wspaniały deskryptor! – lizarisk

5

Sprawdź ramy wykrywania obiektów dostępne na https://github.com/nenadmarkus/pico.

Ramy pozwala dowiedzieć się detektor niestandardowego obiektu (na przykład do znalezienia frontalne, pionowe twarzy), a następnie użyć go do obrotu w czasie wykonywania niezmiennego wykrywania.

Uzyskuje się to poprzez zeskanowanie obrazu za pomocą obróconej wersji wykrywacza obiektów w wielu różnych orientacjach. Zauważ, że można to zrobić bez retransmisji kaskadowej lub ponownego próbkowania obrazu, i powinno działać w czasie rzeczywistym na nowoczesnych komputerach (w tym demonstruje wykrywanie twarzy).

Szczegóły są podane w dostępnej na http://arxiv.org/abs/1305.4537 papieru.

Powiązane problemy