劉世豪
(河北工程大學(xué),河北邯鄲 056000)
車輛重識(shí)別是智能交通系統(tǒng)的前沿研究課題,旨在識(shí)別在多個(gè)非重疊跨域攝像頭拍攝的車輛圖像中的同一輛車。盡管車輛重識(shí)別已取得了一些進(jìn)展,但在實(shí)際應(yīng)用中仍存在以下局限性:
傳統(tǒng)車輛重識(shí)別算法采用有監(jiān)督的訓(xùn)練方式,但標(biāo)注成本高,需尋求高效的無(wú)監(jiān)督方式;不同域的偏差會(huì)導(dǎo)致源域模型在目標(biāo)域的測(cè)試準(zhǔn)確率下降,無(wú)法直接應(yīng)用于新的未知域;不同區(qū)域的圖像來(lái)自不同攝像頭,路側(cè)計(jì)算能力有限,無(wú)法實(shí)時(shí)更新模型。
本文提出了一種基于聯(lián)邦學(xué)習(xí)框架[1]的無(wú)監(jiān)督領(lǐng)域自適應(yīng)車輛重識(shí)別方法。該方法通過(guò)有監(jiān)督預(yù)訓(xùn)練源域數(shù)據(jù)和無(wú)監(jiān)督訓(xùn)練目標(biāo)域數(shù)據(jù)來(lái)解決以上問(wèn)題,并可以動(dòng)態(tài)聚合多個(gè)預(yù)訓(xùn)練模型以實(shí)現(xiàn)相互適應(yīng)。使用聯(lián)邦學(xué)習(xí)結(jié)構(gòu),在邊緣計(jì)算單元中部署不同結(jié)構(gòu)的骨干網(wǎng)進(jìn)行局部訓(xùn)練。在服務(wù)器中,多個(gè)模型通過(guò)協(xié)同學(xué)習(xí)進(jìn)行聚合并相互適應(yīng),以獲得最優(yōu)參數(shù)。

圖1 聯(lián)邦學(xué)習(xí)的無(wú)監(jiān)督識(shí)別框架
本文使用聯(lián)邦學(xué)習(xí)技術(shù)進(jìn)行車輛重識(shí)別。在深度學(xué)習(xí)模型訓(xùn)練階段,采用了源域到目標(biāo)域的模型集成方法,該方法包含了源域監(jiān)督學(xué)習(xí)和目標(biāo)域無(wú)監(jiān)督適應(yīng)。
如圖1 所示,本方法采用三層結(jié)構(gòu)。最高層結(jié)構(gòu)是中央服務(wù)器,具有高性能計(jì)算和數(shù)據(jù)共享能力,能夠執(zhí)行全局緩存和聚合計(jì)算任務(wù)。中間層有多個(gè)邊緣計(jì)算單元,每個(gè)采用不同的CNN 網(wǎng)絡(luò)結(jié)構(gòu),負(fù)責(zé)訓(xùn)練重識(shí)別模型參數(shù)并上傳中央服務(wù)器。底層是若干監(jiān)控?cái)z像頭,每個(gè)區(qū)域的攝像頭歸屬于該區(qū)域的邊緣計(jì)算單元,將采集到的車輛圖像原始數(shù)據(jù)上傳到邊緣計(jì)算單元中。
在模型中,邊緣計(jì)算單元會(huì)接收到本地?cái)?shù)據(jù)采集設(shè)備采集的圖像數(shù)據(jù),并使用這些數(shù)據(jù)進(jìn)行模型訓(xùn)練。實(shí)驗(yàn)階段,本文使用帶有標(biāo)簽的源域數(shù)據(jù)的模型預(yù)訓(xùn)練和不帶標(biāo)簽的目標(biāo)域數(shù)據(jù)的模型訓(xùn)練相結(jié)合的方式對(duì)本地模型進(jìn)行無(wú)監(jiān)督領(lǐng)域自適應(yīng)的模型訓(xùn)練。
本文將源域數(shù)據(jù)記為SD:


本文將帶有標(biāo)簽平滑效果的交叉熵?fù)p失函數(shù)定義為:
當(dāng)j=時(shí):
Ms是源域車輛標(biāo)識(shí)的數(shù)量,本文將σ設(shè)置為0.1。交叉熵?fù)p失表示圖像的網(wǎng)絡(luò)輸出的預(yù)測(cè)值和實(shí)際真實(shí)樣本標(biāo)簽之間的差異。
考慮到傳統(tǒng)形式的三重?fù)p失函數(shù)無(wú)法支持多網(wǎng)絡(luò)的軟標(biāo)簽訓(xùn)練,本文中采用soft-max 的三重?fù)p失。損失函數(shù)定義為:
2)目標(biāo)域無(wú)監(jiān)督學(xué)習(xí):由于目標(biāo)域上的圖像沒(méi)有進(jìn)行人工標(biāo)注,所以目標(biāo)域無(wú)監(jiān)督的學(xué)習(xí)過(guò)程由一個(gè)基于聚類的偽標(biāo)簽生成過(guò)程和一個(gè)特征學(xué)習(xí)過(guò)程組成,如圖2所示。訓(xùn)練共三個(gè)步驟:目標(biāo)域圖像的特征提取;將提取的特征進(jìn)行聚類分簇;將聚類生成的簇用作偽標(biāo)簽對(duì)模型進(jìn)行訓(xùn)練。


