2011-10-25 93 views
2

在OpenCV中,我們可以使用xml文件來描述特定對象的類似haar的特徵。我想 使用這個想法來檢測手掌和拳頭,現在我有我自己的XML功能文件,並且它在C和Python(與OpenCV)中運行良好 ,現在我需要將此想法移動到閃存。閃存中使用haar-like特徵的對象檢測

幸運的是,我發現了一個名爲Marilena一個項目,它成功地移動的OpenCV的哈爾題庫部分動作,本文optimizing flash based face detection優化Marilena,他把XML文件爲ActionScript類本身用來加快計算。但是,由於哈爾數據現在正在被硬編碼到課程中,因此它將無法用於跟蹤其他任何內容。我嘗試閱讀源代碼的細節,並以他的方式將我自己的xml文件處理爲actionscript類文件,但最終找到了不同的東西。

人臉檢測XML文件是這樣的:

enter image description here

每棵樹都只有一個節點「根節點」,但在我的XML文件中,一些樹有兩個節點,而「left_val」以上對「left_node」的更改有時候,我不知道如何處理這些節點。我想我應該得到OpenCV C源文件的詳細信息,以找到如何正確處理XML功能文件,但從哪裏開始,一些建議?

回答

0

爲了算法的目的,我建議閱讀Actionscript中的E4X和binary trees。因此,如果您可以區分看起來像分支(您的案例中的節點)的left_val和left_nodes,並在解析xml數據時離開,那麼您就位於正確的道路上。正如你所猜測的那樣,當一片葉子是一個節點時,它將分支到更多的葉子中​​,所以基本上所有的東西都是葉子,但是可以具有特殊的含義,比如持有/給予更多的葉子。我相信這篇文章會更有意義,但我只想總結一下。

您可能還想看看遞歸函數,因爲您可能需要一個自循環函數來遍歷樹葉。這裏是wiki:http://en.wikipedia.org/wiki/Recursion_(computer_science)斐波納契數字就是一個很好的例子,你也可以在同一篇文章中找到二進制搜索,希望能夠滿足你的所有需求。

玩得開心。

+0

謝謝@kubarium,但那不是重點。我知道二叉樹和遞歸函數的原理,並且我可以成功地處理我的xml文件,我真正需要知道的是類似haar的檢測器如何使用xml文件來檢測對象,我想知道opencv中的哪些文件應該去通過。 – PinkyJie

+0

對不起。當你說你不知道如何處理這些節點時,我認爲它更像是一個編程和算法問題。因此,爲了解釋您的評論,是否正確地說:您不確定哪個節點意味着您提供的結構(xml示例)中的內容?在這種情況下,我沒有關於這個主題的信息,但看着Marilena項目文件,我發現:http://www.libspark.org/browser/as3/Marilena/trunk/src/jp/maaash/ObjectDetection/ HaarCascadeLoader.as?rev=567,它看起來像解析器。我不想浪費你的時間,因爲我不確定我是否在這裏的正確頁面。 –