# Person Attribute Recognition - HP-Net > [name=謝朋諺(Adam Hsieh)] > [time=Thu, Jan 16, 2020 10:33 AM] ###### tags: `paper`,`IVA`,`PA` --- # HydraPlus-Net: Attentive Deep Features for Pedestrian Analysis [論文連結](https://arxiv.org/pdf/1709.09930.pdf) {%pdf https://arxiv.org/pdf/1709.09930.pdf %} ## Outline > [TOC] ## 摘要重點與貢獻 - 提出一種新的基於 Attention 的 model。 - HP-Net 有幾項優勢: 1. 該模型能夠捕獲從==底層到語意層==的多個 Attention。 2. 探索 Attention 層對多個尺寸特徵的選擇性。 - 用 HP-Net 就可以做到 Person Recognition 和 Person Attributes。 ![](https://i.imgur.com/6ZedngV.jpg) :::info :bulb: 行人分析需要多個 level 和多尺寸的綜合特徵才能表示。 (a) 語意 Level : 利用小範圍的特徵以促進分辨行人是否有相似的外表,例如:長髮、短髮、長袖、短袖。 (b) Low Level : 服裝上的花樣圖案通過 Low Level 特徵會較好去捕捉,而不是 High Level。 (c-d) Scales : 多尺度的 Attention 特徵有利於描述人的特徵,像 (c\) 中的小比例可以注意到電話,而 (d) 可以大範圍的關注全局特徵。 ::: - 這項工作的貢獻是三方面的: 1. 提出了一種具有==多方向== Attention module 的 HydraPlus Network(HP-net),以訓練 multi-level 和 multi-scale 的 Attention-Strengthened 特徵。 2. 對 HP-net 進行 Person Recognition 和 Pedestrian Attributes 的綜合評估,與現有方法相比,已取得了最先進的效能。 3. 收集了一個新的行人屬性資料集(PA-100K 資料集),其中包含了最多樣的場景以及最新的樣本和實例。 ## HydraPlus-Net Architecture - **HydraPlus Network** 主要由兩部分組成,一個是 **Main Net (M-Net)**,他是一種簡單的 CNN 架構,另一部份是 **Attentive Feature Net (AF-Net)**,包括多個==多分支多方向==的 Attention Module 以至於可以應用在不同語意特徵的 Level。 - 除了添加的 **MDA module** 以外,**AF-Net** 與 **M-Net** 是==共享相同的 CNN 架構==,並將他們的輸出串連起來然後通過 Global Average Pooling (GAP) 和 Fully Connected (FC) Layer 進行融合。 - 最後再將輸出投射在用於 PA 的屬性 logits 或用於 Re-iD 的特徵向量上。 - 原則上,==任何 CNN 結構都可以應用於建構 **HP-Net**==。 - 在本論文中我們使用的是基於 **Inception_V2** 的新架構。 - 如下圖所示,本文所提出框架的每個網路都包含數個 Low-Level 的 CNN,並在後面接上三個 Inception Blocks。 ![](https://i.imgur.com/fccETjP.png) :::info :bulb: HP-Net 包含 Main Net (M-net) 和 Attentive Feature Net (AF-Net)。 - AF-Net 由三種不同方向的 Attention Module (multi-directional attention,MDA) 組成。 ($i.e. \mathcal{F(\alpha^i)},\ i\in \Omega$)。 - MDA module 包含兩中元素: 1. 上圖的黑色實線代表 attention map 的產生。 2. 通過將 attention map 遮蓋到虛線中不同層次的特徵上的。Attentive Features 藉由 masking 這些 attention map 到不同特徵的 Level 中,上圖中以虛線表示。 - 最後面加上 Global Average Pooling 和一個 Fully-Connected Layer 來連接 M-Net 和 AF-Net 的輸出。 ::: ### Attentive Feature Network - 上圖中的 AF-Net 有著三個分支的子網路,這些分支由 MDA modules 來增強,可定義為:$\mathcal{F(\alpha^i)},\ i\in \Omega=\{1,2,3\}$,其中 $\alpha^i$ 是從起始 Blocks $i$ 輸出特徵(也就是==黑色實線==標記的部分)所生成的 Attention Map,並以==虛線==方向輸出至其他第 $k^{th}$ 個 block ($k\in \Omega = \{1,2,3\}$)。 - 不同的 MDA module 的 Attention Map 是從不同的起始塊生成的,然後被乘以不同級別的特徵圖以產生多層次的 Attention Feature。 - MDA module ($\mathcal{F(\alpha^2)}$) 如下圖所示,每個 AF-Net 的分支都是由 M-Net 初始化,因此 Attention Map 會提取到與 M-Net 相似的特徵。 ![](https://i.imgur.com/RwkyDkD.png) :::info :bulb: MDA module $\mathcal{F}(\alpha^2)$ 的範例。 ::: - 來自較高層的 block(EX: $\alpha^3$)的 Attention Map 較為粗糙,但是通常較能理解有語意特性的區域例如下圖 (a) 的包包。 - 來自較底層的 block (EX: $\alpha^1$) 的圖像通常會反映局部的特徵樣式,並且可以反映較詳細的局部訊息,例如邊緣和紋理,例如下圖 (a) 的範例。 ![](https://i.imgur.com/YJA06JA.jpg) :::info :bulb: Attention maps 的多樣性和語意選擇性。 (a) 從三個相鄰 Blocks 生成的 Attention Map 以不同的 scale 和 level 產生的視覺模式,其中 $\alpha^3$ 擁有突出語義級別樣式的能力。 (b-c) Attention Maps 中不同 Channel 捕獲有關不同身體部位、顯著的物體、背景等的視覺模式。 ::: - 對於一個 inception block $i$,他的輸出特徵圖被定義為 $F^i\in \mathbb{R}^{C\times H\times W}$,寬為 $W$ 高為 $H$ 通道為 $C$。 - ==Attention Map $\alpha^i$ 由 $F^i$ 定義,意思是 incrption $i$ module 的輸出經過 $1\times1$ CNN、Batch Normalization、ReLU== 所產生的 Attention Map,得到以下公式:$$\alpha^i=g_{att}(F^i;\theta^i_{att})\in\mathbb{R}^{L\times H\times W}$$ - 其中 $L$ 表示 Attention Map 的通道,在本文中我們將在本文中我們==將兩個任務的 $L=8$==。 - 到 Inception $k$ 的 attentive feature map 是逐元素相乘:$$\tilde F^{i,k}_l=\alpha^i_l \circ F^k,\ l\in\{1,...,L\}$$ - 每個 attentive feature map $\tilde F^{i,k}_l$ 隨後通過後面的 blocks 並且在 MDA module 的最後將 L 個 attentive feature map 串聯成為最終特徵。 - 在上上圖 MDA 的範例中我們可視化了 MDA module $\mathcal{F}(\alpha^2)$ 的詳細結構,$\alpha^2$ 是由 inception block 2 產生,並應用在 $k\in \Omega=\{1,2,3\}$ 中。 - 我們是使用 ==**ReLU**== 而不是 **Sigmoid** 去約束 Attention map。 ### HP-Net Stage-wise Training --- 1. 一開始,先訓練簡單的 M-Net 來學習基本的行人特徵。 2. 並將 M-Net 複製三份以建造具有 MDA module 的 AF-Net,三個子分支各由鄰近的三個不同 inception blocks 組成,依次微調每個 blocks,即共有 9 個 blocks 要微調。 3. 微調完成後,固定 AF-Net 和 M-Net,訓練 Global Average Pooling (GAP) 和 Fully Connected (FC)。 4. 輸出層:PA 是使用 Cross-Entropy loss,PR 則使用 Softmax loss。 --- ## Ablation Study On Attentive Deep Features ### Multi-level Attention Maps - **The level of attention maps.** - 從 **圖 Attention maps 的多樣性和語意選擇性** 就可以看出比較的差別,level $i=1$ 更喜歡抓紋理樣式和邊緣,而 level $i=2,3$ 則更關注在特定物件 (例如:背包) 或是人類的身份。 - **The quantity of attention maps.** 1. **Attention Diversity** - 前面的圖片顯示了由兩個不同攝影機捕捉到的同一個行人的兩張影像,並輸出經過 $\alpha^3$ 的 $L=8$ 的 Attention map。 - 由於==背景雜亂==、==照明變化==還有==視角不同==都導致背景變化過大,所以很難分辨出這些影像的類別或屬性,不過得益於在同個 Level 下有多個 Attention Channel,我們才有辦法針對不同的 Attention 區域分別捕獲特徵,比起單個 Channel 更豐富了特徵的多樣性。 2. **Attention Consistency.** - 在不同輸入樣本上生成的 Attention Map 可能會有類似的分佈,因為他們都突出了行人的相同語意區域。 - 即使是不同的行人,他也能捕獲相似的區域,如上圖的 $\alpha^3_3$ 都抓到頭肩區域,$\alpha^3_5$ 都抓了背景區域,因此 Attention Map 的選擇性對於 PR 也是至關重要。 ### Multi-Directional Attentive Features ![](https://i.imgur.com/4xahjp0.jpg) :::info :bulb: MDA 特徵範例。 (a) 識別 low-level 屬性(例如“上衣樣式”)需要 low-level attention 連接,例如:$\alpha^1_3$ 提取 $\tilde F^{1,1}_3$ T 恤上的紋理。 (b) 但是,語義或物件級別的屬性(如“電話”)需要 high-level Attention 連接,例如:$\alpha^3_8$ 提取 $\tilde F^{3,2}_8$ 以檢測耳朵附近的電話。 ::: - 上圖中 (b) 的行人在右耳附近握著一個電話,該電話並無法直接從特徵圖 $F^2$ 得出,也不能被 naive 的 $\tilde{F}^{2,2}_8$ 捕獲。 - 但一旦使用更高級別的 attention map $\alpha^3_8$,並使用他的 attentive feature map $\tilde{F}^{3,2}_8$ 便可以精確的抓到電話周圍的區域。 - 另一方面 $\alpha^3_3$ 可能無法捕獲 **上衣樣式** 這種比較 low-level 的屬性,例如上圖 (a) 所示的 attention map $\alpha^3_3$ 並沒有指出 T-shirt 上的局部圖案,相反 $\alpha^1_3$ 反而過濾出這種紋理圖案如 $\tilde{F}^{1,1}_3$ 所示。 ### Component Analysis ![](https://i.imgur.com/vLk48a4.jpg) :::info :bulb: **丟棄**或**連接**部分 Attention mudules 的結果與所有 MDA mudule 皆完整的網絡結果相比在 VIPeR 資料集上的比較。 (a) 中的 $3\times3$ boxes 指的是不同 attention map 的索引和他們的 mask 方向,每個 box 中的白色空心部分表示相應的 Attention 或 direction links 已經被刪除,長條圖則是指 Top-1 的 accuracy。 (b) 和 \(c\) 呈現的是兩種在 (a) 中出現的部分網路與完整網路的比較,並顯示出前五個推薦結果,綠色為正確,紅色為錯誤。 ::: - 本文也實作了**丟棄**部分 Attention mudules 的結果與完整 AF-Net 皆完整的結果比較。上圖中(a)中便比較了 VIPeR 資料集上具有六個典型的 ReID 架構配置。底部顯示的==橙色==表示具有完整 **AF-net** 的性能,而==黃色==的就是單純的 **M-net**,它被視為沒有 Attention Module 的基本模型。其餘四個條配置為: 1. ==藍色==: 每個分支都只有最單純的 attention modules。 2. ==青色==: 捨棄中間 level 的 attention maps 和 attentive features。 3. ==紫色==: 刪除某個分支,這邊是捨棄掉第一個 MDA module。 4. ==淺紫色==: 刪除兩個分支,這邊是捨棄掉前兩個分支。 - 結果發現減少 MDA module 的數量或減少該 module 內的連接都會降低性能。 ## Pedestrian Attribute Recognition ### PA-100K Dataset - 大多現有公開的 PA 資料集僅包含有限的場景(最多 26 個)且不超過 50,000 筆的行人影像。 - 本文提出的 PA-100K 包含了 598 個不同場景以及 100,000 張的行人影像, ![](https://i.imgur.com/WMZapsH.png) - **PETA 資料集** - 每個行人其實是隨機取一張那個人的照片來標記,因此就算同個人的其他張照片上沒看到那些屬性,也會共享這些屬性標記。 - 訓練、驗證和測試集的隨機劃分是在整個資料集中進行的,並不考慮跨影像行人身份的數量或是屬性的數量,可能會導致分配不均。 - **RAP 資料集** - 具有受控光照條件的高品質室內影像,因此變化程度就沒有一般不受約束的真實場景要低很多。 - 某些屬性甚至高度的不平衡。 - **PA-100K** - 數量跟多樣性都遠遠超過前面兩個資料集。 - 定義了 26 種常用屬性,包括 Global 屬性 (如性別、年齡) 和物件級別的屬性 (如手提包、電話、上衣等)。 - PA-100K 資料集是真實從室外監控攝影機捕捉到的影像所構成,更符合現實情況且也較具挑戰性。 - 每個影像都有各自的行人標記,並且==移除掉任何解析度小於 $50\times100$ 或是因移動而模糊掉的影像==。 - 整個資料集按 ==$8:1:1$== 的比例隨機分為訓練集、驗證集和測試集。 - 所有的資料集都保證具有 26 個屬性的正負值,這比起 PETA 資料集的切割方法更具公平性。 - 在以下實驗中,本文採用了五種評估標準,包括 **mean Accuracy** 和基於 instance based 的即 **Accuracy**、**Precision**、**Recall**、**F1-Score**。 - 為了解決不平衡問題,本文還採用加權過的 cross-entropy 作為 loss。 ### Comparison with the Prior Arts ![](https://i.imgur.com/BxRVmKz.png) **Quantitative Evaluation.** - 在上表中列出了六種不同方法或模型在 RAP、PETA、PA-100K 資料集上的比較。 - 前三個模型是基於手動特徵 (ELF-mm) 和深度學習特徵 (FC6-mm、FC7-mm) 並用 SVM 分類器得出的結果。 - ACN 和 DeepMar 是 CNN 的模型,通過聯合訓練多種屬性獲得了良好的結果。 - M-Net 和最終提出的 HP-Net 都明顯優於最新方法。 - 下圖有 DeepMar 和 HP-Net 對於所有屬性的 mA 比較,我們發現相對於 DeepMar 有顯著的性能提升,並且在要求較細粒度定位的屬性(例如眼鏡、手提包)方面 HP-Net 表現更為優越。 ![](https://i.imgur.com/ODMRmGm.png) :::info :bulb: HP-Net 和 DeepMar 分別用紅色與藍色條在 RAP 資料集上所有屬性的 Mean Accuracy 比較。 - HP-Net 明顯優於 DeepMar,尤其是 **"glasses"** 和 **"hat"**,在右邊顯示 Attention 的結果。 - 右邊橘色框則提供了預測 "talking" 失敗的案例。 ::: **Qualitative Evaluation.** ![](https://i.imgur.com/BGAKOkY.png) :::info :bulb: DeepMar、M-Net 和 HP-Net 在某些給定的屬性比較結果。 - 不同顏色代表不同方法。 - 長條圖是根據預測機率繪製而成。 ::: - 上圖是其中幾個 PA-100K 範例的預測屬性 PA 機率長條圖。 - HP-Net 通過 region-based 可以很可靠地預測這些屬性,例如:**“glasses”、“back-pack”、“hat”、“shorts”、“handcarry”**。 ## Person Re-identification ### Datasets and Setups ![](https://i.imgur.com/kMFCIYp.png) - 這邊使用的是 CUHK03、VIPeR、Market-1501 三個公開資料集上做評估。 - 切割資料集的方法則由各個論文的作法為主。 - 使用 Cumulative Match Curve (CMC) 來做定量評估,在匹配過程中計算 Query 與所有影像間的==餘弦距離==,所有實驗均在單個查詢的設置下進行,測試過程重複 100 次以獲得平均結果。 ### Performance Comparisons **Quantitative Evaluation.** ![](https://i.imgur.com/pcHikT1.png) :::info :bulb: HP-Net 與其他方法的比較結果。 - Top-1 中最好的前兩名會被粗體顯示。 ::: - 除了完整的 HP-Net 之外,還放上基準 M-Net 來比較。 - 可以看出 HP-Net 除了都是最高的以外,在跟 M-Net 做比較的時候分別都可以再提高 3.6%、5.0%、3.8%。 **Qualitative Evaluation.** ![](https://i.imgur.com/LqwtezF.jpg) :::info :bulb: HP-Net 和 M-Net 之間的比較結果。 - 第一行顯示 HP-Net 在 Top-5 的檢索結果以及 Attention Map。 - 第二行顯示 M-Net 的檢索結果。 ::: - 為了凸顯出 HP-Net 在提取局部語意特徵的效果,上圖展示了 M-Net 和完整 HP-Net 在 Top-5 上的比較。 - 我們觀察到 Attention Modules 有成功定位在 T-shirt 的圖案上,並提取細粒度特徵與相似人作推薦。