уверенность в прогнозировании в SVM в OpenCv3.0.0

Я использую программу для классификации дорожных песен, и я хочу получить уверенность в прогнозе между 0-1.
Ну, я пытался вычислить достоверность и сравнить ее с вероятностями, но это не сработало, потому что есть изображения, представляющие (для опыта 60 км / ч), и имеют скорость ниже 0,9, и еще одно (также представляющее 60 км / ч). ) имеют более высокий показатель до 0,9.

но то же самое повторяется с нераспознанным пением трафика: есть изображения, которые не представляют пение трафика и имеют скорость менее 0,9, а другие имеют скорость выше 0 9.
я попробовал это

decision = svmob.predict(testData, true);
confidence = 1.0 / (1.0 + exp(-decision));

что я нашел Вот но это не работает в OpenCv3.0.
не могли бы вы мне помочь, пожалуйста.

чем я пробовал это:

 int classObject = decision.at<float>(currentFile) < 0.0 ? 1 : -1;
float confidence = classObject == -1 ? (1.0 / (1.0 + exp(-decision.at<float>(currentFile)))) : (1.0 - (1.0 / (1.0 + exp(-decision.at<float>(currentFile)))));
if(confidence<0.9)
printf("le panneau n'est pas reconnu");
else
printf("decision = %f, response = %f\n",
decision.at<float>(0), response);

Я хочу знать, как это сделать, пожалуйста?

3

Решение

в opencv3.0 мы должны использовать интерфейс предиката (p, noArray (), cv :: ml :: StatModel :: RAW_OUTPUT). Его эффект равен предсказанию (p, true) в opencv2.4

Документация Opencv объясняет интерфейс: C ++: float StatModel :: Forex (образцы InputArray, OutputArray results = noArray (), int flags = 0) const
Параметры:
samples — входные выборки, матрица с плавающей точкой
Результаты — необязательная матрица результатов.

flags — Необязательные флаги, зависящие от модели. Некоторые модели, такие как Boost, SVM распознают флаг StatModel :: RAW_OUTPUT, который заставляет метод возвращать необработанные результаты (сумму), а не метку класса.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]