李一正 梁 華 馮 豪
(湖南涉外經濟學院電子商務系 長沙 410205)
增強現實[1](Augmented Reality,AR)是通過目標識別、模板匹配、三位注冊等過程來整合現實場景與虛擬信息以達到視覺增強的技術。標志物的識別效率決定著AR系統運行的穩定性,其中對于目標圖像的分割精度影響著后續增強現實系統的運行效率。目前,在交互式圖像分割算法[2]中,GrabCut算法因交互動作方便,分割結果較為精確,被大量運用于圖像分割領域。
GrabCut算法由ROTHER等[3]依據Graph Cut算法[4]改進而來,通過少量的交互動作和識別不同于環境的顏色和紋理區域來區分前景與背景;利用混合高斯模型[5](Gaussian Mixture Model,GMM)對目標和背景進行建模,不斷優化GMM的參數,直至收斂,從而獲得最優的分割結果。之后許多學者針對GrabCut算法存在的不足,對其進行改進。Han等[6]將高斯混合模型(GMM)擴展到MSNST特征,使紋理特征更容易提取并與顏色特征結合,提高了圖像分割性能。該方法雖然提高了圖像的分割精度,但計算量大,存在耗時的問題。針對上述問題,文獻[7]用CRF代替傳統GrabCut公式中的全局顏色模型,大大提高了分割的速度;文獻[8]通過降低圖像分辨率以加快算法的迭代速度,在不影響原有分割效果的情況下,提高了分割效率;陳鑫等[9]利用SLICO算法處理后的超像素圖來計算均值,并迭代估計GMM參數來減少節點數量,提高了算法精度與速度。這些方法雖然能夠較為準確且快速地提取出前景圖像,但在圖像邊緣存在一定程度的錯誤分割現象。針對GrabCut算法存在的圖像欠分割問題,周良芳等[10]采用多尺度分水嶺算法對梯度圖像平滑去噪,減少了像素節點,從而減輕了系統計算量,最后利用熵懲罰因子對分割能量函數進行懲罰,降低了目標像素的錯誤分割,提高了分割精度和運行效率。
由于戶外自然場景下的無特殊標志物的增強現實系統是對建筑、雕像等物體的識別,加上環境的不穩定性,需要增強現實系統的圖像分割擁有較高的準確度與速度,而GrabCut算法需要計算全局顏色模型,大量的像素計算與迭代過程使得算法十分耗時,本文以ARToolKit開發包為增強現實系統開發框架,以GrabCut算法為基礎,利用直方圖均衡化[11]來增強圖像對比度,解決因光照強弱造成的前景與背景像素過于相似,缺少較暗或較亮的像素問題;在戶外環境下,物體避免不了受到一定程度的來自于行人、車輛等不確定性因素的遮擋,這會導致系統難以區分目標物體與遮擋物,從而難以準確地將目標與背景分離開來,完成增強現實。為解決以上問題,利用GrabCut算法,系統會提示用戶在圖像中選擇需要識別的對象,之后根據用戶選擇的內容進行后續處理。通過少量的交互,能夠幫助系統減少來自于障礙物的干擾,提高分割精度;為進一步減少由前景與背景邊緣像素相似而導致的錯誤分割,采用分割能量函數均值化的方法對算法進行優化,進一步提高圖像分割的準確度。
如圖1所示,GrabCut算法為目標圖像構造S-T網絡圖,圖像里的像素點作為圖中的點集,相鄰的像素通過邊相連,S為目標端點,T為背景端點,S與T連接所有點集后形成邊,對每條邊設置相應的權重,權值的大小則表現出相鄰像素的差異,圖像分割的目的就在于利用max flow/min cut算法[12]將邊緣部分進行分割,達到分割的目的。

圖1 S-T網絡圖
在框選出區域后,將選框以外的部分視為背景區域,反之為可能是前景的區域。然后通過計算前景GMM和背景GMM,對每一個像素的RGB值代入單個高斯模型進行計算,選取最大值的模型作為該像素點的歸屬,建立一個圖,對該圖求解最小割,如此循環直至收斂,完成圖像分割。
直方圖均衡化(Histogram Equalization)通過對圖像進行非線性拉伸的方式,減少大量像素較為集中在一個灰度級的情況,使像素灰度均勻分布,以實現對比度的增強。針對目標物體受光線影響,導致圖像部分區域過曝或者欠曝的問題,使用直方圖均衡化方法使局部像素灰度均勻分布。
直方圖均衡化的函數表達式如式(1):

