2016-05-25 9 views
2

в моем проекте для обнаружения объектов в изображениях я использую TrainCascadeObjectDetector функцию MATLAB вы можете увидеть также here, это использование функции OpenCV поезд каскада и для подготовки набора изображений (позитивы и негативы):Как построить кривую ROC детектора, созданного TrainCascadeObjectDetector?

позитивы: изображения содержат объект интереса.

негативы: изображения dosen't содержат объект, представляющий интерес, но должны содержать заднюю часть позитивов для большей точности после тренировки.

Эта функция Requier также некоторые параметры:

-количество каскадных стадий.

-True Положительная ставка.

-False Уровень сигнала.

-Национальные образцы.

-Object Training Size.

-характерный тип (HOG, LBP, Haar).

Я использую HOG (гистограммы ориентированных градиентов), и результат этой функции является XML-файл:

trainCascadeObjectDetector(outputXMLFilename,positiveInstances,negativeImages) 

я использовать выход для локализации объекта интереса в изображениях с помощью:

detector = vision.CascadeObjectDetector(XMLFILE) 

так что я в итоге с которым детектор я использовать его для рисования габаритного прямоугольника:

BBOX = step(detector) 

Я хочу оценить эффективность моих результатов, я обнаружил, что можно нарисовать кривую ROC, here мой вопрос. ROC - истинная положительная положительная динамика с положительной скоростью VS, поэтому это более требовательное значение TPR и FPR. Глобальная TPR и FPR рассчитывает таким образом:

TruePositiveRate^numberOfStages and FalseAlarmRate^numberOfStages 

Но они только 2 значения и не unalf для построения кривой. Я попробовал также иметь TPR и FPR, выполнив бинарный компарадион с этого topic, я сделал это, сравнив мои оригинальные изображения истинности и изображения результатов и взял максимальные FPR и TPR. Теперь у меня есть 1 TPR и 1 FPR для всех изображений финальной стадии. Как получить остальных с предыдущих этапов?

Мой GUI: enter image description here

+0

вы можете изменить порог обнаружения для получения разных значений чувствительности для того же классификатора – Micka

+1

, если вы хотите оценить разные классификаторы, вы можете построить график «learnimg», который является «точностью по сравнению с количеством использованных образцов обучения» – Micka

+0

Существует 1 порог для каждого этапа в конечном файле .xml, являются ли эти пороговые значения, о которых вы говорите? – matlab22

ответ

1

Рух определяется для параметризованных классификаторов, где каждый непрерывный параметр, который влияет на FPR/TPR имеет свою собственную кривую. Вы можете аппроксимировать эту кривую, неоднократно выбирая различные значения параметра, а затем выполняете проверку, установленную через ваш классификатор.

+0

Вы имеете в виду многократно запускать TrainCascadeObjectDetector с разными numberOfstages, а затем применять XML-файлы на изображениях, а затем сравнивать их с земной истиной? @MSalters – matlab22

+0

Так вы вычисляете ROC для параметра NumberOfStages; независимо от того, имеет ли это конкретная ROC смысл для вас, я не могу сказать. – MSalters

+0

много работы по подготовке классификатора много раз, хотя в opencv его проще, поэтому, если мой тренинг займет 5 часов (GLAD I DID NOT CHOOSE LBP ИЛИ HAAR :)), чтобы иметь 5 значений для примера TPR и FPR, это займет 15 часов. это единственное, почему? @MSalters – matlab22

 Смежные вопросы

  • Нет связанных вопросов^_^