周銳燁,沈文忠
上海電力大學 電子與信息工程學院,上海 201200
近些年來,生物特征認證技術快速發展。虹膜紋理由于其唯一性、極高的精度和穩定性、非接觸性以及防偽性,在眾多生物特征認證技術中脫穎而出,受到廣大用戶的青睞,具有很好的應用前景[1]。一個完整的虹膜識別過程包括虹膜圖像質量評估、虹膜分割、歸一化、特征提取和匹配等步驟[2]。其中虹膜分割是指在采集到的包括眾多噪聲的眼睛圖像中準確找出虹膜區域。虹膜分割是整個虹膜識別過程中最關鍵的一步,對后續步驟的影響極大,也影響了整個虹膜識別系統的準確率。
傳統的虹膜分割算法主要利用虹膜邊界的梯度變化來確定虹膜邊界。基于圖像梯度的虹膜分割算法在理想狀況下往往能取得好的分割效果,但是在非理想狀況下,如采集到的圖像虹膜區域與非虹膜區域的對比度不強時,傳統算法的分割效果往往很差。在實際應用場景,采集到的虹膜圖像不僅包括虹膜區域,還包括睫毛、眼瞼、光斑等噪聲干擾,傳統的虹膜分割算法容易受到這些噪聲的影響,從而對虹膜區域進行錯誤的分割,導致后續虹膜識別步驟出現錯誤。
近年來,深度學習蓬勃發展,在許多領域的表現都十分優秀。研究人員們開始將深度學習應用于虹膜分割領域,并取得了顯著的效果,有效地解決了由于采集到的虹膜圖像亮度、對比度等的影響而導致算法對虹膜區域進行錯誤分割的問題,提高了算法的魯棒性。但是,對于異質虹膜圖像(可見光和紅外圖像),目前虹膜分割算法的分割效果并不好。目前的虹膜分割算法大多只針對特定類型的虹膜圖像,而對于紅外圖像和可見光圖像混合的異質虹膜圖像的分割效果很差。
本文提出的虹膜分割算法是基于深度學習的卷積神經網絡模型,該模型不僅對成像質量參差不齊的虹膜圖像都能實現準確的分割,而且對于異質虹膜圖像的分割效果與目前的虹膜分割算法相比,準確率更高且參數量和計算量更小。本文將提出的異質虹膜分割卷積神經網絡模型命名為PI-Unet(Precise Iris Unet)。PI-Unet主要有以下幾點貢獻:
(1)使用卷積神經網絡進行虹膜分割,與傳統算法相比,在受到噪聲干擾時,更能保持分割效果的準確性。
(2)對虹膜分割網絡的網絡層、損失函數和數據增強方法都進行了重新設計和改動,使得提出的虹膜分割網絡模型能夠對異質虹膜圖像進行準確的分割。與其他虹膜分割神經網絡模型相比,PI-Unet 實現了更高的虹膜分割準確率。
(3)在保證準確率的同時,對網絡結構進行重新設計。最終設計的網絡模型參數量僅為2.49×106,計算量為1.32×109,均低于目前的虹膜分割神經網絡,能夠適用于低性能的邊緣計算設備。
目前的虹膜分割算法主要可以分為傳統算法和深度學習算法兩大類別。
傳統算法中,最經典的虹膜分割算法便是Daugman于1993 年提出的微積分算子及其改進的虹膜分割算法[3],該算法目前仍被應用于一些虹膜識別設備中。1997 年,Wildes[4]提出了在邊緣檢測的基礎上,使用Hough變換來檢測虹膜內外邊界的虹膜分割算法,該算法計算量相比Daugman的算法的計算量更小,分割速度更快。中科院譚鐵牛[5]于2003 年提出將樣條擬合算法用于虹膜分割,該算法運行復雜度較低,但是容易受到睫毛干擾的影響而導致分割準確率下降。
隨著近幾年深度學習的快速發展,越來越多的研究人員開始嘗試將深度學習算法運用于虹膜分割。Lozej等人[6]提出將Unet作為虹膜分割網絡模型應用于虹膜分割,在CASIA-Iris-intervel上實現了91.2%的mIoU,網絡模型大小達到了138.2 MB。Shabab等人[7]提出基于FCN改進的FCDNN 網絡,在UBIRIS.v2 上實現了0.939 0 的F1分數。Kerrigan等人[8]提出將結合了空洞卷積和殘差網絡的DRN 卷積神經網絡應用于虹膜分割,在Biosec虹膜數據庫的mIoU 達到了87.29%,網絡模型大小為99.2 MB。Zhang 等人[9]將U-Net 結構和空洞卷積結合,提出FD-Unet 用于虹膜分割,在CASIA-Iris-intervel 和UBIRIS.v2上的F1 socre分別達到了97.36%和0.948 1。Lian等人[10]提出Attention guided U-Net,有效地解決了使用U-Net 進行虹膜分割時會出現的對非虹膜區域像素點進行錯誤分類的情況,在CASIA-Iris-intervel 和UBIRIS.v2上的mTPR分別達到了96.325%和96.812%,優于Unet 的分割效果。Chen 等人[11]提出將FCN 和dense block 結合的DFCN 網絡,在CASIA-Iris-intervel、IITD 和UBIRIS.v2 上的F1 score 分別達到了0.982 8、0.981 2和0.960 6,其網絡模型大小為138.91 MB。
以上用于虹膜分割的神經網絡模型往往存在這樣的問題:(1)對于紅外虹膜圖像的分割準確率很高,但對于可見光下的虹膜圖像,分割準確率就有明顯的下降,即對于異質虹膜圖像的分割效果不好;(2)只追求準確率,而忽略了因模型參數量、計算量過大而不能適用于實際應用場景的問題。本文針對上述問題,提出了針對異質虹膜圖像的虹膜分割神經網絡模型PI-Unet。PI-Unet在設計上參照了Unet[12]的Encoder和Decoder相結合的語義分割神經網絡結構,并且去除了其中的冗余部分,使得PI-Unet 在保持準確率的同時又能夠快速地進行分割。在損失函數方面,本文放棄了傳統的適用于語義分割的二分類交叉熵損失函數,選取了更適用于虹膜分割的損失函數。
本文提出的PI-Unet 結構參考了Unet 的Encoder 和Decoder相結合的網絡結構,其中Encoder的目的是提取虹膜圖像的大小、位置、形狀等特征。只有Encoder提取到的虹膜圖像特征足夠詳細且準確,對虹膜圖像的分割效果才更好。所以設計一個適合于虹膜分割的Encoder是整個虹膜分割神經網絡中最重要的部分。本文基于對異質虹膜圖像快速分割的考慮,提出了兩種Encoder的設計方案,并對兩種方案的參數量和運算量做對比,選取了其中適合異質虹膜圖像快速分割的一種方案作為PI-Unet的Encoder。
本文設計的兩種Encoder 的結構如圖1 和圖2 所示。在EncoderV1中,所有卷積層均拋棄傳統的卷積方式,而采用MobileNet[13]所采用的深度級可分離卷積。經實驗證明,使用深度級可分離卷積可以在保持準確率的同時,大幅度減小神經網絡模型的參數量和計算量。輸入圖像經過三次下采樣環節,其中下采樣方式不是采用傳統的2×2 最大值池化,而是stride=2 的3×3 深度級可分離卷積。由于使用深度級可分離卷積代替了傳統卷積,可能會導致出現Encoder特征提取不明顯的問題,所以采用stride=2的3×3深度級可分離卷積代替2×2最大值池化,可以適當增加用于特征提取的卷積層數,彌補了Encoder特征信息提取不明顯的問題[14]。在EncoderV2中,依然采用深度級可分離卷積和stride=2 的3×3 深度級可分離卷積相結合的方式進行特征提取和下采樣,但是將下采樣環節增加到了5 次。增加下采樣的次數是考慮到在異質虹膜圖像分割任務中,可見光圖像和紅外圖像的特征差異較大,下采樣環節不足可能會導致提取到的異質虹膜圖像特征信息不足,從而影響分割的準確率。