其中n為圖像的總像素數,r為像素的灰度級r∈[0 ,1],r=1時表示像素為黑色,r=0時表示像素為白色;為離散灰度級,表示第k灰度級出現的概率,k=0,1,…,n-1。利用直方圖均衡化對圖像進行預處理,能夠平衡圖像在過度曝光或欠曝光部分的像素分布,直方圖均衡化效果圖如圖2所示。
對比圖2(a)和(b)可以看出,經過直方圖均衡化處理后的圖2(b)在欠曝光的部分,像素分布較原先更加均勻,大量像素集中在一個灰度級的情況有所減少。由于在保持圖像邊緣連續性不受影響的情況下,像素分布更加均勻,能夠有效提高圖像分割效率,減少錯誤分割。

圖2 直方圖均衡化效果圖
根據用戶選擇的目標,未被選擇的像素判定為背景像素CB,反之為“疑似目標”的像素CT,分別對CB和CT中的像素n初始化標記為αn=0和αn=1,其中 αn=0表示“疑似背景”像素,αn=1表示“疑似目標”像素。利用k-means算法[13]分別把屬于目標和背景的像素分類,并區分出K個高斯模型,其中一類是目標像素和疑似目標像素,另一類是背景像素和疑似背景像素。
采用RGB顏色通道為前景和背景分別建立k個高斯模型,kn∈{1 ,2…k},kn表示第n個像素對應于哪個高斯分量k,在計算某一像素是屬于前景還是背景的概率時,選取k個模型中概率最大的一個?;旌细咚鼓P停℅MM)計算公式如下:

單高斯函數[14]公式:

Π、μ、∑、χ分別表示高斯分量的權重,均值向量,協方差矩陣和RGB三通道向量。式(2)取負對數得到式(4):

其中 θ={π ( αn,k),μ( αn,k),∑( αn,k )},根據θ的三個參數π,μ,∑,計算像素的RGB值,通過判斷像素屬于前景還是背景來選擇將像素的值代入到哪一類GMM的每一個高斯分量中,求出該像素關于前景或背景的概率,選擇最大值對應的像素表示第kn高斯分量。計算區域能量項R計算公式如下:

GrabCut算法中使用歐式距離[15]計算能量邊界項,公式如下:

其中γ=50,C是相鄰顏色對的集合,像素m和n的差‖ bm-bn‖較低時,通過增大參數β來提高對比度。
原GrabCut算法中的Gibbs能量函數式(7)由式(5)和式(6)得到,公式如下:

考慮到圖像因環境因素干擾,可能導致目標圖像上的相似類像素比較分散,而非同類像素比較集中,造成錯誤分割,對原函數中的歐式距離公式進行均值化,根據每個聚類數據的均值,計算聚類中每個對象與均值的距離,根據最小的距離進行分割。歐式距離公式為

其中xi和yi是N維空間中的兩點,對式(8)進行均值化得到式(9):


由式(10)得到式(11):

最后對邊界項公式進行更新,得到優化后的邊界項函數,如式(12):

優化后的邊界項函數能夠更好地區分集中的非同類像素,更高精度地分割圖像。
改進算法后的系統流程圖如圖3所示。
1)預處理:攝像機采集視頻后,將每幀圖像輸入到系統進行直方圖均衡化處理,初步提高圖像的對比度。
2)初始化
(1)根據用戶交互,對背景像素n初始化標記為αn=0,對可能的目標像素初始化標記為αn=1。
(2)通過k-means算法分別把屬于目標和背景的像素區分為K類。

圖3 系統流程圖
3)迭代最小化
(1)計算每個像素對應的高斯分量,獲得π,μ,∑三個參數,求出該像素關于目標或背景的概率最大一個表示像素n屬于第kn個高斯分量。
(2)計算每個像素GMM的區域能量項R(α,k,θ,b)和經過均值化處理后的邊界能量項V(α,b),獲得能量E=(α,k,θ,b) 。
(3)對αn=1的區域構造S-T網絡圖,采用max flow/min cut算法對圖像進行分割。
(4)回到步驟(3)進行迭代運算,直到收斂。
4)圖像匹配
(1)輸出αn=1的圖像與模板進行匹配。
(2)完成注冊,輸出內容,對現實場景進行增強。
首先對圖像分割效果進行實驗。選擇三張彩色圖像,將本文提出的改進算法與Grabcut和文獻[10]中提出的基于二次分水嶺預分割的改進Grab?cut算法(An improved Grabcut algorithm based on quadratic watershed pre-segmentation)的分割效果分別進行比較。
圖4(b)中可以看出,GrabCut算法可以把建筑的輪廓大致分割出來,但是誤把原屬于前景的右下部分給分割出去了;由圖4(c)中可以看出,文獻[10]算法將house的整體輪廓分割出來,但是存在將前景部分當作背景分割出去的錯誤分割現象;圖4(d)中,改進后的算法在不影響原始圖片的邊緣紋理細節的情況下,較原始算法擁有更高的分割精度,目標邊緣更為完整,這對后續步驟中的增強現實系統的識別過程提供了較大幫助。

