達 婷,楊 靚
(西安微電子技術研究所 西安 710065)
視頻圖像是生活中最常見的一種采集數(shù)據(jù)的方式,但是由于圖像采集設備的限制和采集條件不佳等原因,很難獲得高質(zhì)量的視頻圖像。尤其在移動端實際應用中,比如視頻監(jiān)控、目標追蹤、行為分析等。同時,實例分割作為人機交互的一個重要研究方向被廣泛應用于各種計算機視覺應用場景中。一方面,現(xiàn)實環(huán)境中存在背景復雜、物體被遮擋,還有很多小目標的低分辨率的視頻數(shù)據(jù)。另一方面,在實際應用中,我們既希望得到高準確率又同時要求算法輕量化,所以使得實例分割任務難度較大。
隨著深度學習在計算機視覺方面的大規(guī)模運用,利用深度學習算法進行圖像分割成為一種必然趨勢。卷積神經(jīng)網(wǎng)絡(convolution neural network,CNN)[1]已經(jīng)普遍應用在計算機視覺領域,并且取得了不錯的效果,如深度殘差網(wǎng)絡(residual neural network, ResNet)[2]。目標檢測模型的提出,從CNN[1]、R-CNN[3]、Fast R-CNN[4]、Faster R-CNN[5]發(fā) 展 到Mask R-CNN[6]。R-CNN(regions with CNN features)是一種物體檢測任務的經(jīng)典算法,算法思路是從生成的候選區(qū)域中生成特征向量,然后使用支持向量機(SVM)[7]進行檢測分類。Fast R-CNN 的提出基于R-CNN,同時結合了SPPNet[8]的特點,主要解決了模型速度慢和訓練占用空間大的問題。Faster R-CNN 是通過RPN[5]生成區(qū)域建議框,并實現(xiàn)兩個網(wǎng)絡卷積層的特征共享,大大降低了計算復雜度,真正實現(xiàn)了端到端的目標檢測。Mask R-CNN可以增加不同的分支完成不同的任務,如實例分割、關鍵點檢測等多種任務。由于算法的高精度性,已經(jīng)成為目前最好的實例分割算法之一。
深度神經(jīng)網(wǎng)絡已經(jīng)可以解決越來越復雜的難題。面對海量的數(shù)據(jù),為了提升測試的精度,大家往往會選擇通過增加網(wǎng)絡的層數(shù)以及更為復雜的網(wǎng)絡來提高模型精度。一方面,復雜的模型面臨著內(nèi)存不足的問題;另一方面,高精度、響應速度快、低延遲性,才能達到我們的應用需求。然而真實的應用場景中,如移動端或嵌入式設備(攝像頭、無人機等),龐大而復雜的模型難以被直接應用。所以,嵌入式的平臺由于硬件資源的限制,需要一種內(nèi)存小、測試速度快、精度高的靈活便捷的模型。因此,研究小而高效的模型至關重要,也是目前的一大熱點研究方向。同時,雖然高分辨(high resolution, HR)的視頻圖像已經(jīng)有很多成熟的算法,但在實際應用時,所采集到的視頻數(shù)據(jù)往往是低分辨率(low resolution, LR)的。另一方面,分割算法是一種像素級的分割技術,模型復雜性較高,相比目標檢測和識別來說一直是難題中的難題,尤其是實例分割。對于低分辨率視頻實時場景的實例分割模型,目前一直沒有較為成熟的算法研究。
目前有一些針對高分辨率視頻的目標檢測算法。文獻[9]提出了一種類似于Faster R-CNN 的算法。文獻[10]提出P3D,組合了3 種不同的模塊結構,得到P3D ResNet。文獻[11]以C3D 網(wǎng)絡為基礎,對輸入數(shù)據(jù)提取特征,生成候選時序,最后進行目標檢測。針對于移動端檢測算法的研究,文獻[12]提出了一種改進SSD 的輕量化算法用于小目標檢測。文獻[13]等提出了一種應用于嵌入式平臺的MTYOLO 算法。對于實例分割的研究,文獻[14]將Mask R-CNN 應用于無人駕駛汽車的研究。還有很多其他成熟的視頻檢測和分割算法[15-20]。然而,實例分割算法由于其高復雜性在嵌入式平臺的研究還未成熟。
針對復雜模型的壓縮優(yōu)化算法,目前主要有兩個方向:1)對訓練好的復雜模型進行壓縮優(yōu)化得到較小模型;2)直接設計輕量化模型進行訓練。模型壓縮的目標是在保持模型性能的前提下降低模型大小,同時提升模型的測試速度。針對已存在復雜模型的壓縮優(yōu)化算法有剪枝(Pruning)[21-23]、量化(Quantization)[24-26]、Huffman[27]編碼。此類算法可以將模型進行優(yōu)化,但是壓縮程度范圍較低。針對第二個方向,目前輕量級模型有MobileNet V1[28]、MobileNet V2[29]、 ShuffleNet V1[30]、 ShuffleNet V2[31]等?;贛obileNet V1 輕量級模型由于更容易實現(xiàn)及保持模型性能的特點被廣泛應用,所以本文所選擇基于MobileNet V1 設計實例分割模型。
此外,圖像超分辨(super resolution, SR)是一種由給定的低分辨率(LR)圖像重建出它相應的高分辨率(high resolution, HR)圖像的算法。目前圖像超分辨重建算法主要有以下4 個方向:1)基于經(jīng)典稀疏編碼[32-34];2)基于鄰域回歸的算法[35-38];3)基于深度學習方向的重構算法,這也是近年來很流行的方向[39-43];4)利用GAN 網(wǎng)絡的算法[44-45]。SCN(sparse coding based network)[46]算法是一種基于稀疏編碼網(wǎng)絡的方法,該算法結合稀疏先驗和深度學習的優(yōu)點,且重建圖像視覺質(zhì)量較好。所以本文改進SCN 模型作為低分辯視頻的預處理算法。同時,視頻的時序性使得視頻檢測與圖像不同,常常忽略視頻序列間的強相關性,運動矢量[47-48]是一種高效的幀間預測算法,該算法被作為模型的后處理優(yōu)化算法。
綜上所述,本文針對低分辨率視頻,提出了一種基于MobileNet 的新型輕量化的實例分割模型。
MobileNet 是一種高效且易于實現(xiàn)的輕量級神經(jīng)網(wǎng)絡。其基本單元是深度可分離卷積(depthwise separable convolution)。深度可分離卷積可以分解為兩個更小的操作:depthwise 卷積和pointwise 卷積,如圖1 所示。
圖1 depthwise 卷積和pointwise 卷積
MobileNet 的設計包含兩大結構,如圖2 所示。
圖2 標準卷積結構和深度可分離卷積結構的定義
為了減小計算量該模型利用1×1 卷積降通道。在MobileNet 中,有95%的計算量和75%的參數(shù)屬于1×1 卷積。將N個大小為Dk、通道數(shù)為M的卷積核作用于大小為Df、通道數(shù)同為M的特征圖上,最后得到大小為Dp、通道數(shù)為N的輸出,如圖3 所示。
圖3 卷積的過程
可以看出深度可分離卷積計算量遠遠小于標準卷積的計算量。
2.2.1 MobileNet 的模型設計
MobileNet 的模塊設計如圖4 所示。其中包含5 個階段(Stage)。輸出的通道數(shù)分別為:32,64,128,256,512,1 024。具體的細節(jié)如表1 所示,其中M代表輸入通道,N代表輸出通道。Mask R-CNN 是一種實例分割表現(xiàn)很好的算法,同時ResNet-FPN 作為特征提取的主干網(wǎng)絡(backbone)效果較好。所以本文提出的模型優(yōu)化的算法框架基于Mask R-CNN,將MobileNet V1-FPN 做為主干網(wǎng)絡進行特征提取,分割算法模型如圖5 所示。
圖4 MobileNet 的模塊設計
表1 MobileNet 的設計
圖5 基于MobileNet 的實例分割算法框架
2.2.2 SR 重建模型分支設計
由于實例分割模型的像素級特性與目標檢測模型不同,對數(shù)據(jù)的像素級要求很高。同時,視頻數(shù)據(jù)的質(zhì)量高低對目標檢測有很大的影響,所以首先采用超分辨重建算法對視頻數(shù)據(jù)進行預處理。SCN[46]是一種基于稀疏編碼網(wǎng)絡的方法,重建圖像質(zhì)量好,模型不需要額外任何數(shù)據(jù)的支持。該算法結合稀疏先驗和深度學習的優(yōu)點,將原方法中稀疏表示、映射、稀疏重建3 個獨立優(yōu)化的模塊納入到一個稀疏網(wǎng)絡中,得到全局最優(yōu)解。稀疏編碼網(wǎng)絡充分利用了圖像的先驗信息,首先通過特征提取層得到圖像的稀疏先驗信息, 然后通過LISTA[49]建立了一個前饋神經(jīng)網(wǎng)絡, 該網(wǎng)絡可實現(xiàn)圖像的稀疏編碼。
在網(wǎng)絡結構方面, SCN 保留了SRCNN[50]的圖像塊提取、表示層和重建層部分,并在中間層加入LISTA 網(wǎng)絡,如圖6 所示。輸入圖像Iy首先經(jīng)過卷積層H,該卷積層H為每個LR 補丁提取特征。然后,將每個LR 補丁y輸入具有有限數(shù)量的k個循環(huán)級的LISTA 網(wǎng)絡中,以獲得其稀疏系數(shù)α,再重建HR 圖像補丁,最終生成HR 圖像。該算法用均方誤差(mean square error, MSE)作為代價函數(shù)用來訓練網(wǎng)絡。
圖6 SCN 算法流程圖
圖7 改進的SR 重建算法框架
進一步改進該算法, 由于圖像重建后包含了更多的高頻信息,同時下采樣(downsampling)可以保留圖像的邊緣、紋理和細節(jié)信息,所以采取多次下采樣及重構獲得更高質(zhì)量的圖像。將輸入的L1(LR)圖像經(jīng)過SCN(1)生成H1(HR)圖像后,經(jīng)過下采樣得到L2,再次經(jīng)過SCN(2),得到最終的H2(HR)圖像,改進的算法流程如圖7 所示。圖8展示了卷積層和重建層結果舉例,圖中展示了卷積層H和重建層G的特征及卷積核。本文用PSNR[51]、SSIM[52]進行實驗驗證,實驗結果如表2 所示,從表中可以看出,PSNR 及SSIM 的結果均有所提高。實驗結果如圖9 所示,圖中展示了4 組數(shù)據(jù)的對比結果,對比算法包括雙三次插值(bicubic interpolation)、SCN 及本文算法。從圖中可以看出改進算法重建的圖像在邊緣部分更加光滑,殘差圖對比結果如圖10 所示,圖中展示了3 種不同重建算法和HR 圖像的殘差圖,從圖中可以看出本文算法與原圖的殘差圖最接近,因此重建算法效果更好。
圖8 卷積層和重建層結果舉例
表2 PSNR 和SSIM 結果對比
圖9 改進的SR 重構算法結果對比
圖10 殘差圖結果對比
2.2.3 掩碼的預測模型分支設計
對于視頻幀的進行實例分割時,往往忽略了幀與幀之間的時序性。很多目標在某些幀未被檢測到,但在相鄰幀檢測到。由于幀間的強相關性,對未檢測到的掩碼(mask)進行后處理,得到最終的掩碼序列(mask sequence)。
運動矢量(motion vector, MV)是一種高效的幀間預測算法,本文采取效果最好的全局搜索算法。假設,每個塊的大小為M×N(M=2,N=2)。水平方向和垂直方向可搜索的最大位移為1,把搜索候選區(qū)域3×3 內(nèi)所有的像素塊逐個與當前宏塊進行比較,偏移量為2。塊匹配估計準則查找具有最小匹配誤差的一個像素塊為匹配塊,其對應偏移量即為所求運動矢量,最后找到全局最優(yōu)點,即最佳匹配塊。塊匹配估計準則是判斷塊相似程度的依據(jù), 本文采取平均絕對誤差函數(shù)(mean absolute deviation,MAD)作為塊匹配估計準則。其函數(shù)定義為:
算法具體流程如下,首先找到每個掩碼的重心,并用相鄰幀的重心最小距離將掩碼進行排序,得到每個目標的初始掩碼序列。然后,對于未檢測到的掩碼,用相鄰已得到的掩碼作為參考圖像,從左上角開始,以宏塊大小為步長,對于每一個宏塊,得到運動矢量,并將參考圖像中的該宏塊放到所預測的圖像中,得到預測的掩碼,以此類推,得到最終掩碼預測序列。該算法的預測過程如圖11 所示。其中,紅色實線框代表已檢測到的目標,黃色虛線框代表未檢測到的目標。從圖中看出,F(xiàn)rame(i)通過相鄰幀F(xiàn)rame(i-2)及Frame(i-1)得到預測的掩碼,F(xiàn)rame(i+1)通過Frame(i)及Frame(i+2)進行預測。圖12 展示了運動矢量的實驗結果,其中圖12e 和12f 列舉了運動矢量的統(tǒng)計結果。圖13進一步展示了掩碼的預測過程。同時圖14 展示了兩組預測結果。兩組結果的第二排展示出相鄰兩幀間的殘差圖。圖15 列舉了最終掩碼序列的預測結果。
圖11 掩碼的預測模型
圖12 運動矢量的實驗結果
本文算法的整體框架如圖16 所示,該模型包含SR 重建模型分支(SR reconstruction branch)、基于MobileNet 的實例分割模型分支和掩碼的預測模型分支(Mask prediction branch)3 大部分,是一種針對低分辨率視頻的新型輕量化實例分割模型。
圖13 掩碼的預測過程
圖14 兩組掩碼預測結果
圖15 最終掩碼序列的預測結果
圖16 實例分割模型整體框架
VisDrone2018 是由無人機拍攝的實時場景視頻數(shù)據(jù)。該數(shù)據(jù)的特點是每一幀存在很多小尺寸目標,具有低分辨率,而且很多數(shù)據(jù)由于鏡頭抖動等造成數(shù)據(jù)質(zhì)量較低,能很好展示實時街景場景,具有數(shù)據(jù)多樣性,另一組數(shù)據(jù)集Street_View_MB7500也反映實時街景,符合低分辨率特性。數(shù)據(jù)集描述如表3 所示。本文采用該兩組數(shù)據(jù)集作為實驗數(shù)據(jù)。將每個類按5∶3∶2 隨機抽取作為訓練數(shù)據(jù)集、驗證集及測試集。
表3 實驗數(shù)據(jù)集
NVIDIA Jetson TX2 采用256 核NVIDIA Pascal架構和8 GB 內(nèi)存 ,如表4 所示,計算更快,推理能力強,是一種嵌入式AI 計算設備。本文采用此設備作為嵌入式平臺并進行實驗分析。訓練模型的學習率設為0.000 1,圖17 表示了訓練過程的loss 變化。
表4 NVIDIA TX2 的技術規(guī)格
圖17 Loss 的變化結果
本文對ResNet-FPN 及MobileNet-FPN 作為backbone 進行了對比實驗。表5 表示了壓縮前后實驗結果對比。從表中看出,未壓縮的ResNet-FPN訓練模型大小為255 M,基于MobileNet-FPN 的模型大小為88 M,所以模型降低了近2/3 大小的空間。同時,SPF (seconds per frame)在模型壓縮后大大減少,吞吐量(Throughput)也有很大提高?;贛obileNet-FPN 的準確率高于ResNet-FPN。圖18列舉了壓縮前后基于ResNet-FPN 與MobileNet-FPN的分割結果對比。虛線框表示未檢測到的目標,實線框則表示已檢測的物體。從圖中看出,基于MobileNet 的模型的結果優(yōu)于ResNet,且準確率較高。在兩類模型中,本文算法的HR 圖像的檢測率高于LR 圖像。實驗證明,該算法在目標檢測方向獲得了較好的結果。
表5 壓縮前后實驗對比
圖18 基于MobileNet 與ResNet 的分割結果對比
在基于的MobileNet-FPN 的分割模型下,不同數(shù)據(jù)的實例分割結果對比如圖19 所示。虛線框表示該目標未被檢測到,實線框表示已檢測到。為了更好展現(xiàn)對比,圖中只展示出部分目標的結果。從圖中看出,圖像經(jīng)過SR 重構后,實線框明顯增多,說明圖像經(jīng)過3 種不同的重建算法后,實例分割效果逐漸提升。所以圖像的質(zhì)量高低對于實例分割算法具有很大的影響。表6 列舉了實驗最終結果統(tǒng)計,從LR、HR(雙三次插值)、HR (SCN)到HR (本文算法)。表中可以看出SCN 預 處 理 后, mAP (mean average precision)提升到67.9%,改進SCN 算法后mAP 達到69.1%。最后經(jīng)過掩碼預測的算法,模型的mAP 提高到了69.8%。因此,本文算法的mAP 和mIoU (mean intersection over union)在一定程度上均有所提高,具體的實驗結果統(tǒng)計如圖20 所示。綜上所述,本文提出的基于MobileNet-FPN 的新型輕量化實例分割算法在低分辨率場景中具有內(nèi)存小、測試速度快、精度高等特性,且易于移植到嵌入式平臺中。
表6 實驗對比結果
圖20實驗結果統(tǒng)計
本文提出了一種基于MobileNet,結合超分辨及幀間預測的新型輕量化實例分割算法。實驗證明該算法在實時場景視頻中的準確率較高,內(nèi)存小,測試速度快且易于移植到嵌入式平臺中。