【Survey】Pedestrian Attribute Recognition(PAR)

囫圇吞棗 Survey 結果。

如果覺得架構很眼熟,別懷疑。基本上就是 Pedestrian Attribute Recognition: A Survey 這篇論文的架構。
隨手附上讀書筆記傳送門。

Introduction

最近在看 Pedestrian Attribute Recognition (行人屬性辨識)的介紹,想要快速的大致了解下這個領域,包含問題定義、面臨的挑戰、現存的benchmark 與一些研究現況。

先澆大家冷水,對屬性辨識的效果,尤其是真的從監視器中擷取圖像出來辨識的那種,準確度其實不甚理想,目前所看到的論文在最新資料集(PA-100K)的表現上 mA,即多數論文的第一評估指標,也只達到 80% 左右的準確率。

Problem Formulation

在一開始我們先來看看何為行人屬性辨識,以及為什麼選擇屬性作為描述行人的特徵。

Pedestrian Attribute Recognition
行人屬性辨識的目的在於,從目標人物圖像中挖掘出所能被觀察到的高階語義描述,也就是所謂的屬性,例如:性別、年齡、服飾、配件…等。如下圖所示:

PAR Define 論文架構圖(圖片來源: 論文

若用更正式的數學式來定義,可以說成給定一張人物圖像 $I$,行人屬性辨識目的是從從預先定義的屬性列表 $A= {a_1, a_2, …, a_L}$ 中,預測一組屬性 $a_i$ 來描述此人的特徵。


Attribute
至於為什麼選擇屬性作為描述行人的特徵?

這是因為它與常用的 HOG、LBP 或是深度學習的抽象低階特徵不同,它是種可搜索的高階語義描述,簡單來說就是你可以用口語來描述這個特徵,且可以藉由這樣的特徵描述來搜尋目標人物。

而且,當用來描述行人的特徵由低階的線條變成高階富有語意的物件時,這樣的描述會更適應視角與外在條件的變化,不太容易因為這些條件的變動而變化。當然,或許這些變動會造成辨識上的困難,但不至於完全變成另一個特徵。


不過,對於什麼是屬性或屬性有哪些,其實並沒有明確定義。但一般我們用來描述一個陌生人時,可能使用的形容詞會有下面幾類:

  1. 體態:身高、體重…。
  2. 穿著:上衣樣式與顏色、下著類型及顏色、是否有背背包、有無手持物品…。
  3. 面容:年齡、性別、頭髮類型顏色、是否戴眼鏡、表情描述、有無痣或傷疤…。
  4. 動作:追、趕、跑、跳、碰、走、站…。

舉例來說:

  1. 一名穿黑色上衣的男子手持西瓜刀,怒氣沖沖朝店內走來。
  2. 剛剛站在那裡的紅衣紅鞋長髮女子。

可愛萬聖節鬼魂 P.S. 我原本想放張紅衣長髮女子的圖,陰氣森森的那種 XDDD 但覺得之後嚇到應該會是我自己,只好作罷。(圖片來源: 左: pixabay

雖說屬性五花八門,但在行人屬性辨識資料集中,會標注的以顆粒度較大的 soft-biometrics 為主,目前看到最細的標注也就是眼鏡跟皮帶。其他更小的顆粒度,會因解析度、學習困難度、標注困難以及一些實用性上的考量,而不進行標注。

當這些屬性辨識完畢後,最直接的應用場景就是應用於安防,另外也可延伸到行人重新識別…等領域,以實現更好的性能。

Challenge

這邊來探討在行人屬性訓練過程中會遇到的問題:

  1. Multi-views
  2. Occlusion
  3. Unbalanced Data Distribution
  4. Low Resolution
  5. Illumination
  6. Blur

不過這些問題,其實不專屬於行人屬性辨識,更像是辨識領域中共同的問題。很多問題如光源、模糊、障礙物遮擋…等問題,之前在做車牌辨識的時候就曾遇過類似的問題的。

但有部分問題在該領域確實會被放大,例如:Multi-views 與 Occlusion,不同視角的選擇這領域中,很可能導致部分屬性的消失或遮擋。

另外在遮擋問題,人體可能是被其他障礙物或是行人遮擋,可能導致在訓練時引入障礙物的特徵,更甚至其他人特徵。

此外就是低解析度的問題,主要是因為行人屬性辨識的圖像來源會是監視器,容易產生低解析度品質的圖像(因為好的監視器太貴了,沒辦法大量布置 XDDD)。但部分屬性因為顆粒度小,低解析度的成像會對辨識造成困難。


除了上述共有的問題外,根據幾篇論文跟文章,列出了些專屬於這領域的問題:

  1. 類別間差異(intra-class variations)大
    部分屬性由於外觀多樣性(appearance diversity),例如:包包種類繁多,和外觀歧義性(appearance ambiguity),例如:placket 跟 solid ,導致單一類別間差異頗大。

     placket 跟 solid 左: placket 右:solid(圖片來源: 左: Beautifulhalo、右:蝦皮購物

  2. 變形
    服裝由於材料的緣故,衣服因行人的動作或外物而變形,導致特徵縮,例如:穿著下擺比寬鬆的短褲進行劇烈運動時,會容易誤認為短裙。

    另外,由於視角以及圖像長寬比的不同,容易導致衣物特徵變形,而看起來不同。不過,這樣的變形的影響程度,取決於標注顆粒度大小,例如:在另一個相似的領域 Fashion Classification,它主要是判斷衣物特徵與風格,如果衣物上的樣式變形,例如細條紋變成粗條紋,對它影響會比較大;反之在行人屬性辨識中,衣物相關的顆粒度相較之下較大,影響沒那劇烈。

  3. 不同級別的標籤
    此外,每種屬性的推斷所需要的特徵不盡相同。有些屬性僅和人體的部分區域相關,例如:長短髮、有無帽子、有無眼鏡、服裝顏色…等,屬於低級屬性,只需要局部特徵,但這些局部特徵的位置可能在不同的樣本中又不相同,例如:背包的位子可能是前背、後背、側背,甚至拿手上;而有的屬性它無法對應到特定區域,或者說要看完全圖才能推定的屬性,例如:性別、年齡…等,因此需要全域特徵,屬於高級屬性。

    這些都導致在學習時,特徵抽取的阻礙。另外,不同屬性間所需關注的特徵有可能相同,若多個屬性同時同個特徵來學習,能出現特徵競爭的現象。

  4. 細緻屬性的提取
    某些屬性在整張圖像中佔比實在太少,如墨鏡、首飾及正面鏡頭的後背包,這會導致使辨識的困難。

  5. 分類問題
    因為一個人身上的屬性繁多,在加上標注方式的不同,會同時出現二分類或是多分類的屬性,例如:有些屬性是二分類,像是:有無背包;有的則是多分類,例如:上衣顏色、年齡區段…等。這讓一開始的問題定義與模型選擇就會是個難題。

Fashion Classification

岔個題外話,我一開始收到的指令要是辯識人身上的物件衣服樣式,因此直覺想到 Fashion MNIST:

 Fashion MNIST 資料集 Fashion MNIST 資料集(圖片來源: zalandoresearch/ fashion-mnist | github

Fashion Classification,個人覺得它跟行人屬性辨識的定義相似,也是給定一張圖片並從預先定義的屬性列表,選出一連串符合描述的屬性,只是它的屬性可能更細緻與抽象,例如服裝樣式、風格、布料,而且更加偏重服裝本身的屬性標注。

另外一個讓我比較印象深刻的是,兩個資料集的照片的比大概就是網美照與狗仔偷拍照的對比。

Market150 Sample Market1501 Sample (圖片來源: 左: Market1501 Github、 右: CF dataset

在兩個領域中會遇到的挑戰也不盡相同,在 Fashion 方面受細緻屬性提取、外觀歧義性、變形的影響較深;而行人屬性辨識則是受到低解析度、動作影響、攝影機視角與遮擋的影響較大。

兩個領域延伸出去的應用也不太一樣,Fashion 可以應用在電商上,相似風格、相似設計師推薦,或是所謂的明星同款推薦;而在行人屬性辨識行人檢測/跟踪/檢索與行人重新識別…等方面。

嗯…行人屬性辨識的延伸應用怎麼列出來的感覺比較厲害,但…Fashion 的看起來是有錢途 XDDD

Benchmarks

這裡介紹了分兩部分:一是資料集、二是評估指標。

Dataset

前面提過,行人屬性辨識的標注含蓋了兩種不同級別的標籤:低級屬性高級屬性,不過看完資料集,覺得這些屬性可以再分成兩類:

  1. 動作描述
    例如:追、趕、跑、跳、碰、走、站……等。這些屬性與外觀描述無關,但卻會極大地影響外觀的呈現。
  2. 外觀描述
    可以理解成描述此人所會用到的形容詞。

這邊跟 Survey 論文的 Dataset 重疊性高,所以貼了一張圖代表,就不再贅述了。

Dataset Overview Dataset Overview(圖片來源: 論文 Blog

雖然列了將近 10 個資料集,不過其中最著名的莫過於 RAP、 PETA、 與 PA-100K 三個資料集。除了這三個外,就屬於 Market1501 和 DukeMTMC 這兩個孿生資料集。

綜觀這些資料集,可以發現到資料集存在著一些狀況:

  1. 屬性標注界限不明、錯誤
    就如同前面所說的公開資料集中類別間差異大,標注界限不明、甚至是錯誤的情況。而基於這些資料所設計出來的演算法,效能也難以突破,,這或許是因為這領域相對於其 CV 領域不熱門的原因?

  2. 對同一屬性的標注方式不一
    此外各個資料集間對同一屬性的標注方式不同,甚至頗大,難以做遷移訓練,接續前人的研究成果。或許有些可以藉由後處理來映射,不過多數的屬性標注感覺沒辦法進行映射。

  3. 行人框的精準度
    這個應該不算資料集的問題,算是實做或說是系統面的問題。在資料集中所有的行人框是由人工標注出來了,行人會位於圖像的正中央,是整個圖像的主體;但一般在設計系統時,並不會由人工去框,而是會借助檢測器去檢測行人,但在檢測結果中行人的位置不定,也可能不會是圖像中佔比最大的,這有可能對辨識效果產生影響。

  4. 場景的變化
    這個也不算是資料集問題,但如果真要落地可能需要在蒐集額外的資料。這些資料集基本是處於相同的場景與氣候條件,是處於一個較佳的狀況,但若真要實做,可能還必須蒐集不同場景、天氣、光源…等資料,以增加系統的健壯性。當然這是要做室外的場景的應用,如果是室內的話,這些條件會相對應穩定。

    此外,可能還必須針對不同的場景,挑選合適的屬性,才能達到較好的訓練效果。

另外的小苦惱的是,我接到的要求上衣要分長短袖、顏色要分 12 種,但這些資料集看下來,長短袖不一定有、顏色最多只有 11 個…,看來如果要用這些資料集,也要做些後處理。不過這幾個資料集好像也不能商用就是了,看來標資料的惡夢可能又得重溫一次了(嘆。

Evaluation Criteria

在論文中常使用的有兩種:

  1. mean acccuracy (mA)
    這是論文中常見的第一指標,分別計算每個屬性正負樣本分對的比例,再將兩者平均作為這一個屬性的精準度,最後再將所有屬性取平均做為最後的值。這種以屬性下去算的方式,被稱作 label-based 的評估方式。

    \[mA = \cfrac{1}{2N} \sum^L_{i=1}(\cfrac{TP_i}{P_i} + \cfrac{TNi}{N_i} )\]

    其中,$L$ 是屬性的數量,$P_i$ 和 $TP_i$ 分別為正樣本數與分對的正樣本數;同理,$N_i$ 和 $TN_i$ 則為負樣本與分對的負樣本。

  2. Example-based evaluation
    但 label-based 的評估方式並沒有考慮到屬性之間的關聯性,因此提出了以每個樣本為基礎的評估方式:

    \[\begin{aligned} Acc_{exam} &= \cfrac{1}{N} \sum^N_{i=1}(\cfrac{\vert Y_i \bigcap f(x_i)\vert}{\vert Y_i \bigcup f(x_i)\vert}) \\ Prex_{exam} &= \cfrac{1}{N} \sum^N_{i=1}(\cfrac{\vert Y_i \bigcap f(x_i)\vert}{\vert f(x_i) \vert}) \\ Rec_{exam} &= \cfrac{1}{N} \sum^N_{i=1}(\cfrac{\vert Y_i \bigcap f(x_i)\vert}{\vert Y_i \vert}) \\ F1 &= \cfrac{2 * Prex_{exam} * Rec_{exam} }{Prex_{exam} + Rec_{exam}} \end{aligned}\]

    其中 $N$ 是所有樣本數, $Y_i$ 是第 $i$ 個樣本中 ground truth 為 positive 的 label,$f(x)$ 則是第 $i$ 個樣本中預測結果為 true 的 label。

    看公式基本上就是 recall 跟 precision 的變形,變化比較大的是 accuracy 的部分,按公式來看,可以表示成:

    \[Acc_{exam} = \cfrac{1}{N} \sum^N_{i=1}(\cfrac{TP}{TP+FP+FN}) \\\]

    原先公式中的 TN 全被剔除了,這應該是為了因應 Multilabel 中為 0 資料較多,所特地處理了,因此算出來的分數會比原公式的還低。

  3. 其他指標
    除了這兩種外,在部分論文中有會引入 Multilabel 中常見 Receiver Operating Characteristic (ROC)Area Under the average ROC Curve (AUC) 作為一般指標。

Regular Pipeline

因為行人屬性標注的多樣性,它可採的網路架構相對較多樣,目前最主流的方法是用 Multitask Learning,它將每個屬性估計視為一項任務,用一個模型全搞定。

但無論是採用 Multiclass、 Multilabel 或是 Multitask 的方法,都必須做些修改。修改方向可能是修改資料適應演算法或是演算法適應資料,詳細說明之前在筆記中有提過,網誌就不再重複說明了。

目前主流的方法是 Multitask Learning 中的 Hard parameter sharing ,在這方面會遇到的挑戰有:

  1. 何時從骨幹網路分叉進行各自屬性的訓練?
  2. 訓練時各屬性收斂速度不一樣,如何設置訓練中止的條件且不影響識別其他屬性的效果?
  3. 另外,各屬性 loss 的權重該如何調整,才能較好擬合?

是說,平常寫報告這樣跳來跳去的一定會被罵 XDDD ,不過基於程式碼不重複原則(雖然現在不是寫程式碼)不是很想複製這麼一大段的重複的內文,不過我也懶的用不同的句子去重寫一次 XDDD

Review of PAR Algorithms

快速瀏覽下研究方法的發展。

最初的行人屬性識別是通過方向梯度直方圖(Histogram of Oriented Gradient, HOG)、局部二值模式(Local Binary Pattern)、LBP…等方式,進行人工提取特徵,並針對每個不同的屬性分別訓練分類器。

隨著 CNN 的方法開始發展後,開始將嘗試圖片放進網路訓練,而分類方法也從為每個屬性訓練分類器,逐步往 Mulstitask 的方向來演進。而在輸入的資訊也從最一開始將整張圖片放進 CNN 進行訓練,到之後為了克服不同粒度屬性的問題,會縮放圖片特徵,以類似特徵金字塔來進行,或是引入額外的身體特徵資訊,如:身體部位、姿態評估、骨架…等資訊,也有引入 attention 及透過不同層次的網路來提取…等方法,來提高整體識別性能。

所謂的不同層次的網路來提取,指的是 multi-branch 方法,會先將屬性分群分別提取,最後再將不同分支提取的特徵進行拼接。另外說到引入額外的資訊,有些在辨識過程中考慮不同視角,但這個資料在上述的資料集中只有 RAP 有提供。

與其他電腦視覺任務的發展史雷同,在 CNN 之後出現了 RNN-based 與 CNN-RNN-based 的方法。在 RNN-based 中,會藉由上下文的訊息建立 LSTM 網路,使得上下文的資訊可以傳到後續的特徵提取過程。不同屬性間的關聯,也可以用 LSTM 保存上一個屬性以供後面使用,或是透過聯合訓練的方式來進行。

此外針對標籤不平衡,有部分研究會對於 loss 權重做調整,以得到較好的擬合效果。


根據上面的發展,這邊我就我看過得論文挑選了幾篇來介紹。

read paper!

1. A Richly Annotated Dataset for Pedestrian Attribute Recognition

這篇的論文其實可以分成三部曲,個人覺得成就最大的是第二篇,也就是我標題放著的名稱,不過上 Transactions on 的是第三篇:

  1. Multi-attribute learning for pedestrian attribute recognition in surveillance scenarios
  2. A Richly Annotated Dataset for Pedestrian Attribute Recognition
  3. A Richly Annotated Pedestrian Dataset for Person Retrieval in Real Surveillance Scenarios

在這系列的論文中的第一篇 《Multi-attribute learning for pedestrian attribute recognition in surveillance scenarios》 中,作者提出了 DeepSAR 與 DeepMAR Model 兩個模型,模型相當簡單,都是標準的 CNN 網路。但據我查到的資料,這篇好像是第一篇使用 CNN 實做的架構(有點不太確定,2015 年 CNN-based 的方法有點像是百花齊放,忽然多了很多,就先姑且算是吧),順便附上找到的 Pytorch 程式碼

DeepSAR/DeepMAR Model DeepSAR/DeepMAR Model(圖片來源: DeepSAR/DeepMAR Model 論文

而在 《A Richly Annotated Dataset for Pedestrian Attribute Recognition》 一文中,提出了 RAP 1.0 的資料集,並就不同視角、遮擋、身體部位與屬性識別的影響進行了分析。(Caffe 程式碼

在資料集中,先將資料依照有無遮擋分成了兩類:

有無遮擋資料集 有無遮擋資料集(圖片來源: RAP 1.0 論文

並提供了不同視角的影像標注:

不同視角的影像標注 不同視角的影像標注(圖片來源: RAP 1.0 論文

視角
為避免遮擋影響性能,這實驗僅取無遮擋的圖片出來進行分析。分別就不區分、正面、背面、左邊、右邊 5 種狀況進行訓練,並觀察視角對各屬性識別性能的影響。

不同視角性能分析 不同視角性能分析(圖片來源: RAP 1.0 論文

其中比較對象的 FC6-cc,表示使用第六層 Fully Connected Layer 的特徵向量,而最後兩碼分別表示訓練與測試所是用資料集,會有 ocm 三種,分別表示遮擋、未遮擋與混合的資料集三種。

結果表明,不同的視角確實會影響到部分屬性的識別,例如:背包使用背面視角判斷的準確度最高、長短袖的判斷則是側面的準確度較高。


遮擋
實驗結果表明,有遮擋的性能相較無遮擋的性能,局部屬性性能下降,表明遮擋會對局部屬性的識別造成影響。

遮擋性能分析 遮擋性能分析(圖片來源: RAP 1.0 論文

身體部位
最後的實驗是採用身體部位,資料集中將人體分成了三個大部位:頭部、上半身、下半身。

資料集中將人體分成了三個大部位 資料集中將人體分成了三個大部位(圖片來源: RAP 1.0 論文

並從中擷取出個別部位進行辨識,實驗結果表明,屬於該部位的屬性的辨識效果會比使用其他部位來的好。引此若能引入身體部位的資訊,或許能提高辨識結果。

身體部位性能分析 身體部位性能分析(圖片來源: RAP 1.0 論文

三部曲的最後一篇 《A Richly Annotated Pedestrian Dataset for Person Retrieval in Real Surveillance Scenarios》,則是提出 RAP 2.0,除了加大資料量外,還為每位行人加上了 person ID,使資料集可以用在行人重新識別。

2. HydraPlus-Net: Attentive Deep Features for Pedestrian Analysis

又名 HydraPlus-Net 或是 HP-Net(傳送門:論文Caffe Code)。這篇是香港中文大學與商湯提出來的一篇論文,同時處理了屬性辨識與行人重新識別的問題,並且提出了目前最大的資料集:PA-100k(不曉得為啥我一直打成 PK-100A XDDD)。

為了克服不同層級屬性的問題,本篇使用了多層 attention 來映射不同的特徵層,從而完成從局部到全局的特徵提取,最後再將所提取特徵融合,以進行屬性辨識。

HP-Net 網路架構 HP-Net 網路架構(圖片來源: HP-Net 論文

網路可以分成 Main Net (M-net)與 Attentive Feature Net (AF-net) 兩個部分。

  1. Main Net
    這是個單純的 CNN 架構,實做方式是採用 inception_v2,包含了 3 個 inception block。

  2. Attentive Feature Net
    而 AF-Net 包含了 3 個 multidirectional attention(MDA)增強的網路分支,最終會產生多層 attention 特徵。

    MDA module MDA module(圖片來源: HP-Net 論文

    不同 block 經由 attention 所學到特徵差異頗大,高層的特徵通常更聚焦語意區域或是特定物體上,如下圖上 $a^3$ ;而低的特徵則善於捕捉局部特徵或是邊緣、紋理…等細節,如下圖上 $a^1$ 。 而下圖下,所顯示的則是在不同 channel 中所捕捉到的不同特徵模式。

    MDA Maps MDA Maps(圖片來源: HP-Net 論文

  3. Global Average Pooling,GAP
    網路的最後先使用 Global Average Pooling 取代 Fully Connected Layer 來融合不同的的特徵,一般認為,相比 FC ,使用 GAP 會較好的預測效能。

總覺得這個網路訓練起會很麻煩,在訓練方式上它是採用分階段訓練。先訓練 M-net 提取基本特徵,再將 M-net 複製三次得到三個 AF-net 分支,接下來分別訓練三個分支。最後固定 M-net 與 AF-net 訓練最後的 GAP 與 FC 。

HP-Net 實驗結果 HP-Net 實驗結果(圖片來源: HP-Net 論文

3. Attribute Recognition by Joint Recurrent Learning of Context and Correlation

選這篇論文是因為我認為它算是使用 RNN 的代表,又名 JRL。

網路的核心概念有二,一是提取不同屬性間的關聯性,例如裙子與女性兩個詞同時出現在圖像中的機會較大;二是行人間的屬性關聯,即同一個場景的人很有可能會有類似的屬性,想到例子大概就是海邊穿泳衣、戴太陽眼鏡;或是冬天穿毛衣、厚外套之類的。

JRL 網路架構 JRL 網路架構(圖片來源: JRL 論文

就網路本身它是由 Encoder 與 Decoder 兩個 RNN 構成,文中將這兩個 RNN 稱為 Intra-Person Attribute Contex 與 Inter-Attribute Correlation。而行人間上下文的部分就由 Inter-Person Similarity Context 負責。

  1. Intra-Person Attribute Context
    這邊將行人圖像依垂直方向分成 $m$ 等分,在上圖中 $m=6$,將這 6 等分視為不同 time step,依時序依序輸入 LSTM,最終得到 hidden states 與輸出值 $z$。用這樣的提取方式可以獲取體內上下文的關係。

  2. Inter-Person Similarity Context
    這則是在要來找尋人群中關係,除目標圖像 $I$ 外,會從整個畫面中選出最相近的另外 $k$ 張圖像 $I^a_i, i={1,…,k}$。張後每張圖像都經由 Encoder,得到輸出值 $z^a_i$,最終將所有量作為附加訊息整合到 $z^* = max(z,z^a_1,…,z^a_k)$。

    至於如何挑選 $k$ 張相近圖像,則是藉由 AlexNet 提取。將 AlexNet 經由 ImageNet 初始化並進行 Fine-tune 後,輸入候選圖像,並將第 5 層 的 Convolutional Layer 的 featuremap 依垂直方向分成 $m$ 等分別進行 pooling, 再將 $m$ 個區域的 pooling 結果接在一起送回第 6 層 Fully Connected Layer,最後取第 7 層的輸出特徵,用 L2 距離計算出 top-k 張相似的圖像。

  3. Inter-Attribute Correlation
    最後對屬性進行解碼。這邊引入了 attention,根據每張圖片對每種屬性辨識的貢獻度不同,依下列計算得到一組 Decoder 的輸入 $Z$。 \(Z_t = \sum^m_{i=1}{w_{t,i} \times h_i}\)

    其中 $t$ 指的是屬性個數,$h_i$ 則是 Encoder 所產生的 hidden state。將 $Z$ 與上一階段所得的 $z^*$ 分別作為 Decoder 的輸入與初始狀態,最後預測出一連串的結果。

訓練時為避免雜訊從 RNN 傳播到 CNN,兩種網路會分開訓練。另外考慮到局部特徵的位置在不同的樣本中可能不同,因此 RNN 的 Decoder 的屬性排列順序,並未存在一個最佳排序方式,因此這邊定義了 10 種排序方式,針對每種方式字訓練了一個 JRL 網路(我應該沒理解錯誤),最後在以多數決的方式給出預測。

這個網路的訓練應該會很慢,RNN 的訓練本來就快不了了,還要訓練 10 個…。

JRL 結果 JRL 結果(圖片來源: JRL 論文

4. Grouping Attribute Recognition for Pedestrian with Joint Recurrent Learning

前面提過,為了克服顆粒度不同的問題,會引入額外的資訊,而這篇 GRL (論文程式碼)就是引入了身體部位的資訊,據說這是第一篇利用空間相關性來分組進行屬性預測的研究。

這篇提到,目前的方法都著重在發覺屬性之間的關聯性,但都忽略組內語意的衝突與空間上的關係,所謂的組內語意指的是預測結果中兩個箱衝突的預測,以年紀來說,不可能有人同時具備 16-3060+ 兩個標籤;而空間指的是標籤與身體空間上的關係,例如,頭髮長短的特徵會先專注頭部。

在這篇實做使用的資料集 PETA 與 RAP,作者先將屬性進行分組:

屬性分群 屬性分群(圖片來源: GRL 論文

就網路來看它以分成幾個區域來介紹。當給定一張目標圖像 $I_m$,會先使用 Fully Convolutional Networks 來判斷人體關節,載使用 Body Region Proposal Networks 區分出人體的頭部以及上下半身的區域。

身體區域劃分 身體區域劃分(圖片來源: GRL 論文

而目標圖像 $I_m$ 會在經由 inception v3 ,從中提取全域的特徵。在藉由 ROI Average Pooling 搭配剛剛劃分出的人體區域,從全域特徵中提區特定區域的特徵。

LSTM 的 time steps 會對應到剛剛對資料集所做的分組,而每一組的屬性會使用相同的 Fully Connection layer,並且被同時預測。

GRL 網路架構 GRL 網路架構(圖片來源: GRL 論文

最終的數據結果如下:

GRL 結果 GRL 結果(圖片來源: GRL 論文

5. Improving Pedestrian Attribute Recognition With Weakly-Supervised Multi-Scale Attribute-Specific Localization

Introduction 提過目前我看到在 PA-100K 上 mA 表現最好也只達到 80% 左右的準確率,指的就是這篇 ALM(論文程式碼)。

這篇也是從區域特徵提高細粒度的方向來下手,但不同的是他提出了 Attribute Localization Module,不同於過往的方法,能夠自發的發現最具判別力的區域,並在多尺度上學習每個屬性的區域特徵。

引入額外身體資訊 引入額外身體資訊(圖片來源: ALM 論文

在過往的學習中,如要關注上圖(b) 中的一頭長髮,會有兩種常見的方式。一是使用 attention 來學習關注特定屬性可能所需的區域:另一種方法是使用 body-parts detection 的方式來提取局部特徵,最後將這些特徵與全域特徵融合學習,這雖能提高辨識結果,但無法表示性與區域間的對應關係,且額外運算先行定位身體區域。

網路中引入了特徵金字塔的概念,來對區域特徵進行縮放,這應該是為了克服顆粒度較小的屬性所包含的像素較少,因此再向下採樣過程中容易丟失,所以利用金字塔的概念來進行尺度變化的增強。

特徵金字塔 特徵金字塔(圖片來源: Hans|知乎

在目標圖像經由骨幹網路進行特徵提取時,會產生不同層的特徵層,從中選擇 32×1616×88×4 與最後的特徵層,中間特徵層會經由源自於空間變換網路(STN)的屬性定位模組(ALM),以弱監督的方式發現最具判別力的區域。如架構圖所示,從三個 ALM 與全域的分之中會獲得 4 個預測向量,最後透過深度監督的方式,從屬性區域最精確的不尺度中選出最佳結果。

ALM 網路架構 ALM 網路架構(圖片來源: ALM 論文

最終的數據結果如下:

ALM 結果 ALM 結果(圖片來源: ALM 論文

6. 其他論文

基本上,前面的論文我是從 Strong_Baseline_of_Pedestrian_Attribute_Recognition 的 SOTA Performance 並搭配前面發展的過程,挑了五篇進行介紹,至於其他幾篇,就先附上連結了:

  1. LGNetLocalization guided learning for pedestrian attribute recognition
  2. PGDMPose guided deep model for pedestrian attribute recognition in surveillance scenarios
  3. RARecurrent attention model for pedestrian attribute recognition
  4. VSGRVisual-semantic graph reasoning for pedestrian attribute recognition
  5. VRKDPedestrian Attribute Recognition by Joint Visual-semantic Reasoning and Knowledge Distillation
  6. AAPAttribute aware pooling for pedestrian attribute recognition
  7. MsVAADeep imbalanced attribute classification using visual attention aggregation
  8. VACVisual attention consistency under image transforms for multi-label image classification.


另外附上幾篇有找到程式碼的論文

  1. WPAL-network
  2. VeSPA
  3. SRN

參考資料

  1. 阿杰洛克之地 (2019-07-17)。Pedestrian Attribute Recognition 。檢自 阿杰洛克之地的博客|CSDN博客 (2020-08-21)。
  2. 肤浅-的我 (2019-09-12)。论文笔记Pedestrian Attribute Recognition(PAR): A Survey 。檢自 weixin_39225983的博客|CSDN博客 (2020-08-21)。
  3. lanmengyiyu (2019-10-23)。Pedestrian Attribute Recognition。檢自 张洁的笔记|CSDN博客 (2020-08-26)。
  4. Code_Mart (2019-03-02)。[笔记] Pedestrian Attribute Recognition Dataset Summary 。檢自 不进则退|CSDN博客 (2020-08-21)。
  5. (2019-10-27)。Pedstrain Attribute Notes 。檢自 大专栏 (2020-08-21)。
  6. wangxiao5791509 (2017)。Pedestrian-Attribute-Recognition-Paper-List: Paper list on Pedestrian Attribute Recognition (PAR) and related tasks 。檢自 wangxiao5791509 | github (2020-08-21)。
  7. linolzhang (2018-04-20)。行人属性识别(Pedestrian attribute recognition)研究现状?。檢自 知乎 (2020-08-30)。
  8. Anticoder (2019-03-16)。Multi-task Learning(Review)多任务学习概述。檢自 知乎 (2020-08-27)。
  9. WhiteXie_zx (2019-01-01)。【论文阅读】HydraPlus-Net: Attentive Deep Features for Pedestrian Analysis 。檢自 WhiteXie_zx|博客园 (2020-09-16)。
  10. cv_family_z (2017-10-19)。行人属性“Attribute Recognition by Joint Recurrent Learning of Context and Correlation” 。檢自 cv_family_z的博客|CSDN博客 (2020-09-17)。
  11. huangyiping_dream (2020-04-08)。行人属性识别:Grouping Attribute Recognition for Pedestrian with Joint Recurrent Learning 。檢自 huangyiping12345的博客|CSDN博客 (2020-09-17)。
  12. huangyiping_dream (2020-04-09)。行人属性识别:IImproving Pedestrian Attribute Recognition With Weakly-Supervised Multi-Scale Attribute-Specific Localization 。檢自 huangyiping12345的博客|CSDN博客 (2020-09-17)。
  13. Pedestrian Attribute Recognition 。檢自 Papers With Code (2020-09-17)。
  14. Hans (2020-01-27)。【论文笔记】FPN —— 特征金字塔 。檢自 知乎 (2020-09-17)。
  15. valencebond。Strong_Baseline_of_Pedestrian_Attribute_Recognition 。檢自 valencebond|github (2020-09-17)。

更新紀錄

最後更新日期:2020-12-30
  • 2020-12-30 發布
  • 2020-09-17 完稿
  • 2020-09-17 起稿