論文出處 : Real-Time Rotation-Invariant Face Detection with Progressive Calibration Networks
以往 face detection task 都是建立在欲辨識的人臉是facing up的正面條件下,而實際的狀況中,人臉未必是朝上的狀況,而目前的 detection method 中鮮少是針對 rotation-invariant 的狀況。
文中引進一種方法架構:Progressive Calibration Networks。
首先了解文中定義的名詞 Rotation-In-Plane(RIP) angles :
RIP angle 即 Y 軸中到額頭上的旋轉角度,向左為負,向右為正,如上圖,該圖的 RIP angle 為 − 12 0 ∘ {-120^\circ} −120∘
文中提及以下三種傳統face rotation問題的解決方法以及優缺點比較 :
Data Augmentation :
將原本訓練資料做旋轉,使model學習到旋轉過後的人臉,雖然方法簡單,但隨著資料分佈變多樣,也需要對應到更大的neural network架構以及運算時間。
Divide-and-Conquer :
分別訓練出對應不同 RIP angle 變化範圍的 model,如 [-45,45],[-135,-45],[-180,-135],[45,135], [135,180], 總共五種範圍,則需要五種 model 來對應,分別預測出各 RIP angle 條件下是人臉的位置分佈與機率,但在因為精準度與範圍種類是取捨,需要耗費較多的運算時間。
Rotation Router :
直接估計出每一張可能是人臉目標的 RIP angle 在將其轉正,再做預測,但 face RIP angle estimation 是一大難題,進而使得 face detection 的表現不佳。
整體架構為 two-stage model,region-proposal 之後選出可能為一目標的 candidate 作為 PCN 的 input,主要分成三個 stage,在每個階段裡面逐步縮小 RIP angle,且逐步淘汰最不可能是臉的 candidate,每一個 stage 的輸出有三個:是臉的可能性,臉的位置與邊框大小,臉對應到的 RIP angle estimation。
在選擇適當輸入的機制中,輸入資料比照 groundtruth 的 IoU 分為三個種類:
Positive Samples(IoU > 0.7), Suspected Samples(IoU < 0.7 and IoU > 0.4), Negative Samples(IoU < 0.4)
其中,Positive Samples 與 Negative Samples 可做為訓練是否為人輸入,而 Positive Samples 與 Suspected Samples 為尋找臉位置與邊框大小以及 RIP angle estimation 的訓練輸入。
每一個 stage 中的 network 輸入為影像在不同 scaling 的結果,公式如下 :
P C N i ( I ) = [ f , t , g ] {PCN_{i}(I) = [f, t , g]} PCNi(I)=[f,t,g]
Objective 可分為三類 : L c l s , L r e g , L c a l L_{cls}~,~ L_{reg}~,~ L_{cal} Lcls , Lreg , Lcal
L c l s = y l o g ( f ) + ( 1 − y ) l o g ( 1 − f ) L_{cls} = ylog(f) + (1-y)log(1-f) Lcls=ylog(f)+(1−y)log(1−f)
L r e f = S ( t , t ∗ ) {L_{ref} = S(t,t^*)} Lref=S(t,t∗)
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) Lcal=ylog(g)+(1−y)log(1−g)
training process 為以 L c l s L_{cls} Lcls 為 primary,並給予 L r e g , L c a l L_{reg}~,~ L_{cal} Lreg , Lcal 權重,使得 L c l s + λ r e g L r e g + λ r e g L c a l L_{cls}+ \lambda _{reg}L_{reg}+ \lambda _{reg}L_{cal} Lcls+λregLreg+λregLcal 最小化。
每個 stage network 中會估計其影像的 RIP angle 並修正之,但是不同於直接估計的地方在於直接估計的結果往往不如預期,但若是以 coarse-to-fine 的分類方式逐漸修正角度在實驗結果上則會有不錯的表現。
在 stage 1 中,僅先判斷圖像額頭較為在上還是在下,故 Calibration Class 為兩類,若 g > 0.5 g > 0.5 g>0.5 時則為額頭在上,不做照片的翻轉,紀錄 θ 1 \theta_{1} θ1 為 0 ∘ 0^\circ 0∘,反之則判定為額頭在下,則將照片做 18 0 ∘ 180^\circ 180∘ 的翻轉,紀錄 θ 1 \theta_{1} θ1 為 18 0 ∘ 180^\circ 180∘,經過 stage 1 後,則有效地將 RIP angle 的範圍從 [-180,180] 限縮到 [-90,180]。
在 stage 2 中,更進一步將 RIP angle 的可能區間,即 Calibration Class ,區分為三類 :[-90,-45], [-45,45], [45,90]
其判斷依據為 : 找到 a r g m i n ( g i ) argmin(g_{i}) argmin(gi) 對應的參數 i i i,將對應到的可能角度再分為 − 9 0 ∘ , 0 ∘ , 9 0 ∘ -90^\circ,0^\circ,90^\circ −90∘,0∘,90∘ 三個種類,即 θ 2 \theta_{2} θ2 可能的三種結果。
在 stage 3 中,RIP angle 範圍僅限縮在 [-45,45] 內,此時則明確的估計出旋轉角度,以及 bonding box regression。
如上述過程,可由 θ 1 , θ 2 , θ 3 \theta_{1},\theta_{2},\theta_{3} θ1,θ2,θ3 求得 θ R I P \theta_{RIP} θRIP : θ R I P = θ 1 + θ 2 + θ 3 \theta_{RIP} = \theta_{1}+\theta_{2}+\theta_{3} θRIP=θ1+θ2+θ3
PCN 好處總結可歸為兩個,其一為對於多樣性的魯棒,其二為計算時間較少,將原本 360 360 360 個類別的問題,簡化為少數的類別,可減少不必要的運算,在 stage 1 及 stage 2 中 accuracy 分別為 95 95 95% 及 96 96 96% 而 stage 3 中 mean error 為 8 ∘ 8^\circ 8∘,相較於參考文獻 Rotation Invariant Neural Network-Based Face Detection 的 90 90 90% accuracy 有顯著的改善,且其運算速度上較 Faster R-CNN (VGG16), SSD500(VGG16), R-FCN (ResNet-50) 來的快且準確率較高。