王 茜,何小海,吳曉紅,吳小強,滕奇志
(四川大學 電子信息學院 圖像信息研究所,四川 成都 610065)
圖像分割是圖像處理的重要手段之一[1],是將圖像分為不同的區域, 區域內具有一定的相似性,不同區域之間的特征差異較為明顯。 2001 年,Boykov 等[2]提出 GraphCut 算法,用戶在待分割圖像背景和前景上畫線,指明少量前景像素和背景像素,算法建立s-t 圖,利用最小割最大流實現圖像分割。 GraphCut 算法采用灰度直方圖,無法分割彩色圖像。針對該問題,Rother 等[3]提出 GrabCut 算法,用戶用矩形框標記前景位置,通過k-means 將像素聚類為 k 類,初始化 k 個 GMM 模型,構建能量函數并利用該函數對圖像進行分割。 由于 GrabCut 算法操作簡單,分割精度較高而被廣泛關注和應用,國內外的許多學者對該算法進行了改進。 周良芬等[4]采用二次分水嶺對梯度圖像做預處理,增強圖像邊緣點,再利用熵的特性優化能量分割函數,提高圖像分割精度,但是增加了算法的復雜程度。 董茜等[5]通過SLIC 超像素算法對圖像進行分割,利用分割的超像素圖建立加權圖,減少節點數,提高分割效率,但傳統SLIC 在紋理明顯處會出現不規則超像素塊。 白雪冰等[6]將圖像從 RGB 空間轉化到 Lab 空間, 再利用 SLICO 算法對圖像進行預處理, 改善GMM 模型參數,使分割不受背景凹凸紋理的干擾,可優化分割,但是仍然存在少部分過分割的問題。楊小鵬等[7]采用 Faster R-CNN[8]減少用戶交互,融入圖像位置信息提高GrabCut 分割效果,但對紋理復雜的圖像分割效果無明顯改善。 劉靜等[9]針對背景復雜、細節豐富的皮影提取問題,采用相對總變差平滑的方法優化GrabCut 分割,由于算法具有交互性,主觀的選取會影響分割結果。 詹琦梁等[10]利用Mask RCNN 算法對待分割圖像進行初步分割,再結合SLIC 超像素分割得到的超像素塊,獲得初始三元圖,最后利用GrabCut 算法對其進行分割,客觀上提高了分割精確度,卻消耗了更多的運行時間。
針對以上對特征不明顯、紋理復雜圖像分割效果不好且用戶操作過多等問題,本文提出一種結合圖像增強、目標檢測和改進k-means 聚類的GrabCut 算法。
GrabCut 是對 GraphCut 的改進,是交互式分割,其定義了吉布斯能量函數,通過求解能量函數中的min-cut,對圖像進行分割。 下式是能量函數表達式:

GrabCut 需要用戶用矩形框標注感興趣的區域,框外的圖像定義為背景,框內的像素被定義為可能的背景和可能的前景。 通過k-means 算法將矩形框內的像素聚類為 k 類,初始化 GMM 中 k 個模型。 按式(2)計算矩形框中像素的RGB 值,判斷像素屬于哪個高斯分量模型:

式中,θ=(μ,δ2),其中,μ 為均值,δ2為方差。
區域數據項表示某個像素屬于背景或者前景的概率的負對數,按式(3)進行計算:


確定每個像素屬于前景和背景的概率之后,按式(4)計算平滑項:

式中,m,n 表示像素坐標;C 表示相鄰顏色對的集合;dis(m,n)-1表示相鄰像素之間的歐幾里得距離,此 處取 1;β=(2〈(zm-zn)2〉)-1,〈·〉表 示圖像樣 本 的期望。
根據吉布斯能量項,構建 s-t 圖,通過式(5)最大流/最小割對圖像進行分割:

圖像上某個像素的紋理特征是指該像素與其領域內點的關系,不同的物體具有不同的紋理特征,根據紋理特征能對圖像進行更好的分類。 本文采用Ojala 提出來的描述圖像紋理特征的 LBP 算子[11],該算子具有旋轉不變性和灰度不變性等優點。
下式為LBP 的特征定義:

式 中,gc表 示中心 點 像 素 值 ;g1~g8表 示 八 領 域 像素值。
以 3×3 模板為單位,將中間像素 gc作為閾值,若八領域的像素值大于gc,標記該像素點為 1,否則標記為 0。 經過比較可產生一個 8 位二進制數,轉化為十進制則得到中間像素 LBP 值,LBP 值反映該點的紋理信息。 按下式計算:

由于GrabCut 是用戶交互式圖像分割算法,為減少操作,本文利用YOLOv4[12]進行目標檢測,輸出前景。 YOLOv4 是 YOLO3 的 提升。 圖 1 是前景目 標檢測的組成部分。

圖1 YOLOv4 網絡結構
在輸入端中加入Mosaic 數據增強等,進而豐富檢測數據集,提高網絡魯棒性。 主干網絡中則運用了各種各樣的新方式,包括 CSPDarknet53、Mish 激活函數和 Dropblock。 CSPDarknet53 是 CSPNet 的借鑒,包含 5 個 CSP 模塊,目的是增強 CNN 學習能力,降低計算和內存成本。 Dropblock 是為了緩解過擬合。Neck 模塊采用 SPP 模 塊 、FPN+PAN 結構。 SSP 能增加主干特征接收范圍,融合多尺度特征。 FPN+PAN結構能夠從不同主干聚合不同檢測層的參數。Prediction 中采用 CIOU_Loss 作為目標檢測任務的損失函數,使預測框更精準。
本文采用COCO2017 數據集,包含人、鳥、車、飛機、交通燈等90 類待識別物體,實驗選用人、花、鳥、飛機、樹、葉六類作為訓練集。 采用 MSRA10K 作為測試集,利用 YOLOv4 檢測前景目標,標注其矩形框,從而減少了用戶操作。
在 GrabCut 原始算法中,k-means 算法只對圖像的顏色信息進行了聚類,下式是原始像素特征:

