計算機視覺四大基本任務(wù)(分類、定位、檢測、分割)
深度學(xué)習(xí)目前已成為發(fā)展最快、最令人興奮的機器學(xué)習(xí)領(lǐng)域之一,許多卓有建樹的論文已經(jīng)發(fā)表,而且已有很多高質(zhì)量的開源深度學(xué)習(xí)框架可供使用。然而,論文通常非常簡明扼要并假設(shè)讀者已對深度學(xué)習(xí)有相當?shù)睦斫?,這使得初學(xué)者經(jīng)常卡在一些概念的理解上,讀論文似懂非懂,十分吃力。另一方面,即使有了簡單易用的深度學(xué)習(xí)框架,如果對深度學(xué)習(xí)常見概念和基本思路不了解,面對現(xiàn)實任務(wù)時不知道如何設(shè)計、診斷、及調(diào)試網(wǎng)絡(luò),最終仍會束手無策。
本系列文章旨在直觀系統(tǒng)地梳理深度學(xué)習(xí)各領(lǐng)域常見概念與基本思想,使讀者對深度學(xué)習(xí)的重要概念與思想有一直觀理解,做到“知其然,又知其所以然”,從而降低后續(xù)理解論文及實際應(yīng)用的難度。本系列文章力圖用簡練的語言加以描述,避免數(shù)學(xué)公式和繁雜細節(jié)。本文是該系列文章中的第二篇,旨在介紹深度學(xué)習(xí)在計算機視覺領(lǐng)域四大基本任務(wù)中的應(yīng)用,包括分類(圖a)、定位、檢測(圖b)、語義分割(圖c)、和實例分割(圖d)。后續(xù)文章將關(guān)注深度學(xué)習(xí)在計算機視覺領(lǐng)域的其他任務(wù)的應(yīng)用,以及自然語言處理和語音識別。

計算機視覺(computer vision)簡介
計算機視覺旨在識別和理解圖像/視頻中的內(nèi)容。其誕生于1966年MIT AI Group的"the summer vision project"。當時,人工智能其他分支的研究已經(jīng)有一些初步成果。由于人類可以很輕易地進行視覺認知,MIT的教授們希望通過一個暑期項目解決計算機視覺問題。當然,計算機視覺沒有被一個暑期內(nèi)解決,但計算機視覺經(jīng)過50余年發(fā)展已成為一個十分活躍的研究領(lǐng)域。如今,互聯(lián)網(wǎng)上超過70%的數(shù)據(jù)是圖像/視頻,全世界的監(jiān)控攝像頭數(shù)目已超過人口數(shù),每天有超過八億小時的監(jiān)控視頻數(shù)據(jù)生成。如此大的數(shù)據(jù)量亟待自動化的視覺理解與分析技術(shù)。
計算機視覺的難點在于語義鴻溝。這個現(xiàn)象不僅出現(xiàn)在計算機視覺領(lǐng)域,Moravec悖論發(fā)現(xiàn),高級的推理只需要非常少的計算資源,而低級的對外界的感知卻需要極大的計算資源。要讓計算機如成人般地下棋是相對容易的,但是要讓電腦有如一歲小孩般的感知和行動能力卻是相當困難甚至是不可能的。
語義鴻溝(semantic gap) 人類可以輕松地從圖像中識別出目標,而計算機看到的圖像只是一組0到255之間的整數(shù)。
計算機視覺任務(wù)的其他困難 拍攝視角變化、目標占據(jù)圖像的比例變化、光照變化、背景融合、目標形變、遮擋等。
計算機視覺的頂級會議和期刊 頂級會議有CVPR、ICCV、和ECCV,此外ICLR也有不少計算機視覺論文。頂級期刊有IJCV和TPAMI。由于計算機視覺領(lǐng)域發(fā)展十分迅速,不論身處學(xué)術(shù)界或產(chǎn)業(yè)界,通過閱讀頂級會議和期刊論文了解計算機視覺的最近研究成果都十分必要。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)
經(jīng)典的多層感知機由一系列全連接層組成,卷積神經(jīng)網(wǎng)絡(luò)中除全連接層外,還有卷積層和匯合(pooling)層。
(1) 卷積層
為什么要用卷積層 輸入圖像通常很維數(shù)很高,例如,1,000×1,000大小的彩色圖像對應(yīng)于三百萬維特征。因此,繼續(xù)沿用多層感知機中的全連接層會導(dǎo)致龐大的參數(shù)量。大參數(shù)量需要繁重的計算,而更重要的是,大參數(shù)量會有更高的過擬合風險。卷積是局部連接、共享參數(shù)版的全連接層。這兩個特性使參數(shù)量大大降低。卷積層中的權(quán)值通常被成為濾波器(filter)或卷積核(convolution kernel)。

