算法(三)針對微小面積的指紋出現的問題,提出並實踐了新穎的方法,嘗試識別更廣泛的圖像,並且有效減少冗余存儲和計算。針對指紋來說可以近似理解利用了Level3特征,不同與算法(一)的對特征數量的限制,也不同於算法(二)會導致幾百kb的模板空間占用與不可控的計算時間。這部主要探討在空間和效率上的平衡。
算法(一)和算法(二)對圖像的表述問題在於不能有效利用圖像細節信息和只能利用部分圖像信息。類似地,可以解釋為概括性解釋和局部性解釋,算法(三)結合了全局信息和局部細節的方式,篩選出與視覺概念最相關的特征,去除大量的冗余信息,使得算法在執行時間和占用空間上得到數十倍的優化。
主要設計思想利用圖像區域不變性與局部漸變性,對於每一個patch生成一個帶有漸變信息的序列,對序列進行學習與訓練,結合AI方法,使之魯棒性得到保證。
算法設計主要分為兩步:
1.將圖像分為不同的滑動塊,檢測有效信息,並將檢測結果划分為N種(N決定描述大小)。
2.將局部結果重構,檢測局部與局部之間有效信息並生成Chain-Code。
為了更有效地達到目的,我們提出了一種”拮抗模型“,對圖像的細節與細節之間的聯系進密結合在一起,采取監督學習的方式進一步訓練。
算法主要設計思想介於算法(一)與算法(二)之間,認為特征不會是一個孤立的特征,不同特征之間存在"拮抗作用",形成一個密切的關聯體,得到的Chain-Code只需要一維卷積即可得到相似性,為了達到更高的精度,加入AI算法,更好地解決了特征的魯棒性問題。
從原理上推導的近似算法是個很復雜的方法,且數學推導到最后確實一個很普通常見的公式,但從去年完成設計前還是持續了幾個月的折磨,也算是走了一條與眾不同的小路。
.............................
簡單提供一個測試對比圖數據,通過對wb_db8(128x60)數據庫測試:
Alg1,2,3分別為專欄提到的算法(一),(二),(三)。B為目前市場商用算法排名前列的方案提供商。
小結:截止到現在,市場上的小面積指紋識別的算法方案基本上已經介紹完畢,只是在這個已經很成熟的方向上做了一點進一步的探索。如果有更有效的解決方法,希望可以互相學習。
以后可能會嘗試探討一部分指紋識別相關的問題,比如指紋的活體檢測,指紋特征的安全性等等,等想到哪一部分了再去補充。
----------------------------------------------------------------------------------------------
2018/1/1更新,對上文一些內容有修改,以為后來發現有一些結論並不准確,,最終版的設計流程就把之前的ppt貼出來算了,懶得寫了
算法實現使用了73個人,共計39858幅圖像做訓練,另外還有1.3萬幅噪聲圖像以及生成模型模擬的2萬幅指紋噪聲(別問我怎么准確生成更高效率的圖像,我心里也是一肚子mmp).
經過對算法的一些流程和核心卷積算法的優化,目前可以做到在高通8系CPU上單次識別10ms左右,在高通中低端CPU,如高通430上單次識別40ms左右。
模板空間也大大降低,從120kb左右降低到30kb左右,如果加上指紋防偽功能約需要80kb的空間,對市場上大部分指紋芯片可以做到 FRR<1%,FAR<1/20w。
指紋防偽樣本很小,所以精確度不是太高,如果有同學有更大的假指紋庫,歡迎交流。。。
目前在測試全面屏的屏下超聲以及屏下光學實現方案,等有結果了會貼出一些結果,以及算法的一些小tricks,另外會更新一些關於指紋攻擊的規避方案。
--------------------------------------------------------------------------------------------
1.更新一組本文算法結果。
圖像集:178人,80x64,500dpi
市場上主要三家商用算法對比
不同於當前市場上針對小面積指紋算法方案,本算法僅需要約80kb的模板就可以在高通4系(430)CPU上完成快速的識別,高通6系以上毫秒級的速度,市場上多數算法還是依靠傳統的機器視覺算法,在模板占用上至少需要200kb,同一顆CPU下至少慢10倍!
而且本文算法只需要注冊過程僅需要6-8次即可,較市場上需要注冊12-15次大大縮短,但是安全性確實市場上算法的10倍以上!
2. 更新屏下指紋一些內容與測試
目前指紋模組主要存在三種形式:光學式,電容式,超聲波式。各自都有優劣,不是我們本篇文章要探討的,我們只談算法~~~
先來看一看電容式和屏下超聲指紋的圖像區別,由於屏下光學指紋的提供方不願意公開數據,所以我們只談一下常見的電容指紋和屏下超聲指紋,不談硬件設計優劣:
相對而言,電容式傳感器更加成熟,圖像成像效果較好;屏下光學傳感器由於屏幕封裝透光性的原因目前OLED屏幕還是唯一選擇,采集圖像質量一般;屏下超聲傳感器大多在30MHz下吧,理論上可以穿透多種介質,成像質量一般,且可以顯示更多細微特征。
以下是以本文算法對屏下超聲指紋做出的算法測試:28人庫,注冊使用6幅圖像。
algo-256,512,2048,為每幅圖像embedding的特征維數。
3.關於終端指紋算法攻擊的故事
雖然很鄙視這種掛羊頭賣狗肉的行為,但是這個事件也確實暴露出當前市場指紋算法的一部分問題。
這個指紋破解方案其實是在指紋的地方貼上東西,但是,但是貼上東西除非用戶瞎了眼,不然一眼就能看出來,所以說其實這個新聞就是一個噱頭,但是針對這個問題呢,本文算法可以從源頭上杜絕,有效避免。。。。
以256維特征為例,根據特征自相關圖像的是連續圖像,如圖所示:
注:第三幅上面1/3和下面2/3是不一致的,即模擬指紋的假條紋。
4.指紋及其他
指紋作為接觸式生物特征識別應用最廣泛的一種認證方式,已經延續了很多年的發展,未來也有可能在應用場景上進一步創新。如果有人問我指紋安全嗎,我會回答:不安全。沒有絕對的安全,生物特征識別的安全與否本來就是一種概率性的撞庫事件,並不是說FAR<100w,那么和6位數字密碼的安全度一樣高,也必然不是百萬次才會被破解一次。。。
anyway,好多人說我寫的太嚴肅了,哈哈哈,其實作為一個算法研究人員,我還是萌萌噠的
參考文獻:
Minutiae Extraction From Level 1 Features of Fingerprint, 2016
Fingerprint indexing with pose constraint, 2016
Fingerprint matching using ridges,2006
Methodology for Partial Fingerprint Enrollment and Authentication on Mobile Devices, 2016
Aminutia-based partial fingerprint recognition system,2005
Mutual-Information-Based Registration of Medical Images: A Survey, 2003
Fingerprint Registration by Maximization of Mutual Information, IEEE TIP2006
High resolution partial fingerprint alignment using pore–valley descriptors, 2010
A New Framework for Quality Assessment of High-Resolution Fingerprint Images, IEEE TPAMI 2015
A Fingerprint Verification System Based on Triangular Matching and Dynamic Time Warping,IEEE TPAMI 2000
A Decision-Theoretic Generalization of OnLine Learning and an Application to Boosting,1997
stadnford cs229