式中,zR,zG,zB表示像素點 xi的 RGB 分量值。
該特征單一,容易導致圖像在初始分類像素分類錯誤。 考慮到圖像整體信息,在聚類時融合圖像的位置信息和紋理特征信息,優化GMM 模型參數,下式是優化后的特征:

式中,W,H 表示圖像的寬和高;zx,zy表示像素點 xi在圖像中的位置;zLBP表示像素點 xi的 LBP 紋理特征值。
圖2 是圖像聚類效果對比,在第一幅對比圖中,原始算法中花瓣邊緣處和花瓣中心大部分被分為兩個高斯分量, 改進后花朵整體基本處于一個高斯分量。在第二幅對比圖中,原始算法楓葉整體分布雜亂,在改進后,像素分配的高斯分量更合理了。 從對比中可以看出, 添加像素位置信息和紋理特征信息之后,能合理分配像素高斯分量,有效減少算法迭代次數。

圖2 聚類效果對比
本文算法首先使用基于奇異值分解和引導濾波的圖像增強法[13]對特征不明顯的圖像進行改善。 然后,采用YOLOv4 模型標記前景圖像矩形框位置。 將圖像像素位置信息和LBP 算子提取的像素紋理特征信息融入 k-means 算法,優化 GMM 模型參數,改進GrabCut 算法。利用分割圖像掩膜獲得原始分割圖像,并做邊緣平滑處理。 本文算法框圖如圖3 所示。

圖3 GrabCut 改進后的算法框圖
本文算法首先對特征不明顯的圖像進行圖像增強,再利用YOLOv4 輸出待分割圖像前景所在位置矩形框,將圖像中像素的位置信息和由LBP 算子提取的像素紋理信息融入k-means 聚類中,優化GMM 模型參數,完成對圖像的分割。
本文實驗步驟如下:
(1)通過 Max-RGB 模型[14]得到圖像初始光照分量,以 3×3 為模板,對圖像進行奇異值分解,取最大奇異值作為中心點光照。 再利用初始光照分量進行引導濾波,得到增強圖像Len。
(2)將圖像 Len送入 YOLOv4 模型中,輸出目標矩形框位置。
(3)在 k-means 聚類中融入圖像 Len的像素位置信息和紋理特征信息,利用已經確定的背景像素、可能的前景和可能的背景像素初始化GMM 模型參數。
(4)利用 max-flow 算法求得 min-cut,迭代優化GMM 模型參數,分割圖像 Len,得到前景圖像 Lf。
(5)對圖像 Lf進行閾值分割,獲取前景圖像掩膜Lmask。
(6)掩膜圖像 Lmask與原始圖像 L 結合,得到分割圖像 Lse。
(7)對圖像 Lse做平滑處理,改善圖像質量。
3.3.1 實驗結果分析
從 MSRA10K 數據集中選取 YOLOv4 訓練類別的圖像,用 GrabCut 原始算法、文獻[15]算法和本文算法對圖像進行分割, 并對本文算法進行評估。 圖4是不同算法分割對比圖。

圖4 不同算法分割對比
第一組是將由花朵組成的愛心從背景木板分割開,圖像前景背景的紋理都較為復雜,GrabCut 原始算法和文獻[15]都誤將模板上的缺陷劃為了背景,而本文算法則較為完整地分割出前景圖像。 第二組是分割棒球手和球場,GrabCut 原始算法將棒球員的手錯誤地劃分為背景,文獻[15]對手的細節部位處理不到位,相比之下,本文算法對棒球手的部位手分割更為細致。第三組是區分鷹和海面,GrabCut 原始算法、文獻[15]和本文算法都獲得了很好的分割效果,但是本文算法對鷹邊緣的分割效果勝于對比文獻。
3.3.2 在巖石分割中的應用
圖5 是將本文算法應用于巖石的分割。 由于本文算法考慮了巖石紋理和背景紋理的區別,避免了分割之后空洞的產生,但是本文算法仍然需要進一步的改進,以提升分割效果。

圖5 實際應用對比圖
分割是圖像處理中重要的一部分,精確分割感興趣的區域有利于后續工作的開展,例如將分割運用于巖石的識別和三維重建,有利于巖石標本圖譜的構建和數字化存儲巖石標本。
針對GrabCut 算法對特征不明顯、紋理復雜的圖像分割效果不佳的問題,本文提出了基于GrabCut的改進分割算法。 首先,對待分割的圖像進行預處理圖像增強,增強圖像對比度,避免圖像在分割時出現空洞;然后,利用YOLOv4 對圖像前景目標所在位置進行標記,降低用戶交互復雜度;其次,對GrabCut 算法進行改進,從圖像整體信息考慮,融合圖像位置信息和紋理特征信息,分割圖像;經處理獲得前景圖像的掩膜,再與原圖融合,得到原始前景圖像;最后對圖像邊緣進行平滑處理。 經實驗表明,本文算法能夠有效地提高圖像分割的準確度和可靠性。