姚 礪, 高 傲, 張乃港, 吳昊然, 萬 燕
(東華大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 201600)
人體實(shí)例分割指對于背景中需要檢測出的人體進(jìn)行提取和分割,是計算機(jī)視覺領(lǐng)域如醫(yī)學(xué)影像、自動駕駛、三維重建等許多任務(wù)研究的前提。 實(shí)例分割是目標(biāo)檢測和語義分割兩項任務(wù)的結(jié)合,目標(biāo)檢測主要有兩種方式:單階段方法和兩階段方法。 兩階段方法的第一階段是通過不同的方式產(chǎn)生候選框,在第二階段對這些候選框進(jìn)行分類和微調(diào)位置,獲取到檢測的結(jié)果;單階段方法直接對圖片進(jìn)行處理得到檢測結(jié)果。 語義分割則是對輸入圖像中的每個像素點(diǎn)進(jìn)行預(yù)測,判斷其屬于前景還是背景,從而將前景分割出來。
隨著深度學(xué)習(xí)的發(fā)展,誕生了許多出色的實(shí)例分割算法。 Long J[1]等提出了FCN(Fully Convolutional Network)方法,將上采樣和下采樣方法引入圖像分割領(lǐng)域中,針對像素分類有效的對目標(biāo)進(jìn)行分割;He 等人[2]提出了Mask R-CNN(Mask Region-based CNN) 算法,首先提取目標(biāo)候選框,然后在候選框內(nèi)使用FCN 進(jìn)行分割,提升了分割精度,但Mask RCNN 算法對于一些不規(guī)則的物體,例如人、動物等在邊緣上分割效果表現(xiàn)的較差;2018 年,Liu 等[3]在Mask R-CNN 的基礎(chǔ)上,提出了一種兩階段實(shí)例分割算法PANet(Path Aggregation Network),通過特征金字塔和自適應(yīng)池化進(jìn)一步提升了獲取特征的能力,但是在目標(biāo)邊緣上表現(xiàn)的仍然較差。
從以上幾種方法能看出來,由于兩階段的做法先天依賴于第一階段框選,導(dǎo)致算法丟失了物體的輪廓信息,從而很容易在不規(guī)則物體的邊緣處分割較差。 因此本文針對這一問題進(jìn)行研究,通過引入輪廓信息對分割結(jié)果進(jìn)行優(yōu)化,進(jìn)一步提升實(shí)例分割的精度。 傳統(tǒng)的輪廓檢測方法通常借助邊緣檢測算子實(shí)現(xiàn),例如Laplacian 算子、Canny 算子、Sobel算子等等,雖然能檢測出場景中的邊緣信息,但是容易受到噪聲干擾,檢測出冗余的邊緣信息。 Yang J等人[4]提出輪廓檢測方法CEDN(Convolutional Encoder-Decoder Network)不僅可以有效的提取出目標(biāo)輪廓,而且受到噪聲干擾較小,因此本文基于CEDN 算法進(jìn)行改進(jìn),用于提取人體實(shí)例輪廓,優(yōu)化Mask R-CNN 的分割結(jié)果。
雖然Mask R-CNN 算法在人體實(shí)例邊緣處分割結(jié)果較為粗糙,但是對整體的分割仍然是有效的,因此可以利用Mask R-CNN 對人體進(jìn)行初步分割,得到大致的形狀;利用CEDN 算法對圖像中的輪廓信息進(jìn)行檢測;通過Mask R-CNN 分割的掩碼提取出人體輪廓;最后,對人體輪廓進(jìn)行區(qū)域填充,便可以獲取到較為精準(zhǔn)的人體實(shí)例分割結(jié)果。 本文方法流程圖如圖1 所示。

圖1 本文實(shí)例分割方法流程圖Fig. 1 The flowchart of the instance segmentation method in this article
本文通過像素級與運(yùn)算將人體掩碼和輪廓掩碼融合,為了防止人體輪廓出現(xiàn)斷裂,需要將人體掩碼膨脹,完整覆蓋輪廓掩碼后再進(jìn)行與運(yùn)算。 研究發(fā)現(xiàn),膨脹次數(shù)介于15 次和20 次之間效果最好,可以得到較為完整的人體輪廓。 膨脹操作如圖2 所示。

圖2 膨脹操作Fig. 2 Dilated progress
簡單的像素級與運(yùn)算融合,人體輪廓邊緣難免會出現(xiàn)毛刺,如圖3 所示。

圖3 人體輪廓毛刺Fig. 3 Body contour burr
后續(xù)區(qū)域填充需要光滑的輪廓,需要通過形態(tài)學(xué)手段進(jìn)行光滑處理,去除掉毛刺。 本文觀察人體輪廓發(fā)現(xiàn),毛刺寬度超過2 個像素,人體輪廓如圖4所示。

