劉曉晨,張 濤
(1. 東南大學(xué)儀器科學(xué)與工程學(xué)院,南京 210096;2.東南大學(xué)微慣性儀表與先進(jìn)導(dǎo)航技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,南京 210096)
光流作為一種描述物體運(yùn)動(dòng)的方法,受啟發(fā)于自然界。蜜蜂等昆蟲(chóng)的導(dǎo)航與著陸等行為均依賴于其復(fù)眼中的光流。光流估計(jì)是計(jì)算機(jī)視覺(jué)研究中一項(xiàng)基礎(chǔ)且重要的任務(wù),用于獲得連續(xù)兩幀圖像中對(duì)應(yīng)物體的像素級(jí)別的移動(dòng)。光流分為稠密光流和稀疏光流。稀疏光流只對(duì)每個(gè)感興趣點(diǎn)周?chē)〈翱趦?nèi)的局部信息進(jìn)行光流求解,得到的光流數(shù)量遠(yuǎn)小于圖像尺寸。而稠密光流則對(duì)圖像上每一個(gè)像素點(diǎn)進(jìn)行一次光流解算,得到的光流數(shù)量等于圖像尺寸。因此,稠密光流包含了更多的信息,相較于稀疏光流有更好的適用性。目前,光流在導(dǎo)航、運(yùn)動(dòng)檢測(cè)和目標(biāo)跟蹤等任務(wù)中擁有廣泛的應(yīng)用場(chǎng)景。經(jīng)典的光流估計(jì)方法大多通過(guò)最小化以亮度恒定和空間平滑假設(shè)為代表的能量函數(shù)來(lái)求解目標(biāo)光流,如1981年B.Horn和B.G.Schunck提出的HS光流算法和B.D.Lucas和T.Kanade提出的LK光流算法。隨著這兩種光流算法的出現(xiàn),同時(shí)面向無(wú)人機(jī)和無(wú)人車(chē)等設(shè)備的自主導(dǎo)航需求,越來(lái)越多的學(xué)者開(kāi)始利用光流求解導(dǎo)航參數(shù)。唐大全等利用ORB(Oriented FAST and Rotated BRIEF)優(yōu)化LK光流算法,提升了無(wú)人機(jī)速度估計(jì)的精度。Yang J.等通過(guò)最小化一個(gè)包含分段常數(shù)模型假設(shè)和光流場(chǎng)連續(xù)性約束假設(shè)的全新能量函數(shù),獲得了在復(fù)雜運(yùn)動(dòng)背景下的物體光流信息。閆寶龍等利用模糊核均值算法對(duì)金字塔LK算法得到的稀疏光流進(jìn)行聚類(lèi),減少由于光照變化等不利條件對(duì)光流野值造成的影響,提升了載體速度的估計(jì)精度。雖然在很長(zhǎng)的一段時(shí)間內(nèi),以HS和LK光流算法為代表的經(jīng)典變分方法成為求解光流的主流方法,但其針對(duì)大位移、運(yùn)動(dòng)遮擋與光照變化等條件下的光流解算精度還需進(jìn)一步提高;同時(shí),由于存在大量的迭代計(jì)算,導(dǎo)致變分模型法實(shí)時(shí)性較差,進(jìn)而限制了該方法的應(yīng)用。
隨著高性能圖像處理單元(Graphics Proces-sing Unit,GPU)的快速發(fā)展,為基于深度學(xué)習(xí)的光流估計(jì)方法提供了硬件基礎(chǔ)。Flownet開(kāi)創(chuàng)了利用有監(jiān)督卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)估計(jì)光流的先河,啟發(fā)了越來(lái)越多的研究者開(kāi)展基于深度學(xué)習(xí)光流估計(jì)方法的研究。作為里程碑式的工作,F(xiàn)lownet2.0針對(duì)Flownet光流估計(jì)精度不高等問(wèn)題,利用網(wǎng)絡(luò)堆疊實(shí)現(xiàn)了更加復(fù)雜的結(jié)構(gòu),將基于深度學(xué)習(xí)法的光流估計(jì)精度提升到了和經(jīng)典變分法一致的水準(zhǔn),但也導(dǎo)致網(wǎng)絡(luò)的實(shí)時(shí)性較差。A.Ranjan等將空間金字塔模型和深度學(xué)習(xí)模型相結(jié)合,提出了一個(gè)名為Spynet的精簡(jiǎn)化網(wǎng)絡(luò),實(shí)現(xiàn)了光流由粗到精的估計(jì)。Zhai M.等利用空間金字塔中的兩種注意力模塊,自適應(yīng)地對(duì)網(wǎng)絡(luò)中的通道和空間特征進(jìn)行加權(quán),提高了光流的估計(jì)精度。雖然目前利用有監(jiān)督學(xué)習(xí)估計(jì)的光流精度已超過(guò)變分方法,實(shí)時(shí)性也較變分方法有所提高,但大多數(shù)基于深度學(xué)習(xí)的光流估計(jì)方法都需要對(duì)應(yīng)的逐像素的光流真值參與模型的訓(xùn)練,而光流真值的獲取工作異常繁瑣,因此合成數(shù)據(jù)集成為訓(xùn)練網(wǎng)絡(luò)所需樣本的主要來(lái)源。由于合成數(shù)據(jù)集與真實(shí)應(yīng)用環(huán)境存在差異,利用合成數(shù)據(jù)集訓(xùn)練出來(lái)的網(wǎng)絡(luò)在真實(shí)環(huán)境中的表現(xiàn)并不太理想。因此,無(wú)監(jiān)督學(xué)習(xí)的方法成為了光流估計(jì)領(lǐng)域的熱點(diǎn)。
基于無(wú)監(jiān)督學(xué)習(xí)的光流估計(jì)方法大多采用新的損失函數(shù)來(lái)指導(dǎo)網(wǎng)絡(luò)實(shí)現(xiàn)無(wú)監(jiān)督訓(xùn)練。J.J.Yu等受經(jīng)典變分理論的啟發(fā),在損失函數(shù)中引入亮度恒定和運(yùn)動(dòng)平滑項(xiàng),使光流估計(jì)網(wǎng)絡(luò)實(shí)現(xiàn)了無(wú)監(jiān)督的訓(xùn)練。Yang B.等基于前后向一致性檢驗(yàn)和魯棒Census變換,設(shè)計(jì)了一個(gè)全新的損失函數(shù),實(shí)現(xiàn)了光流的無(wú)監(jiān)督估計(jì)。Liu P.等基于知識(shí)蒸餾技術(shù),提出了一種無(wú)監(jiān)督方案,利用教師網(wǎng)絡(luò)指導(dǎo)學(xué)生網(wǎng)絡(luò)學(xué)習(xí)光流估計(jì)。雖然無(wú)監(jiān)督學(xué)習(xí)方案無(wú)需光流真值參加網(wǎng)絡(luò)的訓(xùn)練,且在某些特定場(chǎng)景中的性能可以超過(guò)有監(jiān)督學(xué)習(xí)(如簡(jiǎn)單運(yùn)動(dòng)場(chǎng)景),但在稍微復(fù)雜環(huán)境或運(yùn)動(dòng)中無(wú)監(jiān)督方法的精度仍然不足。同時(shí),僅僅利用改進(jìn)的損失函數(shù)對(duì)網(wǎng)絡(luò)進(jìn)行指導(dǎo),對(duì)光流估計(jì)精度的提升是有限的,因此,一些研究人員將重點(diǎn)放在了生成對(duì)抗網(wǎng)絡(luò)(Ge-nerative Adversarial Networks,GAN)上。
在零和博弈思想的啟發(fā)下,GAN最初由I.Good-fellow于2014年提出,由生成器和判別器之間的對(duì)抗性訓(xùn)練來(lái)實(shí)現(xiàn)。GAN在圖像生成、風(fēng)格轉(zhuǎn)化和超分辨率生成等計(jì)算機(jī)視覺(jué)領(lǐng)域有著巨大的潛力。為了進(jìn)一步提高光流估計(jì)的精度,一些工作從GAN中借鑒對(duì)抗機(jī)制以取代無(wú)監(jiān)督方法中的損失函數(shù),取得了具有競(jìng)爭(zhēng)意義的成果。R.K.Thakur等提出了一種基于條件生成對(duì)抗網(wǎng)絡(luò)的場(chǎng)景光流估計(jì)方案,該方案可以從立體圖像中獲取場(chǎng)景光流。為了降低無(wú)監(jiān)督方法中亮度恒定和空間平滑性先驗(yàn)的局限性,文獻(xiàn)[18]采用對(duì)抗損失和GAN結(jié)構(gòu)代替先驗(yàn)假設(shè)估計(jì)光流。在此基礎(chǔ)上,Che T.等在GAN中嵌入一個(gè)倒置網(wǎng)絡(luò),用于獲得對(duì)稱(chēng)光流,進(jìn)而提升光流估計(jì)的準(zhǔn)確性。盡管其中一些方法是半監(jiān)督方法,但這些方法同樣需要光流真值來(lái)更新判別器,這依舊依賴于帶有真值的光流數(shù)據(jù)集。同時(shí)GAN的訓(xùn)練不穩(wěn)定,容易陷入模式崩塌(Mode Collapse),導(dǎo)致訓(xùn)練失敗。
為充分發(fā)揮GAN在光流估計(jì)中的優(yōu)點(diǎn),并克服上述不足,本文提出了一種基于循環(huán)生成對(duì)抗網(wǎng)絡(luò)(Cycle-GAN)的無(wú)監(jiān)督光流估計(jì)方法。首先,利用循環(huán)對(duì)抗機(jī)制,在網(wǎng)絡(luò)訓(xùn)練階段擺脫對(duì)光流真值的依賴,實(shí)現(xiàn)無(wú)監(jiān)督訓(xùn)練。其次,為提升光流估計(jì)精度,提出了一種雙判別器機(jī)制(Dual Discrimina-tor Mechanism,DDM),對(duì)生成器生成的光流在底層和高層特征中分別進(jìn)行鑒別,迫使生成器生成更加符合光流原始分布的數(shù)據(jù)。然后,為降低Cycle-GAN陷入模式崩塌的風(fēng)險(xiǎn),本文將Spynet作為教師網(wǎng)絡(luò),在Cycle-GAN訓(xùn)練的前期,指引其訓(xùn)練方向,提升訓(xùn)練效率。最后,改進(jìn)Cycle-GAN損失函數(shù),利用光流一致性損失來(lái)進(jìn)一步提高光流估計(jì)的精度,通過(guò)輪廓一致性損失來(lái)細(xì)化前景物體輪廓的光流信息。
GAN是一種借鑒零和博弈思想而產(chǎn)生的深度學(xué)習(xí)網(wǎng)絡(luò)。GAN中最核心的兩部分是生成器和判別器。生成器負(fù)責(zé)按照要求生成數(shù)據(jù)樣本,以期利用生成的樣本欺騙判別器。判別器則竭盡所能將生成器生成的樣本和真實(shí)樣本區(qū)分開(kāi)。生成器和判別器以此種方式進(jìn)行對(duì)抗訓(xùn)練,當(dāng)判別器無(wú)法準(zhǔn)確區(qū)分?jǐn)?shù)據(jù)來(lái)源時(shí),即達(dá)到納什平衡,完成訓(xùn)練。
為降低網(wǎng)絡(luò)在訓(xùn)練階段對(duì)光流真值的依賴,本文利用改進(jìn)Cycle-GAN進(jìn)行運(yùn)動(dòng)物體的光流場(chǎng)的無(wú)監(jiān)督獲取。經(jīng)典的Cycle-GAN在GAN的基礎(chǔ)上,引入了額外一條對(duì)稱(chēng)的鏡像分支,兩條分支對(duì)同一任務(wù)進(jìn)行循環(huán)求解,進(jìn)而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的無(wú)監(jiān)督訓(xùn)練。本文提出的改進(jìn)Cycle-GAN的整體框架如圖1所示。為方便網(wǎng)絡(luò)訓(xùn)練,本文將兩張待求解光流的RGB圖片和在通道維度拼接后生成的6維張量直接作為生成器的輸入。如圖1所示,在Cycle-GAN中,Real_A與Real_B是無(wú)對(duì)應(yīng)關(guān)系的兩類(lèi)圖片,在本文中,Real_A為兩幀共6維待求解光流圖片,其包含了光流信息;Real_B為任意真實(shí)光流可視化圖,主要負(fù)責(zé)為網(wǎng)絡(luò)指明訓(xùn)練的方向。循環(huán)生成對(duì)抗網(wǎng)絡(luò)由兩條完全對(duì)稱(chēng)的分支組成,為簡(jiǎn)化說(shuō)明,只對(duì)Real_A到Rec_A進(jìn)行解釋。首先,Real_A經(jīng)過(guò)生成器生成一個(gè)二維的光流矩陣,而后經(jīng)過(guò)光流可視化操作,將二維光流矩陣轉(zhuǎn)化為三維圖像,即Fake_B,也就是說(shuō),生成器負(fù)責(zé)由原始圖向光流矩陣進(jìn)行轉(zhuǎn)換。而后將得到的Fake_B與Real_B同時(shí)輸入到雙判別器中,雙判別器同時(shí)對(duì)圖像來(lái)源進(jìn)行判斷。若來(lái)自生成器,則盡可能將其標(biāo)記為0,若來(lái)自Real_B,則盡可能將其標(biāo)記為1。此后,將Fake_B接著輸入到生成器中,反向生成類(lèi)似于Real_A的圖片Rec_A,即生成器負(fù)責(zé)將圖片由光流圖向原始圖轉(zhuǎn)換。同理,在另一條支路中,Real_B也經(jīng)歷了兩個(gè)生成器的循環(huán)轉(zhuǎn)換,在此不再贅述。循環(huán)生成對(duì)抗網(wǎng)絡(luò)的這種循環(huán)生成機(jī)制,使其具有了無(wú)監(jiān)督學(xué)習(xí)的能力,不需要一一對(duì)應(yīng)的樣本真值,大大降低了訓(xùn)練樣本的獲取難度。
圖1 本文提出的用于光流估計(jì)的改進(jìn)Cycle-GANFig.1 The improved Cycle-GAN for optical flow estimation
在GAN的訓(xùn)練過(guò)程中,生成器極易產(chǎn)生單個(gè)或者有限個(gè)模式的圖片,使得不同的樣本輸入生成器得到的輸出是大致相同的,即產(chǎn)生了模式崩塌。為降低模式崩塌的風(fēng)險(xiǎn),本文在Cycle-GAN的訓(xùn)練過(guò)程中,引入事先訓(xùn)練好的Spynet光流網(wǎng)絡(luò)作為教師網(wǎng)絡(luò),在訓(xùn)練初期指引生成器快速、高效地逼近目標(biāo)域,在節(jié)省訓(xùn)練時(shí)間的基礎(chǔ)上,增加模型的魯棒性,降低陷入模式崩塌的風(fēng)險(xiǎn)。具體細(xì)節(jié)將在后續(xù)介紹。
為提升生成器生成的光流精度,本文提出了雙判別器機(jī)制來(lái)迫使生成器生成更高質(zhì)量的光流信息。雙判別器結(jié)構(gòu)如圖2所示。判別器與判別器網(wǎng)絡(luò)結(jié)構(gòu)大不相同,經(jīng)過(guò)3層3×3卷積后,特征被提取到256維,而后利用1層3×3卷積對(duì)圖片的來(lái)源進(jìn)行判斷,True代表圖像來(lái)源于Real_B,F(xiàn)alse則代表圖像來(lái)源于生成器生成的樣本Fake_B。判別器結(jié)構(gòu)較為簡(jiǎn)單,所提取的特征維度較低,只能感受到底層特征,因此被用來(lái)針對(duì)圖片的輪廓、線條以及顏色等底層特征進(jìn)行圖像判別。相反,在判別器中,經(jīng)過(guò)4層卷積后,特征被提取到了512維,而后經(jīng)過(guò)6層殘差連接模塊進(jìn)行特征的進(jìn)一步提取與抽象,最后經(jīng)過(guò)1層3×3卷積輸出一個(gè)判別結(jié)果。判別器結(jié)構(gòu)較為復(fù)雜,能提取圖像中的高層特征,因此被用來(lái)針對(duì)圖像的語(yǔ)義特征進(jìn)行鑒別。綜上,在網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,將生成器經(jīng)圖像可視化得到的Fake_B和Real_B輸入給雙判別器,雙判別器中的和分別從底層特征和高層特征對(duì)圖像來(lái)源進(jìn)行鑒別,如圖像來(lái)源于Real_B,則需要和同時(shí)輸出為T(mén)rue,否則為False。
圖2 本文提出的雙判別器機(jī)制Fig.2 The proposed dual discriminator mechanism
為提升雙判別器中對(duì)高層語(yǔ)義特征的判別能力,本文設(shè)計(jì)了一個(gè)殘差連接模塊,如圖3所示。輸入-1被分為2路,分支1為跳躍連接;分支2經(jīng)過(guò)3×3卷積、歸一化和ReLU激活函數(shù)激活后,輸入到1個(gè)3×3卷積與歸一化層組成的模塊中,而后與分支1中的原始輸入-1相加,作為最終的輸出。采用殘差模塊的作用在于可以增加網(wǎng)絡(luò)深度的同時(shí),使得網(wǎng)絡(luò)參數(shù)可以有效地進(jìn)行傳播,進(jìn)而減少梯度消失的風(fēng)險(xiǎn)。
圖3 殘差連接模塊Fig.3 The structure of Resnet-Block
如前所述,Rec_A是由Real_A經(jīng)生成器和生成的,而Fake_B為所需光流圖,為保證Fake_B在語(yǔ)義上的正確性,需保證Rec_A與Real_A盡可能地相似,以和表示Real_A和Real_B,則有循環(huán)一致性損失如下
(1)
其中,代表數(shù)據(jù)的期望值,本文提出的雙判別器機(jī)制中,包含兩組4個(gè)判別器(,和,),以,為例,循環(huán)生成對(duì)抗網(wǎng)絡(luò)對(duì)抗損失函數(shù)如下
(,,,,)=~()[log()+
log()]+~()[log(1-(()))+
log(1-(()))]
(2)
從對(duì)抗損失中可以看出,雙判別器致力于最大化該損失,即將生成器生成的虛假圖像與真實(shí)圖像盡可能地分辨出來(lái)。而生成器則通過(guò)最小化對(duì)抗損失函數(shù),以達(dá)到蒙騙判別器的目的。
圖4所示為用于表示光流大小與方向的色輪圖。該色輪基于HIS(Hue-Intensity-Saturation)顏色空間,沿切向旋轉(zhuǎn)時(shí),代表了光流不同的方向;從色輪圓心沿徑向向外飽和度增加,則代表了光流的大小逐漸增加。因此,可以根據(jù)色輪一一確定光流圖中的運(yùn)動(dòng)方向與大小。光流的可視化轉(zhuǎn)換是以為基礎(chǔ),將中物體的運(yùn)動(dòng)利用HIS顏色空間展現(xiàn)出來(lái)?;诖?,本文結(jié)合光流的定義,引入光流一致性損失,具體定義如下
=((+,+)-(,))
(3)
其中,和代表網(wǎng)絡(luò)計(jì)算出的水平和垂直方向光流;和代表待求解光流的兩幅原始圖像;和分別為對(duì)應(yīng)圖片中的坐標(biāo);()=(+0001)為Charbonnier懲罰函數(shù),本文取05。光流的定義即為到中對(duì)應(yīng)像素的移動(dòng),因此,可通過(guò)光流一致性損失來(lái)優(yōu)化光流的求取精度。
圖4 光流色輪圖Fig.4 The color wheel for optical flow estimation
其次,光流圖中的物體輪廓信息是基于中運(yùn)動(dòng)物體的位置生成的,因此,引入輪廓一致性損失函數(shù)來(lái)優(yōu)化生成的光流圖中的物體相較于中對(duì)應(yīng)物體的輪廓細(xì)節(jié)。具體如下
=((()))-()
(4)
其中,代表對(duì)整幅圖進(jìn)行二值輪廓提取操作;代表對(duì)光流進(jìn)行可視化操作。
然后,本文引入Spynet作為教師網(wǎng)絡(luò),對(duì)生成器生成的光流進(jìn)行指導(dǎo)。由于本文中的教師網(wǎng)絡(luò)只負(fù)責(zé)對(duì)Cycle-GAN前期的訓(xùn)練指明方向,后續(xù)通過(guò)對(duì)抗機(jī)制不斷優(yōu)化自身精度,因此無(wú)需追求高精度網(wǎng)絡(luò)作為教師網(wǎng)絡(luò)。Spynet作為一種簡(jiǎn)單的光流估計(jì)網(wǎng)絡(luò),參數(shù)量少,可以降低對(duì)設(shè)備的計(jì)算需求,比較適合作為本文提出的網(wǎng)絡(luò)的教師網(wǎng)絡(luò)。深度學(xué)習(xí)的訓(xùn)練需要大量樣本數(shù)據(jù),大量訓(xùn)練數(shù)據(jù)的引入也導(dǎo)致了網(wǎng)絡(luò)訓(xùn)練的速度變慢,教師網(wǎng)絡(luò)的引入可以降低循環(huán)生成對(duì)抗網(wǎng)絡(luò)對(duì)訓(xùn)練樣本的依賴,提升訓(xùn)練速度,同時(shí)也可減少網(wǎng)絡(luò)陷入模式崩塌的風(fēng)險(xiǎn)。本文采用端點(diǎn)誤差(Endpoint Error,EPE)損失作為教師網(wǎng)絡(luò)的損失。
(5)
最終,本文提出的優(yōu)化之后的Cycle-GAN損失函數(shù)如下。
=
++++
(6)
其中,~表示權(quán)重系數(shù)。
Flyingchairs作為一款合成數(shù)據(jù)集,擁有22872組光流原始圖片和其對(duì)應(yīng)的真值數(shù)據(jù),是基于深度學(xué)習(xí)估計(jì)光流的重要數(shù)據(jù)集。為減輕新樣本采集壓力,本文采用該數(shù)據(jù)集對(duì)提出的改進(jìn)Cycle-GAN進(jìn)行訓(xùn)練。同時(shí),本文選取隨機(jī)的22000組光流原始圖像和隨機(jī)的10000組光流真值作為訓(xùn)練樣本,以此種方式打亂光流原始圖像和真值的對(duì)應(yīng)關(guān)系,從而驗(yàn)證網(wǎng)絡(luò)的無(wú)監(jiān)督訓(xùn)練方式。特別地,詳細(xì)的訓(xùn)練設(shè)備及參數(shù)信息如下:在訓(xùn)練設(shè)備方面,本文采用的服務(wù)器CPU為2塊英特爾至強(qiáng)E5-2698 V4,GPU為2塊Nvidia RTX3090,顯存為24GB*2,整機(jī)內(nèi)存為128GB,存儲(chǔ)為1TB SSD+4TB HDD;在訓(xùn)練參數(shù)方面,共訓(xùn)練1000個(gè)epoch,其中,前500個(gè)epoch為學(xué)習(xí)率固定,且大小為0.0002,后500個(gè)epoch學(xué)習(xí)率從0.0002不斷衰減,直到第1000個(gè)epoch時(shí)學(xué)習(xí)率衰減為0。損失函數(shù)中的權(quán)重為=4。同時(shí),教師網(wǎng)絡(luò)Spynet在前200個(gè)epoch起作用,且=2,在后800個(gè)epoch中=0,在上述配置中訓(xùn)練1個(gè)epoch時(shí)間大約為610s,batch size設(shè)為4,采用的深度學(xué)習(xí)框架為Pytorch。
在上述參數(shù)下完成訓(xùn)練后,為驗(yàn)證所提光流網(wǎng)絡(luò)的精度,本節(jié)引入額外五種SOTA(state-of-the-art)光流算法作為對(duì)比,其詳細(xì)信息如表1所示。利用Flyingchairs數(shù)據(jù)集、Sintel數(shù)據(jù)集以及KITTI-2012數(shù)據(jù)集進(jìn)行測(cè)試。其中,F(xiàn)lyingch-airs數(shù)據(jù)集將椅子模型和真實(shí)場(chǎng)景進(jìn)行結(jié)合,利用仿射變換得到椅子之間的光流真值,該數(shù)據(jù)集包含22232個(gè)用于訓(xùn)練的圖片對(duì)和640個(gè)用于測(cè)試的圖片對(duì)。MPI Sintel數(shù)據(jù)集分為Clean和Final兩個(gè)版本,來(lái)源于一個(gè)全部開(kāi)源的3D動(dòng)畫(huà)電影,分別提供1041對(duì)訓(xùn)練圖像和552對(duì)測(cè)試圖像。Clean版本包含的是只有光照變換的圖像,而Final版本則在Clean的基礎(chǔ)上添加了運(yùn)動(dòng)模糊和噪聲,因此,相對(duì)于Clean版本,F(xiàn)inal版本更能驗(yàn)證模型的魯棒性,這也是本文選擇Final版本作為測(cè)試集的主要原因。不同于前面2個(gè)合成數(shù)據(jù)集,KITTI-2012來(lái)源于真實(shí)世界,通過(guò)車(chē)載激光雷達(dá)獲取真實(shí)環(huán)境下的光流真值。該數(shù)據(jù)集的光流真值并不是逐像素的,而是通過(guò)采樣得到的半稠密光流。同時(shí),該數(shù)據(jù)集體量也較小,只包含194對(duì)光流幀。在不同數(shù)據(jù)集下得到的光流可視化結(jié)果如圖5~圖7所示。
表1 用于對(duì)比的光流算法
圖5 Flyingchairs數(shù)據(jù)集下的光流可視化對(duì)比圖Fig.5 Comparison of optical flow visualization on Flyingchairs dataset
圖6 Sintel-Final數(shù)據(jù)集下的光流可視化對(duì)比圖Fig.6 Comparison of optical flow visualization on Sintel-Final dataset
圖7 KITTI-2012數(shù)據(jù)集下的光流可視化對(duì)比圖Fig.7 Comparison of optical flow visualization on KITTI-2012 dataset
從圖5可以看出,DDFlow作為一種無(wú)監(jiān)督光流估計(jì)方法,其精度是弱于有監(jiān)督方法的,具體表現(xiàn)在椅子靠背處的光流細(xì)節(jié)信息明顯產(chǎn)生了丟失現(xiàn)象。Spynet雖然在椅子靠背處細(xì)節(jié)信息有所保留,但圖片中間有一部分光流估計(jì)錯(cuò)誤,導(dǎo)致可視化圖中的顏色與真值中相差較大。PWCnet和LiteFlownet3雖然精度弱于Flownet2.0,但其網(wǎng)絡(luò)參數(shù)明顯少于Flownet2.0,因此其精度也具有一定的競(jìng)爭(zhēng)性。本文提出的方法由于引入了對(duì)抗機(jī)制和雙判別器機(jī)制,使得光流估計(jì)較為準(zhǔn)確,同時(shí)由于損失函數(shù)的改進(jìn),使得細(xì)節(jié)信息保留得較為完好,與GT真值的差異最小。
從圖6所示的Sintel-Final數(shù)據(jù)集上的光流可視化對(duì)比結(jié)果中可以看到,相較于其他方法,本文的網(wǎng)絡(luò)有著更好的細(xì)節(jié)表現(xiàn),具體可從人物的頭發(fā)紋理和左上角的木板細(xì)節(jié)中體現(xiàn),這要?dú)w功于雙判別器機(jī)制與改進(jìn)的損失函數(shù)帶來(lái)的增益。在與教師網(wǎng)絡(luò)Spynet的對(duì)比中可以看出,所提出的網(wǎng)絡(luò)的結(jié)果已大幅優(yōu)于教師網(wǎng)絡(luò),這說(shuō)明生成器與判別器的對(duì)抗機(jī)制為光流估計(jì)精度的提升提供了前提。同樣的結(jié)論也可從KITTI-2012數(shù)據(jù)集中得出,如圖7所示,本文方法得到的前景光流更為突出,細(xì)節(jié)較為平滑,且光流方向與大小的精度也較高。為量化對(duì)比結(jié)果,本文利用EPE作為量化指標(biāo)(EPE數(shù)值越小,算法精度越高),對(duì)以上幾種算法進(jìn)行量化對(duì)比。與式(5)類(lèi)似,EPE計(jì)算方法如下。
(7)
其中,和分別代表圖像的長(zhǎng)和高;和分別代表求解出的水平和垂直方向上的光流;和則分別代表水平和垂直方向上的光流真值。所得幾種對(duì)比算法的EPE如表2所示。
表2 幾種算法在不同數(shù)據(jù)集上的EPE
為驗(yàn)證本文提出的光流估計(jì)方法改進(jìn)之處的有效性,本節(jié)開(kāi)展了消融實(shí)驗(yàn)。實(shí)驗(yàn)內(nèi)容分為以下四部分,原始Cycle-GAN(Original Cycle-GAN,OCG)、添加教師網(wǎng)絡(luò)的Cycle-GAN(Cycle-GAN with Teacher network,CG-T)、添加教師網(wǎng)絡(luò)和改進(jìn)損失函數(shù)的Cycle-GAN(Cycle-GAN with Teacher network and improved Loss function,CG-T-L),以及在CG-T-L基礎(chǔ)上添加雙判別器機(jī)制的本文算法(Ours)。需要特別說(shuō)明的是,由于教師網(wǎng)絡(luò)僅用于在初期為本文的Cycle-GAN光流估計(jì)網(wǎng)絡(luò)提供大致的訓(xùn)練方向,因此對(duì)其精度要求不高,本文使用的Spynet未針對(duì)任何特定數(shù)據(jù)集進(jìn)行微調(diào)與優(yōu)化,使用權(quán)重為在通用數(shù)據(jù)集上訓(xùn)練完成的原始權(quán)重。消融實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 消融對(duì)比實(shí)驗(yàn)結(jié)果Fig.8 Ablation comparison experiment results
從圖8可以看出,由于光流估計(jì)的復(fù)雜性,原始Cycle-GAN沒(méi)有很好地找到合適的映射關(guān)系,產(chǎn)生了模式崩塌現(xiàn)象,即無(wú)論每次輸入的圖片是否一樣,均產(chǎn)生圖6中類(lèi)似馬賽克一樣的結(jié)果,無(wú)法分辨前景和背景光流信息,導(dǎo)致光流解算失敗。當(dāng)引入教師網(wǎng)絡(luò)Spynet之后,在訓(xùn)練初期對(duì)原始Cycle-GAN進(jìn)行引導(dǎo),此時(shí)雖然光流解算誤差較大,但已能大致區(qū)分前景和背景信息,說(shuō)明教師網(wǎng)絡(luò)的引入有利于降低原始Cycle-GAN陷入模式崩塌的風(fēng)險(xiǎn)。然而,由于原始Cycle-GAN未對(duì)光流估計(jì)任務(wù)進(jìn)行任何優(yōu)化與改進(jìn),使得光流求解精度較低,誤差較大。當(dāng)在CG-T的基礎(chǔ)上引入本文所提的改進(jìn)損失函數(shù)之后,光流估計(jì)精度進(jìn)一步提升,在圖8中具體表現(xiàn)為,前景物體光流估計(jì)輪廓較為清晰,方向和大小較為準(zhǔn)確,背景光流估計(jì)精度與CG-T相比也有一定的提升,說(shuō)明損失函數(shù)的介入使得網(wǎng)絡(luò)更好地?cái)M合了輸入圖片與輸出光流之間的映射關(guān)系。但由于沒(méi)有對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,光流估計(jì)精度的提升有限,因此,CG-T-L的精度最終低于教師網(wǎng)絡(luò)Spynet的精度。當(dāng)在CG-T-L的基礎(chǔ)上引入雙判別器機(jī)制后,光流估計(jì)精度進(jìn)一步提升。在可視化圖中可以清晰地看出,所提出的方法精度已超過(guò)教師網(wǎng)絡(luò),這是由于雙判別器機(jī)制在底層和高層水平特征上對(duì)生成器生成的數(shù)據(jù)進(jìn)行鑒別,并迫使生成器提升自身的擬合精度。同時(shí),由于對(duì)抗機(jī)制的引入,也使得生成器與雙判別器在不斷迭代更新中逐漸變強(qiáng),最終實(shí)現(xiàn)優(yōu)于教師網(wǎng)絡(luò)的光流估計(jì)精度。同樣地,為量化消融實(shí)驗(yàn)對(duì)比結(jié)果,表3給出了幾種對(duì)比算法的EPE。
表3 消融實(shí)驗(yàn)EPE
本文基于循環(huán)生成對(duì)抗網(wǎng)絡(luò),提出了一種以無(wú)監(jiān)督方式訓(xùn)練的光流估計(jì)網(wǎng)絡(luò)。該方法在充分利用Cycle-GAN對(duì)抗機(jī)制的同時(shí),對(duì)判別器與損失函數(shù)進(jìn)行改進(jìn),使得光流估計(jì)精度大幅提升。同時(shí),通過(guò)引入Spynet作為教師網(wǎng)絡(luò),降低了模型陷入模式崩塌的風(fēng)險(xiǎn)。但本文提出的方法還有繼續(xù)優(yōu)化的空間,例如,降低網(wǎng)絡(luò)參數(shù)以實(shí)現(xiàn)更高的實(shí)時(shí)性能,以及利用優(yōu)化之后的生成器以期實(shí)現(xiàn)更高的光流估計(jì)精度,都是未來(lái)工作面臨的技術(shù)挑戰(zhàn)與研究方向。