基於人體部件檢測子的行人檢測


基於人體部件檢測子的行人檢測


讀“B.Wu, R. Nevatia. Detection of Multiple,Partially Occluded Humans in a Single Image by Bayesian Combination of Edgelet Part Detectors[C], ICCV,2005.” 筆記


論文主要貢獻點

  • 提出一種能夠很好刻畫非剛體目標輪廓的特征算子,小邊特征。

  • 該論文中方法將人體分為若干部件分別檢測,能夠處理人體的部分遮擋問題。

  • 在之前的人體部件檢測方法中,對於部件檢測的結果的combine方式往往都是針對於單個個體的,而沒有考慮到整體的分布。因此該論文中對人體部件檢測到的結果構建Joint Likelihood function,能夠更好的降低誤檢率和虛警率。


小邊特征

小邊特征算子是由較短的線段或者曲線構成的,比如以下幾種小邊特征

enter description here

edgelet.png

使用表示小邊特征算子邊緣點的位置和正交向量的集合,是小邊的長度。假設小邊特征算子的區域面積為,然后對於待提取特征的sub-window,在每一個像素點上計算由該像素點起始地區域與小邊特征算子的相似度,作為該像素點對應於該特征算子的特征,也稱為圖像與小邊特征在該像素點的親和度(affinity)。

假設圖像的邊緣圖像為,表示邊緣點對應的正交向量集合。那么圖像在點處和小邊特征算子的親和度為:

$$ S(p)=\frac{1}{l}\sum_{j=1}^lM(p+u_j)| |. $$

這樣大小為的sub-window對應每一個小邊特征算子都能提取到個特征,圖像的邊緣圖像可以使用的Sobel算子得到。

由於這里的小邊特征在文中使用時是用來構建弱分類器,因此為了速度,沒必要計算的太准確,所以上式中正交向量的內積就可以近似得到。

將方向向量在量化為6個區間,計算兩個方向向量所在區間間隔,按如下近似方向向量內積:

分別表示邊緣圖像和小邊點對應的量化后的值,那么親和度可如下計算:

文中使用的小邊特征算子包括4-12個像素點,有線段,1/2圓周,1/4圓周,1/8圓周,以及這些小邊與其對稱小邊組成的對稱對。在的窗口中提取了維特征,雖然沒有具體說選擇的小邊特征算子是什么。個人認為在使用小邊特征時應該先構造一定量的小邊特征算子,然后再提取小邊特征。


部件檢測子
文中將人體分成3個部件:Head-shoulder,Torso,Legs,然后加上整體Full-body構造了四個檢測器。每個檢測器都是使用nested cascade detector(參見嵌入級聯檢測器)。

人體部件的定義圖示:

enter description here

bodyparts.png


多人聯合似然函數

首先定義狀態變量,是真實的行人個數,表示第個行人的狀態,而每個行人的狀態使用位置和大小來刻畫,即。這樣所謂的狀態變量記錄的就是真實行人的位置和大小信息。

然后定義觀測變量是檢測到的行人個數,表示第個人檢測到的狀態,同樣使用位置和大小刻畫。

現在檢測到觀測變量,我們希望推導出真實的狀態變量,可以使用最大化后驗概率(MAP)計算。

是一個集合,我們希望的計算可以使用概率的乘法公式,可是中的個體並不能保證是相互獨立的,所以不能直接對個體進行運算。

現在通過部件檢測子,將行人個體拆分成部件,那么狀態變量可以表示為,其中分別表示部件的類型,類似的觀測變量可以直接定義為:,其中分別對應不同部件檢測到的個數。

將人體拆分成部件之后可以去掉遮擋的部件,使剩下的部件盡可能的相互獨立,然后就可以使用概率的乘法公式了。

假設

  1. 所有的行人行走在一個平面上

  2. 相機拍攝角度是俯視

根據假設,我們可以認為如果一個行人中心點的y坐標越小,其深度值越高,即離攝像頭越遠(這里圖像的坐標是從左上角開始的)。

enter description here

3Dassumption.png

於是通過目標區域的重疊程度可以判斷是否發生重疊,發生重疊之后可以通過深度信息判定哪個部件被遮擋,進而將被遮擋的部件去除。去除了遮擋部件的狀態變量可以表示為,其中表示部件中的第個部件,表示沒被遮擋的部件的個數。

這樣,公式(1)可以寫成

那么每個部件下的條件概率該如何計算呢?以部件為例,表示真實的部件集合有現在檢測到集合的概率。這相當於一個檢測問題,包括正確檢測和錯誤檢測。錯誤檢測包括誤檢和漏檢,而正確檢測又需要考慮和對應真實部件的匹配的概率問題。

其中分別表示正確檢測(success detected)、誤檢(false alarm)、漏檢(false negative),分別表示對應的部件集合。分別表示誤檢率和漏檢率,則表示檢測正確率,而表示匹配的概率,就是匹配的狀態,假設服從高斯分布,而定義如下:

分別表示在驗證集中誤檢樣本個數,正確檢測樣本個數以及真實正樣本的個數。是歸一化因子,使,反映的是正確檢測和錯誤檢測的相對重要性。

現在還有一個問題,如何確定匹配對?
文中使用的是最小距離匹配,計算檢測部件和真實部件的距離舉着,然后尋找最小的距離,將對應的配對,此時應該有個距離最大閾值,超過這個距離被認為沒找到匹配,於是在中找到所有的匹配點,也就確定了和對應的


行人檢測方法主要過程

  1. 分別對各個部件訓練檢測子

    • 對訓練集提取小邊特征

    • 使用Real AdaBoost訓練強分類器

    • 使用強分類器訓練nested cascade detector

  2. 使用各個部件的驗證集初始化參數

    • 匹配檢測部件和真實部件

    • 統計正確檢測集,誤檢集合漏檢集

    • 由匹配對間的距離學習高斯分布

  3. 使用4種檢測子掃描待檢測圖像,檢測到四種部件的集合

  4. 檢測的結果初始化為真實行人的狀態,然后對這些行人拆分成部件(按部件的定義),根據坐標去除遮擋部件,獲得

  5. 將部件檢測子檢測到的結果與初始化的狀態進行匹配

  6. 循環 i=1 to m (m是檢測到的行人個數)

    • 計算聯合似然函數值 以及

    • 如果,則令

  7. 輸出作為最終的檢測結果


補充與分析

  • 目標遮擋: 如果檢測到的一個部件的重合區域占了該部件的,則認為該部件被遮擋

  • 由於攝像頭的視角是俯視的,所以如果一個行人被捕捉到,最起碼其Head-Shoulder部件一定能被檢測到,所以在搜索過程的初始化階段,選擇作為初始狀態

  • 該算法可以認為是使用檢測行人目標,然后通過使四個部件檢測子的結果得到聯合似然函數值最大去剔除其中錯誤檢測的部分



免責聲明!

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



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