虹膜識別與虹膜定位(續)演算法實現
在http://blog.csdn.net/piaoxuezhong/article/details/77966132中大致總結的虹膜識別與虹膜定位的原理,本篇結合現有的方法,例項測試實現,做下記錄:
資料庫:
中科院虹膜識別資料庫 下載及說明請參見:http://blog.csdn.net/u013351270/article/details/53508049
虹膜識別方法:
(一)《OSIRIS: An open source iris recognition software》
論文中介紹的方法的核心步驟主要為:
1.影象分割。通過分割找出虹膜區域。
2.影象歸一化。對第一步分割出的虹膜區域進行歸一化處理,得到尺寸不變的矩形長條。
3.影象編碼。利用Gabor濾波對第二步得到的歸一化影象進行編碼,得到虹膜紋理特徵。
4.影象匹配。利用Hamming矩對兩個編碼後的的特徵進行匹配,得出判斷結果。
該連結中包含使用文件和原始碼:http://download.csdn.net/download/piaoxuezhong/10114394
將開源虹膜識別演算法OSIRIS4.1移植到Windows: http://blog.csdn.net/ss910/article/details/74783543(還未測試)
(二)Libor Masek的MATLAB虹膜識別論文和原始碼
專案主頁:http://www.peterkovesi.com/studentprojects/libor/index.html
程式碼是用MATLAB寫成,可以學習虹膜識別演算法的基本脈絡。
(三)視訊虹膜識別Video-based Automatic System for Iris Recognition (VASIR)
專案連結:https://www.nist.gov/services-resources/software/video-based-automatic-system-iris-recognition-vasir
原理講解:
影象歸一化:
影象歸一化是指對影象進行標準的處理變換,使之變換為固定標準形式的過程,標準影象稱作歸一化影象。
虹膜識別中的歸一化通常是指要把圓環狀的影象歸一化為矩形的影象,這樣既可以壓縮影象的大小(去掉圓餅以外白色不需要的畫素),又便於後續的特徵提取或者識別操作。處理過程是把圓餅狀從某處切開,然後分別往兩邊一拉就成矩形狀,這個過程會使得影象略有變形,變形的部分用鄰近畫素點代替,影響不是很大。
演算法上實現也很簡單,重點是找到座標的對應關係,如下圖所示:
----------------------------------------------------------------------------------------------.目前效果最好的開源虹膜識別原始碼,基於C++和OpenCV: http://svnext.it-sudparis.eu/svnview2-eph/ref_syst/Iris_Osiris_v4.1/
該連結中包含使用文件和原始碼,描述該演算法的論文為:
《OSIRIS: An open source iris recognition software》2016
論文下載連結:
http://www.docin.com/p-1389745651.html
這個原始碼非常優秀,效果很好,已經是4.1版了。
在Linux下編譯執行,看看文件學會操作用起來很ez的。
改編成VC版本也不麻煩,改編成視訊實時對比的版本也很簡單,其實這麼說來用它改編成一個商業應用的虹膜識別軟體也沒那麼難啦。