韓利麗,孟朝暉
(河海大學 計算機與信息學院,南京 211100)
語義分割是計算機視覺的核心任務.卷積網絡CNNs的發展,尤其是全卷積網絡(FCN)[1]的出現,使得語義分割任務在各個數據集上取得重大突破.隨著研究的深入,圖像語義分割已不滿足時代的發展,視頻語義分割開始走進人們的視線.與圖像相比視頻更易獲取,且視頻也逐漸越過圖像成為信息傳播的主要媒介.
視頻語義分割的挑戰比圖像語義分割更大,因為視頻是由連續的幀序列組成,每秒幀數為15-30幀.圖像語義分割是對圖像進行處理,目的是將圖像分割為若干個有特定語義的區域,對圖像中的每個像素點進行分類,圖像語義分割是靜態的.而視頻語義分割是對視頻序列中的每幀圖像的每個像素點進行操作,不僅幀數多,而且還要考慮相鄰幀之間的關系,視頻語義分割是動態的.視頻語義分割在自動駕駛、無人機導航、檔案影像識別和可穿戴計算等領域有重要意義.
為解決視頻分割問題,研究者做了不同方面的嘗試.研究解決時空“超體素”[2,3]、無監督和運動驅動的對象分割[4-6],或對標記視頻進行弱監督分割[7-9]等,這些方法不適用于實時或復雜的多類、多對象場景的語義分割.利用3D場景結構解決視頻語義分割的方法,如:在文獻[10-12]中用在運動結構獲得的三維點云構建模型,基于這些幾何的與/或運動特征,改進語義分割;在文獻[13,14]中提出把在視頻數據中得到的2D語義估計與3D場景重建結合起來,雖然3D信息很豐富,但信息的獲取代價昂貴,并且得到的預測錯誤很難解決.還有一些采用快速濾波技術的方法,對每幀圖像先計算出語義標簽信息再進行傳播.如:在文獻[15]中通過學習連續幀像素之間的相似函數去傳遞預測;文獻[16]實現了一個利用可學習的雙邊濾波器[17],實現視頻幀間信息的長距離傳播.
還有一些方法利用幀序列之間的相關性.因為視頻幀的冗余性、還有數量的龐大性,如果直接對整個視頻序列進行處理,不僅影響分割的結果,而且耗費資源.目前對視頻語義分割的研究主要分為兩個方面:一是利用視頻幀之間的時序信息提高圖像分割的精度;二是利用視頻幀間的相似性確定關鍵幀,減少計算量,提高模型的運行速度和吞吐量.本文介紹一些比較突出的視頻語義分割方法.
目前用于視頻語義分割的數據集主要有2個:CamVid數據集[18]和Cityscapes數據集[19].
CamVid數據集[18]是第一個包含對象類語義標簽的視頻數據集,由從白天和黃昏拍攝的駕駛視頻中選取,包含701張彩色圖像,并帶有11個語義類的注釋.該數據集提供ground truth標簽,將每個像素與32個語義類中的其中一個相關聯.該數據集有4個視頻片段組成,每個視頻片段平均包含5000幀,分辨率為720×960,大約有40 K幀組成.
Cityscapes數據集[19],即城市景觀數據集,用于城市場景理解和自動駕駛.該數據集由從50個城市采集的街道場景視頻片段組成,幀率為17 fps.訓練集、驗證集和測試集分別包含2975、500、1525個視頻片段.每個視頻片段有30幀,只對第20幀做像素級的標注,用于語義分割.該數據集包含30個類,數據集的標注分為fine和coarse:fine是對從27個城市中選擇5000幅圖像進行密集的像素級標注,在30幀視頻片段的第20幀上完成的,目的是為了實現前景對象、背景和整體場景布局的高度多樣性,通過完整的注釋提供上下文信息;coarse是在剩下的23個城市中對每隔20 s或20 m的行駛距離(無論哪個先到)選擇一張圖像進行粗注釋,總共生成2萬張圖像,以支持利用大量弱標記數據的方法.
現有CNN網絡只能提取空間特征,不能提取時序信息,所以不能直接用現有的語義分割方法處理視頻集.根據視頻是由連續的幀序列組成,序列中包含時序信息,利用時序信息可以把具有相同空間特征的不同類別對象區別開,所以在視頻語義分割任務中一般利用視頻幀之間的時序信息提升分割精度.
基于之前視頻語義分割方法沒有考慮視頻序列中時序信息的特點,Fayyaz等提出把LSTM模塊[20,21]與FCN[1]相結合,構成端到端的時空卷積網絡結構(Spatio-Temporal FCN)[22],用STFCN表示該時空模型.把LSTM模塊嵌入到FCN-8的fc7層中,因為fc7是最深的全卷積層,與較淺的層相比,該層提取的特征比其它層提取的語義信息多.LSTM網絡是一種特殊的循環神經網絡,由一個記憶單元、一定數量的輸入和一個輸出門組成,輸出門用來控制序列中的信息流,避免丟失重要信息.LSTM可以用來解決梯度消失問題和記憶長時間的信息.
STFCN[22]模型的操作分為4步:首先,視頻幀經過FCN[1]提取空間特征,得到該幀各區域的特征圖;其次,將各區域特征圖送入時空模型得到時空特征;然后,把時空特征送入時空分類器得到各區域基本的預測;最后經過反卷積上采樣操作,恢復到與輸入尺寸相同大小.該模型在CamVid[18]數據集上進行驗證,在一定程度上提升了分割性能.但該模型沒有充分考慮幀間的相關性,且模型過于復雜,無法達到實時的要求.
基于視頻數據幀數多,靜態語義分割模型不適用,Gadde等提出一個可以處理視頻數據的新技術,即構造Netwarp模型[23],將該模型與靜態CNN相結合.文獻[24]中展示通過CNN中間層的相鄰幀之間的特征變化緩慢,尤其是在更深的卷積層中,與文獻[25]中基于運行時間的Bilateral inception模型為Netwarp提供理論依據.Netwarp利用相鄰幀之間的光流信息,把通過CNN中間層的前一幀的特征warp到當前幀的相應位置,光流定義為兩張圖像之間對應像素移動的向量.該模型的輸入是連續的兩幀,當前幀用t表示,前一幀用t-1代表.具體操作分為3步:首先,把用Dis-Flow[26]方法得到光流信息F(t)送入FlowTransformation模塊,該模塊用一個小的卷積神經網絡FlowCNN傳輸信息,表示為 ∧(Ft);其次,將 ∧(Ft)與前一幀第k層的特征warp到當前幀得到最后把當前幀在第k層的特征與通過式(1)得到嵌入Netwarp模塊的網絡可以在線進行端到端的訓練,與逐幀操作相比計算開銷更小.并且該模塊可以對網絡的中間層進行優化,在網絡中可多次使用.

