Próbuję znaleźć metodę wykrywania ludzi za pomocą tylko jednej kamery 3 metry nad ziemią. To jest ramka zwrócona przez aparat:
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.
źródło
Odpowiedzi:
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:
I zwraca poprawną klasę (Human / No Human).
źródło
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.
źródło
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 .
źródło
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
źródło