Klasyfikator SVM oparty na funkcjach HOG do „wykrywania obiektów” w OpenCV

Mam projekt, który chcę wykryć obiekty na obrazach; moim celem jest użycie funkcji HOG. Korzystając z implementacji OpenMV SVM, mogłem znaleźć kod do wykrywania ludzi i przeczytałem kilka artykułów na temat dostrajania parametrów w celu wykrycia obiektu zamiast ludzi. Niestety, nie mogłem tego zrobić z kilku powodów; po pierwsze, prawdopodobnie stroję parametry niepoprawnie, po drugie, nie jestem dobrym programistą w C ++, ale muszę to zrobić za pomocą C ++ / OpenCV ...tutaj możesz znaleźć kod do wykrywania funkcji HOG dla ludzi za pomocą C ++ / OpenCV.

Powiedzmy, że chcę wykryć w tym obiekcieobraz. Teraz pokażę ci, co próbowałem zmienić w kodzie, ale ze mną nie wyszło.

Kod, który próbowałem zmienić:

HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());

Próbowałem się zmienićgetDefaultPeopleDetector() z następującymi parametrami, ale nie zadziałało:

(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9, 0,-1, 0, 0.2, true, cv::HOGDescriptor::DEFAULT_NLEVELS)

Następnie próbowałem stworzyć wektor, ale gdy chciałem wydrukować wyniki, wydaje się, że jest pusty.

vector<float> detector;

HOGDescriptor hog(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9, 0,-1, 0, 0.2, true, cv::HOGDescriptor::DEFAULT_NLEVELS);

hog.setSVMDetector(detector);

Proszę, potrzebuję pomocy w rozwiązaniu tego problemu.

questionAnswers(3)

yourAnswerToTheQuestion