2013-03-29 11 views
7

Chcę szkolić dane i używać algorytmu HOG do wykrywania pieszych. Teraz mogę użyć defaultHog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector()); do wykrywania, ale wynik nie jest zbyt dobry dla mojego filmu testowego. Więc chcę zrobić trening z moją bazą danych.Jak szkolić HOG i używać mojego HOGDescriptor?

Przygotowałem ponad 1000 próbek pozytywnych i ponad 1000 próbek negatywnych. Są przycinane do rozmiaru 50 * 100 i mam plik listy.

I przeczytałem kilka tutoriali w Internecie, wszystkie one są tak skomplikowane, czasem zawiłe. Większość z nich analizuje kod źródłowy i algorytm HOG. Ale tylko z mniejszą liczbą przykładów i prostym anyżem.

Niektóre instrukcje pokazują, że do szkolenia można użyć libsvm\windows\svm-train.exe. Czy każdy może podać przykłady na podstawie ponad 1000 próbek pozytywnych o wartości 50 * 100?
Na przykład, podobnie jak haartraing, możemy to zrobić od opencv, np. haartraining.exe –a –b z niektórymi parametrami, i uzyskać w rezultacie *.xml, który będzie używany do wykrywania osób?

Czy jest jakaś inna metoda szkolenia i wykrywania?

Wolę wiedzieć, jak z niego korzystać i jak wygląda procedura szczegółowa. Jako algorytm szczegółów nie jest to dla mnie ważne. Po prostu chcę to zaimplementować.

Jeśli ktoś o tym wie, proszę, daj mi kilka wskazówek.

Odpowiedz

7

Podałem kilka przykładowy kod i instrukcje, aby rozpocząć szkolenie własnego deskryptora HOG przy użyciu openCV: Zobacz https://github.com/DaHoC/trainHOG/wiki/trainHOG-Tutorial.

Algorytm jest rzeczywiście zbyt złożone, aby zapewnić w skrócie, idea jest jednak do:

  1. cechy Extract HOG od negatywnych i pozytywnych obrazów próbek o identycznej wielkości i rodzaju.
  2. Użyj wyodrębnionych wektorów elementów wraz z ich odpowiednimi klasami do szkolenia klasyfikatora SVM, w tym kroku możesz użyć svm-train.exe z wygenerowanym plikiem o właściwym formacie zawierającym wektory cech i ich klasy (lub bezpośrednio zawierają i adres klasy biblioteki libsvm w twoich źródłach).
  3. Wynikowy model SVM i wektory pomocnicze są obliczane na pojedynczy wektor deskryptora, który może być używany z detektorem openCV.

poważaniem

+0

wydaje się, że przykładowy kod nie jest już dostępny. To przekierowanie do opencv.org. Czy znasz inny sposób, aby się tam dostać? –

+0

@DaHoC Mogę potwierdzić, że ten link już nie działa. –

+0

Łącza github działają. Wydaje mi się, że jest to naprawdę dobrze udokumentowany kod i ładny samouczek. Osobiście uznałbym tę odpowiedź za poprawną. – nkint

Powiązane problemy