這篇文章還是通過訓練形狀誤差與特徵的迴歸模型來做人臉配準(face alignment)。重點在於它用迴歸樹學習一個局部二值特徵(LBF,注意不是LBP),用線性迴歸來訓練迴歸模型。
摘要翻譯
這篇文章展示了對人臉配準問題的一個高效,非常準確的迴歸方法。我們的方法有兩個新穎的部分: 一組 局部二值特徵, 和學習這些特徵的局部性準則。這個局部性準則指導我們獨立的爲每個人臉標記學習一組高判別性的局部二值特徵。這個得到的局部二值特徵會用於爲最終輸出聯合的學習一個線性迴歸模型(就是將這些局部而知特徵連起來作爲一個特徵向量)。我們的方法在目前很具有挑戰性的測試目標上獲得了超好的效果。進一步, 由於提取和迴歸局部二值特徵計算量很低,我們這個系統的方法比之前方法快很多。它在筆記本上定位一組人臉標記點獲得了3000幀每秒的處理速度,或者在智能手機上(主要是ARM低功耗,計算能力差)300幀每秒。
介紹翻譯
整體思路
先說下整體的思路,再說這篇文章的特點,最後再說下問題(主要是我有疑問沒弄懂和弄懂的地方)。
1 整體思路是這樣的
Step 1 對圖片初始化 1 個shape(這個shape 就是一組點,目標是將它們移動到相應的眼睛鼻子嘴巴上)
Step 2 基於這個Shape 計算其每個點的周圍像素,或者兩shape兩個點中間像素的值(爲了對光照魯棒,一般是兩個點像素的差值),這個特徵記做Features。
Step 3 計算當前Shape 和 人工標記好Shape 的差異Delta_Shape , 然後訓練一個函數y = f(x) , 使 Delta_Shape = f(Features)。
Step 4 將這個Delta_Shape 加上初始的Shape 就是最終要求的人臉形狀。
這個過程就是該方法的Face Alignmeng 核心過程。所謂配準就是計算這個增量。訓練就是學習特徵與這個增量的關係。本文的方法是對這個過程進行了級聯,從而降低了每次配準的難度。將上文Step 4 中的結果代入Step1 循環10次。就是整體的過程。
本文特點
首先是特徵的學習。和之前的方法不同,這篇文章使用 Random Forest 學習的結果作爲特徵。而不是直接向之前一樣用像素差值作爲特徵,上個圖吧
這個圖比較宏觀,可以看出的是第二列的特徵是通過學習得到的,第四列的迴歸關係是線性的,也是通過學習得到的(這個過程本人還不是很懂,懂了之後對這一部分要豐富一下,但我知道可以用liblinear來做,過幾天做出來再講講裏面的細節和問題 ,對於內存不夠的問題可以用稀疏矩陣, 可以看出第三列裏特徵矩陣式稀疏的)。
我現在還在研究上一幅圖第三列之前的過程是如何計算的, 主要先說這一部分吧。當然如果計算出了這個局部二值特徵,本文的工作也完成一大半。因爲後面的工作是交給liblinear庫去做的。
對於局部二值特徵的學習現在是傷透了腦筋,對於連續的變量,不知道如何使用迴歸樹,更確切的講,離散的值可以算一個信息增益來選擇特徵,那麼連續的變量如何選擇特徵呢,使用哪些指標?
對於這個問題,現在找到了兩種辦法,第一個辦法是使用特徵與屬性的相關性來選擇特徵,然後在隨機給出閾值。另一個方法是選擇一個特徵和閾值,這個特徵和閾值可以讓將樣本分爲兩部分,每一部分求一個平均,然後兩部分的樣本各自減去平均值再求平方和。
FAQ
1. 對連續的X和Y 如何學習迴歸樹
這個可以參考face alignment by explicit shape regression這片文章和CART算法。
有些問題大家一起思考一下,儘可能寫下您的見解。
1 深度爲 5 和 7 的樹分別多少個splite node 和 leaf node。
2 什麼是迴歸?
3 迴歸樹的X 和 Y 分別是什麼 ?
4 對於樹中的一個split node ,它分到這個節點的樣本繼續分成兩部分,怎樣的兩部分纔是最好的?
5 什麼是SSE?
6 信息增益是什麼?(學習迴歸樹之前必看)
7 什麼叫做model combination ?
8 隨機森林和Boosted Tree 有什麼區別,本文的方法是那種?
參考資料
龍星課程2012lesson7 model combination.
X. P. Burgos-Artizzu, P. Perona, and P. Dollar. Robust face
landmark estimation under occlusion. 2013. (有源碼)
X. Cao, Y. Wei, F. Wen, and J. Sun. Face alignment by
explicit shape regression. In Computer Vision and Pattern
Recognition (CVPR), 2012 IEEE Conference on. IEEE,
2012.