陳 穎 秦怡芳 張艷碩
1(北京電子科技學(xué)院 北京 100070)
2(西安電子科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 陜西 西安 710000)
近十年很多基于圖像認(rèn)知的應(yīng)用得到了學(xué)術(shù)界和資本界的青睞,最典型的落地場景有智慧安防、自動(dòng)駕駛等。在這些圖像認(rèn)知應(yīng)用中,圖像語義分割、實(shí)例分割、全景分割是智能體感知外部環(huán)境的重要手段。其中,全景分割是最全面和最具有落地意義的,它要求對(duì)圖像中的每一個(gè)像素點(diǎn)賦予一個(gè)唯一的語義類別和實(shí)例識(shí)別號(hào)?,F(xiàn)有的圖像全景分割網(wǎng)絡(luò)基本都沿用了語義分割和實(shí)例分割子分支融合形成全景輸出的結(jié)構(gòu)。其中實(shí)例分割子分支大多數(shù)都采用了基于anchor的策略,如著名的Mask R-CNN。這種方式依賴于人為預(yù)先設(shè)置的不同尺度和不同寬高比的anchor,且由于anchor和RPN的存在,會(huì)生成大量冗余的檢測框,計(jì)算量往往很大。本文基于卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),對(duì)圖像進(jìn)行了全景分割理論研究和實(shí)踐。設(shè)計(jì)一種立足于極坐標(biāo)系對(duì)實(shí)例輪廓進(jìn)行數(shù)學(xué)建模的anchor-free的實(shí)例分割網(wǎng)絡(luò),擺脫人為預(yù)設(shè)的anchor限制,將其集成到全景分割架構(gòu)中去。
經(jīng)過語義分割模型訓(xùn)練后,圖像每一個(gè)像素點(diǎn)都被賦予一個(gè)唯一的類別標(biāo)簽。語義分割一直是學(xué)術(shù)界研究的熱點(diǎn)。2014年全卷積神經(jīng)網(wǎng)絡(luò)FCN[1]實(shí)現(xiàn)了端到端,引入了跳躍連接。劍橋大學(xué)提出的分割模型SegNet[2]是編碼器-解碼器結(jié)構(gòu),其中池化時(shí)標(biāo)記位置一定程度彌補(bǔ)了FCN的定位缺陷。2015年Ronneberger等[3]提出的U-net網(wǎng)絡(luò)結(jié)構(gòu),編碼解碼中間存在不同抽象層次的特征拼接。2017年Jégou等[4]提出的FC-DenseNet包含一個(gè)降采樣和一個(gè)升采樣模塊,降采樣用來提取圖像特征,升采樣被用來在輸出結(jié)果中逐漸提升分辨率。各種語義分割網(wǎng)絡(luò)層出不窮,學(xué)者們?cè)谔卣魈崛『投喑叨热诤戏矫孀鲎懔搜芯?取得的成果也十分矚目。
語義分割只區(qū)分類型,而實(shí)例分割對(duì)同一類的不同個(gè)體也進(jìn)行細(xì)分。實(shí)例分割只對(duì)前景的物體類別進(jìn)行預(yù)測,背景區(qū)域的道路、天空和樹木等不予考慮。實(shí)例分割的目標(biāo)是檢測出每一個(gè)可數(shù)物體的所有像素點(diǎn),并對(duì)其賦予一個(gè)所屬的實(shí)例ID?,F(xiàn)在的實(shí)例分割研究有基于anchor的和基于anchor-free的。
1.2.1基于anchor的實(shí)例分割
基于anchor的實(shí)例分割是首先進(jìn)行基于anchor的物體檢測框回歸,在得到了檢測框之后,再分別對(duì)這些檢測框里像素進(jìn)行前背景分類,這有點(diǎn)類似于語義分割,最后得到實(shí)例分割的輸出。這種算法的典型代表有Mask R-CNN[5]、Mask Scoring R-CNN[6]、Cascade Mask R-CNN[7]、PANet[8],基于anchor的實(shí)例分割后期需要對(duì)每一個(gè)候選檢測框單獨(dú)進(jìn)行前景背景分類,計(jì)算量較大。
1.2.2基于anchor-free的實(shí)例分割
2019年10月基于anchor-free的實(shí)例分割模型PolarMask[9]被首次提出,該模型將目標(biāo)檢測、實(shí)例分割進(jìn)行了統(tǒng)一化。它與anchor-free的目標(biāo)檢測架構(gòu)FCOS[10]相似,是用一個(gè)n維度的向量來表示實(shí)例的掩膜邊界(即極坐標(biāo)系下的實(shí)例邊界距離原點(diǎn)的距離)。它將實(shí)例分割問題轉(zhuǎn)化為實(shí)例中心分類問題和稠密距離回歸問題,并采用全卷積網(wǎng)絡(luò)進(jìn)行實(shí)現(xiàn)。
實(shí)例分割不區(qū)分背景類,語義分割則是不對(duì)同一類的事物做個(gè)體細(xì)分。把這兩者相結(jié)合,便是全景分割。全景分割的概念最早在2018年1月由Facebook人工智能實(shí)驗(yàn)室Kirillov等[11]提出。
全景分割是最細(xì)致最全面的場景理解,目前全景分割的主流架構(gòu)有TASCNet[12]、JSIS-Net[13],它們都是沿用了圖1的架構(gòu),即通過語義分割和實(shí)例分割子任務(wù)預(yù)測結(jié)果融合輸出全景分割結(jié)果。這些模型實(shí)例分割分支都采用了基于anchor的方式,如著名的Mask R-CNN。
圖1 主流的全景分割框架
這幾年來有不少全景分割的網(wǎng)絡(luò)架構(gòu)相繼被提出,有些是著重解決語義分割和實(shí)例分割邊緣的重合問題[14-16],還有將注意力機(jī)制引入其中的[17]??v觀這些全景分割架構(gòu),都是通過設(shè)計(jì)更有效的共享卷積特征提取,然后研究更有效的子分支結(jié)果合并方法。但它們都需要人為預(yù)設(shè)不同尺度和寬高比的anchor。
根據(jù)圖1可以發(fā)現(xiàn),將anchor-free的實(shí)例分割網(wǎng)絡(luò)集成到全景分割架構(gòu)中去便可以使全景分割任務(wù)不再依賴于任何人為設(shè)定的anchor。因此,本文接下來對(duì)anchor-free的全景分割模型進(jìn)行研究。
圖2給出了本文的全景分割網(wǎng)絡(luò)架構(gòu),該網(wǎng)絡(luò)中包含語義分割和實(shí)例分割兩個(gè)分支,采用了經(jīng)典的全卷積網(wǎng)絡(luò)架構(gòu)U-Net[3]搭建其backbone。
U-Net分為降采樣和升采樣兩個(gè)模塊,其中降采樣是對(duì)輸入圖像特征提取,而升采樣類似于解碼結(jié)構(gòu)。本文無論是語義分割還是實(shí)例分割均采用了U-Net做特征提取,它利用同等寬高的數(shù)據(jù)塊進(jìn)行拼接使得不同尺度的特征圖(Feature Map)組合,然后再逐層往后進(jìn)行卷積計(jì)算。從圖2中可見,搭建的U-Net骨干網(wǎng)絡(luò)有4個(gè)池化,也對(duì)應(yīng)4次反卷積操作。這4個(gè)池化本質(zhì)上是對(duì)不同尺度下的特征進(jìn)一步提取,而拼接操作是多尺度特征糅合,這樣的操作貫穿了整個(gè)U-Net骨干網(wǎng)。
如圖2左側(cè)分支所示,語義分割的網(wǎng)絡(luò)結(jié)構(gòu)僅是在U-Net后多加了一層卷積,因?yàn)檎Z義分割任務(wù)相對(duì)比較簡單,不需要過多的卷積核來學(xué)習(xí)圖像特征,該U-Net骨干網(wǎng)是簡化過的U-Net,輸入圖像進(jìn)入網(wǎng)絡(luò)之前首先需要進(jìn)行尺度收縮,將其調(diào)整為512×512×3,語義分割的輸出維度為512×512×Cstuff(這里包含實(shí)例的種類),用Sseg表示其輸出。所有卷積后都默認(rèn)連接的ReLU非線性激活函數(shù),只有語義分割最后一層是級(jí)聯(lián)的Softmax計(jì)算單元。語義分割輸出Sseg[i][j][c]表示的是輸入圖像[i,j]位置像素的屬于第c類stuff的概率,滿足:
(1)
圖2右側(cè)的實(shí)例分割網(wǎng)絡(luò)中,包含像素級(jí)實(shí)例分類、實(shí)例中心點(diǎn)回歸以及實(shí)例掩膜邊緣回歸三個(gè)子網(wǎng)絡(luò),三者共享同一個(gè)U-Net骨干網(wǎng)。相比左半支的語義分割,實(shí)例分割骨干網(wǎng)的卷積核數(shù)量明顯增加,原因是實(shí)例分割網(wǎng)絡(luò)中決策多,需要學(xué)習(xí)的特征也多。
2.2.1實(shí)例分類和實(shí)例中心點(diǎn)回歸
實(shí)例分割子網(wǎng)絡(luò)中,U-Net后級(jí)聯(lián)了卷積層conv18~conv23,如圖3所示。這些卷積層是對(duì)像素進(jìn)行分類和進(jìn)行中心點(diǎn)回歸的,其架構(gòu)細(xì)節(jié)如表1。其中conv22卷積層后連接的是Softmax,目的是將各像素實(shí)例類別的概率預(yù)測進(jìn)行歸一化,即對(duì)于conv22的輸出數(shù)據(jù)塊Icls,Icls[i][j][c]表示的是對(duì)應(yīng)輸入圖像[i,j]位置上的像素屬于第c類實(shí)例的概率。其滿足:
表1 conv18~conv23(卷積3×3,步長1)
圖3 實(shí)例分支head
(2)
實(shí)例中心點(diǎn)回歸網(wǎng)絡(luò)輸出通道數(shù)是1,它是對(duì)每個(gè)像素能否作為一個(gè)實(shí)例的中心點(diǎn)的得分score的回歸,conv23卷積層的輸出直接作為score的預(yù)測值。
2.2.2實(shí)例掩膜輪廓回歸
圖3實(shí)例分割掩膜輪廓回歸網(wǎng)絡(luò)其架構(gòu)細(xì)節(jié)如表2所示,其最后一層的輸出維度為512×512×M。其中512×512中每個(gè)像素均有一個(gè)描述輪廓向量的輸出,該向量的維度為1×M,它是極坐標(biāo)系中掩膜輪廓的數(shù)學(xué)表征(各個(gè)角度射線與輪廓交點(diǎn)距離原點(diǎn)的距離)。根據(jù)這些等旋轉(zhuǎn)角度下的距離,可以將其轉(zhuǎn)化為輪廓的坐標(biāo)點(diǎn),再進(jìn)行首尾相接便可重構(gòu)出實(shí)例的邊界。M取值越大,則重構(gòu)的實(shí)例邊界越精細(xì)。
表2 實(shí)例掩膜輪廓回歸子網(wǎng)絡(luò)(卷積3×3,步長1)
2.2.3Soft-NMS后處理
根據(jù)實(shí)例分類、實(shí)例中心點(diǎn)回歸、實(shí)例掩膜輪廓回歸,便可以得到輸入圖像中的每一個(gè)像素作為中心點(diǎn)的實(shí)例輪廓,置信度以及實(shí)例類別信息。模型訓(xùn)練之后可以設(shè)定一閾值St,選取出所有的score>St的像素點(diǎn),并將這些像素點(diǎn)對(duì)應(yīng)的實(shí)例輪廓、實(shí)例類別從實(shí)例分割網(wǎng)絡(luò)的輸出數(shù)據(jù)塊中提取出來,便可以定位實(shí)例、確定其類別,以及描述其輪廓形態(tài)。
對(duì)于某一個(gè)實(shí)例物體而言,其輪廓內(nèi)部可能存在若干個(gè)高質(zhì)量的中心點(diǎn)(作為極坐標(biāo)系下的原點(diǎn))被選出,故會(huì)重構(gòu)出若干個(gè)實(shí)例輪廓,采用Soft非極大值抑制[18]對(duì)其進(jìn)行處理,這也是目標(biāo)檢測、實(shí)例分割領(lǐng)域最為常用的去除冗余性檢測框或?qū)嵗谀さ姆椒ā?/p>
語義分割子分支和實(shí)例分割子分支結(jié)果有以下幾種可能:
情況1:某像素實(shí)例分割和語義分割結(jié)果都類屬類別cls。
情況2:某像素實(shí)例分支中被劃為類別cls,語義分支中不屬于cls。
情況3:某像素被實(shí)例分割網(wǎng)絡(luò)劃為背景類,語義分割劃為實(shí)例類別cls。
本文采取了一個(gè)簡單有效的方法對(duì)語義分割和實(shí)例分割的結(jié)果進(jìn)行融合,如圖4所示。
圖4 子分支結(jié)果融合流程
百度ApolloScape數(shù)據(jù)集[19]具有標(biāo)注詳細(xì)、包含不同困難級(jí)別等優(yōu)點(diǎn),同時(shí)圖像豐富,包含多個(gè)城市、多樣的天氣條件,故選其作為本文全景分割算法的訓(xùn)練和測試集合。該數(shù)據(jù)集共包含143 906幅像素級(jí)別標(biāo)注的圖片,數(shù)據(jù)量十分巨大。從中隨機(jī)取出9 600幅圖像作為使用的數(shù)據(jù)集,并按照8∶2的劃分比例將其劃分為訓(xùn)練集和驗(yàn)證集合,訓(xùn)練集共計(jì)7 680幅圖片,驗(yàn)證集共計(jì)1 920幅圖片,所有圖片均被調(diào)整為512×512×3的尺寸輸入網(wǎng)絡(luò)。ApolloScape數(shù)據(jù)集中的像素標(biāo)簽種類共計(jì)35種,其中不可數(shù)的填充物類型7種。
全景分割損失包含語義實(shí)例兩個(gè)子分支損失:
Ltotal=Lsemantic+βLinstance
(3)
式中:β為權(quán)衡參數(shù)。
(1) 語義分割損失函數(shù)。
(4)
式中:Lsemantic[i][j]表示的是單個(gè)像素語義分割的損失值,語義分割損失取所有像素的損失值平均。
(5)
式中:Yseg[i][j]是像素[i,j]對(duì)應(yīng)的真值;Sseg[i][j][c]是像素[i,j]屬于第c類填充物的概率。
(2) 實(shí)例分割損失函數(shù)。
Linstance=Lins-cls+Lins-score+Lins-polar-iou
(6)
其中實(shí)例分類損失Lins-cls與語義分割中損失定義一樣,替換一下變量即可,不贅述。
實(shí)例中心回歸損失Lins-score定義如下:
(7)
其中s[i][j]和s′[i][j]分別是對(duì)應(yīng)像素作為實(shí)例中心點(diǎn)的得分真值和預(yù)測值。
極坐標(biāo)系中實(shí)例輪廓回歸損失Lins-polar-iou定義與PolarMask中保持一致,即:
(8)
(1) 不同Backbone的全景分割性能比較與分析。對(duì)于圖2的全景分割架構(gòu),本文是以自定義U-Net作為backbone的,因此對(duì)不同backbone網(wǎng)絡(luò)對(duì)該全景分割架構(gòu)性能的影響進(jìn)行了實(shí)驗(yàn)驗(yàn)證。從表3中可以發(fā)現(xiàn),自定義的U-Net性能與原生U-Net相當(dāng),優(yōu)于SegNet和FC-DenseNets,但是相比FCN性能稍弱。
表3 基于不同Backbone的全景分割性能對(duì)比(Δθ=5°)
基于自定義U-Net的全景分割網(wǎng)絡(luò)具有一定的性能競爭優(yōu)勢(shì),但其最大的優(yōu)勢(shì)在于它是輕量級(jí)的。圖5對(duì)主流的Backbone的參數(shù)進(jìn)行了統(tǒng)計(jì),可以發(fā)現(xiàn)自定義的U-Net骨架網(wǎng)雖然性能稍遜色于FCN,但是其網(wǎng)絡(luò)參數(shù)相比于FCN則降低了約35%,適合低開銷約束的面向于實(shí)時(shí)計(jì)算的應(yīng)用場景。
圖5 不同骨干網(wǎng)絡(luò)參數(shù)對(duì)比圖
為了更直觀地對(duì)比不同骨干網(wǎng)絡(luò)的全景分割性能,圖6用一幀街景圖像來作示例。
圖6 同一幅圖不同骨干網(wǎng)下的語義(左)、實(shí)例(中)和全景(右)輸出效果對(duì)比
(2) 不同旋轉(zhuǎn)角度全景分割性能對(duì)比。極坐標(biāo)系中旋轉(zhuǎn)角度間隔Δθ越小,采樣點(diǎn)M越多,實(shí)例輪廓擬合程度越高,但同時(shí)模型參數(shù)會(huì)增加。對(duì)不同的旋轉(zhuǎn)角度Δθ對(duì)全景分割網(wǎng)絡(luò)的性能影響做了實(shí)驗(yàn)驗(yàn)證。如表4所示。
表4 不同旋轉(zhuǎn)角度間隔采樣的全景分割性能對(duì)比
可以看出,Δθ越小,性能越好,但當(dāng)Δθ小到5°或更小的時(shí)候,性能趨于穩(wěn)定。開始精度提高是因?yàn)楫?dāng)Δθ變小時(shí),描述實(shí)例輪廓的采樣點(diǎn)變多,輪廓擬合程度更高;但采樣點(diǎn)過多時(shí),性能會(huì)受到實(shí)例輪廓凹凸性的影響,如果原點(diǎn)發(fā)出的一條射線與實(shí)例輪廓有多個(gè)交點(diǎn),則無論取哪一個(gè)交點(diǎn)重建輪廓都會(huì)有誤差。
本文將基于極坐標(biāo)系的實(shí)例邊緣的數(shù)學(xué)表征模型,集成到全景分割神經(jīng)網(wǎng)絡(luò)架構(gòu)中去,用anchor-free的回歸替代了基于檢測框的回歸,端到端地實(shí)現(xiàn)了全景分割網(wǎng)絡(luò)的訓(xùn)練和性能驗(yàn)證。
針對(duì)極坐標(biāo)系中的輪廓表征方法,本文搭建了一個(gè)基于自定義U-Net版本的backbone,U-Net中的降采樣和升采樣過程將同等尺度的Feature Map進(jìn)行拼接,有效地挖掘不同尺度的特征。對(duì)于本文的anchor-free的全景分割架構(gòu),設(shè)計(jì)了有效的損失函數(shù),并基于百度ApolloScape開源數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練,驗(yàn)證了不同backbone下以及不同采樣粒度下的全景分割性能。實(shí)驗(yàn)證明,這種方式在相差不多的精度下,參數(shù)量大大減少,更適合低開銷的面向?qū)崟r(shí)的應(yīng)用場景。后續(xù)可以通過特征金字塔等手段做進(jìn)一步性能提升的研究。