基于深度學(xué)習(xí)的圖像邊緣和輪廓提取方法介紹
點擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
作者:黃浴?奇點汽車 首席科學(xué)家
整理:Hoh Xil
來源:
https://zhuanlan.zhihu.com/p/78051407
導(dǎo)讀:邊緣和輪廓的提取是一個非常棘手的工作,細(xì)節(jié)也許就會被過強(qiáng)的圖像線條掩蓋,紋理(texture)本身就是一種很弱的邊緣分布模式,分級(hierarchical)表示是常用的方法,俗稱尺度空間(scale space)。以前做移動端的視覺平臺,有時候不得不把一些圖像處理功能關(guān)掉,原因是造成了特征畸變。現(xiàn)在 CNN 模型這種天然的特征描述機(jī)制,給圖像預(yù)處理提供了不錯的工具,它能將圖像處理和視覺預(yù)處理合二為一。
——邊緣提取——
1. HED
整體嵌套邊緣檢測(Holistically-Nested Edge Detection,HED 是一個深度學(xué)習(xí)的邊緣提取的算法,兩個特色:(1)整體圖像訓(xùn)練和預(yù)測; (2)多尺度、多層特征學(xué)習(xí)。該深度模型利用全卷積網(wǎng)絡(luò),自動學(xué)習(xí)豐富的分層表示(基于側(cè)面響應(yīng)的深層監(jiān)督指導(dǎo))。
多尺度深度學(xué)習(xí)可分為四類,即多流學(xué)習(xí)(multi-stream)、跳網(wǎng)(skip-net learning)學(xué)習(xí)、多輸入單模型以及獨立網(wǎng)訓(xùn)練,如圖所示:(a)多流架構(gòu); (b)跳網(wǎng)架構(gòu); (c)多尺度輸入的單一模型; (d)不同網(wǎng)絡(luò)獨立訓(xùn)練; (e)HED,其中添加多個側(cè)面輸出。

在表示和計算復(fù)雜性方面,(a)-(d)方法存在冗余。(e)HED 是一個相對簡單的變體,能夠從多個尺度產(chǎn)生預(yù)測。該結(jié)構(gòu)可以被解釋為(d)“獨立網(wǎng)絡(luò)”法的“整體嵌套”版,包括多個側(cè)輸出的單流深度網(wǎng)絡(luò)。隱藏層監(jiān)督可以改善圖像分類任務(wù)的優(yōu)化和泛化。如果需要統(tǒng)一輸出,多側(cè)向輸出可以靈活地添加額外的融合層。
如圖是 HED 的網(wǎng)絡(luò)架構(gòu)圖,在卷積層之后插入側(cè)輸出層,在每個側(cè)輸出層施加深度監(jiān)督,引導(dǎo)側(cè)輸出成為邊緣預(yù)測。HED 輸出是多尺度多層,側(cè)輸出面變小,感受野變大。一個加權(quán)融合層自動學(xué)習(xí)如何組合來自多個尺度的輸出。整個網(wǎng)絡(luò)通過多個誤差傳播路徑(虛線)訓(xùn)練。

下圖給出HED的部分實驗結(jié)果。(a)測試圖像;(b)手工標(biāo)注的邊緣;(c)HED 結(jié)果。(d)、(e)和(f)卷積神經(jīng)網(wǎng)絡(luò)的層2、3和4的側(cè)邊響應(yīng)。(g)、(h)和(i)Canny 邊緣檢測器在尺度 σ= 2.0、σ= 4.0 和 σ= 8.0 的邊緣響應(yīng)。HED 與 Canny 在一致性方面顯示出明顯的優(yōu)勢。

2. CASENet
CASENet 將每個邊緣像素與多于一個的邊緣類相關(guān)聯(lián),是一種基于 ResNet 的端到端深度語義邊緣學(xué)習(xí)的架構(gòu),同時也是一種跳層(skip-layer)架構(gòu),其中頂層卷積層的類別邊緣激活共享并與底層特征的同一集融合,這里一種多標(biāo)簽損失函數(shù)來監(jiān)督激活的融合。
三種 CNN 架構(gòu)的比較如圖(a)-(c)所示。圖中實心矩形表示 CNN 層的組合塊。寬度減小表示輸出特征圖的空間分辨率下降2倍。箭頭旁邊的數(shù)字表示輸出特征的通道數(shù)。藍(lán)色實心矩形是一堆 ResNet 塊。紫色實心矩形是分類模塊。紅色虛線框表示輸出由損失函數(shù)監(jiān)控。灰色實心矩形是側(cè)面特征提取模塊。深綠色實心矩形是融合分類模塊,執(zhí)行 K 個分組1×1卷積。圖(d)-(h)是圖(a)-(c)中模塊細(xì)節(jié),其中矩形是輸入和輸出特征圖。

圖(a)是基礎(chǔ)網(wǎng)絡(luò),采用全卷積網(wǎng)絡(luò)框架,在 ResNet-101 刪除平均池化和全連接層并保留底部卷積塊;將 ResNet-101 中第一個和第五個卷積塊(“res1”和“res5”)的步幅從2改為1;將擴(kuò)張因子(dilation factors)引入后續(xù)的卷積層以保持原始 ResNet 相同的感受野;在基礎(chǔ)網(wǎng)絡(luò)的頂部,添加分類模塊(圖(d))作為1×1卷積層,然后是雙線性上采樣(由 K 分組反卷積層實現(xiàn))產(chǎn)生一個 K 個激活圖 { A1,···,AK } 的集合,其中每個激活圖都與圖像尺寸相同;然后,Yk(p)=σ(Ak(p))定義的 sigmoid 單元對像素屬于第 k 類邊緣的概率建模。
前面 HED 網(wǎng)絡(luò)的基本思路是除了頂部網(wǎng)絡(luò)損失以外還考慮底層卷積損失。另外,通過監(jiān)督側(cè)面激活的線性組合來獲得融合邊緣圖。不過,HED 僅執(zhí)行二進(jìn)制邊緣檢測。深度監(jiān)督網(wǎng)絡(luò)(DSN)擴(kuò)展了這種架構(gòu),處理側(cè)輸出的K通道和最終輸出的 K 通道,如圖(b)所示。在該網(wǎng)絡(luò)中,將上述分類模塊連接到每個殘差塊的輸出,產(chǎn)生5個側(cè)分類激活圖 { A(1), ... , A(5)},其中每個激活圖都有K通道。然后,通過切片連接層(sliced concatenation layer)融合這5個激活圖(圖中顏色表示圖(g)的通道索引)產(chǎn)生 5K 通道激活圖:
Af 饋入融合分類層,該分類層執(zhí)行 K-組 1×1卷積(圖(f))產(chǎn)生 K-通道激活圖A(6)。最后,在激活圖 {A(1),...,A(6)}計算6個損失函數(shù),為該網(wǎng)絡(luò)提供深入監(jiān)督。
由于監(jiān)督5個側(cè)面激活,隱含地約束了那些側(cè)面激活的每個通道只帶有該類別最相關(guān)的信息。由于切片級聯(lián)和分組卷積,像素 p 的融合激活由下式給出:

CASENet 采用嵌套式架構(gòu)(nested architecture),改進(jìn)點如下:
① 將底部分類模塊更換為特征提取模塊。
② 放置分類模塊,僅在網(wǎng)絡(luò)頂部施加監(jiān)督。
③ 采用共享串聯(lián)(圖(h))而不是切片連接。
側(cè)面特征提取和側(cè)面分類之間的區(qū)別在于前者僅輸出單個通道特征圖 F(j)而不是 K 類激活。共享級聯(lián)從 Side-1-3 復(fù)制底部特征 F = {F(1),F(xiàn)(2),F(xiàn)(3)},分別與 K 個頂部激活的每一個相連接:

到的連接激活圖再被饋送到有 K-分組卷積的融合分類層,產(chǎn)生 K-通道激活圖 A(6)。
通常 CASENet 被認(rèn)為是聯(lián)合邊緣檢測和分類的網(wǎng)絡(luò),它讓較低級的特征參與并通過跳層結(jié)構(gòu)增強(qiáng)高級的語義分類。
下圖是 CASENet 和 DSN 的結(jié)果比較,從左到右:輸入,基礎(chǔ)事實,DSN 和 CASENet。CASENet 在具有挑戰(zhàn)性的目標(biāo)上顯示出更好的檢測質(zhì)量,而 DSN 在非邊緣像素有更多的誤報。

——輪廓提取——
1. DeepEdge
以前大多使用紋理或顯著性等低級特征來檢測輪廓,而 DeepEdge 利用目標(biāo)相關(guān)特征作為輪廓的高級線索檢測。設(shè)計的是多級深度網(wǎng)絡(luò),由五個卷積層和一個分叉全連接子網(wǎng)絡(luò)(bifurcated fully-connected subnetwork)組成。從輸入層到第五個卷積層是預(yù)訓(xùn)練網(wǎng)絡(luò),直接用于圖像輸入的四個不同尺度。將這四個平行且相同的數(shù)據(jù)流連接到兩個獨立訓(xùn)練的分支組成的分叉子網(wǎng)絡(luò),一個分支學(xué)習(xí)預(yù)測輪廓似然(以分類為目標(biāo)),而另一個分支訓(xùn)練學(xué)習(xí)在給定點輪廓的存在(基于回歸測度),如圖是 DeepEdge 架構(gòu)圖,其中 Canny 邊緣檢測器提取候選輪廓點,然后在每個候選點周圍,提取四個不同尺度的補(bǔ)丁,同時通過預(yù)訓(xùn)練的 KNet 五個卷積層。

一個解釋模型架構(gòu)的單尺度示意圖,在下圖給出:首先,輸入以候選點為中心的補(bǔ)丁,經(jīng)過 KNet 五個卷積層;為了提取高級特征,在每個卷積層提取圍繞中心點的特征圖的小子容積,并在子容積上執(zhí)行最大、平均和中心池化。池化值饋入分叉子網(wǎng)絡(luò)。測試時,從分叉子網(wǎng)絡(luò)的分支計算的標(biāo)量輸出做平均,生成最終輪廓預(yù)測。

如圖給出部分實驗結(jié)果:左到右依次為輸入圖像、Canny 邊緣檢測器產(chǎn)生的候選點集合、非閾值預(yù)測、閾值預(yù)測和基礎(chǔ)事實圖。為了生成閾值預(yù)測,概率閾值設(shè)為0.5。

2. CEDN
另外一種方法利用全卷積編碼器-解碼器網(wǎng)絡(luò)(CEDN),端到端訓(xùn)練的數(shù)據(jù)來自 PASCAL VOC 中修正的不準(zhǔn)確的多邊形標(biāo)注,其網(wǎng)絡(luò)架構(gòu)如圖所示。

部分實驗結(jié)果見圖:從左到右依此是(a)輸入圖像,(b)GT 輪廓,(c)具有預(yù)訓(xùn)練 CEDN 的輪廓檢測,和(d)具有細(xì)調(diào) CEDN 的輪廓檢測。

——參考文獻(xiàn)——
1. G Bertasius, J Shi, L Torresani,“DeepEdge: A Multi-Scale Bifurcated Deep Network for Top-Down Contour Detection”, CVPR, 2015
2. S Xie, Z Tu,“Holistically-Nested Edge Detection“, ICCV 2015
3. W Shen et al.,“DeepContour: A Deep Convolutional Feature Learned by Positive-sharing Loss for Contour Detection”, CVPR 2015
4. Z Yu et al.,“CASENet: Deep Category-Aware Semantic Edge Detection”, CVPR 2017? ??
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