基于視頻數據集缺少高質量的標注與相鄰視頻幀之間包含大量冗余信息,差異性顯著區域的信息尤為重要,所以Nilsson和Sminchisescu提出基于時空變壓器門控遞歸單元STGRU(Spatio-Temporal Transformer Gated Recurrent Unit)的GRFP模型[27],結合多幀未標注信息提高分割性能.該模型由基于Gated Recurrent Unit[28]的STGRU、基于Spatial Transformer Network[29]的時空扭曲變壓器和前向后向傳播操作組成,只對分割后的結果進行處理.STGRU的本質是通過光流信息把當前幀的前后兩幀的標簽映射結合到當前幀,考慮到前面幀的一些信息對當前幀的分割沒有幫助,所以使用門控思想讓網絡學習結合不同的語義圖.相鄰幀的局部信息用卷積GRU學習,可以把不同時間點的信息很好的融合.
STGRU具體操作為:首先,計算相鄰兩幀的語義分割圖以及光流;其次利用光流把前一幀的結果warp到當前幀;最后把warp后的結果與當前幀的分割圖一起送入GRU,得到當前幀最終的分割結果.該模型與多個圖像分割網絡相結合在標準數據集上進行驗證,試驗表明STGRU可以在不增加額外標簽、占用很少計算量的情況下,只用標簽視頻幀就能向鄰近無標簽視頻幀傳播信息,并且在提升語義分割性能的同時保證時間的一致性.
基于視頻序列的時間連續性,Jin等提出通過預測未來幀學習判別特征,并結合預測結果和當前特征來解析幀的新PEARL(Parsing with prEdictive feAtuRe Learning)模型[30].與之前的場景預測學習模型PEARL最大的不同是增加了預測學習網絡,PEARL包含2個預測學習階段.第一階段(無監督學習)中采用類似GAN[31]網絡結構,在未標記的視頻數據中預測未來幀,實現對時間特征的學習.預測學習網絡作為生成器G,通過特征提取器將輸入的視頻序列映射到時間表示上;再用上采樣層對其進行空間放大,最后反饋給卷積層,生成像素級的RGB值;判別器D對G生成的圖像與真實圖像進行判別.第二階段將預測學習網絡轉移到預測解析任務中,把G的生成圖片和輸入視頻序列的下一幀相結合,通過上采樣和卷積操作實現時間平滑和結構保持,得到最終的分割結果.與之前對單幀的簡單分割相比,該模型的分割的效果更好.
視頻數據具有連續幀之間大部分區域不變性與局部區域相對變化明顯的特點,變化明顯的視頻幀中往往包含著豐富的目標運動信息,關鍵幀的選取是解決目前視頻任務的重點.選取關鍵幀的依據是視頻的變化程度,而不依賴于視頻數據的長短,在變化明顯的視頻中選取較多的關鍵幀,沒有明顯變化的視頻數據中選取較少的關鍵幀.所以,關鍵幀的選取主要依據視頻幀之間的變化程度.
Darrell等人依據以下2點提出Clockwork FCN[32]:一是視頻幀序列之間的像素點變化迅速,但是幀的場景語義內容變化緩慢;二是把執行視為結構的一方面,為網絡生成特定的計算時間表.受Clockwork循環網絡[33]的影響,作者定義一個由固定或自適應信號驅動的新的Clockwork卷積族.把新的Clockwork與全卷積網絡FCN[1]相結合形成Clockwork FCN模型,完成跨幀傳播任務,網絡結構如圖1所示.該模型把網絡層分為不同的階段,每個階段有不同的更新率.時鐘控制網絡的具體操作:經過第一階段后,計算只在特定的時鐘信號點執行;靜態場景期間緩存一直持續,當遇到動態場景時開始新的計算,并且輸出與前面的靜態特征相結合,以此達到減少計算量的目的.