局部連接 在全連接層中,每個輸出通過權(quán)值(weight)和所有輸入相連。而在視覺識別中,關(guān)鍵性的圖像特征、邊緣、角點等只占據(jù)了整張圖像的一小部分,圖像中相距很遠的兩個像素之間有相互影響的可能性很小。因此,在卷積層中,每個輸出神經(jīng)元在通道方向保持全連接,而在空間方向上只和一小部分輸入神經(jīng)元相連。
共享參數(shù) 如果一組權(quán)值可以在圖像中某個區(qū)域提取出有效的表示,那么它們也能在圖像的另外區(qū)域中提取出有效的表示。也就是說,如果一個模式(pattern)出現(xiàn)在圖像中的某個區(qū)域,那么它們也可以出現(xiàn)在圖像中的其他任何區(qū)域。因此,卷積層不同空間位置的神經(jīng)元共享權(quán)值,用于發(fā)現(xiàn)圖像中不同空間位置的模式。共享參數(shù)是深度學(xué)習(xí)一個重要的思想,其在減少網(wǎng)絡(luò)參數(shù)的同時仍然能保持很高的網(wǎng)絡(luò)容量(capacity)。卷積層在空間方向共享參數(shù),而循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks)在時間方向共享參數(shù)。
卷積層的作用 通過卷積,我們可以捕獲圖像的局部信息。通過多層卷積層堆疊,各層提取到特征逐漸由邊緣、紋理、方向等低層級特征過度到文字、車輪、人臉等高層級特征。
卷積層中的卷積和數(shù)學(xué)教材中的卷積是什么關(guān)系 基本沒有關(guān)系。卷積層中的卷積實質(zhì)是輸入和權(quán)值的互相關(guān)(cross-correlation)函數(shù),而不是數(shù)學(xué)教材中的卷積。
描述卷積的四個量 一個卷積層的配置由如下四個量確定。1. 濾波器個數(shù)。使用一個濾波器對輸入進行卷積會得到一個二維的特征圖(feature map)。我們可以用時使用多個濾波器對輸入進行卷積,以得到多個特征圖。2. 感受野(receptive field) F,即濾波器空間局部連接大小。3. 零填補(zero-padding) P。隨著卷積的進行,圖像大小將縮小,圖像邊緣的信息將逐漸丟失。因此,在卷積前,我們在圖像上下左右填補一些0,使得我們可以控制輸出特征圖的大小。4. 步長(stride) S。濾波器在輸入每移動S個位置計算一個輸出神經(jīng)元。
卷積輸入輸出的大小關(guān)系 假設(shè)輸入高和寬為H和W,輸出高和寬為H'和W', 則H'=(H-F+2P)/S+1, W'=(W-F+2P)/S+1. 當S=1時,通過設(shè)定P=(F-1)/2, 可以保證輸入輸出空間大小相同。例如,3*3的卷積需要填補一個像素使得輸入輸出空間大小不變。
應(yīng)該使用多大的濾波器 盡量使用小的濾波器,如3×3卷積。通過堆疊多層3×3卷積,可以取得與大濾波器相同的感受野,例如三層3×3卷積等效于一層7×7卷積的感受野。但使用小濾波器有以下兩點好處。1. 更少的參數(shù)量。假設(shè)通道數(shù)為D,三層3×3卷積的參數(shù)量為3×(D×D×3×3)=27D^2, 而一層7×7卷積的參數(shù)量為D×D×7×7=49D^2。2. 更多非線性。由于每層卷積層后都有非線性激活函數(shù),三層3×3卷積一共經(jīng)過三次非線性激活函數(shù),而一層7×7卷積只經(jīng)過一次。
1×1卷積 旨在對每個空間位置的D維向量做一個相同的線性變換。通常用于增加非線性,或降維,這相當于在通道數(shù)方向上進行了壓縮。1×1卷積是減少網(wǎng)絡(luò)計算量和參數(shù)的重要方式。
全連接層的卷積層等效 由于全連接層和卷積層都是做點乘,這兩種操作可以相互等效。全連接層的卷積層等效只需要設(shè)定好卷積層的四個量:濾波器個數(shù)等于原全連接層輸出神經(jīng)元個數(shù)、感受野等于輸入的空間大小、沒有零填補、步長為1。
為什么要將全連接層等效為卷積層 全連接層只能處理固定大小的輸入,而卷積層可以處理任意大小輸入。假設(shè)訓(xùn)練圖像大小是224×224,而當測試圖像大小是256×256。如果不進行全連接層的卷積層等效,我們需要從測試圖像中裁剪出多個224×224區(qū)域分別前饋網(wǎng)絡(luò)。而進行卷積層等效后,我們只需要將256×256輸入前饋網(wǎng)絡(luò)一次,即可達到多次前饋224×224區(qū)域的效果。
卷積結(jié)果的兩種視角 卷積結(jié)果是一個D×H×W的三維張量。其可以被認為是有D個通道,每個通道是一個二維的特征圖,從輸入中捕獲了某種特定的特征。也可以被認為是有H×W個空間位置,每個空間位置是一個D維的描述向量,描述了對應(yīng)感受野的圖像局部區(qū)域的語義特征。
卷積結(jié)果的分布式表示 卷積結(jié)果的各通道之間不是獨立的。卷積結(jié)果的各通道的神經(jīng)元和語義概念之間是一個“多對多”的映射。即,每個語義概念由多個通道神經(jīng)元一起表示,而每個神經(jīng)元又同時參與到多個語義概念中去。并且,神經(jīng)元響應(yīng)是稀疏的,即大部分的神經(jīng)元輸出為0。
卷積操作的實現(xiàn) 有如下幾種基本思路。1. 快速傅里葉變換(FFT)。通過變換到頻域,卷積運算將變?yōu)槠胀ň仃嚦朔?。實際中,當濾波器尺寸大時效果好,而對于通常使用的1×1和3×3卷積,加速不明顯。2. im2col (image to column)。im2col將與每個輸出神經(jīng)元相連的局部輸入?yún)^(qū)域展成一個列向量,并將所有得到的向量拼接成一個矩陣。這樣卷積運算可以用矩陣乘法實現(xiàn)。im2col的優(yōu)點是可以利用矩陣乘法的高效實現(xiàn),而弊端是會占用很大存儲,因為輸入元素會在生成的矩陣中多次出現(xiàn)。此外,Strassen矩陣乘法和Winograd也常被使用。現(xiàn)有的計算庫如MKL和cuDNN,會根據(jù)濾波器大小選擇合適的算法。
(2) 匯合層
匯合層 根據(jù)特征圖上的局部統(tǒng)計信息進行下采樣,在保留有用信息的同時減少特征圖的大小。和卷積層不同的是,匯合層不包含需要學(xué)習(xí)的參數(shù)。最大匯合(max-pooling)在一個局部區(qū)域選最大值作為輸出,而平均匯合(average pooling)計算一個局部區(qū)域的均值作為輸出。局部區(qū)域匯合中最大匯合使用更多,而全局平均匯合(global average pooling)是更常用的全局匯合方法。