②特征進(jìn)行聚類分簇:在聚類階段使用k-means的聚類方法。
③模型訓(xùn)練:將聚類生成的簇用作偽標(biāo)簽對(duì)模型進(jìn)行訓(xùn)練。

圖2 無(wú)監(jiān)督學(xué)習(xí)流程
為了在聚類的過(guò)程中獲得穩(wěn)定的偽標(biāo)簽,本文引入身份損失函數(shù)和三重?fù)p失函數(shù)組成的決策損失函數(shù)。身份損失定義為具有標(biāo)簽平滑的交叉熵?fù)p失,這里的三元組損失函數(shù)與監(jiān)督學(xué)習(xí)中的保持一致。整體聚類決策損失函數(shù)可以表示為:
針對(duì)不同模型間的獨(dú)立性,本文在每個(gè)計(jì)算單元向中央服務(wù)器提交參數(shù)的過(guò)程中引入時(shí)間平均模型。中央服務(wù)器使用經(jīng)過(guò)時(shí)間平均的模型參數(shù)來(lái)對(duì)其他網(wǎng)絡(luò)進(jìn)行監(jiān)督訓(xùn)練,減小因?qū)嶒?yàn)參數(shù)不穩(wěn)定對(duì)整個(gè)模型訓(xùn)練的影響。通過(guò)時(shí)間平均模型得到的參數(shù)定義為:


