論文閱讀——Latent Fingerprint Registration via Matching Densely Sampled Points

  • 2020 年 8 月 17 日
  • AI

一、摘要

潛指紋的匹配是一個非常重要但未解決的問題。作為潛指紋匹配的一個關鍵步驟,潛指紋配準的性能對最終匹配結果影響顯著。當下的潛指紋配准演算法主要是基於建立指紋潛指紋和資料庫指紋的細節點(或者關鍵點,minutiae)之間的聯繫的方法,當指紋面積較小或品質較差等因素導致提取出來的關鍵點較少時,這種方法自然很難取得好的效果。故指紋細節特徵的提取成為了潛指紋配準的瓶頸。

本文提出了一種基於非細節點特徵的指紋配准演算法,通過對一對latent-rolled指紋影像進行密集的塊對齊以及匹配,實現這組指紋空間變換參數的估計。對輸入的一對指紋影像,我們繞過了細節點的提取,而是直接使用均勻密集取樣點作為關鍵點。然後利用本文提出的塊對齊和匹配演算法,來比較latent和rolled指紋的所有取樣點對,估計出各個組合的相似度以及對應塊對的對齊參數。最後,利用頻譜聚類求出一個由兩個指紋影像相互匹配的關鍵點對組成的關鍵點集合,即完成了整個配准過程。

在NIST27和MOLF兩個數據集進行的大量實驗展示了本文提出的方法可以獲得sota的效果,尤其是在潛指紋品質非常具有挑戰的情況下。

本文潛指紋匹配效果

二、介紹與相關研究

對潛指紋匹配及相關術語的介紹見另一篇部落格。

為了克服(由指紋面積過小或在品質很差等造成的)提取出的minutia過少造成的匹配效果不佳,Cao等提出使用均勻密集取樣點(即所謂的「虛擬細節點」)來進行前指紋識別的方法。虛擬細節點即均勻密集取樣得到的點,同細節點的定義一樣,虛擬細節點也具備方向資訊,其方向由局部區域的嶺方向(ridge orientation)給出。對於細節點較少的情況,Cao等方法用虛擬細節點來代替細節點,然後利用和普通細節點相同的過程來完成特徵提取-匹配的過程。該方法一定程度上解決了minutia過少導致匹配不佳的問題,但是受到不穩定的局部嶺方向預測的影響,而嶺方向預測不佳的問題在潛指紋中非常常見,錯誤的虛擬細節點方向會導致後續提取的minutiae-based descriptor性能不佳,進而影響匹配效果。

常見指紋配准演算法的工作流程

  1. 提取特徵點:

    1. Minutiae最為重要,但是相對稀疏,且特殊情況下無法準確提取
    2. Level 3特徵點,如pore、嶺輪廓點,可以提升性能但是同樣不適用於低品質輸入情況。
    3. Virtual minutiae,密集取樣點以模擬minutiae,解決minutiae稀疏的問題,但是virtual minutiae的方向估計比較不穩定,易影響後續descriptor性能。
  2. descriptor:用於判斷兩個關鍵點是否匹配

    1. Image based:利用影像的灰度資訊
    2. texture based:利用嶺方向等資訊
    3. Minutiae based:利用minutiae等關鍵點得到鄰域,再進行特徵提取
  3. 配准:利用一組相互匹配的關鍵點,進行影像配准

本文演算法的流程

  1. 分別在latent/rolled指紋影像中按照預設取樣間隔,進行均勻密集取樣,得到的無向取樣點(與之對比,Cao等方法使用的是有向virtual minutiae)。拋棄傳統的minutiae-based特徵提取流程,使用取樣點作為關鍵點,避免了minutiae提取不準確的問題。

  2. 在latent/rolled 指紋中,以成對取樣點為中心的局部影像塊對作為孿生網路的輸入,通過網路並估計出空間變換參數,利用該參數將latent向rolled指紋對齊。對對齊後的小塊分別提取深度特徵並計算兩特徵之間的距離,來代表該組latent-rolled指紋影像中當前比較的兩個關鍵點的相似度。

  3. 將2中以貪婪方式計算出的所有latent-rolled取樣點對點的相似度數值與預設的閾值進行比較,得到一個潛在匹配對(potential correspondences)構成的集合。然後利用「spectral clustering based global patch matching」找到最終匹配的關鍵點集合。具體做法是:對潛在配對點中的每一組,首先利用2中估計點轉換參數對latent中的取樣點位置進行調整。然後選擇N組調整之後的關鍵點對作為配准使用的初始匹配點。

  4. 上述1-3的完整流程作為一次registration。通過改變1中的取樣密度和2中的比較策略和空間轉換的範圍,作者「重複」了兩次1-3的流程,即所謂的coarse-to-fine framework,其中第二次流程中的精確配准使用的輸入是第一次粗配准之後的結果。