匯合層的作用 匯合層主要有以下三點作用。1. 增加特征平移不變性。匯合可以提高網(wǎng)絡(luò)對微小位移的容忍能力。2. 減小特征圖大小。匯合層對空間局部區(qū)域進行下采樣,使下一層需要的參數(shù)量和計算量減少,并降低過擬合風險。3. 最大匯合可以帶來非線性。這是目前最大匯合更常用的原因之一。近年來,有人使用步長為2的卷積層代替匯合層。而在生成式模型中,有研究發(fā)現(xiàn),不使用匯合層會使網(wǎng)絡(luò)更容易訓(xùn)練。
圖像分類(image classification)
給定一張輸入圖像,圖像分類任務(wù)旨在判斷該圖像所屬類別。
(1) 圖像分類常用數(shù)據(jù)集
以下是幾種常用分類數(shù)據(jù)集,難度依次遞增。rodrigob.github.io/are_列舉了各算法在各數(shù)據(jù)集上的性能排名。
MNIST 60k訓(xùn)練圖像、10k測試圖像、10個類別、圖像大小1×28×28、內(nèi)容是0-9手寫數(shù)字。
CIFAR-10 50k訓(xùn)練圖像、10k測試圖像、10個類別、圖像大小3×32×32。
CIFAR-100 50k訓(xùn)練圖像、10k測試圖像、100個類別、圖像大小3×32×32。
ImageNet 1.2M訓(xùn)練圖像、50k驗證圖像、1k個類別。2017年及之前,每年會舉行基于ImageNet數(shù)據(jù)集的ILSVRC競賽,這相當于計算機視覺界奧林匹克。
(2) 圖像分類經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)
基本架構(gòu) 我們用conv代表卷積層、bn代表批量歸一層、pool代表匯合層。最常見的網(wǎng)絡(luò)結(jié)構(gòu)順序是conv -> bn -> relu -> pool,其中卷積層用于提取特征、匯合層用于減少空間大小。隨著網(wǎng)絡(luò)深度的進行,圖像的空間大小將越來越小,而通道數(shù)會越來越大。
針對你的任務(wù),如何設(shè)計網(wǎng)絡(luò)? 當面對你的實際任務(wù)時,如果你的目標是解決該任務(wù)而不是發(fā)明新算法,那么不要試圖自己設(shè)計全新的網(wǎng)絡(luò)結(jié)構(gòu),也不要試圖從零復(fù)現(xiàn)現(xiàn)有的網(wǎng)絡(luò)結(jié)構(gòu)。找已經(jīng)公開的實現(xiàn)和預(yù)訓(xùn)練模型進行微調(diào)。去掉最后一個全連接層和對應(yīng)softmax,加上對應(yīng)你任務(wù)的全連接層和softmax,再固定住前面的層,只訓(xùn)練你加的部分。如果你的訓(xùn)練數(shù)據(jù)比較多,那么可以多微調(diào)幾層,甚至微調(diào)所有層。
LeNet-5 60k參數(shù)。網(wǎng)絡(luò)基本架構(gòu)為:conv1 (6) -> pool1 -> conv2 (16) -> pool2 -> fc3 (120) -> fc4 (84) -> fc5 (10) -> softmax。括號中的數(shù)字代表通道數(shù),網(wǎng)絡(luò)名稱中有5表示它有5層conv/fc層。當時,LeNet-5被成功用于ATM以對支票中的手寫數(shù)字進行識別。LeNet取名源自其作者姓LeCun。

AlexNet 60M參數(shù),ILSVRC 2012的冠軍網(wǎng)絡(luò)。網(wǎng)絡(luò)基本架構(gòu)為:conv1 (96) -> pool1 -> conv2 (256) -> pool2 -> conv3 (384) -> conv4 (384) -> conv5 (256) -> pool5 -> fc6 (4096) -> fc7 (4096) -> fc8 (1000) -> softmax。AlexNet有著和LeNet-5相似網(wǎng)絡(luò)結(jié)構(gòu),但更深、有更多參數(shù)。conv1使用11×11的濾波器、步長為4使空間大小迅速減小(227×227 -> 55×55)。AlexNet的關(guān)鍵點是:(1). 使用了ReLU激活函數(shù),使之有更好的梯度特性、訓(xùn)練更快。(2). 使用了隨機失活(dropout)。(3). 大量使用數(shù)據(jù)擴充技術(shù)。AlexNet的意義在于它以高出第二名10%的性能取得了當年ILSVRC競賽的冠軍,這使人們意識到卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢。此外,AlexNet也使人們意識到可以利用GPU加速卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練。AlexNet取名源自其作者名Alex。

VGG-16/VGG-19 138M參數(shù),ILSVRC 2014的亞軍網(wǎng)絡(luò)。VGG-16的基本架構(gòu)為:conv1^2 (64) -> pool1 -> conv2^2 (128) -> pool2 -> conv3^3 (256) -> pool3 -> conv4^3 (512) -> pool4 -> conv5^3 (512) -> pool5 -> fc6 (4096) -> fc7 (4096) -> fc8 (1000) -> softmax。^3代表重復(fù)3次。VGG網(wǎng)絡(luò)的關(guān)鍵點是:(1). 結(jié)構(gòu)簡單,只有3×3卷積和2×2匯合兩種配置,并且重復(fù)堆疊相同的模塊組合。卷積層不改變空間大小,每經(jīng)過一次匯合層,空間大小減半。(2). 參數(shù)量大,而且大部分的參數(shù)集中在全連接層中。網(wǎng)絡(luò)名稱中有16表示它有16層conv/fc層。(3). 合適的網(wǎng)絡(luò)初始化和使用批量歸一(batch normalization)層對訓(xùn)練深層網(wǎng)絡(luò)很重要。在原論文中無法直接訓(xùn)練深層VGG網(wǎng)絡(luò),因此先訓(xùn)練淺層網(wǎng)絡(luò),并使用淺層網(wǎng)絡(luò)對深層網(wǎng)絡(luò)進行初始化。在BN出現(xiàn)之后,伴隨其他技術(shù),后續(xù)提出的深層網(wǎng)絡(luò)可以直接得以訓(xùn)練。VGG-19結(jié)構(gòu)類似于VGG-16,有略好于VGG-16的性能,但VGG-19需要消耗更大的資源,因此實際中VGG-16使用得更多。由于VGG-16網(wǎng)絡(luò)結(jié)構(gòu)十分簡單,并且很適合遷移學(xué)習(xí),因此至今VGG-16仍在廣泛使用。VGG-16和VGG-19取名源自作者所處研究組名(Visual Geometry Group)。

GoogLeNet 5M參數(shù),ILSVRC 2014的冠軍網(wǎng)絡(luò)。GoogLeNet試圖回答在設(shè)計網(wǎng)絡(luò)時究竟應(yīng)該選多大尺寸的卷積、或者應(yīng)該選匯合層。其提出了Inception模塊,同時用1×1、3×3、5×5卷積和3×3匯合,并保留所有結(jié)果。網(wǎng)絡(luò)基本架構(gòu)為:conv1 (64) -> pool1 -> conv2^2 (64, 192) -> pool2 -> inc3 (256, 480) -> pool3 -> inc4^5 (512, 512, 512, 528, 832) -> pool4 -> inc5^2 (832, 1024) -> pool5 -> fc (1000)。GoogLeNet的關(guān)鍵點是:(1). 多分支分別處理,并級聯(lián)結(jié)果。(2). 為了降低計算量,用了1×1卷積降維。GoogLeNet使用了全局平均匯合替代全連接層,使網(wǎng)絡(luò)參數(shù)大幅減少。GoogLeNet取名源自作者所處單位(Google),其中L大寫是為了向LeNet致敬,而Inception的名字來源于盜夢空間中的"we need to go deeper"梗。

