0
本文作者: 奕欣 | 2018-06-26 11:47 |
雷鋒網(wǎng) AI 科技評(píng)論按:本文作者為悉尼科技大學(xué)博士生董宣毅(Xuanyi Dong),他根據(jù) CVPR 2018 錄用論文 Supervision-by-Registration: An Unsupervised Approach to Improve the Precision of Facial Landmark Detectors 為 AI 科技評(píng)論撰寫了獨(dú)家解讀稿件。
Supervision-by-Registration(SBR) 是一個(gè)訓(xùn)練人臉關(guān)鍵點(diǎn)檢測器的算法框架,能夠利用無監(jiān)督的方式增強(qiáng)任何基于圖像的人臉關(guān)鍵點(diǎn)檢測器。SBR 利用了物體在視頻中的運(yùn)動(dòng)比較平滑的特性來提升一個(gè)現(xiàn)有的人臉關(guān)鍵點(diǎn)檢測器。相比較其他人臉關(guān)鍵點(diǎn)檢測算法,SBR 不需要利用任何額外的人工標(biāo)注信息就能提升檢測器的性能。下圖是 SBR 的框架示意圖。
SBR 使用的訓(xùn)練數(shù)據(jù)是有標(biāo)注的圖像數(shù)據(jù)和無標(biāo)注的視頻數(shù)據(jù)。在訓(xùn)練過程中,SBR 可以用無監(jiān)督的方式從視頻中提取監(jiān)督信息來優(yōu)化檢測器(神經(jīng)網(wǎng)絡(luò))。在測試階段,使用 SBR 訓(xùn)練的模型,可以在圖像或視頻數(shù)據(jù)上達(dá)到具有更高的精度,并且能讓在視頻中檢測結(jié)果更加穩(wěn)定。
SBR 的訓(xùn)練過程包含兩個(gè)損失函數(shù)。一個(gè)是檢測器損失函數(shù),另一個(gè)是時(shí)序配準(zhǔn)損失函數(shù)。這兩者可以相互補(bǔ)充讓人臉關(guān)鍵點(diǎn)檢測器更加魯棒。檢測器損失函數(shù)作用于模型檢測結(jié)果和人工標(biāo)注上,優(yōu)化使得在有標(biāo)注的數(shù)據(jù)上,模型的檢測結(jié)果和人工標(biāo)注盡可能的接近。時(shí)序配準(zhǔn)損失函數(shù)是優(yōu)化在連續(xù)幾幀內(nèi)關(guān)鍵點(diǎn)檢測結(jié)果的時(shí)序一致性。具體來說,輸入連續(xù)的兩幀圖像 t-1 和 t,通過同一個(gè)人臉關(guān)鍵點(diǎn)檢測器后,可以得到對(duì)于第 t-1 幀的檢測結(jié)果和第 t 幀的檢測結(jié)果,我們將第 t-1 幀的檢測結(jié)果通過 Lucas-Kanade 算法跟蹤到第 t 幀得到結(jié)果,時(shí)序配準(zhǔn)損失函數(shù)就是為了讓在第 t 幀上跟蹤得到的結(jié)果和檢測得到的,盡可能一致。值得注意的是,因?yàn)?Lucas-Kanade 算法不需要訓(xùn)練且有封閉解,我們將 Lucas-Kanade 算法寫成了一個(gè)可求導(dǎo)的模塊嵌入到 CNN 中。在訓(xùn)練的時(shí)候,檢測器損失函數(shù)利用人臉外觀信息通過人工標(biāo)注學(xué)習(xí)關(guān)鍵點(diǎn)檢測器;時(shí)序配準(zhǔn)損失函數(shù)通過嵌入 Lucas-Kanade 模塊保證了時(shí)序一致性。梯度可以通過 Lucas-Kanade 模塊傳給檢測模型使得檢測結(jié)果在相鄰幀上一致。
(對(duì)于不同的檢測器,檢測器損失函數(shù)可能有所不同,比如比較經(jīng)典的 CPM 和 Hourglass 使用 mean squared error 來優(yōu)化檢測器,也有一起些方法使用 L2 loss 優(yōu)化。SBR 是一個(gè)通用的算法,可以作用于各種不同的人臉關(guān)鍵點(diǎn)檢測器,提升他們的性能。)
目前訓(xùn)練 CNN 模型需要大量的標(biāo)注數(shù)據(jù)。然而標(biāo)注大量的數(shù)據(jù)需要消耗很多的人力資源,并且人工標(biāo)注往往不準(zhǔn)確。如下圖所示是在兩張嘴的圖片上標(biāo)注 16 個(gè)關(guān)鍵點(diǎn)的位置,一個(gè)顏色表示一個(gè)關(guān)鍵點(diǎn),我們給出了九個(gè)標(biāo)注人員的標(biāo)注結(jié)果,可以發(fā)現(xiàn)每個(gè)標(biāo)注人員對(duì)關(guān)鍵點(diǎn)的定位方差很大。這些標(biāo)注誤差對(duì)訓(xùn)練和測試模型會(huì)有很大的影響。因此,我們就想能不能使用一種不需要人工標(biāo)注的監(jiān)督信息來訓(xùn)練 CNN 模型?基于這個(gè)目的,我們提出了 supervision be registration,利用視頻里相鄰幀間時(shí)序一致性來作為監(jiān)督信息。
目前的人臉關(guān)鍵點(diǎn)檢測的評(píng)測指標(biāo)主要是兩種,NME(Normalized Mean Error)和 AUC(Area Under Curve)。這兩個(gè)評(píng)價(jià)指標(biāo)可以很好的衡量檢測結(jié)果和人工標(biāo)注之前的差距,但是沒法很好地體現(xiàn)模型在視頻中的表現(xiàn)。一般的人臉關(guān)鍵點(diǎn)檢測器預(yù)測的關(guān)鍵點(diǎn)坐標(biāo)在視頻中會(huì)出現(xiàn)很強(qiáng)的抖動(dòng)現(xiàn)象,但是使用 SBR 訓(xùn)練的人臉關(guān)鍵點(diǎn)檢測器的結(jié)果在視頻中十分穩(wěn)定,這些提升目前還沒有很好的衡量方式,但是從演示視頻中可以清晰地體現(xiàn)出 SBR 的效果。
SBR 的核心是時(shí)序配準(zhǔn)損失函數(shù),依賴于 Lucas-Kanade 跟蹤模塊,所以跟蹤的結(jié)果的好壞直接影響著 SBR 的效果。同時(shí),檢測器預(yù)測的坐標(biāo)是 Lucas-Kanade 跟蹤模塊的初始化坐標(biāo),只有當(dāng)這個(gè)初始坐標(biāo)大致準(zhǔn)確的時(shí)候跟蹤才有意義。所以使用需要注意兩點(diǎn),(1)當(dāng)檢測器在標(biāo)注圖片初始化好之后在開始使用 SBR 訓(xùn)練。(2)選擇無標(biāo)注的視頻時(shí)需要注意視頻的分辨率/人臉大小/遮擋等條件來保證 Lucas-Kanade 跟蹤模塊能夠成功跟蹤。
PyTorch Implementation:https://github.com/facebookresearch/supervision-by-registration
Facebook Research Blog:https://research.fb.com/publications/supervision-by-registration-an-unsupervised-approach-to-improve-the-precision-of-facial-landmark-detector
Demo Video : https://drive.google.com/file/d/19tLhPBb2f8S70jFk_WTUYKaJxVEsQGwX/view
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。