Wykrywanie ludzi z góry

16

Próbuję znaleźć metodę wykrywania ludzi za pomocą tylko jednej kamery 3 metry nad ziemią. To jest ramka zwrócona przez aparat:

wprowadź opis zdjęcia tutaj

AKTUALIZACJA: Test wideo -> http://dl.dropbox.com/u/5576334/top_head_shadow.avi

Aby to zrobić, najpierw rozumiem, że muszę przeprowadzić segmentację tła pierwszego planu. To jest łatwa część.

Za pomocą maski pierwszego planu jestem w stanie wykonać proste operacje, takie jak transformacja Hougha, aby znaleźć kręgi, ale w ten sposób wykrywa tylko 60% głów, w tym wiele fałszywych alarmów.

Mógłbym użyć kilku innych prostych technik, takich jak segmentacja kolorów, ale odkryłem, że głowy ludzi są bardzo różne od góry ze względu na ich fryzurę, kolor, ilość włosów, ...

Inną opcją, którą o tym myślałem, jest możliwość korzystania z deskryptorów HOG lub funkcji podobnych do Haara, ale potrzebowałbym obszernej bazy danych osób widzianych z góry, aby trenować modele. Nie znalazłem czegoś takiego.

Myślałem, że będzie to bardzo powtarzający się problem, ale nie mogę znaleźć wiele na ten temat w literaturze ani w Internecie. Będziemy wdzięczni za pomoc w rozwiązaniu tego zadania :-)

AKTUALIZACJA: Aby uzyskać więcej informacji, celem jest wdrożenie jakiejś ogólnej metody śledzenia przepływu pieszych. Pierwszy prototyp zostanie przetestowany w centrum handlowym.

emepetres
źródło
1
Jeśli możesz opublikować kilka filmów, istnieje szansa, że ​​ktoś napisze prototyp. Czy możesz pisać?
Andrey Rubshtein
@Andrey, przesłałem test wideo pokazujący problem.
emepetres
@emepetres Jeśli masz zasoby, aby przetestować ten problem, może masz też zasoby, aby znaleźć dodatkową kamerę? Łączenie widoków z dwóch kamer (jeden widok z góry i jeden z przodu lub pod kątem) i wykorzystywanie informacji z obu dźwięków jest interesujące i przypomina wiarygodne podejście do śledzenia przepływu pieszych (w zależności od potrzebnej dokładności)
Penelope
4
zadanie to nazywa się w literaturze „liczeniem ludzi”.
mrgloom
Czy możesz podać link do tego filmu? Nie jest już dostępny w podanym linku
Garvita Tiwari

Odpowiedzi:

11

Czy są jakieś inne przedmioty, które mogą poruszać się obok ludzi? Jeśli nie, możesz po prostu znaleźć obiekty BLOB (połączone komponenty) w masce na pierwszym planie, a to są twoi ludzie.

Mogą również „zderzać się” ze sobą, tworząc jedną kroplę zamiast dwóch. W takim przypadku możesz wykonać śledzenie ruchu i rozwiązać niejednoznaczność, wykorzystując fakt, że trajektoria i prędkość są płynne.

Jeśli istnieją inne obiekty (takie jak psy, samochody), należy utworzyć klasyfikator, który pobiera parametry obiektów blob, takie jak:

  • Statystyki obiektów blob (rozmiar, solidność itp.)
  • Kolor
  • Informacje o krawędzi
  • Prędkość (w przypadku śledzenia)

I zwraca poprawną klasę (Human / No Human).

Andrey Rubshtein
źródło
1
Poszukuję solidnej metody, która umożliwiłaby rozróżnienie między ludźmi i ludźmi. W ten sposób, po zastanowieniu się nad odpowiedzią, myślę, że użycie parametrów obiektu blob zgodnie z sugestią, w połączeniu ze śledzeniem niektórych funkcji i pewnymi danymi statystycznymi obiektu blob powinno być wystarczająco solidne.
emepetres
8

Byłem w „aby korzystać z dobrze przetestowanych metod potrzebowałbym obszernej bazy przykładów, których nie mam” w bardzo małej firmie, na którą „nie było mnie stać”. Bardzo żałuję, że nie zrobiłem wszystkiego, co było konieczne, aby uzyskać jak najwięcej takich danych. Myślę, że w końcu zrobiłby dla nich świat różnic.

Każde wykrycie w prawdziwym świecie zawiera milion rzeczy, o których nie pomyślałeś, dopóki nie spróbowałeś i nie powiodło się. Jest to stary problem, wiele, wiele razy trudniejszy niż się wydaje. Poleciłbym trzymać się metody Newtona „stania na ramionach olbrzymów” (lub, prawie równie dobrze, na dużym stosie krasnoludów). To znaczy, użyj metody, którą już znasz i która jest niezawodna. Wszystkie rzeczy, które brzmią tak, jakby były „wystarczająco dobre”, niestety zawiodą.

Najnowocześniejszy w wykrywaniu pieszych ostatni raz wiedziałem, że to HOG, który został pierwotnie przetestowany właśnie w tym otoczeniu. Chcesz śledzenia, więc będziesz musiał się trochę pobawić w Google Scholar, aby to znaleźć. Kup moją główną kwestią jest to, że byłem w podobnej sytuacji iz tego powodu zaleciłbym, abyś wziął swoją bazę danych, cokolwiek musisz zrobić, i używał czegoś, o czym wiesz, że działa, który jest już przetestowany ze znanym wskaźnikiem awaryjności, a nie czymś, co po prostu brzmi dobrze. 40-letni marsz śmierci komputerowych algorytmów widzenia, które „brzmią, jakby zadziałały”, nie jest czymś, w co chcesz być częścią.

