劉世豪
(河北工程大學(xué),河北邯鄲 056000)
車輛重識別是智能交通系統(tǒng)的前沿研究課題,旨在識別在多個非重疊跨域攝像頭拍攝的車輛圖像中的同一輛車。盡管車輛重識別已取得了一些進展,但在實際應(yīng)用中仍存在以下局限性:
傳統(tǒng)車輛重識別算法采用有監(jiān)督的訓(xùn)練方式,但標(biāo)注成本高,需尋求高效的無監(jiān)督方式;不同域的偏差會導(dǎo)致源域模型在目標(biāo)域的測試準確率下降,無法直接應(yīng)用于新的未知域;不同區(qū)域的圖像來自不同攝像頭,路側(cè)計算能力有限,無法實時更新模型。
本文提出了一種基于聯(lián)邦學(xué)習(xí)框架[1]的無監(jiān)督領(lǐng)域自適應(yīng)車輛重識別方法。該方法通過有監(jiān)督預(yù)訓(xùn)練源域數(shù)據(jù)和無監(jiān)督訓(xùn)練目標(biāo)域數(shù)據(jù)來解決以上問題,并可以動態(tài)聚合多個預(yù)訓(xùn)練模型以實現(xiàn)相互適應(yīng)。使用聯(lián)邦學(xué)習(xí)結(jié)構(gòu),在邊緣計算單元中部署不同結(jié)構(gòu)的骨干網(wǎng)進行局部訓(xùn)練。在服務(wù)器中,多個模型通過協(xié)同學(xué)習(xí)進行聚合并相互適應(yīng),以獲得最優(yōu)參數(shù)。
圖1 聯(lián)邦學(xué)習(xí)的無監(jiān)督識別框架
本文使用聯(lián)邦學(xué)習(xí)技術(shù)進行車輛重識別。在深度學(xué)習(xí)模型訓(xùn)練階段,采用了源域到目標(biāo)域的模型集成方法,該方法包含了源域監(jiān)督學(xué)習(xí)和目標(biāo)域無監(jiān)督適應(yīng)。
如圖1 所示,本方法采用三層結(jié)構(gòu)。最高層結(jié)構(gòu)是中央服務(wù)器,具有高性能計算和數(shù)據(jù)共享能力,能夠執(zhí)行全局緩存和聚合計算任務(wù)。中間層有多個邊緣計算單元,每個采用不同的CNN 網(wǎng)絡(luò)結(jié)構(gòu),負責(zé)訓(xùn)練重識別模型參數(shù)并上傳中央服務(wù)器。底層是若干監(jiān)控攝像頭,每個區(qū)域的攝像頭歸屬于該區(qū)域的邊緣計算單元,將采集到的車輛圖像原始數(shù)據(jù)上傳到邊緣計算單元中。
在模型中,邊緣計算單元會接收到本地數(shù)據(jù)采集設(shè)備采集的圖像數(shù)據(jù),并使用這些數(shù)據(jù)進行模型訓(xùn)練。實驗階段,本文使用帶有標(biāo)簽的源域數(shù)據(jù)的模型預(yù)訓(xùn)練和不帶標(biāo)簽的目標(biāo)域數(shù)據(jù)的模型訓(xùn)練相結(jié)合的方式對本地模型進行無監(jiān)督領(lǐng)域自適應(yīng)的模型訓(xùn)練。
本文將源域數(shù)據(jù)記為SD:
本文將帶有標(biāo)簽平滑效果的交叉熵損失函數(shù)定義為:
當(dāng)j=時:
Ms是源域車輛標(biāo)識的數(shù)量,本文將σ設(shè)置為0.1。交叉熵損失表示圖像的網(wǎng)絡(luò)輸出的預(yù)測值和實際真實樣本標(biāo)簽之間的差異。
考慮到傳統(tǒng)形式的三重損失函數(shù)無法支持多網(wǎng)絡(luò)的軟標(biāo)簽訓(xùn)練,本文中采用soft-max 的三重損失。損失函數(shù)定義為:
2)目標(biāo)域無監(jiān)督學(xué)習(xí):由于目標(biāo)域上的圖像沒有進行人工標(biāo)注,所以目標(biāo)域無監(jiān)督的學(xué)習(xí)過程由一個基于聚類的偽標(biāo)簽生成過程和一個特征學(xué)習(xí)過程組成,如圖2所示。訓(xùn)練共三個步驟:目標(biāo)域圖像的特征提取;將提取的特征進行聚類分簇;將聚類生成的簇用作偽標(biāo)簽對模型進行訓(xùn)練。
②特征進行聚類分簇:在聚類階段使用k-means的聚類方法。
③模型訓(xùn)練:將聚類生成的簇用作偽標(biāo)簽對模型進行訓(xùn)練。
圖2 無監(jiān)督學(xué)習(xí)流程
為了在聚類的過程中獲得穩(wěn)定的偽標(biāo)簽,本文引入身份損失函數(shù)和三重損失函數(shù)組成的決策損失函數(shù)。身份損失定義為具有標(biāo)簽平滑的交叉熵損失,這里的三元組損失函數(shù)與監(jiān)督學(xué)習(xí)中的保持一致。整體聚類決策損失函數(shù)可以表示為:
針對不同模型間的獨立性,本文在每個計算單元向中央服務(wù)器提交參數(shù)的過程中引入時間平均模型。中央服務(wù)器使用經(jīng)過時間平均的模型參數(shù)來對其他網(wǎng)絡(luò)進行監(jiān)督訓(xùn)練,減小因?qū)嶒瀰?shù)不穩(wěn)定對整個模型訓(xùn)練的影響。通過時間平均模型得到的參數(shù)定義為:
圖3 服務(wù)器上的模型聚合
圖3展示了本文提出的基于聯(lián)邦學(xué)習(xí)的多網(wǎng)絡(luò)協(xié)同學(xué)習(xí)模型。邊緣計算單元中部署的網(wǎng)絡(luò)使用硬偽標(biāo)簽進行監(jiān)督模型訓(xùn)練,從而能夠捕獲訓(xùn)練數(shù)據(jù)的分布。使用中央服務(wù)器下發(fā)的硬偽標(biāo)簽和本地模型聚類產(chǎn)生的在線軟偽標(biāo)簽共同訓(xùn)練協(xié)作網(wǎng)絡(luò)。通過使用在線硬偽標(biāo)簽訓(xùn)練邊緣計算單元上的網(wǎng)絡(luò),可以迭代改進學(xué)習(xí)的特征表示,提供更準確的軟偽標(biāo)簽,并進一步提高學(xué)習(xí)特征的鑒別性。
對于每個邊緣計算單元網(wǎng)絡(luò)模型,本文將其他模型的時間平均模型和當(dāng)前網(wǎng)絡(luò)一次的分類預(yù)測模型之間的交叉熵損失定義為相互身份損失,某一個模型的相互身份損失設(shè)置為所有的其他模型在學(xué)習(xí)該模型時損失的平均值。將其表示為:
整個模型的相互身份損失可以定義為所有模型Mk相互身份損失的平均值:
另外,在對不同邊緣計算單元上傳的網(wǎng)絡(luò)模型預(yù)測進行聚合時,考慮到由于網(wǎng)絡(luò)結(jié)構(gòu)的差異,可能造成聚合不收斂。針對聚合過程中的相互三元組損失,本文將其他模型在學(xué)習(xí)某一模型之間的相互三元損失定義為:
綜上所述,對于中央服務(wù)器中訓(xùn)練網(wǎng)絡(luò)的損失函數(shù)為:
為了適應(yīng)不同網(wǎng)絡(luò)模型的異質(zhì)性,本文引入了一種權(quán)重正則化模塊。它根據(jù)每個邊緣計算單元網(wǎng)絡(luò)模型的集群間和集群內(nèi)分散度來調(diào)制不同模型的權(quán)重值。網(wǎng)絡(luò)模型在提取圖像特征后,用聚類算法將所有樣本分組為Mt,聚類為C。每個模型的權(quán)重可定義為聚類間散點和聚類內(nèi)散點之和的比值,以此得到每個網(wǎng)絡(luò)模型的權(quán)值。在協(xié)同學(xué)習(xí)的過程中,該權(quán)值表示中央服務(wù)器對各邊緣計算單元提交的模型參數(shù)進行融合時的置信度。簇Ci的簇內(nèi)散度可以計算為:
μi是簇Ci的平均特征,表示Ci中的特征個數(shù),簇間散度的定義為:
μ表示所有訓(xùn)練目標(biāo)域樣本的平均特征。簇間散度與簇內(nèi)散度之和的比率R可以定義為:
如果一個模型具有較好的識別能力,則當(dāng)簇間散度較大或簇內(nèi)散度越小時,R的標(biāo)量就會越大。
對于主服務(wù)器中的動態(tài)聚合,在每個迭代的特征學(xué)習(xí)之前,每一個模型Mk的權(quán)重wk可以定義為R的均值歸一化。所以對上述互相關(guān)身份損失和互相關(guān)三重損失可以重新定義為:
很多企業(yè)管理者對審計價格、經(jīng)濟合同的流程并不了解,使得要么審計者并不能自如的進行評估審核,要么使得經(jīng)費濫用嚴重,造成重大損失。企業(yè)只是單方面的重視各類活動的事后經(jīng)濟審計,忽略了事前預(yù)算審計的重要性,許多經(jīng)費使用者套用經(jīng)費的現(xiàn)象依舊存在,并且依舊嚴峻。另外,一些人對于各類企劃的預(yù)算編制沒有節(jié)制[2],使得最終使用的經(jīng)費與當(dāng)初的預(yù)算有著很大的偏差,導(dǎo)致出現(xiàn)很大的浪費。
通過權(quán)重正則化方案,中央服務(wù)器中調(diào)節(jié)了每個邊緣計算單元的權(quán)重,以促進在目標(biāo)領(lǐng)域的識別。在訓(xùn)練過程,將硬偽標(biāo)簽和軟標(biāo)簽與提出的軟損失相結(jié)合,對多個邊緣計算單元進行訓(xùn)練。
本文采用DenseNet-121、ResNet-50 和Inceptionv3作為三個分支。使用骨干網(wǎng)絡(luò)與SE注意力機制融合來提取圖像特征。對于訓(xùn)練集的每個標(biāo)識,用隨機選擇的車輛和隨機采樣的圖像進行采樣,用于計算批處理三聯(lián)體損失。使用權(quán)重衰減為0.000 5 的Adam衰減函數(shù)。設(shè)置初始學(xué)習(xí)率為0.000 35,在總共80個epoch的訓(xùn)練中,在第40個epoch和第70個epoch達到之前值的1/10。
在目標(biāo)域訓(xùn)練的過程中,共有100 個訓(xùn)練迭代過程,學(xué)習(xí)率設(shè)置為0.000 35。在每一次訓(xùn)練迭代過程中都進行一次500個集群的聚類,一次訓(xùn)練迭代過程由800個訓(xùn)練迭代組成。
將本文提出的算法與現(xiàn)有具體有代表性的無監(jiān)督領(lǐng)域自適應(yīng)的車輛重識別算法進行比較[4]。對比算法如下:
①FACT:該算法使用車輛的顯著特征和卷積神經(jīng)網(wǎng)絡(luò)提取的GoogleNet 深度特征進行融合作為偽標(biāo)簽進行無標(biāo)簽?zāi)繕?biāo)域的車輛重識別[5]。
②MixedDiff+CCL:該算法利用雙分支深度卷積網(wǎng)絡(luò)將原始車輛圖像投影到歐幾里得空間中,其中距離可以直接用來度量任意兩輛車輛的相似性,實現(xiàn)車輛重識別任務(wù)。
③PUL:該算法使用一種局部正則化的方法,將局部特征和非局部特征集成到一個統(tǒng)一的架構(gòu)中。
⑤CycleGAN:該算法提出了多對多映射的方法克服了傳統(tǒng)一對一映射的局限性。
⑥D(zhuǎn)irectTransfer:該方法使用已有的網(wǎng)絡(luò)結(jié)構(gòu)在源域數(shù)據(jù)上進行訓(xùn)練得到網(wǎng)絡(luò)模型后,直接在目標(biāo)域上進行測試。
⑦VR-PROUD:該算法結(jié)合圖像的多種特征,通過兩個漸進式程序考慮車輛重新識別。
⑧PAL:該算法基于FDNet的多標(biāo)簽學(xué)習(xí)算法,為目標(biāo)域中未標(biāo)記的樣本分配多個潛在標(biāo)簽,通過特征融合形成偽標(biāo)簽。
本文在VeRi-776 和VehicleID[6]兩個數(shù)據(jù)集上進行了實驗,將兩個數(shù)據(jù)集進行交叉學(xué)習(xí)。VehicleID作為源域,VeRi-776作為目標(biāo)。實驗結(jié)果如表1所示:
表1 VeRi-776測試集對比結(jié)果
VeRi-776作為源域,VehicleID 作為目標(biāo)域,實驗結(jié)果如表2所示。
表2 VehicleID 測試集對比結(jié)果
通過觀察表1、表2,在本算法與FACT 和Mixed-Diff+CCL算法的比較中,本模型mAP和Rank值[7]都有了很大程度的提升。這是因為FACT使用淺層顯著特征,MixedDiff+CCL 對淺層顯著特征進行簡單的度量學(xué)習(xí)。由此可知對圖像進行深層次的特征提取的優(yōu)勢。與VR-PROUD 和PUL 進行比較,各指標(biāo)均有提升。這是因為這兩類算法中k-means 聚類模塊在形成偽標(biāo)簽時,簇的數(shù)量未知,會存在漏檢。與Direct-Transfer 進行比較,相比直接將源域上的訓(xùn)練模型應(yīng)用到目標(biāo)域的方法,本方法各項指標(biāo)上都超越了很多。以上證明了本方法可以滿足跨域車輛重識別的任務(wù)。
與CycleGAN 算法相比,本算法各項指標(biāo)均有提升。這是由于本算法通過迭代后,中央服務(wù)器對于各邊緣計算單元提供的偽標(biāo)簽進行聚合,得到新的偽標(biāo)簽使得在訓(xùn)練時目標(biāo)區(qū)域的真實樣本能更可靠地生成特征。結(jié)果表明了目標(biāo)域可靠偽標(biāo)簽的優(yōu)越性。
對比PAL算法,本算法各項指標(biāo)均有提升。這是因為該算法雖然同樣使用偽造標(biāo)簽法進行無監(jiān)督訓(xùn)練,但骨干網(wǎng)方面只使用了Resnet-50。本文使用了多個邊緣網(wǎng)絡(luò)進行協(xié)同學(xué)習(xí),通過多網(wǎng)絡(luò)的互相監(jiān)督增強偽標(biāo)簽的準確性。證明了通過多個網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)的必要性。
本文提出了一種利用聯(lián)邦學(xué)習(xí)框架進行無監(jiān)督域車輛重新識別的方法。該方法利用邊緣計算單元對具有不同網(wǎng)絡(luò)架構(gòu)的多個模型進行預(yù)訓(xùn)練。經(jīng)過訓(xùn)練,每個計算單元將模型參數(shù)傳輸?shù)街鞣?wù)器。在服務(wù)器中,多個模型被聚合,并利用未標(biāo)記的目標(biāo)域樣本進行重復(fù)的協(xié)作學(xué)習(xí),以適應(yīng)其他模型。實驗結(jié)果表明,該方法有效提高了車輛重新識別模型的識別能力。