教育網(wǎng)站建設(shè)解決方案公司網(wǎng)站建設(shè)服務(wù)機(jī)構(gòu)
這是CVPR2021的一篇文章, 是利用SOT的一些思想來進(jìn)行MOT的運(yùn)動估計.
文章地址: 文章
代碼地址: 代碼
0. 摘要
本文提出了一個孿生(Siamese)式的MOT網(wǎng)絡(luò), 該網(wǎng)絡(luò)用來估計幀間目標(biāo)的運(yùn)動. 為了探究運(yùn)動估計對多目標(biāo)跟蹤的影響, 本文提出了兩種運(yùn)動建模方式: 顯式和隱式. 本文在一些數(shù)據(jù)集上取得了良好的結(jié)果.
1. 整體思路
這篇文章是用SOT的思想做MOT的比較好的例子.
整個工作的具體思路是: 利用Siamese網(wǎng)絡(luò)來更好地預(yù)測運(yùn)動, 而不是Kalman濾波, 相當(dāng)于用Siamese網(wǎng)絡(luò)代替了Kalman.
例如, 對于第ttt幀, 我們有第iii個目標(biāo)的位置RitR_i^tRit?, 然后我們擴(kuò)張搜索區(qū)域, 在第t+δt + \deltat+δ幀將RitR_i^tRit?的區(qū)域擴(kuò)展, 初步?jīng)Q定搜索區(qū)域為Sit+1S_i^{t+1}Sit+1?, 如下圖橙色框所示. 我們的目的是用Siamese網(wǎng)絡(luò)更好地從Sit+1S_i^{t+1}Sit+1?中估計出目標(biāo)在下一幀更精確的位置, 進(jìn)而與檢測更好地匹配.
為此, 我們提取RitR_i^tRit?的特征fRitf_{R_i}^tfRi?t?和Sit+1S_i^{t+1}Sit+1?的特征fSit+δf_{S_i}^{t+\delta}fSi?t+δ?, 輸入至網(wǎng)絡(luò)中, 輸出縮小的可能的新區(qū)域R~it+δ\tilde{R}_{i}^{t+\delta}R~it+δ?和該區(qū)域中包含目標(biāo)的可能性viv_ivi?, 因此整體的模型建模為:
vi,R~it+δ=T(fRit,fSit+δ,Θ)v_i, \tilde{R}_{i}^{t+\delta} = \mathcal{T}(f_{R_i}^t, f_{S_i}^{t+\delta}, \Theta) vi?,R~it+δ?=T(fRi?t?,fSi?t+δ?,Θ)
其中Θ\ThetaΘ為網(wǎng)絡(luò)參數(shù).
上式建模的方式有兩種, 一是隱式運(yùn)動建模, 二是顯式運(yùn)動建模.
1.1 隱式運(yùn)動建模:
隱式運(yùn)動建模很簡單, 將fRitf_{R_i}^tfRi?t?和fSit+δf_{S_i}^{t+\delta}fSi?t+δ?拼接起來輸入到MLP, 同時預(yù)測置信度和位置. 位置描述的是ttt時刻與t+δt+\deltat+δ時刻的位置差異, 表示為:
mi=[xit+δ?xitxit,yit+δ?yityit,log?wit+δwit,log?hit+δhit]m_i = [\frac{x_i^{t + \delta} - x_i^t}{x_i^t}, \frac{y_i^{t + \delta} - y_i^t}{y_i^t}, \log{\frac{w_i^{t+\delta}}{w_i^t}}, \log{\frac{h_i^{t+\delta}}{h_i^t}}] mi?=[xit?xit+δ??xit??,yit?yit+δ??yit??,logwit?wit+δ??,loghit?hit+δ??]
因此可以反解出新的位置R~it+δ=[xit+δ,yit+δ,wit+δ,hit+δ]\tilde{R}_{i}^{t+\delta} = [x_i^{t + \delta}, y_i^{t + \delta}, w_i^{t + \delta}, h_i^{t + \delta}]R~it+δ?=[xit+δ?,yit+δ?,wit+δ?,hit+δ?]
損失函數(shù):
損失函數(shù)由兩部分組成, 一是目標(biāo)置信度的focal loss, 二是預(yù)測邊界框的準(zhǔn)確程度. 對于GT框, 我們可以按照mim_imi?的式子求出對應(yīng)的mi?m_i^*mi?? , 定義為:
L=lfocal(vi?,vi)+I(vi?)lreg(mi,mi?)L = l_{focal}(v_i^*, v_i)+\mathbb{I}(v_i^*)l_{reg}(m_i, m_i^*) L=lfocal?(vi??,vi?)+I(vi??)lreg?(mi?,mi??)
其中上標(biāo)?*?表示真值, lregl_{reg}lreg?表示平滑L1損失.
1.2 顯式運(yùn)動建模
還可以采用更復(fù)雜的形式. 采用通道維的互相關(guān)操作, 可以通過預(yù)測熱度圖的方式計算像素級的響應(yīng)圖, 有點(diǎn)類似于求解光流. 對于第ttt幀的區(qū)域特征fRitf_{R_i}^tfRi?t?和第t+δt+\deltat+δ幀的初步搜索區(qū)域特征fSit+δf_{S_i}^{t+\delta}fSi?t+δ?, 計算通道維互相關(guān), 即ri=fRit?fSit+δr_i = f_{R_i}^t * f_{S_i}^{t+\delta}ri?=fRi?t??fSi?t+δ?, 其中?*?表示互相關(guān)操作, 這樣就得到了兩種特征圖的相似度.
我們利用得到的rir_iri?, 進(jìn)一步預(yù)測像素級置信度的map vvv和位置的map ppp, 如下圖所示.
注意這里位置的map和一些無錨檢測器類似, 預(yù)測的是offset. 具體地, 預(yù)測的是真實(shí)的bbox與當(dāng)前像素四個方向的offset. 為此, 我們可以以像素級的置信度相應(yīng)map中最大的點(diǎn)為準(zhǔn), 找到位置map中對應(yīng)的位置, 即可直接求解出預(yù)測的位置. 也就是:
R~it+δ=R(pi?(x,y));vit+δ=vi(x?,y?)s.t.(x?,y?)=arg?max?x,y(vi?ηi)\tilde{R}_i^{t+\delta}=\mathcal{R}(p_i^*(x, y)); ~~~~v_i^{t+\delta} = v_i(x^*, y^*) \\ s.t. ~~~(x^*, y^*) = \arg\max_{x,y}(v_i * \eta_i) R~it+δ?=R(pi??(x,y));????vit+δ?=vi?(x?,y?)s.t.???(x?,y?)=argx,ymax?(vi??ηi?)
其中ηi\eta_iηi?為:
ηi(x,y)=λC+(1?λ)S(R(p(x,y)),Rit)\eta_i(x, y)= \lambda\mathcal{C}+(1-\lambda)\mathcal{S}(\mathcal{R(p(x,y))},R_i^t) ηi?(x,y)=λC+(1?λ)S(R(p(x,y)),Rit?)
表示的是一個penalty map, 其中C\mathcal{C}C是以過去幀位置RitR_i^tRit?的幾何中心為中心的cos窗函數(shù), S\mathcal{S}S是預(yù)測出的位置和原本位置高寬差異的高斯函數(shù), ηi\eta_iηi?的作用是為了防止bbox尺寸的突然變化.
損失函數(shù):
與隱式建模類似, 損失函數(shù)也是由置信度損失和bbox位置損失組成, 所不同的是該部分預(yù)測的是逐像素map, 因此需要逐像素進(jìn)行計算. 置信度損失仍為focal loss, 位置損失包括中心點(diǎn)的差異與回歸損失, 如下式所示:
L=∑x,ylfocal(vi(x,y),vi?(x,y))+∑x,yI[vi?(x,y)=1](w(x,y)?lreg(pi(x,y),pi?(x,y)))L = \sum_{x, y}l_{focal}(v_i(x, y), v_i^*(x, y))+\\ \sum_{x, y}\mathbb{I}[v_i^*(x, y) =1](w(x, y) ·l_{reg}(p_i(x, y), p_i^*(x, y))) L=x,y∑?lfocal?(vi?(x,y),vi??(x,y))+x,y∑?I[vi??(x,y)=1](w(x,y)?lreg?(pi?(x,y),pi??(x,y)))
w(x,y)w(x, y)w(x,y)就是中心點(diǎn)差異.
1.3 訓(xùn)練和推理
訓(xùn)練是按照端到端的方式訓(xùn)練的, 將Faster RCNN的檢測損失與上面的損失結(jié)合. 推理也比較普通, 就是利用推理出的R~it+δ\tilde{R}_{i}^{t+\delta}R~it+δ?和檢測器檢測的Rit+δR_{i}^{t+\delta}Rit+δ?簡單進(jìn)行匹配即可.
整體流程下圖所示:
2. 評價
這篇是很簡單的一個筆記, 在SOT+MOT的方法里, 這篇應(yīng)該也算簡潔的, 創(chuàng)新之處在于隱式建模反推位置那一塊, 以及逐像素map的思想也值得學(xué)習(xí).