PS Nie próbuję krytykować wizji komputerowej. To jeden z moich ulubionych obszarów. Ale jego historia sugeruje, że należy podjąć tysiąc niewłaściwych kroków i niewiele zbyt dobrych. Lepiej podążać za kimś, kto już znalazł niektóre z tych właściwych kroków.

John Robertson
źródło
Może masz rację i powinienem poświęcić trochę czasu na stworzenie dobrej bazy danych, aby wyszkolić i przetestować deskryptor HOG. W ten sposób, czy wiesz, jaki minimalny rozmiar miałby tę bazę danych, aby szkolenie było prawidłowe?
emepetres
1
Nie wiem. Jak najszersza różnorodność. Ponadto HOG jest wykrywaczem, zwraca odpowiedź „tak, jest osoba” lub „brak osoby” dla obrazu i nic więcej. Nie mówi nic o tym, gdzie jest dana osoba (lokalizacja) ani jakie piksele to osoba (segmentacja), ani czy istnieje wiele osób w porównaniu do jednej osoby. Wydaje mi się, że wprowadzono pewne modyfikacje HOG (niektóre opatentowane), ale najważniejsze jest to, że chcesz śledzić osoby, a HOG w obecnym kształcie dotyczy wyłącznie wykrywania , nawet lokalizacji. Nigdy tego nie robiłem, ale śledzenie osób jest od dawna tematem. Sprawdź dokumenty dotyczące śledzenia osób.
John Robertson,
1
@John Robertson HOG nie jest detektorem, lecz jedynie deskryptorem i jest używany z pewnym klasyfikatorem (na przykład SVM + HOG) i może zwracać lokalizację obiektu.
mrgloom
1
@mrgloom Masz rację. Zwraca lokalizację poprzez wyszukiwanie w oknie. Jest to jednak szybkie tylko przy użyciu metody opatentowanej przez dużą korporację. Nie chciałem tutaj używać wykrywacza słów w sensie technicznym, tylko w zwykłym angielskim znaczeniu, że jest to coś, co wykrywa. Zapewnia jedynie lokalizację w luźnym sensie, że w tym oknie jest ktoś w przybliżeniu w 80-90% skali okna, ale bez żadnej identyfikacji, które części okna mogą należeć do tej osoby. Znam techniczne rozróżnienie deskryptora / detektora.
John Robertson,
3

Myślę, że możesz zacząć od połączenia kilku odpowiedzi tutaj.

W tej odpowiedzi wymieniono dwa różne podejścia , z tą główną różnicą, że wykrycie twarzy jest niemożliwe, ponieważ nie widać twarzy. Ale inne podejście ma nadal zastosowanie: decyduj, czy coś jest pieszym czy nie, na podstawie jego działań (ruchów) .

Zgodnie z przewidywaniami sugerowałoby to zastosowanie pewnego rodzaju segmentacji tła pierwszego planu. Bardzo szybki google znalazł ten ostatni artykuł który wyglądał dość obiecująco, ale ponieważ nigdy tego nie zrobiłem osobiście, ty lub ktoś inny może mieć lepsze sugestie dotyczące konkretnego algorytmu do zastosowania w tym kroku.

Teraz pierwsza odpowiedź, którą podłączyłem, daje bardzo ogólny pomysł na podejście. Ta odpowiedź może jednak dać ci wyobrażenie o twoich kolejnych krokach: śledź obiekty i spróbuj rozróżnić je na podstawie prędkości lub kierunku ruchu .

Wreszcie, nigdy nie poradziłem sobie z problemem, który miałeś, więc prawdopodobnie nie jestem zbyt pomocny, ale może odpowiedzi, z którymi się połączyłem, mogą dać ci ogólny pomysł na początek. Zaskoczyło mnie również, że nie mogłem znaleźć żadnych wcześniejszych prac i artykułów, szukając odpowiedzi na Twój problem, ale być może potrzebujesz tylko kogoś, kto powie ci poprawne słowa kluczowe, aby opisać ten problem .

Penelopa
źródło
Dziękuję za Twoją odpowiedź. Artykuł na temat segmentacji pierwszego planu wygląda bardzo interesująco. Jak zasugerowaliście ty i @Andrey, podążę za analizą obiektów blob, aby określić liczbę ludzi w każdym obiekcie blob.
emepetres
@emepetres Byłoby miło, gdybyś poinformował nas o swoich wynikach oraz o tym, jak skuteczne było podejście po wypróbowaniu go i przetestowaniu
penelope,
1

Mam opisane tutaj zadanie polegające na liczeniu ludzi. Ale moim wymaganiem jest, aby kamera była skierowana w stronę ludzi z lewej / prawej strony, a nie nad głową.

Biorąc to pod uwagę, badając możliwe rozwiązanie mojej sprawy, natknęłam się na interesującą metodę dla twojej sprawy (wykrycie narzutu). Te rozwiązania wykorzystują kamerę stereo, dzięki czemu można obsługiwać obiekty BLOB (osoby poruszające się zbyt blisko siebie), widząc głębokość (np. Widzą tylko obiekty BLOB na poziomie głowy przeciętnego człowieka).

Ten produkt może dać ci lepsze wytłumaczenie: digiop . Więcej informacji technicznych znajduje się w broszurze.

PS Nie reprezentuję firmy, tylko wskazuję dobrze udokumentowane rozwiązanie

bonczenko
źródło
Dziękujemy za udostępnienie. Wydaje się, że jest to ciekawy sposób na rozwiązanie problemu.
emepetres