使用素描圖像識別人臉

使用素描圖像識別人臉

說明

論文《Face Photo Recognition Using Sketch》(Xiaoou Tand and Xiaogang Wang)中提出了一種算法,實現人臉照片與素描圖像之間的識別。測試數據集:(CUHK Face Sketch Database (CUFS))。依照此算法,實現的代碼見github上corfox/FPRUS or csdn code or git oschinahtml

算法步驟

  1. {Q1,Q2,,QM} 是訓練圖像集,計算均值git

    Qu=1Mi=1MQi
    ,其中 M 是訓練圖像集中的圖像數目。記訓練集的素描圖像(sketch)爲 {S1,S2,,SM}

  2. 將訓練圖像集中的每張圖像減去均值 Pi=QiQu ,獲得去中心化的訓練集 {P1,P2,,PM} github

  3. 將每張圖像矩陣拉伸爲一個列向量(或行向量)。假設每張圖像都有 N 個元素,則獲得 N×M 的矩陣 P=[P1,P2,,PM] 算法

  4. 獲得訓練集的協方差矩陣 W=PPT ,計算其特徵向量。然而,因爲通常圖像的像素數目 N 大於訓練集的圖像數 M W 的秩數僅爲 M1 (訓練集圖像中的圖像有必定的相關性)。因此,計算 PTP 的特徵向量更爲簡便。推理以下:
    markdown

    (PTP)Vp=VpΛpP(PTP)Vp=PVpΛp(PPT)PVp=PVpΛpWPVp=PVpΛp

    其中, Vp 是特徵向量組成的矩陣; Λp 是特徵值組成的對角矩陣。那麼, W 的特徵向量即是 PVp ,特徵值是 Λp

  5. 由步驟4,能夠計算獲得 W 的標準正交特徵矩陣(orthonormal eigenvector matrix)爲 Ep=PVpΛ12p ( N M 列)。jsp

  6. 對於一張新的人臉相片(face photo) Qk ,去中心化獲得 Pk 。而後,計算其在特徵空間上的投影係數 bp=ETpPk ,將其做爲用於分類的特徵矢量。測試

  7. 再用 bp 反過來重構 Qk 的重構圖像 Pr=Epbp 。由 Ep=PVpΛ12 ,獲得重構係數以下:atom

    cp=VpΛ12pbp=[cp1,cp2,,cpM]

    因而,重構圖像能夠表示爲:
    Pr=Pcp=i=1McpiPi

  8. 由步驟7,知能夠經過訓練集的線性組合來表示重構的圖像,係數 cp 描述了每張訓練圖像的貢獻權重。類比,描述其重構圖像爲spa

    Sr=i=1McpiSi

  9. 經過以上步驟,便將不一樣模態(modality)的相片(Photo)與素描圖(sketch)轉換爲同一模態下,即同爲素描或同爲相片來進行識別。理論上說,通常經常使用的識別算法均可以用來對此進行識別。.net

測試結果

下圖是重構的效果圖
這裏寫圖片描述

識別率

下面是測試的識別率結果
這裏寫圖片描述

原論文中的識別率以下,差異仍是挺大的。
這裏寫圖片描述

參考資料

  1. 《Face Photo Recognition Using Sketch》, Xiaoou Tang and Xiaogang Wang, 2002, ICIP.
相關文章
相關標籤/搜索