圖1 Clockwork FCN框架
CNNs中間卷積特征圖與輸入圖像有相同的空間范圍,保持低層圖像內容與中高層語義概念[33]之間的空間對應關系,類似于光流[34,35]提供通過空間扭曲在鄰近幀之間廉價傳播特征的機會.基于光流估計與特征傳播比通過卷積計算特征速度更快,且相鄰幀之間的差別不大,所以Wei Y等提出DFF[36].DFF基于視頻數據中相鄰幀之間差異性小,采用固定間隔k選取一幀為關鍵幀,通過把關鍵幀的深度特征映射傳給其他幀的方法減少網絡計算量.DFF網絡結構如圖2所示.

圖2 Deep Feature Flow
DFF可以分為兩個連續的子網絡,Nfeat特征網絡與Ntask任務網絡.I代表輸入圖片,連續幀序列用Ii表示,i=0,1,…,N代表卷積神經網絡,圖片的輸出為y=N(I).Nfeat特征網絡由全卷積網絡組成,輸入為每幀圖像,輸出為多個中間特征圖,f=Nfeat(I).Ntask任務網絡,根據不同的任務有不同的結構,輸入是特征圖f,輸出為y=Ntask(f).因為連續視頻幀之間的相似性,與經過深層網絡后得到的特征圖之間的強相關性,特征網絡Nfeat只對關鍵幀進行操作,非關鍵幀Ii的特征圖通過前面關鍵幀Ik的特征傳播得到.通過對稀疏關鍵幀的操作,在極大的減少視頻序列計算量的同時,精確度損失適中.該方法為減少計算量提供了一個新的方向,因為是固定間隔的選取關鍵幀,所以該方法適用在環境變化緩慢的場景.如果用在劇烈變化的場景中會丟失信息,產生低精度的分割結果.
為增加視頻語義分割在現實世界中的應用,要求在減少計算量的同時最大程度的減少時延,Li Y等提出Low-Latency[37]的視頻語義分割框架.該框架有2個組成部分:一是特征傳播模型,通過空間變量卷積(spatially variant convolution)自適應的融合特征,減少對每幀的計算量;二是基于精確度預測自動分配計算量的自適應調度程序,選擇關鍵幀.該方法首先將視頻序列的第一幀設為關鍵幀,以后每隔t時刻選一幀與前一關鍵幀進行比較,確定是否為關鍵幀.該模塊對關鍵幀和非關鍵幀的特征傳播方式不同,對于關鍵幀直接通過S(h)得到深層特征;對于非關鍵幀用前一關鍵幀的特征進行傳播.
3.3.1 自適應特征傳播模塊
空間變量卷積(spatially variant convolution)是用卷積表示領域的線性組合,卷積核在不同的位置上有不同變化.空間變量卷積核的權值通過權值預測器(weights predictor)確定,該網絡由三層相互嵌套的卷積層與Relu組成.輸入為當前幀與前一關鍵幀的低層特征圖Flt與Flk,最后一個卷積層的輸出尺寸為HK2×H×W,其中H×W是高層特征圖的尺寸,即每個位置輸出一個HK2通道向量,再將其轉換為該位置HK×HK尺寸的卷積核.卷積層的輸出通過Softmax層進行歸一化處理,使得每個卷積核權值之和為1.特征傳播流程圖如圖3所示,S(l)代表網絡提取低層特征(low level feature),S(h)代表獲得深度特征(deep feature),Ik為關鍵幀,It是Ik隔t時刻后選取的一幀,WeightPredictor為權值預測器,Spatially Variant Convolution為空間變量卷積,Fhk為Ik的高層特征圖,Fht為It的高層特征圖.