圖1 EncoderV1網絡結構Fig.1 Network structure of EncoderV1

圖2 EncoderV2網絡結構Fig.2 Network structure of EncoderV2
本文對提出的兩種Encoder設計方案進行參數量和計算量的對比,對比結果如表1所示。在輸入圖像分辨率均為288×320×3的情況下,EncoderV2與EncoderV1相比雖然在參數量上有所增加,但是計算量上,EncoderV2卻有明顯的優勢。這是由于EncoderV2 中充分的下采樣環節降低了后續卷積計算的計算量。在實際應用場景中,參數量與計算設備的內存大小相關,計算量則與計算設備的運算能力相關。而邊緣計算設備往往在運算能力方面性能較差,所以在綜合考慮參數量和計算量的情況下,EncoderV2 比EncoderV1 更適合作為PI-Unet的Encoder。

表1 兩種Encoder方案參數量和計算量對比Table 1 Comparison of params and flops of two Encoder schemes
Decoder 的作用是將Encoder 提取到的特征信息轉換為語義信息。在異質虹膜分割任務中,Decoder 對輸入圖像經過Encoder 得到的特征圖進行上采樣和卷積,最后經過softmax 函數對圖像上每個像素進行分類,區分屬于虹膜區域的像素和不屬于虹膜區域的像素。目前,用于語義分割中的Decoder 的上采樣方式主要有反卷積、插值法和反池化三種。其中反卷積的優點是參數可以學習,使用反卷積進行上采樣能夠使得異質虹膜分割結果更加準確。但是使用反卷積會增加參數量和計算量,使得分割速度變慢。插值法的優缺點則與反卷積相反,參數量和計算量減小的同時可能導致分割準確率的下降。反池化是SegNet[15]中所使用的上采樣方式,實現方式是根據Encoder中最大池化層進行池化時記錄的位置信息進行復原。反池化的優點是計算量小,計算速度快,缺點是需要占用一定內存用于儲存位置信息。
由于在Encoder 的設計中,本文采用stride=2 的深度級可分離卷積代替最大值池化對特征圖進行下采樣,所以首先排除了使用反池化作為Decoder 中的上采樣方式。為了充分發揮反卷積和插值法兩種方法各自的優點,盡量避免兩種方法的缺點,本文提出了將反卷積和插值法相結合的Decoder設計方案。在Decoder的前兩次上采樣中,由于特征圖分辨率小,所以使用反卷積進行上采樣能夠提高準確率的同時只增加了少許參數量和計算量。而在Decoder 的后續上采樣中,由于特征圖分辨率變大,所以使用插值法進行上采樣,避免參數量和計算量的大幅度增加。Encoder 和Decoder 之間通過特征融合通道相連接,目的是減少下采樣過程中的信息丟失,使得分割效果更加準確。最終確定的PI-Unet 的網絡結構如圖3 所示,各個網絡結構的細節如表2所示。

