王玉璽 陳健美
(江蘇大學計算機科學與通信工程學院 鎮(zhèn)江 212013)
虹膜邊緣檢測是虹膜區(qū)域分割的關(guān)鍵環(huán)節(jié),而虹膜區(qū)域分割又是虹膜識別中的重要步驟,虹膜識別過程首先必須將虹膜區(qū)域從人眼圖像中分割出來,而虹膜區(qū)域就是瞳孔和鞏膜之間的類似圓環(huán)區(qū)域,虹膜邊緣檢測實際上就是根據(jù)虹膜區(qū)域與周圍區(qū)域的灰度差異來確定虹膜的內(nèi)外邊界。虹膜區(qū)域邊緣檢測的精度會影響虹膜分割的準確性,進而影響虹膜識別的準確率[1~2]。
邊緣是不同物體之間或者同一物體不同區(qū)域之間的分界線,邊緣對應(yīng)于圖像的灰度變化或者灰度較高或者較低的區(qū)域,是細節(jié)信息,為了獲得邊緣位置,需要采用邊緣檢測方法增強圖像邊緣,以便將感興趣區(qū)域分割出來。傳統(tǒng)的邊緣檢測算子有Sobel,Prewitt,Roberts,Laplacian 和Kirsch 等[3~4]。這些邊緣檢測算子根據(jù)灰度圖中相鄰區(qū)域之間灰度值的變化,采用差分近似微分數(shù)學方法進行邊緣檢測。這些算子結(jié)構(gòu)簡單,邊緣檢測速度較快,但容易受到噪聲的影響,抗噪聲能力較弱[5~6],若在虹膜邊緣檢測中應(yīng)用這些算子,將會出現(xiàn)干擾邊緣,邊緣不連續(xù)或者虹膜圖像細節(jié)丟失等缺點,邊緣檢測效果不理想。
Canny J F 在1986 年提出了邊緣性能評估的三準則,并在其基礎(chǔ)上設(shè)計了Canny 算子。Canny 算子是目前為止在圖像領(lǐng)域中最有效的邊緣檢測方法之一,該算子對圖像進行濾波和梯度運算之外的邊緣細化和連接處理,邊緣定位精度高,但自適應(yīng)性和靈活性相對較差[7~8]。近些年來許多學者對傳統(tǒng)Canny 算子的缺點進行了改進。文獻[9]Hao G等提出在獲取圖像的梯度圖像時,用3×3 模板代替?zhèn)鹘y(tǒng)的2×2 模板,梯度圖像的質(zhì)量得到提升。文獻[10]趙巖等用半像素插值方法將已改進的3×3 模板擴展為5×5 模板,并利用歸一化自相關(guān)最大值的方法判斷邊緣方向,緩解了在檢測邊緣過程中出現(xiàn)假邊緣的現(xiàn)象。文獻[11]M.Nikolic 等根據(jù)醫(yī)學超聲圖像的特征,提出用中值濾波器代替?zhèn)鹘y(tǒng)Canny算子中的高斯濾波器,被證明在內(nèi)臟器官邊緣檢測上是成功的。文獻[12]李健等將Canny 算子中的高斯濾波器改為均值濾波器,在核磁共振圖像邊緣檢測中取得了較好的結(jié)果。文獻[13]L.Yuan 等提出根據(jù)局部圖像像素值變化的程度自適應(yīng)地改變高斯濾波器中的空間尺度系數(shù)σ。文獻[14]石桂名等用Canny 算子檢測遙感圖像時,用Ostu 方法自適應(yīng)地指定閾值,檢測到的邊緣更連續(xù),并且可以減少假邊緣。文獻[15]Chikmurge D 等用Canny 算子檢測醫(yī)學數(shù)字圖像的邊緣時,引入Ostu方法自適應(yīng)確定閾值。
本文針對虹膜圖像的多樣性、復(fù)雜性以及注重邊緣細節(jié)等特點,在分析和研究傳統(tǒng)Canny 算子以及各種改進算法的基礎(chǔ)上,首先采用中值濾波對虹膜圖像進行預(yù)處理,消除明顯的光斑和睫毛等椒鹽顆粒噪聲。其次,根據(jù)虹膜圖像的噪聲分布情況,進行自適應(yīng)地高斯平滑濾波。然后根據(jù)虹膜圖像的幾何結(jié)構(gòu)特征,引入四個方向的Sobel 算子得到虹膜的梯度圖像圖,最后根據(jù)Ostu方法自適應(yīng)地確定圖像的分割閾值。實驗結(jié)果表明,本文算法針對虹膜圖像邊緣的檢測取得了較好的檢測效果。
Canny 算子在邊緣檢測中基于以下的最優(yōu)準則:
1)低失誤概率,既要少將真正的邊緣丟失也要少將非邊緣判為邊緣;2)高位置精度,檢測出的邊緣應(yīng)在真正的邊界上;3)對每個邊緣有唯一的響應(yīng),得到的邊界為單像素寬[16~17]。
Canny 邊緣檢測器是一種多級算法,用于識別圖像中的各種邊緣。它的性能非常好,因此它也被稱為最佳邊緣檢測器。
1)高斯濾波平滑圖像。
傳統(tǒng)Canny 算子使用高斯濾波器減輕噪聲影響,通過與圖像進行卷積處理,濾除圖像中的噪聲,對圖像進行平滑處理。
2)計算圖像的梯度幅值和方向。
傳統(tǒng)Canny 算子在獲取梯度圖像時,采用2×2大小的模板計算灰度圖像的梯度幅值和梯度方向。其中,點(i,j)處的灰度值為I(i,j),則水平和垂直兩個方向上的梯度值為
此時,點( i,j )處的梯度幅值為G( i,j ),梯度方向θ(i,j)分別為
3)對梯度幅值進行非極大值抑制操作。對梯度幅度圖G( )i,j 中的小鄰域,使用3×3 大小的模板窗口,并在其中比較中心像素與其梯度方向上的相鄰像素。如果中心像素值不大于沿梯度方向的相鄰像素值,就將其置為零。否則,這就是一個局部最大,將其保留下來。
4)雙閾值方法檢測和連接邊緣。
對經(jīng)過非極大值抑制處理后的圖像用高閾值Th和低閾值Tl進行雙閾值提取處理,消除虛假邊緣并連接斷續(xù)邊緣。如果經(jīng)過非極大值抑制后的邊緣點梯度值大于高閾值則被當作邊緣點保留;梯度值小于低閾值的點則刪除;梯度值介于兩閾值之間且與邊緣點相鄰的點要判斷其8 鄰域內(nèi)是否存在大于高閾值的邊緣像素,存在則保留為邊緣點,否則刪除。
1)傳統(tǒng)Canny 算子在對圖像進行平滑濾波時采用高斯濾波器,高斯濾波器中的平滑參數(shù)和模板窗口大小需要人工預(yù)先設(shè)定,然而在實際應(yīng)用中找到適合的高斯濾波器參數(shù)是一件很困難的工作,所以在圖像邊緣檢測中自適應(yīng)較差,具有很大的局限性[18]。
2)傳統(tǒng)Canny算子采用2×2大小的模板計算圖像的梯度幅值,使得對噪聲比較敏感。并且該模板只能計算水平和垂直方向的梯度,在檢測虹膜圖像邊緣時,容易檢測出很多虛假邊緣和丟失重要的虹膜邊緣信息,從而降低邊緣的定位精度[19]。
3)傳統(tǒng)Canny 算子在用雙閾值方法檢測和連接邊緣時,其中高、低閾值的設(shè)置,不能根據(jù)圖像自身的特點來確定,需要根據(jù)經(jīng)驗人為預(yù)先設(shè)定,而且閾值設(shè)置不合理將導(dǎo)致虛假邊緣的出現(xiàn)和邊緣細節(jié)信息丟失等現(xiàn)象,無法避免人為因素對圖像分割造成的干擾[20]。
虹膜圖像存在著孤立噪聲、連續(xù)噪聲等特點,其中孤立噪聲是由于成像傳感器、相片顆粒、光照不均衡、圖像傳輸過程中的誤差等因素產(chǎn)生,連續(xù)噪聲由于睫毛等因素造成。因此本文在高斯平滑處理之前加入一步,采用中值濾波,對虹膜圖像中明顯的光斑和睫毛等其它椒鹽顆粒噪聲進行處理。
高斯濾波器中的空間尺度系數(shù)σ,決定著平滑程度。σ取值較大,權(quán)重矩陣中心系數(shù)較小,其周圍權(quán)重系數(shù)與中心系數(shù)的比值趨近于1,類似均值模板,平滑效果明顯。相反,σ取值較小,權(quán)重矩陣中心系數(shù)較大,其周圍權(quán)重系數(shù)與中心系數(shù)的比值遠小于1,圖像平滑效果不是很明顯。根據(jù)研究對象虹膜圖像的特點,由于虹膜邊緣點信息占整張圖像的比例較小,經(jīng)中值濾波后圖像灰度值的分布情況,可近似作為噪聲灰度值的分布情況。若圖像灰度值分布離散程度較高,加強對圖像的平滑效果。相反,若圖像灰度值的離散程度較低,減弱對圖像的平滑效果。
這里用包含標準差的四階矩來統(tǒng)計虹膜圖片灰度值分布情況,根據(jù)分布情況確定空間尺度系數(shù)σ 的取值。公式如下:
其中σ 代表高斯濾波器中空間尺度系數(shù)的取值,X代表虹膜圖像中每個像素點的灰度值,μ 代表該張圖片所有像素點灰度值的均值,σ1代表該張圖片所有像素點灰度值的標準差。
高斯濾波器中的模板窗口大小M ,可以根據(jù)一維的正態(tài)分布3σ 原則取值,由于正態(tài)分布在(μ-3σ,μ+3σ)范圍內(nèi)的數(shù)據(jù)占99.7%,一般3σ 之外的數(shù)值已接近于0。由此推廣到二維中,高斯核的模板窗口大小可以取半徑為3σ ,通常取最近的奇數(shù),即模板窗口大小M=6σ+1。
在對虹膜圖像進行高斯平滑濾波時,若模板窗口過大,易造成圖像平滑過度和計算量大等影響,本文根據(jù)虹膜圖像的特征,模板窗口具體的取值如下:
其中,σ 代表高斯濾波器的空間尺度系數(shù),floor 代表向下取整操作,cell代表向上取整操作。
根據(jù)虹膜圖像的特征,虹膜內(nèi)外邊界可看作圓,所以虹膜邊界具有不同方向的梯度變化,為了有效檢測虹膜邊界,這里選擇3×3 大小的模板,結(jié)合Sobel算子,計算四個方向的梯度變化,增加兩個對角線方向。
并將這四個方向梯度加權(quán)獲得整個圖像的梯度圖像。公式如下:
其中h( x,y )為水平方向的邊緣,v( x,y )為垂直方向的邊緣,d1( x,y )為135°方向的邊緣,d2( x,y )為45°方向的邊緣。 X( x,y )為水平方向上的梯度,Y( x,y )為垂直方向的梯度,α 和β 為梯度加權(quán)系數(shù)。
在傳統(tǒng)Canny 算子中高、低閾值需要預(yù)先人工設(shè)定,不能很好地結(jié)合圖像自身的特征進行自適應(yīng)的確定。針對這個缺陷,本文采用最大類間方差法即Ostu算法,它可以自動根據(jù)圖像灰度特征獲取最佳分割閾值。將它應(yīng)用于經(jīng)非最大值抑制處理后的虹膜梯度圖像中確定圖像的次要閾值。將主要閾值調(diào)整為次要閾值的1.6 倍。使用兩個閾值時,將抑制指定的邊緣或?qū)⑦吘墭俗R為突出邊緣。如果像素的梯度值大于次要閾值并且小于主要閾值,則邊緣被認為是弱邊緣。如果像素的梯度值大于主要閾值,則該邊緣是突出邊緣。如果像素梯度值小于次要閾值,則抑制或移除該邊緣。
為了驗證本文改進Canny 算法的有效性和優(yōu)越 性,在Windows 10,64 位,CPU 為Core(TM)i7-8700,內(nèi)存為8G 的計算機上運用Matlab R2018a進行仿真實驗。隨機選取中科院CASIA 虹膜標準數(shù)據(jù)集和馬來西亞多媒體大學MMU虹膜數(shù)據(jù)集各一幅圖片。采用傳統(tǒng)邊緣檢測算子(Sobel,Canny)和本文改進的Canny 算法在虹膜邊緣檢測效果上進行對比分析。
1)中科院CASIA虹膜數(shù)據(jù)庫樣本
圖1 CASIA原始圖
圖2 Sobel算子
圖3 傳統(tǒng)Canny算子
圖4 改進的Canny算法
圖5 MMU原始圖
圖6 Sobel算子
圖7 傳統(tǒng)Canny算子
2)馬來西亞多媒體大學MMU虹膜數(shù)據(jù)庫樣本
圖8 改進的Canny算法
圖2和圖6所示是Sobel算子邊緣檢測的結(jié)果,從檢測的效果圖中可以看出,該算子在檢測虹膜圖像邊緣時,虹膜外邊界信息嚴重丟失,并且包含噪聲較多,因此Sobel 算子不適合應(yīng)用虹膜圖像的邊緣檢測。圖3 和圖7 所示是傳統(tǒng)Canny 算子邊緣檢測的結(jié)果,其中傳統(tǒng)Canny 算子中的空間尺度系數(shù)σ人工選取1.0,高低閾值分別取0.13 和0.08,從檢測的效果圖中可以看出,該算子只是檢測出了虹膜的主要輪廓信息,丟失了部分邊緣細節(jié)信息,并且較多的無用邊緣信息也被包含。圖4和圖8所示是本文改進Canny 算子邊緣檢測的結(jié)果,先對原圖進行中值濾波。根據(jù)前述提出的改進方法,CASIA 虹膜樣本和MMU虹膜樣本的空間尺度系數(shù)計算值為3.7686 和2。模板窗口大小計算值為19*19 和13*13。經(jīng)實驗驗證,當梯度加權(quán)系數(shù)α 和β 分別取值為1.0 和0.9 時,能較好地獲取虹膜圖像的梯度圖像。CASIA 數(shù)據(jù)庫虹膜樣本高低閾值為0.0824 和0.1318。MMU 數(shù)據(jù)庫虹膜樣本高低閾值分別為0.0745 和0.1192。從檢測效果圖看,本文中提出的改進的Canny 算法與傳統(tǒng)Canny 算子相比,能更有效地降低噪聲的影響,不僅能準確地檢測到邊緣,而且檢測到的邊緣輪廓明顯、清晰,連續(xù)性好,在準確檢測到圖像邊緣的同時又很好地抑制了虛假邊緣,有利于對虹膜圖像進一步地進行分析及處理,從而體現(xiàn)了本文改進后Canny算法的優(yōu)勢。
首先根據(jù)虹膜圖像存在孤立噪聲和連續(xù)噪聲的特點,采用中值濾波對虹膜圖像進行預(yù)處理。然后,針對傳統(tǒng)Canny 算子中自適應(yīng)能力差,圖像梯度信息提取不全面等問題,在分析和結(jié)合虹膜圖像特征的基礎(chǔ)上,提出了基于自適應(yīng)Canny 算子和多方向Sobel算子的虹膜邊緣檢測方法。實驗結(jié)果表明,提出的改進算法,在檢測虹膜邊緣信息時,對噪聲起到一定的抑制作用。不僅能準確地檢測到虹膜邊緣信息,而且檢測到的虹膜內(nèi)外邊緣輪廓有著清晰、明顯和連續(xù)性好等優(yōu)點,在準確檢測到圖像邊緣的同時又很好地抑制了虛假邊緣,有利于對虹膜圖像進一步地分析及處理,在虹膜識別應(yīng)用領(lǐng)域具有較高的實用價值。但是,由于本文只是將虹膜圖像作為研究對象,如何將本文提出的算法合理地應(yīng)用到其他領(lǐng)域還有待研究