Learning Context Graph for Person Searchnode
2019-06-24 09:14:03git
Code: https://github.com/sjtuzq/person_search_gcn 算法
Person Search Paper List: https://github.com/wangxiao5791509/Person-Search-Paper-List 網絡
1. Background and Motivation: app
做者首先總結了現有的 re-ID 方法的挑戰:ide
1). 現有的 re-ID 的設定(prob-gallery)是屬於多模態的,例如:手機拍的照片和常規的低分辨率監控相機;學習
2). 不一樣的光照和行人姿態將會增長 intra-class variation;優化
3). 不許確的檢測/跟蹤,遮擋和複雜背景將會致使嚴重的外觀變化,將會進一步增長 person re-ID 的難度。spa
緊跟着,做者開始基於上述挑戰,引出 re-ID 的設定,在實際應用中存在的挑戰。而後,引入 person search 這個課題。現有的 person search 的方法嘗試將 context/group 信息用於解決實際問題,可是這些方法仍然有以下的不足:如何定義 group 是一個很重要的任務。有的方法嘗試用手工標註的方式,可是這就須要額外的人力。其餘的方法有嘗試利用時空信息,如:場景中的速度和相對位置,來幫助 re-ID。做者認爲這些 social force models 利用協同設計的約束來模擬場景中的社交影響力,並無提供很好的解決方案,很難優化。
本文基於上述觀察,提出一種新的利用 context 信息的方法,來解決 person search 的問題。首先從圖像中產生不少 candidates,而後用 relative attention module 篩選出有用的圖像對。在這些圖像對上,構建 context graph 來建模 prob-gallery pairs 的全局類似性。圖的節點是:target pair and context pairs。爲了充分的利用 context 信息,做者將全部的 context nodes 都和 target nodes 進行相連。該 graph 輸出的是 target pair 的類似性。
2. 算法總覽:
本文的算法主要是由三個模塊構成的,示意圖如上圖所示。
Instance Detection and Feature Learning: 在常規物體檢測方法 Faster RCNN 的基礎上,做者引入了 part-based feature learning,以獲得更加具備判別性的表達。
Context Instance Expansion: 該模塊是本文的核心,做者在 instance feature 的基礎上進行拓展,引入 context information。Query 和 gallery 之間全部的 instance pairs 都被做爲 context candidates,其中的 noise contexts 將會被過濾掉。這裏就是採用簡單的類似性度量的方法,僅將高置信度的 pairs 選出做爲 information contexts。
Contextual Graph Representation Learning:這是另一個核心的模塊了,做者構建 graph 來考慮 target pairs 之間的類似性。經過 GCN 來學習 prob-gallery pair 之間的類似性。
3. Instance Detection and Feature Learning :
做者將 ResNet-50 拆分紅兩個部分來用,前半部分用於 Pedestrian Proposal 的生成,後半部分用於 part-based feature learning。
關於 part-based feature learning,其實就是將行人劃分 part,而後用 global pooling 和 local pooling 的方法獲得更加具備判別性的 feature。這裏的 global 和 local 分別是針對整個行人區域和行人的局部區域(本文考慮上肢,下肢,腹部三個區域)。
4. Context Instance Expansion:
劃重點!劃重點!劃重點!因爲單獨的 features 並不能很好的處理實際問題中 person retrieval 任務,做者提出利用 context information 的方法來做爲互補信息。如上圖所示,該示例圖的目標是:判斷紅色 BBox 中的男人,是否屬於同一我的。然而,因爲不一樣場景下的外觀變化,致使利用常規 feature 進行判斷時,總不能很確信。在這個時候,做者觀察到:the same persons in green BBox appear in both scenes, 因此能夠更加肯定的是紅色的 BBox 的確是屬於同一我的。爲何呢?由於這個時候,至關於用了排除法,利用 context 信息的比對,協助 target object 的對比,使其更加肯定,就是同一我的。因此,綠色 BBox 裏面的行人扮演了 positive 的角色,其餘的人則是 noise contexts。在這個部分,做者提出 relative attention model 來過濾掉沒法提供 positive contexts 的 pair。
一種直觀的方法是直接計算不一樣 part 之間的 feature 距離,而後加和起來用於衡量類似度,而後設置一個閾值,獲得二值結果,即:
可是這種加權的方法,並不是是最優的解決方案。由於不一樣的 part 在不一樣的樣本上,其貢獻是不一樣的。因此,也有工做對其進行改善,Huang et al. 提出 instance region attention network (請參考:Huang, Qingqiu, Yu Xiong, and Dahua Lin. "Unifying identification and context learning for person recognition." CVPR-2018.) 來給不一樣的 parts 賦予不一樣的權重。緊跟着,做者的原文是:「The attention weights measure the instance-wise part contributions, and part similarity is multiplied by both parts’ attention weights.」 感受跟公式 1 加權的思路同樣啊,哪裏有改進?等抽空看下這個文章再說吧。而後,做者注意到:part contributionos are not only related to sample itself, but are also related to the part to be matched。換句話說,part 的貢獻是和 part pairs 相關的。受到該觀測的啓發,做者設計了 relative attention network 來考慮 pair-wise information 來預測 part weights。
具體來講,本文所提出的 relative attention network 是有 兩個 fc 和 一個 softmax layer 構成的。該網絡的輸入是 4 pairs of feature vectors,Softmax layer 輸出 4 個歸一化後的 attention weights。爲了訓練該網絡,採用了 cosine embedding verification loss。
5. Contextual Graph Representation Learning :
在本文中,做者引入 GCN 模型來學習結構化的信息。以下圖所示:
給定圖像 A 和 B, 模型的主要目標是:判斷給定的圖像對是不是同一個 Identity。這裏給定了紅色標誌的 target pairs,以及 綠色標誌的 context pairs。目標就是要將這些樣本結合到一個模型中,而後輸出其類似性得分。具體來講,給定這些 feature 以後,能夠構建一個 graph g = {V, E},其頂點就是 a pair of features, 其鄰接矩陣 A 表示了 edge 的鏈接關係,其定義以下:
做者用 $\hat{A}$ 來表示歸一化以後的鄰接矩陣,layer-wise GCN 傳遞方式以下所示:
最終,做者用一層 fc 來融合全部的頂點特徵爲 1024-D 的特徵向量。而且用一層 softmax loss layer 來進行監督的學習。
6. Experimental Results :
==