本文涉及到的技術非常多,這裡進行一下整理:

  1. FingerNet可以用於對輸入的rolled fingerprint,預測出1⃣️ROI2⃣️minutiae3⃣️ridge orientation images,看起來相當強大。不過FingerNet可能對latent效果不是很好。故本文中latent的ROI需要使用專家手動標記的結果,不過latent和rolled的orientation field都是用FingerNet提取出來的。
  2. 使用孿生網路來輸入成對的latent-rolled image patch,提取特徵並估計出兩個輸入的空間轉換參數。
  3. 使用多任務學習的思想,在網路中加入Orientation map的額外監督來輔助網路對特徵的學習,讓網路提取到的特徵更加關注類似於骨骼的資訊,而非content資訊。
  4. 使用VeriFinger來估計rolled指紋影像中指紋中心所在位置
  5. 使用CycleGAN完成從rolled到latent的風格遷移

本文在訓練過程中用到了一些技巧,也值得學習:

  1. 在3.B部分構建spatial transform訓練數據時,加入一些並非真實輸入情況(即 (I_A, I_\hat{A}) )但是更容易訓練的樣本,以輔助模型訓練。
  2. 在3.C部分訓練時先使用minutiae-based dataset從頭訓,因為minutiae更容易獲得準確的關鍵點匹配對;再用sampling point-based dataset來finetune,提升泛化性能。
  3. 在3.C部分加入distance較小但是並不匹配的latent-rolled 數據對(即negative pairs),來實現onine hard negative sampling機制。

三、論文方法細節

這裡記錄下本文提出的配准演算法各個流程細節。

3.a 整體框架

本文整體上採取了一個coarse-to-fine framework,即對相同的配准流程重複兩次,第二次採用不同的取樣密度和間隔、不同的比較範圍及一些閾值等,實現對精度的提高和計算量的控制。

比如,在第二次精細配準的流程中,latent和rolled的取樣間隔分別由32×32和64×64改成了均為16×16,且在比較每一組image patch時,對於latent的每一個取樣點,只與其在rolled patch中對應那個取樣點所在鄰域內的所有取樣點進行比較,而不是像粗配准中需要比較rolled patch上的所有取樣點。

3.b 局部影像塊對齊

對於minutiae-based方法,如果能夠分別提取到rolled和latent的minutiae關鍵點,則可以認為對於latent中的每個minutiae,一定有一個rolled中的minutiae與之對應。不過對於本文提出的方法,由於初始階段關鍵點是均勻取樣所得,故對於latent中的每個取樣點,其在rolled中對應的那個點可能並不算任何一個rolled上的取樣點,而是在幾個取樣點中間的某個位置。

故為了找到最終的匹配點對,可以想到我們需要對latent(或rolled上也可以)的每個取樣點的位置,根據其在rolled patch中最接近的那個取樣點的位置,進行一些調整。然而一開始我們並不知道latent上每個取樣點和rolled上的哪個取樣點更接近。所以需要比較latent上每個取樣點和rolled上所有取樣點的相似程度。

而為了比較latent/rolled上一組取樣點的相似程度,一種合理的做法是比較以這兩個取樣點為中心的鄰域的相似程度。然而由於兩個指紋影像一開始角度之類的並不一定都處於擺正狀態,所以比較patch相似度之前最好把兩個patch做一個align,以抵消由角度和平移等帶來的差異,進而最大程度上比較兩個patch ridge的差異。

為了完成這個對齊,只需要找到從latent patch到每個rolled patch的spatial transform parameter即可。作者這裡應該是假設了兩個patch之間是剛性變換的關係,故從latent patch到rolled patch之間的轉換由平移和旋轉完全確定。故對於網路輸入的一組patch,只需要通過網路預測出latent相對於rolled patch的旋轉和平移即可。這部分的網路結構如下:

Patch alignment

對於兩個輸入patch,首先分別被送入特徵提取模組,該模組的兩個分支分別輸出特徵圖以及上取樣之後預測的orientation field map資訊。其中後者通過監督影響前者的學習,引導網路更加關注ridge相關的紋理資訊而不是影像塊的顏色、亮度等資訊,因為作者強調了自己並沒有對image patch預先進行enhancement,故這些patch其實存在的差異沒有得到任何normalize。

