人臉特征點定位方法和裝置的制造方法
【專利摘要】本發明提出一種人臉特征點定位方法和裝置,該方法包括接收人臉圖片;獲取所述人臉圖片中人臉特征點的初始值;根據預先建立的訓練模型,確定所述人臉特征點的特征點對和閾值,并根據所述特征點對和閾值確定所述人臉圖片在所述訓練模型中對應的節點,并獲取所述節點的節點值,其中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系;根據所述初始值和所述節點值,確定所述人臉特征點的定位結果。該方法可以提高人臉特征點定位效果。
【專利說明】
人臉特征點定位方法和裝置
技術領域
[0001]本發明涉及信息技術領域,尤其涉及一種人臉特征點定位方法和裝置。
【背景技術】
[0002]人臉識別在安全、娛樂等方面有著廣泛應用。人臉識別的結果受到人臉特征點定位準確性的影響。人臉特征點定位的過程中會遇到外部因素和人臉因素的干擾,外部因素例如光照不均、背景復雜等,人臉因素例如頭發、胡子、眼鏡、表情等。
[0003]現有技術中,可以利用基于fern結構的特征點定位方法。該方法構造了若干個串聯的fern結構,每個fern結構是一個滿二叉樹,在訓練過程中,對每個fern結構依次進行訓練。在對每個fern結構進行訓練時會采用特征點對,現有技術中,特征點對是根據像素值與偏移量之間的關系確定的。
[0004]但是,這種方式的定位效果不夠理想。
【發明內容】
[0005]本發明旨在至少在一定程度上解決相關技術中的技術問題之一。
[0006]為此,本發明的一個目的在于提出一種人臉特征點定位方法,該方法可以提高人臉特征點定位效果。
[0007]本發明的另一個目的在于提出一種人臉特征點定位裝置。
[0008]為達到上述目的,本發明第一方面實施例提出的人臉特征點定位方法,包括:接收人臉圖片;獲取所述人臉圖片中人臉特征點的初始值;根據預先建立的訓練模型,確定所述人臉特征點的特征點對和閾值,并根據所述特征點對和閾值確定所述人臉圖片在所述訓練模型中對應的節點,并獲取所述節點的節點值,其中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系;根據所述初始值和所述節點值,確定所述人臉特征點的定位結果。
[0009]本發明第一方面實施例提出的人臉特征點定位方法中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系,可以在訓練時將具有相同位置關系的訓練樣本最終歸入同一個節點中,從而該節點的節點值是由具有相同位置關系的訓練樣本得到的,從而可以提高定位效果。
[0010]為達到上述目的,本發明第二方面實施例提出的人臉特征點定位裝置,包括:接收模塊,用于接收人臉圖片;獲取模塊,用于獲取所述人臉圖片中人臉特征點的初始值;處理模塊,用于根據預先建立的訓練模型,確定所述人臉特征點的特征點對和閾值,并根據所述特征點對和閾值確定所述人臉圖片在所述訓練模型中對應的節點,并獲取所述節點的節點值,其中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系;確定模塊,用于根據所述初始值和所述節點值,確定所述人臉特征點的定位結果。
[0011]本發明第二方面實施例提出的人臉特征點定位裝置中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系,可以在訓練時將具有相同位置關系的訓練樣本最終歸入同一個節點中,從而該節點的節點值是由具有相同位置關系的訓練樣本得到的,從而可以提高定位效果。
[0012]本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
【附圖說明】
[0013]本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
[0014]圖1是本發明一實施例提出的人臉特征點定位方法的流程示意圖;
[0015]圖2是本發明實施例中定位出人臉特征點的流程示意圖;
[0016]圖3是本發明實施例中fern結構示意圖;
[0017]圖4是本發明實施例中需要定位的特征點示意圖;
[0018]圖5是本發明實施例中建立訓練模塊流程示意圖;
[0019]圖6是本發明另一實施例提出的人臉特征點定位方法的流程示意圖;
[0020]圖7是本發明實施例中選取特征點對方法示意圖;
[0021]圖8是本發明另一實施例提出的人臉特征點定位方法的流程示意圖;
[0022]圖9是本發明實施例中對訓練樣本進行劃分的結果示意圖;
[0023]圖10是本發明另一實施例提出的人臉特征點定位裝置的結構示意圖;
[0024]圖11是本發明另一實施例提出的人臉特征點定位裝置的結構示意圖。
【具體實施方式】
[0025]下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發明,而不能理解為對本發明的限制。相反,本發明的實施例包括落入所附加權利要求書的精神和內涵范圍內的所有變化、修改和等同物。
[0026]圖1是本發明一實施例提出的人臉特征點定位方法的流程示意圖,該方法包括:
[0027]Sll:接收人臉圖片。
[0028]其中,接收的人臉圖片是要進行人臉特征點定位的人臉圖片。
[0029]S12:獲取所述人臉圖片中人臉特征點的初始值。
[0030]人臉特征點是指人臉的關鍵點,具體的關鍵點可以預先指定,例如,關鍵點包括:眼角、嘴角、鼻子等位置的點。
[0031]例如,參見圖2,接收到人臉圖片后,可以根據預設規則在人臉圖片中確定出人臉框21,再根據人臉框定位出人臉特征點,如圖2所示,人臉特征點用填充的黑點表示。
[0032]人臉特征點的初始值可以根據人臉框的位置以及預設規則進行初始化,例如將人臉框從左側數第η個,且從上側數第m個像素點的位置確定為左眼的初始值等。
[0033]S13:根據預先建立的訓練模型,確定所述人臉特征點的特征點對和閾值,并根據所述特征點對和閾值確定所述人臉圖片在所述訓練模型中對應的節點,并獲取所述節點的節點值,其中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系O
[0034]本實施例是對現有的基于fern結構的人臉特征點定位方法的改進。
[0035]Face Alignment by Explicit Shape Regress1n 論文提出了一種基于 fern 結構的特征點定位方法。該方法構造了若干個串聯的fern結構,每個fern結構是一個滿二叉樹,在訓練過程中,對每個fern結構依次進行訓練。如:在訓練一個fern (A)的時候,需要將所有的給定初始值的訓練樣本按照fern(A)各層節點的分類規則進行分類,直至每個訓練樣本進入fern (A)最后一層的某一個節點里,最后一層的節點稱為二進制(bin)節點,最后統計每個bin里落入的訓練樣本定位特征點的偏移量,取平均值,即為這個bin的偏移量,從而完成了對fern (A)的更新。而后重新計算每個樣本應該落在哪個bin里,將該bin的偏移量加到樣本上,即完成了對樣本的更新。之后,重復進行對下一個fern的訓練,直至所有訓練樣本誤差不再變化。
[0036]本實施例中,采用的訓練模型包括fern結構,參見圖3,fern結構是一個滿二叉樹,該滿二叉樹的最后一層的節點31稱為二進制(bin)節點,除最后一層的bin節點外,其他層的節點32都是分類節點。
[0037]二叉樹是指每個節點最多有兩個子樹的樹結構,每個節點的左側的子樹稱為“左子樹”,每個節點的右側的子樹稱為“右子樹”。
[0038]—棵深度為k,且有2k_l個節點的二叉樹稱為滿二叉樹。深度是指二叉樹包括的節點的層數,如圖3所示,該二叉樹的深度是5。
[0039]fern結構中,分類節點的層數與要定位的特征點的個數相同,例如,參見圖4,要定位的特征點有四個,分別是左眼,右眼,左嘴角和右嘴角,則參見圖3,fern結構的分類節點是四層,最后一層是bin節點。
[0040]基于fern結構的人臉特征點定位時,每個要定位的人臉圖片最終要對應到一個bin節點,具體可以從該要定位的人臉圖片中確定出特征點對和閾值,再根據特征點對和閾值確定該人臉圖片在fern結構對應的bin節點。
[0041]在對應到bin節點后,可以獲取該bin節點的節點值,bin節點的節點值可以在訓練過程中確定。
[0042]可選的,可以預先建立人臉特征點與特征點對和閾值的對應關系,之后在獲取到要定位的人臉圖片的人臉特征點的初始值后,根據該對應關系,可以確定該要定位的人臉圖片中人臉特征點的特征點對和閾值。
[0043]其中,人臉特征點與特征點對和閾值的對應關系也可以在訓練過程中確定。
[0044]在訓練過程中可以建立訓練模型,參見圖5,建立訓練模塊包括:
[0045]S51:根據人臉特征點的個數,建立滿二叉樹,所述滿二叉樹包括分類節點和二進制節點,且每層分類節點對應一個人臉特征點。
[0046]例如,參見圖4,人臉特征點是4個時,可以建立如圖3所示的滿二叉樹。
[0047]其中,滿二叉樹的最后一層節點稱為二進制(bin)節點,除最后一層節點之外的其余各層節點稱為分類節點。
[0048]S52:根據訓練樣本,進行特征提取,獲取人臉特征點與特征點對和閾值之間的對應關系,并根據所述對應關系,確定所述分類節點對應的特征點對和閾值。
[0049]訓練樣本是預先收集的多個人臉圖片。
[0050]對應每個訓練樣本可以進行特征提取,得到每個人臉特征點對應的特征點對和閾值,特征提取后可以將訓練樣本歸入相應的bin節點中,并更新bin節點值,根據更新后的bin節點值可以得到訓練樣本的定位結果,根據訓練樣本的定位結果和真實值可以判斷是否達到收斂條件,例如,定位結果與真實值的差值小于預設值表明達到收斂條件,在達到收斂條件時,將達到收斂條件時對應的訓練樣本確定出的人臉特征點與特征點對和閾值的對應關系確定為最終定位時采用的對應關系。
[0051]在得到人臉特征點與特征點對和閾值的對應關系時,在定位時,對應要定位的人臉圖片,根據該對應關系就可以得到該人臉圖片的特征點對應的特征點對和閾值,例如,在訓練時得到右眼對應(i'Γ)和λ %則在定位時可以確定右眼對應的特征點對和閾值是:(i*,j*)和 λ *。
[0052]具體的,特征點對(i' j*)的值可以是相對值,在訓練時,對應人臉特征點確定出特征點對后,根據訓練樣本的真實值可以得到特征點對與真實值之間的相對值,訓練時得到的人臉特征點對應的特征點對的值就可以用該相對值表示,而在定位時,根據該相對值以及人臉特征點的初始值,可以得到人臉特征點對應的特征點對的位置。
[0053]參見圖6,所述根據訓練樣本,進行特征提取,獲取人臉特征點與特征點對和閾值之間的對應關系,包括:
[0054]S61:獲取所述訓練樣本中的人臉特征點的真實值和初始值。
[0055]其中,初始值可以采用預設規則的初始化方式確定。
[0056]真實值是指訓練樣本的人臉特征點的真實值,由于訓練樣本是已知的,真實值也是已知的。
[0057]S62:在所述人臉特征點中確定當前處理的人臉特征點,并對應所述當前處理的人臉特征點獲取可供選擇的參數,所述參數包括:特征點對,方向角度和閾值。
[0058]其中,通常人臉特征點是多個,在處理時可以依次對應每個人臉特征點進行處理。
[0059]假設當前處理的人臉特征點是右眼,其余人臉特征點的處理方式可以依此類推。
[0060]特征點對是指當前處理的人臉特征點周圍預設范圍內的任意兩個像素點。例如,參見圖7,當前處理的人臉特征點是右眼,可以以右眼的真實值為圓心,以預設的半徑值r為半徑畫一個圓,在該圓內任意選擇兩個像素點作為一對特征點對。參見圖7,以右眼為例,對應的特征點對用填充的黑點表示,分別是眉頭和眼尾的點。可以理解的是,在具體選擇時,可以選擇預設數量的特征點對,而不是將所有可能的選擇方式都選取,以降低運算復雜度。
[0061]方向角度是指穿過當前處理的人臉特征點的真實值位置的直線與預設直線之間的角度,例如,預設直線是水平方向的直線。具體如,參見圖7,穿過右眼畫出一條直線71,方向角度是該直線71與預設直線之間的角度。
[0062]閾值是預設的多個值。
[0063]從上述選擇參數的過程中可以看出,特征點對,方向角度和閾值都存在多個值,在處理時,可以依次遍歷每個值,從中選擇出最優的值。
[0064]S63:在所述參數中,遍歷每組特征點對,每個方向角度和每個閾值,根據當前遍歷的特征點對,方向角度和閾值,以及當前處理的人臉特征點的真實值和初始值,得到當前遍歷的特征點對的分數,并將分數最高時的特征點對和閾值確定為所述當前處理的人臉特征點對應的特征點對和閾值。
[0065]可選的,參見圖8,所述根據當前遍歷的特征點對,方向角度和閾值,以及當前處理的人臉特征點的真實值和初始值,得到當前遍歷的特征點對的分數,包括:
[0066]S81:確定當前遍歷的特征點對和閾值;
[0067]例如,當前遍歷的特征點對表示為:i點和j點。
[0068]當前遍歷的閾值表示為:λ。
[0069]S82:根據所述真實值和所述方向角度,確定當前直線,所述當前直線是經過所述真實值且角度是所述方向角度的直線。
[0070]例如,當前遍歷的方向角度是Θ,假設該直線用圖7中的直線71表示。
[0071]S83:根據所述特征點對和閾值,以及所述初始值,對所述訓練樣本進行劃分。
[0072]其中,可以將訓練樣本劃分為第一樣本和第二樣本,例如,所述第一樣本是特征取值小于或等于當前遍歷的閾值的樣本,第二樣本是特征取值大于當前遍歷的閾值的樣本,特征取值是當前遍歷的特征點對在樣本上的顏色值的差值。可以理解的是,等于時也可以歸為第二樣本,例如,第一樣本是特征取值小于當前遍歷的閾值的樣本,第二樣本是特征區域大于或等于當前遍歷的閾值的樣本。本實施例以等于時歸為第一樣本為例。
[0073]以顏色值是灰度值為例,對應一個訓練樣本,可以找到i點和j點,并且可以確定i和j點之間的灰度值的差值,如果該差值小于或等于λ,則該訓練樣本是第一樣本,反之,如果i和j點之間的灰度值的差值大于λ,則該訓練樣本是第二樣本。
[0074]如圖9所不,第一樣本和第二樣本用不同填充方式的圓點表不。
[0075]S84:根據所述當前直線和劃分后的訓練樣本的個數,計算所述分數。
[0076]所述分數的計算公式為:
[0077]Score = C_1eft/S_1eft+C_r i ght/S_r i ght,
[0078]其中,Score是當前遍歷的特征點對的分數,C_left是位于當前直線左側的第一樣本的個數,S_left是位于當前直線左側的第一樣本和第二樣本的總數,C_right是位于當前直線右側的第一樣本的個數,S_right是位于當前直線右側的第一樣本和第二樣本的總數。
[0079]例如,在圖9所示的情況下,Score = 8/11+3/15。
[0080]如圖8所示的流程,可以得到當前遍歷的特征點對,方向角度和閾值所對應的分數,依此類推,可以獲取每個特征點對,方向角度和閾值對應的分數,之后,通過比較,可以得到分數最高時對應的特征點對,方向角度和閾值,也就是最優的特征點對,方向角度和閾值,假設分別表示為(i*,j*),θ*,λ*。
[0081]S64:建立所述人臉特征點與特征點對和閾值之間的對應關系。
[0082]如上所示,對應當前處理的人臉特征點,可以得到最優的特征點對,方向角度和閾值,由于后續定位時不需要方向角度,因此可以建立人臉特征點與特征點對和閾值之間的對應關系。
[0083]例如,當前處理的人臉特征點是右眼,對應的最優值包括:(Γ,j*),λ %則可以建立右眼與(i*,j*)和λ*的對應關系。
[0084]其他人臉特征點與特征點對和閾值之間的對應關系也可以依此原理得到,從而可以得到每個人臉特征點與特征點對和閾值之間的對應關系。
[0085]在建立人臉特征點與特征點對和閾值之間的對應關系后,由于分類節點與人臉特征點對應,也可以確定分類節點對應的特征點對和閾值,例如,fern結構的第一層節點對應右眼,則第一層節點對應的特征點對和閾值就是右眼對應的特征點對和閾值。
[0086]S53:根據所述分類節點以及所述分類節點對應的特征點對和閾值,將所述訓練樣本劃分到所述二進制節點中,并根據二進制節點中訓練樣本的初始值得到所述二進制節點的節點值。
[0087]對應每個訓練樣本,獲取每個分類節點對應的特征點對和閾值后,假設對應第一層節點,可以根據該第一層節點對應的特征點對選取該訓練樣本中的特征點對,例如,根據(i*, j*)的坐標值在訓練樣本中選擇對應位置的特征點對。需要說明的是,(Λ Γ)的坐標值可以是相對于預設的坐標圓點的絕對坐標值,也可以是相對于訓練樣本的人臉特征點的真實值的相對坐標值,或者,在人臉特征點定位時,相對于要定位的人臉圖片中人臉特征點的初始值的相對坐標值。
[0088]在確定出訓練樣本的特征點對后,可以獲取該特征點對之間的灰度差值,再與該分類節點對應的閾值比較大小,根據比較結果對訓練樣本進行分類,例如,灰度差值小于閾值時劃分到左子樹,灰度差值大于閾值時劃分到右子樹。
[0089]依此按照每層進行劃分,可以將訓練樣本劃分到最后一層的bin節點中。
[0090]通過上述流程可以將具有相同位置關系的訓練樣本落入同一個bin節點中,例如,第一個bin節點包括的訓練樣本是:右眼的初始值小于真實值,左眼的初始值小于真實值,左嘴角的初始值小于真實值,且右嘴角的初始值小于真實值,第二個bin節點包括的訓練樣本是:右眼的初始值大于真實值,左眼的初始值小于真實值,左嘴角的初始值小于真實值,且右嘴角的初始值小于真實值等。
[0091]假設第一個bin節點包括的訓練樣本包括Al,A2和A3,則可以根據Al,A2和A3的人臉特征點的初始值和真實值確定該第一個bin節點的節點值,例如,根據Al的人臉特征點的初始值和真實值可以得到第一差值,類似的,可以得到A2對應的第二差值,A3對應的第三差值,之后,可以對第一差值,第二差值和第三差值取均值,將該均值確定為第一個bin節點的節點值。
[0092]S14:根據所述初始值和所述節點值,確定所述人臉特征點的定位結果。
[0093]例如,對應一個人臉特征點,將該人臉特征點的初始值與該人臉圖片對應的節點的節點值之和,確定為該人臉特征點的定位結果。
[0094]在具體實施時,本實施例可以采用C語言實現。
[0095]本實施例中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系,可以在訓練時將具有相同位置關系的訓練樣本最終歸入同一個節點中,從而該節點的節點值是由具有相同位置關系的訓練樣本得到的,從而可以提高定位效果。
[0096]圖10是本發明另一實施例提出的人臉特征點定位裝置的結構示意圖,該裝置100包括接收模塊101、獲取模塊102、處理模塊103以及確定模塊104。
[0097]接收模塊101,用于接收人臉圖片。
[0098]其中,接收的人臉圖片是要進行人臉特征點定位的人臉圖片。
[0099]獲取模塊102,用于獲取所述人臉圖片中人臉特征點的初始值。
[0100]人臉特征點是指人臉的關鍵點,具體的關鍵點可以預先指定,例如,關鍵點包括:眼角、嘴角、鼻子等位置的點。
[0101]例如,參見圖2,接收到人臉圖片后,可以根據預設規則在人臉圖片中確定出人臉框21,再根據人臉框定位出人臉特征點,如圖2所示,人臉特征點用填充的黑點表示。
[0102]人臉特征點的初始值可以根據人臉框的位置以及預設規則進行初始化,例如將人臉框從左側數第η個,且從上側數第m個像素點的位置確定為左眼的初始值等。
[0103]處理模塊103,用于根據預先建立的訓練模型,確定所述人臉特征點的特征點對和閾值,并根據所述特征點對和閾值確定所述人臉圖片在所述訓練模型中對應的節點,并獲取所述節點的節點值,其中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系。
[0104]本實施例是對現有的基于fern結構的人臉特征點定位方法的改進。
[0105]Face Alignment by Explicit Shape Regress1n 論文提出了一種基于 fern 結構的特征點定位方法。該方法構造了若干個串聯的fern結構,每個fern結構是一個滿二叉樹,在訓練過程中,對每個fern結構依次進行訓練。如:在訓練一個fern (A)的時候,需要將所有的給定初始值的訓練樣本按照fern(A)各層節點的分類規則進行分類,直至每個訓練樣本進入fern (A)最后一層的某一個節點里,最后一層的節點稱為二進制(bin)節點,最后統計每個bin里落入的訓練樣本定位特征點的偏移量,取平均值,即為這個bin的偏移量,從而完成了對fern (A)的更新。而后重新計算每個樣本應該落在哪個bin里,將該bin的偏移量加到樣本上,即完成了對樣本的更新。之后,重復進行對下一個fern的訓練,直至所有訓練樣本誤差不再變化。
[0106]本實施例中,采用的訓練模型包括fern結構,參見圖3,fern結構是一個滿二叉樹,該滿二叉樹的最后一層的節點31稱為二進制(bin)節點,除最后一層的bin節點外,其他層的節點32都是分類節點。
[0107]二叉樹是指每個節點最多有兩個子樹的樹結構,每個節點的左側的子樹稱為“左子樹”,每個節點的右側的子樹稱為“右子樹”。
[0108]一棵深度為k,且有2k_l個節點的二叉樹稱為滿二叉樹。深度是指二叉樹包括的節點的層數,如圖3所示,該二叉樹的深度是5。
[0109]fern結構中,分類節點的層數與要定位的特征點的個數相同,例如,參見圖4,要定位的特征點有四個,分別是左眼,右眼,左嘴角和右嘴角,則參見圖3,fern結構的分類節點是四層,最后一層是bin節點。
[0110]基于fern結構的人臉特征點定位時,每個要定位的人臉圖片最終要對應到一個bin節點,具體可以從該要定位的人臉圖片中確定出特征點對和閾值,再根據特征點對和閾值確定該人臉圖片在fern結構對應的bin節點。
[0111]在對應到bin節點后,可以獲取該bin節點的節點值,bin節點的節點值可以在訓練過程中確定。
[0112]可選的,可以預先建立人臉特征點與特征點對和閾值的對應關系,之后在獲取到要定位的人臉圖片的人臉特征點的初始值后,根據該對應關系,可以確定該要定位的人臉圖片中人臉特征點的特征點對和閾值。
[0113]其中,人臉特征點與特征點對和閾值的對應關系也可以在訓練過程中確定。
[0114]確定模塊104,用于根據所述初始值和所述節點值,確定所述人臉特征點的定位結果O
[0115]例如,對應一個人臉特征點,將該人臉特征點的初始值與該人臉圖片對應的節點的節點值之和,確定為該人臉特征點的定位結果。
[0116]在具體實施時,本實施例可以采用C語言實現。
[0117]一個實施例中,所述節點值是二進制節點的節點值,參見圖11,所述裝置100還包括建立模塊105,所述建立模塊105用于建立訓練模型。所述建立模塊105包括:
[0118]第一單元1051,用于根據人臉特征點的個數,建立滿二叉樹,所述滿二叉樹包括分類節點和二進制節點,且每層分類節點對應一個人臉特征點。
[0119]例如,參見圖4,人臉特征點是4個時,可以建立如圖3所示的滿二叉樹。
[0120]其中,滿二叉樹的最后一層節點稱為二進制(bin)節點,除最后一層節點之外的其余各層節點稱為分類節點。
[0121]第二單元1052,用于根據訓練樣本,進行特征提取,獲取人臉特征點與特征點對和閾值之間的對應關系,并根據所述對應關系,確定所述分類節點對應的特征點對和閾值。
[0122]訓練樣本是預先收集的多個人臉圖片。
[0123]對應每個訓練樣本可以進行特征提取,得到每個人臉特征點對應的特征點對和閾值,特征提取后可以將訓練樣本歸入相應的bin節點中,并更新bin節點值,根據更新后的bin節點值可以得到訓練樣本的定位結果,根據訓練樣本的定位結果和真實值可以判斷是否達到收斂條件,例如,定位結果與真實值的差值小于預設值表明達到收斂條件,在達到收斂條件時,將達到收斂條件時對應的訓練樣本確定出的人臉特征點與特征點對和閾值的對應關系確定為最終定位時采用的對應關系。
[0124]在得到人臉特征點與特征點對和閾值的對應關系時,在定位時,對應要定位的人臉圖片,根據該對應關系就可以得到該人臉圖片的特征點對應的特征點對和閾值,例如,在訓練時得到右眼對應(i'Γ)和λ %則在定位時可以確定右眼對應的特征點對和閾值是:(i*,j*)和 λ *。
[0125]具體的,特征點對(i' j*)的值可以是相對值,在訓練時,對應人臉特征點確定出特征點對后,根據訓練樣本的真實值可以得到特征點對與真實值之間的相對值,訓練時得到的人臉特征點對應的特征點對的值就可以用該相對值表示,而在定位時,根據該相對值以及人臉特征點的初始值,可以得到人臉特征點對應的特征點對的位置。
[0126]另一個實施例中,參見圖11,所述第二單元1052具體包括:
[0127]第一子單元10521,用于獲取所述訓練樣本中的人臉特征點的真實值和初始值。
[0128]其中,初始值可以采用預設規則的初始化方式確定。
[0129]真實值是指訓練樣本的人臉特征點的真實值,由于訓練樣本是已知的,真實值也是已知的。
[0130]第二子單元10522,用于在所述人臉特征點中確定當前處理的人臉特征點,并對應所述當前處理的人臉特征點獲取可供選擇的參數,所述參數包括:特征點對,方向角度和閾值。
[0131]其中,通常人臉特征點是多個,在處理時可以依次對應每個人臉特征點進行處理。
[0132]假設當前處理的人臉特征點是右眼,其余人臉特征點的處理方式可以依此類推。
[0133]特征點對是指當前處理的人臉特征點周圍預設范圍內的任意兩個像素點。例如,參見圖7,當前處理的人臉特征點是右眼,可以以右眼的真實值為圓心,以預設的半徑值r為半徑畫一個圓,在該圓內任意選擇兩個像素點作為一對特征點對。參見圖7,以右眼為例,對應的特征點對用填充的黑點表示,分別是眉頭和眼尾的點。可以理解的是,在具體選擇時,可以選擇預設數量的特征點對,而不是將所有可能的選擇方式都選取,以降低運算復雜度。
[0134]方向角度是指穿過當前處理的人臉特征點的真實值位置的直線與預設直線之間的角度,例如,預設直線是水平方向的直線。具體如,參見圖7,穿過右眼畫出一條直線71,方向角度是該直線71與預設直線之間的角度。
[0135]閾值是預設的多個值。
[0136]從上述選擇參數的過程中可以看出,特征點對,方向角度和閾值都存在多個值,在處理時,可以依次遍歷每個值,從中選擇出最優的值。
[0137]第三子單元10523,用于在所述參數中,遍歷每組特征點對,每個方向角度和每個閾值,根據當前遍歷的特征點對,方向角度和閾值,以及當前處理的人臉特征點的真實值和初始值,得到當前遍歷的特征點對的分數,并將分數最高時的特征點對和閾值確定為所述當前處理的人臉特征點對應的特征點對和閾值。
[0138]另一個實施例中,所述第三子單元10523具體用于:
[0139]確定當前遍歷的特征點對和閾值;
[0140]例如,當前遍歷的特征點對表示為:i點和j點。
[0141]當前遍歷的閾值表示為:λ。
[0142]根據所述真實值和所述方向角度,確定當前直線,所述當前直線是經過所述真實值且角度是所述方向角度的直線;
[0143]例如,當前遍歷的方向角度是Θ,假設該直線用圖7中的直線71表示。
[0144]根據所述特征點對和閾值,以及所述初始值,對所述訓練樣本進行劃分;
[0145]其中,可以將訓練樣本劃分為第一樣本和第二樣本,例如,所述第一樣本是特征取值小于或等于當前遍歷的閾值的樣本,第二樣本是特征取值大于當前遍歷的閾值的樣本,特征取值是當前遍歷的特征點對在樣本上的顏色值的差值。可以理解的是,等于時也可以歸為第二樣本,例如,第一樣本是特征取值小于當前遍歷的閾值的樣本,第二樣本是特征區域大于或等于當前遍歷的閾值的樣本。本實施例以等于時歸為第一樣本為例。
[0146]以顏色值是灰度值為例,對應一個訓練樣本,可以找到i點和j點,并且可以確定i和j點之間的灰度值的差值,如果該差值小于或等于λ,則該訓練樣本是第一樣本,反之,如果i和j點之間的灰度值的差值大于λ,則該訓練樣本是第二樣本。
[0147]如圖9所不,第一樣本和第二樣本用不同填充方式的圓點表不。
[0148]根據所述當前直線和劃分后的訓練樣本的個數,計算所述分數。
[0149]所述分數的計算公式為:
[0150]Score = C_1eft/S_1eft+C_r i ght/S_r i ght,
[0151]其中,Score是當前遍歷的特征點對的分數,C_left是位于當前直線左側的第一樣本的個數,S_left是位于當前直線左側的第一樣本和第二樣本的總數,C_right是位于當前直線右側的第一樣本的個數,S_right是位于當前直線右側的第一樣本和第二樣本的總數;
[0152]其中,所述第一樣本和所述第二樣本是根據特征取值和當前遍歷的閾值對訓練樣本劃分后得到的,所述特征取值是當前遍歷的特征點對在樣本上的顏色值的差值。
[0153]例如,在圖9所示的情況下,Score = 8/11+3/15。
[0154]如圖8所示的流程,可以得到當前遍歷的特征點對,方向角度和閾值所對應的分數,依此類推,可以獲取每個特征點對,方向角度和閾值對應的分數,之后,通過比較,可以得到分數最高時對應的特征點對,方向角度和閾值,也就是最優的特征點對,方向角度和閾值,假設分別表示為(i*,j*),θ*,λ*。
[0155]第四子單元10524,用于建立所述人臉特征點與特征點對和閾值之間的對應關系,以便根據所述對應關系,確定所述接收的人臉圖片中人臉特征點的特征點對和閾值。
[0156]如上所示,對應當前處理的人臉特征點,可以得到最優的特征點對,方向角度和閾值,由于后續定位時不需要方向角度,因此可以建立人臉特征點與特征點對和閾值之間的對應關系。
[0157]例如,當前處理的人臉特征點是右眼,對應的最優值包括:(i*,j*),λ %則可以建立右眼與(i*,j*)和λ*的對應關系。
[0158]其他人臉特征點與特征點對和閾值之間的對應關系也可以依此原理得到,從而可以得到每個人臉特征點與特征點對和閾值之間的對應關系。
[0159]在建立人臉特征點與特征點對和閾值之間的對應關系后,由于分類節點與人臉特征點對應,也可以確定分類節點對應的特征點對和閾值,例如,fern結構的第一層節點對應右眼,則第一層節點對應的特征點對和閾值就是右眼對應的特征點對和閾值。
[0160]第三單元1053,用于根據所述分類節點以及所述分類節點對應的特征點對和閾值,將所述訓練樣本劃分到所述二進制節點中,并根據二進制節點中訓練樣本的初始值得到所述二進制節點的節點值。
[0161]對應每個訓練樣本,獲取每個分類節點對應的特征點對和閾值后,假設對應第一層節點,可以根據該第一層節點對應的特征點對選取該訓練樣本中的特征點對,例如,根據(i*, j*)的坐標值在訓練樣本中選擇對應位置的特征點對。需要說明的是,(Λ Γ)的坐標值可以是相對于預設的坐標圓點的絕對坐標值,也可以是相對于訓練樣本的人臉特征點的真實值的相對坐標值,或者,在人臉特征點定位時,相對于要定位的人臉圖片中人臉特征點的初始值的相對坐標值。
[0162]在確定出訓練樣本的特征點對后,可以獲取該特征點對之間的灰度差值,再與該分類節點對應的閾值比較大小,根據比較結果對訓練樣本進行分類,例如,灰度差值小于閾值時劃分到左子樹,灰度差值大于閾值時劃分到右子樹。
[0163]依此按照每層進行劃分,可以將訓練樣本劃分到最后一層的bin節點中。
[0164]通過上述流程可以將具有相同位置關系的訓練樣本落入同一個bin節點中,例如,第一個bin節點包括的訓練樣本是:右眼的初始值小于真實值,左眼的初始值小于真實值,左嘴角的初始值小于真實值,且右嘴角的初始值小于真實值,第二個bin節點包括的訓練樣本是:右眼的初始值大于真實值,左眼的初始值小于真實值,左嘴角的初始值小于真實值,且右嘴角的初始值小于真實值等。
[0165]假設第一個bin節點包括的訓練樣本包括Al,A2和A3,則可以根據Al,A2和A3的人臉特征點的初始值和真實值確定該第一個bin節點的節點值,例如,根據Al的人臉特征點的初始值和真實值可以得到第一差值,類似的,可以得到A2對應的第二差值,A3對應的第三差值,之后,可以對第一差值,第二差值和第三差值取均值,將該均值確定為第一個bin節點的節點值。
[0166]本實施例中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系,可以在訓練時將具有相同位置關系的訓練樣本最終歸入同一個節點中,從而該節點的節點值是由具有相同位置關系的訓練樣本得到的,從而可以提高定位效果。
[0167]需要說明的是,在本發明的描述中,術語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本發明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
[0168]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,并且本發明的優選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明的實施例所屬技術領域的技術人員所理解。
[0169]應當理解,本發明的各部分可以用硬件、軟件、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟件或固件來實現。例如,如果用硬件來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用于對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現場可編程門陣列(FPGA)等。
[0170]本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
[0171 ] 此外,在本發明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。所述集成的模塊如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
[0172]上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
[0173]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
[0174]盡管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在本發明的范圍內可以對上述實施例進行變化、修改、替換和變型。
【主權項】
1.一種人臉特征點定位方法,其特征在于,包括: 接收人臉圖片; 獲取所述人臉圖片中人臉特征點的初始值; 根據預先建立的訓練模型,確定所述人臉特征點的特征點對和閾值,并根據所述特征點對和閾值確定所述人臉圖片在所述訓練模型中對應的節點,并獲取所述節點的節點值,其中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系;根據所述初始值和所述節點值,確定所述人臉特征點的定位結果。2.根據權利要求1所述的方法,其特征在于,所述節點值是二進制節點的節點值,所述方法還包括:建立訓練模型,所述建立訓練模型,包括: 根據人臉特征點的個數,建立滿二叉樹,所述滿二叉樹包括分類節點和二進制節點,且每層分類節點對應一個人臉特征點; 根據訓練樣本,進行特征提取,獲取人臉特征點與特征點對和閾值之間的對應關系,并根據所述對應關系,確定所述分類節點對應的特征點對和閾值; 根據所述分類節點以及所述分類節點對應的特征點對和閾值,將所述訓練樣本劃分到所述二進制節點中,并根據二進制節點中訓練樣本的初始值得到所述二進制節點的節點值。3.根據權利要求2所述的方法,其特征在于,所述根據訓練樣本,進行特征提取,獲取人臉特征點與特征點對和閾值之間的對應關系,包括: 獲取所述訓練樣本中的人臉特征點的真實值和初始值; 在所述人臉特征點中確定當前處理的人臉特征點,并對應所述當前處理的人臉特征點獲取可供選擇的參數,所述參數包括:特征點對,方向角度和閾值; 在所述參數中,遍歷每組特征點對,每個方向角度和每個閾值,根據當前遍歷的特征點對,方向角度和閾值,以及當前處理的人臉特征點的真實值和初始值,得到當前遍歷的特征點對的分數,并將分數最高時的特征點對和閾值確定為所述當前處理的人臉特征點對應的特征點對和閾值; 建立所述人臉特征點與特征點對和閾值之間的對應關系,以便根據所述對應關系,確定所述接收的人臉圖片中人臉特征點的特征點對和閾值。4.根據權利要求3所述的方法,其特征在于,所述根據當前遍歷的特征點對,方向角度和閾值,以及當前處理的人臉特征點的真實值和初始值,得到當前遍歷的特征點對的分數,包括: 確定當前遍歷的特征點對和閾值; 根據所述真實值和所述方向角度,確定當前直線,所述當前直線是經過所述真實值且角度是所述方向角度的直線; 根據所述特征點對和閾值,以及所述初始值,對所述訓練樣本進行劃分; 根據所述當前直線和劃分后的訓練樣本的個數,計算所述分數。5.根據權利要求4所述的方法,其特征在于,所述分數的計算公式為:Score = C_1eft/S_1eft+C_r i ght/S_r i ght, 其中,Score是當前遍歷的特征點對的分數,C_left是位于當前直線左側的第一樣本的個數,S_left是位于當前直線左側的第一樣本和第二樣本的總數,C_right是位于當前直線右側的第一樣本的個數,S_right是位于當前直線右側的第一樣本和第二樣本的總數; 其中,所述第一樣本和所述第二樣本是根據特征取值和當前遍歷的閾值對訓練樣本劃分后得到的,所述特征取值是當前遍歷的特征點對在樣本上的顏色值的差值。6.根據權利要求5所述的方法,其特征在于,所述顏色值是灰度值。7.一種人臉特征點定位裝置,其特征在于,包括: 接收模塊,用于接收人臉圖片; 獲取模塊,用于獲取所述人臉圖片中人臉特征點的初始值; 處理模塊,用于根據預先建立的訓練模型,確定所述人臉特征點的特征點對和閾值,并根據所述特征點對和閾值確定所述人臉圖片在所述訓練模型中對應的節點,并獲取所述節點的節點值,其中,所述特征點對和閾值使得對應同一個節點的不同人臉圖片具有相同的位置關系; 確定模塊,用于根據所述初始值和所述節點值,確定所述人臉特征點的定位結果。8.根據權利要求7所述的裝置,其特征在于,所述節點值是二進制節點的節點值,所述裝置還包括建立模塊,所述建立模塊用于建立訓練模型。所述建立模塊包括: 第一單元,用于根據人臉特征點的個數,建立滿二叉樹,所述滿二叉樹包括分類節點和二進制節點,且每層分類節點對應一個人臉特征點; 第二單元,用于根據訓練樣本,進行特征提取,獲取人臉特征點與特征點對和閾值之間的對應關系,并根據所述對應關系,確定所述分類節點對應的特征點對和閾值; 第三單元,用于根據所述分類節點以及所述分類節點對應的特征點對和閾值,將所述訓練樣本劃分到所述二進制節點中,并根據二進制節點中訓練樣本的初始值得到所述二進制節點的節點值。9.根據權利要求8所述的裝置,其特征在于,所述第二單元具體包括: 第一子單元,用于獲取所述訓練樣本中的人臉特征點的真實值和初始值; 第二子單元,用于在所述人臉特征點中確定當前處理的人臉特征點,并對應所述當前處理的人臉特征點獲取可供選擇的參數,所述參數包括:特征點對,方向角度和閾值; 第三子單元,用于在所述參數中,遍歷每組特征點對,每個方向角度和每個閾值,根據當前遍歷的特征點對,方向角度和閾值,以及當前處理的人臉特征點的真實值和初始值,得到當前遍歷的特征點對的分數,并將分數最高時的特征點對和閾值確定為所述當前處理的人臉特征點對應的特征點對和閾值; 第四子單元,用于建立所述人臉特征點與特征點對和閾值之間的對應關系,以便根據所述對應關系,確定所述接收的人臉圖片中人臉特征點的特征點對和閾值。10.根據權利要求9所述的裝置,其特征在于,所述第三子單元具體用于: 確定當前遍歷的特征點對和閾值; 根據所述真實值和所述方向角度,確定當前直線,所述當前直線是經過所述真實值且角度是所述方向角度的直線; 根據所述特征點對和閾值,以及所述初始值,對所述訓練樣本進行劃分; 根據所述當前直線和劃分后的訓練樣本的個數,計算所述分數。11.根據權利要求10所述的裝置,其特征在于,所述分數的計算公式為:Score = C_1eft/S_1eft+C_r i ght/S_r i ght, 其中,Score是當前遍歷的特征點對的分數,C_left是位于當前直線左側的第一樣本的個數,S_left是位于當前直線左側的第一樣本和第二樣本的總數,C_right是位于當前直線右側的第一樣本的個數,S_right是位于當前直線右側的第一樣本和第二樣本的總數; 其中,所述第一樣本和所述第二樣本是根據特征取值和當前遍歷的閾值對訓練樣本劃分后得到的,所述特征取值是當前遍歷的特征點對在樣本上的顏色值的差值。12.根據權利要求11所述的裝置,其特征在于,所述顏色值是灰度值。
【文檔編號】G06K9/46GK105844284SQ201510024255
【公開日】2016年8月10日
【申請日】2015年1月16日
【發明人】王楠, 杜志軍
【申請人】阿里巴巴集團控股有限公司