蘇荻翔,王幫海,葉子成
廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣州510006
行人重識(shí)別的任務(wù)是要在不同地方的多個(gè)不同攝像頭中,對(duì)特定的行人進(jìn)行識(shí)別。當(dāng)視頻或圖像質(zhì)量較低,無法進(jìn)行人臉識(shí)別技術(shù)時(shí),行人重識(shí)別技術(shù)作為一種替代的技術(shù)發(fā)揮著重要的作用。近年來,行人重識(shí)別研究重心是通過深度學(xué)習(xí)的方法[1-5],在已有的數(shù)據(jù)集上進(jìn)行學(xué)習(xí),對(duì)行人的相似度進(jìn)行排序,從而找出特定的行人。行人重識(shí)別的難點(diǎn)在于,數(shù)據(jù)集中的行人圖像是由不同的攝像頭在不同地方進(jìn)行拍攝,同一名行人的圖像可能會(huì)因?yàn)閿z像頭之間的光照、角度以及視野的不同而出現(xiàn)較大的差異,如圖1(a)所示;而不同行人的圖像可能會(huì)因?yàn)榇┲嗤?,出現(xiàn)過于相似的情況,如圖1(b)所示。上述兩種情況分別稱為正負(fù)樣本對(duì)中的難正樣本對(duì)以及難負(fù)樣本對(duì)[6],即難以正確匹配的樣本對(duì)。在行人重識(shí)別任務(wù)中,有效地挖掘出訓(xùn)練樣本中的難樣本對(duì)成為了進(jìn)一步提升重識(shí)別模型精度的關(guān)鍵。
圖1 難以正確匹配的樣本Fig.1 Samples of difficult to match correctly
在傳統(tǒng)的有監(jiān)督行人重識(shí)別模型學(xué)習(xí)中,通常使用標(biāo)簽信息作為監(jiān)督,通過交叉熵?fù)p失函數(shù)(cross-entropy loss)進(jìn)行分類學(xué)習(xí),然后使用三元組損失函數(shù)(triplet loss)進(jìn)行正負(fù)樣本對(duì)位置的優(yōu)化,并加入各種訓(xùn)練技巧避免模型出現(xiàn)過擬合情況[2]。但是在無監(jiān)督學(xué)習(xí)中,缺少樣本的標(biāo)簽作為強(qiáng)監(jiān)督信息,很難學(xué)習(xí)到具有良好分辨能力的網(wǎng)絡(luò)模型。解決無監(jiān)督問題的方法主要有兩類,一類是通過聚類的方法[7-11],這類方法對(duì)無標(biāo)簽數(shù)據(jù)的特征進(jìn)行聚類,然后使用聚類的結(jié)果作為弱監(jiān)督信息對(duì)網(wǎng)絡(luò)的模型進(jìn)行學(xué)習(xí);另一類是通過域適應(yīng)的方法[12-15],先在有標(biāo)簽信息的源數(shù)據(jù)集上進(jìn)行有監(jiān)督的訓(xùn)練,然后使用預(yù)訓(xùn)練過的網(wǎng)絡(luò)模型在無標(biāo)簽?zāi)繕?biāo)數(shù)據(jù)集上進(jìn)行學(xué)習(xí)。以上方法的主要思路都是通過學(xué)習(xí)樣本中簡(jiǎn)單易成團(tuán)的樣本,使無監(jiān)督模型對(duì)簡(jiǎn)單樣本對(duì)具有區(qū)分性,但并沒有對(duì)難樣本對(duì)進(jìn)行進(jìn)一步挖掘。
受到Zhang等人[10]提出的MAR模型以及Yu等人[12]提出的PAST 模型的啟發(fā),本文提出一種利用多種聚類信息生成軟多重標(biāo)簽來進(jìn)行無標(biāo)簽數(shù)據(jù)難樣本對(duì)挖掘的方法。MAR 模型通過設(shè)置參考樣本,計(jì)算無標(biāo)簽?zāi)繕?biāo)域中的樣本到所有參考樣本的距離,生成無標(biāo)簽樣本的軟多重標(biāo)簽,使用軟多重標(biāo)簽進(jìn)行難樣本挖掘。PAST 模型使用HDBSCAN[16]聚類信息與樣本間相似度信息來進(jìn)行難樣本對(duì)挖掘。而本文提出的方法將不同的聚類信息融合至同一維度中,生成類似MAR 模型中的軟多重標(biāo)簽信息,并利用該信息計(jì)算文獻(xiàn)[6]提出的難樣本三元組損失函數(shù)(TriHard Loss),從而完成難樣本對(duì)的挖掘工作。
該方法的主要?jiǎng)?chuàng)新點(diǎn)在于使用了一種新的軟多重標(biāo)簽作為無標(biāo)簽數(shù)據(jù)監(jiān)督信息。該軟多重標(biāo)簽融合了多種聚類的信息,能削弱由單一聚類方法生成的偽標(biāo)簽的局限性,更能體現(xiàn)樣本間的關(guān)系。
隨著深度學(xué)習(xí)的發(fā)展,運(yùn)用深度學(xué)習(xí)的方法進(jìn)行行人重識(shí)別任務(wù)成為了當(dāng)前行人重識(shí)別領(lǐng)域的主流。Luo等人[2]就通過使用ResNet-50[17]網(wǎng)絡(luò)模型,加上標(biāo)簽平滑以及對(duì)圖像進(jìn)行隨機(jī)遮擋與切割等訓(xùn)練技巧,學(xué)習(xí)到魯棒性更強(qiáng)的行人重識(shí)別模型。近年也有學(xué)者提出PCB網(wǎng)絡(luò)模型[5]以及EANET網(wǎng)絡(luò)模型[18],通過對(duì)網(wǎng)絡(luò)提取的特征圖進(jìn)行分割再重組的方法,使網(wǎng)絡(luò)能夠更加關(guān)注圖像各部分特征之間的聯(lián)系。而深度學(xué)習(xí)往往需要大量的訓(xùn)練數(shù)據(jù),增加訓(xùn)練的數(shù)據(jù)量也能使網(wǎng)絡(luò)學(xué)習(xí)到更多細(xì)節(jié)。CamStyle[19]的工作就是使每個(gè)攝像頭都能生成與其他攝像頭相同風(fēng)格的行人圖像,從而增加訓(xùn)練的數(shù)據(jù)量。Zhong 等人[13]則對(duì)CamStyle 的工作做了進(jìn)一步改進(jìn),在CamStyle 的基礎(chǔ)上使用Triplet Loss 提升行人重識(shí)別模型的性能。
無監(jiān)督域適應(yīng)是當(dāng)前無監(jiān)督行人重識(shí)別的解決方法之一。將在有標(biāo)簽的源域進(jìn)行過預(yù)訓(xùn)練的網(wǎng)絡(luò)遷移至無標(biāo)簽的目標(biāo)域以進(jìn)一步學(xué)習(xí)是該方法的核心思想,其目的是將源域中學(xué)習(xí)到的知識(shí)遷移到目標(biāo)域中。Deng等人[20]提出的PTGAN使用生成對(duì)抗網(wǎng)的方式,將源域的圖像風(fēng)格轉(zhuǎn)換到目標(biāo)域的圖像風(fēng)格,并以源域行人的標(biāo)簽進(jìn)行約束,達(dá)到域適應(yīng)的效果。Zhao等人[21]提出了一種聯(lián)合訓(xùn)練抵抗噪聲的無監(jiān)督域適應(yīng)行人重識(shí)別方法,使用兩個(gè)結(jié)構(gòu)相同但是初始化不同的網(wǎng)絡(luò),相互作為監(jiān)督信息,判斷各自選擇的三元組樣本是否為噪聲樣本。Wang 等人[7]的工作是將目標(biāo)域中正樣本對(duì)與負(fù)樣本對(duì)的分布情況對(duì)齊到源域中正樣本對(duì)與負(fù)樣本對(duì)的分布情況,使兩個(gè)域的分布情況盡可能相同,達(dá)到域適應(yīng)的效果。Ge等人[22]提出的SpCl方法在進(jìn)行目標(biāo)域?qū)W習(xí)時(shí),同時(shí)加入源域進(jìn)行學(xué)習(xí),揉合了源域與目標(biāo)域,對(duì)模型進(jìn)行分類學(xué)習(xí),在識(shí)別任務(wù)中得到了很好的表現(xiàn)。
使用聚類的方法做無監(jiān)督行人重識(shí)別也是當(dāng)前主流之一。主要方式為:對(duì)無標(biāo)簽行人數(shù)據(jù)進(jìn)行聚類并得到每個(gè)行人的偽標(biāo)簽,使用偽標(biāo)簽作為監(jiān)督信息進(jìn)行特征學(xué)習(xí)。文獻(xiàn)[9]提出的PAST自訓(xùn)練進(jìn)步增強(qiáng)模型,利用HDBSCAN 聚類方法,對(duì)樣本的相似度矩陣進(jìn)行聚類,從聚類樣本以及相似度矩陣中選擇正負(fù)樣本對(duì),利用Triplet Loss 損失函數(shù)對(duì)正負(fù)樣本對(duì)進(jìn)行度量學(xué)習(xí)。該方法雖然能夠?qū)W習(xí)到簡(jiǎn)單正負(fù)樣本對(duì)的區(qū)別,但是沒有難樣本對(duì)的判斷機(jī)制,難以對(duì)無標(biāo)簽數(shù)據(jù)集中的難樣本進(jìn)行挖掘。AD-cluster[10]方法加入了風(fēng)格轉(zhuǎn)換的圖像進(jìn)行聚類,提高了樣本之間的區(qū)分性。MMT[8]方法利用兩個(gè)網(wǎng)絡(luò)進(jìn)行聯(lián)合學(xué)習(xí),生成樣本的聚類硬分類標(biāo)簽與軟分類標(biāo)簽。其生成的偽標(biāo)簽具有很好的魯棒性,能一定程度避免初始聚類噪聲帶來的影響。本文提出的多聚類信息融合進(jìn)行難樣本挖掘的方法,是對(duì)網(wǎng)絡(luò)進(jìn)行域適應(yīng)以及特征聚類后的一種優(yōu)化處理,目的是進(jìn)一步提升網(wǎng)絡(luò)模型的魯棒性。
下面將介紹網(wǎng)絡(luò)結(jié)構(gòu)與多種聚類信息融合進(jìn)行難樣本挖掘方法的具體實(shí)現(xiàn)過程??傮w實(shí)現(xiàn)框架分為三個(gè)部分,如圖2所示。第一部分對(duì)網(wǎng)絡(luò)進(jìn)行源域的有監(jiān)督預(yù)訓(xùn)練。第二部分使用基于聚類以及記憶模塊的方法,對(duì)無標(biāo)簽?zāi)繕?biāo)域數(shù)據(jù)進(jìn)行初步學(xué)習(xí),使訓(xùn)練的網(wǎng)絡(luò)能夠在一定程度上對(duì)目標(biāo)域行人進(jìn)行識(shí)別。第三部分融合多種聚類信息生成軟多重標(biāo)簽,對(duì)目標(biāo)域中的難樣本對(duì)進(jìn)行挖掘。該部分為介紹的重點(diǎn),主要介紹如何將多種聚類信息進(jìn)行融合以及如何利用此信息進(jìn)行難樣本挖掘。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure
本文方法使用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為在ImageNet[23]數(shù)據(jù)集上進(jìn)行了預(yù)訓(xùn)練的ResNet-50網(wǎng)絡(luò)結(jié)構(gòu)。為了使該網(wǎng)絡(luò)模型能夠?qū)π腥藞D像數(shù)據(jù)更加敏感,對(duì)該網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了以下兩個(gè)改進(jìn)。
第一個(gè)改進(jìn)為在ResNet-50的每個(gè)Layer輸出位置,添加通道注意力模塊以及空間注意力模塊。注意力模塊的機(jī)制主要參考CBAM 注意力模塊[24]進(jìn)行實(shí)現(xiàn)。首先將輸入的特征圖進(jìn)行平均值池化,得到維數(shù)與特征圖通道數(shù)相同的向量,再將該向量進(jìn)行全連接,輸出維數(shù)與輸入維數(shù)一致,并使用Sigmoid 激活函數(shù)進(jìn)行處理。處理后的向量與輸入特征圖相乘,得到經(jīng)過通道注意力模塊處理的特征圖,并將此輸入到空間注意力模塊中。
空間注意力模塊以通道方向?qū)μ卣鲌D分別進(jìn)行平均池化與最大值池化然后疊加,得到通道數(shù)為2的特征圖。使用卷積核大小為2×2 的卷積核對(duì)特征圖進(jìn)行卷積操作,用Sigmoid激活函數(shù)對(duì)輸出進(jìn)行處理,得到通道數(shù)為1 的空間特征圖。將空間特征圖與輸入特征圖相乘,最后得到經(jīng)過兩種注意力模塊處理過的特征圖。
第二個(gè)改進(jìn)為去掉ResNet-50 最后的1 000 維全連接層,改為一個(gè)輸出維數(shù)為1 024 的全連接層以及輸出維數(shù)為源域行人ID數(shù)的分類層。分類層的作用是利用源域中的標(biāo)簽信息,將網(wǎng)絡(luò)的訓(xùn)練過程轉(zhuǎn)換為一種分類問題,利用Cross-entropy Loss 函數(shù)進(jìn)行網(wǎng)絡(luò)參數(shù)學(xué)習(xí)。這里使用文獻(xiàn)[2]中的訓(xùn)練策略,對(duì)Cross-entropy Loss函數(shù)進(jìn)行改進(jìn),改進(jìn)后為:
式中,N為源域中行人ID 的個(gè)數(shù),pi為當(dāng)前樣本對(duì)于第i個(gè)行人的預(yù)測(cè)值,傳統(tǒng)的qi取值為0或1,為了防止過擬合,將qi改為:
式中,y為當(dāng)前樣本真實(shí)標(biāo)簽,ε為較小的常數(shù),用于減少模型對(duì)訓(xùn)練集的置信度,設(shè)置ε為0.1。
同時(shí)對(duì)源域樣本集進(jìn)行難樣本三元組損失的計(jì)算,該損失函數(shù)為:
式中,M為當(dāng)前mini-batch中行人個(gè)數(shù),Z為當(dāng)前minibatch中每個(gè)行人擁有的圖像個(gè)數(shù),a為當(dāng)前行人圖像,p為a的正樣本對(duì),A為當(dāng)前mini-batch 中a的正樣本集,n為a的負(fù)樣本對(duì),B為當(dāng)前mini-batch中a的負(fù)樣本集,α為邊界值,表示正樣本與負(fù)樣本之間的最小距離。使用難樣本三元組損失函數(shù)能夠減小類內(nèi)樣本間的距離,增大類間樣本間的距離。
對(duì)于源域預(yù)訓(xùn)練階段,使用Cross-entropy Loss 與TriHard Loss進(jìn)行學(xué)習(xí),總的損失函數(shù)為:
式中的σ用于平衡兩個(gè)損失函數(shù)。
對(duì)于無標(biāo)簽?zāi)繕?biāo)域,首先需要學(xué)習(xí)目標(biāo)域中的簡(jiǎn)單樣本,即那些類內(nèi)距離較近,容易成團(tuán)的樣本。參考SpCl 中的方法,使用記憶模型、DBSCAN[25]聚類以及動(dòng)量更新的方法,對(duì)目標(biāo)域樣本進(jìn)行初步學(xué)習(xí)。
在當(dāng)前的網(wǎng)絡(luò)模型中,ResNet-50 網(wǎng)絡(luò)模型的輸出會(huì)被連接到一個(gè)1 024維的全連接網(wǎng)絡(luò)中。該全連接網(wǎng)絡(luò)的輸出定義為行人圖像的特征向量。對(duì)目標(biāo)域進(jìn)行初步學(xué)習(xí)的第一步,對(duì)所有訓(xùn)練用的行人圖像進(jìn)行特征提取,并將提取的特征構(gòu)建為記憶模型。第二步,使用DBSCAN 聚類方法對(duì)記憶模型進(jìn)行聚類,聚類的結(jié)果會(huì)把行人圖像數(shù)據(jù)分為聚類點(diǎn)和離群點(diǎn)。聚類點(diǎn)為當(dāng)前特征相近的樣本,在初步學(xué)習(xí)階段,重點(diǎn)對(duì)聚類點(diǎn)進(jìn)行處理。
首先計(jì)算每個(gè)聚類的聚類中心。對(duì)于每個(gè)聚類簇,計(jì)算其簇內(nèi)樣本特征向量的均值向量,則該均值向量就為該聚類簇的聚類中心,其計(jì)算公式為:
式中,c為當(dāng)前聚類簇的聚類中心,K為當(dāng)前聚類簇內(nèi)樣本的個(gè)數(shù),f為樣本特征向量。
使用在線樣本匹配損失函數(shù)(OIM loss),對(duì)所有樣本進(jìn)行學(xué)習(xí),其公式為:
式中,nc為聚類中心個(gè)數(shù),nu為離群點(diǎn)個(gè)數(shù),ck為第k個(gè)聚類中心,uk為第k個(gè)離群點(diǎn)在記憶模型中的特征向量,為計(jì)算兩個(gè)向量之間的余弦距離,τ為放大系數(shù),設(shè)為0.05。z為當(dāng)前x的趨向位置。若當(dāng)前x為聚類點(diǎn),則z為x所屬類別的聚類中心;若x為離群點(diǎn),則z為x在記憶模型中的特征向量。
該損失函數(shù)目的在于使簡(jiǎn)單易成群的樣本更加聚攏,并且在聚攏過程中一定程度地遠(yuǎn)離其他的聚類中心以及其他離群點(diǎn),這樣能使模型在目標(biāo)域中達(dá)到初步學(xué)習(xí)簡(jiǎn)單樣本的效果。
計(jì)算完損失函數(shù)并對(duì)網(wǎng)絡(luò)進(jìn)行更新后,需對(duì)記憶模型使用動(dòng)量更新的方法進(jìn)行更新,其方式為:
動(dòng)量更新后的記憶模型,將會(huì)用于下一輪訓(xùn)練的聚類以及損失函數(shù)的計(jì)算中。
對(duì)模型性能進(jìn)一步提升的關(guān)鍵在于對(duì)數(shù)據(jù)集中的難樣本對(duì)進(jìn)行挖掘。本文提出的多聚類融合方法,旨在減輕單種聚類信息產(chǎn)生的誤差,為樣本生成更魯棒的軟多標(biāo)簽,并使用該軟多標(biāo)簽挖掘出當(dāng)前數(shù)據(jù)集內(nèi)的難樣本對(duì)。
與初步訓(xùn)練的方法類似,網(wǎng)絡(luò)的訓(xùn)練流程同樣采用記憶模型與動(dòng)量更新的方法,具體如圖2 所示。每次迭代對(duì)記憶模型同時(shí)進(jìn)行三種聚類算法的聚類,圖2中的K、G、S 分別代表KMeans 聚類、高斯混合模型(Gaussian mixture model,GMM)聚類以及譜聚類(spectral clustering)。
2.3.1 KMeans聚類
KMeans 聚類算法是在聚類時(shí),先在樣本特征空間中隨機(jī)選取k個(gè)點(diǎn)作為各個(gè)簇的中心(k為當(dāng)前設(shè)定的簇個(gè)數(shù))。接著計(jì)算每個(gè)樣本到各個(gè)隨機(jī)點(diǎn)的距離,選擇距離最近的點(diǎn)為該樣本的簇中心,將樣本被分配到該簇。當(dāng)所有樣本都確定了自己所屬的簇后,每個(gè)簇根據(jù)簇內(nèi)樣本的位置重新計(jì)算各個(gè)簇的中心。迭代地進(jìn)行樣本到簇中心距離的計(jì)算以及簇中心位置的計(jì)算,不斷更新簇中心的位置,最后聚類所有的樣本。
KMeans 聚類完成后能得到樣本的硬標(biāo)簽與軟標(biāo)簽。硬標(biāo)簽為當(dāng)前樣本所屬的類別,軟標(biāo)簽為當(dāng)前樣本到各個(gè)簇中心的距離,計(jì)算公式為:
式中,l(x)為當(dāng)前樣本軟標(biāo)簽,x為當(dāng)前樣本特征,li為樣本x到第i個(gè)簇中心的距離,k為聚類簇的個(gè)數(shù),n為樣本特征的維度,ci為第i個(gè)簇的簇中心。
考慮到硬標(biāo)簽只給出各樣本的所屬類別,而軟標(biāo)簽則給出了樣本到各簇中心的距離,更能體現(xiàn)樣本間的位置關(guān)系,所以選擇軟標(biāo)簽進(jìn)行下一步的聚類融合。
2.3.2 高斯混合模型聚類
高斯混合模型聚類算法是將樣本數(shù)據(jù)看作是由多個(gè)不同的高斯模型生成的,即樣本服從混合高斯分布。聚類的過程就是找出高斯混合模型最佳參數(shù)的過程。每個(gè)高斯模型則代表著一個(gè)聚類簇。
高斯混合模型公式為:
式中,p(x)為概率密度,x為當(dāng)前樣本,k為聚類簇個(gè)數(shù),πi為第i個(gè)高斯模型的權(quán)重系數(shù),ui為第i個(gè)高斯模型的均值,為第i個(gè)高斯模型的方差。
找出公式中最佳的πi、ui以及的值,使該高斯混合模型最大程度地?cái)M合當(dāng)前樣本的分布。首先根據(jù)聚類簇個(gè)數(shù)k隨機(jī)給定k個(gè)高斯分布。然后計(jì)算每個(gè)樣本由各個(gè)高斯模型生成的后驗(yàn)概率,并使用后驗(yàn)概率重新計(jì)算模型的πi、ui和值。迭代地計(jì)算后驗(yàn)概率以及更新模型參數(shù),最終使模型達(dá)到最優(yōu)。
通過比較樣本由各個(gè)高斯模型生成的概率,選擇概率最大值,就能得到樣本所屬的類別,即樣本的硬標(biāo)簽。樣本的軟標(biāo)簽則是當(dāng)前樣本由各個(gè)模型生成的概率,公式為:
式中的k為聚類簇個(gè)數(shù),g(x)為樣本軟標(biāo)簽,gi為樣本x由第i個(gè)高斯模型生成的概率。
2.3.3 譜聚類
譜聚類是從圖論中演化出來的聚類算法。主要思想是把所有樣本作為圖節(jié)點(diǎn),構(gòu)成一個(gè)無向有權(quán)圖,然后將圖切分成若干子圖。切分的結(jié)果使子圖內(nèi)各條邊的權(quán)值盡可能大,子圖間的邊的權(quán)值盡可能小。這樣每個(gè)子圖構(gòu)成一個(gè)聚類簇。
具體的譜聚類過程:使用K 鄰近法,構(gòu)建樣本向量的相似矩陣,矩陣內(nèi)的值為各邊的權(quán)值。通過該相似矩陣,構(gòu)建出樣本的度矩陣以及鄰接矩陣,進(jìn)而計(jì)算出拉普拉斯矩陣。計(jì)算標(biāo)準(zhǔn)化后的拉普拉斯矩陣的特征值與特征向量,并構(gòu)成特征矩陣。對(duì)特征矩陣的行進(jìn)行聚類,聚類的結(jié)果為樣本的譜聚類結(jié)果。
譜聚類給出的標(biāo)簽為硬標(biāo)簽,即當(dāng)前樣本所屬的類別。將其轉(zhuǎn)換為one-hot編碼的模式
式中,s(x)為樣本標(biāo)簽,x為當(dāng)前樣本,j為譜聚類對(duì)當(dāng)前樣本的聚類結(jié)果。
2.3.4 聚類分析與融合
KMeans聚類算法通過計(jì)算樣本與中心的距離進(jìn)行聚類,其聚類結(jié)構(gòu)通常為圓形,能滿足數(shù)據(jù)分布較為簡(jiǎn)單的聚類要求。
高斯混合模型聚類與KMeans 的不同點(diǎn)在于,該聚類算法采用概率模型來刻畫聚類結(jié)構(gòu),其聚類結(jié)構(gòu)通常為橢圓形,聚類簇的劃分相對(duì)靈活。對(duì)于某些特定的樣本分布,兩種聚類的差別如圖3所示。
圖3 Kmeans與GMM聚類的差別Fig.3 Difference between KMeans and GMM clustering
當(dāng)樣本數(shù)據(jù)在特征空間中的分布呈現(xiàn)如圖3(a)分布時(shí),KMeans 聚類會(huì)根據(jù)樣本到中心的距離對(duì)樣本種類進(jìn)行劃分,如圖3(b)所示。圖中的A、B 樣本不屬于同一類,但KMeans聚類因兩樣本距離較近,錯(cuò)誤地將其歸為同一個(gè)類別。而高斯混合模型聚類則是根據(jù)概率模型對(duì)樣本進(jìn)行擬合,找出最有可能生成當(dāng)前樣本的概率模型,效果如圖3(c)所示。高斯混合模型聚類能分辨出A、B這種位置較近,但明顯不屬于同一概率分布的樣本。
當(dāng)樣本數(shù)據(jù)的分布較為稀疏且有特定形狀時(shí),KMeans聚類以及高斯混合模型聚類都難以做出正確判斷,如圖4所示。
圖4 譜聚類與KMeans、GMM聚類的區(qū)別Fig.4 Difference between spectral clustering and KMeans and GMM clustering
圖4(a)為樣本數(shù)據(jù)分布情況。對(duì)該樣本數(shù)據(jù)進(jìn)行KMeans 聚類以及高斯混合模型聚類,會(huì)出現(xiàn)圖4(b)以及圖4(c)的分類情況,聚類效果不理想。而使用譜聚類算法對(duì)該樣本數(shù)據(jù)進(jìn)行聚類,則能得到很好的效果,如圖4(d)所示。這是由于KMeans 聚類算法以及高斯混合模型聚類算法在簇內(nèi)樣本分布較為密集時(shí),才能很好地發(fā)揮作用。而譜聚類算法是根據(jù)樣本的相似矩陣進(jìn)行聚類的,所以當(dāng)簇內(nèi)樣本分布較為稀疏時(shí),譜聚類仍然能有較好的效果。
在實(shí)際的數(shù)據(jù)集中,樣本的分布形式可能會(huì)同時(shí)存在多種,如圖5所示。
使用單一的聚類算法對(duì)樣本進(jìn)行聚類,只能獲得部分樣本的正確聚類信息。而不同的聚類算法,正確聚類到的樣本可能不同,所以各聚類算法得出的聚類信息存在一定的互補(bǔ)性。這種互補(bǔ)性體現(xiàn)在:對(duì)于某一部分樣本,當(dāng)一種聚類算法進(jìn)行了錯(cuò)誤的聚類時(shí),其他的聚類算法可能會(huì)正確聚類?;谏鲜銮闆r,本文提出一種融合多種聚類信息生成軟多標(biāo)簽的方法。
融合的思路:在判斷兩個(gè)樣本是否屬于相同類別時(shí),若判斷為相同類別的聚類算法越多,則當(dāng)前兩個(gè)樣本屬于相同類別的可能性越大。這兩個(gè)樣本融合聚類信息后生成的軟多標(biāo)簽的相似度也越大。具體的融合公式為:
式中,r為樣本的軟多標(biāo)簽,l為公式(8)中KMeans 聚類得出的軟標(biāo)簽,g為公式(10)中高斯混合模型聚類得出的軟標(biāo)簽,s為公式(11)中譜聚類得到的one-hot編碼標(biāo)簽,μ與λ為超參數(shù),用于調(diào)整融合時(shí)各聚類標(biāo)簽的占比。若兩個(gè)樣本的l、g與s高度相似,即三種聚類都給出相同的結(jié)果時(shí),則生成的軟多標(biāo)簽r也高度相似。
雖然各標(biāo)簽的維度一致,但l為當(dāng)前樣本到各聚類簇中心的距離、g為樣本屬于各個(gè)聚類簇的概率、s為one-hot編碼,故不能直接進(jìn)行相加融合??紤]到,若當(dāng)前樣本屬于某個(gè)聚類簇的概率越大,或者直接被認(rèn)定為屬于某個(gè)聚類簇時(shí),則該樣本離該聚類簇中心的距離應(yīng)該越近。所以本文以l為基底,使用相減的方式融合三種聚類的標(biāo)簽,將概率信息和聚類信息轉(zhuǎn)為距離信息。具體融合的過程如圖6所示。
圖6 多重聚類信息融合過程Fig.6 Multi clustering information fusing
比起使用單一聚類的標(biāo)簽,網(wǎng)絡(luò)模型使用該軟多標(biāo)簽對(duì)樣本進(jìn)行學(xué)習(xí),能更好地判斷數(shù)據(jù)集中的難樣本,從而提升網(wǎng)絡(luò)模型在行人重識(shí)別方面的性能。
2.3.5 難樣本對(duì)挖掘
挖掘的思路:當(dāng)兩個(gè)樣本的特征向量相似但是軟多重標(biāo)簽不相似時(shí),可以判斷這兩個(gè)樣本為難負(fù)樣本對(duì);當(dāng)兩個(gè)樣本的特征向量不相似但是軟多重標(biāo)簽相似時(shí),可以判斷這兩個(gè)樣本為難正樣本對(duì)。
對(duì)于每個(gè)樣本,計(jì)算其在當(dāng)前mini-batch 中與其他樣本的相似度并排序。選擇前k個(gè)樣本組成候選的正樣本集合P,而排名在k之后的選為候選的負(fù)樣本集合N。集合P與N可表示為:
式中,f(?)為網(wǎng)絡(luò)模型提取特征,f(x)為當(dāng)前樣本的特征向量,Sk為當(dāng)前特征相似度排序中第k個(gè)樣本的相似度值。
分別地,計(jì)算當(dāng)前樣本x的軟多重標(biāo)簽與集合P、N中所有樣本的軟多重標(biāo)簽的相似度并排序。集合P中軟多重標(biāo)簽相似度最低的樣本將被視為難負(fù)樣本;集合N中軟多重標(biāo)簽相似度最高的樣本將被視為難正樣本。
獲得當(dāng)前難樣本對(duì)后,計(jì)算目標(biāo)域的難樣本三元組損失函數(shù)(target-source TriHard loss)。該損失函數(shù)的形式為:
式中,B為當(dāng)前mini-batch 中的樣本個(gè)數(shù),sa,p與sa,n分別為樣本a與它的難正樣本對(duì)以及難負(fù)樣本對(duì)的相似度,β為邊界值。
只進(jìn)行難正樣本對(duì)與難負(fù)樣本對(duì)分布的優(yōu)化,容易造成模型的崩潰,所以需要對(duì)樣本本身的分布位置加以約束。參考源域?qū)W習(xí)中以Cross-entropy Loss 加上TriHardloss的思想,使用各自樣本的候選正樣本集P的均值作為各自樣本的約束,構(gòu)建中心約束損失函數(shù)(central constraint loss)。該損失函數(shù)的形式為:
式中,c為當(dāng)前樣本的候選正樣本集合均值中心,ui為當(dāng)前樣本的候選負(fù)樣本中第i個(gè)樣本的特征向量,sx,c為當(dāng)前樣本x與其均值中心c的相似度,sx,u為當(dāng)前樣本x與負(fù)樣本的相似度,γ為放大系數(shù),設(shè)為0.05。該損失函數(shù)與Cross-entropy Loss 函數(shù)的作用相似,使當(dāng)前樣本往中心位置聚攏并遠(yuǎn)離其他負(fù)樣本。
結(jié)合兩個(gè)損失函數(shù),難樣本對(duì)挖掘的損失函數(shù)為:
式中,ω為可調(diào)參數(shù),用于平衡兩個(gè)損失函數(shù)。
使用公式(12)對(duì)網(wǎng)絡(luò)模型進(jìn)行優(yōu)化后,重新提取該mini-batch 中樣本的新的特征向量,并以公式(7)的方式,更新記憶模型,用于下一輪迭代的聚類計(jì)算。
方法在Market-1501[26]以及DukeMTMC-reID[27]兩個(gè)數(shù)據(jù)集中進(jìn)行評(píng)估。
Market-1501 數(shù)據(jù)集擁有32 668 張行人圖像,一共包含1 501 個(gè)行人。其中,訓(xùn)練集包含12 936 張行人圖像,分別屬于751 個(gè)行人;測(cè)試集包含19 732 張行人圖像,分別屬于750 個(gè)行人;查詢集中有3 368 張行人圖像,由測(cè)試集中的750個(gè)行人在每個(gè)攝像頭中隨機(jī)選取一張組成。實(shí)驗(yàn)中使用Re-Ranking 重排序[28]的方法在測(cè)試集中進(jìn)行檢索。
DukeMTMC-reID 數(shù)據(jù)集共采集了1 404 個(gè)行人的36 411 張圖像,其中訓(xùn)練集擁有16 522 張行人圖像,包含行人702 個(gè);測(cè)試集擁有17 661 張行人圖像,包含行人702個(gè);選取測(cè)試集中每個(gè)行人在每個(gè)攝像頭下的隨機(jī)圖像作為查詢集。在行人檢索階段使用重排序的方法進(jìn)行檢索。
本實(shí)驗(yàn)在pytorch 框架下進(jìn)行,使用的實(shí)驗(yàn)平臺(tái)為Geforce RTX 3080 的GPU 以及i7-10700k 的CPU。將輸入到模型的圖像調(diào)整為256×168,并進(jìn)行隨機(jī)裁剪以及隨機(jī)水平翻轉(zhuǎn),用作數(shù)據(jù)增強(qiáng)。
網(wǎng)絡(luò)進(jìn)行源域預(yù)訓(xùn)練階段,初始學(xué)習(xí)率設(shè)置為0.01,使用SGD 優(yōu)化器對(duì)模型進(jìn)行優(yōu)化。優(yōu)化器momentum值設(shè)為0.9,總的訓(xùn)練epoch 設(shè)置為60,每經(jīng)過20 個(gè)epoch 學(xué)習(xí)率衰減為原來的0.1 倍。每個(gè)訓(xùn)練批次從訓(xùn)練集中隨機(jī)選擇8 個(gè)行人,分布從這8 個(gè)行人中隨機(jī)選擇其4張圖像,每個(gè)批次的訓(xùn)練樣本共32個(gè)。在公式(2)中的參數(shù)ε設(shè)定為0.1,源域的難樣本三元組損失函數(shù)的邊界參數(shù)α設(shè)為0.3,總損失函數(shù)中σ設(shè)置為0.3。
網(wǎng)絡(luò)對(duì)目標(biāo)域進(jìn)行初步學(xué)習(xí)階段,使用Adam優(yōu)化器對(duì)模型進(jìn)行優(yōu)化。初始學(xué)習(xí)率為3.5E-5,每經(jīng)過15個(gè)epoch學(xué)習(xí)率衰減為原來的0.1倍,總epoch數(shù)設(shè)置為40。該階段的聯(lián)合對(duì)比損失函數(shù)的放大系數(shù)τ設(shè)置為0.05。該階段中使用的DBSCAN 的領(lǐng)域距離閾值參數(shù)eps 設(shè)置為0.5,領(lǐng)域樣本數(shù)閾值min_samples 設(shè)置為4個(gè),對(duì)目標(biāo)域的Jaccard 距離矩陣進(jìn)行聚類。對(duì)記憶模型進(jìn)行動(dòng)態(tài)更新的動(dòng)量系數(shù)m設(shè)為0.5。
目標(biāo)域難樣本挖掘階段,初始學(xué)習(xí)率為3.5E-4,使用SGD 優(yōu)化器對(duì)模型進(jìn)行優(yōu)化。優(yōu)化器的momentum值設(shè)為0.8,總的訓(xùn)練epoch 為40 個(gè),每經(jīng)過15 個(gè)epoch學(xué)習(xí)率衰減為原來的0.5倍。為了減少實(shí)驗(yàn)參數(shù)過多的問題,將軟多重標(biāo)簽公式(8)中的μ與λ設(shè)置為μ=2λ。不同的λ值對(duì)識(shí)別精度的影響如表1 所示,當(dāng)λ值為0.22 時(shí)模型識(shí)別精度最高。對(duì)樣本特征進(jìn)行三種聚類時(shí),聚類簇的個(gè)數(shù)設(shè)置為50個(gè)。在難樣本的選擇中,劃分正負(fù)樣本的k值設(shè)為20。目標(biāo)域難樣本三元組損失函數(shù)中的邊界值β設(shè)置為0.3。中心約束損失函數(shù)的放大系數(shù)γ設(shè)為0.05。最后總的難樣本挖掘損失函數(shù)中的ω平衡參數(shù)對(duì)識(shí)別精度的影響如表1所示,當(dāng)ω值取0.2時(shí)模型識(shí)別精度最高。
表1 λ 與ω 對(duì)精度的影響Table 1 Effect of λ and ω on accuracy
3.3.1 難樣本挖掘效果
在DukeMTMC-reID 數(shù)據(jù)集中,對(duì)比網(wǎng)絡(luò)模型在初步學(xué)習(xí)階段與難樣本挖掘階段對(duì)某個(gè)行人搜索的效果,如圖7所示。
圖7 行人搜索結(jié)果Fig.7 Result of person search
圖中第一行為初步學(xué)習(xí)階段的網(wǎng)絡(luò)對(duì)某一行人前25 個(gè)搜索,其中正確結(jié)果有11 個(gè)。圖中第二行為經(jīng)過難樣本對(duì)挖掘后的網(wǎng)絡(luò)對(duì)該行人前25 個(gè)搜索,其中正確結(jié)果有18個(gè),比起初步學(xué)習(xí)階段的網(wǎng)絡(luò)多出7個(gè)。實(shí)驗(yàn)結(jié)果說明,網(wǎng)絡(luò)在進(jìn)行難樣本對(duì)挖掘?qū)W習(xí)后,對(duì)于一些較難判斷的樣本有了更好的識(shí)別能力,能盡可能在較少的搜索中找到更多的正確樣本。
對(duì)比網(wǎng)絡(luò)模型在初步學(xué)習(xí)階段與難樣本挖掘階段對(duì)難樣本搜索的效果,如圖8所示。圖中第一行為網(wǎng)絡(luò)初步學(xué)習(xí)階段對(duì)兩名行人搜索的結(jié)果。該階段的網(wǎng)絡(luò)難以對(duì)難樣本進(jìn)行正確的判斷:對(duì)于第一個(gè)搜索行人,網(wǎng)絡(luò)將兩個(gè)衣著相似的難負(fù)樣本排在了搜索的第6 名與第8名,將因?yàn)楸徽趽醵斐呻y以識(shí)別的難正樣本排在100 名以外;對(duì)于第二個(gè)搜索行人,網(wǎng)絡(luò)同樣將衣著相似的難負(fù)樣本排在搜索的第11 名與第17 名,將因?yàn)榕臄z角度以及環(huán)境變化而難以識(shí)別的難正樣本則排在100名以外。
圖8 難樣本搜索結(jié)果Fig.8 Result of hard samples search
經(jīng)過本文方法學(xué)習(xí)后的網(wǎng)絡(luò)對(duì)難樣本的判斷有了明顯的提升:對(duì)于第一個(gè)搜索行人,網(wǎng)絡(luò)能排除遮擋物的干擾,將難正樣本提前至第5 名,并將原來判斷錯(cuò)誤的難負(fù)樣本遠(yuǎn)離至第45 名與第56 名;對(duì)于第二個(gè)搜索行人,網(wǎng)絡(luò)能排除拍攝角度以及環(huán)境的干擾,將難正樣本提前至第15 名,并將判斷錯(cuò)誤的難負(fù)樣本遠(yuǎn)離至第28名與第45名。這表明本文的方法能有效地識(shí)別出數(shù)據(jù)集中的正負(fù)難樣本并做出正確的判斷。
3.3.2 單聚類與多聚類比較
對(duì)比網(wǎng)絡(luò)使用單聚類標(biāo)簽以及多聚類標(biāo)簽進(jìn)行難樣本對(duì)挖掘的效果,對(duì)Market-1501 數(shù)據(jù)集中某個(gè)行人的搜索進(jìn)行可視化,結(jié)果如圖9所示。
圖9 搜索結(jié)果對(duì)比Fig.9 Comparison of search results
圖中第一行為根據(jù)單聚類標(biāo)簽進(jìn)行難樣本對(duì)挖掘的結(jié)果。因?yàn)槭艿絾尉垲愬e(cuò)誤標(biāo)簽的誤導(dǎo),網(wǎng)絡(luò)模型并沒有很好地識(shí)別出當(dāng)前樣本的難樣本。一些與搜索行人相似的難負(fù)樣本被當(dāng)作正樣本,排在了搜索較前的位置。而有些正樣本則被當(dāng)作是負(fù)樣本,排在了搜索靠后的位置。
第二行為根據(jù)多聚類標(biāo)簽進(jìn)行難樣本挖掘的結(jié)果??梢钥闯鼍W(wǎng)絡(luò)模型對(duì)當(dāng)前樣本的正負(fù)難樣本都有了較好的判別能力。之前錯(cuò)誤判斷的難負(fù)樣本被推開到搜索靠后的位置,而正樣本則被拉近到靠前的位置。由此可以看出,比起使用單聚類標(biāo)簽進(jìn)行訓(xùn)練,使用多聚類標(biāo)簽進(jìn)行訓(xùn)練的網(wǎng)絡(luò)更能挖掘出樣本之間的聯(lián)系。對(duì)比使用單聚類標(biāo)簽訓(xùn)練的模型性能與使用多聚類標(biāo)簽訓(xùn)練的模型性能。分別在Market-1501與DukeMTMCreID數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果如表2所示。表中的D為初步訓(xùn)練后的模型,以此為當(dāng)前的baseline。K、G、S 為KMeans聚類、高斯混合模型聚類以及譜聚類。
表2 單聚類與多聚類對(duì)比結(jié)果Table 2 Comparison results of single clustering and multi-clustering
在DukeMTMC-reID 數(shù)據(jù)集上分別使用K、G、S 三種聚類算法的標(biāo)簽進(jìn)行學(xué)習(xí),mAP 值有3.6%到5.2%的提升,Rank-1 值有4.1%到5.1%的提升。而在Market-1501數(shù)據(jù)集上分別使用三種聚類算法的標(biāo)簽進(jìn)行學(xué)習(xí),只有高斯混合模型聚類以及譜聚類生成的標(biāo)簽?zāi)苁咕W(wǎng)絡(luò)模型有正向的學(xué)習(xí),mAP 的值與Rank-1 的值都有提升。若只使用KMeans 聚類標(biāo)簽,反而使模型的性能下降。這說明若單聚類的標(biāo)簽出現(xiàn)過多的錯(cuò)誤時(shí),反而影響網(wǎng)絡(luò)模型的判斷能力。
融合了兩種聚類算法后,生成的軟多標(biāo)簽的魯棒性比單聚類標(biāo)簽更強(qiáng)。在兩個(gè)數(shù)據(jù)集中,模型使用兩種聚類信息融合生成的軟多標(biāo)簽進(jìn)行學(xué)習(xí),模型性能得到進(jìn)一步提升。而原本會(huì)導(dǎo)致模型性能下降的KMeans聚類標(biāo)簽,在融合了高斯混合模型聚類標(biāo)簽或者譜聚類標(biāo)簽后,錯(cuò)誤標(biāo)簽對(duì)模型的影響也被削弱。融合后的軟多標(biāo)簽?zāi)苁咕W(wǎng)絡(luò)模型有正向的學(xué)習(xí)。
本文的方法是同時(shí)融合三種聚類算法。結(jié)果要比單聚類以及雙聚類的方法要好。以DukeMTMC-reID數(shù)據(jù)集為例,在mAP值的比較上,使用多聚類的方法比單聚類方法要高3.7%到5.3%,比雙聚類方法要高2.2%到3.3%;在Rank-1值的比較上,使用多聚類的方法比單聚類方法要高3.1%到4.1%,比雙聚類方法要高2.1%到2.5%。說明模型使用多聚類生成的軟多標(biāo)簽的效果要比使用單聚類的標(biāo)簽要好。
3.3.3 對(duì)比其他算法
與其他無監(jiān)督域適應(yīng)的方法進(jìn)行比較,本文方法在mAP 指標(biāo)上表現(xiàn)更優(yōu),如表3 和表4 所示。表3 為以Market-1501數(shù)據(jù)集為源域,以DukeMTMC-reID數(shù)據(jù)集為目標(biāo)域作域適應(yīng)。表4 以DukeMTMC-reID 為源域,以Market-1501為目標(biāo)域作域適應(yīng)。
表3 DukeMTMC-reID對(duì)比實(shí)驗(yàn)結(jié)果Table 3 Contrast experiment on DukeMTMC-reID
表4 Market-1501對(duì)比實(shí)驗(yàn)結(jié)果Table 4 Contrast experiment on Market-1501
表3、表4中的source表示模型只在源域進(jìn)行學(xué)習(xí),source+D表示模型在源域預(yù)訓(xùn)練后,在目標(biāo)域進(jìn)行了初步學(xué)習(xí),并以此為baseline。baseline+KGS 表示模型在源域中進(jìn)行了預(yù)訓(xùn)練,并且在目標(biāo)域中進(jìn)行了初步學(xué)習(xí)以及難樣本對(duì)的挖掘?qū)W習(xí)。
從表3 與表4 可以看出,在不對(duì)模型進(jìn)行初步學(xué)習(xí)以及難樣本對(duì)挖掘的情況下,模型的準(zhǔn)確率較低,在DukeMTMC-reID 數(shù)據(jù)集中僅有29.9%的mAP 值,在Market-1501 數(shù)據(jù)集中僅有33.9%的mAP 值。在對(duì)模型進(jìn)行初步學(xué)習(xí)后,模型的性能有了進(jìn)一步的提升,在DukeMTMC-reID 數(shù)據(jù)集中有48.9%的mAP 值,在Market-1501數(shù)據(jù)集中有46.9%的mAP值。最后對(duì)模型進(jìn)行中心聚攏以及難樣本挖掘的學(xué)習(xí),使得模型的性能進(jìn)一步提高:在DukeMTMC-reID數(shù)據(jù)集中的mAP值提升了8.9%,達(dá)到了57.8%;在Market-1501 數(shù)據(jù)集中的mAP值提升了14.4%,達(dá)到了61.3%。
在DukeMTMC-reID數(shù)據(jù)集上,對(duì)比只使用PCB-PAST方法,mAP超過了3.5%。對(duì)比AD-Cluster方法,mAP超過了3.7%;在Market-1501數(shù)據(jù)集中,對(duì)比PCB-PAST方法,mAP 超過了6.7%。在兩個(gè)數(shù)據(jù)集上的表現(xiàn)均比使用單一聚類的方法更優(yōu),可以體現(xiàn)本文方法的有效性。
實(shí)驗(yàn)結(jié)果表明,本文方法在mAP 指標(biāo)則有較大提升,而在Rank-1 指標(biāo)上的提升不大。本文方法能拉近難正樣本對(duì)的距離以及疏遠(yuǎn)難負(fù)樣本對(duì)的距離,從而使整體效果得到提升。但用作生成軟多標(biāo)簽的聚類方法只有三種,能對(duì)難樣本對(duì)做出正確判斷的通常只有一兩種聚類方法,樣本距離優(yōu)化能力仍不夠強(qiáng),難正樣本只能被優(yōu)化到較近距離。
本文提出了一種利用多種聚類信息融合來生成軟多標(biāo)簽的方法。因?yàn)椴煌木垲惙椒ㄆ渚垲悪C(jī)制各不相同,融合多種聚類的信息能從多個(gè)角度判斷樣本之間的關(guān)系,從而使生成的軟多標(biāo)簽比起單聚類標(biāo)簽更具魯棒性。利用這種軟多標(biāo)簽進(jìn)行無標(biāo)簽域的難樣本對(duì)挖掘。在Market-1501 數(shù)據(jù)集以及DukeMTMC-reID 數(shù)據(jù)集中的實(shí)驗(yàn)結(jié)果證明了該方法可以對(duì)已在目標(biāo)域進(jìn)行初步學(xué)習(xí)的模型進(jìn)行進(jìn)一步的難樣本對(duì)挖掘,提升其在目標(biāo)域識(shí)別的性能。本文方法在找到正確的難樣本后,樣本間距離優(yōu)化的信息有限,使得網(wǎng)絡(luò)不能再進(jìn)一步的學(xué)習(xí)。今后研究的重點(diǎn)在于如何生成魯棒性更強(qiáng)、包含更多信息的標(biāo)簽,進(jìn)一步提升無監(jiān)督網(wǎng)絡(luò)模型的性能。