亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于深度學習的計算機視覺研究新進展

        2022-04-14 06:33:30盧宏濤羅沐昆
        數(shù)據(jù)采集與處理 2022年2期
        關鍵詞:示意圖深度結(jié)構(gòu)

        盧宏濤,羅沐昆

        (上海交通大學計算機科學與工程系,上海 200240)

        引言

        近20 年來,隨著深度學習技術(shù)的迅猛發(fā)展和圖形處理器(Graphics processing unit,GPU)等硬件計算設備的廣泛普及,深度學習技術(shù)幾乎已經(jīng)應用到計算機視覺的各個領域,如目標檢測、圖像分割、超分辨率重建及人臉識別等,并在圖像搜索、自動駕駛、用戶行為分析、文字識別、虛擬現(xiàn)實和激光雷達等產(chǎn)品中具有不可估量的商業(yè)價值和廣闊的應用前景[1]?;谏疃葘W習技術(shù)的計算機視覺同時可以對其他學科領域產(chǎn)生深遠的影響,如在計算機圖形學中的動畫仿真和實時渲染技術(shù)、材料領域的顯微圖像分析技術(shù)、醫(yī)學圖像分析處理技術(shù)、實時評估師生課堂表現(xiàn)和考場行為的智慧教育、分析運動員比賽表現(xiàn)和技術(shù)統(tǒng)計的智能系統(tǒng)等。

        深度學習早在1986 年就被Dechter[2]引入機器學習領域,2000 年Aizenberg 等[3]又在機器學習領域引入了人工神經(jīng)網(wǎng)絡(Artificial neural network,ANN)[4]。深度學習方法由多層組成,用于學習多層次抽象的數(shù)據(jù)特征[5]。在人工神經(jīng)網(wǎng)絡領域中,深度學習又被稱為分層學習[6],是一種通過在不同計算階段精確地分配分數(shù)來調(diào)節(jié)網(wǎng)絡激活的技術(shù)[4]。深度學習常常用多種抽象結(jié)構(gòu)來學習復雜的映射關系,如2009 年蒙特利爾大學的Bengio 教授提出的帶隱藏層的ANN[7]等。深度學習技術(shù)可以被視作一種表征學習,是機器學習的一個分支。

        2005 年多倫多大學的Hinton 教授團隊試圖用圖模型模擬人類的大腦[8],在文獻[9]中提出了一種逐層貪婪算法來預訓練深度信念網(wǎng),克服了深度網(wǎng)絡難以訓練的弊端,并用自編碼器降低數(shù)據(jù)維度[10],開啟了深度學習的熱潮,使其被廣泛應用在語音識別、計算機視覺和自然語言處理等領域。2011—2012 年,深度學習技術(shù)在語音識別領域中最先取得重大突破,Dahl 團隊[11]和Hinton 團隊[12]先后將識別錯誤率降至20%~30%。在2012 年的ImageNet 大規(guī)模視覺識別挑戰(zhàn)競賽(ImageNet large scale visual recognition challenge,ILSVRC)中,Hinton 的學生提出的AlexNet[13]以超過第二名準確率10%的巨大優(yōu)勢奪得冠軍,深度學習正式進入了爆發(fā)期。近年來各大互聯(lián)網(wǎng)科技公司,如Google、Microsoft、Facebook、百度、阿里巴巴和騰訊等也爭相投入大規(guī)模深度學習系統(tǒng)的研發(fā)中。

        筆者在2016 年發(fā)表“深度卷積神經(jīng)網(wǎng)絡在計算機視覺中的應用研究綜述”[1],總結(jié)了2016 年之前深度卷積神經(jīng)網(wǎng)絡在計算機視覺中的研究成果。本文在文獻[1]的基礎上,重點綜述2016 年以后基于深度學習的計算機視覺研究新進展。但為了表述的完整和邏輯的嚴謹,本文與文獻[1]內(nèi)容有少量重合。

        1 通用深度神經(jīng)網(wǎng)絡模型

        本文將解決圖像分類任務的神經(jīng)網(wǎng)絡模型稱為通用網(wǎng)絡,這類模型通常是解決其他視覺任務的基礎模型。1989 年AT&T 貝爾實驗室的研究員LeCun 通過反向傳播算法成功地訓練了卷積神經(jīng)網(wǎng)絡[14],這項工作代表了20 世紀80 年代神經(jīng)網(wǎng)絡的研究成果。1998 年LeCun 等基于前人的工作提出了LeNet[15],由2 個卷積層和3 個全連接層組成,因此也被稱為LeNet-5,其結(jié)構(gòu)如圖1 所示。但LeNet-5 的復雜度遠遠無法和今天的深度網(wǎng)絡模型相比,性能也相差懸殊,但在當時取得了和支持向量機相媲美的效果,并被廣泛應用于識別手寫數(shù)字,受到了廣泛的關注。

        圖1 LeNet-5 結(jié)構(gòu)示意圖[15]Fig.1 Structure of LeNet-5[15]

        在LeNet 提出后,很長一段時間卷積神經(jīng)網(wǎng)絡并不是計算機視覺領域的主流方法,因為LeNet 只在小數(shù)據(jù)集上表現(xiàn)良好,在規(guī)模更大、更真實的數(shù)據(jù)集上表現(xiàn)一般。由于當時未普及高性能的神經(jīng)網(wǎng)絡加速硬件設備,卷積神經(jīng)網(wǎng)絡訓練的時間成本和空間開銷太大。因此在2012 年AlexNet[13]提出之前,大多數(shù)研究者都采用SIFT[16]、HOG[17]和SURF[18]等手工方法提取特征,并花費大量的精力進行數(shù)據(jù)整理。

        2007 年,普林斯頓大學李飛飛團隊基于WordNet 的層級結(jié)構(gòu)開始搭建ImageNet 數(shù)據(jù)集[19],通過網(wǎng)絡抓取、人力標注和眾包平臺等各種方式,最終在2009 年公開。如今ImageNet 數(shù)據(jù)集包含超過14 000 000 張帶標簽的高清圖像、超過22 000 個類別。從2010 年開始舉辦的ILSVRC 圖像分類比賽成為計算機視覺領域的重要賽事,用于評估圖像分類算法的準確率。ILSVRC 比賽數(shù)據(jù)集是ImageNet 的一個子集,包含1 000 類、數(shù)百萬張圖片。來自NEC 實驗室的林元慶帶領NEC-UIUC 團隊以28.2%的top-5 錯誤率贏得了2010 年ILSVRC 冠軍。2010 和2011 這兩年的冠軍方案主要采用HOG[17]、LBP[20-21]等算法手動提取特征再輸入到特征向量機進行分類。

        2012 年的冠軍AlexNet[13]首次將深度學習技術(shù)應用到大規(guī)模圖像分類領域,證明了深度學習技術(shù)學習到的特征可以超越手工設計的特征,開啟了計算機視覺領域中的深度學習熱潮。AlexNet 和LeNet結(jié)構(gòu)理念相似,采用5 層卷積層和3 層全連接層,激活函數(shù)用ReLU 取代了sigmoid,用dropout 方法取代了權(quán)重衰減緩解過擬合,結(jié)構(gòu)如圖2 所示。AlexNet 取得了17.0%的top-5 錯誤率。

        圖2 AlexNet 結(jié)構(gòu)示意圖[13]Fig.2 Structure of AlexNet[13]

        2014 年的冠軍團隊提出的ZFNet[22]通過反卷積可視化CNN 學習到的特征,取得了11.7%的錯誤率。2015 年的冠軍團隊Szegedy 等提出的GoogLeNet[23]將錯誤率降到了6.7%。GoogLeNet 提出了一種Inception 模塊,如圖3 所示。這種結(jié)構(gòu)基于網(wǎng)絡中的網(wǎng)絡(Network in network,NiN)的思想[24],有4條分支,通過不同尺寸的卷積層和最大池化層并行提取信息,1×1 卷積層可以顯著減少參數(shù)量,降低模型復雜度。GoogLeNet 一共使用9 個Inception 模塊,和全局平均池化層、卷積層及全連接層串聯(lián)。Szegedy 提出很多改進的Inception 版本,陸續(xù)使用了Batch Normalization[25]、Label Smoothing[26]和殘差連接[27]等方法。

        圖3 Inception 模塊示意圖[23]Fig.3 Inception block[23]

        2015 年的ILSVRC 亞軍是由牛津大學視覺幾何團隊提出的VGGNet[28]。VGGNet 重復使用了3×3 的卷積核和2×2 的池化層,將深度網(wǎng)絡加深到16~19 層,如圖4所示。

        圖4 VGG 模塊和VGG 結(jié)構(gòu)示意圖Fig.4 Block and structure of VGG

        2016 年,微軟亞洲研究院He 等提出的ResNet[29]奪得了ILSVRC 冠軍,將top-5 錯誤率降至3.6%。ResNet 最深可達152 層,以絕對優(yōu)勢獲得了目標檢測、分類和定位3個賽道的冠軍。該研究提出了殘差模塊的跳接結(jié)構(gòu),網(wǎng)絡學習殘差映射f(x)-x,每1 個殘差模塊里有2 個相同輸出通道的3×3 卷積層,每個卷積層后接1 個BN(Batch normalization)層和ReLU 激活函數(shù)。跳接結(jié)構(gòu)可以使數(shù)據(jù)更快地向前傳播,保證網(wǎng)絡沿著正確的方向深化,準確率可以不斷提高。ResNet 的思想產(chǎn)生了深遠的影響,是深度學習領域的一個重要進步,奠定了訓練更深的深度網(wǎng)絡的基礎,其結(jié)構(gòu)如圖5 所示。

        圖5 殘差模塊Fig.5 Residual block

        2017 年提出的DenseNet[30]和ResNeXt[31]都是受ResNet[29]的啟發(fā)。DenseNet 的目標不僅僅是學習殘差映射,而且是學習類似泰勒展開的更高階的項。因此DenseNet 的跳接結(jié)構(gòu)沒有用加法,而是用了聯(lián)結(jié),如圖6 所示。

        圖6 ResNet 和DenseNet 結(jié)構(gòu)比較Fig.6 Structures of ResNet and DenseNet

        ResNeXt[31]則是結(jié)合了ResNet[29]和Inception v4[27],采用GoogLeNet 分組卷積的思想,在簡化的Inception 結(jié)構(gòu)中加入殘差連接,并通過一個超參數(shù)“基數(shù)”調(diào)整ResNeXt 模塊中分支的數(shù)量。這種簡化的Inception 結(jié)構(gòu)不需要人工設計每個分支,而是全部采用相同的拓撲結(jié)構(gòu),結(jié)構(gòu)如圖7 所示。

        圖7 ResNet 殘差模塊和基數(shù)為32 的ResNeXt 模塊[31]Fig.7 ResNet block and ResNeXt block with cardinality of 32[31]

        ResNeXt 在2016 年ILSVRC 的分類任務上獲得了亞軍。

        和ResNeXt 同年提出的Xception[32]也是一種基于Inception 分組卷積思想的模型。分組卷積的核心思想是將通道拆分成不同大小感受野的子通道,不僅可以提取多尺寸的特征,還可以減少參數(shù)量,降低模型復雜度。Xception 模塊可以視為一種極端情況的Inception 模塊,它的輸入先經(jīng)過一個1×1 的卷積層后進入多個完全相同的3×3 卷積層分支,如圖8所示。

        圖8 經(jīng)典及簡化的Inception 模塊和Xception 模塊[32]Fig.8 Classical and simplified Inception blocks and Xception block[32]

        ImageNet 數(shù)據(jù)規(guī)模大,圖像類別多,因此在ImageNet 上訓練的模型泛化能力較好。如今很多模型都是在ImageNet 上預訓練后進行微調(diào),有些模型微調(diào)后準確率可以超過只在目標訓練集上訓練模型的20%。受ImageNet 自由開放思想的影響,很多科技巨頭也陸續(xù)開放了自己的大規(guī)模數(shù)據(jù)集:2018 年谷歌發(fā)布了Open Image 數(shù)據(jù)集[33],包含了被分為6 000 多類的900 萬張帶有目標位置信息的圖片;JFT-300M 數(shù)據(jù)集[34]包含300 萬張非精確標注的圖像;DeepMind 也公開了Kinetics 數(shù)據(jù)集[35-36],包含650 000 張人體動作的視頻截圖。這些大規(guī)模數(shù)據(jù)集增強了深度學習模型的泛化能力,為全世界深度學習工作者和數(shù)據(jù)科學家提供了數(shù)據(jù)支持,保障了深度學習領域的蓬勃發(fā)展。

        生成模型可以學習數(shù)據(jù)中隱含的特征并對數(shù)據(jù)分布進行建模,它的應用非常廣泛,可以對圖像、文本、語音等不同數(shù)據(jù)建模真實的分布,然后基于這一分布通過采樣生成新的數(shù)據(jù)。在深度學習之前就已經(jīng)有許多生成模型被提出,但由于生成模型往往難以建模,因此科研人員遇到了許多挑戰(zhàn)。變分自編碼器(Variational autoencoder,VAE)[37]是一種當前主流的基于深度學習技術(shù)的生成模型,它是對標準自編碼器的一種變形。自編碼器將真實樣本的高級特征通過編碼器映射到低級特征,被稱為隱向量(或潛向量),然后又通過解碼器生成相同樣本的高級特征。標準自編碼器和變分自編碼器的區(qū)別在于對隱向量的約束不同。標準自編碼器關注重構(gòu)損失,即

        式中:X和X′分別為輸入圖像和重構(gòu)圖像。

        變分自編碼器則強迫隱變量服從單位高斯分布,優(yōu)化如下?lián)p失函數(shù)

        式中:E表示期望;z為隱變量;q(z|X)表示隱變量的建議分布,即編碼器輸出的隱變量的分布;p(z)表示標準高斯分布;P(X|z)表示解碼器分布;KL 表示KL 散度。式(2)等號右邊第1 項表示重構(gòu)圖片的精確度,用均方誤差度量;第2 項表示圖片的潛變量分布和單位高斯分布之間的差異,用KL 散度來度量。為了優(yōu)化KL 散度,變分自編碼器生成1 個均值向量和1 個標準差向量用于參數(shù)重構(gòu)。此時在隱向量分布中采樣就可以生成新的圖片。自編碼器和變分自編碼器示意圖如圖9、10 所示。

        圖9 自編碼器示意圖Fig.9 Autoencoder

        圖10 變分自編碼器示意圖Fig.10 Variational autoencoder

        生成對抗網(wǎng)絡(Generative adversarial net,GAN)[38]是另一種十分常見的基于深度學習技術(shù)的生成模型,它包括2個同時進行的組件:生成器和判別器,其結(jié)構(gòu)如圖11所示。生成器從隱向量生成圖像,判別器對真?zhèn)螆D像進行分類,二者相互對抗,互相促進。

        圖11 生成對抗網(wǎng)絡示意圖Fig.11 Generative adversarial net

        變分自編碼器和生成對抗網(wǎng)絡近年來有了顯著的發(fā)展[39]。在計算機視覺領域中,變分自編碼器和生成對抗網(wǎng)絡已經(jīng)被廣泛應用于圖像翻譯、超分辨率、目標檢測、視頻生成和圖像分割等領域,具有廣闊的研究價值和應用前景。

        2 輕量化網(wǎng)絡

        隨著網(wǎng)絡層數(shù)的加深,各種深度網(wǎng)絡模型的性能變得越來越好,隨之而來的問題是模型巨大的參數(shù)量和緩慢的推理速度,因此輕量化網(wǎng)絡的需求變得愈加強烈。輕量化網(wǎng)絡的設計核心是在盡可能保證模型精度的前提下,降低模型的計算復雜度和空間復雜度,從而使得深度神經(jīng)網(wǎng)絡可以被部署在計算性能和存儲空間有限的嵌入式邊緣設備上,實現(xiàn)從學術(shù)界到工業(yè)界的躍遷。在分布式訓練中,小模型使得服務器之間通信產(chǎn)生的帶寬負擔也相對較小。目前學術(shù)界和工業(yè)界設計輕量化的深度網(wǎng)絡模型主要有4 種方法:人工設計的輕量化神經(jīng)網(wǎng)絡、基于神經(jīng)網(wǎng)絡架構(gòu)搜索(Neural architecture search,NAS)的自動設計神經(jīng)網(wǎng)絡技術(shù)、卷積神經(jīng)網(wǎng)絡壓縮和基于AutoML 的自動模型壓縮。

        2016 年由伯克利和斯坦福的研究者提出的SqueezeNet[40]是最早進行深度模型輕量化的工作之一,其結(jié)構(gòu)如圖12 所示。SqueezeNet 提出了一種Fire 模塊用來減少參數(shù)量,其結(jié)構(gòu)如圖13 所示。它分成Squeeze和Expand 兩部分:Squeeze 層只由數(shù)個1×1 卷積層構(gòu)成;Expand 層則包含數(shù)個1×1 和3×3 卷積層。Fire 模塊和Inception 模塊的結(jié)構(gòu)很相近,二者都使用了1×1 和3×3 組合的拓撲結(jié)構(gòu),在使用了不同尺寸的卷積層后進行連結(jié)。在網(wǎng)絡結(jié)構(gòu)上,SqueezeNet 借鑒了VGG 堆疊的形式,在2 層卷積層和池化層中間堆疊了8 個Fire 模塊。最終SqueezeNet 在ImageNet 上實現(xiàn)了AlexNet 級別的精確度,參數(shù)減少到原來的1/50。通過使用Deep Compression 模型壓縮技術(shù),SqueezeNet 的參數(shù)量僅有50 萬個,約為AlexNet 的1/500。

        圖12 SqueezeNet 網(wǎng)絡結(jié)構(gòu)示意圖[40]Fig.12 Structure of SqueezeNet[40]

        圖13 SqueezeNet 的Fire 模塊[40]Fig.13 Fire block in SqueezeNet[40]

        MobileNet[41]是谷歌于2017 年提出的輕量化網(wǎng)絡,核心是通過用深度可分離卷積代替標準的卷積。深度可分離卷積將標準卷積拆成1 個深度卷積和1 個逐點卷積(也就是1×1 卷積),可以將計算量降低至原來的1/8~1/9。標準卷積和深度可分離卷積+BN+ReLU 結(jié)構(gòu)如圖14 所示。

        圖14 標準卷積+BN+ReLU 網(wǎng)絡和深度可分離卷積+BN+ReLU 網(wǎng)絡[41]Fig.14 Standard convolution+BN+ReLU network and depthwise separable convolution+BN+ReLU network[41]

        深度可分離卷積的結(jié)構(gòu)成為了很多輕量化網(wǎng)絡設計的參照,這種結(jié)構(gòu)的有效性自從被Xception[32]證明后成為輕量化網(wǎng)絡設計的主流思想。比MobileNet 晚2 個月由Face++團隊提出的ShuffleNet[42]基于這一思想,使用了Channel Shuffle 和分組卷積。分組卷積的思想最早由AlexNet[13]提出,初衷是為了降低單張GPU 的占用,將輸入通道分成相同的幾條分支然后連結(jié),從而減少訓練參數(shù)量。之后的Inception 模塊將這一思想發(fā)揚光大,ResNeXt[31]的成功也證明了分組卷積的有效性。由于分組卷積會讓信息的流通不當,ShuffleNet 設計了Channel Shuffle,將各組通道均分并進行混洗,然后依次重新構(gòu)成特征圖,示意圖如圖15 所示。

        圖15 Channel Shuffle 示意圖[42]Fig.15 Diagrammatic sketch of Channel Shuffle[42]

        圖15 中,Channel Shuffle 后第2 個組卷積GConv2 的輸入信息來自各個通道,圖15(c,b)達到了一樣的效果。ShuffleNet 模塊的設計借鑒了ResNet bottleneck 的結(jié)構(gòu),如圖16 所示。

        圖16 ShuffleNet 模塊[42]Fig.16 ShuffleNet block[42]

        ShuffleNet 模塊摒棄了Pointwise 卷積,因為對于輸入維度較高的小型網(wǎng)絡,1×1 卷積的開銷巨大。例如在ResNeXt 模塊中,1×1 卷積占據(jù)了93.4%的計算量。在網(wǎng)絡拓撲上,SqueezeNet 和MobileNet 都采用了VGG(Visual geometry group)的堆疊結(jié)構(gòu),而ShuffleNet 采用了ResNet 的跳接結(jié)構(gòu)。

        2018 年,MobileNet 和ShuffleNet 又相繼提出了改進版本。MobileNet v2[43]結(jié)構(gòu)如圖17 所示,采用了效率更高的殘差結(jié)構(gòu),提出了一種逆殘差模塊,并將MobileNet v1 模塊的最后一個ReLU6 層改成線性層。ShuffleNet v2[44]用更直接的運算速度評估模型,摒棄了之前如每秒浮點運算次數(shù)(FLOPS)等間接的指標。結(jié)構(gòu)上ShuffleNet v2 采用了一種Channel Split 操作,將輸入的特征圖分到2 個分支里,最后通過連結(jié)和Channel Shuffle 合并分支并輸出。ShuffleNet v1 和ShuffleNet v2 結(jié)構(gòu)如圖18 所示。

        圖17 MobileNet v2 模塊[43]Fig.17 MobileNet v2 block[43]

        圖18 ShuffleNet v1 和ShuffleNet v2 結(jié)構(gòu)[44]Fig.18 Structures of ShuffleNet v1 and ShuffleNet v2[44]

        2020 年華為諾亞方舟實驗室的團隊提出了GhostNet[45],如圖19 所示,可以用更少的參數(shù)量提取更多的特征圖。首先對輸入特征圖進行卷積操作,然后進行一系列簡單的線性操作生成特征圖,從而在實現(xiàn)了傳統(tǒng)卷積層效果的同時降低了參數(shù)量和計算量。該團隊認為性能較好的主流卷積神經(jīng)網(wǎng)絡如ResNet-50 通常存在大量冗余的特征圖,正是這些特征圖保證了網(wǎng)絡對數(shù)據(jù)深刻的理解。Ghost 模塊用更小的代價模擬了傳統(tǒng)卷積層的效果。

        圖19 卷積層和Ghost 模塊[45]Fig.19 Convolutional layer and Ghost module[45]

        人工設計的輕量化網(wǎng)絡MobileNet 系列[41,43]和ShuffleNet 系列[42,44]的基本思想主要是通過分離卷積操作減少運算量,再采用殘差跳接結(jié)構(gòu)和Channel Shuffle 等混合通道的操作促進分支間的交流,提高信息利用率。隨著模型規(guī)模的擴大,硬件資源變得更加稀缺,在保證精度的前提下壓縮并加速模型將會是經(jīng)久不衰的熱門研究方向,也是信息化時代發(fā)展的必經(jīng)之路。近年來大量的關于模型壓縮和結(jié)構(gòu)優(yōu)化的工作不斷涌現(xiàn),如網(wǎng)絡剪枝[46]、張量分解[47-48]和知識遷移[49]等。輕量化模型的發(fā)展有助于深度學習技術(shù)的推廣和應用,推動深度學習技術(shù)的產(chǎn)業(yè)化發(fā)展。

        3 面向特定任務的深度網(wǎng)絡模型

        計算機視覺任務眾多,深度學習最開始在圖像分類實現(xiàn)突破,當前深度學習幾乎深入到了計算機視覺的各個領域。本節(jié)將針對目標檢測、圖像分割、圖像超分辨率和神經(jīng)架構(gòu)搜索等其他計算機視覺任務簡要總結(jié)深度學習方法。

        3.1 目標檢測

        目標檢測任務作為計算機視覺的基本任務之一,包含物體的分類、定位和檢測。近年來隨著深度學習技術(shù)的發(fā)展,目標檢測算法已經(jīng)從基于手工特征的HOG[17]、SIFT[16]及LBP[20-21]等傳統(tǒng)算法轉(zhuǎn)向了基于深度神經(jīng)網(wǎng)絡的機器學習技術(shù)。自2014 年Girshick等提出了R-CNN[50]模型以來,目標檢測就成為了計算機視覺最受人關注的領域之一。在R-CNN 之后,Girshick 團隊相繼提出了Fast R-CNN[51]、Faster R-CNN[52]等一系列模型,這些模型均將目標檢測問題歸結(jié)為如何提出可能包含目標的候選區(qū)域和如何對這些區(qū)域分類兩個階段,因此這類模型也被稱作兩階段模型。

        受當時性能最好的圖像分類網(wǎng)絡,如AlexNet[13]和VGG[28]等的影響,R-CNN 系列模型的網(wǎng)絡結(jié)構(gòu)由2 個子網(wǎng)組成:第1 個子網(wǎng)用普通分類網(wǎng)絡的卷積層提取共享特征;第2 個子網(wǎng)的全連接層進行感興趣區(qū)域(Region of interest,RoI)的預測和回歸,中間用一個RoI 池化層連接。這些網(wǎng)絡的結(jié)構(gòu)在文獻[1]中已做介紹,這里不再贅述。在ResNet[29]、GoogLeNet[23]等性能更強的分類網(wǎng)絡出現(xiàn)后,這種全卷積網(wǎng)絡結(jié)構(gòu)也被應用到了目標檢測任務上。然而,由于卷積層并不能有針對性地保留位置信息,這種全卷積結(jié)構(gòu)的檢測精度遠低于它的分類精度。R-FCN[53]提出了一種位置敏感分數(shù)圖來增強網(wǎng)絡對于位置信息的表達能力,提高網(wǎng)絡的檢測精度,其結(jié)構(gòu)如圖20 所示。R-FCN[53]在PASCAL VOC 2007 數(shù)據(jù)集上平均精度均值(mean Average precision,mAP)達到了83.6%,單張圖片的推理速度達到170 ms。

        圖20 R-FCN 結(jié)構(gòu)示意圖[53]Fig.20 Structure of R-FCN[53]

        如何準確識別不同尺寸的物體是目標檢測任務的難點之一。圖21(a)中的方法通過對不同尺寸的圖片提取不同尺度特征來增強不同尺度特征的語義信息,但時間和計算成本太高。圖21(b)中的單一特征圖方法即為SPPnet[54]、Fast R-CNN[51]和Faster R-CNN[52]使用的方法,即在最后一層的特征圖上進行預測。盡管速度較快,但包含的語義信息很少,不能準確地預測目標的位置。圖21(c)是SSD[55]采用的多尺度融合方法,從網(wǎng)絡的不同層抽取不同尺度的特征分別進行預測,這種方法不需要額外的計算,但不能很好地提取小目標敏感的淺層高分辨率特征。

        圖21 多尺度檢測的常見結(jié)構(gòu)[56]Fig.21 Common structures of multiscale detection[56]

        特征金字塔網(wǎng)絡(Feature Pyramid network,F(xiàn)PN)[56]借鑒了ResNet 跳接的思想,結(jié)合了層間特征融合與多分辨率預測,其結(jié)構(gòu)如圖22 所示。文獻[56]將FPN用于Faster R-CNN 的區(qū)域候選網(wǎng)絡(Region proposal network,RPN),在每層金字塔后面接一個RPN 頭。由于輸入了多尺度的特征,因此不需要生成多尺度的錨框,只需要在每個尺度上設置不同的寬高比,并共享參數(shù)。以ResNet-101為骨干網(wǎng)絡的Faster R-CNN+FPN 在COCO test-dev 上AP@0.5 達到了59.1%,超過不用FPN 的Faster R-CNN 3.4%。實驗證明對于基于區(qū)域的目標檢測器,該特征金字塔結(jié)構(gòu)的特征提取效果優(yōu)于單尺度的特征提取效果。

        圖22 FPN 結(jié)構(gòu)示意圖[56]Fig.22 Structure of FPN[56]

        YOLO[57]是單階段模型的代表,它沒有提出候選區(qū)域的過程,而是直接將提出候選區(qū)域和分類統(tǒng)一為一個邊界框回歸的問題,將整張圖片作為網(wǎng)絡的輸入,在輸出層對邊界框位置信息和類別進行回歸,實現(xiàn)了端到端的學習過程,其示意圖如圖23 所示。它首先將圖片縮放并劃分為等分的網(wǎng)格,然后在每張圖片上運行單獨的卷積網(wǎng)絡,最后用非極大值抑制得到最后的預測框。損失函數(shù)被分為3 部分:坐標誤差、物體誤差和類別誤差。為了平衡類別不均衡和大小物體等帶來的影響,損失函數(shù)中添加了權(quán)重并將長寬取根號。

        圖23 YOLO 示意圖[57]Fig.23 Pipeline of YOLO[57]

        YOLO 的網(wǎng)絡結(jié)構(gòu)借鑒了GoogLeNet 的結(jié)構(gòu),用24 層卷積層后接2 層全連接層,將Inception模塊替換為類似網(wǎng)中網(wǎng)[24]中的1×1 卷積層后接3×3 卷積層,并在ImageNet 上預訓練,其結(jié)構(gòu)如圖24 所示。在PASCAL VOC 07+12 數(shù)據(jù)集上,YOLO 在達到最高幀率155 幀/s 時mAP 可以達到52.7%,在mAP 最高達到63.4%時幀率可達45 幀/s。YOLO 在保證了準確率的同時擁有極高的推理速度,遠超當時的兩階段模型。

        圖24 YOLO 網(wǎng)絡結(jié)構(gòu)圖[57]Fig.24 Structure of YOLO[57]

        YOLOv1 的訓練流程簡單,背景誤檢率低,但由于只選擇交并比最高的邊界框作為輸出,每個格子最多只能預測出一個物體。當每個格子包含多個物體時,YOLOv1 只能檢測出1 個目標。YOLOv2[58]在YOLOv1 的基礎上,骨干網(wǎng)絡采用了以VGG16 為基礎的Darknet19,使用了批量歸一化緩解了梯度爆炸和消失的問題。YOLOv2 借鑒了Faster R-CNN 錨框的設計,將YOLOv1 的全連接層替換為錨框預測邊界框的位置,解耦了位置和類別的回歸計算。YOLOv2[58]同時采用了多尺度訓練,提升了模型的健壯性。后續(xù)的YOLOv3[59]骨干網(wǎng)絡采用了Darknet53,使用了ResNet 的跳接結(jié)構(gòu),并引入了FPN,一定程度上解決了YOLOv2 小目標檢測精度較差的問題。YOLOv3 在分辨率320 像素×320 像素的輸入上以22 ms 的推理時間使得mAP 達到28.2%,和當時最好的單階段檢測器SSD 達到相同精度,但擁有3 倍的推理速度。YOLOv3 以51 ms 的推理時間使得AP@0.5 達到57.9%,相較于以198 ms 的推理時間AP@0.5 達到57.5%的RetinaNet[60],精度相近但YOLOv3 的速度是RetinaNet[60]的近4 倍。

        SSD[55]是最早達到兩階段模型精度的單階段模型之一,對后期的單階段工作影響很深,其結(jié)構(gòu)如圖25 所示。為解決YOLOv1 小目標檢測精度低的問題,基于VGG 不同的卷積段采用了多尺度的特征圖,并在每個網(wǎng)格點生成更多的不同大小和長寬比的預測框。SSD 在PASCAL VOC 2007 數(shù)據(jù)集上,對于300 像素×300 像素的輸入mAP 達到了74.3%,512 像素×512 像素的輸入mAP 達到了76.9%。在COCO trainval35k 數(shù)據(jù)集上預訓練再在PASCAL VOC 07+12 上微調(diào)后,SSD 最終mAP 達到了81.6%。

        圖25 SSD 網(wǎng)絡結(jié)構(gòu)圖[55]Fig.25 Structure of SSD[55]

        和兩階段模型相比,單階段模型只需要進行一次類別預測和位置回歸,因此卷積運算的共享程度更高,擁有更快的速度和更小的內(nèi)存占用。最新的單階段模型如FCOS[61]、VFNet[62]等工作已經(jīng)可以達到接近兩階段模型精度,同時擁有更好的實時性,更適合在移動端部署。

        目標檢測技術(shù)從傳統(tǒng)的手工特征算法到如今的深度學習算法,精度越來越高的同時速度也越來越快。在過去幾年中,工業(yè)界已經(jīng)出現(xiàn)了成熟的基于目標檢測技術(shù)的應用,如人臉檢測識別、行人檢測、交通信號檢測、文本檢測和遙感目標檢測等。這些應用不僅便利了人們的生活,也為學術(shù)界提供了啟發(fā)和指導。

        在未來的研究工作中,小目標檢測和視頻目標檢測依舊是研究的熱點問題。同時,為了加快推理速度并在移動端嵌入式設備部署模型,目標檢測的輕量化一直備受工業(yè)界的關注。在采集到多模態(tài)的信息(如文字、圖像、點云等)后,如何通過更好的信息融合來提高檢測性能也是未來的一個重點研究方向。

        3.2 圖像分割

        本文的圖像分割指圖像語義分割任務,其要求將整張圖片的所有像素分類為預先定義的多個類別之一。由于是像素級的稠密分類任務,相比圖像分類和目標檢測更加困難,是圖像處理和計算機視覺中的一個重要課題,在場景理解、醫(yī)學圖像分析、機器人感知及視頻監(jiān)控等領域有著廣泛的應用。近年來,由于深度學習技術(shù)在計算機視覺領域應用中取得的成功,人們也進行了大量的工作研究基于深度學習模型的圖像分割方法。

        U-Net[63]和全卷積網(wǎng)絡(Fully convolutional network,F(xiàn)CN)[64]都是在2015 年提出的網(wǎng)絡,啟發(fā)了后來的很多圖像分割和目標檢測的工作。FCN 已在文獻[1]中進行介紹,此處不再贅述。U-Net 最初是一個用于醫(yī)學圖像分割的卷積神經(jīng)網(wǎng)絡,分別贏得了ISBI 2015 細胞追蹤挑戰(zhàn)賽和齲齒檢測挑戰(zhàn)賽的冠軍。U-Net 可視為一個編碼器-解碼器結(jié)構(gòu),編碼器有4 個子模塊,每個子模塊通過一個最大池化層下采樣,解碼器再通過上采樣的4 個子模塊增大分辨率直到與輸入圖像的分辨率保持一致,其結(jié)構(gòu)如圖26 所示。由于卷積采用的是Valid 模式,實際輸出圖像的分辨率低于輸入圖像的分辨率。U-Net 網(wǎng)絡同時還采取了跳接結(jié)構(gòu)(即圖26 中的灰色箭頭),將上采樣結(jié)果與編碼器中具有相同分辨率的子模塊的輸出進行連接,作為解碼器中下一個子模塊的輸入。

        圖26 U-Net 結(jié)構(gòu)示意圖[63]Fig.26 Structure of U-Net[63]

        由于人體結(jié)構(gòu)相對固定,分割目標在圖像內(nèi)的分布很有規(guī)律,醫(yī)學圖像大多語義明確,需要低分辨率的信息用于目標物體的識別。同時醫(yī)學圖像形態(tài)復雜,往往要求高精度的分割,需要高分辨率的信息用于精準分割。U-Net 融合了高低分辨率的信息,因此對醫(yī)學圖像分割的效果很好。

        Mask R-CNN[65]是R-CNN 團隊的又一次探索,他們在之前Faster R-CNN[52]的基礎上,將其擴展到更精細的像素級別的分類,從而從目標檢測領域拓展到圖像分割領域。通過使用RoIAlign 代替RoIPooling,得到更好的定位效果,并在Faster R-CNN 上添加了二進制的Mask,表征像素是否在目標范圍內(nèi)完成圖像分割的任務。Mask R-CNN 網(wǎng)絡結(jié)構(gòu)圖和分支結(jié)構(gòu)圖如圖27、28 所示。

        圖27 Mask R-CNN 網(wǎng)絡示意圖[65]Fig.27 Structure of Mask R-CNN[65]

        圖28 Mask R-CNN 分支示意圖[65]Fig.28 Structure of Mask R-CNN’s branches[65]

        深度卷積神經(jīng)網(wǎng)絡中池化層和上采樣層的設計對于圖像分割的設計有致命缺陷。因為參數(shù)不可學習,而且池化會導致像素的空間信息和內(nèi)部的數(shù)據(jù)結(jié)構(gòu)丟失,上采樣也無法重建小物體信息,因此圖像分割的精度一直處于瓶頸。針對這一問題,2016 年的DeepLab[66]又提出了一種空洞卷積,避免了池化層帶來的信息損失,并使用全連接的條件隨機場(Conditional random field,CRF)優(yōu)化分割精度,其結(jié)構(gòu)如圖29所示。

        圖29 空洞卷積示意圖(卷積核尺寸為3,輸入步長為2,輸出步長為1)[66]Fig.29 Dilated convolution (kernel size=3,input stride=2, output stride=1)[66]

        空洞卷積可以在避免使用池化層損失信息的情況下增大感受野,同時不增加參數(shù)數(shù)量。作為后處理,DeepLabv1將每個像素點作為節(jié)點,像素之間的關系作為節(jié)點間的連線,構(gòu)成一個條件隨機場,再用一個二元勢函數(shù)描述像素點之間的關系,將相似像素分配相同的標簽,從而在分割邊界取得良好的效果。DeepLabv1 速度很快,幀率達到8 幀/s,在PASCAL VOC 2012 數(shù)據(jù)集上平均交并比(Mean intersection over union,mIoU)達到了71.6%,它的“深度卷積神經(jīng)網(wǎng)絡+條件隨機場”結(jié)構(gòu)對之后很多工作產(chǎn)生了深遠的影響。

        2017 年劍橋大學提出的SegNet[67]的主要動機是針對道路和室內(nèi)場景理解,設計一個像素級別的圖像分割網(wǎng)絡,同時保證內(nèi)存和計算時間方面上的高效。SegNet 采用“編碼器-解碼器”的全卷積結(jié)構(gòu),編碼網(wǎng)絡采用VGG16[28]的卷積層,解碼器從相應的編碼器獲取最大池化索引后上采樣,產(chǎn)生稀疏特征映射。復用池化索引減少了端到端訓練的參數(shù)量,并改善了邊界的劃分。SegNet 在道路場景分割數(shù)據(jù)集CamVid 11 Road Class Segmentation[68]上mIoU 達到60.1%,邊界F1得分(BoundaryF1score,BF)達到46.84%;在室內(nèi)場景分割數(shù)據(jù)集SUN RGB-D Indoor Scenes[69]上幾乎所有當時的深層網(wǎng)絡結(jié)構(gòu)都表現(xiàn)不佳,但SegNet 依然在絕大多數(shù)的指標上超過了其他網(wǎng)絡。SegNet 結(jié)構(gòu)如圖30 所示。

        圖30 SegNet 結(jié)構(gòu)示意圖[67]Fig.30 Structure of SegNet[67]

        2017 年香港中文大學提出了PSPNet[70],該網(wǎng)絡采用金字塔池化模塊,用大小為1×1、2×2、3×3 和6×6 的4 層金字塔分別提取不同尺度的信息,然后通過雙線性插值恢復長寬,把不同層的特征連結(jié)起來得到全局信息,這種結(jié)構(gòu)比全局池化更具有代表性,融合了多尺度的信息。PSPNet 在PASCAL VOC 2012 數(shù)據(jù)集上mIoU 達到了82.6%,在MS COCO 數(shù)據(jù)集上預訓練后達到85.4%。PSPNet 結(jié)構(gòu)如圖31所示。

        圖31 PSPNet 結(jié)構(gòu)示意圖[70]Fig.31 Structure of PSPNet[70]

        DeepLabv2[71]在DeepLabv1[66]和PSPNet[70]的基礎上用ResNet101 代替VGG16,并提出了一種帶有空洞卷積的空間金字塔池化模塊(Atrous spatial Pyramid pooling,ASPP),用多尺度的方法以不同的速率并行地提取特征圖信息,極大地增加了感受野,其結(jié)構(gòu)如圖32 所示。DeepLabv2 使用不同的學習率,相比DeepLabv1,mIoU 達到了79.7%,提升了8.1%,但二者都使用了全連接條件隨機場模塊。

        圖32 空洞空間金字塔池化示意圖[71]Fig.32 Structure of ASPP[71]

        DeepLabv3[72]重新審視了空洞卷積的作用,將其級聯(lián)模塊應用在ResNet 最后一個模塊之后。不使用空洞卷積和使用空洞卷積的級聯(lián)模塊示意圖如圖33 所示。

        圖33 不使用和使用空洞卷積的級聯(lián)模塊示意圖[72]Fig.33 Structures of cascade modules without and with atrous convolution[72]

        DeepLabv3 改進了ASPP 模塊,應用BN 層,并將DeepLabv2 中Rate=24 的3×3 卷積模塊替換為1×1 卷積模塊和全局池化模塊,克服了像素點相對距離增大時有效權(quán)重減少的問題。DeepLabv3 去掉了后處理的DenseCRF 模塊,并最終在PASCAL VOC 2012 數(shù)據(jù)集上mIoU 達到了86.9%,相較Deep-Labv2 進一步提升了7.2%。改進的ASPP 模塊示意圖如圖34 所示。

        圖34 改進的ASPP 模塊示意圖[72]Fig.34 Improved ASPP module[72]

        DeepLabv3+[73]相對于DeepLabv3,采用了“編碼器-解碼器”的結(jié)構(gòu),編碼器中包含豐富的語義信息,解碼器則輸出圖像的邊緣細節(jié)信息??臻g金字塔池化模塊,“編碼器-解碼器”結(jié)構(gòu)和帶有空洞卷積的“編碼器-解碼器”結(jié)構(gòu)如圖35 所示,DeepLabv3+結(jié)構(gòu)如圖36 所示。

        圖35 DeepLabv3+使用了空間金字塔池化模塊,“編碼器-解碼器”結(jié)構(gòu)和空洞卷積[73]Fig.35 DeepLabv3+ employing spatial Pyramid pooling, encoder-decoder and atrous convolution[73]

        圖36 DeepLabv3+示意圖[73]Fig.36 Structure of DeepLabv3+[73]

        DeepLabv3+將之前的骨干網(wǎng)絡ResNet101 替換為Xception,并結(jié)合深度可分離卷積的思想提出了空洞深度可分離卷積,在減少參數(shù)量的同時進一步增大感受野。和DeepLabv3 一樣,DeepLabv3+也沒有使用DenseCRF 后處理模塊。最終DeepLabv3+在PASCAL VOC 2012 數(shù)據(jù)集上mIoU 達到了89.0%,相較DeepLabv3 提升了2.1%。深度卷積、逐點卷積和空洞深度可分離卷積示意圖如圖37 所示。

        圖37 空洞深度可分離卷積示意圖[73]Fig.37 Structure of atrous depthwise separable convolution[73]

        2019 年曠視科技提出了一種名為DFANet[74]的高效CNN 架構(gòu),通過子網(wǎng)和子級聯(lián)的方式聚合多尺度特征,極大地減少了參數(shù)量,其結(jié)構(gòu)如圖38 所示。DFANet 采用“編碼器-解碼器”結(jié)構(gòu),解碼器的骨干網(wǎng)絡采用3 個改良的輕量級Xception 融合結(jié)構(gòu),編碼器則是一個高效的上采樣模塊,用于融合高層和底層的語義信息。在CityScapes[75]測試數(shù)據(jù)集上,對于1 024 像素×1 024 像素的輸入圖片,DFANet 在一塊NVIDIA Titan X 上mIoU 達到71.3%,F(xiàn)LOPS 僅為3.4×109,幀率達到100 幀/s;在CamVid[68]測試數(shù)據(jù)集上,對于960 像素×720 像素的輸入圖片,DFANet 在8 ms 的計算時間內(nèi)mIoU 達到64.7%,幀率達到120 幀/s。

        圖38 DFANet 結(jié)構(gòu)示意圖[74]Fig.38 Structure of DFANet[74]

        2020 年筆者提出一種輕量級網(wǎng)絡LRNNet[76]。其中分解卷積塊FCB(圖39(a))利用1×3 和3×1 的空間分解卷積處理短距離特征,并利用空洞深度分離卷積處理遠距離特征,實現(xiàn)了參數(shù)量和計算量更少、深度更快、準確率更高的特征提取;高效的簡化Non-Local 模塊LRN(圖39(b))利用區(qū)域主奇異向量作為Non-Local 模塊的Key 和Value,在降低Non-Local 模塊的計算量和內(nèi)存占用的同時,保持其處理遠距離關聯(lián)的效果。在Cityscapes[75]測試集上,LRNNet 的mIoU 達到了72.2%,而網(wǎng)絡僅有68 萬個參數(shù),并在1 張GTX 1080Ti 卡上達到71 幀/s 的推理速度;在CamVid[68]測試集上,對于360 像素×480 像素的輸入,LRNNet 的mIoU 達到了69.2%,參數(shù)量也為68 萬個,在1 張GTX 1080Ti 卡上幀率達到76.5 幀/s。

        圖39 LRNNet 中的FCB 和LRN 模塊[76]Fig.39 FCB and LRN modules in LRNNet[76]

        圖像分割是像素級的稠密分類任務,在搜集數(shù)據(jù)集時需要真值標注每個像素,但由于這個要求極其耗時且非常昂貴,許多研究人員開始用弱監(jiān)督學習和半監(jiān)督學習的方法訓練網(wǎng)絡。常見的弱標注有圖像類別標簽、邊界框、顯著圖和類激活圖(Class activation map,CAM)等。

        2015 年谷歌和UCLA 團隊的工作[77]是最早開始研究基于弱監(jiān)督學習技術(shù)的圖像分割算法之一。該工作基于DeepLab 模型[66],研究了弱標注(類別標簽、邊界框等)與少量強標注(像素級標簽)和大量弱標注混合對DCNN 圖像分割模型的影響,并在半監(jiān)督和弱監(jiān)督的設定下提出了一種期望最大化方法(Expectation-maximization,EM)。這項工作證實了僅使用圖像級標簽的弱標注存在性能差距,而在半監(jiān)督設定下使用少量強標注和大量弱標注混合可以獲得優(yōu)越的性能,在MS COCO 數(shù)據(jù)集上使用5 000 張強標注圖片和118 287 張弱標注圖片mIoU 超過70%。

        盡管類別標簽的獲取成本很低,但這類標注信息僅僅標明某類目標存在,不能表示出目標的位置和形狀,這往往會導致分割效果不夠理想,存在邊界模糊等問題。當出現(xiàn)目標遮擋的情況時,僅使用圖像級標簽獲取完整的目標邊界會更加困難。為了補充監(jiān)督信息中缺少的位置和形狀信息,使用圖像的顯著性信息是一種常見的手段。文獻[78]提出了一個僅使用類別標簽和顯著圖信息的圖像分割模型,其結(jié)構(gòu)如圖40 所示。該模型將圖像的顯著圖定義為一個人最有可能先看到的目標的二進制掩膜,用預訓練的目標檢測網(wǎng)絡提取出顯著性區(qū)域,通過種子信息確定目標的類別和位置。該工作同樣基于DeepLab[66]的網(wǎng)絡結(jié)構(gòu),提出的模型測試精度mIoU 達到56.7%,實現(xiàn)了全監(jiān)督模型80%的性能。

        圖40 高層信息指導的圖像分割網(wǎng)絡結(jié)構(gòu)圖[78]Fig.40 High-level guided segmentation architecture[78]

        定位線索的另一個流行的選擇是使用CAM。主流的弱監(jiān)督方法通過將CAM 作為分割種子,突出局部的顯著部分,然后逐漸生長直到覆蓋整個目標區(qū)域,從而補充了缺失的目標形狀信息。2018 年提出的AffinityNet[79]結(jié)合了類別標簽和CAM 信息,首先計算圖像的CAM 作為監(jiān)督源訓練AffinityNet,通過構(gòu)建圖像的語義相似度矩陣,結(jié)合隨機游走進行擴散,不斷獎勵或懲罰從而修改CAM,最終恢復出目標的形狀。AffinityNet 流程如圖41 所示。

        圖41 AffinityNet 流程示意圖[79]Fig.41 Pipeline of AffinityNet[79]

        深度學習技術(shù)在圖像分割領域取得了顯著成就,但仍然面臨不小的挑戰(zhàn)。當前的大規(guī)模數(shù)據(jù)集如MS COCO[80]和PASCAL VOC[81]并不能滿足工業(yè)界的需求,而具有多目標和重疊目標的數(shù)據(jù)集對于圖像分割而言更具有應用價值,這可以使得圖像分割技術(shù)更好地處理密集目標場景和現(xiàn)實生活中常見的重疊目標場景?;谛颖緦W習技術(shù)的圖像分割算法同樣具有廣闊的前景,因為在許多應用領域,例如醫(yī)學圖像分析領域,獲取學習樣本的成本較高,難度也較大。圖像分割技術(shù)的實時性也是一個難題,目前大多數(shù)模型并不能達到實時性的要求,但在很多應用場景下,速度的重要性遠高于精度。

        3.3 超分辨率

        超分辨率技術(shù)是計算機視覺領域提高圖像和視頻分辨率的重要處理技術(shù)之一,研究如何將低分辨率的圖像或圖像序列恢復出具有更多細節(jié)信息的高分辨率圖像或圖像序列,在高清電視、監(jiān)控視頻、醫(yī)學成像、遙感衛(wèi)星成像、顯微成像及老舊圖像視頻修復等領域有著重要的應用價值。傳統(tǒng)上超分辨率屬于底層視覺領域,但本文敘述順序從圖像分類、目標檢測、圖像分割到超分辨率,輸出逐級復雜,依次為圖像標簽、目標位置和類別標簽、與輸入同大小的分割圖、比輸入圖像大的高分辨率圖像等。與前幾個任務不同,超分辨率需要生成和恢復輸入中不存在的信息。

        超分辨率的概念最早出現(xiàn)在光學領域,1952 年Francia 第一次提出了用于提高光學分辨率的超分辨率的概念[82]。1964 年前后,Harris[83]和Goodman[84]分別提出了后來稱為Harris-Goodman 頻譜外推的方法,這被認為是最早的圖像復原方法,但這種技術(shù)只能在一些理想情況下進行仿真,實際效果不太理想,因此并未得到推廣。1984 年Tsai 等[85]首次利用單幅低分辨率圖像的頻域信息重建出高分辨率圖像后,超分辨率重建技術(shù)才得到廣泛的認可和應用,如今它已經(jīng)成為圖像增強和計算機視覺領域中最重要的研究方向之一。

        傳統(tǒng)的超分辨率方法包括基于預測、基于邊緣、基于統(tǒng)計、基于塊和基于稀疏表示等方法。根據(jù)輸入輸出的不同,超分辨率問題可以分為基于重建的超分辨率問題、視頻超分辨率問題和單幅圖像超分辨率問題。根據(jù)是否依賴訓練樣本,超分辨率問題則又可以分為增強邊緣的超分辨率問題(無訓練樣本)和基于學習的超分辨率問題(有訓練樣本)。

        最簡單、應用最廣泛的經(jīng)典單幅圖像超分辨率方法是插值法,包括Lanczos、Bicubic、Bilinear 和Nearest 等,這種方法操作簡單、實施性好,但并不能恢復出清晰的邊緣和細節(jié)信息,因此很多其他用于增強細節(jié)的傳統(tǒng)算法相繼被提出。文獻[86]提出了基于塊的方法,也被稱為基于鄰域嵌入的方法。這種方法使用流形學習中的局部線性嵌入,假設高、低維度中圖像塊的線性關系可以保持,用低分辨率圖像的特征(梯度等)重構(gòu)高分辨率圖像。文獻[87-88]提出了基于稀疏表示的方法,也被成為字典學習。這種方法將低分辨率圖像和高分辨率圖像表示為字典D與原子α,高分辨率圖像可表示為x=Dhigh,低分辨率圖像為y=Dlow,假設不同分辨率的同一幅圖像的原子α,在訓練完字典Dhigh和Dlow后,用低分辨率的圖像得到α,隨后得到重構(gòu)的高清圖像?;趯W習的超分辨率技術(shù)[89]如圖42 所示,上、下采樣方法示意圖[90]如圖43 所示。

        圖42 基于學習的超分辨率技術(shù)[89]Fig.42 Learning-based super-resolution[89]

        圖43 超分辨率問題中的上采樣和下采樣方法[90]Fig.43 Upsampling and downsampling in super-resolution[90]

        經(jīng)典的超分辨率方法要求研究者具備深厚的相關領域先驗知識。隨著深度學習技術(shù)的興起,用神經(jīng)網(wǎng)絡方法重建的圖像質(zhì)量超過了傳統(tǒng)方法,速度也更快,這使得大批學者轉(zhuǎn)向?qū)ι疃葘W習技術(shù)在超分辨率領域的應用研究。香港中文大學Dong 等于2015 年首次將卷積神經(jīng)網(wǎng)絡用于單幅圖像超分辨率重建,提出了SRCNN[91],該網(wǎng)絡僅僅用了3 個卷積層,利用傳統(tǒng)稀疏編碼,依次進行圖像塊提取、非線性映射和圖像重建,實現(xiàn)了從低分辨率圖像到高分辨率圖像的端到端映射,流程圖如圖44 所示。SRCNN 激活函數(shù)采用ReLU,損失函數(shù)采用均方誤差。

        圖44 SRCNN 流程圖[91]Fig.44 Pipeline of SRCNN[91]

        2016 年Dong 團隊在之前SRCNN 的基礎上提出了更快、實時性更好的FSRCNN[92],在原始網(wǎng)絡的最后加入反卷積層放大尺寸,摒棄了Bicubic 插值方法,使用了更多的映射層和更小的卷積核,改變了特征維度,并共享其中的映射層,F(xiàn)SRCNN 改進示意圖如圖45 所示。訓練時FSRCNN 只需要微調(diào)最后的反卷積層,因此訓練速度很快。FSRCNN 激活函數(shù)采用PReLU,損失函數(shù)仍采用均方誤差。

        圖45 FSRCNN 對SRCNN 的改進[92]Fig.45 FSRCNN’s improvement on SRCNN[92]

        2016 年提出的ESPCN[93]在SRCNN 基礎上進一步提高了速度,其結(jié)構(gòu)如圖46 所示。該工作提出了一種亞像素卷積層,可以直接在低分辨率圖像上提取特征,從而避免在高分辨率圖像上進行卷積,降低了計算復雜度。ESPCN 激活函數(shù)采用tanh,損失函數(shù)仍然采用均方誤差。

        圖46 ESPCN 示意圖[93]Fig.46 Structure of ESPCN[93]

        SRCNN 的網(wǎng)絡輸入是經(jīng)過上采樣的低分辨率圖像,計算復雜度很高,因此FSRCNN 和ESPCN 都選擇在網(wǎng)絡末端上采樣以降低計算復雜度。但如果在上采樣后沒有足夠深的網(wǎng)絡提取特征,圖像信息就會損失。為了更好地使用更深的網(wǎng)絡,很多工作引入了殘差網(wǎng)絡。2016 年首爾國立大學Kim 等提出的VDSR[94]是第一個引入全局殘差的模型,其結(jié)構(gòu)如圖47 所示。Kim 等指出,高低分辨率圖像攜帶的低頻信息很相近,因此事實上網(wǎng)絡只需要學習高頻信息之間的殘差即可。VSDR 思想啟發(fā)了很多之后利用殘差結(jié)構(gòu)的工作。

        圖47 VSDR 網(wǎng)絡結(jié)構(gòu)圖[94]Fig.47 Structure of VSDR[94]

        CARN[95]是NTIRE2018 超分辨率挑戰(zhàn)賽的冠軍方案,該方案使用全局和局部級聯(lián),將ResNet 的殘差塊替換成級聯(lián)模塊和1×1 卷積模塊組合,并提出了一種殘差-E 模塊,可以提升CARN 的效率。CARN 的改進如圖48 所示,其局部級聯(lián)模塊如圖49 所示。

        圖48 CARN 對于ResNet 的改進[95]Fig.48 Improvement of CARN based on ResNet[95]

        圖49 殘差-E 模塊與其他常見模塊的對比[95]Fig.49 Comparison between residual-E block and other common blocks[95]

        EDVR[96]是商湯科技2019 年提出的一種用于視頻修復的通用框架,在NITRE 2019 的4 個賽道中均以較大的優(yōu)勢獲得了冠軍。視頻修復任務包括超分辨率、去噪聲等任務,早期的研究者們簡單地將視頻修復視作圖像修復的延伸,幀間冗余的時間信息并沒能被充分利用。EDVR 通過增強的可變形卷積網(wǎng)絡實現(xiàn)視頻的修復和增強,適用于各種視頻修復任務,如超分辨率、去模糊等任務。EDVR 框架示意圖如圖50 所示。

        圖50 EVDR 框架示意圖[96]Fig.50 Pipeline of EDVR[96]

        EDVR 提出了PCD(Pyramid,cascading and deformable)對齊模塊和TSA(Temporal and spatial attention)融合模塊,其結(jié)構(gòu)如圖51 所示。PCD 模塊受TDAN[97]的啟發(fā),用一種金字塔結(jié)構(gòu)從低尺度到高尺度使用可變形卷積將每個相鄰幀與參考幀對齊。TSA 模塊則用于在多個對齊的特征層之間融合信息,通過計算每個相鄰幀與參考幀特征之間的元素相關性引入時間注意力機制,相關系數(shù)代表每個位置上相鄰幀特征信息量的大小。在融合時間特征后進一步應用空間注意力機制,從而更有效地利用跨通道空間信息。

        圖51 EVDR 中的PCD 模塊和TSA 模塊[96]Fig.51 PCD and TSA modules in EVDR[96]

        三維卷積是一種常見的利用視頻時空間信息的方法,但這種方法往往復雜度較高,限制了模型的深度。2019 年提出的FSTRN[98]通過使用一種快速時空間殘差模塊將三維卷積用于視頻超分辨率任務,將每個三維濾波器分解為2 個維數(shù)更低的3 位濾波器乘積,從而降低復雜度,實現(xiàn)更深的網(wǎng)絡和更好的性能。此外,F(xiàn)STRN 還提出了一種跨空間殘差學習方法,直接連接低分辨率空間和高分辨率空間,減輕了特征融合和上采樣部分的計算負擔。FSTRN 結(jié)構(gòu)如圖52 所示。

        圖52 FSTRN 結(jié)構(gòu)示意圖[98]Fig.52 Pipeline of FSTRN[98]

        隨著深度學習技術(shù)的興起,近20 年來超分辨率領域發(fā)展迅速,出現(xiàn)了很多具有優(yōu)異性能的模型,但距離實際應用還有一定的距離。圖像配準技術(shù)對于多幀圖像超分辨率的重建效果至關重要,目前還沒有成熟的解決方案。另一個難點則是大量未知的密集計算限制了視頻超分辨率重建的計算效率,難以達到實時性的要求。超分辨率算法的魯棒性和可遷移性仍然是下階段的研究熱點,現(xiàn)有的評價標準,如均方誤差、峰值噪聲比、結(jié)構(gòu)相似性等還不能客觀地衡量重建效果,有時甚至會出現(xiàn)和人眼視覺相違背的情況。

        4 神經(jīng)架構(gòu)搜索

        深度學習技術(shù)在圖像分類、語音識別及機器翻譯等諸多領域上取得了舉世矚目的成功,可以自動地學習數(shù)據(jù)信息,讓研究人員擺脫特征工程,這離不開GoogLeNet、ResNet 等經(jīng)典的深度神經(jīng)網(wǎng)絡模型。然而一個具有優(yōu)異性能的網(wǎng)絡結(jié)構(gòu)往往需要花費研究人員大量的時間資金投入,同時需要具備扎實的專業(yè)知識和豐富的經(jīng)驗。因此人們開始研究讓機器代替人類,根據(jù)數(shù)據(jù)集和算法自動設計網(wǎng)絡結(jié)構(gòu)。神經(jīng)架構(gòu)搜索技術(shù)(Neural architecture search,NAS)設計的模型如今已經(jīng)在很多任務上取得了超過人工設計深度模型的性能,如圖像分割領域的Auto-DeepLab[99],目標檢測領域的NAS-FPN[100]。神經(jīng)架構(gòu)搜索技術(shù)是機器學習自動化(Automated machine learning,AutoML)的子領域,代表了機器學習未來發(fā)展的方向。神經(jīng)架構(gòu)搜索技術(shù)的流程如圖53 所示,首先從一個搜索空間中通過某種策略搜索候選網(wǎng)絡架構(gòu),然后對其精度、速度等指標進行評估,通過迭代不斷優(yōu)化直到找到最優(yōu)的網(wǎng)絡架構(gòu)。

        圖53 神經(jīng)架構(gòu)搜索流程圖Fig.53 Pipeline of NAS

        搜索空間內(nèi)定義了優(yōu)化問題的變量,如網(wǎng)絡架構(gòu)參數(shù)和超參數(shù),這些變量決定了模型的性能。常見的網(wǎng)絡架構(gòu)有鏈式結(jié)構(gòu)和分支結(jié)構(gòu)等,每一個節(jié)點的網(wǎng)絡架構(gòu)參數(shù)包括卷積層、池化層和激活函數(shù)等,超參數(shù)包括卷積的尺寸、步長、加法或連結(jié)等。典型的網(wǎng)絡架構(gòu)[101]如圖54 所示。

        圖54 網(wǎng)絡架構(gòu)[101]Fig.54 Network architecture[101]

        搜索策略被用于探索神經(jīng)架構(gòu)空間,常見的策略包括隨機搜索、貝葉斯優(yōu)化、遺傳算法、強化學習[102-103]和梯度算法等,其中強化學習、遺傳算法及梯度算法是目前主流的搜索策略。在性能評估時,由于訓練和驗證的時間成本較高,因此常常需要采用評估策略降低評估成本,如減少迭代次數(shù)、在訓練集的子集上訓練、減少卷積核數(shù)量等,但這些策略往往會導致一些偏差,可能會對最終的優(yōu)劣次序產(chǎn)生影響。更高級的策略包括權(quán)重共享、通過迭代時的表現(xiàn)推斷最終性能以及通過模塊預測網(wǎng)絡性能等方法。

        DARTS[104]是第一個基于連續(xù)松弛的搜索空間的神經(jīng)網(wǎng)絡架構(gòu)技術(shù)。早期傳統(tǒng)的NAS 方法如NasNet[105]、PNAS[106]和ENAS[107]等大多在離散不可微的搜索空間上應用強化學習、進化算法等搜索策略,由于搜索空間內(nèi)待搜索的參數(shù)不可導,因此一個性能優(yōu)異的模型往往需要耗費大量的計算資源和時間成本。事實上,當時的研究者們將神經(jīng)架構(gòu)搜索技術(shù)視為一個在離散空間上的黑箱優(yōu)化問題,每次架構(gòu)的迭代優(yōu)化都需要性能評估,效率十分低下。而DARTS 使用了松弛連續(xù)的結(jié)構(gòu)表示,使用梯度下降優(yōu)化網(wǎng)絡在驗證集上的性能,實現(xiàn)了端到端的網(wǎng)絡搜索,大大減少了迭代次數(shù),把搜索時間從數(shù)千個GPU 日降低到數(shù)個GPU 日。

        DARTS 流程如圖55 所示。其中:圖(a)表示邊上的初始未知操作;圖(b)在每條邊上放置候選操作的組合,連續(xù)松弛搜索空間,不斷放寬搜索條件;圖(c)通過解決一個雙層規(guī)劃問題聯(lián)合優(yōu)化混合概率與網(wǎng)絡權(quán)重;圖(d)用學到的混合概率求得最終的網(wǎng)絡架構(gòu)。DARTS 是一種簡單的NAS 方法,適用于CNN 和RNN,在CIFAR-10 數(shù)據(jù)集[108]上用4 個GPU 日達到了2.76%的測試誤差,參數(shù)量僅有330 萬個;在PTB 數(shù)據(jù)集[109]上用1 個GPU 日以2 300 萬個的參數(shù)量達到了55.7%的測試困惑度,達到了當時的最好性能。在CIFAR-10 數(shù)據(jù)集上搜索出來的模型架構(gòu)在ImageNet[19]數(shù)據(jù)集上以470 萬個的參數(shù)量達到8.7%的top-5 錯誤率,在PTB 數(shù)據(jù)集上搜索出來的模型架構(gòu)在WikiText-2 數(shù)據(jù)集[110]上以3 300 萬個的參數(shù)量達到69.6%的困惑度,優(yōu)于很多手工設計的輕量化模型。

        圖55 DARTS 流程示意圖[104]Fig.55 Pipeline of DARTS[104]

        基于DARTS,一系列改進算法被相繼提出。在DARTS 中,搜索在一個有8 個單元的網(wǎng)絡上進行,搜索出來的架構(gòu)通過堆疊在一個具有20 個單元的網(wǎng)絡上被評估,但深度網(wǎng)絡和淺層網(wǎng)絡的結(jié)構(gòu)往往不同。例如,在代理數(shù)據(jù)集(如CIFAR-10 數(shù)據(jù)集)上搜索出來的網(wǎng)絡架構(gòu)可能在目標數(shù)據(jù)集(如ImageNet數(shù)據(jù)集)上表現(xiàn)不理想。2019 年華為諾亞方舟實驗室提出P-DARTS[111],針對這一問題(被稱為Depth Gap)提出了一種漸進式搜索的方法,如圖56 所示。搜索網(wǎng)絡的深度從最初的5 個單元增加到中期的11個和后期的17 個,而候選操作的數(shù)量(用不同的顏色表示)相應地從5 個減少到4 個和2 個。在上一階段得分最低的操作將被丟棄,最后結(jié)合分數(shù)和可能的附加規(guī)則確定最終架構(gòu)[111]。

        圖56 P-DARTS 流程示意圖[111]Fig.56 Pipeline of P-DARTS[111]

        2019 年MIT 提出ProxylessNAS[112],針對DARTS 只能在小型代理數(shù)據(jù)集上搜索而在大型數(shù)據(jù)集上則會出現(xiàn)顯存爆炸的問題提出了無代理神經(jīng)架構(gòu)搜索技術(shù),在訓練時二值化路徑,用和DARTS 雙層規(guī)劃類似的思想聯(lián)合訓練權(quán)重參數(shù)和架構(gòu)參數(shù),從而達到降低顯存的目的,并首次提出針對不同的硬件平臺搜索滿足特定時延的神經(jīng)網(wǎng)絡架構(gòu)方法。ProxylessNAS 不再采用搜索單元然后堆疊達到更深網(wǎng)絡的方法,而是選擇主干網(wǎng)絡,如MobileNet[41]、ShuffleNet[42]等。ProxylessNAS 在CIFAR-10 數(shù)據(jù)集上以僅570 萬個的參數(shù)量達到2.08%的測試誤差。ProxylessNAS 示意圖如圖57 所示。

        圖57 ProxylessNAS 示意圖[112]Fig.57 Pipeline of ProxylessNAS[112]

        當?shù)螖?shù)過大后,DARTS 設計出的網(wǎng)絡架構(gòu)會包含很多跳接結(jié)構(gòu),使得性能變得很差,稱為DARTS 的坍塌。2020 年諾亞方舟實驗室提出的DARTS+[113]通過引入早停機制,即當一個正常單元出現(xiàn)2 個或2 個以上的跳接結(jié)構(gòu)時就停止搜索,縮短了DARTS 搜索的時間,極大地提高了DARTS 的性能,其示意圖如圖58 所示。

        圖58 DARTS+中的早停機制示意圖[113]Fig.58 Early Stopping in DARTS+[113]

        2020 年商湯研究院提出的隨機神經(jīng)架構(gòu)搜索SNAS[114]也是一種可微的端到端方法,但與DARTS相比,SNAS 將NAS 重新表述為在一個單元中搜索空間的聯(lián)合分布參數(shù)優(yōu)化問題,直接優(yōu)化損失函數(shù),偏差更小。在同一輪反向傳播中SNAS 同時訓練操作參數(shù)和架構(gòu)參數(shù),并提出了一種新的搜索梯度。相比基于強化學習的神經(jīng)架構(gòu)搜索技術(shù),SNAS 優(yōu)化相同的目標函數(shù),但更高效地只使用訓練損失作為獎勵。

        PC-DARTS[115]是華為諾亞方舟實驗室2020 年提出的NAS 技術(shù),在P-DARTS[111]的基礎上設計了部分通道連接機制,每次只有一部分通道進行操作搜索,這節(jié)省了訓練需要的顯存,減少了計算量,并采用邊正則化降低由于操作搜索不全造成的不確定性。PC-DARTS 在CIFAR-10 數(shù)據(jù)集[108]上用0.1個GPU 日達到了2.57%的測試誤差,參數(shù)量僅有360 萬個;在ImageNet 數(shù)據(jù)集[19]上用3.8 個GPU 日以530 萬個的參數(shù)量達到了7.3%的top-5 錯誤率,取得了更快更好的搜索效果。PC-DARTS 結(jié)構(gòu)如圖59所示。

        圖59 PC-DARTS 結(jié)構(gòu)示意圖[115]Fig.59 Structure of PC-DARTS[115]

        當前的神經(jīng)架構(gòu)搜索技術(shù)大多被用于圖像分類任務,這促使許多研究人員試圖設計出更好的人工網(wǎng)絡。但一方面由于搜索空間的定義被局限在現(xiàn)有的網(wǎng)絡結(jié)構(gòu)設計經(jīng)驗中,使得NAS 設計出的網(wǎng)絡很難與人工網(wǎng)絡有本質(zhì)上的區(qū)別。另一方面,NAS 技術(shù)設計的網(wǎng)絡可解釋性很差,由于研究人員采用的數(shù)據(jù)增強、搜索空間、訓練方法及正則化策略等方法常常不同,這使得NAS 設計出的架構(gòu)很難被復現(xiàn),不同網(wǎng)絡架構(gòu)的性能也難以比較。由此可見,神經(jīng)架構(gòu)搜索領域仍然存在很多挑戰(zhàn),如何解決這些問題將會是下一階段的熱門研究方向之一。

        5 結(jié)束語

        深度學習技術(shù)近年來在計算機視覺中的目標檢測、圖像分割、超分辨率和模型壓縮等任務上都取得了卓越的成績,充分證明了它的價值和潛力。然而深度學習領域仍然有不少難題無法解決,如對數(shù)據(jù)的依賴性強、模型難以在不同領域之間直接遷移、深度學習模型的可解釋性不強等,如何攻克這些難題將是下一階段的發(fā)展方向。為了追求極致的性能,很多科技巨頭投入了巨大的人力財力搭建巨型模型,如OpenAI 發(fā)布的擁有1 750 億個參數(shù)的GPT-3,谷歌發(fā)布的擁有1.6 萬億個參數(shù)的Switch Transformer,快手發(fā)布的擁有1.9 萬億個參數(shù)的推薦精排模型,這些模型需要大量的訓練時間和計算資源,如何設計計算硬件、系統(tǒng)和算法來加速訓練是一項新的挑戰(zhàn)。深度學習技術(shù)嚴重依賴大規(guī)模帶標簽的數(shù)據(jù)集,因此無監(jiān)督學習技術(shù)、自監(jiān)督技術(shù),例如表示學習、預訓練模型等,仍然是重要的研究方向。同時深度學習技術(shù)帶來的安全隱患也引起了重視,如何在保護用戶隱私的前提下優(yōu)化分布式訓練是另一個具有潛力的研究方向。

        猜你喜歡
        示意圖深度結(jié)構(gòu)
        《形而上學》△卷的結(jié)構(gòu)和位置
        哲學評論(2021年2期)2021-08-22 01:53:34
        深度理解一元一次方程
        先畫示意圖再解答問題
        黔西南州旅游示意圖
        當代貴州(2019年41期)2019-12-13 09:28:56
        論結(jié)構(gòu)
        中華詩詞(2019年7期)2019-11-25 01:43:04
        深度觀察
        深度觀察
        深度觀察
        論《日出》的結(jié)構(gòu)
        兩張圖讀懂“青年之聲”
        中國共青團(2015年7期)2015-12-17 01:24:38
        久久综合亚洲色一区二区三区| 日本一曲二曲三曲在线| 草逼视频免费观看网站| 24小时日本在线视频资源| 久久精品国产自清天天线| 亚洲AV永久无码精品一区二国| 美女被内射很爽的视频网站| 亚洲欧洲国产码专区在线观看| 精品亚洲欧美无人区乱码| 97久久综合区小说区图片专区| 在线观看亚洲视频一区二区| 国产 高潮 抽搐 正在播放| 丰满熟女人妻中文字幕免费 | 久久91精品国产91久久麻豆| 日本一区二区高清精品| 成人精品天堂一区二区三区| 真人男女做爰无遮挡免费视频| 激情亚洲综合熟女婷婷| 国产偷国产偷亚洲综合av| 波多野42部无码喷潮| 91网站在线看| 国产av自拍在线观看| 波多野结衣中文字幕一区二区三区 | 91免费国产| 中文字幕一区二区三区乱码人妻| 国产福利视频一区二区| 国产精品福利影院| 少妇激情一区二区三区| 精品无码av一区二区三区不卡| 人妻忍着娇喘被中进中出视频| 99久久亚洲国产高清观看| 国产人妖视频一区二区| √新版天堂资源在线资源| 国产精品日韩欧美一区二区区 | 好看的中文字幕中文在线 | 国产精品国产三级国产专区不| 人妻熟女一区二区三区app下载| 欧美人与动zozo| 国产激情小视频在线观看的| 十八禁视频网站在线观看| 婷婷四房播播|