Dobre cechy / algorytmy rozpoznawania modeli samochodów na zdjęciach

9

Mam pytanie dotyczące rozpoznawania obiektów, a zwłaszcza modeli samochodów! Jestem na początku pracy nad identyfikacją tego samego modelu samochodu na różnych obrazach. W tej chwili uważam, że jednym z najlepszych algorytmów rozpoznawania obiektów 3D jest SIFT, ale po zabawie z implementacją demonstracyjną mam dziwne przeczucie, że ten algorytm ma pewne problemy z błyszczącymi metalowymi przedmiotami, takimi jak samochody, zwłaszcza jeśli mają różne kolory.

Czy ktoś wie, że trochę pracy w tym obszarze, ogólnie odpowiedni algorytm do znalezienia tego samego modelu samochodu na różnych obrazach?

Z góry dziękuje za twoją pomoc!

jstr
źródło
2
Czy możesz zamieścić przykładowe obrazy?
endolith
Pewnie. Obrazy do stworzenia modelu modeli samochodów ;-) mogą wyglądać tak: s5 coupe training 1 lub jak s5 coupe training 2, ale także „normalne” zdjęcia. Obrazy zapytania mogą być jak s5 zapytanie 1 nadzieja, która pomaga!
jstr
Jakie są alternatywne detektory cech, takie jak SIFT, GLOH lub SURF, aby zidentyfikować odpowiednie kluczowe punkty w samochodach?
jstr
@jstr, jeśli skończyłeś wdrażać schemat opisany poniżej, jak dobrze działał?
rozwiązywanie Puzzle

Odpowiedzi:

7

Rzuciłbym okiem na tak zwane podejście „worek słów” lub „słowa wizualne”. Jest coraz częściej wykorzystywany do kategoryzacji i identyfikacji obrazów. Algorytm ten zwykle zaczyna się od wykrycia solidnych punktów, takich jak punkty SIFT, na obrazie. Używany jest region wokół tych znalezionych punktów (128-bitowy deskryptor SIFT w twoim przypadku).

W najprostszej formie można zebrać wszystkie dane ze wszystkich deskryptorów ze wszystkich obrazów i zgrupować je, na przykład za pomocą k-średnich. Każdy oryginalny obraz ma następnie deskryptory, które składają się na wiele klastrów. Centroidy tych klastrów, tj. Słowa wizualne, mogą być użyte jako nowy deskryptor obrazu. Zasadniczo masz nadzieję, że klastry obrazu, do którego przyczyniają się jego deskryptory, wskazują na kategorię obrazu.

Ponownie, w najprostszym przypadku, masz listę klastrów, a na obrazie liczysz, które z tych klastrów zawierały deskryptory z tego obrazu i ile. Jest to podobne do metody Term Frequency / Inverse Document Frequency (TD / IFD) używanej do wyszukiwania tekstu. Zobacz ten szybki i brudny skrypt Matlaba .

To podejście jest aktywnie badane i istnieje wiele znacznie bardziej zaawansowanych algorytmów.

Strona internetowa VLfeat zawiera ładniejsze, bardziej zaawansowane demo tego podejścia, klasyfikujące zestaw danych caltech 101. Na uwagę zasługują również wyniki i oprogramowanie samego Caltech .

Maurits
źródło
Cześć Maurits, dziękuję za odpowiedź. Pomyślę o tym! Ale jedno pytanie. Jeśli mam „słowa wizualne”, jak zmierzyć odległość między nimi? Myślę, że użyłbym deskryptorów SIFT, czy to prawda? - Lowe ma jeden artykuł, w którym opisuje metodę rozpoznawania obiektów 3D poprzez budowanie modeli deskryptorów SIFT. Czy ktoś zna inne dobre artykuły na ten temat (rozpoznawanie obiektów 3D z innymi funkcjami)?
jstr
W tym przypadku wystarczy odległość euklidesowa, ponieważ grupujesz wektory całkowite. Nie sądzę, że musisz mierzyć odległość między centrami klastrów per se, ale raczej, gdy przedstawiany jest obraz zapytania (a zatem deskryptory zapytania), mierzysz, które centroidy te deskryptory są najbliższe.
Maurits
Ok, użycie miary odległości jest jasne ;-) ale na jakich danych? Na deskryptorach SIFT według słowa wizualnego?
jstr
W rzeczywistości trzy razy, jako metryka dla początkowego grupowania, aby ustalić, do którego środka / słowa wizualnego deskryptor zapytania jest najbardziej zbliżony, a następnie w końcu porównać wektor td / idf zapytania z tymi w bazie danych.
Maurits
Ok, rozumiem ;-) ale na jakich danych działa pomiar odległości? Na deskryptorach SIFT?
jstr