Inception v3/v4 在GoogLeNet的基礎(chǔ)上進一步降低參數(shù)。其和GoogLeNet有相似的Inception模塊,但將7×7和5×5卷積分解成若干等效3×3卷積,并在網(wǎng)絡(luò)中后部分把3×3卷積分解為1×3和3×1卷積。這使得在相似的網(wǎng)絡(luò)參數(shù)下網(wǎng)絡(luò)可以部署到42層。此外,Inception v3使用了批量歸一層。Inception v3是GoogLeNet計算量的2.5倍,而錯誤率較后者下降了3%。Inception v4在Inception模塊基礎(chǔ)上結(jié)合了residual模塊(見下文),進一步降低了0.4%的錯誤率。

ResNet ILSVRC 2015的冠軍網(wǎng)絡(luò)。ResNet旨在解決網(wǎng)絡(luò)加深后訓(xùn)練難度增大的現(xiàn)象。其提出了residual模塊,包含兩個3×3卷積和一個短路連接(左圖)。短路連接可以有效緩解反向傳播時由于深度過深導(dǎo)致的梯度消失現(xiàn)象,這使得網(wǎng)絡(luò)加深之后性能不會變差。短路連接是深度學(xué)習(xí)又一重要思想,除計算機視覺外,短路連接也被用到了機器翻譯、語音識別/合成領(lǐng)域。此外,具有短路連接的ResNet可以看作是許多不同深度而共享參數(shù)的網(wǎng)絡(luò)的集成,網(wǎng)絡(luò)數(shù)目隨層數(shù)指數(shù)增加。ResNet的關(guān)鍵點是:(1). 使用短路連接,使訓(xùn)練深層網(wǎng)絡(luò)更容易,并且重復(fù)堆疊相同的模塊組合。(2). ResNet大量使用了批量歸一層。(3). 對于很深的網(wǎng)絡(luò)(超過50層),ResNet使用了更高效的瓶頸(bottleneck)結(jié)構(gòu)(右圖)。ResNet在ImageNet上取得了超過人的準確率。

下圖對比了上述幾種網(wǎng)絡(luò)結(jié)構(gòu)。

preResNet ResNet的改進。preResNet整了residual模塊中各層的順序。相比經(jīng)典residual模塊(a),(b)將BN共享會更加影響信息的短路傳播,使網(wǎng)絡(luò)更難訓(xùn)練、性能也更差;(c)直接將ReLU移到BN后會使該分支的輸出始終非負,使網(wǎng)絡(luò)表示能力下降;(d)將ReLU提前解決了(e)的非負問題,但ReLU無法享受BN的效果;(e)將ReLU和BN都提前解決了(d)的問題。preResNet的短路連接(e)能更加直接的傳遞信息,進而取得了比ResNet更好的性能。

ResNeXt ResNet的另一改進。傳統(tǒng)的方法通常是靠加深或加寬網(wǎng)絡(luò)來提升性能,但計算開銷也會隨之增加。ResNeXt旨在不改變模型復(fù)雜度的情況下提升性能。受精簡而高效的Inception模塊啟發(fā),ResNeXt將ResNet中非短路那一分支變?yōu)槎鄠€分支。和Inception不同的是,每個分支的結(jié)構(gòu)都相同。ResNeXt的關(guān)鍵點是:(1). 沿用ResNet的短路連接,并且重復(fù)堆疊相同的模塊組合。(2). 多分支分別處理。(3). 使用1×1卷積降低計算量。其綜合了ResNet和Inception的優(yōu)點。此外,ResNeXt巧妙地利用分組卷積進行實現(xiàn)。ResNeXt發(fā)現(xiàn),增加分支數(shù)是比加深或加寬更有效地提升網(wǎng)絡(luò)性能的方式。ResNeXt的命名旨在說明這是下一代(next)的ResNet。

隨機深度 ResNet的改進。旨在緩解梯度消失和加速訓(xùn)練。類似于隨機失活(dropout),其以一定概率隨機將residual模塊失活。失活的模塊直接由短路分支輸出,而不經(jīng)過有參數(shù)的分支。在測試時,前饋經(jīng)過全部模塊。隨機深度說明residual模塊是有信息冗余的。

DenseNet 其目的也是避免梯度消失。和residual模塊不同,dense模塊中任意兩層之間均有短路連接。也就是說,每一層的輸入通過級聯(lián)(concatenation)包含了之前所有層的結(jié)果,即包含由低到高所有層次的特征。和之前方法不同的是,DenseNet中卷積層的濾波器數(shù)很少。DenseNet只用ResNet一半的參數(shù)即可達到ResNet的性能。實現(xiàn)方面,作者在大會報告指出,直接將輸出級聯(lián)會占用很大GPU存儲。后來,通過共享存儲,可以在相同的GPU存儲資源下訓(xùn)練更深的DenseNet。但由于有些中間結(jié)果需要重復(fù)計算,該實現(xiàn)會增加訓(xùn)練時間。

SENet ILSVRC 2017的冠軍網(wǎng)絡(luò)。SENet通過額外的分支(gap-fc-fc-sigm)來得到每個通道的[0, 1]權(quán)重,自適應(yīng)地校正原各通道激活值響應(yīng)。以提升有用的通道響應(yīng)并抑制對當前任務(wù)用處不大的通道響應(yīng)。