圖3 Low-Latency自適應傳播流程圖
3.3.2 關鍵幀選擇模塊
關鍵幀的選取基于每幀的低層特征(low level features).因為當當前幀的內容發生巨大的變化時,低層特征比如邊緣位置信息的差異性一定會很大,而且獲取底層特征比獲取高層特征的代價更小.該預測網絡有兩個256通道的卷積層、全局池化層與全連接層組成,輸入為當前幀與前關鍵幀的低層特征圖,輸出是當前幀為關鍵幀的可能性.如果輸出值大于設定的閾值就輸出1,表示當前幀的內容和前關鍵幀的差距比較大,更新關鍵幀;否則輸出為0,代表不更新關鍵幀.
為快速高效的對視頻數據進行語義分割操作,Yu S等人提出了動態視頻語義分割網絡DVSNet(Dynamic Video Segmentation Network)[38].該網絡由兩個子網絡組成:分割網絡和光流網絡.分割網絡生成高精度的語義分割圖,但是運行速度慢、層數多;流網絡運行速度快,但其輸出結果需要進一步的處理,才能得到低精確度的語義分割圖.該網絡的操作分為3步:首先,將視頻幀分為4個相同尺寸的幀區域,為避免切分處信息的丟失,每個區域增加64個重復的像素值;其次,將當前幀與前一關鍵幀相應位置的幀區域對送入決策網絡DN,DN根據期望置信分數(expected confidence score)與設定閾值進行比較,決定把當前幀區域送入哪個網絡:如果期望置信分數比設定閾值小,對應區域送入分割網絡;反之,對應區域送入包含空間扭曲的流網絡;最后,不同路徑的幀區域得到不同的分割圖.
3.4.1 DN決策網絡
DN通過估計該區域的期望置信分數與閾值的比較,決定是否把該區域送入分割網絡.閾值是提前設定的,可根據不同的任務設置不同的閾值,并且閾值的大小與分割的精度和幀率有關:較小的閾值產生低的精確度和高的幀率,大部分輸入幀區域送入空間扭曲路徑;較大的閾值產生高的精確度,但速度有所降低.
DN網絡是1個輕量級的CNN,由1個卷積層、3個全連接層組成.DN網絡的作用是評估空間扭曲路徑產生的分割結果(OC)與分割路徑的結果(SC)之間的相似性.DN的輸入是光流網絡第6層的輸出特征圖,輸出為期望置信分數.在訓練階段,DN網絡的目標是學習預測一個幀區域的期望置信值,盡可能的接近真實的置信值.首先,將預測得到的期望置信分數與真實置信分數進行比較,計算均方誤差(MSE)損失;其次,根據MSE用Adam optimizer更新DN中的參數.在執行(測試)階段,DN和光流網絡不訪問真實置信分數.DN首先分別對4個幀區域對進行處理,得到4個期望置信分數;然后把期望置信分數與預先設置的閾值比較:如果比設定閾值小,對應區域送入分割網絡;如果比設定閾值大,對應區域送入包含空間扭曲的流網絡.
當前對于視頻語義分割的研究主要分為2類,一是高層建模,二是特征傳播.
在高層建模方面,一般是在已有網絡結構上增加額外的層,提升分割精確度.通過設計不同的模塊并與現有CNNs網絡相結合,如:STFCN[22]模型是在FCN[1]結構上增加LSTM模塊,利用視頻序列的時序信息提升精度,但該模型的實現過程太過復雜,且沒有考慮相鄰幀之間的相關性,如果每秒的幀數過高,則需要對每幀進行處理,計算成本高;Netwarp[23]模塊是利用相鄰幀的光流信息實現跨時間的內在網絡特征的warping(扭曲),該模塊可以與現存的CNNs相結合實現端到端的訓練,并提升性能;時序門控循環流組件STGRU[27]可以嵌入到靜態語義分割結構,將其轉化為弱監督的視頻處理結構,在Cityscapes[19]和CamVid[18]數據集上都取得了比原有網絡好的結果,在一定程度上提升了性能;新PERAL模型在原有基礎上增加預測學習網絡,用類似GAN[31]的結構把預測結果與待分割的視頻幀進行微調,利用時間一致性提升分割精度.
在特征傳播方面,Clockwork Net[32]采用多級FCN[1],對網絡中不同層次的特征映射使用不同的更新周期,并在一定的網絡層直接重用前一幀的第二級或第三級特性,節省計算量.雖然其高層特性相對穩定,但這種簡單的復制并不能得到最佳結果,特別是當場景發生巨大改變時.DFF[36]通過流網絡[35]中學習到的光流信息,將高層特征從關鍵幀傳播到當前幀,獲得了較好的性能.但單獨的流網絡增加計算成本,光流逐像素的位置變換可能會丟失視頻幀中的空間信息.在Clockwork Net[32]與DFF[36]中關鍵幀的選擇對整體性能至關重要,但以上兩種方法只簡單的使用固定幀間間隔調度[25,31]或啟發式閾值方案[25]選擇關鍵幀,并沒有提供詳細的研究.
由表1可知Low-Latency與其他方法相比所花費的時間和延時都是最低的.就特征傳播而言,Clockwork Net[32]直接重用特征,在一定程度上減少了計算量,但精度不高.GRFP是通過預測學習對分割結果過進行微調,與Clockwork Net相比精確度略高,但耗費的時間更長,屬于用時間換精確度.DFF[36]與Clockwork Net相比的分割精度更高,但后者采用固定幀間間隔的方法選擇關鍵幀,用光流傳播特征,忽略視頻幀的空間對應關系,延時效果最差.并且當視頻快速變化時,會丟失一些重要信息,影響分割結果.與以上方法相比,Low-Latency在延時和精確度方面得到了權衡,在降低延時的同時,保證精確度的穩定,并且該方法可以在線設置中保證低延時.

