王衢 林川 陳永亮
摘? 要:傳統(tǒng)的基于卷積神經(jīng)網(wǎng)絡的輪廓檢測方法多為由編碼網(wǎng)絡和解碼網(wǎng)絡構成的編解碼結構,存在輪廓定位不準確、輸出輪廓模糊的問題。為解決這一問題,提出一種基于離散變分自編碼器的輪廓檢測方法。該方法舍棄了解碼網(wǎng)絡,利用離散變分自編碼器的編碼器和解碼器分別配合編碼網(wǎng)絡進行訓練和輪廓輸出,并設計了帶有動態(tài)權重的損失函數(shù),用于解決本文方法在訓練過程中遇到的類別分布極不均衡的問題?;贐IPED數(shù)據(jù)集,本文的輪廓精細度實驗表明本文方法在更嚴格的評估標準下優(yōu)于最新方法DexiNed。在一般的評估標準下,本文方法的ODS F-measure能夠達到0.889,比最新方法DexiNed提高了3.0%。研究結果表明,對離散變分自編碼器的利用不僅能幫助模型提高輪廓精細度,也能顯著提高模型的輪廓檢測性能。
關鍵詞:輪廓檢測;深度學習;離散變分自編碼器;計算機視覺;交叉熵損失函數(shù)
中圖分類號:TP391.41? ? ? DOI:10.16375/j.cnki.cn45-1395/t.2022.03.002
0? ? 引言
在計算機視覺領域中,輪廓檢測作為一項基礎視覺任務,旨在檢測自然圖像中具有視覺顯著性的輪廓。對于一些高級的視覺任務,如目標檢測[1]、目標跟蹤[2]、光流檢測[3]以及圖像分割[4-5]等,輪廓檢測通常是其基礎或作為其輔助,輪廓信息的質(zhì)量直接影響了這些任務的性能。為了更好地服務于這些高級視覺任務,研究者們一直致力于探索性能更加優(yōu)良的輪廓檢測方法。
近年來,基于卷積神經(jīng)網(wǎng)絡的輪廓檢測方法[6]將輪廓檢測性能提升到了一個新的臺階。Xie等[7]受FCN[8]與DSN[9]的啟發(fā),搭建了第一個端到端的、可訓練的深度學習輪廓檢測模型,即整體嵌套邊緣檢測(holistically-nested edge detection,HED)模型。得益于全卷積神經(jīng)網(wǎng)絡結構,HED能夠?qū)θ我獬叽绲膱D像進行處理,從真正意義上實現(xiàn)了對輪廓檢測神經(jīng)網(wǎng)絡的端到端訓練。Liu等[10]分析了HED網(wǎng)絡存在的缺陷,提出了更豐富的卷積特征(richer convolutional features,RCF)模型。與HED不同的是RCF對編碼網(wǎng)絡的所有卷積層都進行了特征提取,這使得RCF所能夠利用的多尺度信息相比于HED 更加豐富。Wang等[3]以提取精細輪廓為目的提出了清晰邊緣檢測(crisp edge detection,CED)模型,為了提升模型提取細致輪廓的能力,在模型中使用亞像素卷積對特征圖進行緩慢的上采樣,以保證輪廓的位置準確性。He等[11]專注于研究對多尺度信息的利用方式,提出了一種雙向級聯(lián)的解碼網(wǎng)絡結構(bi-directional cascade network,BDCN),以從淺到深、從深到淺兩條路徑對不同的側(cè)端輸出進行整合,合理地體現(xiàn)了主干網(wǎng)絡不同層級之間的互補關系。喬亞坤等[12]以充分利用多尺度信息為目的,設計了IPD網(wǎng)絡,所提出的交互式解碼網(wǎng)絡擁有較強的特征提取和利用能力。Huan等[13]針對特征混合(feature mixing)以及側(cè)端混合(side mixing)的問題進行了研究,提出了上下文感知跟蹤策略(context-aware tracing strategy,CATS),設計了新的損失函數(shù)用于提升監(jiān)督信號對輪廓像素附近區(qū)域的重視程度,并利用空域掩膜對多尺度輸出進行空間上的加權求和。其實驗結果表明,CATS策略能夠指導神經(jīng)網(wǎng)絡輸出位置準確性更強的輪廓。
上述模型在訓練過程中主要以像素為單位計算損失函數(shù),未能較好考慮像素間的關系,在檢測過程中存在因輪廓像素定位不準確而導致輸出輪廓模糊的問題。如圖1所示,上述模型的神經(jīng)網(wǎng)絡輸出的輪廓相較于Ground truth更加模糊粗糙,因而需要利用非極大值抑制算法進行細化,增加了時間和計算成本。針對該問題,本文提出一種基于離散變分自編碼器的輪廓檢測方法,利用離散變分自編碼器強大的編碼能力對輪廓檢測任務進行圖像到圖像建模。此外,還設計了一種擁有類別均衡能力的損失函數(shù),以克服在使用離散變分自編碼器訓練模型時產(chǎn)生的類別分布極度不均勻的問題。
1? ? 本文方法
1.1? ?離散變分自編碼器
變分自編碼器是一類重要的生成模型,結構如圖2所示,主要通過編碼器將圖像壓縮為特征嵌入,再通過解碼器根據(jù)特征嵌入對圖像進行重建。訓練時,假設輸入數(shù)據(jù)的潛在空間是連續(xù)的,其編碼器將輸入數(shù)據(jù)編碼為一組均值[μ=μ1, μ2,…]和一組方差[σ=σ1, σ2, …],這樣的均值和方差規(guī)定了一組正態(tài)分布:
[Z=Z1~N(μ1, σ1), Z2~N(μ2, σ2), …] .? ? ? ? ?(1)
從這組正態(tài)分布中采樣獲得編碼器所編碼的特征嵌入[Z=z1, z2,? …],隨后[z]作為解碼器的輸入用于重建輸入數(shù)據(jù)。
離散變分自編碼器是一種特殊的變分自編碼器,其特征嵌入[Z]是離散的,其離散化和采樣可以通過Gumbel-softmax[14]實現(xiàn)。本文對于一幅形狀為[1×H×W]的[Y](其中[H]和[W]分別為圖像的高和寬),編碼器將其編碼為[1×H'×W']的特征嵌入:
[Z=Encoder(Y)].? ? ? ? ? ? ? ? ? ?(2)
其中:[H'=H/8],[W'=W/8],而[Z]中的元素皆為? ? ?[0]~[8 191]的整數(shù),可以視為[8 192]個離散的類別。隨后解碼器又能對圖像[Y]進行重建:
[Y=Decoder(Z)].? ? ? ? ? ? ? ? ? ?(3)
其中:[Y]為重建的圖像,與[Y]具有相同的形狀和近似的內(nèi)容。一個好的離散變分自編碼器能夠令[Y]與[Y]無比接近。
離散變分自編碼器對圖像中的高頻成分擁有較好的編碼能力,本文主要將其編碼器和解碼器應用于ResNet網(wǎng)絡,以期提取高頻的輪廓細節(jié)。
1.2? ?輪廓檢測模型
對于一幅形狀為[3×H×W]的自然圖像[X],其對應的Ground truth形狀為[1×H×W]的[Y]。輪廓檢測的目的在于尋找一個輪廓檢測器[Detector?],使[Y=DetectorX]盡可能地接近[Y]。
傳統(tǒng)的基于編解碼結構的輪廓檢測網(wǎng)絡直接使用神經(jīng)網(wǎng)絡對[Detector?]進行建模,其訓練方式如圖3(a)所示,其編碼網(wǎng)絡與解碼網(wǎng)絡構成了一個完整的輪廓檢測器。訓練時,通過縮小輸出輪廓[Y]與Ground truth [Y]之間的誤差對網(wǎng)絡進行訓練,其損失函數(shù)利用交叉熵進行計算:
[L(Y, Y)=]
[?βi∈L+logyi?(1?β)i∈L?log(1?yi)] .? ? (4)
其中:[L+]和[L?]分別表示Ground truth [Y]中輪廓像素和非輪廓像素組成的集合;[yi]為輸出輪廓[Y]中的元素([i=0, 1, …, (H×W?1)]);[β=L?/(L++L?)]為平衡系數(shù),用于解決樣本分布不均衡的問題。但是,這種交叉熵在計算[ya]的損失時,沒有考慮任何其他位置([i≠a])對[ya]的影響。
不同于圖3(a)所示的傳統(tǒng)編解碼訓練方式,本文僅訓練編碼網(wǎng)絡,如圖3(b)所示。訓練時,利用離散變分自編碼器中的編碼器對Ground truth進行編碼,得到特征嵌入[Z](式(2)),通過縮小編碼網(wǎng)絡輸出的預測特征嵌入[Z]與特征嵌入[Z]之間的誤差對編碼網(wǎng)絡進行訓練。但由于離散的[Z]不可導,無法直接設計[Z]與[Z]之間的損失函數(shù)用于訓練,因此,通過抽象特征[V]間接表示[Z],進而通過最小化[V]與[Z]之間的損失函數(shù)來減小[Z]與[Z]之間的誤差。對于自然圖像[X],編碼網(wǎng)絡輸出形狀為[C×H'×W']的抽象特征[V],其中[H'=H/8],[W'=W/8],[C=8 192]。而[Z]可以使用以下方式從[V]計算獲得:
[Z=arg maxc{V(c)}] .? ? ? ? ? ? ? ?(5)
編碼器輸出的特征嵌入[Z]皆為[0]~[8 191]的整數(shù),因此,編碼網(wǎng)絡任務可以視為對[H'×W']的二維網(wǎng)格內(nèi)每個元素進行總類別為[8 192]的分類。由于Ground truth是風格單調(diào)的圖片,其大部分區(qū)域都為背景,因此,由其編碼得到的特征嵌入[Z]具有類別分布極不平衡的特點,有些類別所占比重很高,而有些類別的數(shù)量為[0]。圖4為Ground truth及其離散特征嵌入統(tǒng)計圖。此種情況下,使用常規(guī)的交叉熵作為損失函數(shù)會使模型難以收斂。為了解決這種問題,根據(jù)每種類別所占比例來動態(tài)地為各個類別增加權重系數(shù),以平衡不同類別對損失計算的貢獻度。本文設計的損失函數(shù)如下:
[L(V, Z)=]
[?i=0H'×W'?1ω(zi)log(softmax(V(zi, i)))] .? ? ?(6)
[ω(z)=0, ?(z)=0 ,1?(z), ?(z)≠0? .]? ? ? ? ? ? (7)
[softmax(V(c, i))=exp (V(c, i))jexp (V(j, i))] .?; ? (8)
其中:[zi]是特征嵌入[Z]中的元素[(] [i=0, 1, …, (H'×W'?1 ]))? ;? ? [ω(z)]為權重函數(shù),用以計算類別[z]在損失計算時的權重;[?(z)]是統(tǒng)計函數(shù),用于統(tǒng)計類別[z]在特征嵌入[Z]中的個數(shù)??梢钥闯觯捎诖嬖跈嘀叵禂?shù),當[z]的數(shù)量[?(z)]非常大時,[ω(z)]會很小并產(chǎn)生很強的抑制效果,從而削弱[z]的比重。
圖5為本文與傳統(tǒng)輪廓檢測方式對比圖。本文方法使用離散變分自編碼器的解碼器完成了類似傳統(tǒng)編解碼方法中解碼網(wǎng)絡的任務,不同之處在于本文方法通過arg max(式(5))將抽象特征轉(zhuǎn)化為離散的預測特征嵌入,這種離散的預測特征嵌入能被解碼器轉(zhuǎn)化為包含高頻細節(jié)的輪廓圖像。
2? ? 實驗結果與分析
2.1? ?模型訓練細節(jié)
本文模型使用一張RTX2080Ti顯示卡進行訓練和測試,在Python語言環(huán)境中通過Pytorch深度學習框架對深度學習模型進行實現(xiàn)。使用Ramesh等[15]訓練好的離散變分自編碼器生成特征嵌入。編碼網(wǎng)絡的主干采用ResNet50[16],其參數(shù)在ImageNet數(shù)據(jù)集[17]上進行預訓練。在訓練過程中,采用隨機梯度下降優(yōu)化算法對模型進行參數(shù)更新,初始學習率為[2×10]-4,在整個數(shù)據(jù)集上迭代訓練4次,每次迭代后將學習率變?yōu)樵瓉淼腫0.1]倍。
將本文方法記為DVAE-Contour,使用BIPED數(shù)據(jù)集[18]進行實驗分析和對比。BIPED是最近提出的用于輪廓檢測評估的數(shù)據(jù)集,由[250]張分辨率為[1 280×720]的戶外圖片組成,每張圖片由專家進行精心標注。為了對數(shù)據(jù)集進行擴充,采用裁剪、旋轉(zhuǎn)、翻轉(zhuǎn)、伽馬校正等數(shù)據(jù)增強手段,擴充后的數(shù)據(jù)集共有57 600對訓練樣本。
在進行模型性能評估時,使用AP(平均精度)、ODS(全局最優(yōu)閾值)以及OIS(圖像最優(yōu)閾值)下的[F]-measure(調(diào)和平均數(shù)[F]值)對模型進行性能評估。[F]-measure的計算方式為:
[F=2×P×RP+R],? ? ? ? ? ? ? ? ? ? ? ? ? ?(9)
[P=NTPNTP+NFP],? ? ? ? ? ? ? ? ? ? ? ? ? ?(10)
[R=NTPNTP+NFN] .? ? ? ? ? ? ? ? ? ? ? ? ? ?(11)
其中:[P]和[R]分別代表精確度和回歸度,NTP表示輪廓像素被正確預測為輪廓像素的個數(shù),NFP表示背景像素被錯誤預測為輪廓像素的個數(shù),NFN表示輪廓像素被錯誤預測為背景像素的個數(shù)。
2.2? ?模型輸出輪廓精細度分析
對所提出模型提取輪廓的精細度進行分析。在進行評估時,需要設置輪廓像素匹配容忍度,用來判斷一個像素是否能夠被判定為正確的輪廓像素,此容忍度越小,對像素的判斷越嚴格。因此,通過設置不同的匹配容忍度來測試模型輸出輪廓的精細程度。設置了[d1=0.007 5]、[d2=d1/2]、[d4=d1/4]這3個容忍度對DexiNed[18]以及本文所提出的DVAE-Contour進行了實驗。為了使評估結果對精細度分析有意義,所有的輪廓都沒有經(jīng)過非極大值抑制的細化處理。
實驗結果如圖6所示,當輪廓像素的匹配容忍度變小時,由于對輪廓像素的評判更加嚴格,圖中的2種方法在3個評價指標中都有明顯的下降。對于ODS和OIS 2個評價指標,DVAE-Contour的性能在3種匹配容忍度下都優(yōu)于DexiNed,而AP則在匹配容忍度為[d4]的情況下落后于DexiNed。
2.3? ?模型性能對比
為了進一步分析模型性能,將本文方法? ? ? ? ? (DVAE-Contour)與同類輪廓檢測方法在精度和模型訓練參數(shù)量方面進行對比,包括SED[19]、HED[7]、CED[3]、RCF[10]、BDCN[11]、DexiNed[18]。在采用非極大值抑制且輪廓像素匹配容忍度為0.007 5的情況下,各方法的ODS、OIS、AP以及所需要訓練的參數(shù)量(Parameters(M))結果如表1所示。由表1可以看到,本文提出的DVAE-Contour在ODS和OIS這2項評價指標下都明顯優(yōu)于最新算法DexiNed,分別高出3.0%和2.4%,而在參數(shù)量方面略高于DexiNed,這是因為本文方法采用的模型參數(shù)量高于VGG16的ResNet50。為公平比較,采用與DexiNed相同的VGG16作為主干網(wǎng)絡,本文方法能夠在訓練更少的參數(shù)情況下獲得優(yōu)于DexiNed的ODS與OIS,分別高出0.6%和0.4%。雖然本文方法的AP低于其他方法,但是通過分析2.2中的數(shù)據(jù)發(fā)現(xiàn),這些方法的AP較高是由非極大值抑制所帶來的,當沒有非極大值抑制時,這些方法的AP可能會顯著下降。例如DexiNed在不使用非極大值抑制時AP只有0.713,相較于使用了非極大值抑制的AP下降了19.2%。而相比之下,DVAE-Contour對非極大值抑制的依賴則非常小,在不使用非極大值抑制時AP仍然能夠達到0.802,只下降了1.0%。
圖7為DexiNed與DVAE-Contour的輪廓檢測效果圖。可以看到,DexiNed在一些輪廓密集的區(qū)域無法很好地呈現(xiàn)出輪廓細節(jié),其輸出中有些不同的輪廓甚至被錯誤地融為了一體,而DVAE-Contour則能更好地保留輪廓細節(jié)。
3? ? 結論
本文研究了如何利用深度學習模型進行精細輪廓檢測。近年來,基于卷積神經(jīng)網(wǎng)絡的輪廓檢測方法輸出輪廓定位不準確且模糊,分析認為其原因是這些模型沒有真正地將輪廓檢測建模為一個圖像到圖像的任務。為了進行真正意義上的圖像到圖像建模,借助離散變分自編碼器訓練輪廓檢測模型,利用其對圖像中高頻成分的強大編碼能力,幫助輪廓檢測模型提取高頻的輪廓信息,從而使輸出輪廓更加清晰和尖銳。通過不斷增大評價指標對輪廓的準確性要求進行了輪廓精細度分析,實驗數(shù)據(jù)表明,隨著精確性要求的提高,本文方法的大多數(shù)性能指標都優(yōu)于其他檢測模型。
本文方法雖然在一定程度上解決了輪廓定位不準確和模糊的問題,但其良好性能依賴于強大的離散變分自編碼器,當離散變分自編碼器的特征壓縮能力不強時,模型性能將有所下降,因此,有必要進一步研究如何利用小型的特征壓縮模型對模型進行訓練。
參考文獻
[1] ZITNICK C L,DOLLáR P. Edge boxes:locating object proposals from edges[C]//European Conference on Computer Vision,2014:391-405.
[2] ZHU G,PORIKLI F,LI H D.Tracking randomly moving objects on edge box proposals[J/OL].Computer Science,2015:943-951[2022-03-01]. https://arxiv.org/pdf/1507.08085v2.pdf.
[3] WANG Y P,ZHAO X,HUANG K Q.Deep crisp boundaries[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2017:3892-3900.
[4] BERTASIUS G,SHI J B,TORRESANI L.Semantic segmentation with boundary neural fields[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2016:3602-3610.
[5] WAN J Q,LIU Y,WEI D L,et al. Super-BPD:super boundary-to-pixel direction for fast image segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2020:9253-9262.
[6] 林川,曹以雋.基于深度學習的輪廓檢測算法:綜述[J].廣西科技大學學報,2019,30(2):1-12.
[7] XIE S N,TU Z W.Holistically-nested edge detection[C]//Proceedings of the IEEE International Conference on Computer Vision,2015:1395-1403.
[8] LONG J,SHELHAMER E,DARRELL T. Fully convolutional networks for semantic segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2015:3431-3440.
[9] LEE C Y,XIE S N,GALLAGHER P W, et al.Deeply-supervised nets[C]//Conference on Artificial Intelligence and Statistics,2015:562-570.
[10] LIU Y,CHENG M M,HU X W,et al. Richer convolutional features for edge detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2017:3000-3009.
[11] HE J Z,ZHANG S L,YANG M,et al. Bi-directional cascade network for perceptual edge detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2019:3828-3837.
[12] 喬亞坤,林川,張貞光.基于深度學習的輪廓檢測模型的交互式解碼網(wǎng)絡[J].廣西科技大學學報,2022,33(1):46-53.
[13] HUAN L X,XUE N,ZHENG X W,et al. Unmixing convolutional features for crisp edge detection[J/OL].IEEE Transactions on Pattern Analysis and Machine Intelligence,2021:1-9[2022-03-01]. https://arxiv.org/pdf/2011.09808v2.pdf.
[14] MADDISON C J,MNIH A,TEH Y W. The concrete distribution:a continuous relaxation of discrete random variables[C]//International Conference on Learning Representations,2017.
[15] RAMESH A,PAVLOV M,GOH G,et al.Zero-shot text-to-image generation[C]//International Conference on Machine Learning,2021:8821-8831.
[16] HE K M,ZHANG X Y,REN S Q,et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2016:770-778.
[17] DENG J,DONG W,SOCHER R,et al. ImageNet:a large-scale hierarchical image database[C]//IEEE Conference on Computer Vision and Pattern Recognition,2009:248-255.
[18] SORIA X,RIBA E,SAPPA A. Dense extreme inception network:towards a robust CNN model for edge detection[C]//Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision,2020: 1923-1932.
[19] AKBARINIA A,PARRAGA C A.Feedback and surround modulated boundary detection[J].International Journal of Computer Vision,2018,126(12):1367-1380.
Crisp contour detection based on ResNet and discrete variational
auto-encoder
WANG Qu,LIN Chuan*,CHEN Yongliang
(School of Electrical, Electronic and Computer Science, Guangxi University of Science and Technology,
Liuzhou 545616, China)
Abstract: Traditional contour detection methods based on convolutional neural network are mostly encode-decode structures composed of encode and decode networks, which exhibit better performance but still suffer from inaccurate contour localization and blurred output contours. To solve this problem, this paper proposes a contour detection method based on the discrete variational auto-encoder. Unlike traditional encode-decode methods, this paper discards the decode network, the encoder and decoder of the discrete variational self-encoder are used to cooperate with the encode network for training and? ? contour detection, respectively. In addition, a loss function with dynamic weights is designed to solve the problem of extremely unbalanced category distribution encountered in the training process of the method in this paper. Based on the BIPED data set, the contour crispness experiment shows that this method can outperform the newest method DexiNed using more strict criteria, while the ODS? ? ? ? ? ? ? F-measure of this method can reach 0.889 under general evaluation criteria, which is 3.0% better than DexiNed. This indicates that the utilization of the discrete variational auto-encoder not only helps the model to improve the contour crispness, but also significantly improve the contour detection? ? ? ? ? ? ? performance of the model.
Key words: contour detection;deep learning;discrete variational auto-encoder;computer vision; cross-entropy loss function
(責任編輯:黎? ?婭)