目標定位(object localization)
在圖像分類的基礎(chǔ)上,我們還想知道圖像中的目標具體在圖像的什么位置,通常是以包圍盒的(bounding box)形式。
基本思路 多任務(wù)學(xué)習(xí),網(wǎng)絡(luò)帶有兩個輸出分支。一個分支用于做圖像分類,即全連接+softmax判斷目標類別,和單純圖像分類區(qū)別在于這里還另外需要一個“背景”類。另一個分支用于判斷目標位置,即完成回歸任務(wù)輸出四個數(shù)字標記包圍盒位置(例如中心點橫縱坐標和包圍盒長寬),該分支輸出結(jié)果只有在分類分支判斷不為“背景”時才使用。
人體位姿定位/人臉定位 目標定位的思路也可以用于人體位姿定位或人臉定位。這兩者都需要我們對一系列的人體關(guān)節(jié)或人臉關(guān)鍵點進行回歸。
弱監(jiān)督定位 由于目標定位是相對比較簡單的任務(wù),近期的研究熱點是在只有標記信息的條件下進行目標定位。其基本思路是從卷積結(jié)果中找到一些較高響應(yīng)的顯著性區(qū)域,認為這個區(qū)域?qū)?yīng)圖像中的目標。
目標檢測(object detection)
在目標定位中,通常只有一個或固定數(shù)目的目標,而目標檢測更一般化,其圖像中出現(xiàn)的目標種類和數(shù)目都不定。因此,目標檢測是比目標定位更具挑戰(zhàn)性的任務(wù)。
(1) 目標檢測常用數(shù)據(jù)集
PASCAL VOC 包含20個類別。通常是用VOC07和VOC12的trainval并集作為訓(xùn)練,用VOC07的測試集作為測試。
MS COCO COCO比VOC更困難。COCO包含80k訓(xùn)練圖像、40k驗證圖像、和20k沒有公開標記的測試圖像(test-dev),80個類別,平均每張圖7.2個目標。通常是用80k訓(xùn)練和35k驗證圖像的并集作為訓(xùn)練,其余5k圖像作為驗證,20k測試圖像用于線上測試。
mAP (mean average precision) 目標檢測中的常用評價指標,計算方法如下。當預(yù)測的包圍盒和真實包圍盒的交并比大于某一閾值(通常為0.5),則認為該預(yù)測正確。對每個類別,我們畫出它的查準率-查全率(precision-recall)曲線,平均準確率是曲線下的面積。之后再對所有類別的平均準確率求平均,即可得到mAP,其取值為[0, 100%]。
交并比(intersection over union, IoU) 算法預(yù)測的包圍盒和真實包圍盒交集的面積除以這兩個包圍盒并集的面積,取值為[0, 1]。交并比度量了算法預(yù)測的包圍盒和真實包圍盒的接近程度,交并比越大,兩個包圍盒的重疊程度越高。
(2) 基于候選區(qū)域的目標檢測算法
基本思路 使用不同大小的窗口在圖像上滑動,在每個區(qū)域,對窗口內(nèi)的區(qū)域進行目標定位。即,將每個窗口內(nèi)的區(qū)域前饋網(wǎng)絡(luò),其分類分支用于判斷該區(qū)域的類別,回歸分支用于輸出包圍盒?;诨瑒哟暗哪繕藱z測動機是,盡管原圖中可能包含多個目標,但滑動窗對應(yīng)的圖像局部區(qū)域內(nèi)通常只會有一個目標(或沒有)。因此,我們可以沿用目標定位的思路對窗口內(nèi)區(qū)域逐個進行處理。但是,由于該方法要把圖像所有區(qū)域都滑動一遍,而且滑動窗大小不一,這會帶來很大的計算開銷。
R-CNN 先利用一些非深度學(xué)習(xí)的類別無關(guān)的無監(jiān)督方法,在圖像中找到一些可能包含目標的候選區(qū)域。之后,對每個候選區(qū)域前饋網(wǎng)絡(luò),進行目標定位,即兩分支(分類+回歸)輸出。其中,我們?nèi)匀恍枰貧w分支的原因是,候選區(qū)域只是對包含目標區(qū)域的一個粗略的估計,我們需要有監(jiān)督地利用回歸分支得到更精確的包圍盒預(yù)測結(jié)果。R-CNN的重要性在于當時目標檢測已接近瓶頸期,而R-CNN利于在ImageNet預(yù)訓(xùn)練模型微調(diào)的方法一舉將VOC上mAP由35.1%提升至53.7%,確定了深度學(xué)習(xí)下目標檢測的基本思路。一個有趣之處是R-CNN論文開篇第一句只有兩個詞"Features matter." 這點明了深度學(xué)習(xí)方法的核心。
候選區(qū)域(region proposal) 候選區(qū)域生成算法通?;趫D像的顏色、紋理、面積、位置等合并相似的像素,最終可以得到一系列的候選矩陣區(qū)域。這些算法,如selective search或EdgeBoxes,通常只需要幾秒的CPU時間,而且,一個典型的候選區(qū)域數(shù)目是2k,相比于用滑動窗把圖像所有區(qū)域都滑動一遍,基于候選區(qū)域的方法十分高效。另一方面,這些候選區(qū)域生成算法的查準率(precision)一般,但查全率(recall)通常比較高,這使得我們不容易遺漏圖像中的目標。

Fast R-CNN R-CNN的弊端是需要多次前饋網(wǎng)絡(luò),這使得R-CNN的運行效率不高,預(yù)測一張圖像需要47秒。Fast R-CNN同樣基于候選區(qū)域進行目標檢測,但受SPPNet啟發(fā),在Fast R-CNN中,不同候選區(qū)域的卷積特征提取部分是共享的。也就是說,我們先將整副圖像前饋網(wǎng)絡(luò),并提取conv5卷積特征。之后,基于在原始圖像上運行候選區(qū)域生成算法的結(jié)果在卷積特征上進行采樣,這一步稱為興趣區(qū)域匯合。最后,對每個候選區(qū)域,進行目標定位,即兩分支(分類+回歸)輸出。
興趣區(qū)域匯合(region of interest pooling, RoI pooling) 興趣區(qū)域匯合旨在由任意大小的候選區(qū)域?qū)?yīng)的局部卷積特征提取得到固定大小的特征,這是因為下一步的兩分支網(wǎng)絡(luò)由于有全連接層,需要其輸入大小固定。其做法是,先將候選區(qū)域投影到卷積特征上,再把對應(yīng)的卷積特征區(qū)域空間上劃分成固定數(shù)目的網(wǎng)格(數(shù)目根據(jù)下一步網(wǎng)絡(luò)希望的輸入大小確定,例如VGGNet需要7×7的網(wǎng)格),最后在每個小的網(wǎng)格區(qū)域內(nèi)進行最大匯合,以得到固定大小的匯合結(jié)果。和經(jīng)典最大匯合一致,每個通道的興趣區(qū)域匯合是獨立的。

