2012-09-03 12 views
14

Obecnie rozwijam aplikację opartą na OpenCV/C++ do śledzenia małych zwierząt: Oto example rodzaju wideo, które powinien przetworzyć. Program po prostu wyprowadza pozycję x, y zwierzęcia i czas dla każdego obszaru. To jest graficzne przedstawienie result na oryginale.Ramy porównawcze mojego algorytmu śledzenia

Moje pytanie jest nieco niezręczne - i może poza tematem - w tym, że nie pytam, jak poprawić mój program, ale jak go ocenić. Jestem świadomy istnienia Bonn Benchmark on Tracking dataset, ale nie jest to właściwe w moim przypadku.

Program ma przetwarzać bardzo długie wideo, dlatego nie mogę realistycznie poprosić niezależnych ludzi o ocenę pozycji zwierząt i porównanie ludzi z programami. Rozważałem też wykorzystanie robotów lub umieszczanie transponderów na większych zwierzętach, aby uzyskać dokładne pozycje, ale tak naprawdę nie mam zasobów.

Wyszedłem z pomysłem za pomocą programu do generowania filmów z obiektami typu BLOB poruszającymi się w środowisku 2d. Moje pytanie jest proste:

Czy znasz jakieś programowalne ramy wysokopoziomowe, które można wykorzystać do graficznej symulacji ruchu obiektu poruszającego się stochastycznie w parametryzowalnym tle?

Moim marzeniem byłoby mieć narzędzie wiersza polecenia, które będzie działać tak:

$ program [BACKGROUND_OPTIONS] [OBJECT_OPTIONS] -V VIDEO_OUTPUT -P POSITIONS_OUTPUT 

Tekstura tło może być manipulowana, a także kształt, kolor i wzór ruchu poruszającego się obiektu.

Wiem, że mógłbym "łatwo" zrobić to sam (i będę, jeśli nie będę mógł znaleźć niczego), ale wolałbym, jeśli program został oceniony, a referencje były tak niezależne, jak tylko mogą (na przykład nie oba) wykonane przez tę samą osobę).

+0

prawdopodobnie możesz wypróbować Netlogo. Można go znaleźć tutaj: http://ccl.northwestern.edu/netlogo/ –

+0

@ maths-help-seeker, Przepraszamy za spóźnioną odpowiedź, dziękuję. Mój kolega i ja próbowaliśmy, ale wynika to w dużym stopniu z programowania własnej symulacji opartej na agentach. Ponieważ nie jest to bardzo skomplikowany problem, w chwili obecnej badamy wdrażanie naszego własnego narzędzia porównawczego przy użyciu bardziej standardowych narzędzi programistycznych.Mamy nadzieję, że zaktualizujemy pytanie naszymi wynikami: D –

+0

To była tylko sugestia. Cieszę się, że wypróbowałeś to! : D –

Odpowiedz

2

Jedną z rzeczy, które widziałem w kilku projektach wykrywania ruchu/śledzenia, jest tworzenie filmów testowych z niektórymi programami do renderowania 3D, takimi jak Blender. Nie ma prosty interfejs swojego twórcy testu sen, ale to dobre narzędzie do testowania dla wielu powodów:

  • można ustawić niezależnie od scenariusza, który chcesz (różnej perspektywy, liczba obiektów, długość testu , ścieżki ruchu, etc.)

  • można w pełni kontrolować parametry oświetleniowe, kształtów, rozmiarów itp

  • można projektować proste testy, aby sprawdzić podstawową funkcjonalność (stałe kolor tła z kolorowych ruchomych stałych sfer sprawia, że ​​dobre punkt początkowy), a następnie rozgałęzienia do bardziej złożonych scenariuszy (inne obiekty statyczne, obiekty zamykające inne obiekty, obrazy tła itp.).

+0

Dziękuję, wydaje się być bardzo dobrym rozwiązaniem ... W praktyce będę musiał wygenerować wiele wideo i zmienić zmienne, o których wspomniałem. Czy Blender zapewnia natywnie tryb skryptowy? Nie mam zamiaru śledzić więcej niż jednego agenta, ale jestem szczególnie zainteresowany okluzją obiektów, na przykład ... Jak już wcześniej wspomniałem, jestem teraz bardzo zajęty, ale dam się na blendera. Czy możesz wymyślić dobry samouczek? –

+1

Blender ma pełne [wsparcie dla pythona] (http://wiki.blender.org/index.php/Doc:2.4/Manual/Extensions/Python), więc myślę, że byłbyś w stanie zakodować generator testowy za pomocą tego . Poprzedni link zawiera przykład skryptu, a ogólne samouczki dotyczące Blendera można znaleźć [tutaj] (http://www.blender.org/education-help/tutorials/). –

+0

Czekałem na dobrą motywację do nauki Pythona na chwilę ... To może być to: D –