表2 PI-Unet網絡結構細節Table 2 Network structure details of PI-Unet

圖3 PI-Unet網絡結構Fig.3 Network structure of PI-Unet
在神經網絡模型的訓練過程中,選擇一個合適的損失函數非常重要。一般語義分割神經網絡的損失函數都選用交叉熵損失函數。交叉熵損失函數表示為:

其中,yi表示樣本i的真實值,pi表示網絡輸出預測樣本i為正類的概率。
使用交叉熵損失函數作為網絡訓練的損失函數可以有效地避免梯度較小時網絡無法繼續訓練的問題,使得訓練過程中神經網絡權值能夠有效地向真實值收斂。但是交叉熵損失函數有一個明顯的缺點,當分割的圖像存在類別不平衡的問題時,網絡的訓練就會被像素較多的類主導,對于像素少的類別,網絡難以學習到其特征,從而降低了網絡的有效性。在虹膜分割應用中,采集到的虹膜圖像便可能存在類別不平衡的情況。如圖4所示,由于采集虹膜圖像時人離成像設備有一定的距離,所以采集到的圖像中背景占據大部分的像素,而需要準確分割的虹膜區域只占小部分的像素。對于此種類別的虹膜圖像,在網絡訓練時如果使用交叉熵損失函數,訓練好的神經網絡的分割效果肯定不理想。為了解決上述問題,需要使用一個能解決類別不平衡問題,又能在語義分割任務中表現良好的損失函數。

