蘇麗,孫雨鑫,苑守正
(1.哈爾濱工程大學(xué) 智能科學(xué)與工程學(xué)院, 黑龍江 哈爾濱 150001; 2.哈爾濱工程大學(xué) 船舶裝備智能化技術(shù)與應(yīng)用教育部重點實驗室, 黑龍江 哈爾濱 150001)
近年來,深度學(xué)習(xí)和統(tǒng)一計算設(shè)備構(gòu)架(compute unified device architecture, CUDA)等并行計算技術(shù)迅速發(fā)展直接推動了計算機視覺和圖像處理領(lǐng)域進入了新的技術(shù)時代,實例分割作為計算機視覺基礎(chǔ)研究問題之一,其技術(shù)可廣泛應(yīng)用于汽車自動駕駛,機器人控制,輔助醫(yī)療和遙感影像等領(lǐng)域。
在計算機視覺的基本任務(wù)中目標(biāo)檢測是預(yù)測圖像中目標(biāo)位置和類別。語義分割則是在像素級別上對目標(biāo)分類。而實例分割可看作目標(biāo)檢測和語義分割的結(jié)合體,旨在檢測圖像中所有目標(biāo)實例,并針對每個實例標(biāo)記屬于該類別的像素。即不僅需要對不同類別目標(biāo)進行像素級別分割,還要對不同目標(biāo)進行區(qū)分。與其他計算機視覺研究問題相比,實例分割的挑戰(zhàn)性在于:
1)需要預(yù)測并區(qū)分圖像中每個目標(biāo)的位置和語義掩碼,并且由于實例的不可知形狀使得預(yù)測實例分割的掩碼比目標(biāo)檢測任務(wù)預(yù)測矩形邊界框更靈活;
2)密集目標(biāo)的相互遮擋與重疊使網(wǎng)絡(luò)很難有效區(qū)分不同實例,并且小目標(biāo)的實例分割由于普遍缺少細(xì)節(jié)導(dǎo)致分割精度仍然很低;
3)繁瑣精細(xì)的數(shù)據(jù)標(biāo)注耗費大量人力與時間,如何減少成本,有效利用現(xiàn)有未標(biāo)注或粗糙標(biāo)注的數(shù)據(jù)提升實例分割精度仍是一個亟待解決的問題。
1980年日本學(xué)者福島邦彥[1]提出的神經(jīng)認(rèn)知機模型可以稱為卷積神經(jīng)網(wǎng)絡(luò)的前身,Lecun[2]提出反向傳播算法使網(wǎng)絡(luò)訓(xùn)練成為可能,之后2012年AlexNet[3]在ImageNet圖像識別大賽上獲得冠軍。從此深度卷積神經(jīng)網(wǎng)絡(luò)引起人們關(guān)注,研究者用它解決計算機視覺任務(wù)。近年來,實例分割的研究基本是建立在基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測和語義分割基礎(chǔ)之上。因此,從研究發(fā)展來看實例分割任務(wù)是卷積神經(jīng)網(wǎng)絡(luò)成功運用在計算機視覺領(lǐng)域的產(chǎn)物[4]。實例分割方法主要歸納為兩階段與單階段兩類,其中兩階段實例分割有兩種解決思路,分別是自上而下基于檢測的方法和自下而上基于分割的方法。而單階段實例分割可細(xì)化為感知實例分割,建模掩碼,Transformer嵌入及一些其他方法。
本文從實例分割的研究現(xiàn)狀,算法優(yōu)缺點和主流方法性能對比,特殊條件下的應(yīng)用,常用數(shù)據(jù)集與權(quán)威評價指標(biāo)等角度出發(fā)對一些具有啟發(fā)性的研究成果進行整理,歸納和分析,為相關(guān)研究提供有價值的參考。
從研究時間線來看,實例分割技術(shù)根據(jù)處理過程目前主要歸納為兩類:兩階段和單階段,如圖1所示,本文將分別進行介紹。
圖1 本文涉及的實例分割方法Fig.1 Paper focuses on the instance segmentation methods
兩階段實例分割是以處理階段劃分,其中自上而下的基于檢測方法是先檢測出圖像中實例所在區(qū)域,再對候選區(qū)域進行像素級別分割。而自下而上的基于分割思想則將實例分割看作一個聚類任務(wù),通過將像素分組為圖像中呈現(xiàn)的任意數(shù)量的目標(biāo)實例,最后判斷每組的類別來生成實例掩碼,這種不需要束縛于目標(biāo)框的影響。
1.1.1 自上而下的實例分割
自上而下的實例分割研究受益于目標(biāo)檢測的豐碩成果。下面介紹一下代表性的方法。
2014年Hariharan等[5]在SDS中首次實現(xiàn)檢測和分割同時進行,也是最早的實例分割算法,奠定了后續(xù)研究基礎(chǔ)[6]。如圖2所示,具體分為4步:1)建議框生成,使用非極大值抑制(non-maximum suppession, NMS)[7]為每張圖片產(chǎn)生2000個候選區(qū)域;2)特征提取,聯(lián)合訓(xùn)練兩個不同的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)網(wǎng)絡(luò)同時提取候選區(qū)域和區(qū)域前景特征;3)區(qū)域分類,利用CNN中提取到的特征訓(xùn)練SVM分類器對上述區(qū)域進行分類;4)區(qū)域細(xì)化,采用NMS來剔除多余區(qū)域,最后使用CNN中的特征來生成特定類別的粗略掩碼預(yù)測,以細(xì)化候選區(qū)域?qū)⒃撗诖a與原始候選區(qū)域結(jié)合起來可以進一步高分割效果。
圖2 SDS網(wǎng)絡(luò)Fig.2 SDS network
雖然SDS效果遜色后續(xù)方法,但SDS先用檢測生成候選區(qū)域再對其語義分割的思想為后續(xù)實例分割提供了重要的研究啟發(fā)。2015年該團隊又對SDS重新分析認(rèn)為,只使用CNN最高層的特征來解決實例分割問題存在著掩碼細(xì)節(jié)粗糙的缺陷,即高層特征的語義信息豐富有利于目標(biāo)分類,但缺少精確的位置信息。例如:在底層特征圖中可以定位目標(biāo)部件,但是沒有豐富語義信息判別區(qū)分這個目標(biāo)部件具體屬于哪個物體。所以,引入Hypercolumns[8](所有CNN層對應(yīng)該像素位置的激活輸出值所組成的向量)作為特征描述符,將底層特征與高層特征融合從而提升分類的精確性并改善目標(biāo)分割細(xì)節(jié)。
之后,CFM[9]算法首次將掩碼(mask)這一概念引入到實例分割中。CFM通過矩形框生成特征圖的掩碼,并將任意區(qū)域生成固定大小的特征以方便處理。這里是從卷積特征中提取掩碼而非原始圖像中提取。
DeepMask[10]是首個直接從原始圖像數(shù)據(jù)學(xué)習(xí)產(chǎn)生分割候選的工作。簡單講,給定一個圖片塊作為輸入,輸出一個與類別無關(guān)的mask和相應(yīng)的分?jǐn)?shù)。它最大的特點是不依賴于邊緣、超像素或者其他任何輔助形式的分割,是用分割的方法來生成高召回率的候選區(qū)域。但缺點是只能捕捉目標(biāo)大致外形,不能準(zhǔn)確描繪目標(biāo)邊界。為了優(yōu)化DeepMask的掩碼,SharpMask[11]先在前向反饋通道中生成粗略的掩碼,并在自上而下的通道中引入較低層次富有位置的特征逐步加以細(xì)化,最后產(chǎn)生具有更高保真度的能精確框定物體邊界的掩碼。
但是上面提到的方法都需要先在原圖生成掩膜候選區(qū)域,沒有充分利用深度學(xué)習(xí)特征及大規(guī)模訓(xùn)練數(shù)據(jù)的優(yōu)勢并且推斷時間緩慢,這些都是影響實例分割準(zhǔn)確性的瓶頸。2016年,何凱明團隊在多任務(wù)網(wǎng)絡(luò)級聯(lián)(MNC)[12]中提出了一種級聯(lián)結(jié)構(gòu),如圖3中將實例分割任務(wù)分解為目標(biāo)定位、掩碼生成以及目標(biāo)分類3個子任務(wù),共用一個主干網(wǎng)絡(luò),將3個不同功能的網(wǎng)絡(luò)分支級聯(lián)起來。每個階段都以前一階段的結(jié)果作為輸入。整個網(wǎng)絡(luò)是端到端的。這樣主干網(wǎng)絡(luò)的訓(xùn)練可以共享3個子任務(wù)的監(jiān)督,有利于訓(xùn)練出更好的特征。這種設(shè)計另一個優(yōu)點是可以快速地進行推斷。
圖3 MNC網(wǎng)絡(luò)Fig.3 MNC network
隨著計算機并行處理數(shù)據(jù)能力的提升和目標(biāo)檢測網(wǎng)絡(luò)性能的快速更新,實例分割研究趨勢打開了一個新的局面。前沿的設(shè)計思想和領(lǐng)域的認(rèn)識革新碰撞出新的學(xué)術(shù)火花。
2017年何凱明團隊提出簡單通用且性能強大的兩階段Mask R-CNN[13],是Faster R-CNN[14]思想應(yīng)用在實例分割的經(jīng)典之作,用于許多衍生應(yīng)用的基線算法,也是現(xiàn)今使用最多,效率最高的實例分割算法。它的成功又激起實例分割領(lǐng)域新的技術(shù)浪潮。Mask R-CNN[13]在目標(biāo)分類和回歸分支上增加了用于預(yù)測每個感興趣區(qū)域(region of interest, ROI)的語義分割分支。網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,基礎(chǔ)網(wǎng)絡(luò)中采用了當(dāng)時較為優(yōu)秀的ResNet-FPN[15-16]結(jié)構(gòu),多層特征圖有利于多尺度物體及小物體的檢測。首先,將輸入圖片送入到特征提取網(wǎng)絡(luò)得到特征圖,然后對特征圖的每一個像素位置設(shè)定固定個數(shù)的ROI(也可以稱為錨框),然后將ROI區(qū)域送入?yún)^(qū)域推薦網(wǎng)絡(luò)(region proposal network, RPN)進行二分類(前景和背景)以及坐標(biāo)回歸,以獲得修正后的ROI區(qū)域。為了保證特征分辨率,對ROI執(zhí)行提出的ROI Align[13]操作替換原始的ROI Pooling[14],取消了取整操作,而是通過雙線性插值的方法保留所有的浮點數(shù)。最后增加了一個mask掩碼分支來預(yù)測每一個像素的類別。采用了全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional network, FCN)[17]的網(wǎng)絡(luò)結(jié)構(gòu),利用卷積與反卷積構(gòu)建端到端的網(wǎng)絡(luò),對每一個像素分類,實現(xiàn)了較好的分割效果。同時,2018年Masklab[18]也改進了Faster R-CNN[14],并產(chǎn)生兩個額外的輸出,即語義分割和實例中心方向。由于Mask R-CNN對實例分割研究具有重要的啟發(fā)意義,后續(xù)涌現(xiàn)了一系列相關(guān)的工作,具體方法如下。
圖4 Mask R-CNN網(wǎng)絡(luò)Fig.4 Mask R-CNN network
2018年P(guān)ANet[19]在Mask R-CNN基礎(chǔ)上引入自下而上的路徑改進并擴展了金字塔特征提取網(wǎng)絡(luò),使用自適應(yīng)融合的ROI區(qū)域特征池化,很好地融合了不同層次的特征信息。DetNet[20]將空洞卷積加到骨干結(jié)構(gòu)中既保證了特征分辨率同時又增大感受野,并提出重新對檢測、分割任務(wù)訓(xùn)練骨干網(wǎng)絡(luò)以提高特征表達能力。
2019年MS R-CNN[21]提出現(xiàn)有的mask打分策略是使用分類的指標(biāo),缺乏針對性的評價機制。故在Mask R-CNN基礎(chǔ)上修改了mask評價標(biāo)準(zhǔn),通過添加Mask IOU分支來預(yù)測mask并且給其打分來提升模型實例分割性能。同年,何凱明團隊提出PointRend[22]將實例分割看作圖像處理中渲染問題,細(xì)化Mask R-CNN產(chǎn)生的粗糙掩碼邊緣,先在邊緣上選幾個點再提取點的特征進行迭代計分計算達到細(xì)化掩碼的目的。
2020年BMask R-CNN[23]則將目標(biāo)邊緣信息加入Mask R-CNN中用于監(jiān)督網(wǎng)絡(luò)以增強掩碼預(yù)測。
2021年BPR[24]提出一個后處理細(xì)化模塊以提高Mask R-CNN的邊界質(zhì)量。RefineMask[25]利用邊緣信息和語義分割信息細(xì)化Mask R-CNN生成的粗糙掩碼邊緣。姜世浩等[26]在Mask R-CNN基礎(chǔ)上引入兩條分支,基于整體嵌套邊緣檢測2021年BPR[24]提出一個后處理細(xì)化模塊以提高Mask R-CNN的邊界質(zhì)量。BPR利用一種裁剪細(xì)化的策略,先通過實例分割網(wǎng)絡(luò)(如Mask R-CNN)得到粗糙的掩碼。隨后在掩碼的邊界上提取出一系列的方塊,這些方塊被送入一個細(xì)化網(wǎng)絡(luò)作二分類的前景與背景分割,進而實現(xiàn)對邊界處的方塊進行優(yōu)化。該網(wǎng)絡(luò)可以解決Mask R-CNN預(yù)測的掩碼存在邊界粗糙的問題。RefineMask[25]則利用邊緣信息和語義分割信息細(xì)化Mask R-CNN生成的粗糙掩碼邊緣。通過多階段的方式在實例分割過程中逐級融合更多的細(xì)粒度信息,因此逐步精細(xì)化了實例掩模。最后,RefineMask成功地克服了以往分割中所遇到的困難案例(如物體的彎曲部分被過度平滑),并輸出了準(zhǔn)確的邊界。模型生成邊緣特征圖,一條基于FCN生成偏重于空間位置信息的語義特征圖。融合以上得到的多個特征圖,生成信息更加豐富的新特征。
但是上述自上而下的實例分割方法缺點在于:
1)在一定程度上嚴(yán)重依賴精確的目標(biāo)檢測且得到的實例掩碼分辨率相對較低;
2)對于多實例的復(fù)雜場景,由于兩階段方法在前期需要單獨設(shè)計網(wǎng)絡(luò)生成大量建議區(qū)域,其推理時間與建議框的數(shù)量成正比,因此在推斷速度上緩慢;
3)仍然無法很好地區(qū)分同一類別重疊的不同實例個體且掩碼分割細(xì)節(jié)不夠平滑。
1.1.2 自下而上的實例分割
為了擺脫目標(biāo)檢測邊界框?qū)罄m(xù)分割的限制,研究者們從另一個角度思考實例分割問題,將實例分割看作是一個圖像聚類任務(wù)。也就是需要將圖像中屬于一個物體的所有像素聚成一個集合,并判斷這個物體的類別。這種基于分割的方法通常會學(xué)習(xí)經(jīng)過特殊設(shè)計的轉(zhuǎn)換形式或?qū)嵗吔纾⒁灶愃魄度氲姆绞綄Ⅻc聚類到實例掩碼中。下面介紹幾種代表方法。
BAI M等[27]利用FCN網(wǎng)絡(luò)來學(xué)習(xí)分水嶺變換的能量,然后利用能量分割,將圖像分成若干個區(qū)域,每個區(qū)域就代表了一個實例。Associative embedding[28]利用學(xué)習(xí)到的關(guān)系嵌入成組來分配像素。Brabandere等[29]引入判別損失函數(shù)通過推開屬于不同實例的像素并拉近同一實例中的像素來有效地學(xué)習(xí)像素級別的實例嵌入。SGN[30]使用序列組合網(wǎng)絡(luò)將實例分割問題分解成一系列子類分組問題。每個網(wǎng)絡(luò)都解決了語義復(fù)雜度不斷提高的子分組問題,以便逐步從像素中組成對象。Gao等[31]學(xué)習(xí)像素對親和力金字塔,即兩個像素屬于同一實例的概率,并通過級聯(lián)圖分區(qū)順序生成實例。Fathi等[32]和Brabandere等[33]把問題分解成為逐像素語義分割,逐像素對應(yīng)實例的坐標(biāo)進行預(yù)測和區(qū)分類別的實例個數(shù)。同時,嘗試?yán)锰卣髑度氲姆绞?,為每一個像素學(xué)習(xí)一個特征,并根據(jù)特征的距離對像素進行聚類。
這類方法通過將像素分組為圖像中呈現(xiàn)的任意數(shù)量的對象實例來生成實例掩碼,與自上而下的方法相比,自下而上方法的缺點是:
1)嚴(yán)重依賴于密集的預(yù)測質(zhì)量,導(dǎo)致性能不夠標(biāo)準(zhǔn)或產(chǎn)生碎片掩碼;
2)由于聚類過程使得很難將其應(yīng)用于復(fù)雜的情況,通常在準(zhǔn)確性上落后。尤其是在具有不同復(fù)雜場景和語義類別較多的數(shù)據(jù)集上泛化能力有限。
3)預(yù)測之后的處理技術(shù)很復(fù)雜。
綜上分析兩類方法,自上而下嚴(yán)重依賴目標(biāo)檢測效果,自下而上雖然天然克服了基于建議框的缺陷,轉(zhuǎn)為對每個像素的嵌入學(xué)習(xí)和分組進行處理,但一般無法端到端訓(xùn)練,且受限于聚類算法,性能一般有限。那么,是否存在一種方法,可以繞過這些條條框框來直接作實例分割呢?
受單階段的目標(biāo)檢測啟發(fā),現(xiàn)有方法將實例分割統(tǒng)一到FCN[17]框架下,如以單階段全卷積一階段目標(biāo)檢測(fully convolutional one-stage object detection, FCOS)[34]為目標(biāo)檢測框架衍生出一系列單階段的實例分割算法。還有一些研究重新思考了掩碼的合理表征方式,從而提升實例分割精度。近兩年研究人員也將自然語言處理中的Transformer模型成功應(yīng)用到圖像實例分割領(lǐng)域且有了較好的效果。此外,其他方法則結(jié)合了實例分割和目標(biāo)檢測的優(yōu)勢加以實現(xiàn)。單階段的實例分割任務(wù)難點在于不添用建議框的輔助下如何直接區(qū)分不同物體,特別是同類別的不同實例和如何完整的保存逐像素點含有的位置信息和語義信息。
1.2.1 感知實例分割
本質(zhì)上,實例分割可看作實例位置感知的語義分割,需要在區(qū)域級別上進行操作,并且同一像素在不同區(qū)域中可能具有不同的語義,如圖5所示。
圖5(a)中的FCN網(wǎng)絡(luò)簡潔、高效已經(jīng)廣泛應(yīng)用在語義分割中。最早利用FCN網(wǎng)絡(luò)實現(xiàn)實例分割的是圖(b)中的Instance FCN[35],它以位置敏感圖的形式將實例信息引入語義分割中實現(xiàn)了平移可變性。將原有FCN單一輸出通道變?yōu)槎鄠€對實例位置敏感的通道,通過聚合位置敏感圖得到每個實例掩碼。
圖5(c)中的全卷積感知實例分割(FCN instance-aware)[36]改進 Instance FCN不能輸出對象類別信息的問題,提出內(nèi)和外的位置敏感評分圖來同時進行檢測和分割實例。兩個子任務(wù)不僅共享卷積特征而且共享位置敏感評分圖。隨后,王子愉等[37]在全卷積感知實例分割的檢測分支中使用了具有大型可分離卷積來獲得更精確的邊界框。同時設(shè)計了一個包含邊界細(xì)化操作的分割模塊以獲得更精確的掩模。
圖5 FCN系列網(wǎng)絡(luò)Fig.5 FCN series network
2019年加利福尼亞大學(xué)提出一個新的實例分割算法[38]。這個簡單的全卷積實例分割模型是一個實時實例分割算法,這比以前的任何算法都要快得多,盡管它的精度不是很高。YOLACT將整個任務(wù)拆分為了兩個子部分,一個部分是得到類似于FCN的語義分割原型圖,另一個部分得到檢測框,通過融合原型圖和檢測框,得到掩碼。該團隊接下來對此YOLACT算法進行了加強,提出YOLACT的改進版YOLACT++[39],速度高達33.5 fps,將實時實例分割又推上了新的高潮。
2020年,CondInst[40]可以做到真正的高速,同時保證高精度,徹底去掉了檢測器的輔助。它用動態(tài)卷積的思想生成實例敏感的濾波器來編碼實例信息,不依賴目標(biāo)框及ROI Pooling等特征對齊手段。用FCOS檢測實例類別,然后用動態(tài)網(wǎng)絡(luò)生成的掩碼頭參數(shù)結(jié)合提取到含相對坐標(biāo)信息的掩碼特征圖執(zhí)行卷積操作生成最終的實例mask。同年,SOLO[41]將圖像作為輸入,在全卷積特征圖上輸出相應(yīng)類別概率直接輸出實例蒙版,無目標(biāo)框監(jiān)督,既不需要ROI Pooling也不需要進行檢測后處理過程[42]。SOLO先劃分正樣本的柵格,并且把每一個柵格對應(yīng)一個物體的掩碼,相當(dāng)于一個正樣本對應(yīng)一張圖,這張圖中只有這個正樣本的掩碼。SOLOv2[43]在文獻[40]基礎(chǔ)上又提出動態(tài)學(xué)習(xí)分割目標(biāo)掩碼的思想,將其分解為學(xué)習(xí)掩碼核和生成掩碼兩個支路。此外,引入專門針對掩碼的后處理方法Matrix NMS可以一次完成具有并行矩陣運算,比傳統(tǒng)用于目標(biāo)檢測的NMS[44]能產(chǎn)生更好的結(jié)果。
Point INS[45]從基于點特征實例分割的兩個難點入手:如何用點特征進行更強健的掩碼表達和解決一階段潛在存在特征錯誤分配建議框而帶來后續(xù)分割錯亂的問題,提出實例感知卷積(實例無關(guān)的特征和感知權(quán)重相配合)。而CenterMask[46]從另一方面解決基于點特征的一階段實例分割即不同目標(biāo)實例的區(qū)分和逐像素特征對齊。將其分解為兩個子任務(wù):1)局部掩碼(使用目標(biāo)中心點)來表示分離實例,特別在多目標(biāo)重疊環(huán)境下效果顯著全局顯著;2)在整張圖片中生成全局的分割掩碼。最后,融合粗略但實例感知的局部掩碼和精確但實例未知的全局掩碼以形成最終實例的掩碼。BlendMask[47]是通過更合理的blender模塊融合高層和底層的語義信息輔助來提取更準(zhǔn)確的實例分割特征。AdaptIS[48]的思想與其他主流方法不同,它輸入不僅是一張圖像,還需要人為指定一個點。即只需要一個目標(biāo)身上的點,就可以分割出這個目標(biāo)實例的分割掩碼。
1.2.2 建模掩碼
傳統(tǒng)的掩碼mask表征方式是二值化,也就是用一個矩陣表示,矩陣中元素只有0和1,1表示該位置是物體,0表示背景。目前,大多數(shù)掩碼局限于二維矩形框,而現(xiàn)實世界中的物體大多都是不規(guī)則的多邊形,所以一些研究人員從如何合理建模掩碼的角度出發(fā)研究實例分割問題。
2019年Tensormask[49]通過4D的結(jié)構(gòu)化張量在空間域中構(gòu)建掩碼,是一種基于局部掩碼的編碼方式,也是首個密集滑動窗口實例分割系統(tǒng)。雖然思想新穎但它的推理速度慢于兩階段Mask R-CNN且訓(xùn)練時間是Mask R-CNN的6倍。2020年,Polarmask[50]則提出了一種新的掩碼編碼形式,使用極坐標(biāo)建模來表示多邊形目標(biāo),將每個像素的掩碼預(yù)測轉(zhuǎn)變成在極坐標(biāo)系下中心點分類和距離回歸問題。而分析Polarmask的分割結(jié)果發(fā)現(xiàn)存在邊緣信息模糊的問題,因此提出了輪廓點細(xì)化的方法,通過對輪廓點角度偏置和距離的預(yù)測,使網(wǎng)絡(luò)能夠提取出更準(zhǔn)確的實例輪廓。同年,Deep Snake[51]用邊緣建模的方式表征物體。并結(jié)合傳統(tǒng)snake算法,先給定一個初始邊緣,在提取好的特征圖上給邊緣的每個節(jié)點提取一個特征,這樣得到一個定義在邊緣上的特征。然后用循環(huán)卷積(circular convolution)[51]構(gòu)成的網(wǎng)絡(luò)進行邊緣上的特征學(xué)習(xí),最后映射為指向物體輪廓的偏移,用于變形邊緣。
雖然上面基于輪廓建模的方法具有易于優(yōu)化和快速推斷的優(yōu)點。但是也有著天生的缺點,沒有有效的表征目標(biāo)中出現(xiàn)的空洞。因此,MEInst[52]脫離目標(biāo)檢測的影響,考慮對掩碼的寬度×高度進行壓縮,從信息論的角度來說傳統(tǒng)掩碼表示中一定存在著信息冗余,因此可以更低的比特數(shù)對其進行表征,通過使用主成分分析法將掩碼編碼成一個統(tǒng)一的矩陣。
2021年實例分割建模掩碼的核心則是在沒有實例像素標(biāo)注時如何完成實例分割任務(wù)。LSNet[53]類比Polarmask提出一種通用建模方式可用于檢測,實例分割和姿態(tài)估計領(lǐng)域。Implicit PointRend[54]提出基于點的實例級別標(biāo)注,是實例分割中的一種新的弱監(jiān)督形式。它可以將標(biāo)準(zhǔn)的邊界框標(biāo)注與標(biāo)簽點結(jié)合起來。BoxInst[55]提出僅利用邊界框監(jiān)督完成實例分割,核心思想是重新設(shè)計實例分割中掩碼損失,而無需修改分割網(wǎng)絡(luò)本身。新的損失函數(shù)可以監(jiān)督掩碼訓(xùn)練,而無需依賴掩碼注釋。
1.2.3 Transformer嵌入
最近,Transformer模型在自然語言處理中的突破引起了計算機視覺社區(qū)的極大興趣。Transformer的關(guān)鍵部件是多頭注意力,這可以顯著提高模型的能力。目前,已有研究人員將Transformer應(yīng)用到圖像實例分割領(lǐng)域且有了較好的效果。ISTR[56]是首個基于Transformer的端到端實例分割框架。ISTR通過預(yù)測低維掩碼嵌入和循環(huán)細(xì)化策略同時檢測和分割實例,與自下而上和自上而下的框架相比,為實現(xiàn)實例分割提供了新的視角。SOTR[57]利用Transformer簡化了分割流程,使用兩個并行子任務(wù):1)通過Transformer預(yù)測每個實例類別;2)利用多級上采樣模塊動態(tài)生成分割掩碼。此外提出的雙Transformer在一定程度上提高了分割精度和訓(xùn)練收斂性??梢?,編碼器-解碼器Transformer模型可以通過一系列可學(xué)習(xí)的掩碼嵌入將實例分割任務(wù)統(tǒng)一。與CNN相比,視覺Transformer在實例分割領(lǐng)域具有很強的競爭力。
1.2.4 其他方法
經(jīng)過上面介紹可知實例分割在一定程度上依附于目標(biāo)檢測任務(wù),近年來出現(xiàn)了非常多優(yōu)秀的算法解決這兩個問題,且都取得了優(yōu)異的效果。實際上,目標(biāo)檢測屬于目標(biāo)級別的任務(wù),這類任務(wù)更關(guān)注物體級別的特征,對分辨率的需求不高,但需要更多的高級語義信息。而實例分割任務(wù)屬于像素級別的任務(wù),這類任務(wù)需要給出逐像素的輸出,對分辨率的需求較高,需要更多的細(xì)節(jié)信息。但是,卻鮮有文章深入分析兩者之間的關(guān)聯(lián)。這里介紹目前的幾種工作。
HTC[58]一項具有代表性的工作,它采用級聯(lián)體系結(jié)構(gòu)逐步完善了兩個任務(wù),并取得了可喜的成就。但是,這種多階段設(shè)計帶來了成本相對高的計算量。Cascade R-CNN[59]為每個級聯(lián)階段添加了一個分割分支,將級聯(lián)架構(gòu)擴展到實例分段任務(wù)。RDS Net[60]設(shè)計了雙流網(wǎng)絡(luò)在很大程度上克服了實例掩碼的低分辨率,對目標(biāo)框的嚴(yán)重依賴性以及邊界框的定位錯誤。它引入3個模塊即目標(biāo)框輔助實例掩碼關(guān)系模塊,掩碼修剪模塊和掩碼細(xì)化目標(biāo)定位模塊。Embed Mask[61]通過引入建議框嵌入和像素嵌入的概念將基于建議框的方法和基于細(xì)分的方法結(jié)合在一起,以便根據(jù)實例建議框的嵌入相似性將像素分配給實例建議框。
綜上所述,單階段的實例分割算法種類繁雜,解決思路比較開闊,目前從精度和速度上看是最有效的算法,同時也擺脫了檢測框的限制,是未來研究的趨勢。
本小節(jié)對文中涉及到的部分實例分割算法進行優(yōu)缺點比較和性能分析。表1是不同實例分割算法的優(yōu)缺點對比。表2是不同實例分割算法在COCO (microsoft common objects in context)數(shù)據(jù)集上的性能對比。本文在最大程度上選擇相同的基礎(chǔ)網(wǎng)絡(luò)且沒有引入任何訓(xùn)練技巧,以保證算法性能比較的公平性。比較的結(jié)果均在COCO公開測試數(shù)據(jù)集上測試,因為COCO數(shù)據(jù)集是實例分割最常用的數(shù)據(jù)集,圖片背景復(fù)雜,目標(biāo)種類和數(shù)量多,目標(biāo)尺寸相對較小,有很大難度。算法性能主要比較的參數(shù)是精度(COCO評價標(biāo)準(zhǔn),詳細(xì)介紹見3.5)及模型參數(shù)量(#Params)和推斷速度(fps)。其中,fps指每秒幀數(shù),值越大算法速度越快,“?”表示未知,學(xué)習(xí)率規(guī)則“1×”表示模型訓(xùn)練 12 個 epoch(180K iterations),“3×”為 36 個epoch,以此類推。表1和表2主要從兩階段和單階段這兩類對通用場景下的實例分割算法進行分類總結(jié)。從精度上看,相同基礎(chǔ)網(wǎng)絡(luò)時兩階段普遍優(yōu)于單階段,且模型所需訓(xùn)練迭代次數(shù)少。從速度上看,單階段則快于兩階段,且精度也是處于平均水平,但以大量訓(xùn)練迭代次數(shù)為代價。因此,應(yīng)用時需要根據(jù)具體需求選擇合適的算法。綜上分析,沒有一種算法可以兼顧精度高和速度快,未來還可以從同時提升實例分割的速度與精度入手。
表1 不同實例分割算法的優(yōu)缺點對比Table 1 Comparison of the advantages and disadvantages of different instance segmentation algorithms
表2 不同實例分割算法的性能對比Table 2 Performance comparison of different instance segmentation algorithms
實例分割作為像素級別的目標(biāo)識別任務(wù),目前已廣泛應(yīng)用在遙感影像[62-67],文字檢測[68-70],人臉檢測[71-72],輔助駕駛系統(tǒng)[73-76],醫(yī)療圖像處理[77-78]等各個場景下。
遙感圖像中需要對標(biāo)的物體進行識別,進而分析與測繪[79]。李瀾[80]將Mask R-CNN應(yīng)用于高分辨率光學(xué)遙感影像的目標(biāo)檢測和實例分割任務(wù)中,目的是在地圖上找到遺漏的地理實體并提高矢量地圖的質(zhì)量。瑚敏君等[65]在Mask R-CNN原有的特征提取中每個層級的特征圖后再增加一層卷積操作。然后,在原有掩碼預(yù)測結(jié)構(gòu)的基礎(chǔ)上增加一個分支實現(xiàn)了高效、準(zhǔn)確的高分辨率遙感影像建筑物提取算法。王昌安[79]則用于光遙感影像中近岸艦船的檢測任務(wù)。
輔助駕駛系統(tǒng)不僅需要在行駛過程中識別不同的車道線,進行駕駛模式的決策,而且也需要對周圍的車輛、行人等進行分析,判斷周圍的駕駛環(huán)境等這些都用到了實例分割[81-82]。鄧琉元等[83]針對無人駕駛中用到的環(huán)視相機所呈環(huán)形圖像中存在目標(biāo)幾何畸變難以建模問題,在Mask R-CNN中引入可變形卷積和可變形ROI Pooling來提升網(wǎng)絡(luò)對幾何形變的建模能力以實現(xiàn)環(huán)視魚眼圖像中準(zhǔn)確的交通目標(biāo)實例分割。蔡英鳳等[73]和田錦等[74]將實例分割模型用于車道線檢測解決了傳統(tǒng)的車道線檢測算法易受光照變化、陰影遮擋等環(huán)境干擾的缺陷。最后,所提算法可以完成復(fù)雜交通場景下的多車道線實時檢測。除此之外,陳健雄[84]提出實例分割模型也可以有效識別中低速磁浮列車上接觸軌固件的松動狀態(tài),保證了城市軌道交通的安全運行。
醫(yī)療圖像處理需要對血管、骨骼、細(xì)胞等區(qū)域進行分割與檢測,幫助醫(yī)生進行診斷和研究[81]。同時降低誤診率和漏診率,所以實例分割也是重要的關(guān)鍵技術(shù)之一。趙旭[77]研究基于實例分割的乳腺超聲腫瘤識別,分割出乳腺超聲圖像的腫瘤區(qū)。鄭楊等[78]在Mask R-CNN中加入空洞卷積完成宮頸細(xì)胞圖像分割。吳宇[85]則提出一個級聯(lián)的3D椎骨分割網(wǎng)絡(luò)。
可見,實例分割應(yīng)用已經(jīng)非常廣泛,都是建立在兩階段Mask R-CNN[13]基礎(chǔ)之上并有很好的算法效果。未來,實例分割技術(shù)一定會有更大的發(fā)展應(yīng)用前景。
深度學(xué)習(xí)領(lǐng)域關(guān)注的是通過使用計算機算法自動發(fā)現(xiàn)數(shù)據(jù)中的規(guī)律性,并通過使用這些規(guī)律性來采取一些行動。可見,數(shù)據(jù)規(guī)模驅(qū)動深度學(xué)習(xí)領(lǐng)域的發(fā)展,收集一個大規(guī)模的數(shù)據(jù)集也是實例分割研究中重要的工作。目前,公開的大型數(shù)據(jù)集大多是由公司、科研團隊或特別舉辦的專業(yè)比賽等收集創(chuàng)建的,需要大量人工進行手動標(biāo)注,時間成本高[86]。本節(jié)簡要歸納幾種常用的實例分割數(shù)據(jù)集及評價指標(biāo)。
COCO[87]起源于2014年由微軟出資標(biāo)注的Microsoft COCO數(shù)據(jù)集,與ImageNet競賽一樣,被視為是計算機視覺領(lǐng)域最受關(guān)注和最權(quán)威的比賽之一。COCO數(shù)據(jù)集是一個大型的、豐富的目標(biāo)檢測,實例分割和字幕數(shù)據(jù)集。這個數(shù)據(jù)集以場景理解為目標(biāo),主要從復(fù)雜的日常場景中截取,圖像中的目標(biāo)通過精確的分割進行位置的標(biāo)定。圖像包括91類目標(biāo),328 000個影像和2 500 000個標(biāo)簽。目前為止有實例分割的最大且使用最廣泛的數(shù)據(jù)集,提供的類別有80類,有超過33萬張圖片,其中20萬張有標(biāo)注,整個數(shù)據(jù)集中個體的數(shù)目超過150萬個。使用時劃分為訓(xùn)練集、驗證集和測試集3個部分,已成為比較實例分割算法性能最重要的公開數(shù)據(jù)集。
Cityscapes[88]是一個大規(guī)模城市場景數(shù)據(jù)集,主要用于語義分割任務(wù),擁有5 000張在城市環(huán)境中駕駛場景的圖像(2 975張訓(xùn)練集,500張驗證集,1 525張測試集)記錄了50個不同城市的街道場景。它具有19個類別的密集像素標(biāo)注(97%coverage),其中8種類別具有實例級別分割標(biāo)注。
Mapillary Vistas[89]數(shù)據(jù)集是一個新建立的,大場景的街景數(shù)據(jù)集,用于圖像語義分割以及圖像實例分割,旨在進一步開發(fā)用于視覺道路場景理解的先進算法。它包括25 000張高分辨率的彩色圖像,分成66個類,其中有37個類別是特定的附加于實例的標(biāo)簽。對物體的標(biāo)簽注釋可以使用多邊形進行稠密,精細(xì)的描繪。與Cityscapes相比,Mapillary Vistas的精細(xì)注釋總量大了5倍,并包含來自世界各地在各種條件下捕獲的圖像,包括不同天氣,季節(jié)和時間的圖像。
LVIS[90](large vocabulary instance segmentation)是由Facebook AI Research于2019年建立的大型詞匯實例分割數(shù)據(jù)集。目前公布的實例分割數(shù)據(jù)集的目標(biāo)類別還是較少,與實際應(yīng)用場景下存在大量(未知)類別相違背。故LVIS收集了164 000張圖像,對1 000多個對象類別標(biāo)注,共有220萬個高質(zhì)量的實例分割掩碼標(biāo)簽。相比于COCO數(shù)據(jù)集,LVIS人工標(biāo)注掩碼具有更大的重疊面積和更好的邊界連續(xù)性,更精確的掩碼。并且在數(shù)據(jù)成長尾分布(類別種類多而單類的實例個數(shù)少)時仍有很好的訓(xùn)練效果。
這里以常用COCO數(shù)據(jù)集的評價指標(biāo)為例。COCO數(shù)據(jù)集官方評價標(biāo)準(zhǔn)如表3所示。AP代表所有類別的平均精度,作為最終COCO評價整體標(biāo)準(zhǔn)。AP的定義使用并交比(intersection-overunion, IOU)的標(biāo)準(zhǔn),即兩個實例掩碼的重疊度。表3中area是指分割掩碼mask中像素的數(shù)量。同時AP也計算不同尺度目標(biāo)如大目標(biāo),中目標(biāo)以及小目標(biāo)的實例分割精度。
表3 COCO數(shù)據(jù)集的評價指標(biāo)Table 3 Evaluation index of COCO dataset
綜合來看,實例分割技術(shù)正趨向兼并算法實時性和性能高精度的方向發(fā)展。單階段的實例分割在性能上不弱于兩階段的實例分割,但相較于兩階段法的網(wǎng)絡(luò)架構(gòu)更為簡潔,高效且易于訓(xùn)練。由現(xiàn)存算法的性能比較來看還有提升空間。所以,總體期望發(fā)展的方向應(yīng)該是在追求精度提升的基礎(chǔ)上實現(xiàn)快速實時實例分割,更好地適用于實際應(yīng)用。此外,
1)筆者認(rèn)為實例分割與目標(biāo)檢測,語義分割等其他高級計算機視覺任務(wù)可以互惠互利,可重點研究在不同圖像感知任務(wù)之間的相互關(guān)系。此外,自然語言處理和計算機視覺兩大任務(wù)可以彼此互鑒。最近,自然語言處理中常用的Transformer[91,92]在計算機視覺(computer vision, CV)領(lǐng)域已經(jīng)做了一些初步探索,未來針對CV的特點設(shè)計更適配視覺特性的Transformer將會帶來更好的性能提升[93]。
2)目標(biāo)間遮擋和交疊情況仍然是實例分割最具挑戰(zhàn)性的問題,可借鑒圖卷積神經(jīng)網(wǎng)絡(luò),膠囊網(wǎng)絡(luò)和目標(biāo)檢測中的推理關(guān)系網(wǎng)絡(luò)來有效解決遮擋情況下的實例分割問題。
3)目前實例分割只針對單獨的目標(biāo),沒有考慮目標(biāo)間的關(guān)系。從目標(biāo)檢測的經(jīng)驗來看,圖像中不同目標(biāo)是具有空間和語義的上下文聯(lián)系,這種信息的流動和融合有助于目標(biāo)檢測精度的提升。實例分割可以借鑒注意力機制,圖神經(jīng)網(wǎng)絡(luò)的方法來建立目標(biāo)在空間布局以及幾何形狀之間的聯(lián)系。
4)從現(xiàn)有算法的精度來看,小目標(biāo)的實例分割問題仍然是一個挑戰(zhàn)。COCO數(shù)據(jù)集中定義像素總數(shù)小于322為小目標(biāo)??梢娖湓趫D像中像素面積占比很小,經(jīng)過多次采樣和池化等定會缺少很多細(xì)節(jié)。而實例分割是一個需要精確和完整的像素信息才能完成的任務(wù),兩者產(chǎn)生矛盾。未來的研究可以小目標(biāo)檢測為切入點,結(jié)合超分辨率圖像任務(wù)、生成對抗網(wǎng)絡(luò)、尺度自適應(yīng)和注意力機制等策略來提高小目標(biāo)的實例分割精度。
5)實例分割大多是有監(jiān)督學(xué)習(xí),其數(shù)據(jù)采用人工手動進行像素標(biāo)注的方式,繁瑣的數(shù)據(jù)標(biāo)注耗費大量的人力和時間。為了減少成本,使用自監(jiān)督學(xué)習(xí)、弱監(jiān)督學(xué)習(xí)方式從已有未標(biāo)注或少量標(biāo)注數(shù)據(jù)中自動生成標(biāo)簽實現(xiàn)實例分割。也可利用現(xiàn)有的已標(biāo)注邊界框作為先驗信息輔助鎖定目標(biāo)范圍。
6)從實際應(yīng)用的角度,現(xiàn)有網(wǎng)絡(luò)設(shè)計的復(fù)雜度高,占用內(nèi)存大,速度和準(zhǔn)確度之間還不能達到平衡。輕量化的網(wǎng)絡(luò)架構(gòu),滿足速度快和精度高的需求將是實例分割未來探究的重要內(nèi)容。