OpenCV :: HOGDescriptor ile kullanmak için kendi dedektörümü eğitmeye çalışıyorum ama mevcut HOGDescriptor'umu yeni eğitimli SVM'mle çalışmak konusunda sorun yaşıyorum.OpenCV'de HOGDescriptor ile kullanmak için özel SVM eğitimi
Pozitif ve negatif antrenman görüntüleri için HOG özelliklerini hesapladım, etiketledim ve CvSVM kullanarak SVM'yi eğitdim. Ben kullandım parametreler şunlardır: Ben sadece yerine birçok biri vektörü olsun ve HOGDescriptor.setSVMDetector (vektör) kullanılarak hesaplanan destek vektör set böylece
CvSVMParams params;
params.svm_type =CvSVM::EPS_SVR;
params.kernel_type = CvSVM::LINEAR;
params.C = 0.01;
params.p = 0.5;
Sonra destek vektörlerin Primal Formu hesaplamak;
Ben CvSVM.predict() Ben doğru SVM nesneleri sınıflandırmak mümkün, ama HOGDescriptor.detect() veya detectMultiScale() her zaman pozitif eşleşmelerin bir sürü verir ve doğru vermez kullandığınızda tahminleri.
CvSVM.predict(), sınıflandırma için orijinal destek vektörlerini kullanır; bu nedenle, birincil form hesaplama biçiminde bir sorun olabilir.
Beni doğru yöne çevirebilecek kendi dedektörlerini eğiten biri var mı?
Bu, libsvm'den bir etiketin sırasının bertaraf edildiği bir mirasın alınmış gibi görünüyor. Öngörme işlevi siparişin farkındadır ve hangi etiketin hangisi olduğunu inceler ve bu nedenle iyi çalışır. + Ve etiketimi, benim -ve one postanızdan daha az bir sayıya ayarlayarak sorunu çözdüm. Pos = 1, neg = 2. aksi takdirde modelinizi -1 ile çarparak tersine çevirmeniz gerekebilir. (Bu yüzden kabul edilen cevap garip olumsuz işarete sahip). Ben hata düzeltmek durumunda bu şekilde yapmamayı tercih ettim (bunu tahmin ederseniz gerçekten bir hata değil, ama değiştirebilir) – QED