本文作者為悉尼科技大學(xué)博士生武宇(Yu Wu),他根據(jù) CVPR 2018 錄用論文 Exploit the Unknown Gradually: One-Shot Video-Based Person Re-Identification by Stepwise Learning 為 AI 科技評論撰寫了獨(dú)家解讀稿件。
在這篇論文中,我們提出了通過逐漸利用未標(biāo)注樣本,來解決單標(biāo)注樣本(one-shot)情況下的視頻行人重識(shí)別問題(video-based person re-ID)。這個(gè)方法很簡單通用,在兩個(gè)大型的視頻行人重識(shí)別數(shù)據(jù)集上都達(dá)到了遠(yuǎn)超 state-of-the art 的性能。
1. 為什么需要單標(biāo)注樣本問題?
目前大多行人重識(shí)別方法都依賴于完全的數(shù)據(jù)標(biāo)注,即需要對每個(gè)訓(xùn)練集里的人在不同攝像頭下的數(shù)據(jù)進(jìn)行標(biāo)注。然而對于實(shí)際的監(jiān)控場景,如一個(gè)城市的監(jiān)控視頻來說,從多個(gè)攝像頭里手工標(biāo)注每段視頻的行人標(biāo)簽的代價(jià)很大。因此我們嘗試去只用單標(biāo)注樣本,讓網(wǎng)絡(luò)自己去學(xué)會(huì)利用那些未標(biāo)注的樣本。也就是說對于每個(gè)行人,我們只需要標(biāo)注其中一段視頻,其余的視頻通過算法自己去探索。
對于這個(gè)任務(wù),典型的做法是為未標(biāo)注數(shù)據(jù)估計(jì)一個(gè)標(biāo)簽,然后用初始的標(biāo)注數(shù)據(jù)和部分選定的帶有假定標(biāo)簽 (pseudo-label) 的數(shù)據(jù)用來訓(xùn)練模型。
然而因?yàn)橹挥贸跏紭?biāo)注數(shù)據(jù)訓(xùn)練出來的模型性能太弱,可信的 pseudo-labeled 數(shù)據(jù)是很少的,這樣選擇數(shù)據(jù)注定會(huì)引入很多錯(cuò)誤的訓(xùn)練樣本。所以我們提出了 EUG(Exploit the Unknown Gradually)方法,迭代地去預(yù)測標(biāo)簽和更新模型,這樣一步步地利用未標(biāo)注數(shù)據(jù)。
另外,我們發(fā)現(xiàn)直接用分類器預(yù)測出來的標(biāo)簽是不可靠的,我們提出通過特征空間里面的最近鄰 (Nearest neighbor) 分類方式,去給每個(gè)未標(biāo)注數(shù)據(jù)分配 pseudo label。
2. 如何去利用未標(biāo)注樣本
如圖,我們一開始用有標(biāo)注的數(shù)據(jù)來初始化訓(xùn)練 CNN 模型,之后在每一次循環(huán)中我們(1)挑選可信的 pseudo-labeled 數(shù)據(jù) 2. 用標(biāo)注數(shù)據(jù)和 pseudo-labeled 數(shù)據(jù)一起來更新 CNN 模型。我們通過逐步增大每次加入訓(xùn)練的 pseudo-labeled 數(shù)據(jù)量,從而逐漸去利用更難識(shí)別的,包含更多信息多樣性的視頻片段。
這里有兩個(gè)值得注意的點(diǎn):
(1)如何決定每次選取多少 pseudo-labeled 數(shù)據(jù)做訓(xùn)練
我們用一種動(dòng)態(tài)測量,逐漸增加選取的樣本。在開始的循環(huán)中,只有一小部分 pseudo-labeled 數(shù)據(jù)被選中,之后會(huì)有越來越多樣本被加進(jìn)來。我們發(fā)現(xiàn)增加樣本容量的速度越慢,即每一步迭代比上一步增加的 pseudo-labeled 樣本越少(對應(yīng)需要的迭代次數(shù)更多),模型的性能越高。pseudo-labeled 樣本量的增長速度對模型最終性能的影響十分顯著。
(2)如何去給一個(gè)未標(biāo)注數(shù)據(jù)分配 pseudo label 并量化其可信程度?
跟之前大部分 re-ID 的方法一樣,我們的訓(xùn)練時(shí)采用的也是一個(gè)行人分類網(wǎng)絡(luò),因此對于未標(biāo)注樣本,網(wǎng)絡(luò)分類的預(yù)測值(Classification score)是可以用來預(yù)測標(biāo)簽并判斷標(biāo)簽置信度的。但是這樣的分類層在樣本量很少,特別是我們這種每個(gè)類只有一個(gè)樣本的情況下的情況下是不太可靠的。
同時(shí)我們注意到行人重識(shí)別(re-ID)的測試過程是一個(gè)計(jì)算特征之間距離并進(jìn)行檢索的過程,所以我們從這個(gè)角度出發(fā),也去計(jì)算未標(biāo)注數(shù)據(jù)與標(biāo)注數(shù)據(jù)之間的距離(Dissimilarity cost criterion)。對于每個(gè)未標(biāo)注的樣本,我們把離它最近的有標(biāo)注樣本的類別賦予它作為 pseudo label,并且將他們之間的距離作為標(biāo)簽估計(jì)的置信度,如下圖所示。
我們發(fā)現(xiàn),這種用距離度量的方式選出來的 pseudo-labeled 數(shù)據(jù)要比分類層的預(yù)測要可靠很多。
3. 算法實(shí)際選出來的樣本如何?
我們的方法在 MARS 和 DukeMTMC-VideoReID 這兩個(gè)大規(guī)模的視頻行人重識(shí)別數(shù)據(jù)集上都取得了極大的提高。下面我們展示一下算法選出來的 pseudo-labeled 樣本。
這是一個(gè)算法運(yùn)行時(shí)為左邊這個(gè)行人選出來的 pseudo-labeled 樣本,可以看到在第 0 次迭代時(shí)返回的樣本都是和初始化視頻很相似的正確數(shù)據(jù)。算法在第 1 次和第 2 次迭代時(shí)候開始返回了不同視角的正確數(shù)據(jù),在第 5 到 7 次迭代時(shí)候返回了更難以分辨的正確樣本(完全不同的視角、遮擋和嚴(yán)重?cái)z像頭色差)以及部分錯(cuò)誤樣本。沒有被找到的這個(gè)視頻片段幾乎是全黑的。
Pytorch 代碼實(shí)現(xiàn)參見:
https://github.com/Yu-Wu/Exploit-Unknown-Gradually
DukeMTMC-VideoReID 數(shù)據(jù)集介紹和 Baseline 代碼:
https://github.com/Yu-Wu/DukeMTMC-VideoReID