圖4 虹膜圖像中的類別不平衡現象Fig.4 Category imbalance phenomenon of iris images
Dice Loss 于2016 年V-Net 網絡[16]中首次提出并應用于醫學圖像分割。作者提出Dice Loss的原因是因為感興趣的解剖區域只占整個掃描區域中的一小部分,即類別不平衡現象。如果使用傳統的交叉熵損失函數會使得網絡的訓練過程中陷入局部最小值。Dice Loss的定義如下:

其中,X表示Ground Truth圖像,Y表示神經網絡的輸出圖像。
Dice Loss 的本質是衡量X和Y的重疊部分,當Dice Loss 的值為0 時,則表示X與Y完全重疊,即神經網絡的輸出圖像和Ground Truth 圖像完全一致。可以看出,Dice Loss 和語義分割的評估指標IoU 的本質是一致的,當Dice Loss在訓練過程中不斷減小,則表示評估指標IoU 在不斷上升,分割效果在不斷變好,所以選用Dice Loss 作為語義分割的損失函數是完全可行的。而對于交叉熵損失函數所不能解決的訓練樣本存在類別不平衡的問題,Dice Loss 則完全可以避免。對于虹膜分割這種存在類別不平衡現象的語義分割任務,Dice Loss比交叉熵損失函數的表現更好。
使用Pytorch深度學習框架[17]對本文提出的PI-Unet進行訓練和測試。在Nvidia RTX2080Ti GPU 上訓練300個批次。訓練時將輸入圖片統一裁剪至288×320分辨率,以方便進行batch size為16的批量訓練。優化器選用Adam,其中學習率為0.001,第一次估計的指數衰減率設為0.9,第二次估計的指數衰減率設為0.999。測試模型時以batch size 為1 進行測試,所以不需要進行裁剪,輸出圖片分辨率與輸入圖片分辨率保持一致。
本文選取的數據集為CASIA-iris-intervel-v4,IITD和UBIRIS.v2,其中CASIA-intervel-v4和IITD的虹膜圖像為為紅外圖像,UBIRIS.v2 的虹膜圖像為可見光下的虹膜圖像。
CASIA-iris-intervel-v4[18]:CASIA-iris-intervel-v4 是中國科學院自動化研究所CASIA-iris 虹膜數據庫中的一個子集。該數據集一共包括來自249 個受試者的虹膜圖像,本文選取其中124個受試者的虹膜圖像作為訓練集,剩余的受試者的虹膜圖像作為測試集。
IITD[19]:IITD 虹膜數據集由印度理工學院德里分校提供。該數據集一共包括來自224 個受試者的虹膜圖像,因使用此數據庫的研究人員不多,不方便對比分割效果,所以本文選取該數據庫所有虹膜圖片作為訓練集。
UBIRIS.v2[20]:UBIRIS.v2虹膜數據庫由貝拉英特拉大學的SOCIA Lab提供。本文選取該數據集中的50個受試者共2 250 張虹膜圖像作為實驗用的數據集,其中25個受試者的虹膜圖像作為訓練集,剩余的受試者的虹膜圖像作為測試集。
數據增強在神經網絡模型的訓練過程中有很重要的作用。合適的數據增強方法既能提高模型的泛化能力,又能提升模型的魯棒性。對于難以獲取大量訓練數據的任務,數據增強又能增加訓練的數據量,降低過擬合現象出現的概率。
本文旨在對異質虹膜圖像進行快速而準確的虹膜分割,因此選取的數據增強方法與一般語義分割所選用的數據增強方法有所不同。在虹膜識別的實際應用場景中,由于光照、對焦、采集距離等因素的影響,采集到的虹膜圖像存在亮度差別大、模糊、虹膜區域位置面積不一致等問題。如果在數據增強中不考慮上述影響,訓練網絡模型時便會出現收斂速度慢的問題,訓練好的模型也容易出現過擬合的現象。因此,本文綜合考慮了上述實際應用場景中出現的情況,對數據增強方法做出了如下設計:
(1)隨機亮度、對比度增強。由于網絡訓練所用的虹膜數據庫圖像的亮度、對比度單一,與實際應用場景中虹膜圖像亮度差別大的現象不一致,所以對訓練用的虹膜圖像進行隨機亮度、對比度增強,以達到模擬實際應用場景的作用。該數據增強方法旨在解決由于實際應用場景中采集到的虹膜圖像亮度、對比度差別大而導致神經網絡不能正確分割虹膜區域的問題。
(2)隨機水平翻轉。由于人的眼睛有左右眼的區別,左右眼中的虹膜區域在虹膜圖像中的位置也有差異。對訓練數據進行隨機水平翻轉,可以防止由于過擬合而導致訓練好的網絡模型不能準確分割左、右兩種類型的虹膜圖片的現象。
(3)隨機縮放。語義分割的應用場景多為自動駕駛場景,自然景觀場景等,這些應用場景沒有特別明顯的特點,訓練一個運用于這些應用場景的神經網絡一般不會用到隨機縮放的數據增強方法。然而虹膜圖像中都有明顯的圓環區域,只是虹膜區域在采集到的圖像中的位置不固定。而訓練用的虹膜圖像數據庫大多都采用固定位置,固定距離的成像設備采集,所以訓練用的虹膜圖像的虹膜區域位置區域比較一致。如果不對訓練用的虹膜數據庫的虹膜圖像進行處理,那么訓練好的神經網絡對于實際應用場景中采集的虹膜圖像的分割效果會因為虹膜區域位置面積不一致而準確率下降。因此,本文采用隨機縮放的數據增強方法對訓練圖片做處理,進行隨機縮放后的虹膜圖像中的虹膜區域的大小和位置具有一定的多樣性,能有效提高訓練網絡的泛化能力。
(4)裁剪。裁剪操作是將圖片調整為一個固定的分辨率,這一步驟的目的有兩個,一是隨機縮放后的圖像分辨率會發生改變,進行裁剪操作后使圖片恢復到原來大小,而只使虹膜區域的大小和位置發生改變。二是固定分辨率的圖片便于批量訓練,提高數據處理速度和訓練效率。
本文提出的PI-Unet是應用于異質虹膜分割的神經網絡模型,所以既要追求準確率,又要在參數量和計算量上盡可能少。所以本文使用mIoU 和F1 分數作為準確率的評估指標,params 和flops 作為參數量和計算量的評估指標。
mIoU是計算真實值和預測值兩個集合的交集和并集之比的平均值,其計算公式如下:

