人臉對齊的演算法是我本科階段的畢業設計課題,從最初的一臉迷茫到最後完成畢設,兩個月的時光,恭喜自己順利完成了畢業設計,在過程中,更是不能缺少指導老師以及學長們給予的幫助。衷心感謝!
人臉對齊的目的是對人臉進行歸一化,工作核心是定位面部關鍵點。本部落格中討論的sdm是一種人臉對齊的優化演算法。利用sift演算法計算人臉關鍵點處的特徵點描述子,在訓練過程中學習多組特徵點集的下降方向,使得初始化的特徵點集向標記特徵點集收斂。
宿佳寧老師的《人臉對齊演算法研究》中提到:影象採集、人臉檢測、人臉對齊、分類識別四個部分組成了人臉識別的工作過程。
其中人臉對齊作為人臉識別的乙個組成部分,將會影響整個流程的工作效率和正確率,所以高效率的人臉對齊演算法是研究的主要目的。
人臉對齊演算法的研究工作存在很多難點,人臉影象易受外界因素影響,這些因素大致有以下幾點:面部遮擋、光照變化、複雜的背景、採集影象時的拍攝角度、面部表情變化。
在研究過程中採集面部輪廓、眉毛、鼻子、眼睛、嘴唇的形狀作為關鍵點集合,包含68個關鍵點,其中17個點代表人臉輪廓,10個點代表眉毛形狀,9個點代表鼻子形狀,12個點代表眼睛形狀,20個點代表嘴唇形狀,如下圖所示:
這裡寫描述
過程中的數學建模的部分就不細寫了,在很多老師的**中都有數學建模的過程以及其原理。
在研究過程中,我將整個sdm演算法分為了三個框架:影象預處理框架、訓練框架、測試框架。
預處理為了方便後期的工作,先將樣本集歸一化,這樣可以大大的提高訓練的效率。對載入的影象進行人臉檢測,並對人臉進行裁剪,將人臉部分裁剪為200*200大小的;同時,也對影象對應的標記關鍵點集做變化,生成對應大小的關鍵點集。下圖是原樣本集的影象截圖:
這裡寫描述
經過預處理後的截圖為:
這裡寫描述
(在研究初期我並沒有對樣本集進行預處理,導致我在研究過程中一次次的繞彎,但是走不到終點…對此,感覺自己被自己蠢哭了hhhhhh)
訓練a.求偏差:進入訓練框架後,首先需要計算當前特徵點集(當前形狀)與標記特徵點集(目標形狀)的偏差;
c.計算回歸器並儲存資料:將a和b的結果傳入實現最小二乘法/梯度下降法的函式,求解出使得目標函式(損失函式)取最小值時的資料(回歸器)並儲存。
不過此處我建議使用梯度下降法,因為我在最初的時候是使用最小二乘法,也可能是我實現過程中的缺陷,每執行一次訓練,就需要很大的時間成本,而且過程中出現了很多大大小小的bug.所以我建議採用matlab一起結合,用matlab實現梯度下降法,大大減小了時間成本
測試下面直接放上測試的結果:
首先是簡化的訓練樣本集和測試集(設定了乙個**人臉樣本集的訓練,演算法的原理和流程和sdm演算法一模一樣,唯一不同的是**人臉樣本的特徵點較少,證明sdm演算法的可行性):
這裡寫描述
這裡寫描述
這裡寫描述
最後是為了測試演算法的真實性,指導老師要求測試本人的一張**,這個結果還存在偏差,並不是最優結果,還需要再進行迭代收斂。
寧波眼部整形:
人臉對齊(九) SDM演算法
略刪改。sdm supervised descent method 是一種監督下降方法,屬於解決非線性最小化nls non linear least squares 問題的一種方法。解決非線性最優化問題通常有2個難點,1 方程不可微,或者計算量太大 2 hessian矩陣太大,或者不是正定矩陣 基於...
人臉識別之人臉對齊(八) LBF演算法
整體來看,其實 esr是基礎版本的形狀回歸,ert將回歸樹修改為gbdt,由原始的直接回歸形狀,改進為回歸形狀殘差,而lbf,是加速特徵提取,由原來的畫素差分特徵池,改為隨機選擇點。基於lbf方法的人臉對齊,出自face alignment at3000 fps via regressing loc...
人臉對齊介紹
1 五官定位 2 表情識別 3 人臉漫畫 素描生成 4 增強現實 5 換臉 6 3d建模 給定人臉區域 i,從該區域出發,根據一定的規則 f,找到特徵點位置 x。即 x f i 所以,人臉對齊演算法便是設計函式 規則 f,f的優劣變體現在擬合效果 執行效率 引數儲存空間 泛化能力 即適應資料集以外的...