Faster R-CNN Fast R-CNN測試時每張圖像前饋網(wǎng)絡(luò)只需0.2秒,但瓶頸在于提取候選區(qū)域需要2秒。Faster R-CNN不再使用現(xiàn)有的無監(jiān)督候選區(qū)域生成算法,而利用候選區(qū)域網(wǎng)絡(luò)從conv5特征中產(chǎn)生候選區(qū)域,并且將候選區(qū)域網(wǎng)絡(luò)集成到整個網(wǎng)絡(luò)中端到端訓(xùn)練。Faster R-CNN的測試時間是0.2秒,接近實時。后來有研究發(fā)現(xiàn),通過使用更少的候選區(qū)域,可以在性能損失不大的條件下進一步提速。
候選區(qū)域網(wǎng)絡(luò)(region proposal networks, RPN) 在卷積特征上的通過兩層卷積(3×3和1×1卷積),輸出兩個分支。其中,一個分支用于判斷每個錨盒是否包含了目標,另一個分支對每個錨盒輸出候選區(qū)域的4個坐標。候選區(qū)域網(wǎng)絡(luò)實際上延續(xù)了基于滑動窗進行目標定位的思路,不同之處在于候選區(qū)域網(wǎng)絡(luò)在卷積特征而不是在原圖上進行滑動。由于卷積特征的空間大小很小而感受野很大,即使使用3×3的滑動窗,也能對應(yīng)于很大的原圖區(qū)域。Faster R-CNN實際使用了3組大小(128×128、256×256、512×512)、3組長寬比(1:1、1:2、2:1),共計9個錨盒,這里錨盒的大小已經(jīng)超過conv5特征感受野的大小。對一張1000×600的圖像,可以得到20k個錨盒。
為什么要使用錨盒(anchor box) 錨盒是預(yù)先定義形狀和大小的包圍盒。使用錨盒的原因包括:(1). 圖像中的候選區(qū)域大小和長寬比不同,直接回歸比對錨盒坐標修正訓(xùn)練起來更困難。(2). conv5特征感受野很大,很可能該感受野內(nèi)包含了不止一個目標,使用多個錨盒可以同時對感受野內(nèi)出現(xiàn)的多個目標進行預(yù)測。(3). 使用錨盒也可以認為這是向神經(jīng)網(wǎng)絡(luò)引入先驗知識的一種方式。我們可以根據(jù)數(shù)據(jù)中包圍盒通常出現(xiàn)的形狀和大小設(shè)定一組錨盒。錨盒之間是獨立的,不同的錨盒對應(yīng)不同的目標,比如高瘦的錨盒對應(yīng)于人,而矮胖的錨盒對應(yīng)于車輛。

R-FCN Faster R-CNN在RoI pooling之后,需要對每個候選區(qū)域單獨進行兩分支預(yù)測。R-FCN旨在使幾乎所有的計算共享,以進一步加快速度。由于圖像分類任務(wù)不關(guān)心目標具體在圖像的位置,網(wǎng)絡(luò)具有平移不變性。但目標檢測中由于要回歸出目標的位置,所以網(wǎng)絡(luò)輸出應(yīng)當受目標平移的影響。為了緩和這兩者的矛盾,R-FCN顯式地給予深度卷積特征各通道以位置關(guān)系。在RoI匯合時,先將候選區(qū)域劃分成3×3的網(wǎng)格,之后將不同網(wǎng)格對應(yīng)于候選卷積特征的不同通道,最后每個網(wǎng)格分別進行平均匯合。R-FCN同樣采用了兩分支(分類+回歸)輸出。

小結(jié) 基于候選區(qū)域的目標檢測算法通常需要兩步:第一步是從圖像中提取深度特征,第二步是對每個候選區(qū)域進行定位(包括分類和回歸)。其中,第一步是圖像級別計算,一張圖像只需要前饋該部分網(wǎng)絡(luò)一次,而第二步是區(qū)域級別計算,每個候選區(qū)域都分別需要前饋該部分網(wǎng)絡(luò)一次。因此,第二步占用了整體主要的計算開銷。R-CNN, Fast R-CNN, Faster R-CNN, R-FCN這些算法的演進思路是逐漸提高網(wǎng)絡(luò)中圖像級別計算的比例,同時降低區(qū)域級別計算的比例。R-CNN中幾乎所有的計算都是區(qū)域級別計算,而R-FCN中幾乎所有的計算都是圖像級別計算。

(3) 基于直接回歸的目標檢測算法
基本思路 基于候選區(qū)域的方法由于有兩步操作,雖然檢測性能比較好,但速度上離實時仍有一些差距?;谥苯踊貧w的方法不需要候選區(qū)域,直接輸出分類/回歸結(jié)果。這類方法由于圖像只需前饋網(wǎng)絡(luò)一次,速度通常更快,可以達到實時。
YOLO 將圖像劃分成7×7的網(wǎng)格,其中圖像中的真實目標被其劃分到目標中心所在的網(wǎng)格及其最接近的錨盒。對每個網(wǎng)格區(qū)域,網(wǎng)絡(luò)需要預(yù)測:每個錨盒包含目標的概率(不包含目標時應(yīng)為0,否則為錨盒和真實包圍盒的IoU)、每個錨盒的4個坐標、該網(wǎng)格的類別概率分布。每個錨盒的類別概率分布等于每個錨盒包含目標的概率乘以該網(wǎng)格的類別概率分布。相比基于候選區(qū)域的方法,YOLO需要預(yù)測包含目標的概率的原因是,圖像中大部分的區(qū)域不包含目標,而訓(xùn)練時只有目標存在時才對坐標和類別概率分布進行更新。YOLO的優(yōu)點在于:(1). 基于候選區(qū)域的方法的感受野是圖像中的局部區(qū)域,而YOLO可以利用整張圖像的信息。(2). 有更好的泛化能力。YOLO的局限在于:(1). 不能很好處理網(wǎng)格中目標數(shù)超過預(yù)設(shè)固定值,或網(wǎng)格中有多個目標同時屬于一個錨盒的情況。(2). 對小目標的檢測能力不夠好。(3). 對不常見長寬比的包圍盒的檢測能力不強。(4). 計算損失時沒有考慮包圍盒大小。大的包圍盒中的小偏移和小的包圍盒中的小偏移應(yīng)有不同的影響。

SSD 相比YOLO,SSD在卷積特征后加了若干卷積層以減小特征空間大小,并通過綜合多層卷積層的檢測結(jié)果以檢測不同大小的目標。此外,類似于Faster R-CNN的RPN,SSD使用3×3卷積取代了YOLO中的全連接層,以對不同大小和長寬比的錨盒來進行分類/回歸。SSD取得了比YOLO更快,接近Faster R-CNN的檢測性能。后來有研究發(fā)現(xiàn),相比其他方法,SSD受基礎(chǔ)模型性能的影響相對較小。

FPN 之前的方法都是取高層卷積特征。但由于高層特征會損失一些細節(jié)信息,F(xiàn)PN融合多層特征,以綜合高層、低分辨率、強語義信息和低層、高分辨率、弱語義信息來增強網(wǎng)絡(luò)對小目標的處理能力。此外,和通常用多層融合的結(jié)果做預(yù)測的方法不同,F(xiàn)PN在不同層獨立進行預(yù)測。FPN既可以與基于候選區(qū)域的方法結(jié)合,也可以與基于直接回歸的方法結(jié)合。FPN在和Faster R-CNN結(jié)合后,在基本不增加原有模型計算量的情況下,大幅提高對小目標的檢測性能。