其中,pij表示真實值為i,被預測為j的個體,pji表示真實值為j,被預測為i的個體,k+1 是類別個數。mIoU的取值范圍為[0,1],越接近于1 則表示分割準確率越高。
F1 分數同時兼顧了精確率和召回率,是兩者的調和平均數,其計算公式如下:

其中,precision即準確率,recall即召回率。F1分數的取值范圍為[0,1],越接近于1則表示分割準確率越高。
params即模型所有帶參數的層的權重參數總量,主要由卷積層、全連接層、BN層等的權重參數組成。使用params可以衡量神經網絡模型的參數量(空間復雜度),params值越小則表示模型參數量越小。
flops 是floating point operations 的縮寫,即浮點運算數。使用flops 可以衡量神經網絡模型的計算量(時間復雜度),flops值越小則表示模型計算量越小。
在紅外圖像CASIA-iris-intervel-v4 和可見光圖像UBIRIS.v2 虹膜數據庫上,將本文提出的異質虹膜分割神經網絡模型PI-Unet 與傳統虹膜分割算法Caht[21]、Ifpp[22]、Wahet[23]和虹膜分割神經網絡Unet[6]、FD-Unet[9]、DFCN[11]進行mIoU和F1分數兩項準確率的評估指標的對比。為了證明本文提出的數據增強方法以及損失函數對異質虹膜分割準確率有提升作用,將該訓練策略應用于Unet進行訓練,并進行mIoU和F1分數兩項評估指標的測試。對比結果如表3 所示。從對比結果可以看出,與傳統虹膜分割算法相比,虹膜分割神經網絡準確率更高,魯棒性更強,但是紅外圖像(CASIA 數據庫)與可見光圖像(UBIRIS.v2數據庫)兩者之間的準確率仍有一定差距,即對異質虹膜圖像的分割效果不好;與Unet相比,使用了本文訓練策略的Unet在mIoU和F1分數上都有較大提升,可以得知本文提出的數據增強方法和損失函數對于訓練異質虹膜分割神經網絡有幫助。與其他虹膜分割算法相比,本文提出的異質虹膜分割網絡模型PI-Unet 在CASIA-iris-intervel-v4 和UBIRIS.v2 上 都實現了更高的mIoU和F1分數,對異質虹膜圖像的分割效果最好。綜上所述,本文提出的PI-Unet 神經網絡以及數據增強方法和損失函數能夠訓練出一個準確率高的異質虹膜分割神經網絡模型。