然後兩個patch對應的特徵被送入一個matching layer,回歸出一個correlation map,值得注意的是這個matching layer的名字有點混淆,我之前一直以為這個layer要負責預測兩個patch的match程度,即某種相似度。實際上這個matching layer只是為了整合兩個patch的feature然後輸出一個中間的correlation map用於預測包含旋轉、平移資訊的輸出向量(這裡的形式是一個長度為3的向量,分別代表水平/豎直平移量和相對選擇角度。這個matching layer的細節暫時還不知道,也得查看參考文獻29。

為了讓這部分網路能夠學習到一組輸入patch的相對空間轉換關係,我們需要兩種監督的label:

  1. latent和rolled patch各自的ridge orientation map。這個資訊由FingerNet預測而得。

  2. latent patch關於rolled patch的選擇和平移參數。這個label的獲取稍微有些麻煩:首先利用MCC descriptor與頻譜聚類完成兩個真實配對的latent和rolled影像(不是patch,而是完整的指紋影像)中的匹配minutiae檢測(注意訓練中未用minutiae,但是利用第三方方法配準時還是要用),進而完成影像配准。匹配的minutiae點可以進一步通過TPS模型,估計出distortion field,不過這一步暫時沒用到,只是做了大圖的配准。然後對配准之後的影像對隨機cut出成對的160×160的patch。這裡作者應該是認為大圖配准之後,其每一個影像patch也相當於是aligned。然後對每組patch I_A和I_B進行隨機旋轉平移得到I_\hat{A}和I_\hat{B},這樣就simulate出了用於訓練上述網路的訓練數據對。值得注意的是作者在構建數據時是將(I_A, I_\hat{B})以及(I_A, I_\hat{A})均作為training pairs,後者由於來自同一個patch,可以使得網路在學習預測空間關係時更加容易一些。

在預測出一組patch的轉換參數之後,可以對latent patch apply這個transfrom進而將其與rolled patch對齊。對齊之後就可以比較這兩個patch的相似程度,進而代表latent和rolled當前比較的這一組取樣點之間的匹配程度。作者這裡的做法是通過比較兩個patch對應的deep descriptor之間的距離,輸出這個相似度得分。從輸入到align到matching(即計算匹配程度)的整體流程如下圖:

image.png
3.c 局部影像塊匹配

作者在論文圖6中給出了特徵提取網路,即上圖中Deep descriptor部分的結構細節。看起來和圖5的特徵提取模組非常接近,甚至感覺有些冗餘。

同3.b一樣,3.c中的網路為了預測出patch 特徵之間的相似度,需要相應的label:

  1. latent和rolled patch各自的ridge orientation map,同3.b

  2. 同3.b一樣,也是需要先對真正配對的一組latent和rolled大圖進行配准,配准過程需要輸出兩個資訊:1⃣️ROI;2⃣️distortion field(由TPS模型預測出),然後可以再記錄下3⃣️獲取該ROI所用rolled指紋的紋理中心點位置。(1⃣️,2⃣️,3⃣️)組成了一個模擬模板,可以作用於任一個rolled指紋影像,來產生一個simulated latent。具體針對給定的一個rolled影像,simulation過程如下:

    1. 用ROI在rolled指紋影像中crop出一塊區域,作為模擬的latent指紋區域的初始結果。注意保持模板的中心於rolled指紋的紋理中心先對齊,這樣可以保證crop的roi均包含紋理中心,品質更好一些。

    2. 然後對這塊crop出的區域apply distortion field得到一個新的latent。此時生成的指紋在紋理方面就已經確定下來了,但是其外觀(灰度級別等)和rolled一樣。故作者通過CycleGAN(訓練時用成對的配准後的latent和rolled指紋影像)對其外觀進行改變,以模擬latent的外觀。

總結一下,在3.c的latent simulation中,作者從任意rolled fingerprint出發,通過ROI對latent的不完整性進行模擬;通過distortion field對distortion進行模擬;通過CycleGAN對latent的style進行模擬,最終得到品質較好的simulated latent。數據集模擬部分的流程見下方:

image.png
image.png

3.d 全局塊匹配

  1. 根據3.c得到的所有similarities與閾值進行比較,得到potential sampling point correspondences
  2. 利用3.b中計算出的每個latent patch – rolled patch的變換參數,對latent上的取樣點位置逐一進行調整。然後按照相似度排序選出前N組調整後的取樣點對,作為initial correspondences.
  3. 通過二階圖匹配的方法,取出錯誤的取樣點對。

四、問題記錄

  1. Deep descriptor模組主要功能是輸出兩個image patch的similarity。那麼該模組中使用的監督是什麼?是兩個模組是否為mated?
  2. 在構建訓練數據時,作者說只有一組影像塊的公共前景區域大於閾值,才會被保留。如何求兩個不規則ROI mask的公共區域?
  3. 為什麼在使用Orientation map的監督時,不直接用latent/rolled的原始ridge orientation map(記作O)而是要用[sin(2O), cos(2O)]作為label?
  4. 為什麼從latent patch到rolled patch的spatial transform由旋轉和平移就可以確定?如果這兩者之間並不是剛性變換,比如是similarity transform,或者甚至存在畸變,會不會影響patch alignment的性能呢?
  5. correlation layer(或者matching layer)中的網路細節是什麼?為什麼作者說correlation layer也計算了兩個patch feature之間的相似度指標,這個相似度用在哪裡?
  6. TPS模型估計出的是配准之後latent和rolled之間的distortion field還是配准之前的?TPS可否擴展到一般的影像對中用於求相對畸變關係?
  7. Global matching中從initial correspondences到最終的correspondences,主要需要做什麼?