---
# System prepended metadata

title: 【論文筆記】A Temporal Attentive Approach for Video-Based Pedestrian Attribute Recognition
tags: [智慧計算 › 人工智慧, 讀書筆記, 電腦視覺 CV, 文獻, AI/ML, 行人屬性辨識 PAR]

---

---
title: "【論文筆記】A Temporal Attentive Approach for Video-Based Pedestrian Attribute Recognition"
date: 2020-08-13
is_modified: false
disqus: cynthiahackmd
categories:
- "智慧計算 › 人工智慧"
tags:
- "AI/ML"
- "行人屬性辨識 PAR"
- "電腦視覺 CV"
- "讀書筆記"
- "文獻"
---

{%hackmd @CynthiaChuang/Github-Page-Theme %}
 
<br>

> [A Temporal Attentive Approach for Video-Based Pedestrian Attribute Recognition](https://arxiv.org/pdf/1901.05742.pdf)  
> Chen Z, Li A, Wang    
> Pattern Recognition and Computer Vision, 2019, pp: 209-220


- [程式碼](https://github.com/yuange250/video_pedestrian_attributes_recognition)
- [資料集](http://irip.buaa.edu.cn/mars_duke_attributes/index.html)

<!--more-->



## 閱讀前自我提問
1. 期望能闡述 Video-Based Pedestrian Attribute Recognition（PAR） 與 Image-Based PAR 的異同與挑戰。
2. 期望能介紹該方面的實做與 STOA。
3. 期望能收集現有的資料集。



## 0. Abstract
1. **目的**  
    研究 Video-Based PAR，並提出網路架構。
2. **挑戰**  
    如何根據==空間和時間建模==，並結合兩者進行有效的 Video-Based PAR。
3. **貢獻**  
    1. 提出了基於 CNN 和時間注意力策略的 multi-task 網路架構（a novel multi-task model based on the conventional neural network and temporal attention strategy）。
    2. 重新標注了兩個大型[資料集](http://irip.buaa.edu.cn/mars_duke_attributes/index.html)以用於 Video-Based PAR。
    


## 1. Introduction
所謂的 Video-Based 指的是同一運動目標的==連續的靜態影像序列==。目前在 PAR 的學術研究上有不錯的成果，但主流方法都是基於單一靜態影像來實現的。而實際的監視場景中，用影片，i.e. 連續的靜態影像序列，可能會較佳。 

在 PAR 的模型中，辨識結果高度依賴輸入的圖像，尤其當輸入的單一靜態影像時。如下圖所示，僅靠單一靜態影像（紅色矩形），可能出現==裁切==（i.e. 圖 a 的包包）、==難以識別==（i.e. 圖 b、c 的裙子與頭髮）和==遮擋==的現象（i.e. 圖 d 的下半身），而導致該屬性難以辨識。但若引入序列資料，可以提供強有力的時間線索，以避免上述的狀況。

<p class="illustration">
    <img src="https://i.imgur.com/HEXeWvL.png" alt="Video-Based 和 Image-Based PAR 之間的比較">
    Video-Based 和 Image-Based PAR 之間的比較（圖片來源: <a href="https://arxiv.org/pdf/1901.05742.pdf">論文</a>）
</p>

本文的具體貢獻：  
1. 第一個利用影片進行行人屬性識別的方法，並引入時間注意力的方法提升行人屬性識別的準確率。
2. 重新標注了兩個大型[資料集](http://irip.buaa.edu.cn/mars_duke_attributes/index.html)以用於 Video-Based PAR。



## 2. Dataset
由於此領域的公開資料集較少，因此作者只好自給自足，對兩個用於行人再識別（ReID）的資料集：**MARS** 和 **DukeMTMC-VideoReID** 進行了重新標注。

MARS 的資料是來自於 6 隻監視器中所監控到 1261 人的 20478 條運動軌跡所組成，是 Market-1501 的擴充集；而 DukeMTMC-VideoReID 的資料則是來自於 8 隻監視器中的 1402 人共 20478 條運動軌跡，是 DukeMTMC-ReID的 的擴充。其中，兩個原始資料集是 Image-Based Dataset，而兩個擴充資料集則是 Video-Based Dataset。

兩個擴充集與原始資料集間，雖皆遵循相同的身分規則，但因 Image-Based 與 Video-Based Dataset 之間的實體不是一對一的對應的，無法直接使用，需要重新標注。另一個需要重新標注的原因是，由於行人在持續的運動，即使是同一個人但在不同的軌跡中，可能某些屬性會出現或消失，因此不能直接按行人的 ID 進行屬性標注，必須檢查當下運動軌跡重新標注屬性。

<p class="illustration">
    <img src="https://i.imgur.com/WI137nK.png" alt="MARS 中屬性改變的例子">
    MARS 中屬性改變的例子（圖片來源: <a href="https://arxiv.org/pdf/1901.05742.pdf">論文</a>）
</p>

重標注後的屬性共有 2 類 14 種共 52 個項目，其中第一類是**行為相關屬性**，這屬性與外觀描述無關，但卻會極大地影響外觀的呈現；第二類則是**身分相關屬性**，可以理解成描述此人所會用到的形容詞。

:::danger

**關於重標注後的屬性類別數**

論文寫 16 種，但我怎麼算都只有 14 種，因此網誌我寫 14 種。
:::

下圖是重標注後 14 種屬性，除運動（Motion）與姿態（Post）是行為相關屬性外，其餘皆是身分相關屬性。

<p class="illustration">
    <img src="https://i.imgur.com/2F56VgW.png" alt="MARS 行人屬性標注">
    MARS 行人屬性標注（圖片來源: <a href="https://arxiv.org/pdf/1901.05742.pdf" >論文</a>）
</p>



## 3. Approach
這章分成了兩部份，第一部份先是介紹了網路架構，第二部份著重介紹了他們所提出的**時間注意力策略**。


### 3.1 Network Architecture
在 CV 方面，似乎使用遷移學習是起手勢？在這邊作者挑選了==ResNet-50==作為骨幹網路，並將最後一個 flatten 層作為 frame-level 的 feature map，然後將網路分成兩個分支分別進行 multi-task learning。

兩個分支的概念對應到前面所提到的==行為==與==身分==相關屬性的區份，一個分支會進行動作與姿態的識別，另一個分支會進行行人外觀屬性的識別。

這邊將兩種類型屬性區分開，應該是為將兩者的任務參數分開來學習不互相影響與約束。因為這兩種類型的屬性，在學習時會關注特徵不同的部份，這會導致兩種類型屬性對於同一特徵的表示有競爭的情況。

舉例來說，你在跑步又不一定是穿褲子，也有可能是穿裙子，因為兩者並不相關，故應將兩種類型屬性區分；但兩者卻又共用前半部特徵空間，或許是因為會互相影響呈現的方式，例如穿裙子跑步時，步伐可能會與穿褲子時不太一樣，又或者跑步因為下擺劇烈擺動，沒有那麼容易判斷是褲子或裙子。呼應到先前所說的：「==行為相關屬與外觀描述無關，但卻會極大地影響外觀的呈現==」。

<p class="illustration">
    <img src="https://i.imgur.com/NRMMac1.png" alt="網路架構">
    網路架構（圖片來源: <a href="https://arxiv.org/pdf/1901.05742.pdf">論文</a>）
</p>

訓練時輸入為某行人某軌跡的的圖片序列，可表示為 $I = \{I_1, I_2...,I_n\}$，其中 $n$ 為幀數，每幀的長寬分別為 $(h,w,c) = (224,112,3)$。當圖片序列通過 Resnet-50 後，可以得到 `nx2048×4×7` 的 feature map。此 feature map 會被分別送往兩個分支進一步對空間特徵向量進行提取，得到一個 `nx2048` 的二維矩陣。

:::danger
**關於此段落符號的表示**

1. 根據上下文，文中的 n 與圖中的 T ，指得是同一個參數，用來表示幀數。
2. 圖片序列 I 中元素的下標，是從 1 開始，而不是常用的 0。
:::


### 3.2 Temporal-attention Strategy
在分支中還存在每個屬性判別任務的子分支中，這些子分支是帶有時間注意力機制的小網路。這是為了補全 ResNet-50 無法有效提取時間相關特徵而提出的概念。

在某些幀中，各個屬性可能因為==裁切==、==難以識別==和==遮擋==等現象，無法作為有效的判斷依據。因此不同屬性的識別可能必須依賴不同幀。因而引入時間注意力機機制，以產生`n×1` 的時間注意力向量 $A$ ，用來表示每幀在識別特定屬性中的重要性。然後利用時間注意力向量對每幀的空間特徵進行加權，根據加權後的特徵，得到屬性分類的結果。

<p class="illustration">
    <img src="https://i.imgur.com/8aOEopZ.png" alt="時間注意力機制">
    時間注意力機制（圖片來源: <a href="https://arxiv.org/pdf/1901.05742.pdf">論文</a>）
</p>



## 4. Experiments
這邊實驗比較對象是
1. image-based method
2. [3DCNN](https://ieeexplore.ieee.org/document/6165309) 
3. [CNN-RNN model](https://ieeexplore.ieee.org/document/7780517) 

:::danger

**關於比較對象**

image-based method 這項我實在沒看懂它究竟是出自於哪個方法？

:::


### 4.1 Settings
資料集是重新標注 **MARS** 與 **DukeMTMC-VideoReID** 並按照原本訓練/測試集分法，並從資料集中隨機取樣 64 個軌跡，每個軌跡取 6 幀，e.g. $n=6$，並選擇 ==Cross Entropy Loss== 作為  loss function 、 ==Adam==  作為  optimizer、 learning rate 取 0.0003。


段落中有一句話，**與連續採樣策略相比，隨機採樣更適合於時間注意力模型，因為它增加了採樣幀之間的差異**，有點看不懂它的意思，不過看其他人的論文筆記，它的隨機採樣似乎還做了隨機剪裁、水平翻轉...等數據增強，不過這段文字我在論文中沒注意到，或許是在程式碼中的實作細節？


### 4.2 Comparison with other Approaches
<p class="illustration">
    <img src="https://i.imgur.com/yfk4SKH.png" alt="結果比較">
</p>
<p class="illustration">
    <img src="https://i.imgur.com/Cr0AHnK.png" alt="結果比較">
    結果比較（圖片來源: <a href="https://arxiv.org/pdf/1901.05742.pdf">論文</a>）
</p>
    
    
根據實驗結果：
1. **3DCNN**：不適合用來做 Video-Based PAR，可能是三維 convolution 會丟失軌跡中許多的空間特徵？
2. **3CNN-RNN**： 更適合用於動作識別，因為動作識別非常倚賴時間特徵，而且這些線索也不易通過時間注意力機制來提取。
3. **3Image-Based PAR**： 可能更適合細部特徵提取，忽然想到 Fashion Classification。
4. 總體上來說，本篇論文的方法更好。


### 4.3 Ablation study
這段實驗是用來證明他們引入了**行為與身分屬性分離**與**時間注意力機制**的效能：

<p class="illustration">
    <img src="https://i.imgur.com/Q3VZYec.png" alt="結果比較">
    結果比較（圖片來源: <a href="https://arxiv.org/pdf/1901.05742.pdf">論文</a>）
</p>

Temporal Pooling 應該是指用 ResNet50 當骨架直接做 multi-task 訓練，也就是 ResNet50 出來的特徵直接接各個屬性的 conv + pooling 最後做分類；separate channel 指的是行為與身分屬性分離；temporal attention 則是時間注意力機制。

在表格中可以看到，單就兩方法的比較，temporal attention 所能帶來的效益較大，不僅能輸入軌跡中提取出有區別的幀，還能緩解 [3.1 章節](#31-Network-Architecture)所提到特徵競爭問題。不過真的解決特徵競爭問題的是 separate channel，temporal attention 只能達到緩解的效果，在反向傳遞的過程中幫助梯度平滑傳遞到底層，達到類似的效果。


此外綜觀表1、表2和表3可以看出，即使不採用 separate channel 與 temporal attention 兩項方法，Video-based baseline 依舊優於 Image-based baseline，顯示出 Video-based 用於 PAR 的優越性。 



## 閱讀後記錄與動作


### 記錄
1.  **Video-Based PAR 與 Image-Based PAR 的異同與挑戰**
    - **異同**：  
    兩者對於輸入的圖像皆有高度依賴性，可能會因為裁切、難以識別和遮擋的現象，導致屬性分類困難。但在 Video-Based 中引入序列資料，添加時間軸資料，能夠提 PAR 的準確率。
    - **挑戰**：
        1. 公開資料集少，因此本文作者還重新標注了資料庫，如果我們要自己標注自己的資料庫，會所費不貲。但這應該算是 AI/ML 的共同問題。
        2. 雖然有用 ResNet-50 作為骨幹網路，進行遷移學習，但不同在 Multi-task learning 中，針對不同的任務收斂速率應該會不同，在加上 Temporal-attention，會不會導致難以訓練？

2. **期望能介紹該方面的實做與 STOA**
    - 所謂的 Video-Based 指的是同一運動目標的連續的靜態影像序列。
    - 使用 ResNet-50 作為骨幹網路，進行遷移學習，後面依照行為與身分屬性分成兩個分支，並進行 multi-task 訓練，在每個任務的子分支中，又都加入時間注意力機制對每幀的中的特定屬性進行加權。
    - 子分支中網路應該就是兩個 1D-Convolution 做並聯，時間 Temporal-attention 負責壓縮時間、另一邊則負責提取空間特徵。
    - 比較對象有 [CNN-RNN model](https://ieeexplore.ieee.org/document/7780517) 。
   
3. **期望能收集現有的資料集**  
    - 作者有公佈他們重新標注的[資料集](http://irip.buaa.edu.cn/mars_duke_attributes/index.html)，但按照文中訓練時的方法設置訓練與測試集，可能會導致訓練集的資料量遠少於測試集的資料量。


### 動作
1. Study Code
    - Multi-task 的 conv + pooling 的層數與參數沒特別說明，可能要去看看程式碼。
    - 連續採樣策略的部份，也需要看看程式碼了解它的實做，並確定是否有做數據增強。
    - 子分支中網路驗證一下實做，特別是時間注意力機制的部份。
    - 它 Batch 的部份怎 train？ResNet-50 的 input shape 應該只有四個維度，但現在原 Batch 被幀數使用掉了。 
1. Study Multi-task learning
2. Study [CNN-RNN model](https://ieeexplore.ieee.org/document/7780517) 

 

## 參考資料 
1. huangyiping_dream (2020-04-10)。[行人属性识别：A Temporal Attentive Approach for Video-Based Pedestrian Attribute Recognition](https://blog.csdn.net/huangyiping12345/article/details/105434463) 。檢自 huangyiping12345｜CSDN (2020-08-10)。
2. [A Temporal Attentive Approach for Video-Based Pedestrian Attribute Recognition](https://www.pianshen.com/article/91351109327/) 。檢自 程序员大本营 (2020-08-10)。



## 更新紀錄
:::spoiler 最後更新日期：2020-08-13
- 2020-08-13 發布
- 2020-08-11 完稿
- 2020-08-10 起稿
:::


{%hackmd @CynthiaChuang/Github-Page-Footer %}


