何嶼彤,趙家龍,張雙龍,辜麗川,吳亞文,焦 俊*
(1.安徽農(nóng)業(yè)大學(xué)信息與計(jì)算機(jī)學(xué)院,安徽合肥230036;2.安徽省鳳陽縣畜牧獸醫(yī)局,安徽鳳陽233100;3.安徽泓森物聯(lián)網(wǎng)有限公司,安徽亳州236800)
在運(yùn)用計(jì)算機(jī)處理帶有病理變化的組織圖像時(shí),由于器官含有的水分,使得采集的樣本圖像中存在反光現(xiàn)象,會(huì)對(duì)病灶區(qū)域信息的提取產(chǎn)生干擾。如反光點(diǎn)會(huì)在分割腎白色斑點(diǎn)時(shí)引起混淆,因此需要通過圖像修復(fù)技術(shù)對(duì)圖像反光部分進(jìn)行處理。
數(shù)字圖像修復(fù)技術(shù)主要利用圖像中已知完好信息對(duì)破損區(qū)域進(jìn)行修復(fù)或是移除圖像中多余的目標(biāo)物體[1]。修復(fù)技術(shù)最早用于修復(fù)古老藝術(shù)品,現(xiàn)在已經(jīng)被用來處理各種數(shù)字圖像問題[2]。現(xiàn)有的圖像修復(fù)技術(shù)主要分為兩類[3]:一類是基于變分偏微分方程的圖像修復(fù)技術(shù),該方法的核心思想是通過待修復(fù)區(qū)域的圖像邊緣信息判斷出擴(kuò)散信息和方向,將待修復(fù)區(qū)域的周邊信息擴(kuò)散到待修復(fù)區(qū)域的內(nèi)部來進(jìn)行圖像修復(fù)。主要包括由Bertalmio 等[4]提出的(Bertalrnio,Sapiro,Caselles,Ballester,BSCB)模型,該模型從破損邊緣開始不停的迭代,沿著等照度線方向向內(nèi)收縮,直至破損區(qū)域修復(fù)完成;Chan 等[5]提出的(total variation,TV)修復(fù)模型和基于曲率驅(qū)動(dòng)擴(kuò)散(curvature driven diffusions,CDD)模型[6]等。此類方法在對(duì)細(xì)小劃痕等小面積信息缺失圖像修復(fù)效果很好,能夠保持圖像原有的結(jié)構(gòu)部分,但修復(fù)大區(qū)域破損圖像時(shí)會(huì)產(chǎn)生模糊現(xiàn)象且需要大量迭代運(yùn)算,速度慢。
另一類是基于紋理的圖像修復(fù)技術(shù),這類方法從人類的視覺感官出發(fā),目的是使修復(fù)結(jié)果更加自然完整,可以合成較好的紋理部分。代表方法有Criminisi 等[7]提出的基于樣本塊的圖像修復(fù)算法,該算法以待修復(fù)區(qū)域邊緣像素點(diǎn)為中心的樣本塊為對(duì)象,依次按照預(yù)先計(jì)算的優(yōu)先級(jí)順序在已知完好區(qū)域搜索最佳匹配塊并直接復(fù)制以進(jìn)行修復(fù)。
雖然Criminisi 算法在很多圖像復(fù)原領(lǐng)域被引用和改進(jìn)[8-12],但對(duì)于肉類反光,尤其是處理帶有病征器官圖片的示例幾乎沒有。其中劉鵬程等[13]就肉品反光問題作出應(yīng)用和改進(jìn),但處理的是人工添加反光區(qū)域,張彧龍[14]在處理豬肉眼肌反光時(shí)也引用了Criminisi 算法并加以改進(jìn),但其中通過設(shè)置閾值來提取反光區(qū)域的方法很難處理多批不同數(shù)據(jù),且評(píng)價(jià)標(biāo)準(zhǔn)不明確。
本文針對(duì)Criminisi 算法中人工標(biāo)記難以完全覆蓋的問題引入形態(tài)學(xué)閉操作,針對(duì)優(yōu)先權(quán)函數(shù)和置信度項(xiàng)可能為零的問題分別對(duì)優(yōu)先權(quán)和置信度項(xiàng)計(jì)算公式加以改進(jìn),并將改進(jìn)算法應(yīng)用于真實(shí)的帶有不同病征的豬腎、脾、肺反光圖像。
樣本是在動(dòng)物醫(yī)學(xué)專家做疾病檢測(cè)過程中,待病豬解剖后,取出所需的腎、脾、肺三個(gè)器官,放在白色背景下,選取光線良好的環(huán)境進(jìn)行拍攝,得到原始樣本圖片。為了減少背景對(duì)算法運(yùn)行效率的影響,在取得原始樣本圖片后對(duì)其進(jìn)行了裁剪。最終獲得背景相對(duì)較小,且器官清晰完整的樣本圖像。動(dòng)物醫(yī)學(xué)專家結(jié)合實(shí)驗(yàn)室理化檢測(cè)結(jié)果以及解剖觀察確定病豬所患疾病后,指出本文病豬腎、脾、肺樣本圖像中病灶區(qū)域以及其他特殊病征的位置。
Criminisi 算法是一種趨于等照度線的圖像采樣過程。算法主要由三個(gè)部分構(gòu)成:計(jì)算樣本塊優(yōu)先權(quán),搜索最佳匹配塊并填充以及更新置信度和待修復(fù)邊緣。圖1 是Criminisi 算法示意圖。其中:I表示整幅圖像;Ω表示圖中受損待修復(fù)區(qū)域;φ表示圖像中已知像素區(qū)域;δΩ表示填充邊緣,即修復(fù)起始的地方;p是填充邊緣上已知的優(yōu)先權(quán)最大的點(diǎn);Ψp是以p為中心的樣本塊(9×9)。
圖1 Criminisi 算法示意圖
以填充邊緣上的點(diǎn)p為中心的給定樣本塊Ψp的優(yōu)先權(quán)P(p)被定義為
其中:C(p)是置信度項(xiàng),表示Ψp中已知區(qū)域像素所占比重;D(p)是數(shù)據(jù)項(xiàng);分別被定義為:
其中:|Ψp|是Ψp的面積;α是歸一化因子(對(duì)于灰度圖像,α=255);np是在p點(diǎn)與填充邊緣δΩ正交的單位向量,即梯度法向量;代表等照度線向量,即點(diǎn)p灰度變化最小的方向,與點(diǎn)p處的梯度方向垂直。初始化時(shí),C(p)=0,?p∈Ω;C(p)=1,?p∈φ。
當(dāng)δΩ上所有樣本塊的優(yōu)先權(quán)都計(jì)算出來之后,首先找到優(yōu)先級(jí)最高的待修復(fù)樣本塊然后再已知區(qū)域φ中根據(jù)匹配準(zhǔn)則找到與最相似的樣本塊使用的匹配準(zhǔn)則為:
重復(fù)上述步驟,直到待修復(fù)區(qū)域Ω中的像素全部填充完畢。
Criminisi 算法對(duì)待修復(fù)區(qū)域采用人工的方法進(jìn)行標(biāo)記,以達(dá)到標(biāo)記區(qū)域與待修復(fù)區(qū)域形狀相似,且面積最小的原則[15]。往往選擇一種顏色用以進(jìn)行人工標(biāo)記,在算法運(yùn)行過程中,原本肉眼看不出問題的人工標(biāo)記部分,存在著有細(xì)小孔洞和標(biāo)記覆蓋不完全現(xiàn)象。針對(duì)這個(gè)問題,本文引入數(shù)學(xué)形態(tài)學(xué)中的閉操作。用結(jié)構(gòu)元B對(duì)集合A的閉操作,表示為A?B,定義如下:
其中:⊕、Θ 分別是形態(tài)學(xué)中的膨脹、腐蝕操作。即B對(duì)A的閉操作就是先用B對(duì)A進(jìn)行膨脹,緊接著用B對(duì)膨脹的結(jié)果進(jìn)行腐蝕。
數(shù)學(xué)形態(tài)學(xué)的閉操作可以用來平滑物體輪廓,彌合狹小間斷以及消除細(xì)小孔洞,適用于人工標(biāo)記上出現(xiàn)的問題。在處理時(shí),考慮到閉操作是處理二值化圖像或灰度圖像的,故本文首先將人工標(biāo)記原圖轉(zhuǎn)為二值化圖像,再選取適當(dāng)?shù)慕Y(jié)構(gòu)元對(duì)該二值化圖像進(jìn)行閉操作,最后將經(jīng)過閉操作處理后的標(biāo)記部分與原來的未標(biāo)記圖片進(jìn)行疊加,得到改進(jìn)的標(biāo)記圖片。
與之前的的算法比較,Criminisi 算法的新穎之處在于提出按優(yōu)先權(quán)來決定修復(fù)順序,修復(fù)順序的正確與否決定著最后的修復(fù)結(jié)果,這也使得優(yōu)先權(quán)的定義變得尤為重要[16]。從公式(1)中可知,Criminisi 算法中的優(yōu)先權(quán)是置信度項(xiàng)C(p)和數(shù)據(jù)項(xiàng)D(p)的乘積。置信度項(xiàng)保證了圖像的修復(fù)順序是從待修復(fù)區(qū)域外圍逐漸向其內(nèi)部擴(kuò)散,而數(shù)據(jù)項(xiàng)D(p)使修復(fù)按等照度線方向進(jìn)行,保證了圖像中結(jié)構(gòu)信息的傳播[17],二者相互制衡以確保按照恰當(dāng)?shù)捻樞蜻M(jìn)行修復(fù),但置信度項(xiàng)和數(shù)據(jù)項(xiàng)在實(shí)際應(yīng)用中會(huì)出現(xiàn)為零的情況。一方面,隨著修復(fù)的進(jìn)行,樣本塊所含已知區(qū)域信息會(huì)越來越少,置信度值會(huì)不斷減小趨向于零。另一方面,數(shù)據(jù)項(xiàng)也會(huì)在等照度線向量和梯度法向量垂直時(shí)出現(xiàn)等于零的現(xiàn)象。這些情況計(jì)算出來的優(yōu)先權(quán)將不再可信,修復(fù)順序也變得不可靠,因此本文不再使用原算法中置信度項(xiàng)和數(shù)據(jù)項(xiàng)的乘積,而采用二者的加權(quán)和
作為優(yōu)先權(quán)公式。既保留了兩者的制衡作用,又避免了因?yàn)閮?yōu)先權(quán)為零導(dǎo)致的修復(fù)順序出錯(cuò)問題。為使圖像的結(jié)構(gòu)部分優(yōu)先修復(fù),應(yīng)使數(shù)據(jù)項(xiàng)的權(quán)重大于置信度項(xiàng)的權(quán)重[18],即α<β。
置信度項(xiàng)表示了樣本塊的可信程度。從公式(2)可知,置信度值是待修復(fù)樣本塊中所包含的已知區(qū)域信息與樣本塊面積的比值,即置信度項(xiàng)是一個(gè)大于0、小于1 的值[19]。這也就意味著包含已知信息越多的樣本塊置信度值越高,也就越早被修復(fù)。但從公式(5)可知,每修復(fù)一個(gè)樣本塊,該樣本塊與待修復(fù)區(qū)域中共有的像素點(diǎn)的置信度值將被更新為該樣本塊中心點(diǎn)的置信度值。隨著修復(fù)的進(jìn)行,置信度值將衰減并趨向于0,此時(shí)無論數(shù)據(jù)項(xiàng)是大是小,計(jì)算出的點(diǎn)的優(yōu)先級(jí)值都趨向于0,導(dǎo)致修復(fù)失敗,這種現(xiàn)象被稱為“效果丟失”[20]。針對(duì)這個(gè)問題本文引入正規(guī)化函數(shù)Rc(p)對(duì)置信度項(xiàng)C(p)進(jìn)行改進(jìn),改進(jìn)后公式如下:
其中:ω是正則化因子,改進(jìn)后的置信度值將被限定在ω和1 之間。
為驗(yàn)證改進(jìn)后算法的有效性,在3.4 GHz 處理器4 GB 內(nèi)存的計(jì)算機(jī)上,利用Matlab2015b 軟件進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)圖片大小均為560×420。實(shí)驗(yàn)總共分兩塊:第一塊是使用原Criminisi 算法分別處理人工標(biāo)記和改進(jìn)后標(biāo)記并分析結(jié)果;第二塊是對(duì)比原Criminisi 算法、改進(jìn)后Criminisi 算法、TV 算法處理同一組圖片的結(jié)果。
圖2 中展示了人工標(biāo)記可能存在的問題,圖2(a),2(d),2(g)分別是腎、脾、肺的原始圖像,圖2(b),2(e),2(h)分別是腎、脾、肺的人工標(biāo)記圖,圖2(c),2(f),2(i)分別是腎、脾、肺的人工標(biāo)記使用原Criminisi 算法的過程圖。從中可以看到人工標(biāo)記圖上并沒有明顯的孔洞現(xiàn)象,但在使用原Criminisi 算法處理時(shí)卻有如圖2(c)中的細(xì)小孔洞。尤其在待修復(fù)區(qū)域較大時(shí),這種問題更為顯著。如圖2(f)中存在邊緣未完全覆蓋以及孔洞現(xiàn)象,圖2(i)中也有很細(xì)小的孔洞。
圖2 人工標(biāo)記及其處理過程圖
圖3 給出了形態(tài)學(xué)中閉操作對(duì)人工標(biāo)記進(jìn)行改進(jìn)的過程圖作以及改進(jìn)后標(biāo)記。圖3(a),3(e),3(i)分別是對(duì)腎、脾、肺人工標(biāo)記進(jìn)行二值化處理的結(jié)果圖,圖3(b),3(f),3(j)分別是對(duì)腎、脾、肺人工標(biāo)記二值化圖進(jìn)行閉操作的結(jié)果圖,圖3(c),3(g),3(k)分別是腎、脾、肺改進(jìn)后的標(biāo)記圖,圖3(d),3(h),3(l)分別是腎、脾、肺改進(jìn)后標(biāo)記圖在原Criminisi 算法中運(yùn)行時(shí)的過程圖,從圖3(d),3(h),3(l)中可以看到已經(jīng)沒有孔洞,標(biāo)記區(qū)域也已完全覆蓋。
為進(jìn)一步說明該操作的有效性,本文結(jié)合圖4中人工標(biāo)記和改進(jìn)標(biāo)記在原Criminisi 算法運(yùn)行的結(jié)果圖以及表1 中列出的PSNR 值進(jìn)行分析。
圖3 改進(jìn)標(biāo)記的處理圖
圖4 Criminisi 算法處理人工標(biāo)記和改進(jìn)標(biāo)記結(jié)果對(duì)比圖
表1 Criminisi 算法處理人工標(biāo)記和改進(jìn)后標(biāo)記結(jié)果的PSNR 值對(duì)比表
圖4(a),4(d),4(g)分別是對(duì)腎、脾、肺帶反光的原圖,圖4(b),4(e),4(h)分別是腎、脾、肺使用人工標(biāo)記在原Criminisi 算法中的處理結(jié)果,圖4(c),4(f),4(i)分別是利用腎、脾、肺的改進(jìn)標(biāo)記在原Criminisi 算法中的處理結(jié)果。將圖4(b)中對(duì)腎的人工標(biāo)記的處理結(jié)果和圖4(a)的腎原圖對(duì)比可以看到,圖4(b)中存在大量與反光點(diǎn)相似的像素點(diǎn),這是由于標(biāo)記覆蓋不完全,未被覆蓋的反光區(qū)域被當(dāng)做已知信息填充到待修復(fù)區(qū)域的結(jié)果。而圖4(c)中改進(jìn)后標(biāo)記的處理結(jié)果則能較好地滿足人類視覺心理需求,其中的反光區(qū)域在修復(fù)后更接近周邊已知區(qū)域。圖4(e)是使用脾的人工標(biāo)記進(jìn)行處理的結(jié)果,在左下角也存在待修復(fù)區(qū)域被未被標(biāo)記的反光區(qū)域填充的現(xiàn)象。圖4(f)是改進(jìn)后脾的標(biāo)記的處理結(jié)果,圖中待修復(fù)區(qū)域在修復(fù)后與周邊無反光區(qū)域在顏色、紋理上都比較接近。另外,從表1 中也能夠看到使用改進(jìn)后腎、脾標(biāo)記的PSNR 值要優(yōu)于原始人工標(biāo)記運(yùn)行得到的結(jié)果。而圖4(h)和圖4(i)中肺的人工標(biāo)記和改進(jìn)后標(biāo)記的處理結(jié)果沒有明顯差別,從表1 中也能看到二者的PSNR 值也相差無幾。這是由于圖3(i)中本文引用的肺的人工標(biāo)記問題主要在于中部偏右上區(qū)域的極小孔洞。這說明人工標(biāo)記的問題雖然不一定存在于每一張待修復(fù)圖中,但為了確保修復(fù)結(jié)果不會(huì)出現(xiàn)如圖4(b)和圖4(e)這樣的明顯錯(cuò)誤,對(duì)人工標(biāo)記進(jìn)行閉操作是很有必要的,本文后面處理的標(biāo)記圖片都已預(yù)先進(jìn)行閉操作以達(dá)到更優(yōu)效果。
文獻(xiàn)[21]指出當(dāng)α大于β時(shí),強(qiáng)邊緣等結(jié)構(gòu)性信息可以得到較好的恢復(fù),本文在其基礎(chǔ)上采用α取0.35,β取0.65 的方案。正則化因子ω一般為0.7,本文在該范圍內(nèi)以0.1 為間隔進(jìn)行上下調(diào)節(jié),表2 給出了改進(jìn)后算法使用不同ω值得到的PSNR 值。從中可以看出,當(dāng)ω取0.6 時(shí)結(jié)果最佳。因此最終選擇ω取0.6,α 取0.35,β取0.65。
表2 改進(jìn)后算法使用不同ω 值PSNR 值對(duì)比表
圖5 給出了參數(shù)ω取0.6,α取0.35,β取0.65時(shí)改進(jìn)算法,原Criminisi 算法以及TV 算法迭代50 000 次的結(jié)果圖對(duì)比,并在表3 中給出了三者運(yùn)行時(shí)間和PSNR 值。
為了方便比較,圖5 中圈出了原算法和改進(jìn)算法對(duì)應(yīng)區(qū)域并標(biāo)好序號(hào)。序號(hào)1 對(duì)應(yīng)的位置中改進(jìn)算法效果要明顯優(yōu)于原算法結(jié)果,模糊現(xiàn)象減輕。序號(hào)2 處原算法人工修復(fù)痕跡明顯,改進(jìn)算法處理結(jié)果則更加自然,紋理信息保持的更好。序號(hào)3,序號(hào)4 位置原算法仍存在像素值類似于反光點(diǎn)的像素點(diǎn),改進(jìn)算法則幾乎和無反光區(qū)域無異。序號(hào)5 處原算法的處理結(jié)果在紋理上與周邊區(qū)域不符,出現(xiàn)小凹陷,而改進(jìn)算法填充結(jié)果與周邊區(qū)域相同,均是粉白色平坦區(qū)域。綜上,改進(jìn)后的算法和Criminisi 算法在紋理信息的保持以及處理腎、脾、肺上的反光區(qū)域時(shí)結(jié)果均要優(yōu)于TV 算法。改進(jìn)算法在填充效果上要優(yōu)于原Criminisi 算法。
表3 Criminisi 算法、改進(jìn)后算法、TV 算法對(duì)比
圖5 Criminisi 算法、改進(jìn)后算法、TV 算法處理結(jié)果對(duì)比圖
針對(duì)原Criminisi 算法的不足之處,本文利用數(shù)學(xué)形態(tài)學(xué)閉操作平滑物體輪廓,彌合狹小間斷以及消除細(xì)小孔洞的特點(diǎn)對(duì)人工標(biāo)記進(jìn)行了改進(jìn),使得修復(fù)結(jié)果更好;引入置信度項(xiàng)和數(shù)據(jù)項(xiàng)的加權(quán)和作為優(yōu)先權(quán)并引入正規(guī)化函數(shù)改進(jìn)置信度函數(shù),避免了出現(xiàn)填充順序不可靠對(duì)修復(fù)結(jié)果產(chǎn)生不好影響的問題。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的算法相比于原算法在修復(fù)病理組織反光圖像時(shí),視覺效果以及PSNR 值上都有一定優(yōu)化,紋理信息保持的要更好,使得修復(fù)結(jié)果更加自然。但改進(jìn)算法在處理肺的邊緣時(shí)效果不明顯且在時(shí)耗上不夠理想,這將是需要通過今后進(jìn)一步研究解決的問題。