圖4 輪廓寬度Fig. 4 Contour width
而超過2 個像素寬度的毛刺使用一般的形態(tài)學(xué)開閉運(yùn)算難以細(xì)化和消除。 因此本文設(shè)計了一種基于形態(tài)學(xué)的毛刺去除方法,有效的去除掉毛刺信息。首先,使用骨架提取方法,將輪廓和毛刺細(xì)化成像素寬度為1 的骨架;由于毛刺多是水平方向,因此通過線掃描法水平線性掃描獲取到水平形狀人體掩碼,利用形態(tài)學(xué)開運(yùn)算有效的去除毛刺;通過和骨架的融合,便可以得到去除毛刺后的人體輪廓。 毛刺去除過程如圖5 所示。
處理毛刺后得到了較為光滑的人體輪廓,隨后使用區(qū)域填充方法可以將人體輪廓填充為人體分割掩碼。
CEDN 算法雖然能夠有效的提取出目標(biāo)的輪廓,但魯棒性較差,檢測出的人體輪廓容易出現(xiàn)斷裂的問題。 因此本文基于CEDN 算法的網(wǎng)絡(luò)結(jié)構(gòu)做了一定的調(diào)整,增加解碼器的卷積層個數(shù),以增加解碼器解碼能力,有助于避免輪廓出現(xiàn)斷裂的現(xiàn)象。 輪廓檢測算法網(wǎng)絡(luò)結(jié)構(gòu)如圖6 所示。

圖6 輪廓檢測算法網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 6 The architecture of the CEDN algorithm network
本文將改進(jìn)后的輪廓檢測方法和Canny 算子,Laplacian 算子以及Sobel 算子的檢測效果進(jìn)行了對比,結(jié)果如圖7 所示,可見本文改進(jìn)后的輪廓檢測方法去除了大量的服裝紋理等信息帶來的冗余輪廓。

圖7 邊緣檢測技術(shù)比較Fig. 7 Comparison of the edge detection technology
本文區(qū)域填充方法的流程圖如圖8 所示。 獲取到人體實(shí)例輪廓后,需要對輪廓進(jìn)行填充以獲得完整的人體實(shí)例分割圖像。 由于輪廓內(nèi)部服裝紋理信息的干擾,普通的區(qū)域填充算法,例如連通域算法、泛洪填充法等等填充效果較差。 本文提出一種基于掃描線法的區(qū)域填充算法,對于一個待填充人體輪廓圖,從左到右、從上到下以及其對應(yīng)的逆方向分別掃描,當(dāng)遇到像素值等于255 時,即認(rèn)為到達(dá)了輪廓邊界,本次掃描停止,轉(zhuǎn)向從下一行或者下一列開始重復(fù)掃描。

圖8 區(qū)域填充流程圖Fig. 8 Region filling flow chart
由于內(nèi)部紋理以及邊緣毛刺的原因,傳統(tǒng)的區(qū)域填充法效果并不理想,本文采用結(jié)合形態(tài)學(xué)的掃描線法區(qū)域填充方法,有效的對人體輪廓進(jìn)行填充,分割出人體實(shí)例。
將改進(jìn)后的區(qū)域填充方法和傳統(tǒng)的泛洪填充法和線掃描法進(jìn)行了對比,結(jié)果如圖9 所示。 可見本文改進(jìn)的區(qū)域填充方法有效的填充了輪廓內(nèi)部區(qū)域。

圖9 區(qū)域填充算法比較Fig. 9 Comparison of the region filling
本文在LSP(Leeds Sports Pose)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)和測試,并分別計算準(zhǔn)確率(Precision) 和召回率(Recall) 評價本文算法的性能,準(zhǔn)確率和召回率數(shù)學(xué)定義分別為式(1)和式(2):
其中,TP表示被正確預(yù)測為正樣本的數(shù)量;FP表示負(fù)樣本被預(yù)測為正樣本的數(shù)量;FN表示正樣本被預(yù)測為負(fù)樣本的數(shù)量。
以Mask R-CNN 算法為比較對象,評價指標(biāo)見表1。 可見與Mask R-CNN 算法相比,本文方法準(zhǔn)確率提高了4%,召回率提高了8%。

表1 評價指標(biāo)Tab. 1 Evaluation metrics
通過在LSP 數(shù)據(jù)集上選擇圖片進(jìn)行分割測試,結(jié)果如圖10 所示。 本文方法在人體實(shí)例的頭部、手肘、腳部等地方相比較Mask R-CNN 的分割結(jié)果更加精細(xì)。 實(shí)驗(yàn)結(jié)果驗(yàn)證了本文方法的有效性,即通過輪廓檢測算法以及形態(tài)學(xué)、區(qū)域填充手段的引入使得本文算法不僅在分割精度相對于Mask R-CNN得到了提升,而且進(jìn)一步優(yōu)化了目標(biāo)邊緣。

圖10 Mask R-CNN 方法與本文分割結(jié)果對比Fig. 10 Segmentation comparison of Mask R-CNN method and ours
本文針對Mask R-CNN 算法在人體實(shí)例分割中存在分割邊緣較差、分割精準(zhǔn)度較低等問題,輪廓檢測算法CEDN 提取出人體輪廓,然后通過改進(jìn)的區(qū)域填充算法填充人體輪廓,從而得到人體分割掩碼。本文算法有效的利用輪廓信息優(yōu)化了人體邊緣,改善了Mask R-CNN 算法分割出的人體邊緣粗糙的問題。 在LSP 數(shù)據(jù)集上實(shí)驗(yàn),本文方法較Mask RCNN 算法精確率提高了4%,召回率提高了8%。