岳煥景,黃道祥,宋曉林,楊敬鈺,沈麗麗
(天津大學(xué)電氣自動化與信息工程學(xué)院,天津 300072)
人體分割是指從含有人的圖像中將人的輪廓分割出來,它是 3D 人體重建[1]、3D 運動捕捉[2]和姿態(tài)估計[3]等應(yīng)用的重要步驟,因此研究如何獲取準(zhǔn)確的人體分割結(jié)果具有現(xiàn)實意義.在實際場景中人體分割受到噪聲[4]、遮擋、相似顏色和復(fù)雜背景等眾多因素的影響,往往無法得到理想的結(jié)果,因此在復(fù)雜場景中如何獲得準(zhǔn)確的人體分割結(jié)果仍是一項十分具有挑戰(zhàn)性的工作.Kinect v2相機(jī)利用時間飛行技術(shù),獲得的深度圖像比第一代 Kinect準(zhǔn)確性更高,其包含一個彩色相機(jī)和一個深度相機(jī),為科研和工業(yè)獲取RGB-D數(shù)據(jù)提供了極大地便利.除了提供RGB-D數(shù)據(jù),Kinect v2也提供了采集場景中人的骨架信息.
近年來,國內(nèi)外學(xué)者提出了大量的研究方案進(jìn)行人體分割,根據(jù)使用圖像信息的不同,可以分為 4類:基于彩色圖的方法、基于深度圖的方法、基于RGB-D的方法和基于骨架的方法.基于彩色圖的方法利用圖像物體間彩色信息的差異性,Gulshan等[5]用 Kinect深度相機(jī)采集圖像數(shù)據(jù)集進(jìn)行訓(xùn)練,先用自學(xué)習(xí)的線性分類器獲得一個初始的分割結(jié)果,然后再利用自下而上的信息對初始分割結(jié)果進(jìn)行精細(xì)化處理得到最后的結(jié)果.Rother等[6]用高斯混合模型分別對前景、背景建模,并采用迭代算法簡化用戶交互,少量的用戶操作就可得到比較好的分割結(jié)果.Li等[7]利用在圖割框架中結(jié)合從上而下和從下而上線索的數(shù)據(jù)驅(qū)動方法在靜態(tài)圖像中分割出人體輪廓,該方法通過探索人體運動學(xué)信息來幫助區(qū)分人體各部分,利用一個增強(qiáng)的分類器和 ICA-R本地學(xué)習(xí)方法來計算人體各部分的分布.Fernández-Caballero等[8]使用閾值和形狀分析的方法解決人體分割問題.上述方法都只利用了圖像的彩色信息,因此對于圖像中顏色相近的物體不能準(zhǔn)確分割.深度相機(jī)的流行為深度圖的采集提供了便利,二維平面上相鄰的物體往往具有不同的深度信息,因此利用深度可以有效地進(jìn)行人體分割.Shotton等[9]利用深度圖來提取人體動作,不需要依賴圖像的幀間信息,只要使用單幅深度圖像就可以快速預(yù)測人體動作,Hernández-Vela等[10]提出了在隨機(jī)森林和圖割理論基礎(chǔ)上用深度圖進(jìn)行人體分割的方法.該類方法由于目前深度相機(jī)獲取的深度圖具有大量的噪聲,深度缺失和低分辨率等不足,不能有效分割那些像素深度值錯誤或相近的區(qū)域.基于RGB-D的方法考慮深度、彩色圖像對具有幾何結(jié)構(gòu)的相似性,Palmero等[11]獲得彩色深度等不同特征的前景區(qū)域以減少搜索的區(qū)域,同時獲得前景區(qū)域的特征描述,然后利用這些特征描述來學(xué)習(xí)概率模型,提升最后的分割效果.Vineet等[12]提出了一種建立在均值場基礎(chǔ)上的姿態(tài)場模型,這種分割方法有效地減少了計算復(fù)雜度.此類利用彩色深度信息的人體分割算法,沒有考慮到場景中人體本身這一重要信息,準(zhǔn)確性有待提高.Junior等[13]提出了在骨架模型上尋找基于圖的最大值路徑的方法來產(chǎn)生人體分割輪廓.但是此種方法由于缺乏圖像顏色信息,造成了不平滑的人體輪廓分割結(jié)果.
本文提出了一種聯(lián)合RGB-D和骨架信息的人體分割算法,彩色深度對的幾何結(jié)構(gòu)相似性,克服單一顏色信息的不足,同時人體骨架可以提供人的輪廓信息,進(jìn)一步提升了分割的準(zhǔn)確性;此外,設(shè)計能量函數(shù)的數(shù)據(jù)項和平滑項,通過最小化能量函數(shù)來得到最后的分割結(jié)果.實驗結(jié)果表明,與其他方法相比,本文方法具有較高的魯棒性,在不同實際場景數(shù)據(jù)集中取得了比較理想的分割效果.
本文提出的圖模型使用 3種類型的信息:彩色圖、深度圖和相應(yīng)的人體骨架.如圖 1所示,所提出的方法包含2步:基于超像素聚集的過分割和基于圖的超像素融合.在第 1步中,深度圖和對應(yīng)的彩色圖作為輸入,利用文獻(xiàn)[14]給出的幾何增強(qiáng)的超像素聚集算法得到超像素,這樣得到的超像素更加緊湊且準(zhǔn)確.超像素考慮了圖像的 RGB-D信息,深度彩色彌補(bǔ)只利用單一信息的不足,從而更好地刻畫物體邊界.同時,與直接對像素進(jìn)行處理的情況相比,這些超像素作為圖的節(jié)點可以減少節(jié)點的數(shù)量,從而減少算法復(fù)雜度.第 2步為超像素融合,在圖論優(yōu)化框架下,結(jié)合 RGB-D和相應(yīng)的人體骨架信息對這些超像素進(jìn)行融合,從而得到最后的分割結(jié)果.
圖1 基于RGB-D和骨架信息的人體分割框架Fig.1 Body segmentation framework based on RGB-D and skeleton information
人處于場景中時,圖像的深度信息有助于區(qū)分顏色相近的物體.同時 Kinect深度相機(jī)可以采集得到一系列骨架節(jié)點的三維坐標(biāo)信息,從而很好地提供了場景中人的位置和輪廓信息.通過聯(lián)合 RGB-D和骨架信息,提出的方法能得到更加準(zhǔn)確的人體分割結(jié)果.
Kinect v2采集的彩色圖像的分辨率為 1,920像素×1,080像素,而深度圖的分辨率為512像素×424像素.本文利用 Kinect SDK將深度圖扭轉(zhuǎn)到彩色圖坐標(biāo)系下,得到相同分辨率的彩色圖和深度圖.扭轉(zhuǎn)后的深度圖存在較多的空洞區(qū)域,采用邊緣引導(dǎo)的濾波方法[15]對其進(jìn)行深度修復(fù).引入彩色邊緣圖像控制深度擴(kuò)散順序,保證在空洞區(qū)域由外向內(nèi)擴(kuò)散填充,利用有深度值的像素向內(nèi)逐步填充,縮小空洞區(qū)域直至修復(fù)完全部區(qū)域.針對邊緣像素x的深度D(x ),濾波方程為式中:w為標(biāo)準(zhǔn)化系數(shù);I為同一坐標(biāo)系下的高質(zhì)量彩色圖像;ζ(x)為深度圖D中像素x鄰域內(nèi)的可行集,由彩色圖I中提取的彩色邊緣圖像E決定;y表示可行域ζ(x)內(nèi)的像素位置;Dx為深度圖D在像素x的粗略估計,由x周圍鄰域的平均值估計;Dy表示深度圖中像素y位置處的深度值;Ix、Iy分別表示彩色圖I中像素x、y位置處的彩色值;G(·)表示高斯核分別表示歐幾里得空間距離、深度值差異和彩色空間差異,其下標(biāo)λ、ξ、μ為對應(yīng)項方差,實驗中對應(yīng)的值分別取200、100、6.邊緣引導(dǎo)的濾波方法將稀疏的深度散點圖中有效深度值擴(kuò)散到整個圖像,已恢復(fù)像素作為已知信息來修復(fù)空洞區(qū)域,逐步得到高質(zhì)量的深度圖像.修復(fù)結(jié)果如圖2所示.
圖2 深度圖修復(fù)結(jié)果Fig.2 Recovery result of depth map
s表示圖像I中一個超像素,1,2,…,M}表示經(jīng)過聚類算法得到的所有超像素的集合,這當(dāng)中M表示集合中超像素的個數(shù),表示所有的標(biāo)簽.則融合問題可以理解成每一個超像素s∈S分配一個標(biāo)簽,例如,定義能量函數(shù)為
式中:Edata(F)表示數(shù)據(jù)項,反映超像素s被標(biāo)記body和background的可能性;Esmooth(F )表示平滑項,反映相鄰超像素對屬于同一標(biāo)簽的相似度,利用α-expansion 算法[16]來最小化能量函數(shù).
數(shù)據(jù)項衡量超像素和標(biāo)簽之間的相近程度.?dāng)?shù)據(jù)項越小,則表明超像素與標(biāo)簽之間的關(guān)聯(lián)性越強(qiáng).?dāng)?shù)據(jù)項定義為
式中:λ1為參數(shù)表示一個超像素s連接到標(biāo)簽fs的可能性,其由兩部分組成用來表示Ix被標(biāo)記為fs的概率密度函數(shù),用Ix來表示觀測到的像素x的 RGB-D數(shù)據(jù),包含了彩色和深度數(shù)據(jù),超像素里的所有像素的來衡量整個超像素的彩色深度數(shù)據(jù)用來反映超像素種子點被標(biāo)記fs的概率密度函數(shù),?x是在超像素聚集階段生成的超像素的種子點.用高斯混合函數(shù)來為數(shù)據(jù)分布建模,概率密度函數(shù)表達(dá)式為
入高斯混合函數(shù)進(jìn)行細(xì)致迭代.本文用sigmoid函數(shù)將超像素到背景和超像素到人體的距離映射到概率,其表達(dá)式分別為
式中α、β是控制sigmoid函數(shù)坡度和相位的參數(shù).α、β根據(jù)超像素種子點到骨架的距離設(shè)置成合適的值,實驗中α=50,β=0.185 4.定義超像素屬于人體部分的可能性與超像素到骨架的距離成反比,如果超像素越接近骨架,其屬于人體部分的可能性就越大.D( s, K)表示超像素到骨架距離,即
式中:K表示人體骨架,它由一系列骨架節(jié)點組成,,kj表示第 j個骨架連結(jié)點,J表示節(jié)點數(shù)量.超像素種子點到骨架最小距離如圖3所示,黃線表示一個超像素種子點到部分骨架節(jié)點的距離,黑線表示超像素種子點到骨架的最短距離
圖3 超像素種子點到骨架最小距離Fig.3 The minimal distance between the seed of superpixel and the skeleton joints
平滑項衡量相鄰超像素對之間的光滑程度.全圖所有相鄰超像素對的平滑程度加權(quán)為
式中:表示相鄰超像素對的代價值,只有當(dāng)si和sj的標(biāo)簽不一樣時,對應(yīng)代價才會存在,否則,該項為零,N表示超像素對的集合定義為
其中對應(yīng)代價為
式中:Ci,j和Hi,j分別表示連續(xù)性分量和直方圖分量;λ2、λ3為控制參數(shù).
連續(xù)性分量:利用其顏色信息的差異性衡量超像素間的差異.超像素是像素的組合,不能直接考慮相鄰超像素之間的差異程度.為了衡量超像素間的差異程度,可以在邊界上找到一個梯度變化最小的方向,作為超像素之間連接的方向,通過度量這個方向上的彩色差異程度,來計算連續(xù)性分量.用Ωij表示超像素si與sj相鄰邊界上的像素,那么連續(xù)性分量為
式中:Iq是像素p的8聯(lián)通臨域;表示在邊界Ωij上的所有像素點個數(shù);σ1是控制指數(shù)衰減的參數(shù).
直方圖分量:RGB-D數(shù)據(jù)直方圖分量可以反映相鄰超像素的趨近程度.超像素si和sj的 RGB-D 數(shù)據(jù)直方圖矢量分別為hi和hj.每一個直方圖都被歸一化到和為一的范圍.直方圖分量可以表示為
式中:σ2是用來控制指數(shù)衰減的參數(shù);mi和mj分別表示向量 hi和hj的均值,則相關(guān)系數(shù)ρ(hi, hj)的計算方法為
其中σi和σj是用類似的方法計算,計算公式為
式中L是直方圖中總的柱狀條數(shù).
利用 Kinect v2采集實際場景的圖像為測試圖像.實驗中,參數(shù)設(shè)置為.本文使用手工標(biāo)定的圖像作為真值圖,為比較不同算法下的分割結(jié)果,計算 the overlap score作為評價標(biāo)準(zhǔn),其計算公式為
式中:y1和y2分別表示分割出的結(jié)果二值圖和真值二值圖;i表示像素.根據(jù)評價標(biāo)準(zhǔn),其計算的結(jié)果越大,人體分割的效果越好.
比較 GrabCut算法[6]、GSC 算法[17]和本文的算法,分割結(jié)果如圖 4所示,場景圖像中人與背景處于不同距離.場景圖從上到下依次記為 1~6,實驗的前4組數(shù)據(jù)是利用一臺Kinect v2相機(jī)在不同場景中采集的數(shù)據(jù),后兩組數(shù)據(jù)為同一場景下,由擺放在水平支架上的兩臺 Kinect v2相機(jī)拍攝所得,從而得到同一場景下不同視角的圖像.從實驗結(jié)果來看,本文所提出的算法獲得的分割結(jié)果更加準(zhǔn)確,如衣服和手腳處能夠達(dá)到更好的分割效果.GrabCut算法在背景雜亂的時候,不能很好地處理人體邊界.GSC算法對顏色分布和物體形狀比較敏感,在第2組圖像衣服處和第3組圖像褲子處出現(xiàn)較大區(qū)域分割不清.從第5組和第6組圖像實驗結(jié)果來看,對于不同視角下的同一場景,所提出的方法在腳和上衣標(biāo)簽處仍能進(jìn)行很好的分割,具有較高的魯棒性.
圖4 各算法的分割結(jié)果Fig.4 Segmentation results of several algorithms
Kinect v2相機(jī)采集深度圖時的工作距離有一定的要求,最好在 0.8~3.0,m,同時精度受室外光線等因素干擾較大,所以本文的數(shù)據(jù)采集主要集中在室內(nèi).對分割結(jié)果進(jìn)行評價指標(biāo)計算,得到圖4中6組實驗的人體分割結(jié)果的the overlap score評價指標(biāo)如表 1所示.相比于其他兩種算法,本文算法顯著地提高了the overlap score指標(biāo),平均能達(dá)到95.11%,,而GrabCut算法和GSC算法分別平均能達(dá)到79.74%,和91.23%,.本文方法比 GrabCut算法平均提高15.37%,,比GSC算法平均提高3.88%,.
表1 3種算法the overlap score評價標(biāo)準(zhǔn)比較Tab.1 Comparison of the overlap score of three algorithms
Kinect相機(jī)內(nèi)部自帶的SDK也提供了一種人體分割方法,其利用彩色圖和深度的映射關(guān)系,將彩色圖上的像素點轉(zhuǎn)換到深度圖坐標(biāo)系中,判斷該像素點是否屬于人體,若是則在彩色圖取出,從而實現(xiàn)人體分割.如圖 5所示,相比較本文提供的方法,SDK提供的方法在人接觸其他物體的地方分割明顯不理想.雖然這種方法可以實現(xiàn)實時分割,但是深度圖像精確度不高,導(dǎo)致SDK方法的分割結(jié)果較差,在腿與背景物體相接觸時,毛毯的大片區(qū)域被誤認(rèn)為是人體一部分而被分割了出來.腳也存在較大區(qū)域被誤認(rèn)為成背景區(qū)域而沒有分割出來.而本文的方法在這些地方得到了較好的分割結(jié)果,顯著提升了分割的質(zhì)量.
圖5 Kinect SDK方法和本文方法比較Fig.5 Comparison between Kinect SDK method and the proposed method
本文提出了一種基于圖模型及骨架信息的人體分割算法,可以有效地在復(fù)雜場景中準(zhǔn)確地分割出人體輪廓.在過分割階段,利用修復(fù)的深度圖和對應(yīng)的彩色圖像產(chǎn)生超像素;然后在圖優(yōu)化框架中,考慮人體骨架這一重要信息,并結(jié)合圖像的 RGB-D信息,進(jìn)行超像素融合得到最后的分割結(jié)果.實驗結(jié)果表明,與其他方法相比,本文所提出的在圖論優(yōu)化框架中聯(lián)合圖像多種信息的方法,能夠得到更加準(zhǔn)確的人體分割結(jié)果.下一步的工作將考慮其他圖像信息,并考慮實時場景中的人體分割.
參考文獻(xiàn):
[1]Graf H,Yoon S M,Malerczyk C. Real-time 3D reconstruction and pose estimation for human motion analysis[C]//IEEE International Conference on Image Processing. Hong Kong,China,2010:3981-3984.
[2]Liu Y,Gall J,Stoll C,et al. Markerless motion capture of multiple characters using multiview image segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2013,35(11):2720-2735.
[3]Shakhnarovich G,Viola P,Darrell T. Fast pose estimation with parameter-sensitive hashing[C]//IEEE International Conference on Computer Vision. Nice,F(xiàn)rance,2003:750-757.
[4]劉正光,林雪燕,車秀閣. 基于二維灰度直方圖的模糊熵分割方法[J]. 天津大學(xué)學(xué)報,2004,37(12):1101-1104.Liu Zhengguang,Lin Xueyan,Che Xiuge. Fuzzy entrogy segmentation method based on 2D gray histogram[J]. Journal of Tianjin University,2004,37(12):1101-1104(in Chinese).
[5]Gulshan V,Lempitsky V,Zisserman A. Humanising GrabCut:Learning to segment humans using the Kinect[C]//IEEE International Conference on Computer Vision Workshops. Barcelona,Spain,2011:1127-1133.
[6]Rother C,Kolmogorov V,Blake A. Grabcut:Interactive foreground extraction using iterated graph cuts[C]//ACM Transactions on Graphics. New York,USA,2004:309-314.
[7]Li S,Lu H,Shao X. Human body segmentation via data-driven graph cut[J]. IEEE Transactions on Cybernetics,2014,44(11):2099-2108.
[8]Fernández-Caballero A,Castillo J C,Serrano-Cuerda J,et al. Real-time human segmentation in infrared videos[J]. Expert Systems with Applications,2011,38(3):2577-2584.
[9]Shotton J,Sharp T,Kipman A,et al. Real-time human pose recognition in parts from single depth images[J].Communications of the ACM,2013,56(1):116-124.
[10]Hernández-Vela A,Zlateva N,Marinov A,et al.Graphcuts optimization for multi-limb human segmentation in depth maps[C]// 2012 IEEE Conference on Computer Vision and Pattern Recognition. Providence,USA,2012:726-732.
[11]Palmero C,Clapés A,Bahnsen C,et al. Multi-modal RGB-depth-thermal human body segmentation[J]. Inter-national Journal of Computer Vision,2016,118(2):217-239.
[12]Vineet V,Sheasby G,Warrell J,et al. Posefield:An efficient mean-field based method for joint estimation of human pose,segmentation,and depth[C]// International Workshop on Energy Minimization Methods in Computer Vision and Pattern Recognition. Berlin,Heidelberg,Germany,2013:180-194.
[13]Junior J C S J,Jung C R,Musse S R. Skeleton-based human segmentation in still images[C]//IEEE International Conference on Image Processing. Orlando,USA,2012:141-144.
[14]Yang J,Gan Z,Li K,et al. Graph-based segmentation for RGB-D data using 3-D geometry enhanced superpixels[J]. IEEE Transactions on Cybernetics,2015,45(5):927-940.
[15]Ye X,Yang J,Huang H,et al. Computational multiview imaging with Kinect[J]. IEEE Transactions on Broadcasting,2014,60(3):540-554.
[16]Boykov Y,Veksler O,Zabih R. Fast approximate energy minimization via graph cuts[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2001,23(11):1222-1239.
[17]Gulshan V,Rother C,Criminisi A,et al. Geodesic star convexity for interactive image segmentation[C]//2010 IEEE Conference on Computer Vision and Pattern Recognition. San Francisco,USA,2010:3129-3136.