2013-02-24 44 views
3

如果有人能完全解釋cascade.xml中的數字/值,那將是最好的。 實例:haar分類器中cascade.xml的說明

<!-- stage 0 --> 
<_> 
    <maxWeakCount>3</maxWeakCount> 
    <stageThreshold>-8.8384145498275757e-001</stageThreshold> 
    <weakClassifiers> 
    <_> 
     <internalNodes> 
     0 -1 66 5.1593100652098656e-003</internalNodes> 
     <leafValues> 
     -8.0555558204650879e-001 8.0694979429244995e-001</leafValues></_> 
    <_> 
     <internalNodes> 
     0 -1 108 1.5044789761304855e-002</internalNodes> 
     <leafValues> 
     -6.2940740585327148e-001 7.5122624635696411e-001</leafValues></_> 
    <_> 
     <internalNodes> 
     0 -1 99 -4.7172707127174363e-005</internalNodes> 
     <leafValues> 
     5.5112153291702271e-001 -8.6111217737197876e-001</leafValues></_></weakClassifiers></_> 

這些是什麼值

 <internalNodes> 
     0 -1 99 -4.7172707127174363e-005</internalNodes> 

另一個問題是,如何在程序知道哪些功能來使用一個特定階段的含義? 據我所知,特點是形式如下

<_> 
    <rects> 
    <_> 
     21 6 3 5 -1.</_> 
    <_> 
     22 6 1 5 3.</_></rects> 
    <tilted>0</tilted></_> 

由此是兩個矩形的座標,像下面形成的東西:

=-= = Black colored rectangle 
=-= - White colored rectangle 
=-= 
=-= 
=-= 

什麼值-1。和3.是什麼意思?我知道它是重量,但它是如何用來計算特徵的?

摘要

  1. 什麼是價值觀的內<internalNodes>意思?
  2. 功能是如何計算的? <rects>中的權重如何使用?
  3. 最重要的是,哪個字段表示哪些特徵正在特定的階段/節點中使用。

謝謝!

+0

http://stackoverflow.com/questions/4482123/whats-inside-a-haar-cascade-classifier-in-open-cv-computer-vision – 2013-03-03 06:21:47

+0

@AbidRahmanK的鏈接感謝。僅供參考,在發佈之前,我已閱讀過該文件。它不提供任何我的問題的答案。 – 2013-03-04 06:03:08

+0

@Alvin你瞭解了的含義嗎?在用HAAE-like功能訓練時,它有四個值。當用HAAE-like功能訓練時,它有11個值。 – Samuel 2014-02-13 06:22:18

回答

5

深入OpenCV的源代碼後,我終於獲得了自己的問題的答案。

  • 價值觀封閉withtin internalNodes標籤

node.left node.right node.featureIdx node.threshold

我不知道什麼是node.left和node.right是因爲我看不到他們被稱爲任何地方。

  • 的權重來計算特徵,如下面:

浮子RET =矩形[0]。重量* CALC_SUM(P [0],_offset)+值爲[1] .weight * CALC_SUM(p [1],_offset);

  • 如在第一子彈所提到的,node.featureIdx是真實在該特定節點被評估的特徵的索引。