Reading papers_15(Graph cuts optimization for multi-limb human segmentation in depth maps)


 

  如果大家有用過kinect做開發,不管是使用kinect SDK還是使用OpenNI,估計都對這些庫提供的人體骨骼跟蹤技術有一定的好奇,心里在想,每個人穿的衣服不同,身體特點也不同,所處的環境不同,且走路或做手勢時的姿勢也不相同,竟然能夠跟蹤人體的骨架,且效果不錯。那么上面的Kinect SDK和OpenNI提供給kinect開發的核心算法——人體骨架跟蹤到底是怎么實現的呢?CVPR2011的最佳論文就給出了微軟SDK的核心算法,見參考文獻2,該文章主要是講的Kinect SDK的人體骨架跟蹤核心算法。因為該算法具有普適性,且效果好,被評為best peaper那是必須的。微軟算法的流程圖如下所示:

  

  由於微軟的骨架跟蹤只需要確定每個身體部位的骨架節點,所以對人體中每個像素並不要求其一定分類正確,只需要身體的某個部位附近的像素能確定一個骨骼點即可。所以由上圖可以看出,微軟的算法對人體的某個像素點的分類有不少是錯誤的。因此后面有學者提出怎樣在微軟算法的基礎上通過優化來使每個像素點的分類更准確呢?這就是本文度的論文,見參考資料1。

  該文章的流程示意圖如下:

  

  本論文的算法分為2部分,RF(Random forest,隨機森林)對每個像素進行分類+GC(Graph Cut,圖割)對每個像素優化。其想要完成的功能是,將人體分為7個部分,每只手分為3個部分,手掌,手肘,手臂,另外整個軀干和頭當做一個部分。只對人體的上半部分做分類處理。

  首先來看看RF部分,該部分和微軟算法的第一部沒什么2樣,基本上是照抄的。

  在使用RF來分類前,首先需要對訓練樣本(即人體圖像的深度圖)進行特征提取,該特征提取的公式非常簡單,如下所示:

  

  該公式感性認識上就是:假設對每個點,有相同的(u,v)。(u, v)代表像素點的偏移位置,不同部位的點經過偏移后得到另一個像素點,這2個點之間的深度信息相減就是該點的特征。比如說手掌上的點,經過偏移后得到的另一個點可能是背景,而背景的深度一般比較遠,所以手掌上該點的特征值很大;而同樣的u和v,對應胸部點而言,其偏移后的點有可能還在胸部上(因為人體的軀干面積比較大),所以該點的特征值比較小。由此可見,人體骨架跟蹤的特征是非常簡單的,但是由於訓練數據非常之龐大,所以最后得到的RF分類效果還是非常不錯的。

  有了深度圖像的在后就可以使用這些特征來訓練RF中的參數了。訓練每顆數分為以下5部分:

  1. 隨機從特征集中選擇一部分特征用來訓練,這里的特征除了上面講的(u, v)外還包括一個閾值sida,因為只有對這些特征值設定一個閾值,在Decise Tree中才能對這些特征進行分支。

  2. 隨機從訓練樣本集中選擇出一部分樣本用來訓練。上面2個步驟就是RF中Random的來源,即訓練樣本是隨機的,特征屬性也是隨機的。

  3. 計算整個樣本的信息熵。

  4. 每一次tree的分支選擇的是最優的屬性,最優屬性的定義是使信息增益最大的那部分屬性。

  5. 循環步驟3和4,知道樹到達某種條件而停止訓練,比如說,到達一定層數,或者說該節點已經可以被當做是葉子節點了。

  RF的test部分非常簡單,即每輸入一副圖像,並且制定其中某個像素點的坐標,就將其輸入到RF中的每一顆樹中,然后采用投票或平均的方法來決定到達是以怎樣的概率將該像素點分類到人體中的7個部位。其投票公式如下:

  

  關於隨機森林的介紹可以參考前面的博文:一些知識點的初步理解_7(隨機森林,ing...)

  下面是GC部分,GC理論在cv中一般是用來做圖像分割的,這里作者將其用來對每個像素點進行優化。GC理論是優化由2個值的和,該和稱為能量函數,公式如下:

  

  由2部分構成,1部分稱作一元項,是用來區分該像素點屬於某個類別的概率,一個稱作是二元項,用來表示該像素點和其周圍的像素之間的關系。GC理論把該式子的優化轉換成圖割的尋找,即對應一個圖,只需要對該圖的每條邊賦值。當然了,該圖頂點的組成是由圖中每個像素點+每一類的一個像素點,具體的介紹可以參考前面的博文:一些知識點的初步理解_8(Graph Cuts,ing...)

  這里的細節就不做介紹了,直接將作者給圖的邊的權值如下:

  

  上面是一些理論部分,下面是實驗結果:

  

  其中(a)是groud true;(b)是RF分類的結果;(c)是對每一張圖片采用GC優化的結果,沒有采用時間信息;(d)是對幾幀圖片采用GC理論優化后的結果,其中包含了深度信息;(e)的上一行是Groud truth,中間一行是RF分類的結果,最下面一行是GC優化的結果。

 

 

  參考資料:

  Hernández-Vela, A., N. Zlateva, et al. (2012). Graph cuts optimization for multi-limb human segmentation in depth maps. Computer Vision and Pattern Recognition (CVPR), 2012 IEEE Conference on, IEEE.

  Shotton, J., A. Fitzgibbon, et al. (2011). Real-time human pose recognition in parts from single depth images. Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on, IEEE.

     一些知識點的初步理解_7(隨機森林,ing...)

     一些知識點的初步理解_8(Graph Cuts,ing...)

 

  附錄:

  我在實驗室報告這篇文章的ppt。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM