陳甦欣, 晏文彬, 呂華鑫
(合肥工業(yè)大學 機械工程學院,安徽 合肥 230009)
隨著我國科學技術的不斷發(fā)展,計算機視覺技術和圖像處理需求越來越突出,其中圖像分割是圖像處理中最基礎的環(huán)節(jié)。圖像分割是指為了識別和分析目標對象,根據(jù)灰度、形狀以及紋理等特征的不同,將它們從復雜背景中提取和分離出來的過程。近年來各種圖像分割方法被提出,其中基于變分水平集的活動輪廓模型不僅可以有效處理拓撲結構的變化,而且能夠在分割過程中保持曲線的連續(xù)性和光滑性,成為近年研究熱點。水平集分割的基本思想是:首先根據(jù)圖像特征為演化曲線定義一個能量泛函,為了極小化該能量泛函,常通過變分法和梯度下降法得到控制水平集演化的偏微分方程;然后用數(shù)值求解方法解此方程,方程的數(shù)值解即為所要的分割曲線[1-5]
隨著智能化設備的逐漸普及,圖像分割在醫(yī)學影像檢測系統(tǒng)、交通控制系統(tǒng)以及視頻目標監(jiān)控跟蹤等領域均有應用,此時圖像分割速度的快慢程度直接影響到后續(xù)的處理過程。然而,基于變分水平集的活動輪廓模型由于其極小化過程中所使用的梯度下降法收斂性較差[6-7],導致模型演化速度較慢,難以滿足圖像分割在實際應用時的實時性要求。
本文以Chan和Vese的基于區(qū)域的水平集模型Chan-Vese(CV)模型[8]與文獻[2]的距離保持懲罰項為例,使用基于熱重啟學習率的Nesterov加速梯度(Nesterov accelerated gradient,NAG)算法代替演化過程中使用的梯度下降法,提出了一種快速圖像分割方法。與CV模型原本的分割方法相比,該方法能夠更快速地實現(xiàn)對圖像的分割。在同樣的初始條件下,本文算法對醫(yī)學圖像等復雜圖像和一些輪廓比較分明的圖像都能夠準確且快速地得到分割結果。
CV模型通過計算圖像目標區(qū)域與背景區(qū)域的灰度信息來控制曲線的拓撲變化,使得復雜結構的目標得以準確分割且對初始輪廓有較高的魯棒性。CV模型的能量泛函如下:
F(c1,c2,C)=μLength(C)+
νArea(inside(C))+
(1)
其中:μ≥0;ν≥0;λ1、λ2>0為每個能量項的權重系數(shù);Length(C)為閉合輪廓曲線的長度;Area(inside(C))為曲線內部區(qū)域的面積;c1、c2為目標區(qū)域與內部區(qū)域的平均灰度值。
通過變分法和梯度下降法極小化能量泛函,得到控制水平集函數(shù)演化的偏微分方程,即
(2)
實際運用中,CV模型的演化公式在演化一段時間后會使水平集失去光滑性和距離函數(shù)的性質。為避免該問題,應在演化一定時間后對水平集函數(shù)重新初始化。由于重新初始化存在復雜時間成本,為了消除重新初始化的需要,結合一個距離保持懲罰項[9],形成新的演化方程如下:
(3)
由于增加了距離保持項,上述演化方程可以通過簡單的有限差分進行數(shù)值實現(xiàn),即
(4)
原始CV模型的水平集分割利用梯度下降法一步一步地改變水平集曲線,使得上文所述能量泛函極小化從而得到分割結果。而梯度下降法在演化時收斂較慢,并且極易陷入局部極小值,從而得到錯誤的分割。
NAG算法[10]的基本思想是在計算參數(shù)梯度時超前考慮后一步位置的梯度而不僅僅是當前位置的梯度,因此可以預先判斷更新方向從而增加迭代的速度。NAG算法的公式如下:
di=βdi-1+g(θi-1-αβdi-1)
(5)
θi=θi-1-αdi
(6)
其中:β為經對上一次更新的衰減權重;α為學習率;g(θ)為目標函數(shù)在θ處的梯度。NAG算法的更新量考慮了往后一步θi-1-αβdi-1位置的梯度。NAG算法考慮了二階導數(shù),因而會比梯度下降法收斂得更快。NAG算法圖解如圖1所示。
圖1 NAG算法圖解
因為傳統(tǒng)的梯度下降法和NAG算法學習率都是恒定的,在整個迭代過程中均以確定的步長來進行更新,所以存在2個不可避免的問題:① 若步長過大,則容易在最小值處反復地震蕩從而無法有效地收斂;② 若步長過小,則會增加過多的迭代時間來達到收斂,而且在陷入陡峭的局部極小值時無法跳出。
為了解決固定學習率引起的上述問題,本文基于重啟學習率和余弦退火的思想讓學習率隨迭代過程按照一定的余弦規(guī)律進行周期性變化,并且每隔一段時間重新設置初始值。為了更好地收斂,本文使用一種熱重啟的方式,即使得每次重啟的間隔逐次遞增,從而讓快收斂時學習率不會再回升而是逐漸減小,從而準確收斂到最優(yōu)解。
熱重啟學習率根據(jù)迭代次數(shù)變化的情況如圖2所示。
圖2 熱重啟學習率圖解
定義熱重啟學習率的公式如下:
(7)
水平集方程中的各參數(shù)在本文演化算法中的定義如下:
(1) 水平集函數(shù)φ。視為NAG算法中的θ,通過不斷更新θ來極小化能量泛函。
(3) 時間步長Δt。視為NAG算法中的學習率α,其值按照(7)式來定義。本文實驗取Δt的最小值為0.02,最大值為1.0,初始值為1.0。
本文算法的主要參數(shù)設置選取為:能量項權重系數(shù)λ1=λ2=1,μ1=1,μ2=0.000 001×2552,ν=0。
本文的分割算法流程如圖3所示。
圖3 本文分割方法流程
首先對圖像進行一定的預處理,高斯平滑去噪,圖像增強,提高對比度;然后建立水平集演化方程,編寫演化過程代碼。本文算法的演化實現(xiàn)過程如下:
(1) 設動態(tài)變化時間步長為Δt,Δt中使用上述的熱重啟公式來定義。通過鼠標交互函數(shù)手動框選選擇合適的初始水平集函數(shù)φ0和初始速度ν0。
(2) 若達到停止準則(指定的迭代次數(shù)或者完全收斂),則終止算法;否則轉步驟(3)。
本文實驗中將使用梯度下降法與使用熱重啟學習率的NAG算法進行分割結果對比。用2種算法分別處理圖像,比較其得到相同分割結果時的CPU處理時間。本文實驗環(huán)境為:Windows10系統(tǒng),Intel Core i7,16 GiB內存(RAM),實驗平臺為Visual studio 2017。使用了C++編程語言,調用了OpenCV庫。
由于水平集分割適用性廣,本文分別對不同形狀的圖像進行分割。本文算法對噪聲圖像、五角星圖像和汽車圖像進行分割的結果如圖4所示。
圖4 本文算法的不同形狀圖像分割
為了驗證本文算法對復雜圖像的分割效果,本文分別對肺部CT圖像、血管圖像和細胞圖像進行了分割,分割結果如圖5所示。
圖5 本文算法的復雜圖像分割
實驗結果顯示,本文算法的演化速度對比梯度下降法有較大提升,大大減少了迭代次數(shù),并且?guī)缀醪粫萑刖植繕O小值。2種算法的分割速度見表1所列。
表1 算法分割速度對比
從表1可以看出,用改進后的NAG算法替代傳統(tǒng)梯度下降優(yōu)化方法,6張圖片的分割速度均提升了30%以上,這說明用本文算法迭代水平集函數(shù)能夠使圖像分割在時效性上有較大的提升。
分割結果的精確度是驗證分割算法效果的主要準則,為了量化分割結果的精確程度,本文使用ground truth(GT)圖像進行分割圖像的結果評估。
為了獲得直觀的對比,本文使用手繪分割邊緣的圖像作為GT圖像,將結果圖像分別與對應GT圖像計算相應的分割精度(分割準確像素點數(shù)占GT圖像像素點數(shù)的比率),計算公式為:
(9)
計算過分割率(分割在GT圖像參考面積之外的像素點的比率)和欠分割率(分割在GT圖像參考面積之中欠缺的像素點的比率)。結果評估見表2、表3所列。
表2 梯度下降法實驗圖像結果評估
表3 本文方法實驗圖像結果評估
從表2、表3的數(shù)據(jù)對比可以看出,改進后的迭代算法對6張圖像其中4張的分割精度在95%之上,相較于用傳統(tǒng)的梯度下降法來進行分割迭代,使用熱重啟學習率后的NAG算法在圖像分割準確度上有較大提升。
本文針對梯度下降法的收斂性差、易陷入局部極小值等特點,提出一種基于熱重啟學習率的NAG算法的圖像分割方法,建立了帶有距離懲罰項的CV模型,使用NAG算法替代梯度下降法對水平集函數(shù)進行演化,并且用熱重啟學習率的方法設置迭代步長。實驗結果表明,基于熱重啟學習率的NAG算法來演化水平集函數(shù)相比梯度下降法能夠有效地提高分割速度。對于不同形狀的圖像和復雜的醫(yī)學圖像等,本文的改進算法不僅能獲得平滑的水平集曲線以及分割準確的結果圖像,還縮短了超過30%的分割時間,能夠更好地滿足對圖像分割實時性的要求。