基於自適應margin的行人重識別的深度排序模型

論文:Deep Ranking Model by Large Adaptive Margin Learning for Person Re-identification網絡

文章主要提出了一種基於pairwise的,自適應調整margin的損失函數,在此基礎上提出了一個多分支的行人重識別的模型。ide

自適應margin loss

假設$X=\{X_n\}_{n=1}^N$是訓練樣本,其中$X_n=\{X_A^n,X_B^n\}$表示第$n$個行人的訓練樣本,$X_n$包含了行人攝像頭$A$和$B$下的圖片的數據,進一步,$X_A^n=\{x_A^{n,i}\}_{i=1}^{A_n},X_B^n=\{x_B^{n,j}\}_{j=1}^{B_n}$,其中的$x_A^{n,i}$和$x_B^{n,j}$分別是第$i$個行人在$A$和$B$兩個攝像頭下的第$i$和第$j$張圖片。用$D(x_A^{i,k},x_B^{j,s})$表示兩張圖片特徵的歐氏距離的平方。函數

文章中提出的自適應margin的loss包含了兩部分,一部分是類似度損失,一部分是正則項,即
$$L=L_S(X,W,b)+\lambda R(W,b)$$spa

在pairwise的損失中,咱們的目的是讓正負樣本對之間存在一個比較大的間隔,在一個batch中,咱們用$X_A^g$表示攝像頭$A$下具備性質$g$的樣本的集合,咱們但願的是同一我的的兩張照片$x_A^{i,k}$和$x_B^{i,s}$的差異儘量小,即$D(x_A^{i,k},x_B^{i,s})$最好是能夠小於一個自適應的up-margin $M_p$,而對於兩個不一樣的人$x_A^{i,k}$和$x_B^{j,s}$,兩者的距$D(x_A^{i,k},x_B^{j,s})$應該大於一個自適應的down-margin $M_n$
也就是說,咱們的目標是blog

$$ \begin{align*} D(x_A^{i,k},x_B^{j,s})&<M_p(x_A^{i,k},X_B^g),i=j,i\neq g\\ D(x_A^{i,k},x_B^{j,s})&>M_p(x_A^{i,k},X_B^g),i\neq j,i=g \end{align*} $$圖片

咱們使用以下的方法來自適應肯定兩個marginget

$$ \begin{align*} M_p&=\frac{1}{\mu}(1-\exp({-\mu d)});\\ M_n&=\frac{1}{\gamma}\log{(1+\exp{(-\gamma s)})} \end{align*} $$it

其中的mean positive distance $s$ 和mean negative distance $d$的定義以下io

$$ \begin{align*} s&=\frac{1}{N}\sum_{s=1}^{N}{D(x_A^{i,k}, x_B^{j,s})},\text{if}\quad i=j\\ d&=\frac{1}{N}\sum_{s=1}^{N}{D(x_A^{i,k}, x_B^{j,s})},\text{if}\quad i\neq j \end{align*} $$class

進一步,咱們記$M_p=M_\tau-M_c,M_n=M_\tau+M_c$,則上面的約束條件能夠統一寫成

$$ M_c-y_{i,j}(M_\tau-D(x_A^{i,k}-x_B^{j,s}))<0 $$

這裏$M_\tau>M_c$且

$$ y_{i,j}=\begin{cases} 1, \text{if}\quad i=j\\ -1,\text{else} \end{cases} $$

因此$L_S$能夠寫成

$$ L_S=\sum_{i,j=1}^{N}\{\max{M_c-y_{i,j}(M_\tau-D(x_A^{i,k},x_B^{j,s})),0\}} $$

正則項部分文章採用的是$L_2$正則
$$R=\sum_{m=1}^{M}{\lVert W^{(m)}\rVert_F^2+\lVert b^{(m)}\rVert_F^2}$$

網絡結構

image.png
首先是一個全局特徵提取,輸入的圖片大小是$230\times80\times3$,全局特徵提取包括一個$7\times7$的卷積層(卷積核爲64個),一個$3\times3$的池化層,而後通過一個relu單元;後面是局部的信息提取,包含了四個分支,每一個分支都由兩個$3\times3$的卷積層組成(卷積核個數都是32),第二個卷積層包含一個殘差鏈接,而後經過一個$3\times3$的最大池化(步長爲1),最後經過一個relu單元;而後每一個分支接上兩個全鏈接層,一個是局部的全鏈接層,每一個分支的局部全鏈接層的神經元個數是100個,另外每一個分支接上一個全局全鏈接層,神經元個數是400,最後把這些全鏈接層鏈接起來成爲一個800層的全鏈接層。
文章提出了兩種訓練模式,一種是直接將訓練集分紅positive pair和negative pair,而後喂入神經網絡。
image.png
一種是隨機挑選anchor,每一個anchor隨機挑選若干個正樣本和負樣本組成樣本對進行訓練
image.png

相關文章
相關標籤/搜索