CV理論基礎(四):未有深度學習之前——人臉檢測、行人檢測


檢測\neq識別

人臉檢測

Haar-like特徵+級聯分類器

Haar-like特徵

特徵模板有白色和黑色兩種矩形,定義模板的特徵值爲白色矩形內的像素和減去黑色矩形內的像素和

Haar級聯分類器

利用Adaboost。級聯分類器是將多個強分類器連接在一起進行操作,每一個強調分類器由若干個弱分類器加權組成。

強分類器拼接成級聯分類器如圖所示:
在這裏插入圖片描述
作爲負例去除的一定不是人臉

弱分類器拼接成強分類器如圖所示:
在這裏插入圖片描述

弱分類器和強分類器

弱分類器:選取特徵,以稍低於50%的錯誤率區分人臉或非人臉圖像。訓練弱分類器是在當前權重分佈情況下,確定f的最優閾值,使弱分類器對所有訓練樣本的分類誤差最低。

強分類器:將每輪得到的最佳弱分類器按照一定方法Boosting,構造強分類器。強分類器對負樣本更敏感

行人檢測

HOG+SVM

在這裏插入圖片描述

HOG 方向梯度直方圖

梯度是一個矢量。f(x,y)=[GxGy]T=[fxfyT]\nabla f(x,y)=[G_xG_y]^T=[\frac {\partial f }{\partial x}\frac {\partial f }{\partial y}^T ]。其中,GxG_x是沿x方向上的梯度,GyG_y是沿y方向上的梯度,梯度的幅值,絕對值大小,方向角表示如下:
f(x,y)={mag(f(x,y))=Gx2+Gy212ϕ(x,y)=arctan(GyGx) \nabla f(x,y)= \begin{cases} mag(\nabla f(x,y))={{G_x}^2+{G_y}^2}^{\frac{1}{2}} \\ \phi (x,y)=arctan(\frac{G_y}{G_x})\end{cases}
在這裏插入圖片描述

步驟如下:
(1) 將整個圖像進行Gamma空間、顏色歸一化

(2)圖像梯度計算
分別計算水平、垂直梯度的幅值和方向
注意:彩色圖,選取梯度幅值最大的通道

(3)Block拆分
定義兩種數據結構的單位:Cell、Block,避免明暗光照的影響
一個Block包含2×22 \times 2個Cell,每個Cell是8×88 \times 8個pixel
在這裏插入圖片描述
一幅圖16×1616 \times 16個Block,步長是8,50%重合

(4)構建方向的直方圖

  • 計算Cell的梯度方向直方圖:
    使用位置高斯加權,進行平滑。將0-180度分爲9個bin,相鄰bin使用線性插值,如85,與80距離5,離100距離15,14\frac{1}{4}歸到80,34\frac{3}{4}歸到100。歸屬於哪裏,積累相應的梯度幅值。
    在這裏插入圖片描述
    三線性插值,x方向,y方向,bin分配

  • 串接所有Block直方圖
    例如64×12864 \times 128圖片,形成7×15=1057 \times 15 =105個Block,共有105×(2×2)×9=3780105 \times (2 \times 2) \times 9=3780

在這裏插入圖片描述

(5)將細胞單元組合成更大的空間,對比度歸一化
梯度幅值絕對值大小容易受前景背景對比度和局部光照影響,所以需要對局部細胞單元進行對比度歸一化處理,L2範式或L1範式。

經過此步驟HOG描述符變成由各區間所有細胞單元的直方圖成分所組成的一個向量,區間相互重疊,每一個細胞單元的輸出都多次作用於最終的描述器。

(6)收集HOG特徵
在這裏插入圖片描述

SVM

基本模型:線性可分情況下,將正類和反類訓練樣本使用超平面完全正確分開,間隔最小。
在這裏插入圖片描述

模型允許錯分樣本,引入鬆弛變量,不但要使兩類樣本之間的間隔儘量大,同時還要使錯分的樣本的鬆弛變量之和儘可能小,
在這裏插入圖片描述

存在線性不可分數據時,通過非線性映射f(x)把數據由低維空間向高維空間映射,在高維空間爲低維數據構造線性可分離超平面。該分離超平面對應原特徵空間一個分割超曲面。

Multiple-instance SVM

思想:將標準SVM的最大化樣本間距擴展爲最大化樣本集間距。具體來說是選取正樣本集中最像正樣本的樣本用作訓練。

目標:保證正樣本中有正,負樣本不能爲正。
在這裏插入圖片描述

Latent SVM

實際上和MI-SVM相同,區別在於擴展了Latent變量。

在這裏插入圖片描述

Deformable Part Model

可變形的組件模型是一種基於組件的檢測算法,經典算法。

模型組成

模型包含一個888*8分辨率的根濾波器(Root filter)——看整體形狀響應,如左圖所示
和一個444*4分辨率的組件濾波器(Part filter)——上採樣高斯得到高分辨率,如中圖所示

右圖爲組件合理位置

響應函數

score(x0,y0,l0)=R0l0(x0,y0)+i=1nDi,l0λ(2(x0,y0)+vi)+bscore(x_0,y_0,l_0)=R_{0,l_0}(x_0,y_0)+\sum_{i=1}^n D_{i,l_0-\lambda}(2(x_0,y_0)+v_i)+b

x0,y0,l0x_0,y_0,l_0分別是錨點的橫座標,縱座標,尺度
R0l0(x0,y0)R_{0,l_0}(x_0,y_0)是根模型的響應分數
Di,l0λ(2(x0,y0)+vi)D_{i,l_0-\lambda}(2(x_0,y_0)+v_i)是部件模型的響應分數
bb是不同模型組件之間的偏移係數,加上這個偏移量使其與跟模型進行對齊
2(x0,y0)2(x_0,y_0)表示組件模型的像素爲原始的2倍

檢測流程

(1)將輸入圖像,提取DPM特徵圖,進行高斯金字塔上採樣,提取其DPM特徵圖
在這裏插入圖片描述

(2)將原始圖像DPM特徵圖和訓練好Root filter做卷積操作,從而得到Root filter的響應圖
(3)2倍圖像的DPM特徵圖,和訓練好的Part filter做卷積操作,從而得到Part filter的響應圖
(4)對精細高斯金字塔的下采樣操作,Root filter的響應圖和Part filter的響應圖具有相同的分辨率
(5)進行加權平均,得到最終的響應圖。亮度越大表示響應值越大。
在這裏插入圖片描述

相關資料

DPM
在Python中使用HOG-Linear SVM進行人體檢測

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章