圖3 服務(wù)器上的模型聚合
圖3展示了本文提出的基于聯(lián)邦學(xué)習(xí)的多網(wǎng)絡(luò)協(xié)同學(xué)習(xí)模型。邊緣計(jì)算單元中部署的網(wǎng)絡(luò)使用硬偽標(biāo)簽進(jìn)行監(jiān)督模型訓(xùn)練,從而能夠捕獲訓(xùn)練數(shù)據(jù)的分布。使用中央服務(wù)器下發(fā)的硬偽標(biāo)簽和本地模型聚類產(chǎn)生的在線軟偽標(biāo)簽共同訓(xùn)練協(xié)作網(wǎng)絡(luò)。通過(guò)使用在線硬偽標(biāo)簽訓(xùn)練邊緣計(jì)算單元上的網(wǎng)絡(luò),可以迭代改進(jìn)學(xué)習(xí)的特征表示,提供更準(zhǔn)確的軟偽標(biāo)簽,并進(jìn)一步提高學(xué)習(xí)特征的鑒別性。
對(duì)于每個(gè)邊緣計(jì)算單元網(wǎng)絡(luò)模型,本文將其他模型的時(shí)間平均模型和當(dāng)前網(wǎng)絡(luò)一次的分類預(yù)測(cè)模型之間的交叉熵?fù)p失定義為相互身份損失,某一個(gè)模型的相互身份損失設(shè)置為所有的其他模型在學(xué)習(xí)該模型時(shí)損失的平均值。將其表示為:
整個(gè)模型的相互身份損失可以定義為所有模型Mk相互身份損失的平均值:
另外,在對(duì)不同邊緣計(jì)算單元上傳的網(wǎng)絡(luò)模型預(yù)測(cè)進(jìn)行聚合時(shí),考慮到由于網(wǎng)絡(luò)結(jié)構(gòu)的差異,可能造成聚合不收斂。針對(duì)聚合過(guò)程中的相互三元組損失,本文將其他模型在學(xué)習(xí)某一模型之間的相互三元損失定義為:
綜上所述,對(duì)于中央服務(wù)器中訓(xùn)練網(wǎng)絡(luò)的損失函數(shù)為:
為了適應(yīng)不同網(wǎng)絡(luò)模型的異質(zhì)性,本文引入了一種權(quán)重正則化模塊。它根據(jù)每個(gè)邊緣計(jì)算單元網(wǎng)絡(luò)模型的集群間和集群內(nèi)分散度來(lái)調(diào)制不同模型的權(quán)重值。網(wǎng)絡(luò)模型在提取圖像特征后,用聚類算法將所有樣本分組為Mt,聚類為C。每個(gè)模型的權(quán)重可定義為聚類間散點(diǎn)和聚類內(nèi)散點(diǎn)之和的比值,以此得到每個(gè)網(wǎng)絡(luò)模型的權(quán)值。在協(xié)同學(xué)習(xí)的過(guò)程中,該權(quán)值表示中央服務(wù)器對(duì)各邊緣計(jì)算單元提交的模型參數(shù)進(jìn)行融合時(shí)的置信度。簇Ci的簇內(nèi)散度可以計(jì)算為:
μi是簇Ci的平均特征,表示Ci中的特征個(gè)數(shù),簇間散度的定義為:
μ表示所有訓(xùn)練目標(biāo)域樣本的平均特征。簇間散度與簇內(nèi)散度之和的比率R可以定義為:
如果一個(gè)模型具有較好的識(shí)別能力,則當(dāng)簇間散度較大或簇內(nèi)散度越小時(shí),R的標(biāo)量就會(huì)越大。
對(duì)于主服務(wù)器中的動(dòng)態(tài)聚合,在每個(gè)迭代的特征學(xué)習(xí)之前,每一個(gè)模型Mk的權(quán)重wk可以定義為R的均值歸一化。所以對(duì)上述互相關(guān)身份損失和互相關(guān)三重?fù)p失可以重新定義為:
很多企業(yè)管理者對(duì)審計(jì)價(jià)格、經(jīng)濟(jì)合同的流程并不了解,使得要么審計(jì)者并不能自如的進(jìn)行評(píng)估審核,要么使得經(jīng)費(fèi)濫用嚴(yán)重,造成重大損失。企業(yè)只是單方面的重視各類活動(dòng)的事后經(jīng)濟(jì)審計(jì),忽略了事前預(yù)算審計(jì)的重要性,許多經(jīng)費(fèi)使用者套用經(jīng)費(fèi)的現(xiàn)象依舊存在,并且依舊嚴(yán)峻。另外,一些人對(duì)于各類企劃的預(yù)算編制沒(méi)有節(jié)制[2],使得最終使用的經(jīng)費(fèi)與當(dāng)初的預(yù)算有著很大的偏差,導(dǎo)致出現(xiàn)很大的浪費(fèi)。
通過(guò)權(quán)重正則化方案,中央服務(wù)器中調(diào)節(jié)了每個(gè)邊緣計(jì)算單元的權(quán)重,以促進(jìn)在目標(biāo)領(lǐng)域的識(shí)別。在訓(xùn)練過(guò)程,將硬偽標(biāo)簽和軟標(biāo)簽與提出的軟損失相結(jié)合,對(duì)多個(gè)邊緣計(jì)算單元進(jìn)行訓(xùn)練。
本文采用DenseNet-121、ResNet-50 和Inceptionv3作為三個(gè)分支。使用骨干網(wǎng)絡(luò)與SE注意力機(jī)制融合來(lái)提取圖像特征。對(duì)于訓(xùn)練集的每個(gè)標(biāo)識(shí),用隨機(jī)選擇的車輛和隨機(jī)采樣的圖像進(jìn)行采樣,用于計(jì)算批處理三聯(lián)體損失。使用權(quán)重衰減為0.000 5 的Adam衰減函數(shù)。設(shè)置初始學(xué)習(xí)率為0.000 35,在總共80個(gè)epoch的訓(xùn)練中,在第40個(gè)epoch和第70個(gè)epoch達(dá)到之前值的1/10。
在目標(biāo)域訓(xùn)練的過(guò)程中,共有100 個(gè)訓(xùn)練迭代過(guò)程,學(xué)習(xí)率設(shè)置為0.000 35。在每一次訓(xùn)練迭代過(guò)程中都進(jìn)行一次500個(gè)集群的聚類,一次訓(xùn)練迭代過(guò)程由800個(gè)訓(xùn)練迭代組成。
將本文提出的算法與現(xiàn)有具體有代表性的無(wú)監(jiān)督領(lǐng)域自適應(yīng)的車輛重識(shí)別算法進(jìn)行比較[4]。對(duì)比算法如下:
①FACT:該算法使用車輛的顯著特征和卷積神經(jīng)網(wǎng)絡(luò)提取的GoogleNet 深度特征進(jìn)行融合作為偽標(biāo)簽進(jìn)行無(wú)標(biāo)簽?zāi)繕?biāo)域的車輛重識(shí)別[5]。
②MixedDiff+CCL:該算法利用雙分支深度卷積網(wǎng)絡(luò)將原始車輛圖像投影到歐幾里得空間中,其中距離可以直接用來(lái)度量任意兩輛車輛的相似性,實(shí)現(xiàn)車輛重識(shí)別任務(wù)。
③PUL:該算法使用一種局部正則化的方法,將局部特征和非局部特征集成到一個(gè)統(tǒng)一的架構(gòu)中。
⑤CycleGAN:該算法提出了多對(duì)多映射的方法克服了傳統(tǒng)一對(duì)一映射的局限性。
⑥D(zhuǎn)irectTransfer:該方法使用已有的網(wǎng)絡(luò)結(jié)構(gòu)在源域數(shù)據(jù)上進(jìn)行訓(xùn)練得到網(wǎng)絡(luò)模型后,直接在目標(biāo)域上進(jìn)行測(cè)試。
⑦VR-PROUD:該算法結(jié)合圖像的多種特征,通過(guò)兩個(gè)漸進(jìn)式程序考慮車輛重新識(shí)別。
⑧PAL:該算法基于FDNet的多標(biāo)簽學(xué)習(xí)算法,為目標(biāo)域中未標(biāo)記的樣本分配多個(gè)潛在標(biāo)簽,通過(guò)特征融合形成偽標(biāo)簽。
本文在VeRi-776 和VehicleID[6]兩個(gè)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),將兩個(gè)數(shù)據(jù)集進(jìn)行交叉學(xué)習(xí)。VehicleID作為源域,VeRi-776作為目標(biāo)。實(shí)驗(yàn)結(jié)果如表1所示:

