# Person Attribute Recognition - RCRA
> [name=謝朋諺(Adam Hsieh)]
> [time=Wed, Dec 25, 2019 4:01 PM]
###### tags: `paper`,`IVA`,`PA`
---
# Recurrent Attention Model for Pedestrian Attribute Recognition
[論文連結](https://www.aaai.org/ojs/index.php/AAAI/article/view/4964/4837)
## Outline
> [TOC]
## 摘要重點
- 本文提出了 end-to-end Recurrent Neural Convolutional(RC)和 Recurrent Attention(RA)Models,它們彼此有互補作用。
- **RC model** 利用 LSTM unit 挖掘不同屬性組之間的相關性。
- **RA model** 則利用組內空間局部性和組間 Attention 相關性來提高行人屬性識別的性能。
## Recurrent Attention Model for Pedestrian Attribute Recognition
### Problem Definition
- 給予 n 張影像 $\{I_1,...,I_n\}$,每個影像 $I_m$ 上都有著 $k_m$ 個可視化的屬性標籤用於訓練。
- 每個可視化屬性集合為 $\mathcal{T}=\{T_1,...,T_{K_T}\}$,其中 $K_T$ 表示 $\mathcal{T}$ 的大小。
- $G=\{G_1,...,G_{K_G}\}$ 是 $\mathcal{T}$ 集合的分區,且 $G_i \bigcap G_j=\phi(i \neq j)$,因此全部 $G_i$ 的集合就代表所有集合 $\mathcal{T}$。
- 同一組中的標籤彼此具有語義或空間限制。例如對於每個圖像,都有一個標籤向量 $y_m \in \{0,1\}^{K^T}$,假如 $I_m$ 有 $T_j$ 屬性標籤則 $y_{m_j}=1$ 否則為 $y_{mj} = 0$。
- ==而本文的目標就是為了學習屬性識別模型 $R^I:I→\{0,1\}^{K^T}$ 來識別圖像 $I_m$ 的屬性==。
### Network Architecture
**Recurrent Convolutional Model.**

:::info
:bulb: Recurrent Convolutional Model 對於行人屬性識別的架構。
:::
- **Recurrent Convolutional**(RC)模型來挖掘所有屬性組間的相關性。
- 網絡架構如上圖所示,對於每個行人圖像 $I_m$,我們使用 CNN 提取其特徵圖 $F$。
- 將提取的特徵圖按組提供給 **ConvLSTM** layer。
- 接下來,我們通過在 ConvLSTM 之後添加 CNN Network 來計算每個時間步 $t$ 的特徵圖 $F_t$。
- $F_t$ 用於當前屬性組的屬性預測。
**Recurrent Attention Model.**

:::info
:bulb: Recurrent Attention Model 對於行人屬性識別的架構。
- $\bigotimes$ 指 point-wise 乘法 $\bigoplus$ 代表 point-wise 加法
:::
- 網路架構如上圖,對於每個行人圖像 $I_m$,我們使用 CNN 提取其特徵圖 $F$。
- 將提取的特徵圖 group by group 輸入到提議的 Recurrent Attention module 中,以計算每個時間步長 $t$ 的 Attention Heatmap $H_t$。
- Attention module 計算的 heatmap 會通過 sigmoid 。
- 接下來,我們將 Attention Heatmap 應用於 $F$,並進行 point-wise 乘法和殘差加法連接,以得到當前 attribute group 的 highlight 特徵圖 $F_t$,公式如下所示:$F_t=sigmoid(H_t)\bigotimes F+F$
---
- 在完成上面兩個模型的所有 Attribute Group 預測之後,都會將所有預測結果 concatnate 起來再與 Batch Normalization Layer(BN)接起來。
- Batch Normalization Layer 首先將預測向量**標準化**為平均值為 0 且單位變異數為 0 的向量,然後對其進行**縮放**並增加一個 bias。
- BN 操作以數學表示就如下,$x_i$ 為輸入而 $y_i$ 為輸出:
<img src='https://i.imgur.com/HkrU0M3.png' width='50%'>
如果上面的 $\beta$ 為 $0$,則 BN 的輸出平均值就為 0。
### Loss Function and Optimization
- **Loss: sigmoid cross entropy loss**
<img src='https://i.imgur.com/HzsNAdm.png' width='50%'>
- 其中 $\hat{p}_{ij}$ 是第 $I_i$ 張影像的第 $j$ 個屬性的輸出機率。
- $y_{ij}$ 則是正確的標記答案。
- **Loss: weighted sigmoid cross entropy loss**
<img src='https://i.imgur.com/87wfFEe.png' width='50%'>
- 屬性標籤大部分都不是均勻分布,因此需要使用加權過的 sigmoid cross entropy loss 來解決這問題。
- $w_{ij}$ 是根據訓練集中第 $j$ 個屬性的正比來計算出的,主要是為了應對不平衡標籤的正樣本學習權重。
## Experiment
### Dataset
為了進行評估,我們使用了兩個最大的公共行人屬性數據集:
| Group | Attribute |
|:-----------:|:----------------------------------------:|
| Gender | male or female |
| Age | age 16-30, age 31-45, age 46-60, age 60+ |
| Head | hair length, muffler, hat, glasses |
| Upper Body | clothes style, logo, casual or formal |
| Lower Body | clothes style, casual or formal |
| Footware | footware style |
| Accessories | backpack, messenger bag, plastic bag etc |
1. PEdesTrain Attribute(PETA)資料集:
- 由從 10 個小規模資料集中收集的 19,000 人圖像組成。每個圖像都標記有 65 個屬性(61 個 Binary + 4 個 multi-valued)。
- 將整個資料集分為三個非重疊分區:用於模型訓練的 9,500,用於驗證的 1,900 和用於模型評估的 7,600。
- 在實驗中只從 PETA 資料集中選擇其中的 35 個屬性。
| Group | Attribute |
|:-----------:|:--------------------------------------------:|
| Gender | male or female |
| Age | age 16-30, age 31-45, age 45+ |
| Body Shape | slightly fat, standard, slightly thin |
| Role | customer, uniform |
| Head | hair style, hair color, hat, glasses |
| Upper Body | clothes style, clothes color |
| Lower Body | clothes style, clothes color |
| Footware | backpack, single shoulder bag, handbag etc |
| Accessories | backpack, messenger bag, plastic bag etc |
| Action | telephoning, gathering, talking, pushing etc |
2. 帶有註釋的行人(RAP)屬性資料集:
- 具有從 26 個室內監控攝像機中提取的 41,585 張圖像。
- 每個圖像都標記有 72 個屬性(69 個 Binary + 3 個 multi-vlaued)以及 viewpoint、遮擋、身體部位的資訊。
- 資料劃分:33,268 張圖像用於訓練,其餘 8,317 張用於測試。
- 為了公平比較,我們評估了與(Li et al。2016a)相同的 51 個二進制屬性。
- 對於這兩個資料集,我們將 multi-valued Attribute 轉換為 Binary Attribute。
### Evaluation
* **Metrics**:共使用四個指標來評估屬性預估的好壞。
1. **Class-centric**: 分別計算正樣本和負樣本的 Accuracy,將他們取平均值以得到 ==mA==。
2. **Instance-centric**: 對於每個 Instance,我們預測 ==Precision==、==Recall==、==F1 Score==。
* **Implementation Details**:
* 模型是用 tensorflow 訓練的。
* 模型架構是使用根據 ImageNet 圖像分類任務中預訓練的 Inception-v3 模型進行調整的。
* 訓練模型的 Optimizer 是 Adam。
* 訓練的初始 Learning Rate 先設為 0.1,最後降低到 0.001,降低了 0.1 倍。
* **Results**:

:::info
:bulb: 在 PETA 和 RAP 上的評估結果,**粗體**代表表現最好的,<u>底線</u>代表表現次高。
* 上面表格第一大組使用的是較小的 Alexnet 模型。
* 第二大組是基於較大的 CNN 模型 (Inception-v3 或 ResNet 50)
* 第三大組則是 CNN-RNN 聯合的學習方法。
* 以上都是單模型方法,而 JRL 則使用多模型 ensemble 的方法。
:::
- **RC** 模型和 **RA** 模型在 F1 Score 非常接近,但是 **RA** 模型在 mA 方面比起 **RC** 模型提高了 0.33% 和 2.69%。
- 我們的 **RA** 方法優於 **SR CNN-RNN**,這是最新的單模型 CNN-RNN 方法,在 PETA 資料集中的所有四個指標中均提高了,mA 和 F1 Score 分別提高了 3.28% 和 3.91%,而 RAP 資料集中的數字分別為 6.95% 和 3.51%。
- 儘管 **JRL\*** 是一種多模型集成方法,但 **RA** 在 mA 和 F1 評分方面仍優於 **JRL\***,在 PETA 中提高了 0.44% 和 1.14%,在 RAP 中提高了 3.35% 和 0.76%。
- 與最新的大型 CNN 方法相比,**RA** 在 RAP 的所有指標中均優於 **GAPAR** 方法,在 mA 方面提高了 1.43%。
- 基於 Inception-v3 的 **DeepMAR** 在以 **Instance-centric** 的指標比以 **Class-centric** 的指標表現更好,**RA** 在以 **Instance-centric** 的 F1 評分方面也幾乎沒有太多優勢(PETA 為 0.88%,RAP 為 1.04%)。
- 實驗結果清楚地表明了 **RC** 和 **RA** 方法在行人屬性識別中的優勢,這主要歸因於 Convolutional Recurrent Learning 在挖掘組內(intra-group)和組間(inter-group) Attention Correlation 方面的能力。
* **Effect of Prediction Order**:
- **預測的順序**是影響正確率的重要因素之一。
- 因為一開始要識別的屬性無法觀察到其他相關屬性的預測結果,因此,我們應該將易於識別的 Global 屬性放在第一位,因為它並不會過度依賴其他屬性,
- PETA 和 RAP 中的預測順序則如之前提到資料集屬性的表格從上到下優先順序一致。

:::info
:bulb: **RC** Model 做順序對於實驗結果的重要性。
:::

:::info
:bulb: **RA** Model 做順序對於實驗結果的重要性。
:::
- 大多數照順序的方式都優於隨機順序。

:::info
:bulb: **RC** 對 RAP 資料集預測順序的定性分析。
- 紅色代表預測錯誤。
- 黑色代表預測正確。
:::

:::info
:bulb: **RA** 對 RAP 資料集預測順序的定性分析。
- 紅色代表預測錯誤。
- 黑色代表預測正確。
:::
* **Visualization of Recurrent Spatial Attention**:

:::info
:bulb: 使用 **RA** model 在五個不同部位的 Attention Heatmap。
* 分別為頭肩、上身、下身、鞋子和配飾。
:::
* 上圖顯示了 5 個不同的屬性組使用 Attention 輸出的結果,在該範例中,正確地突出了相應的關注區域,因此完全可以利用局部特徵更仔細地檢查屬性之間的相關性以及對 RA 和 RC 模型性能的影響。