表1 幾種方法的實驗結果
為提升視頻語義分割在自動駕駛等領域的可能性,解決DFF固定間隔確定關鍵幀方法的弊端,Low-Latency[37]與DVSNet[38]采用動態的關鍵幀更新方法,即每隔時間間隔t選一幀與前一關鍵幀比較,決定是否更新關鍵幀.Low-Latency[37]根據當前幀與前一關鍵幀低層特征之間的偏移量與閾值的比較結果確定該幀是否為關鍵幀,實現關鍵幀的自適應調度.選取低層特征作為比較依據是因為與獲取高層特征相比,低層特征所需的時間少,并且只對關鍵幀提取高層特征可以減少計算量.而DVSNet[38]是將視頻幀分為4個相同的尺寸,把對應幀區域對送入DN網絡,DN根據期望置信分數與閾值的比較結果確定是否更新關鍵幀,實現關鍵幀的動態調度.這2種方法都選擇每隔時間間隔t選一幀與前一關鍵幀進行比較,前者依據低層特征之間的偏移量確定是否更新關鍵幀,后者則根據幀區域對的置信分數確定是否更新關鍵幀.
Low-Latency的目的是在最大程度減小時延的同時保證精確度的穩定,盡可能的滿足視頻語義分割實時性的要求.DVSNet[38]通過改變閾值的大小實現精度與速度的調整,在標準數據集Cityscapes[19]上驗證,證明該方法在幀率為19.8 fps的情況下mIoU為70.4%、30.4 fps情況下得到63.2%的mIoU.以上方法都是在視頻語義分割道路上的探索,利用視頻數據的時間一致性,通過特征傳播、信息重用、更新關鍵幀等方式減少計算量、提升分割精度、降低時延,但目前的研究還不能完全滿足自動駕駛等領域對實時性以及精確度的要求.
以上方法在一定程度上促進了視頻語義分割的發展,簡單模型的組合不能很好地適應時代的要求,依據選擇關鍵幀的方法在減少計算量的同時提升精確度.
(1)關鍵幀選擇
目前對關鍵幀的選擇:一是固定幀間間隔確定;二是固定時間間隔選擇一幀與前一關鍵幀比較確定是否更新關鍵幀.目前的方法并沒有明確給出詳細的閾值計算方法,而且閾值的設定太過主觀.未來可以在確定關鍵幀方面進行改進,用相對客觀的方法選擇關鍵幀,如可以考慮Siamese[39]比較相鄰幀間的相似性,在減少計算量的同時,更注重分割精確度,使視頻語義分割技術更好的應用在自動駕駛等領域.
(2)數據集
用于視頻語義分割的數據集精細標注很少,訓練過程中信息易缺失.因為數據集的有限性,使得模型的遷移能力差,不能很好地適應未訓練的數據集.并且在現實世界中,場景類型多變,所面對的挑戰也更大.可以考慮將真實數據集與虛擬場景數據集相結合,提升模型遷移學習的能力.
(3)特征提取
現有視頻語義分割方法都是在靜態語義分割的基礎上改進,對圖像語義分割的改進可以提升視頻語義分割的性能.如為使輸出分割圖與輸入尺寸相同需對后三層特征圖進行融合,該方法可能丟失信息.為盡可能多的提取特征可以把每一個卷積池化操作后的特征圖都與后面各層特征圖進行融合,最后再通過跳躍結構融合特征,提升分割質量.提升圖像特征提取能力可以進一步的提高視頻語義分割精度,這也是未來對視頻語義分割研究的一個方向.
1 Long L,Shelhamer E,Darrell T.Fully convolutional networks for semantic segmentation.Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition.Boston,MA,USA.2015.3431-3440.