圖4 house分割結果
從圖5(b)可以看出GrabCut算法誤將大量背景像素當作前景像素分割出來;圖5(c)中,文獻[10]算法同樣出現了誤將背景當作前景分割出來的情況,且在雕像頭部以及手臂等較為精細的部分難以完成準確分割;圖5(d)中,本文算法大體上將前景物體分割出來,且過分分割和欠分割情況較少。

圖5 statue分割結果
從圖6(a)可以看出圖像中駝鹿在水中的倒影形成了偽目標;圖6(b)中,GrabCut算法誤將背景像素當作前景分割出來,且在鹿角部位存在欠分割;圖6(c)中,文獻[10]誤將偽目標當作前景分割出來;圖6(d)中,本文算法準確識別了前景圖像,但在鹿角部分存在欠分割,但相比于前兩種算法,本文算法更加分割準確率較高。

圖6 moose分割結果
本文通過分割圖像的分割精度、過分割率、欠分割率,這三個指標來對分割結果進行客觀比較,統計9幅圖片,像素大小均為288×192,編程軟件為Visual Studio2017,計算機視覺庫為Opencv3.4.3。綜合圖4、5、6的分析結果以及表1的統計數據,Grabcut算法的過分割情況較為嚴重,容易將背景像素誤判為前景像素分割進來,大大降低了圖像分割精度。文獻[10]算法的欠分割情況較為嚴重,容易將前景像素誤判為背景像素而分割出去,難以區分偽目標,并且在背景灰度級與前景相差較少的情況下,容易出現錯誤分割。本文算法相比于Grab?Cut和文獻[10]算法,平均運行時間相對較低,分割準確度較高,能夠較好地保持目標圖像的完整性,降低前景圖像邊緣像素與背景像素較為集中的影響,魯棒性高。

表1 不同算法的分割結果統計
以ARToolKit系統框架進行實驗,運行環境為64位Windows10操作系統,攝像機為30fps,分辨率640*480像素,軟件的編譯使用Visual Studio2017,使用MAYA2018建立三維模型,Unity呈現三維模型。
本文選擇光照正常、光照弱和受到部分遮擋這三種環境條件,分別對基于原始GrabCut算法和基于改進算法的增強現實效果進行比較分析。
圖7(a)中,由于光線較暗,背景與目標物對比度較低,系統難以分割出前景,出現無法完成增強現實的情況;圖7(b)中,在正常光照環境下,增強現實效果不受影響;圖7(c)中,前景受到一部分來自外界物體的遮擋,系統難以自動識別前景物體,無法完成增強現實。

圖7 采用GrabCut算法的增強現實

圖8 采用改進算法的增強現實效果
圖8(a)中,由于環境較暗導致目標與背景像素較為相似的情況,通過直方圖均衡化預處理,提高圖像的對比度,并使用改進后的GrabCut算法,進一步解決了前景與背景圖像的邊緣像素較為集中的問題,有效分割出前景,完成增強現實;圖8(c)中,在受到物體遮擋的情況下,利用GrabCut算法中的交互步驟,由用戶選擇需要識別的部分,系統根據用戶選擇的內容做進一步處理,較高程度地保證了物體的識別精度,完成增強現實。
現有的關于增強現實方面的圖像分割方法存在不適應戶外環境中對非標志性物體的識別、分割不準確、識別效率低等問題。文章提出對圖像進行直方圖均衡化預處理并對GrabCut算法中的邊界項函數均值化的新方法。在適當提高圖像對比度的基礎上,增強圖像邊緣像素,有效區分邊緣像素集中前景與背景像素,減少錯誤分割,最終實現對現實物體的增強。解決了原先算法不能夠對同類別像素較為分散或不同類別像素較為集中的圖像進行有效分割的問題,在增強現實運行中遇到的各種實時性干擾與變化下依舊能夠完成目標物體的分割識別與模板匹配任務。通過相關實驗,證明了增強現實系統中采用直方圖均衡化預處理的改進GrabCut算法能夠有效克服環境因素的影響,解決了增強現實在復雜環境條件下的實時性要求,獲得了較高的分割質量,改善了增強現實系統的性能。