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