步態識別《GaitSet: Regarding Gait as a Set for Cross-View Gait Recognition》2018 CVPR


Motivation:

  步態可被當作一種可用於識別的生物特征在刑偵或者安全場景發揮重要作用。但是現有的方法要么是使用步態模板(能量圖與能量熵圖等)導致時序信息丟失,要么是要求步態序列連續,導致靈活性差。這篇文章是將步態當成包含獨立幀的集合,不要求幀的排列順序甚至可以把不同場景下的視頻幀整合在一起。

 

Method: 

  問題定義:給定一個有N個人的數據集$y_{i}, i \in 1,2,...,N$, 我們假定某個人的步態遮罩屬於分布$\mathcal{P}_{i}$,這是個只與行人身份有關的量。因此,某個人的一個或者多個序列的所有遮罩可以視為$n$個剪影的集合$\mathcal{X}_{i}=\left\{x_{i}^{j} | j=1,2,...,n\right\}$。這里的$x_{i}^{j} \sim \mathcal{P}_{i}$。

  在前面這種假設下,我們通過三步解決步態識別任務,可以公式化為:

$f_{i}=H\left(G\left(F\left(\mathcal{X}_{i}\right)\right)\right)$

  這里的$F$是一個用來提取幀級特征的卷積神經網絡。公式$G$是一個置換不變函數來將frame-level特征變成set level特征,具體是通過下面提到的$Set Pooling$來實現的。$H$則是從set-level特征中提取有區分力的表達$\mathcal{P}_{i}$,是通過$HPM$(水平金字塔映射)實現的。輸入$\mathcal{X}_{i}$則是一個四維張量,也就是set維,通道維,高度,寬度。

  放一張網絡框架圖:

 

 

 Set Pooling:

  Set pooling的目的是將集合中的步態信息整合在一起,也就是$z=G(V)$,這里$z$表示set-level特征,$V=\left\{v^{j} | j=1,2, \ldots, n\right\}$表示frame-level特征。Set Pooling接收set作為輸入,是一個排列不變函數,公式化為:

$G\left(\left\{v^{j} | j=1,2, \ldots, n\right\}\right)=G\left(\left\{v^{\pi(j)} | j=1,2, \ldots, n\right\}\right)$ 

這里的$\pi$是任何一種排列。因為現實場景下,人物步態遮罩數目是任意的,函數$G$應該能夠處理任意任意基數的set。

1.統計函數:為了滿足前面的要求也就是排列不變,數目容量可變,在set維使用統計函數是一個自然的選擇。本文是使用了$max()$,$mean()$,$median()$三種。

2.聯合函數:也就是前面三者的結合,可以分為兩種:1)$G(\cdot)=\max (\cdot)+\operatorname{mean}(\cdot)+\operatorname{median}(\cdot)$,2)$G(\cdot)=1_{-} 1 \mathrm{C}(\operatorname{cat}(\max (\cdot), \operatorname{mean}(\cdot), \operatorname{median}(\cdot)))$。

這里cat表示的是通道維拼接,$1_{-} 1 C$表示1*1卷積。

  作者也使用了注意力機制來提高SP的表現,motivation是利用全局信息來學習元素級注意力圖來修正frame-level特征。全局特征先通過左側的統計函數獲取,之后將它輸入進$1*1$卷積層同原始特征圖計算注意力。最終的set-level級特征是通過在修正后的全局特征上應用MAX得到。采用了殘差結構來加速與穩定收斂。

 

水平金字塔映射(HPM):

   在行人重識別任務中經常把特征划分為水平塊,這里也是借鑒了這個做法。$HPM$有4個不同尺寸能夠幫助神經網絡聚焦到不同的局部特征和全局特征。下圖描述得比較清楚,假設共有$S$個尺寸,在s這個尺寸,特征在高度維上進行切分被分成了$2^{s-1}$塊,所以總共是可以分成$\sum_{s=1}^{S} 2^{s-1}$塊。接着利用全局池化($Global Pooling$)來將划分得到的$3D$塊變成$1D$的$f^{\prime}$。最后對$f^{\prime}$使用不同的$FC$層做映射得到有區分力的$f$。

 

 

 

Multilayer Global Pipeline :

  簡單來說越深的層有着越大的感受野,淺層關注的是局部和精細化特征,而深層關注全局和粗粒度特征。同理不同深度上SP得到的特征也是有這個特性的。為了利用不同深度的特征就提出了Multilayer Global Pipeline(MGP),和主pipline的流程是差不多的,就是把不同層的set-level特征加到MGP中。最后MGP也是通過前面的HPM划分為$\sum_{s=1}^{S} 2^{s-1}$個塊。MGP后面的HPM和主pipline的HPM是不共享參數的。
  

 訓練和測試:

  訓練損失:網絡的輸出是$2 \times \sum_{s=1}^{S} 2^{s-1}$的d維向量。在這里使用的是批三元損失。使用了$p \times k$的采樣策略。$p$是人物數,$k$是一批中每個人的樣本數,這里的每個樣本其實包含了從序列中采集的多個遮罩圖。

   測試:給定查詢$\mathcal{Q}$,步態識別的目標是從圖庫集合$\mathbb{C}$中查詢獲得該人物所有序列。測試時先將$\mathcal{Q}$輸入到GaitSet產生多種尺寸的特征然后concatenate到一起獲得最終表達$\mathcal{F}_{\mathcal{Q}}$。同理我們對圖庫中的樣本$\mathcal{G}$也進行這個操作得到$\mathcal{F}_{\mathcal{G}}$。最后計算$\mathcal{F}_{\mathcal{Q}}$與每個$\mathcal{F}_{\mathcal{G}}$的歐式距離作比較計算Rank 1識別率。

 

實驗:

  從作者的消融實驗來看,其提出的幾個模塊是有效果的。帶來效果比較突出的是使用set作為輸入,以及使用獨立FC和不同深度特征融合這幾大點。

 

 

   作者做了幾個有意思的實驗,一個是遮罩數目對識別准確率的影響,可以看到1)精度隨着輪廓數量的增加而單調增加;2)當樣本包含25個以上輪廓時,精度接近最佳性能。這個數字與一個步態周期包含的幀數一致。

 

  下面的實驗是將不同視角的遮罩放在一起組成查詢(圖庫不變),比如第二行前幾列是從兩個相差一定角度間隔的序列中各采樣5張,而最后一列Sigle view是從單個序列中選擇10張。可以看到多視角的更好一點,這表明改模型能夠利用多視角帶來的平行以及垂直信息。

 

   作者同時還做了不同行走條件的影響,結果如下所示,表明增加遮罩數是可以帶來效果提升的,即使是背包或者穿大衣這種帶有噪聲的遮罩。

 

 


免責聲明!

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



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