2016-01-20 5 views
2

Я попытался обнаружить что-то из учебника. Когда обучение завершено, создаются файлы сцен и каскадный файл. У меня есть знания об алгоритме, но я не знаю значения информации внутри этого файла.В чем смысл значений в stage.xml и cascade.xml для классификатора каскадов opencv

<internalNodes> 
     0 -1 13569 2.8149113059043884e-003</internalNodes> 
     <leafValues> 
     9.8837211728096008e-002 -8.5897433757781982e-001</leafValues></_> 

и

<rects> 
     <_> 
      0 0 3 1 -1.</_> 
     <_> 
      1 0 1 1 3.</_></rects> 
     <tilted>0</tilted></_> 

Каковы значения этих величин? начало

ответ

3

Давайте с первым блоком:

<internalNodes> 
     0 -1 13569 2.8149113059043884e-003</internalNodes> 
<leafValues> 
     9.8837211728096008e-002 -8.5897433757781982e-001</leafValues></_> 

Он описывает один из слабого классификатора. В этом случае он основан на пне, т. Е. Дерево с максимальной глубиной равно 1. 0 и -1 это индексы левого и правого дочерних элементов корневого узла. Если индексы меньше или равны нулю, это указывает на то, что это узлы листа. Обратите внимание, что для расчета индекса листа вам необходимо его отменить. Следующее число (13569) является индексом функции в разделе <features>. И следующий номер (2.8149113059043884e-003) является порогом узла. В разделе leafValues представлен листы листьев в каскадном дереве.

Например, в этом слабом классификаторе нам нужно вычислить значение функции 13569. Затем сравните это значение с порогом (2.8149113059043884e-003), и если он меньше этого порога, чем вам нужно добавить первое значение листа (9.8837211728096008e-002), вам нужно добавить второе значение листа (-8.5897433757781982e-001) ,

enter image description here

Следующий раздел описывает одну из функции Хаара:

<rects> 
     <_> 
      0 0 3 1 -1.</_> 
     <_> 
      1 0 1 1 3.</_></rects> 
<tilted>0</tilted></_> 

Это, очевидно, описывает параметры прямоугольника (х, у, ширина, высота) и вес прямоугольника. Он также может быть наклонен, что указывает на <tilted>0</tilted> флаг.

Надеюсь, это поможет.

+0

Есть ли какой-либо компрессионный учебник или книга, объясняющая все эти вычисления и алгоритм? – Gokhan

+0

@Gokhan Не уверен, что существует. Я просто изучил [этот код] (https://github.com/akarsakov/opencv/blob/master/modules/objdetect/src/cascadedetect.cpp#L1396), чтобы понять это. – akarsakov

+0

Все еще оставляет много открытых вопросов, но, поверьте, хотите или нет, ваше настоящее пока лучшее описание, которое я могу найти в Интернете. Спасибо, что объяснили! – user1932890