簡介:
這是一篇19年CVPR的跨域無監督Re-ID論文,在Market1501和DukeMTMC-reID上分別達到了67.7%和67.1%的rank-1精度,算是一篇將准確度刷得比較高的論文了,在這篇論文中主要是偏重了loss函數的設計而非網絡結構,所以理解起來還是有一定難度的,下面就來一探它的奧秘。
主要工作:
- 在對無標注的目標域數據打偽標簽時不適用onehot這樣的硬值,而是將目標域無標簽人物身份表示為與一組額外數據集中已知標簽人物的相似度(軟多標簽),這篇論文將額外數據集(類似源域的概念)的有標簽行人叫做參考人物
- 利用外觀特征與軟多標簽之間的一致性進行困難負樣本挖掘
- 因為行人重識別的一個setting是跨攝像頭匹配,所以引入了約束來保持軟多標簽在不同視角相機下保持一致性
- 引入參考代理學習來將每一個代理人在聯合嵌入中表示為一個參考代理
方法:
下面就來看看作者是怎么來實現他說的這幾點
1.問題定義
我們有目標數據集$\mathcal{X}=\left\{x_{i}\right\}_{i=1}^{N_{u}}$,還有一個輔助數據集$\mathcal{Z}=\left\{z_{i}, w_{i}\right\}_{i=1}^{N_{a}}$,這里的$z_{i}$代表每一個人物圖片,$w_{i}$是對應的標簽,$N_{a}$是輔助數據集的大小。注意這里的目標域數據集和輔助數據集的人物是完全不重疊的。
2.軟多標簽
軟多標簽其實就是學習一個映射函數$l(\cdot)$,對於所有的參考人物有$y=l(x, \mathcal{Z}) \in(0,1)^{N_{p}}$,所有維度的總和加起來等於1.同時在軟多標簽的指導下,我們還希望學習到一個有區分力的嵌入$f(\cdot)$,同時要求$\|f(\cdot)\|_{2}=1$。作者還引入了一個參考代理的概念即$\left\{a_{i}\right\}_{i=1}^{N_{p}}$。(這個會放到后面說,暫時可以就認為它是輔助數據集中一個參考人(這個人有多張圖片)的特征表達),同時有$\|a_i\|_{2}=1$.(不得不吐槽,作者對於公式的定義真是一團糟,下標不一致,解釋也不清晰,比如$l(\cdot)$里面一會的參數是樣本,一會又是特征,上標一會是$N_{a}$,一會又成了$N_{p}$,其實$N_{a}$是圖片張數,$N_{p}$是行人個數)。
因為對於軟多標簽y來說,它的所有維度之和為1,所以可以使用如下定義:
$y^{(k)}=l\left(f(x),\left\{a_{i}\right\}_{i=1}^{N_{p}}\right)^{(k)}=\frac{\exp \left(a_{k}^{\mathrm{T}} f(x)\right)}{\sum_{i} \exp \left(a_{i}^{\mathrm{T}} f(x)\right)}$
這里的$a_i$就是參考代理了。
3.困難負樣本挖掘
困難負樣本挖掘對於學習到有區分力的特征是很有效的。在無標注的目標域上面因為缺少ID所以困難負樣本的判斷成了一個問題。作者做了一個這樣的假設:如果一對樣本$x_i,x_j$擁有很高的特征相似度$f(x_i)^{T}f(x_j)$,那么我們就認為這是一對相似樣本,如果相似樣本的其他特性也相似,那么它很可能是一個正樣本,反之就是一個負樣本。這里就把軟多標簽當作是其他特性。接着提出如下的相似度定義,使用的是逐元素的交運算,最后可以簡化成使用L1距離進行表示。
$A\left(y_{i}, y_{j}\right)=y_{i} \wedge y_{j}=\Sigma_{k} \min \left(y_{i}^{(k)}, y_{j}^{(k)}\right)=1-\frac{\left\|y_{i}-y_{j}\right\|_{1}}{2}$
其實這里的物理意義相當於每個代理人在進行投票,對這一對圖像是否屬於同一個人進行表決。作者做了如下的公式化:
$\begin{aligned} \mathcal{P} &=\left\{(i, j) | f\left(x_{i}\right)^{\mathrm{T}} f\left(x_{j}\right) \geq S, A\left(y_{i}, y_{j}\right) \geq T\right\} \\ \mathcal{N} &=\left\{(k, l) | f\left(x_{k}\right)^{\mathrm{T}} f\left(x_{l}\right) \geq S, A\left(y_{k}, y_{l}\right)<T\right\} \end{aligned}$
上式中的$p$是一個代表比例的參數,對於未標注的目標域來說將有$M=N_u*(N_u-1)/2$個圖像對,我們認為其中$pM$個是有着最高的特征相似度的,同理有$pM$個是有着最高的軟標簽相似度的。這里的$S,T$就是$pM$的位置處對應的閾值了。多標簽引導的有區分力嵌入學習(MDL)就被定義為:
$L_{M D L}=-\log \frac{\overline{P}}{\overline{P}+\overline{N}}$
其中:
$\begin{aligned} \overline{P} &=\frac{1}{|\mathcal{P}|} \Sigma_{(i, j) \in \mathcal{P}} \exp \left(-\left\|f\left(z_{i}\right)-f\left(z_{j}\right)\right\|_{2}^{2}\right) \\ \overline{N} &=\frac{1}{|\mathcal{N}|} \Sigma_{(k, l) \in \mathcal{N}} \exp \left(-\left\|f\left(z_{k}\right)-f\left(z_{l}\right)\right\|_{2}^{2}\right) \end{aligned}$
通過最小化$L_{M D L}$來學習有區分力的嵌入(這個公式的物理意義是什么?)。這里的$P,N$在模型訓練中是動態的,應該使用每一輪更新后的特征嵌入來構造。因為這個原因,作者將$M$替換成了$M_{batch}=N_{batch}*(N_{batch}-1)/2$,$N_{batch}$指的就是每一小批中無標注圖像的個數。(因為樣本中正樣本對遠遠多於負樣本這樣一來每一小批中真的會存在正例嗎?)
4.跨視角一致的軟多標簽學習
因為行人重識別要求識別不同相機視角下的行人,所以在進行跨視角匹配時,軟多標簽需要保持良好的一致性。從數據分布的視角來看,比較特性的分布應該只取決於目標域人物外觀的分布而與相機視角無關。舉個例子來說,如果目標域是一個寒冷的開放市場,顧客往往都是穿着深色衣服,那么軟標簽中有着高相似度的元素對應的參考人物也應該是穿着深色衣服,而不管是哪個目標相機視角拍攝的。換句話來說,就是每個相機視角下的軟多標簽分布應該與目標域的分布一致。通過以上分析,作者引入了跨視角一致的軟多標簽學習損失:
$L_{C M L}=\Sigma_{v} d\left(\mathbb{P}_{v}(y), \mathbb{P}(y)\right)^{2}$
$\mathbb{P}_(y)$是數據集$X$的軟標簽分布,$\mathbb{P}_{v}(y)$是$X$中第$v$個相機視角的軟標簽分布,$d(\cdot,\cdot)$是兩個分布之間的距離。因為作者通過經驗觀察發現軟多標簽大致符合一個$log-normal$分布,所以使用簡化的$2-Wasserstein$距離作為度量標准。
$L_{C M L}=\Sigma_{v}\left\|\mu_{v}-\mu\right\|_{2}^{2}+\left\|\sigma_{v}-\sigma\right\|_{2}^{2}$
$\mu/\sigma$分別代表log軟多標簽的均值與方差向量,$\mu_v/\sigma_v$就代表第v個相機視角下log軟多標簽的均值與方差向量。
5.參考代理學習
參考代理是在特征嵌入中表示一個唯一的參考人,起到緊湊的特征摘要器的概念。因此,參考代理之間應該相互區分同時每一個參考代理都應該能夠代表所有對應的行人圖像。(作者原文表達佶屈聱牙,真讓人懷疑這不是CVPR定稿)
$L_{A L}=\Sigma_{k}-\log l\left(f\left(z_{k}\right),\left\{a_{i}\right\}\right)^{\left(w_{k}\right)}=\Sigma_{k}-\log \frac{\exp \left(a_{w_{k}}^{\mathrm{T}} f\left(z_{k}\right)\right)}{\Sigma_{j} \exp \left(a_{j}^{\mathrm{T}} f\left(z_{k}\right)\right)}$
$z_k$是輔助數據集的第$k$個行人圖像,它的標簽為$w_k$.對於這個公式我的理解是通過最小化$L_{A L}$,我們能夠為每個參考人學習到一個混合的特征表達,$a_{w_k}$表示的就是標簽為$w_k$的這個行人的特征表達,$L_{A L}$中后一項的交叉熵強調了每個行人表達的區分力。參考代理學習的另一個的隱含重要作用是增強了軟多標簽函數$l(\cdot)$的有效性,對於輔助數據集的圖片$z_k$,我們計算的$L_{A L}這個式子的后一項與軟標簽$\hat{y}_{k}=l\left(f\left(z_{k}\right),\left\{a_{i}\right\}_{i=1}^{N_{p}}\right)$完全相同,,$L_{A L}$的目的是希望軟標簽能夠與真實的標簽$\hat{w}_{k}=[0, \cdots, 0,1,0, \cdots, 0]$足夠接近。當$z_i,z_j$屬於同一個人時$A\left(\hat{w}_{i}, \hat{w}_{j}\right)=1$,否則為0.(相當於這一塊屬於有監督學習,能夠保證學習到的$l(\cdot)$函數是有效的).但是$L_{A L}$其實只在輔助數據集做最小化,為了提高軟多標簽函數在目標數據集上的有效性,接着提出學習如下的聯合嵌入。
要使得軟多標簽函數在目標域上還能用,就得解決域偏移。作者提出使用挖掘跨域的困難負樣本(也就是包含無標注人物$f(x)$和額外參考人$a_i$的一對,因為他們肯定不是一對正例)來修正跨域分布不對齊。做法就是針對每個$a_i$,找出與它接近的無標注人物f(x),他們之間不管外觀多相近,都需要有很強的特征區分度。
$L_{R J}=\Sigma_{i} \Sigma_{j \in \mathcal{M}_{i}} \Sigma_{k : w_{k}=i}\left[m-\left\|a_{i}-f\left(x_{j}\right)\right\|_{2}^{2}\right]_{+}+\left\|a_{i}-f\left(z_{k}\right)\right\|_{2}^{2}$
$\mathcal{M}_{i}=\left\{j\left\|a_{i}-f\left(x_{j}\right)\right\|_{2}^{2}<m\right\}$也就是代表數據與參考$a_i$的距離,$m=1$在理論上是合理的,$[\cdot]_+$是一個hinge函數,后面的center-pulling項$\left\|a_{i}-f\left(z_{k}\right)\right\|_{2}^{2}$增強了參考代理的表達性,因為$z_k$其實是輔助數據集標簽為$w_k$的樣本。總的來說$L_{R J}$的作用是利用輔助數據集和目標域的不重合來進行adaptation,同時要求輔助域中參考代理向量不能因為前一項而跑偏,繼續保持良好的代表能力。
這里的$\mathcal{M}_{i}=\left\{j\left\|a_{i}-f\left(x_{j}\right)\right\|_{2}^{2}<m\right\}$。最終的參考代理學習為:
$L_{R A L}=L_{A L}+\beta L_{R J}$
6.模型訓練與測試
本文提出的整體的損失函數如下:
$L_{M A R}=L_{M D L}+\lambda_{1} L_{C M L}+\lambda_{2} L_{R A L}$
在測試時計算查詢與圖庫圖片的特征余弦相似度,然后按照距離排序獲得檢索結果。
$L_{A L}