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.