表3 虹膜分割算法準確率對比Table 3 Comparison of iris segmentation accuracy
為了體現本文提出的PI-Unet能夠適用于實際應用場景,對PI-Unet與分割準確率僅次于PI-Unet的Unet進行params和flops的對比,對比結果如表4所示。從對比結果可以看出,在輸入圖片分辨率為288×320×3的情況下,本文提出的PI-Unet 在params 和flops 上有明顯優勢,更適用于實際應用場景中的邊緣計算設備。

表4 效果最好的兩個網絡參數量和計算量對比Table 4 Comparison of params and flops of the most accurate two network
本文提出的PI-Unet對于紅外虹膜圖像的分割效果如圖5所示,對于可見光下的虹膜圖像的分割效果如圖6所示。可以看出,本文提出的PI-Unet對于異質虹膜圖像的分割效果很好,能夠對不同的成像環境下的虹膜圖像都進行準確地分割。對于閉眼圖像,PI-Unet 還具有一定的檢測能力。如圖7所示,對于此種類型的眼睛圖像,PI-Unet 會判斷該圖像不存在虹膜區域。而在訓練集的所有虹膜圖像中并不存在閉眼圖像,所以可以得知,PI-Unet 在訓練過程中準確且充分地學習到了虹膜的特征。

圖5 PI-Unet對紅外虹膜圖像分割效果Fig.5 Segmentation results of PI-Unet for infrared iris images

圖6 PI-Unet對可見光虹膜圖像分割效果Fig.6 Segmentation results of PI-Unet for visible iris images

圖7 PI-Unet對閉眼圖像分割效果Fig.7 Segmentation results of PI-Unet for eye closed images
虹膜分割是虹膜識別流程中最為重要的一個步驟,關系到整個虹膜識別系統的準確率。目前虹膜分割算法的局限性在于無法對異質虹膜圖像(可見光和紅外圖像)進行準確的分割。本文針對異質虹膜圖像,提出PI-Unet 神經網絡模型以及適合于虹膜分割的數據增強方法和損失函數。實驗結果證明,使用PI-Unet對異質虹膜圖像進行分割,在CASIA-iris-intervel-v4 和UBIRIS.v2 的mIoU 分別達到了97.50%和95.95%,F1 分數分別達到了0.990 7和0.989 0。與其他虹膜分割神經網絡模型相比,PI-Unet 的兩項準確率評估指標均為最佳,同時PI-Unet 的參數量僅為2.49×106,計算量僅為1.32×109,在實用性和快速性上均為最佳。本文的研究工作仍有不足之處,PI-Unet 在異質虹膜分割任務的準確率已經很難提升,但是在參數量和計算量方面仍有提升空間。接下來的研究方向應著力于進一步減小網絡模型的參數量和計算量,使得訓練好的神經網絡模型更適用于低性能的邊緣計算設備。