周海赟,項(xiàng)學(xué)智,翟明亮,張榮芳,王 帥
1.南京森林警察學(xué)院 治安學(xué)院,南京 210023
2.哈爾濱工程大學(xué) 信息與通信工程學(xué)院,哈爾濱 150001
光流場是計(jì)算機(jī)視覺中的重要底層信息,在自動(dòng)駕駛、動(dòng)作識(shí)別、視頻處理等領(lǐng)域擁有廣泛應(yīng)用,因此光流估計(jì)一直是視覺分析領(lǐng)域里的一個(gè)熱門研究課題。傳統(tǒng)方法[1-3]通常利用亮度恒常假設(shè)和運(yùn)動(dòng)空間平滑假設(shè)等一系列先驗(yàn)約束構(gòu)造能量泛函,并通過變分極小化能量泛函來求解光流,此類方法較容易集成人類對運(yùn)動(dòng)的先驗(yàn)知識(shí),因此本文將其稱為知識(shí)驅(qū)動(dòng)方法。Horn 和Schunck[1]首次采用變分方法解決光流估計(jì)問題,該方法基于亮度恒常和平滑性假設(shè)構(gòu)造能量泛函,此后的方法大多在此基礎(chǔ)上通過添加新的約束項(xiàng)來改善能量泛函。Sun 等[2]設(shè)計(jì)了一種非局部平滑項(xiàng),用于抑制運(yùn)動(dòng)邊界的平滑。Brox 和Malik[3]將圖像描述符匹配算法引入變分框架,擴(kuò)展了經(jīng)典的能量泛函。雖然這類知識(shí)驅(qū)動(dòng)的變分方法可以通過預(yù)先定義的約束項(xiàng)來估計(jì)光流,但是此類方法在計(jì)算中需要通過多次迭代獲得精確解,在需要高精度運(yùn)動(dòng)場的場合,其運(yùn)行速度通常無法滿足實(shí)際應(yīng)用中的實(shí)時(shí)性要求。近年來,隨著深度學(xué)習(xí)的興起,卷積神經(jīng)網(wǎng)絡(luò)憑借其強(qiáng)大的學(xué)習(xí)能力,在圖像分類[4]、目標(biāo)識(shí)別[5]、語義分割[6]等多個(gè)領(lǐng)域取得了重大突破,其影響力也逐漸滲透到了光流計(jì)算領(lǐng)域。Dosovitskiy 等[7]首先將卷積神經(jīng)網(wǎng)絡(luò)引入光流估計(jì)領(lǐng)域,設(shè)計(jì)了兩個(gè)U 型網(wǎng)絡(luò)模型FlowNetS 和FlowNetC,并發(fā)布了一個(gè)大型合成數(shù)據(jù)集Flying-Charis,專門用于光流網(wǎng)絡(luò)的訓(xùn)練。對于FlowNetS 模型,兩幀圖像以堆疊的方式輸入網(wǎng)絡(luò),網(wǎng)絡(luò)通過一系列卷積操作和反卷積操作自行學(xué)習(xí)二者之間的運(yùn)動(dòng)信息。對于FlowNetC 模型,兩幀圖像被分開處理,網(wǎng)絡(luò)通過兩個(gè)分支分別提取兩幀圖像的特征,之后通過相關(guān)層計(jì)算特征圖之間的相關(guān)程度。FlowNetS 和FlowNetC 網(wǎng)絡(luò)在FlyingChairs 數(shù)據(jù)集上以有監(jiān)督的方式端到端地訓(xùn)練。兩個(gè)深度學(xué)習(xí)模型可以從大量的數(shù)據(jù)中自動(dòng)地學(xué)習(xí)光流,只是準(zhǔn)確性還無法與知識(shí)驅(qū)動(dòng)方法相提并論。在FlowNet經(jīng)典模型被提出之后,更多的深度學(xué)習(xí)光流方法陸續(xù)被提出。Vaquero等[8]將粗到精的推理策略引入網(wǎng)絡(luò),將光流估計(jì)問題轉(zhuǎn)化為回歸和分類問題。文獻(xiàn)[9-13]將知識(shí)驅(qū)動(dòng)方法中的經(jīng)典先驗(yàn)假設(shè)融入網(wǎng)絡(luò),使網(wǎng)絡(luò)以無監(jiān)督的方式學(xué)習(xí)光流。其中文獻(xiàn)[8-9,12-13]都是基于經(jīng)典的U 型網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)的模型,主要特點(diǎn)是架構(gòu)簡單,易于與其他有效算法結(jié)合。除了經(jīng)典的U 型網(wǎng)絡(luò)架構(gòu)之外,空間金字塔網(wǎng)絡(luò)也是光流估計(jì)的基本網(wǎng)絡(luò)架構(gòu)之一。Ranjan 和Black[14]將空間金字塔引入深度學(xué)習(xí)光流方法中,設(shè)計(jì)了一種空間金字塔網(wǎng)絡(luò)模型SpyNet,利用傳統(tǒng)方法中的變形操作,將第二幅圖像向第一幅圖像變形,在每一層計(jì)算增量光流以解決大位移問題。與FlowNet 和Flownet2.0 方法相比,SpyNet 的參數(shù)量更小,運(yùn)行速度更快,但準(zhǔn)確率略低?;赟pyNet,Hu 等[15]設(shè)計(jì)了一種用于光流估計(jì)的循環(huán)空間金字塔網(wǎng)絡(luò)。Dai等[16]提出了一種基于空間金字塔的新型網(wǎng)絡(luò)架構(gòu),通過運(yùn)動(dòng)信息來約束視頻中的時(shí)間信息。空間金字塔網(wǎng)絡(luò)可以獲得多尺度特征信息,而且使用金字塔分層計(jì)算可以解決光流估計(jì)中大位移問題,然而這種網(wǎng)絡(luò)架構(gòu)忽略了特征通道的相關(guān)性,不能學(xué)習(xí)和修改通道特征的權(quán)重。除了U 型網(wǎng)絡(luò)和空間金字塔架構(gòu)之外,級聯(lián)結(jié)構(gòu)也被引入到學(xué)習(xí)光流中。Ilg 等[17]在FlowNet 的基礎(chǔ)上設(shè)計(jì)了一種堆疊網(wǎng)絡(luò)模型FlowNet2.0,將FlowNetS 和FlowNetC 作為子網(wǎng)絡(luò)堆疊在一起,并在子網(wǎng)絡(luò)之間加入變形操作,以提高光流估計(jì)模型的準(zhǔn)確率。FlowNet2.0 在FlyingThings3D 數(shù)據(jù)集[18]上對各個(gè)子網(wǎng)絡(luò)進(jìn)行微調(diào),得到的模型具有很高的準(zhǔn)確率,但模型的訓(xùn)練過程較為復(fù)雜,且其參數(shù)量是FlowNet 的5倍。Unfow[10]是一種無監(jiān)督網(wǎng)絡(luò),它利用堆疊架構(gòu)和更加魯棒的Census 損失函數(shù)來提高光流網(wǎng)絡(luò)的學(xué)習(xí)能力。級聯(lián)架構(gòu)以迭代細(xì)化的方式提高光流估計(jì)的準(zhǔn)確性,因此訓(xùn)練過程復(fù)雜且耗時(shí)。上述幾種深度學(xué)習(xí)光流估計(jì)方法從大量圖像數(shù)據(jù)中學(xué)習(xí)運(yùn)動(dòng)規(guī)律,本文將其稱為數(shù)據(jù)驅(qū)動(dòng)方法。數(shù)據(jù)驅(qū)動(dòng)方法雖然在訓(xùn)練階段較為耗時(shí),但在推理階段速度較快,可有效解決傳統(tǒng)知識(shí)驅(qū)動(dòng)型方法實(shí)時(shí)性差的問題。但現(xiàn)有的數(shù)據(jù)驅(qū)動(dòng)光流網(wǎng)絡(luò)大多來源于計(jì)算機(jī)視覺中其他像素級任務(wù)的網(wǎng)絡(luò)架構(gòu),在處理運(yùn)動(dòng)信息時(shí)缺乏靈活性,無法區(qū)分不同通道下運(yùn)動(dòng)信息的重要程度,導(dǎo)致網(wǎng)絡(luò)對運(yùn)動(dòng)特征提取的效率不高。同時(shí),基于編解碼架構(gòu)的網(wǎng)絡(luò)采用卷積操作來提取兩幀圖像之間的運(yùn)動(dòng)特征,隨著特征圖分辨率的逐漸降低,會(huì)丟失大量的細(xì)節(jié)信息,這也進(jìn)一步限制了稠密光流估計(jì)的準(zhǔn)確率。
本文將通道注意力機(jī)制和空洞卷積引入U(xiǎn) 型深度學(xué)習(xí)光流網(wǎng)絡(luò),并設(shè)計(jì)了一個(gè)空洞卷積和注意力單元級聯(lián)的模塊,以解決上述幾種問題。U 型深度學(xué)習(xí)光流網(wǎng)絡(luò)的各層卷積層提取的是多通道特征圖,且每個(gè)通道下的特征圖包含的運(yùn)動(dòng)信息并不相同,然而以往的深度學(xué)習(xí)光流網(wǎng)絡(luò)并沒有考慮到不同通道之間的區(qū)別,對所有通道下的特征都進(jìn)行統(tǒng)一處理,這將極大地限制深度學(xué)習(xí)網(wǎng)絡(luò)的學(xué)習(xí)能力。通道注意力機(jī)制可以自適應(yīng)地調(diào)整各通道下的特征權(quán)重,在卷積層的各層之間級聯(lián)上注意力單元后,網(wǎng)絡(luò)可以在訓(xùn)練過程中不斷地對各通道下特征圖的權(quán)重進(jìn)行調(diào)整,以使網(wǎng)絡(luò)逐層提取出更具有針對性的特征圖,得到更加有效的運(yùn)動(dòng)信息,從而提高模型的學(xué)習(xí)能力;空洞卷積已經(jīng)被廣泛應(yīng)用于各類像素級任務(wù)中,與普通卷積相比,空洞卷積可以在增大卷積核感受野的同時(shí)保持特征圖的尺寸,以避免大量細(xì)節(jié)信息隨著特征圖尺寸的減小而丟失,對于光流估計(jì)這一類像素級問題,細(xì)節(jié)丟失將會(huì)大幅度降低光流估計(jì)的精度,因此本文將空洞卷積引入深度學(xué)習(xí)光流網(wǎng)絡(luò)中,保證光流細(xì)節(jié)不損失,從而有效地學(xué)習(xí)更多的空間信息;除此之外,本文還將知識(shí)驅(qū)動(dòng)方法中的光流先驗(yàn)約束融入深度學(xué)習(xí)網(wǎng)絡(luò)中,構(gòu)建了知識(shí)與數(shù)據(jù)混合驅(qū)動(dòng)的光流網(wǎng)絡(luò),進(jìn)一步提升了光流估計(jì)精度。
本文提出的深度學(xué)習(xí)光流網(wǎng)絡(luò)基于U 型網(wǎng)絡(luò)架構(gòu),其整體架構(gòu)如圖1 所示。網(wǎng)絡(luò)包含收縮和擴(kuò)張兩部分,收縮部分首先通過若干層卷積層分別提取兩幀相鄰圖像的低級特征,之后在相關(guān)層計(jì)算兩幅特征圖的相關(guān)性,并通過級聯(lián)的通道注意力單元和空洞卷積進(jìn)一步提取高級運(yùn)動(dòng)特征,最后將得到的高級特征作為擴(kuò)張部分的輸入。擴(kuò)張部分通過一系列反卷積操作將高級特征圖恢復(fù)至原始圖像分辨率,其中每層反卷積層后都級聯(lián)注意力單元,并通過特征復(fù)用減少細(xì)節(jié)信息丟失。
Fig.1 Overall architecture of network圖1 網(wǎng)絡(luò)的整體架構(gòu)
視覺注意力機(jī)制是人類視覺所特有的大腦信號(hào)處理機(jī)制。人類視覺通過快速掃描全局圖像,獲得需要重點(diǎn)關(guān)注的目標(biāo)區(qū)域,而后對這一區(qū)域投入更多的注意力資源,以獲取更多所關(guān)注目標(biāo)的細(xì)節(jié)信息,抑制其他無用信息。這是人類利用有限的注意力資源從大量信息中快速篩選出高價(jià)值信息的手段,是人類在長期進(jìn)化中形成的一種生存機(jī)制,人類視覺注意力機(jī)制極大地提高了視覺信息處理的效率與準(zhǔn)確性。深度學(xué)習(xí)中的注意力機(jī)制從本質(zhì)上講與人類的選擇性視覺注意力機(jī)制相似,目標(biāo)也是從眾多信息中選擇出對當(dāng)前任務(wù)目標(biāo)更關(guān)鍵的信息。當(dāng)前注意力機(jī)制目前已經(jīng)廣泛應(yīng)用于圖像分類、目標(biāo)檢測、行人重識(shí)別等多個(gè)計(jì)算機(jī)視覺領(lǐng)域。Wang等[19]提出了一種用于圖像分類的殘差注意力網(wǎng)絡(luò)。Zhang 等[20]提出了一種注意力引導(dǎo)的遞歸網(wǎng)絡(luò),用于顯著目標(biāo)檢測。Zhu 等[21]則設(shè)計(jì)了一種用于目標(biāo)檢測的全卷積注意力網(wǎng)絡(luò)。Yang 等[22]提出了一個(gè)專用于行人重識(shí)別任務(wù)的端到端注意力網(wǎng)絡(luò)。Chen 等[23]提出了一種語義分割的注意力機(jī)制,可以對每個(gè)像素位置的多尺度特征進(jìn)行加權(quán)。袁嘉杰等[24]提出一種基于注意力卷積模塊的深度神經(jīng)網(wǎng)絡(luò),以促進(jìn)網(wǎng)絡(luò)的信息流動(dòng)。孫萍等[25]在目標(biāo)檢測網(wǎng)絡(luò)中引入注意力特征庫,有效地提升模型的檢測精度和檢測速度。以上這些工作表明,注意力機(jī)制能夠?qū)⒕W(wǎng)絡(luò)的注意力向最具信息性的特征方向調(diào)整。然而,利用注意力機(jī)制來解決光流估計(jì)任務(wù)的工作還很少。在光流估計(jì)任務(wù)中,運(yùn)動(dòng)物體的不同位置具有不同的光流特性,例如運(yùn)動(dòng)物體的邊界部位更側(cè)重于光流的邊緣特征,運(yùn)動(dòng)物體的內(nèi)部則更側(cè)重于光流的平滑性,深度學(xué)習(xí)光流網(wǎng)絡(luò)利用卷積操作不斷提取包含不同運(yùn)動(dòng)信息的多通道特征圖,本文將通道注意力機(jī)制與深度學(xué)習(xí)光流網(wǎng)絡(luò)相結(jié)合,在網(wǎng)絡(luò)的各層卷積層之間級聯(lián)上注意力單元,可以使網(wǎng)絡(luò)逐層地調(diào)整各通道特征圖的權(quán)重,針對運(yùn)動(dòng)物體的不同位置學(xué)習(xí)更具有針對性且更加有用的運(yùn)動(dòng)信息,以提升U 型網(wǎng)絡(luò)的光流學(xué)習(xí)能力。
空洞卷積的主要思想是在標(biāo)準(zhǔn)卷積核之間加入空洞,使卷積核在保證尺寸不變的情況下增大感受野,最近已被廣泛應(yīng)用于語義分割、圖像分類以及目標(biāo)檢測等多個(gè)任務(wù)領(lǐng)域中。Chen 等[26]較早地將空洞卷積應(yīng)用于語義分割領(lǐng)域,Yamashita 等[27]提出了由多個(gè)空洞卷積網(wǎng)絡(luò)跳躍連接的網(wǎng)絡(luò)模型,增強(qiáng)了語義分割效果。Yu 等[28]則設(shè)計(jì)了一個(gè)用于圖像分類和語義分割的空洞殘差網(wǎng)絡(luò)。石祥濱等[29]利用空間卷積和時(shí)間卷積來縮減深度學(xué)習(xí)光流模型的參數(shù)量。與普通卷積相比,空洞卷積可以在提取運(yùn)動(dòng)特征的同時(shí)保證特征圖分辨率不變。由于U 型網(wǎng)絡(luò)包含收縮和擴(kuò)張兩部分,收縮部分通常利用普通卷積操作不斷地縮小特征圖的尺寸以增大感受野,從而導(dǎo)致特征圖的分辨率不斷降低,損失大量細(xì)節(jié)信息。本文在引入注意力機(jī)制的同時(shí)將空洞卷積集成進(jìn)U 型光流網(wǎng)絡(luò),將U 型網(wǎng)絡(luò)中收縮部分的普通卷積替換為空洞卷積后,使網(wǎng)絡(luò)在不損失特征圖尺寸的同時(shí)提取運(yùn)動(dòng)特征,以此保留重要的細(xì)節(jié)信息,提升網(wǎng)絡(luò)的學(xué)習(xí)能力。
本文所設(shè)計(jì)的深度學(xué)習(xí)光流網(wǎng)絡(luò)收縮部分負(fù)責(zé)提取輸入圖像對中的運(yùn)動(dòng)特征,由圖像特征提取、相關(guān)層及級聯(lián)的注意力機(jī)制和空洞卷積模塊組成,其網(wǎng)絡(luò)架構(gòu)如圖2 所示。
圖2 為光流網(wǎng)絡(luò)的收縮部分,收縮部分首先通過3 層標(biāo)準(zhǔn)卷積層分別提取兩幀相鄰圖像的特征,每層卷積層之后連接一層ReLU 層,卷積核大小分別為7×7、5×5 和3×3,步長為2,輸出的特征圖個(gè)數(shù)分別為64、128、256,之后通過一個(gè)相關(guān)層來進(jìn)行特征圖匹配,找到特征圖間的對應(yīng)關(guān)系,相關(guān)層所表達(dá)的相關(guān)函數(shù)定義如式(1)所示。
其中,x1、x2分別表示第一幀和第二幀的特征圖,N表示相關(guān)向量c1(x1)和c2(x2)的長度。相關(guān)層輸出的特征圖隨后輸入至級聯(lián)的空洞卷積和注意力單元模塊中,其中包含6 層空洞卷積層,即圖2 中的n為6,每層卷積層之后均連接注意力單元??斩淳矸e在不增加卷積核尺寸的同時(shí)增大感受野,可以避免網(wǎng)絡(luò)在下采樣過程中丟失重要的細(xì)節(jié)特征,從而提升網(wǎng)絡(luò)學(xué)習(xí)光流的能力。注意力單元?jiǎng)t利用不同通道之間特征圖的相互依賴關(guān)系,進(jìn)一步優(yōu)化空洞卷積層輸出的特征圖,注意力單元的細(xì)節(jié)如圖3 所示。
注意力單元包括壓縮和激勵(lì)兩部分,給定尺寸為H×W的特征圖X=x1,x2,…,xc,注意力單元可以自適應(yīng)地調(diào)整不同通道特征圖的權(quán)重,其中壓縮部分對輸入特征圖進(jìn)行全局平均池化操作,輸出特征圖由S=s1,s2,…,sc表示,sc的定義如式(2)所示:
Fig.2 Architecture of contracting part圖2 收縮部分的網(wǎng)絡(luò)架構(gòu)
Fig.3 Attention unit圖3 注意力單元
其中,sc為每個(gè)通道信息量。
激勵(lì)部分包含兩層卷積層和一層激活層,第一層卷積層連接一層ReLU 層,用來壓縮特征圖的數(shù)量,可以用1×1×C/r來表示輸出特征圖的數(shù)量,其中C表示輸入特征圖的通道數(shù),本文將壓縮參數(shù)r設(shè)置為64。第二層卷積層用來恢復(fù)通道的數(shù)量,通道權(quán)重由P=p1,p2,…,pc表示,之后將這些權(quán)重輸入激活函數(shù),并將權(quán)重值規(guī)范化到0 至1 之間。最后將輸入特征圖X=x1,x2,…,xc與權(quán)重P=p1,p2,…,pc分別相乘,得到優(yōu)化后的特征圖R=r1,r2,…,rc,其中rc的定義如式(3)所示。
注意力單元的參數(shù)細(xì)節(jié)如表1 所示。注意力單元并不會(huì)改變輸入的分辨率,其中激勵(lì)部分可以自適應(yīng)地學(xué)習(xí)每個(gè)通道的權(quán)重。每一層空洞卷積層的輸出特征圖的個(gè)數(shù)分別設(shè)置為512、512、512、512、1 024、1 024,空洞參數(shù)分別設(shè)置為2、2、4、4、8、8,除最后一層空洞卷積層外,其他每一層之后均連接ReLU 層,由于空洞卷積可以在保證特征圖分辨率的情況下增大感受野,收縮部分最后輸出的特征圖的分辨率只縮減至原始分辨率的1/8,而不是1/64,從而有效地保護(hù)了運(yùn)動(dòng)細(xì)節(jié)信息。
Table 1 Architecture of attention unit表1 注意力單元網(wǎng)絡(luò)架構(gòu)
深度學(xué)習(xí)光流網(wǎng)絡(luò)擴(kuò)張部分的架構(gòu)如圖4 所示,收縮部分輸出的特征通過級聯(lián)的注意力單元進(jìn)行整合,該模塊包含3 個(gè)反卷積層和1 個(gè)標(biāo)準(zhǔn)卷積層,每層反卷積層后均連接注意力單元。擴(kuò)張部分可以估計(jì)出多尺度光流,將特征映射的分辨率擴(kuò)大到原始分辨率的1/4。每個(gè)反卷積層的卷積核尺寸為3×3,輸出的通道數(shù)分別為512、256、128、64,每個(gè)卷積層后均為ReLU 層。為了使網(wǎng)絡(luò)能夠感知多級特征,網(wǎng)絡(luò)復(fù)用了擴(kuò)張部分相應(yīng)尺度下的特征圖。
Fig.4 Architecture of expanding part圖4 擴(kuò)張部分的網(wǎng)絡(luò)架構(gòu)
傳統(tǒng)的光流估計(jì)算法是通過構(gòu)建能量函數(shù)來約束圖像與光流之間的關(guān)系,此類知識(shí)驅(qū)動(dòng)方法被稱為變分光流方法。Horn 和Schunck[1]首先提出了一種用于光流估計(jì)的變分框架,該框架利用亮度恒常和全局平滑假設(shè)來約束光流。之后Brox 將更多的約束項(xiàng)引入能量泛函中,極大地提升了變分光流方法的估計(jì)精度[3]。
當(dāng)前卷積神經(jīng)網(wǎng)絡(luò)已開始逐漸應(yīng)用于光流估計(jì)任務(wù)中,此類數(shù)據(jù)驅(qū)動(dòng)方法可以從大量數(shù)據(jù)中學(xué)習(xí)運(yùn)動(dòng)信息。給定兩幅輸入圖像以及光流真值,訓(xùn)練網(wǎng)絡(luò)的目的是讓網(wǎng)絡(luò)自行學(xué)習(xí)圖像對之間的運(yùn)動(dòng)關(guān)系,即光流。在有監(jiān)督方法中通常采用端點(diǎn)誤差(end point error,EPE)作為損失函數(shù)來引導(dǎo)網(wǎng)絡(luò)的訓(xùn)練過程,端點(diǎn)誤差損失函數(shù)的定義如式(4)所示。
其中,ux,y、vx,y是點(diǎn)p=(x,y) 處的預(yù)測光流;是點(diǎn)p=(x,y)處的光流真值;H和W是圖像的高度和寬度。
為充分利用運(yùn)動(dòng)先驗(yàn)知識(shí),實(shí)現(xiàn)優(yōu)勢互補(bǔ),本文引入變分光流方法中行之有效的亮度恒常假設(shè)、梯度恒常假設(shè)、全局平滑約束,并對各項(xiàng)使用基于全變分(total variation,TV)的魯棒懲罰函數(shù),最后將這些約束項(xiàng)與EPE損失進(jìn)行求和構(gòu)成新的光流損失函數(shù)。
亮度恒常假設(shè)的定義如式(5)所示。
其中,I(x,y,t)表示t時(shí)刻點(diǎn)p=(x,y)處的像素值,u、v分別是水平和垂直光流。應(yīng)用在深度學(xué)習(xí)光流網(wǎng)絡(luò)中的亮度恒常損失函數(shù)的定義如式(6)所示。
其中,N表示圖像中像素點(diǎn)的總數(shù);Ii(p)表示第i幀圖像在像素點(diǎn)p=(x,y)處的像素值;ψ表示魯棒懲罰函數(shù),這里采用Charbonnier 懲罰函數(shù)(x2+0.0012)α;w=(u,v)T表示t時(shí)刻與t+1 時(shí)刻兩幀圖像之間的光流向量,w(p)為像素點(diǎn)p=(x,y)處的光流向量。
相比于亮度恒常假設(shè),梯度恒常假設(shè)對外部光照變化更加魯棒,梯度恒常假設(shè)的定義如式(7)所示。
其中,?=(?x,?y)T表示空間梯度。空間梯度損失函數(shù)的定義如式(8)所示。
亮度恒常假設(shè)和梯度恒常假設(shè)并沒有考慮到相鄰像素之間的相互作用,忽略了圖像中的空間信息,常用的光流空間約束項(xiàng)是全局平滑約束,其定義如式(9)所示。
其中,ρs表示Charbonnier懲罰函數(shù)。
最終的深度學(xué)習(xí)光流損失函數(shù)為以上損失函數(shù)的總和,其定義如式(11)所示。
其中,λ1、λ2、λ3、λ4分別表示亮度恒常損失函數(shù)、空間梯度損失函數(shù)、圖像驅(qū)動(dòng)的平滑項(xiàng)損失函數(shù)和端點(diǎn)誤差損失函數(shù)的權(quán)重,本文采用加權(quán)求和的方式計(jì)算Lfinal,首先在網(wǎng)絡(luò)擴(kuò)張部分的不同分辨率下分別計(jì)算Lfinal,之后將所有分辨率下的Lfinal相加得到最后的損失函數(shù)總和。不同分辨率下每一項(xiàng)損失函數(shù)的權(quán)重如表2 所示,由于亮度恒常損失函數(shù)、空間梯度損失函數(shù)、圖像驅(qū)動(dòng)的平滑項(xiàng)損失函數(shù)和端點(diǎn)誤差損失函數(shù)在訓(xùn)練過程中的重要程度有所不同,各項(xiàng)損失函數(shù)所占的權(quán)重比例也有所不同,即在網(wǎng)絡(luò)訓(xùn)練中起到的作用越大,權(quán)重系數(shù)越大。其中端點(diǎn)誤差損失函數(shù)的權(quán)重參數(shù)參考FlowNetS[7]而設(shè)置,亮度恒常損失函數(shù)及空間梯度損失函數(shù)的重要程度隨著分辨率尺度的不斷增加而逐漸加強(qiáng),因此按照等差數(shù)列的規(guī)律不斷增加權(quán)重,即分辨率越大,所占權(quán)重比例越大。由于分辨率尺度并不影響圖像驅(qū)動(dòng)的平滑項(xiàng),因此不同分辨率尺度下的圖像驅(qū)動(dòng)的平滑項(xiàng)損失函數(shù)權(quán)重全部相等。
Table 2 Parameter settings表2 參數(shù)設(shè)置
所設(shè)計(jì)的光流網(wǎng)絡(luò)在FlyingChairs 和Flying-Things3D 數(shù)據(jù)集上進(jìn)行訓(xùn)練,在FlyingChairs 數(shù)據(jù)集上訓(xùn)練時(shí),批量大小設(shè)置為8,在FlyingThings3D 數(shù)據(jù)集上訓(xùn)練時(shí)批量大小設(shè)置為4。在FlyingChairs 數(shù)據(jù)集上訓(xùn)練的迭代次數(shù)為1.2×106次,初始學(xué)習(xí)率為0.000 1,在訓(xùn)練到4×105次之后每經(jīng)過2×105次迭代,學(xué)習(xí)率縮減一半。然后,在FlyingThings3D 數(shù)據(jù)集上進(jìn)行微調(diào),初始學(xué)習(xí)率設(shè)置為0.000 01,并在迭代3×105之后每迭代105次將其減小一半。此外,分別 在MPI-Sintel、KITTI2012 和KITTI2015 數(shù)據(jù)集的訓(xùn)練集和測試集上測試訓(xùn)練得到的模型,并與近期相關(guān)工作進(jìn)行了全面比較。值得注意的是,訓(xùn)練網(wǎng)絡(luò)的訓(xùn)練集并不包含這3 類數(shù)據(jù)集中的訓(xùn)練集。表3和表4 顯示了在不同基準(zhǔn)數(shù)據(jù)集下測試得到的數(shù)值結(jié)果,誤差度量使用平均端點(diǎn)誤差(average end point error,AEE),在KITTI2015 數(shù)據(jù)集上使用的誤差度量為光流估計(jì)錯(cuò)誤像素點(diǎn)所占的百分比。
MPI-Sintel 訓(xùn)練和測試集分別包含1 041 和552個(gè)圖像對,提供了Clean 和Final 兩個(gè)版本的數(shù)據(jù)集,其中Final 版本包含運(yùn)動(dòng)模糊、大氣變化、霧效果和噪點(diǎn),比Clean 版本更加復(fù)雜,且更具挑戰(zhàn)性。KITTI 數(shù)據(jù)集由車載立體攝像系統(tǒng)捕獲的真實(shí)道路場景組成,KITTI2012 數(shù)據(jù)集包含194 個(gè)訓(xùn)練圖像對和195 個(gè)測試圖像對;KITTI2015包含200個(gè)訓(xùn)練圖像對和200個(gè)測試圖像對。這兩個(gè)數(shù)據(jù)集僅包含稀疏的光流真值。
由表3 和表4 可以看出,本文的模型在MPISintel 的Clean 和Final 的數(shù)據(jù)集上的測試結(jié)果優(yōu)于SpyNet[14]、CaF-Full-41c[8]、FlowNet2.0-S[17]、FlowNet2.0-C[17]和Dai 等[16]有監(jiān)督學(xué)習(xí)方法和DSTFlow[9]、Un-Flow[10]、DenseNetFlow[11]、OccAwareFlow[12]等無監(jiān)督學(xué)習(xí)方法。
Table 3 Quantitative evaluation on MPI-Sintel datasets表3 MPI-Sintel數(shù)據(jù)集上的定量評估
Table 4 Quantitative evaluation on KITTI datasets表4 KITTI數(shù)據(jù)集上的定量評估
由表3 可以看出,F(xiàn)lowNet2.0-S、FlowNet2.0-C 和SpyNet 的結(jié)果與本文模型很接近,但其精度并未超越本文模型,其中SpyNet 在FlyingChairs 數(shù)據(jù)集上進(jìn)行訓(xùn)練,F(xiàn)lowNet2.0-S 和FlowNet2.0-C 在FlyingChairs和FlyingThings 數(shù)據(jù)集上都進(jìn)行了訓(xùn)練。SpyNet 利用空間金字塔網(wǎng)絡(luò)來學(xué)習(xí)光流,與本文方法一樣同屬于輕量級網(wǎng)絡(luò),然而其準(zhǔn)確度略低于本文模型。
同時(shí)由表4 可以發(fā)現(xiàn),在KITTI2012 數(shù)據(jù)集上無監(jiān)督方法UnFlow 與有監(jiān)督方法相比獲得了更好的結(jié)果,經(jīng)過分析總結(jié)出以下三點(diǎn)原因:首先,UnFlow與FlowNet2.0 均通過堆疊多個(gè)FlowNet 子網(wǎng)絡(luò)來提升網(wǎng)絡(luò)性能;其次,UnFlow 的訓(xùn)練數(shù)據(jù)集還包含3 個(gè)數(shù)據(jù)集SYNTHIA、Cityscapes 和KITTI raw,這些都是與自動(dòng)駕駛相關(guān)的數(shù)據(jù)集,與測試集場景較為相似,可認(rèn)為是進(jìn)行了有針對性的優(yōu)化;最后,Unflow 使用相對亮度恒常假設(shè)更加魯棒的先驗(yàn)假設(shè)。因此,Unflow 在KITTI 數(shù)據(jù)集上的性能優(yōu)于其他方法。此外,Unflow 和OccAwareFlow 均使用了前后向一致性校驗(yàn)來估計(jì)遮擋區(qū)域,這在一定程度上也有利于提升光流估計(jì)精度。
與無監(jiān)督方法相比,有監(jiān)督方法通常難以獲得足夠數(shù)量的具有真值的真實(shí)圖像序列,因此大多是在合成數(shù)據(jù)集上進(jìn)行訓(xùn)練,例如FlyingChairs 和Flying-Things3D,因此在合成數(shù)據(jù)集Sintel 上進(jìn)行測試時(shí),有監(jiān)督方法FlowNetS、FlowNetC、SpyNet 和Dai 等的準(zhǔn)確性更加接近于本文網(wǎng)絡(luò)訓(xùn)練得到的模型。
之后在MPI-Sintel數(shù)據(jù)集上進(jìn)一步微調(diào)了所得到的模型,并對微調(diào)后的模型標(biāo)記后綴“+ft”,表5顯示了微調(diào)后的模型在MPI-Sintel數(shù)據(jù)集下測試的數(shù)值結(jié)果。
Table 5 Quantitative evaluation on MPI-Sintel datasets after fine-tuning表5 微調(diào)后在MPI-Sintel數(shù)據(jù)集上的定量評估
由表5 可以看出,在MPI-Sintel 數(shù)據(jù)集上微調(diào)后的本文模型與“RecSpyNet+ft”[15]、“FlowNetS+ft”[7]、“FlowNetC+ft”[7]、“SpyNet+ft”[14]相比具有更好的結(jié)果。SpyNet+ft[14]的結(jié)果與本文模型很接近,但精度仍略低。
圖5 和圖6 展示了本文模型、FlowNetC[7]和Flow-Net2-C[17]在MPI-Sintel final 數(shù)據(jù)集上測試的可視化結(jié)果對比圖,其中圖6 為將局部細(xì)節(jié)放大后的對比圖,從中可以看出,本文模型與FlowNetC 和Flow-Net2-C 相比具有更清晰的運(yùn)動(dòng)細(xì)節(jié),特別是在腿部、手臂等細(xì)節(jié)部分,而且邊緣處的噪聲也得到了很好的抑制,這說明本文所設(shè)計(jì)的網(wǎng)絡(luò)可以獲得更好的運(yùn)動(dòng)邊緣效果,證明了所提出方法的有效性。
Fig.5 Visual comparison on MPI-Sintel dataset(final)圖5 在MPI-Sintel(final)數(shù)據(jù)集上的可視化比較
Fig.6 Comparison of enlarged local details圖6 局部細(xì)節(jié)放大后的對比
本文提出了一個(gè)全新的深度學(xué)習(xí)光流網(wǎng)絡(luò),其將通道注意力單元和空洞卷積引入光流網(wǎng)絡(luò)中,通道注意力單元可以通過各通道之間的關(guān)系自適應(yīng)地調(diào)整各通道的特征,從而提高網(wǎng)絡(luò)的運(yùn)動(dòng)學(xué)習(xí)能力。同時(shí),網(wǎng)絡(luò)可以學(xué)習(xí)特征圖的權(quán)重,使網(wǎng)絡(luò)可以學(xué)習(xí)更重要的特征。對于像素級估計(jì)任務(wù),空洞卷積可以在保持特征圖分辨率不變的情況下有效地?cái)U(kuò)大感受野,減少空間信息的丟失。在MPI-Sintel 和KITTI數(shù)據(jù)集上的測試結(jié)果證明了所設(shè)計(jì)網(wǎng)絡(luò)的有效性。