RetinaNet RetinaNet認為,基于直接回歸的方法性能通常不如基于候選區(qū)域方法的原因是,前者會面臨極端的類別不平衡現(xiàn)象?;诤蜻x區(qū)域的方法可以通過候選區(qū)域過濾掉大部分的背景區(qū)域,但基于直接回歸的方法需要直接面對類別不平衡。因此,RetinaNet通過改進經(jīng)典的交叉熵損失以降低對已經(jīng)分的很好的樣例的損失值,提出了焦點(focal)損失函數(shù),以使模型訓(xùn)練時更加關(guān)注到困難的樣例上。RetinaNet取得了接近基于直接回歸方法的速度,和超過基于候選區(qū)域的方法的性能。


(4) 目標檢測常用技巧
非最大抑制(non-max suppression, NMS) 目標檢測可能會出現(xiàn)的一個問題是,模型會對同一目標做出多次預(yù)測,得到多個包圍盒。NMS旨在保留最接近真實包圍盒的那一個預(yù)測結(jié)果,而抑制其他的預(yù)測結(jié)果。NMS的做法是,首先,對每個類別,NMS先統(tǒng)計每個預(yù)測結(jié)果輸出的屬于該類別概率,并將預(yù)測結(jié)果按該概率由高至低排序。其次,NMS認為對應(yīng)概率很小的預(yù)測結(jié)果并沒有找到目標,所以將其抑制。然后,NMS在剩余的預(yù)測結(jié)果中,找到對應(yīng)概率最大的預(yù)測結(jié)果,將其輸出,并抑制和該包圍盒有很大重疊(如IoU大于0.3)的其他包圍盒。重復(fù)上一步,直到所有的預(yù)測結(jié)果均被處理。
在線困難樣例挖掘(online hard example mining, OHEM) 目標檢測的另一個問題是類別不平衡,圖像中大部分的區(qū)域是不包含目標的,而只有小部分區(qū)域包含目標。此外,不同目標的檢測難度也有很大差異,絕大部分的目標很容易被檢測到,而有一小部分目標卻十分困難。OHEM和Boosting的思路類似,其根據(jù)損失值將所有候選區(qū)域進行排序,并選擇損失值最高的一部分候選區(qū)域進行優(yōu)化,使網(wǎng)絡(luò)更關(guān)注于圖像中更困難的目標。此外,為了避免選到相互重疊很大的候選區(qū)域,OHEM對候選區(qū)域根據(jù)損失值進行NMS。
在對數(shù)空間回歸 回歸相比分類優(yōu)化難度大了很多。
損失對異常值比較敏感,由于有平方,異常值會有大的損失值,同時會有很大的梯度,使訓(xùn)練時很容易發(fā)生梯度爆炸。而
損失的梯度不連續(xù)。在對數(shù)空間中,由于數(shù)值的動態(tài)范圍小了很多,回歸訓(xùn)練起來也會容易很多。此外,也有人用平滑的
損失進行優(yōu)化。預(yù)先將回歸目標規(guī)范化也會有助于訓(xùn)練。
語義分割(semantic segmentation)
語義分割是目標檢測更進階的任務(wù),目標檢測只需要框出每個目標的包圍盒,語義分割需要進一步判斷圖像中哪些像素屬于哪個目標。
(1) 語義分割常用數(shù)據(jù)集
PASCAL VOC 2012 1.5k訓(xùn)練圖像,1.5k驗證圖像,20個類別(包含背景)。
MS COCO COCO比VOC更困難。有83k訓(xùn)練圖像,41k驗證圖像,80k測試圖像,80個類別。
(2) 語義分割基本思路
基本思路 逐像素進行圖像分類。我們將整張圖像輸入網(wǎng)絡(luò),使輸出的空間大小和輸入一致,通道數(shù)等于類別數(shù),分別代表了各空間位置屬于各類別的概率,即可以逐像素地進行分類。
全卷積網(wǎng)絡(luò)+反卷積網(wǎng)絡(luò) 為使得輸出具有三維結(jié)構(gòu),全卷積網(wǎng)絡(luò)中沒有全連接層,只有卷積層和匯合層。但是隨著卷積和匯合的進行,圖像通道數(shù)越來越大,而空間大小越來越小。要想使輸出和輸入有相同的空間大小,全卷積網(wǎng)絡(luò)需要使用反卷積和反匯合來增大空間大小。

反卷積(deconvolution)/轉(zhuǎn)置卷積(transpose convolution) 標準卷積的濾波器在輸入圖像中進行滑動,每次和輸入圖像局部區(qū)域點乘得到一個輸出,而反卷積的濾波器在輸出圖像中進行滑動,每個由一個輸入神經(jīng)元乘以濾波器得到一個輸出局部區(qū)域。反卷積的前向過程和卷積的反向過程完成的是相同的數(shù)學(xué)運算。和標準卷積的濾波器一樣,反卷積的濾波器也是從數(shù)據(jù)中學(xué)到的。
反最大匯合(max-unpooling) 通常全卷積網(wǎng)絡(luò)是對稱的結(jié)構(gòu),在最大匯合時需要記下最大值所處局部區(qū)域位置,在對應(yīng)反最大匯合時將對應(yīng)位置輸出置為輸入,其余位置補零。反最大匯合可以彌補最大匯合時丟失的空間信息。反最大匯合的前向過程和最大匯合的反向過程完成的是相同的數(shù)學(xué)運算。

(3) 語義分割常用技巧
擴張卷積(dilated convolution) 經(jīng)常用于分割任務(wù)以增大有效感受野的一個技巧。標準卷積操作中每個輸出神經(jīng)元對應(yīng)的輸入局部區(qū)域是連續(xù)的,而擴張卷積對應(yīng)的輸入局部區(qū)域在空間位置上不連續(xù)。擴張卷積向標準卷積運算中引入了一個新的超參數(shù)擴張量(dilation),用于描述輸入局部區(qū)域在空間位置上的間距。當擴張量為1時,擴張卷積退化為標準卷積。擴張卷積可以在參數(shù)量不變的情況下有效提高感受野。例如,當有多層3×3標準卷積堆疊時,第l 層卷積(l 從1開始)的輸出神經(jīng)元的感受野為2l +1。與之相比,當有多層3×3擴張卷積堆疊,其中第l 層卷積的擴張量為2^{l-1}時,第l 層卷積的輸出神經(jīng)元的感受野為2^{l +1}-1。感受野越大,神經(jīng)元能利用的相關(guān)信息越多。和經(jīng)典計算機視覺手工特征相比,大的感受野是深度學(xué)習(xí)方法能取得優(yōu)異性能的重要原因之一。

