日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Supervised Descent Method and its Applications to Face Alignment

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Supervised Descent Method and its Applications to Face Alignment 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

廣播說明:
進入深度學習時代,如下的方法已經失去可比性,且我們的代碼實現地很粗糙,如果堅持要用,推薦如下代碼
https://github.com/wanglin193/SupervisedDescentMethod (看起來作者對sdm實現的不錯)

另外一篇基于深度學習的基于回歸的方法,也是使用的基于SDM的相同的思路,但是全部深度學習化,
更加魯棒。 見:《Stacked Hourglass Network for Robust Facial Landmark Localisation》


本方法是當前人臉對齊最流行的算法,速度很快,很穩定。下面我將介紹一下這篇文章的整體思路和相關細節。
在介紹之前,先給出幾個有用的鏈接:
1.)
本論文作者主頁,形象地介紹了SDM的特點:
http://xiong828.github.io/sdm.html
2. )
superviseddescent C++11版本的實現:
http://patrikhuber.github.io/superviseddescent/
下面開始介紹:
人臉對齊就是要找人臉的特征點。如圖
。
我們要找到眼睛、鼻子、嘴巴等特征點。那么如何去做呢?方法有很多。本文講述了使用SDM去求特征點的方法。假設我們有一個初始的特征點x0x0,希望通過迭代,逐步求出準確地特征點x?x?。這就是大致的思路。

SDM方法(Supervised Descent Method )

Derivation of SDM

給定一幅含有m個像素的圖像dRm×1d∈Rm×1,d(x)Rp×1d(x)∈Rp×1用來索引圖像的p個特征點,x代表p個特征點。h(d(x))R128p×1h(d(x))∈R128p×1代表SIFT特征向量。在訓練階段,我們假設準確的p個特征點已知,設為x?x?。我們另外選取訓練集特征點的平均值x0x0作為初始值。如圖:

這樣,Face Alignment可以通過在ΔxΔx求解如下的最優化問題:

f(x0+Δx)=||h(d(x0+Δx))?Φ?||22f(x0+Δx)=||h(d(x0+Δx))?Φ?||22
這里 Φ?=h(d(x?))Φ?=h(d(x?))代表手工標記的特征點的SIFT特征。在訓練階段, Φ?Φ? ΔxΔx已知。
f(x0+Δx)f(x0)+Jf(x0)TΔx+12ΔxTH(x0)Δxf(x0+Δx)≈f(x0)+Jf(x0)TΔx+12ΔxTH(x0)Δx
對上面關于 ΔxΔx求導,令 f(x0+Δx)=0f′(x0+Δx)=0,可得
Δx1=?H?1Jf=?2H?1JTh(Φ0?Φ?)Δx1=?H?1Jf=?2H?1JhT(Φ0?Φ?)
,這里 Φ0=h(d(x0))Φ0=h(d(x0)).
R=?2H?1JThΔΦ0=Φ0?Φ?R=?2H?1JhT,ΔΦ0=Φ0?Φ?,于是R可看作 Δx1Δx1 ΔΦ0ΔΦ0的線性回歸系數。但是,我們知道在測試階段, Φ?Φ?是未知的,但是固定的。因此我們不再使用 Φ?Φ?做訓練,而是改用下面的公式:
Δx1Δx1Δx1===?2H?1JTh(Φ0?Φ?)?2H?1JThΦ0+(?2H?1JTh)(?Φ?)RΦ0+b0Δx1=?2H?1JhT(Φ0?Φ?)Δx1=?2H?1JhTΦ0+(?2H?1JhT)(?Φ?)Δx1=RΦ0+b0
使用訓練樣本,我們的方法可以學習 R0,b0R0,b0.
通常這種方法不可能一步迭代完成,需要進行多步,除非f是二次的。為了處理這個非二次的方程,SDM將產生一系列的下降方向 {Rk}{Rk}和偏差 {bk}{bk}.

xk=xk?1+Rk?1Φk?1+bk?1(1)(1)(1)xk=xk?1+Rk?1Φk?1+bk?1(1) ,使得對于訓練圖片集, xkxk將收斂到 x?x?.

Learning for SDM

假定給定一系列人臉{di}{di}與對應的特征點{xi?}{x?i}.對于每張圖片,從初始的特征點xi0x0i出發,R0,b0R0,b0可以通過求解最優化問題獲得:

argR0minb0dip(xi0)||Δxi?R0Φi0?b0||2dxi0argR0minb0∑di∫p(x0i)||Δxi?R0Φ0i?b0||2dx0i
這里 Δxi=xi??xi0,Φi0=h(di(xi0))Δxi=x?i?x0i,Φ0i=h(di(x0i)).
我們假定 xi0x0i可以從服從正態分布的人臉檢測框對齊采樣。于是上面的最優化問題化為:
argR0minb0dixi0||Δxi?R0Φi0?b0||2argR0minb0∑di∑x0i||Δxi?R0Φ0i?b0||2
以上方程是個線性的最優化問題,可以直接求解。
當第一步求解完畢后,代入方程式(1),可以求出 x1x1,進而又可以計算特征向量 Φik=h(di(xik))Φki=h(di(xki)) Δxki?=xi??xikΔx?ki=x?i?xki.這樣 Rk,bkRk,bk可以通過一個新的線性回歸得到。
argRkminbkdixik||Δxki??RkΦik?bk||2argRkminbk∑di∑xki||Δx?ki?RkΦki?bk||2
隨著k的增大,誤差逐漸減小,一般4到5次的迭代就可以達到比較好的效果。

Training for SDM

當我們計算出一系列的{Rk},{bk}{Rk},{bk},我們就可以通過迭代式(1)通過迭代求解特征點。一般初始的特征點可以選取訓練時的初始特征點。
后續我們還會給出SDM方法的Matlab代碼及相關說明,你就會看到比較清楚的步驟和效果了。

總結

以上是生活随笔為你收集整理的Supervised Descent Method and its Applications to Face Alignment的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。