傳統目標檢測算法之DPM


轉載:傳統目標檢測算法之DPM

前面介紹了一下HOG,HOG有一個缺點:很難處理遮擋問題,人體姿勢動作幅度過大或物體方向改變也不易檢測

繼2005年HOG提出之后,DPM模型在借鑒了HOG之后也被提了出來同時還取得了不錯的成績。

DPM概述

DPMDeformable Part Model),正如其名稱所述,可變形的組件模型,是一種基於組件的檢測算法,其所見即其意。該模型由大神Felzenszwalb在2008年提出,並發表了一系列的cvpr,NIPS。並且還拿下了2010年,PASCAL VOC的“終身成就獎”。

DPM算法采用了改進后的HOG特征,SVM分類器和滑動窗口(Sliding Windows)檢測思想,針對目標的多視角問題,采用了多組件(Component)的策略,針對目標本身的形變問題,采用了基於圖結構(Pictorial Structure)的部件模型策略。此外,將樣本的所屬的模型類別,部件模型的位置等作為潛變量(Latent Variable),采用多示例學習(Multiple-instance Learning)來自動確定。

DPM特征

DPM檢測模型

DPM檢測流程

Latent SVM

 

傳統的Hog+SVM和DPM+LatentSVM的區別如上面公式所示。

         由於,訓練的樣本中,負樣本集肯定是100%的准確的,而正樣本集中就可能有噪聲。因為,正樣本的標注是人工進行的,人是會犯錯的,標注的也肯定會有不精確的。因此,需要首先去除里面的噪聲數據。而對於剩下的數據,里面由於各種角度,姿勢的不一樣,導致訓練的模型的梯度圖也比較發散,無規則。因此需要選擇其中的具有相同的姿勢的數據,即離正負樣本的分界線最近的那些樣本,將離分界線很近的樣本稱為Hard-examples,相反,那些距離較遠的稱為Easy-examples。

實際效果圖如下圖所示:

 

 

Latent SVM接下來有時間獨立開一篇去整理學習一下。

優缺點

DPM算法的步驟:

1、產生多個模板,整體模板以及不同的局部模板;

2、拿這些不同的模板同輸入圖像“卷積”產生特征圖;

3、將這些特征圖組合形成融合特征;

4、對融合特征進行傳統分類,回歸得到目標位置。

DPM算法優點:

1、方法直觀簡單;

2、運算速度塊;

2、適應動物變形;

DPM算法缺點:

1、性能一般

2、激勵特征人為設計,工作量大;

   這種方法不具有普適性,因為用來檢測人的激勵模板不能拿去檢測小貓或者小狗,所以在每做一種物件的探測的時候,都需要人工來設計激勵模板,為了獲得比較好的探測效果,需要花大量時間去做一些設計,工作量很大。

3、無法適應大幅度的旋轉,穩定性很差;


前面官方的話講了一大堆,簡單概括一下整體流程吧

  1. 首先要有根模型(root filter)和若干部件模型(part filter)和部件模型的偏離損失。這些東西就是通過已有的人體,四肢等樣本提取HOG特征然后經過svm訓練而來的。
  2. 用root filter提取原始圖像的DMP特征圖,再對DMP特征圖用root filter和part filter計算響應圖。(實際上就是一個模版匹配)
  3. 加權平均root的和part的,得到最終的融合特征圖
  4. 對融合特征進行傳統分類,回歸得到目標位置。

DPM算法思想:輸入一幅圖像,對圖像提取圖像特征,針對某個物件制作出相應的激勵模板,在原始的圖像中計算,得到該激勵效果圖,根據激勵的分布,確定目標位置。

制作激勵模板就相當於人為地設計一個卷積核,一個比較復雜的卷積核,拿這個卷積核與原圖像進行卷積運算得到一幅特征圖。比如拿一個靜止站立的人的HOG特征形成的卷積核,與原圖像的梯度圖像進行一個卷積運算,那么目標區域就會被加密。

那么說到這里就會出現一個問題,人在圖像中可能有各種的姿態,比如躺着,趴着,坐着等等,我們只用一個靜止站立狀態的人的激勵模板去做探測就會失敗。也就是說圖像中的物件可能會發生形變,那么我們用固定的激勵模板去探測目標物件的時候就不再適用,那么該如何解決這一問題呢,這就引出了局部模板,也就是說,我們不做一個整體的人的激勵模板,轉而去做人的部分組件的模板,比如頭、胳膊、腿等,其實這就是DPM算法。

再概括一下,HOG的特征提取比較死板,一定要是一個人,這個人還只能是特定的姿態比如站立,動作幅度改變不能太大。而DMP就是先檢測整個人,再檢測四肢,然后綜合兩者的信息去判斷。


免責聲明!

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



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