征點修正模型的訓練過程進行描述。
[0161]在第一特征點修正模型訓練的準備階段,可以準備預設數量的照片樣本,在訓練上述第一特征點修正模型時,可以在所有的照片樣本上人工標定出人臉區域,然后在標定出的人臉區域中,沿著人臉輪廓,采用統一的位置統一的標號人工標定出一定數量的均勻分布的人臉特征點。例如,在標定人臉特征點時,可以在照片樣本的人臉區域中,通過位置固定且均勻分布的特征點,對臉型、眉毛、眼睛、鼻子以及嘴巴進行勾勒,描繪出人臉的所有面部特征。
[0162]其中,標定的特征點分布越均勻,數量越多,最終訓練得到的模型越精確,然而標定過多的特征多會增加系統的計算量,因此在實現的過程中,所標定的特征點的數量,可以采用工程經驗值,或者根據系統的實際計算能力或者需求進行設定。例如,在實現時,可以準備5萬張圖像樣本,可以沿著所有照片樣本的每個人臉區域中人臉輪廓的周圍,人工標定一組均勻分布且位置固定的44個或者98個特征點。例如,假設所有圖片樣本中均人工標定98個點,那么可以統一采用O?97的編號進行標號,每一張圖片樣本中相同標號的特征點在人臉區域中的相對位置均固定。
[0163]當所有的照片樣本上,人臉特征點均標定完成后,此時可以利用這些已經標定成功的人臉特征點,基于SDM算法的矩陣模型訓練方法來訓練上述第一特征點修正模型。
[0164]在訓練上述第一特征點修正模型時,當所有照片樣本上均人工標定出一定數量的特征點后,可以將標定的人臉區域作為初始區域,根據已經標定的特征點,在所有照片樣本中標定的人臉區域中設置一組對應的初始特征點。
[0165]其中,在人臉區域中設定初始特征點時,可以根據上述初始特征點在人臉區域中的坐標占比來設定,所述坐標占比可比通過對預設數量的照片樣本中的人臉區域進行標定測量后得到。
[0166]例如,在對所有的照片樣本人工標定特征點的過程中,可以分別測量每一個特征點在照片人臉區域中的坐標占比,當所有的照片樣本均標定完成后,可以對測量出的所有照片樣本中每一個特征點的坐標占比數據進行分析,為每一個特征點分別設置合適的坐標占比(比如取均值),并將該坐標占比作為設定初始特征點的坐標占比。
[0167]其中,上述坐標占比可以用于衡量每一個特征點在人臉區域中的相對位置。不同的照片樣本中人臉區域的大小范圍均不相同,即使是不同的照片樣本中同一個位置的特征點,其對應的坐標也可能不同,因此通過坐標占比來衡量特征點在人臉區域中的相對位置,相對于使用特征點坐標來衡量特征點的位置更加精確。例如,以XY軸坐標系為例,上述坐標占比可以用特征點的X軸坐標與Y軸坐標的比值來表征。
[0168]因此,在人臉區域中設定初始特征點時,可以根據對預設數量的照片樣本中的人臉區域進行標定測量后得到的坐標占比,直接在所有照片樣本中獲取對應的初始特征點的坐標。此時設定的初始特征點的數量與所有照片樣本上人工標定的特征點的數量一致。
[0169]當然,在人臉區域中設定初始特征點時,除了以上描述的可以通過上述初始特征點在人臉區域中的坐標占比來設定以外,也可以通過其它方式來實現。在本實施例示出的另一種實現方式中,可以計算每張照片樣本上已經標定的人臉特征點的坐標均值,然后根據計算出的該坐標均值在上述初始的人臉區域中為每張照片樣本分別設定對應的初始特征點。
[0170]例如,假設所有照片樣本上均標定了 98個特征點,那么可以計算所有照片樣本上這98個特征點的平均坐標值,比如計算所有照片樣本上I號點的坐標均值,再計算2號點的坐標均值,以此類推。當計算出這98個特征點的平均坐標值后,可以將計算出的98個坐標均值作為預估值,在檢測到的初始的人臉區域中也預估出98個特征點。
[0171]值得說明的是,在訓練上述第一特征點修正模型的過程中,在為每張照片樣本設定初始特征點時,還可以為設定的初始特征點加上一定的隨機位移作為擾動值。在初始特征點中加入擾動值,最終在基于初始特征點來訓練對應的模型時,可以增加模型的精準度。
[0172]在本實施例中,當初始特征點設定完成后,此時可以基于設置的這些初始特征點來訓練上述第一特征點修正模型。
[0173]如前所述,由于SDM算法每次迭代的偏移量delta_Xn是圖像特征向量¥?的線性函數fn (Yn),而fn (Yn) = An*Yn,因此當初始特征點設定完成后,可以提取這些初始特征點對應的圖像紋理特征向量Υη,并計算定位矩陣Αη。
[0174]一方面,可以分別針對所有照片樣本中已經設定的初始特征點XJX。表示一組設置完成的初始特征點),來提取對應的圖像紋理特征向量Y。。
[0175]在提取圖像紋理特征向量時,可以通過在每個初始特征點上提取一個k維向量來作為特征描述子,然后將從所有初始特征點上提取出的特征描述子,連接成一個k*p維向量Yn (P為需要定位的特征點)。
[0176]其中,在提取特征描述子時,可以有多種選擇,而在正常的情況下,特征描述子要求維數低,能夠簡明地描述特征點的圖像內容,對光照變化,幾何變化的魯棒性要好等等,因此在本實施例中示出的一種實施方式中,可以提取3x3的HOG (Histogram of OrientedGradient,方向梯度直方圖)和3x3的灰度點陣作為特征描述子。
[0177]值得說明的是,在實際的應用過程中,描述子維數過高,通常會直接影響到定位預測矩陣總的大小,因此為了控制需要學習的參數的數目,還可以根據預設的降維算法對從圖片里提取出來的特征描述子進行降維;例如,可以將所有從標注的人臉特征點收集起來,采用PCA (Principal Component Analysis主成份分析法)算法進行處理,獲得一個降維矩陣B(m X k維),然后使用該降維矩陣對1向量中的每個描述子進行降維,得到一個降維后的圖像特征向量Zn(m*p維向量),后續在計算偏移量delta_Xn時,可以使用該圖像特征向量2?替代上述圖像特征向量Yn,即線性函數fn(Yn)可以表示成fn(Yn) = An*Yn= A n*B(Yn)=An* Zn0
[0178]另一方面,還可以針對每張照片樣本中已經設定的初始特征點的位置,來計算與所有照片樣本中由人工標注的人臉特征點之間的偏移量delta_X。,此時delta_X。= Χ*-Χ。,X。表示所有照片樣本中已經設定的初始特征點的位置坐標,X *表示所有照片樣本中由人工標注的人臉特征點的位置坐標。
[0179]當提取出每張圖片中已經設定的初始特征點對應的圖像特征向量Y。,以及計算出每張照片樣本中已經設定的初始特征點與所有照片樣本中由人工標注的人臉特征點之間的偏移量delta_X。后,則可以基于偏移量delta_X。與初始特征點X。之間存在的線性關系,通過線性擬合的方式來學習出定位預測矩陣A。。其中,A。表示基于SBM算法進行第一次迭待計算時所采用的定位預測矩陣。
[0180]例如,如前所述,在SDM算法中,上述線性關系可以用線性函數del ta_Xn =A ?樸?來表示,因此根據該線性關系,可以很容易得出delta_X。= Α0Υ。。
[0181]通過上述線性函數可以很容易發現,此時計算出的delta_X。以及Y。對上述線性函數中的A。存在一定的約束關系,當將delta_X。以及Y。作為預測數據時,A。則可以理解為delta_X。以及Y。的約束矩陣。
[0182]對于這種情況,在基于上述線性函數來求解A。時,可以將計算出的偏移量delta_X。以及提取出的圖像特征向量Y c作為預測數據,通過最小二乘法線性擬合的方式來求解出
A0O
[0183]其中,通過最小二乘法線性擬合的方式來求解A。的過程,在本實施例中不再進行詳述,本領域技術人員在將以上技術方案輔助實現時,可以參考現有技術中的介紹。
[0184]當通過最小二乘法線性擬合的方式來求解出A。時,此時A。即為基于SBM算法進行第一次迭待計算時所采用的定位預測矩陣。當計算出A。時,可以通過上述線性函數計算出第一次迭代時的偏移量delta_X。,上述X。可以加上該偏移量得到下一次迭代的一組特征點A10當計算出下一次迭代的一組特征點仏后,可以重復以上的迭代過程,直到SDM算法收斂。
[0185]值得說明的是,在不斷的迭代的過程中,定位出的一組人臉特征點與照片樣本中人工標定的一組人臉特征點之間的位移誤差將不斷被修正,當SDM算法收斂后,此時定位出的人臉特征點與照片樣本中的人工標定的人臉特征點之間的位移誤差為最小,因此當SDM算法收斂后,此時上述第一特征點修正模型訓練完畢,上述第一特征點修正模型中每次迭代后計算出的定位預測矩陣,已可以用于對用戶提供的目標圖片進行人臉特征點定位。
[0186]其中,在訓練上述第一特征點修正模型時,SDM算法收斂時進行的迭代次數,在本公開不進行特別限定。例如,基于工程經驗值,在人臉特征點定位的應用中,通常需要迭代4次,因此上述第一特征點修正模型中,可以提供A。?A 3等4個定位預測矩陣。
[0187]以上描述的是對第一特征點修正模型進行訓練的詳細過程。
[0188]上述第一特征點修正模型是基于照片樣本中人臉輪廓周圍均勻分布的一組初始特征點,以人臉區域為初始區域訓練而成。
[0189]對于訓練出的上述第一特征點修正模型,可以用于對目標照片上設定的初始特征點的坐標進行修正,得到上述初次修正特征點的坐標,從而實現人臉特征點的精準定位。上述目標照片,即為用戶需要進行人臉特征點定位的照片。
[0190]在針對目標圖片進行人臉特征點定位時,可以利用快速人臉檢測技術(例如可以使用諸如adaboost等成熟的人臉檢測器),對上述目標照片進行人臉區域檢測得到一個初始的人臉區域,并在該人臉區域中設定初始特征點。
[0191]其中,在目標照片中檢測到的人臉區域中設定初始特征點時,仍然可以根據上述初始特征點在人臉區域中的坐標占比,或者計算每張照片樣本中標定的人臉特征點的坐標均值來設定,詳細過程不再贅述。
[0192]當在目標照片中檢測到的人臉區域中設定了初始特征點后,可以針對目標照片中已經設定的這一組初始特征點X0,來提取對應的圖像紋理特征向量Y。,然后將提取出的圖像特征向量Yc,與已經訓練完成的第一特征點修正模型中提供的定位預測矩陣總進行迭代運算,以對目標照片中上述初始特征點X。進行初次修正,得到初次修正特征點坐標。
[0193]在將目標照片的上述圖像紋理特征向量Y。,與與已經訓練完成的第一特征點修正模型中提供的定位預測矩陣總進行迭代運算時,假設第一特征點修正模型中提供了 Aid-A3等4個定位預測矩陣,那么將進行4次矩陣乘法計算,首先可以根據A。對上述圖像紋理特征向量I進行矩陣乘法計算,進行第一次迭代,得到一組第一初始特征點坐標,然后根據A !對計算得到的上述第一初始特征點坐標再次進行矩陣乘法計算,進行第二次迭代,得到一組第二初始特征點坐標,然后再根據^對計算得到的上述第二初始特征點坐標再次進行矩陣乘法計算,進行第三次迭代,得到第三初始特征點坐標,當第三次迭代完成,再根據4對計算得到的上述第三初始特征點坐標進行矩陣乘法計算,得到上述初次修正特征點坐標,此時迭代完成。
[0194]在本實施例中,由于第一特征點修正模型在針對目標圖片進行人臉特征點定位時,是以檢測出的人臉框為初始區域的,定位精度非常依賴于初始框的位置,初始框在實際人臉的內部時,人臉內部的變化較小,SDM算法迭代后的定位結果會比較好,當初始框在實際人臉的外部時,由于外部背景的變化可能很大,就會造成SDM算法迭代都的定位結果不精確,因此為了提高定位精度,當第一特征點修正模型在針對目標圖片進行人臉特征點定位結束后,還可以對矩陣乘法計算后得到的多個上述初次修正特征點進行二次修正,得到預設數量的二次修正特征點坐標。
[0195]在針對上述初次修正特征點進行二次修正時,可以針對多個上述初次修正特征點進行中心特征點識別,得到至少一個中心特征點坐標,然后根據中心特征點坐標與上述二次修正特征點坐標之間的映射關系,對上述初次修正特征點進行坐標映射,得到預設數量的二次修正特征點坐標。
[0196]其中,在本實施例示出的一種實現方式中,上述中心特征點可以是眼球中心,上述中心特征點坐標則可以是雙眼的眼球中心的坐標。
[0197]當上述中心特征點為眼球中心時,在基于上述初次修正特征點來識別眼球中心時,由于眼球中心點的紋理特征較豐富,因此可以通過預設的眼球定位算法將上述初次修正特征點的坐標作為輔助參數,通過識別眼球中心點的紋理特征來進行眼球中心的定位。其中,上述預設的眼球定位算法在本實施例中不進行特別限定,本領域技術人員可以參考相關技術中的實現過程。
[0198]當基于上述初次修正特征點的坐標識別出兩個眼球中心的坐標時,可以基于眼球中心的坐標與