條件隨機場(conditional random field, CRF) 條件隨機場是一種概率圖模型,常被用于微修全卷積網(wǎng)絡(luò)的輸出結(jié)果,使細節(jié)信息更好。其動機是距離相近的像素、或像素值相近的像素更可能屬于相同的類別。此外,有研究工作用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks)近似條件隨機場。條件隨機場的另一弊端是會考慮兩兩像素之間的關(guān)系,這使其運行效率不高。
利用低層信息 綜合利用低層結(jié)果可以彌補隨著網(wǎng)絡(luò)加深丟失的細節(jié)和邊緣信息,利用方式可以是加和(如FCN)或沿通道方向拼接(如U-net),后者效果通常會更好一些。

實例分割(instance segmentation)
語義分割不區(qū)分屬于相同類別的不同實例。例如,當圖像中有多只貓時,語義分割會將兩只貓整體的所有像素預(yù)測為“貓”這個類別。與此不同的是,實例分割需要區(qū)分出哪些像素屬于第一只貓、哪些像素屬于第二只貓。
基本思路 目標檢測+語義分割。先用目標檢測方法將圖像中的不同實例框出,再用語義分割方法在不同包圍盒內(nèi)進行逐像素標記。
Mask R-CNN 用FPN進行目標檢測,并通過添加額外分支進行語義分割(額外分割分支和原檢測分支不共享參數(shù)),即Mask R-CNN有三個輸出分支(分類、坐標回歸、和分割)。此外,Mask R-CNN的其他改進有:(1). 改進了RoI匯合,通過雙線性差值使候選區(qū)域和卷積特征的對齊不因量化而損失信息。(2). 在分割時,Mask R-CNN將判斷類別和輸出模板(mask)這兩個任務(wù)解耦合,用sigmoid配合對率(logistic)損失函數(shù)對每個類別的模板單獨處理,取得了比經(jīng)典分割方法用softmax讓所有類別一起競爭更好的效果。

參考文獻
V. Badrinarayanan, et al. SegNet: A deep convolutional encoder-decoder architecture for image segmentation. TPAMI, 2017.
Y. Bengio, et al. Representation learning: A review and new perspectives. TPAMI, 2013.
L.-C. Chen, et al. SegNet: A deep convolutional encoder-decoder architecture for image segmentation. PAMI, 2017.
S. Chetlur, et al. cuDNN: Efficient primitives for deep learning. arXiv: 1410.0759, 2014.
J. Cong, and B. Xiao. Minimizing computation in convolutional neural networks. ICANN, 2014.
J. Dai, et al. R-FCN: Object detection via region-based fully convolutional networks. NIPS, 2016.
A. Garcia-Garcia, et al. A review on deep learning techniques applied to semantic segmentation. arXiv: 1704.06857, 2017.
R. Girshick, et al. Rich feature hierarchies for accurate object detection and semantic segmentation. CVPR, 2014.
R. Girshick. Fast R-CNN. ICCV, 2015.
K. He, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition. ECCV, 2014.
K. He, et al. Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. ICCV, 2015.
K. He, et al. Deep residual learning for image recognition. CVPR, 2016.
K. He, et al. Identity mappings in deep residual networks. ECCV, 2016.
K. He, et al. Mask R-CNN. ICCV, 2017.
J. Hu, et al. Squeeze-and-excitation networks. CVPR, 2018.
G. Huang, et al. Deep networks with stochastic depth. ECCV, 2016.
G. Huang, et al. Densely connected convolutional networks. CVPR, 2017.
J. Huang, et al. Speed/Accuracy trade-offs for modern convolutional object detectors. CVPR, 2017.
A. Krizhevsky, and G. Hinton. Learning multiple layers of features from tiny images. Technical Report, 2009.
A. Krizhevsky, et al. ImageNet classification with deep convolutional neural networks. NIPS, 2012.
A. Lavin, and S. Gray. Fast algorithms for convolutional neural networks. CVPR, 2016.
Y. LeCun, et al. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 1998.
M. Lin, et al. Network in network. ICLR, 2014.
T.-Y. Lin, et al. Microsoft COCO: Common objects in context. ECCV, 2014.
T.-Y. Lin, et al. Feature pyramid networks for object detection. CVPR, 2017.
T.-Y. Lin, et al. Focal loss for dense object detection. ICCV, 2017.
W. Liu, et al. SSD: Single shot multibox detector. ECCV, 2016.
J. Long, et al. Fully convolutional networks for semantic segmentation. CVPR, 2015.
H. Noh, et al. Learning deconvolution network for semantic segmentation. ICCV, 2015.
G. Pleiss, et al. Memory-efficient implementation of DenseNets. arXiv: 1707.06990, 2017.
J. Redmon, et al. You only look once: Unified, real-time object detection. CVPR, 2016.
S. Ren, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. NIPS, 2015.
S. Ren, et al. Object detection networks on convolutional feature maps. TPAMI, 2017.
O. Ronneberger, et al. U-net: Convolutional networks for biomedical image segmentation. MICCAI, 2015.
O. Russakovsky, et al. ImageNet large scale visual recognition challenge. IJCV, 2015.
P. Sermanet, et al. OverFeat: Integrated recognition, localization, and detection using convolutional networks. ICLR, 2014.
A. Shrivastava, et al. Training region-based object detectors with online hard example mining. CVPR, 2016.
K. Simonyan, and A. Zisserman. Very deep convolutional networks for large-scale image recognition. ICLR, 2015.
J. T. Springenberg, et al. Striving for simplicity: The all convolutional net. ICLR Workshop, 2015.
V. Sze, et al. Efficient processing of deep neural networks: A tutorial and survey. Proceedings of IEEE, 2017.
C. Szegedy, et al. Going deep with convolutions. CVPR, 2015.
C. Szegedy, et al. Rethinking the Inception architecture for computer vision. CVPR, 2016.
C. Szegedy, et al. Inception v4, Inception-ResNet and the impact of residual connections on learning. AAAI, 2017.
A. Toshev, and C. Szegedy. DeepPose: Human pose estimation via deep neural networks. CVPR, 2014.
A. Veit, et al. Residual networks behave like ensembles of relatively shallow networks. NIPS, 2016.
S. Xie, et al. Aggregated residual transformations for deep neural networks. CVPR, 2017.
F. Yu, and V. Koltun. Multi-scale context aggregation by dilated convolutions. ICLR, 2016.
M. D. Zeiler, and R. Fergus. Visualizing and understanding convolutional networks. ECCV, 2014.
S. Zheng, et al. Conditional random fields as recurrent neural networks. ICCV, 2015.
推薦閱讀
為了方便大家學(xué)習(xí)交流,我們建立了微信群,歡迎大家掃碼進群討論。
微商和廣告無關(guān)人員勿擾,謝謝合作!