表1 VeRi-776測(cè)試集對(duì)比結(jié)果
VeRi-776作為源域,VehicleID 作為目標(biāo)域,實(shí)驗(yàn)結(jié)果如表2所示。

表2 VehicleID 測(cè)試集對(duì)比結(jié)果
通過(guò)觀察表1、表2,在本算法與FACT 和Mixed-Diff+CCL算法的比較中,本模型mAP和Rank值[7]都有了很大程度的提升。這是因?yàn)镕ACT使用淺層顯著特征,MixedDiff+CCL 對(duì)淺層顯著特征進(jìn)行簡(jiǎn)單的度量學(xué)習(xí)。由此可知對(duì)圖像進(jìn)行深層次的特征提取的優(yōu)勢(shì)。與VR-PROUD 和PUL 進(jìn)行比較,各指標(biāo)均有提升。這是因?yàn)檫@兩類算法中k-means 聚類模塊在形成偽標(biāo)簽時(shí),簇的數(shù)量未知,會(huì)存在漏檢。與Direct-Transfer 進(jìn)行比較,相比直接將源域上的訓(xùn)練模型應(yīng)用到目標(biāo)域的方法,本方法各項(xiàng)指標(biāo)上都超越了很多。以上證明了本方法可以滿足跨域車輛重識(shí)別的任務(wù)。
與CycleGAN 算法相比,本算法各項(xiàng)指標(biāo)均有提升。這是由于本算法通過(guò)迭代后,中央服務(wù)器對(duì)于各邊緣計(jì)算單元提供的偽標(biāo)簽進(jìn)行聚合,得到新的偽標(biāo)簽使得在訓(xùn)練時(shí)目標(biāo)區(qū)域的真實(shí)樣本能更可靠地生成特征。結(jié)果表明了目標(biāo)域可靠偽標(biāo)簽的優(yōu)越性。
對(duì)比PAL算法,本算法各項(xiàng)指標(biāo)均有提升。這是因?yàn)樵撍惴m然同樣使用偽造標(biāo)簽法進(jìn)行無(wú)監(jiān)督訓(xùn)練,但骨干網(wǎng)方面只使用了Resnet-50。本文使用了多個(gè)邊緣網(wǎng)絡(luò)進(jìn)行協(xié)同學(xué)習(xí),通過(guò)多網(wǎng)絡(luò)的互相監(jiān)督增強(qiáng)偽標(biāo)簽的準(zhǔn)確性。證明了通過(guò)多個(gè)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)的必要性。
本文提出了一種利用聯(lián)邦學(xué)習(xí)框架進(jìn)行無(wú)監(jiān)督域車輛重新識(shí)別的方法。該方法利用邊緣計(jì)算單元對(duì)具有不同網(wǎng)絡(luò)架構(gòu)的多個(gè)模型進(jìn)行預(yù)訓(xùn)練。經(jīng)過(guò)訓(xùn)練,每個(gè)計(jì)算單元將模型參數(shù)傳輸?shù)街鞣?wù)器。在服務(wù)器中,多個(gè)模型被聚合,并利用未標(biāo)記的目標(biāo)域樣本進(jìn)行重復(fù)的協(xié)作學(xué)習(xí),以適應(yīng)其他模型。實(shí)驗(yàn)結(jié)果表明,該方法有效提高了車輛重新識(shí)別模型的識(shí)別能力。