【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 的特徵向量,而最後兩碼分別表示訓練與測試所是用資料集,會有 o、 c 、 m 三種,分別表示遮擋、未遮擋與混合的資料集三種。

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


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

遮擋性能分析 遮擋性能分析(圖片來源: 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-30 和 60+ 兩個標籤;而空間指的是標籤與身體空間上的關係,例如,頭髮長短的特徵會先專注頭部。

在這篇實做使用的資料集 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×16、16×8、8×4 與最後的特徵層,中間特徵層會經由源自於空間變換網路(STN)的屬性定位模組(ALM),以弱監督的方式發現最具判別力的區域。如架構圖所示,從三個 ALM 與全域的分之中會獲得 4 個預測向量,最後透過深度監督的方式,從屬性區域最精確的不尺度中選出最佳結果。

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

最終的數據結果如下:

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

6. 其他論文

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

  1. LGNet:Localization guided learning for pedestrian attribute recognition
  2. PGDM:Pose guided deep model for pedestrian attribute recognition in surveillance scenarios
  3. RA:Recurrent attention model for pedestrian attribute recognition
  4. VSGR:Visual-semantic graph reasoning for pedestrian attribute recognition
  5. VRKD:Pedestrian Attribute Recognition by Joint Visual-semantic Reasoning and Knowledge Distillation
  6. AAP:Attribute aware pooling for pedestrian attribute recognition
  7. MsVAA:Deep imbalanced attribute classification using visual attention aggregation
  8. VAC:Visual 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 起稿