1. 程式人生 > >Face Detection PCN 論文理解

Face Detection PCN 論文理解

paper:: Real-Time Rotation-Invariant Face Detection with Progressive Calibration Networks(基於漸進校準網路的實時旋轉不變人臉檢測)
linkPCN paper
codehttps://github.com/Jack-CV/PCN-FaceDetection

摘要

  • 旋轉不變人臉檢測當前面臨的問題:
    • 檢測在平面具有任意旋轉角度的人臉在飛限制場景中應用廣泛;
    • 為了處理RIP(平面旋轉)差異,當前許多檢測方法都在速度和精度上受到限制;
  • 論文提出Progressive Calibration Network對旋轉不變人臉進行由粗到細的檢測:
    • PCN是三階段級聯網路,每階段不僅區分是否存在人臉,同時逐漸對候選人臉的旋轉角度進行垂直方向上的校準;
    • PCN可以實時檢測具有 [ 0 o , 36 0
      o ] [0^o,360^o]
      之間任意旋轉角度的人臉;

引言

  • 本文的研究重點是face detection in full RIP,提出三種策略來處理人臉旋轉所帶來的差異:
  • 資料增強 data augmentation:將垂直人臉均勻地在full RIP角度進行旋轉,訓練一個包含多種人臉角度的人臉檢測器需要一個大型的網路同時耗時也比較高;
  • 分治 divide and conquer:將人臉的角度分為up、down、left、right四個主要的朝向,然後訓練多個人臉檢測器,多個檢測器使得時間成本增加同時可能引入其他問題(不太理解論文裡面提到的false alarms);
  • 旋轉路由器 rotation router:使用router network來評估候選人臉的旋轉角度,然後在垂直方向上對候選人臉進行校準,然後就可以應用垂直人臉檢測器對候選人臉區域進行校準了,但是精準地評估人臉的角度需要大型網路來作為router network耗時成本也增加了;
  • 為了解決上述三種策略所面臨的問題,PCN採用逐步校準旋轉角度的方式來處理候選人臉:
    • stage1:提取出候選人臉區域並進行角度校準,將RIP角度的範圍縮小 [ 18 0 o , 18 0 o ] [-180^o,180^o] to [ 9 0 o , 9 0 o ] [-90^o,90^o]
    • stage2:第一階段校準後的人臉將進行進一步的人臉鑑別以及角度校準 [ 9 0 o , 9 0 o ] [-90^o,90^o] to [ 4 5 o , 4 5 o ] [-45^o,45^o] ,再次將RIP角度縮小一半;
    • stage3:對第二階段的結果進行進一步精準預測,判斷人臉候選區是否是正例,同時預測精準的RIP角度;
  • PCN的創新點和優勢:
    • 將角度校準的任務分為幾個漸進的階段,每個階段只是一個簡單的任務,在精確校準的同時耗時也低,RIP角度的逐漸減小有助於人臉/非人臉的鑑別;
    • 前兩個階段只進行粗略的校準,通過聯合學習校準任務、分類任務、bbox迴歸任務,可以在不增加時間成本的情況下完成對粗略校準的具有魯棒性準確的預測;校準方法可以利用影象的翻轉來實現;
    • 在multi-oriented FDDB和a subset of WIDER FACE dataset上以非常快的速度到達了優秀的效能;

Progressive Calibration Networks

PCN檢測流程:利用滑動視窗和影象金字塔原理得到候選人臉,然後經過多階段檢測器處理;在PCN的每個階段,低置信度的候選區域會被捨棄,剩餘的候選區域會進行bbox的迴歸以及RIP角度的校準;每個階段完成後進行NMS操作合併overlap高的候選區域;

  • PCN-1:
    • 針對每一個輸入視窗,PCN-1有三個學習目標: [ f , t , g ] = F 1 ( x ) [f,t,g]=F_1(x)
      • 用softmax loss鑑別人臉/非人臉: L c l s = y l o g f + ( 1 y ) l o g ( 1 f ) L_{cls}=ylogf+(1-y)log(1-f) ;
      • 用smooth L1 loss進行bbox迴歸: L ( t , t ) = S ( t t ) L(t,t^*)=S(t-t^*) ,其中 t t 表示預測值, t t^* 表示gt值,迴歸目標由三部分組成,其中a,b,w分別表示預測bbox的top-left座標和寬度:
        (1) t w = w / w t_w=w^*/w
        (2) t a = ( a + 0.5 w a 0.5 w ) / w t_a=(a^*+0.5w^*-a-0.5w)/w^*
        (3) t b = ( b + 0.5 w b 0.5 w ) / w t_b=(b^*+0.5w^*-b-0.5w)/w^*
      • 使用二值分類器對候選區域的粗略朝向進行預測: L c a l = y l o g ( g ) + ( 1 y ) l o g ( 1 g ) L_{cal}=ylog(g)+(1-y)log(1-g) ,當候選區域是facing up時 y = 1 y=1
    • PCN-1的學習目標損失函式是 m i n L = L c l s + λ r e g L r e g + λ c a l L c a l min L = L_{cls}+\lambda_{reg} \cdot L_{reg}+\lambda_{cal} \cdot L_{cal} ,其中 λ r e g λ c a l \lambda_{reg}和\lambda_{cal} 是平衡loss的引數;
    • 經過PCN-1階段的處理之後,候選人臉框根據PCN-1的迴歸值更新bbox,然後通過PCN-1預測的粗略的RIP角度進行旋轉,假設預測角度為 θ 1 \theta_1 ,當 ( g > = 0.5 , θ 1 = 0 o ) , ( g < 0.5 , θ 1 = 18 0 o ) (g>=0.5, \theta_1=0^o),(g<0.5,\theta_1=180^o) ,當 θ 1 = 0 o \theta_1=0^o 時代表候選區人臉的正的沒有旋轉的必要,相反 θ 1 = 18 0 o \theta_1=180^o