本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別涉及一種確定劉海區(qū)域的方法及裝置。
背景技術(shù):
人臉識別性能的提升需要解決幾個關(guān)鍵性問題,例如:光照,姿態(tài),遮擋等問題。劉海作為一種最為常見的遮擋物,與如口罩、墨鏡等其他的遮擋物相比,劉海遮擋的刻意性很弱。然而齊劉海遮擋了眉毛信息,并占據(jù)一定人臉比例的發(fā)型會對人臉特征的提取產(chǎn)生很大的影響。
現(xiàn)有的一些技術(shù)主要是通過檢測或分類的方法來判斷臉部遮擋物,但是主要集中在刻意遮擋。有的方法就基于多特征融合的人臉遮擋檢測方法采用了Haar、LBP(Local Binary Pattern,局部二值模式)和HOG(Histogram of Oriented Gradient,方向梯度直方圖)等多特征融合模式,應(yīng)用SVM(Support Vector Machine,支持向量機)方法訓練得到分類器。此外,為了增強對姿態(tài)的魯棒性,采用圖像分塊檢測的方法,用投票機制進行遮擋判斷。
可見,現(xiàn)有的一些技術(shù)主要是通過檢測或分類的方法來判斷臉部遮擋物,但是該手段的運用主要集中在刻意遮擋。例如ATM(Automatic Teller Machine,自動取款機)機場景的墨鏡和口罩的檢測,很多算法僅僅判斷是否遮擋來完成異常人臉的判斷,并未給出遮擋區(qū)域。有的利用到了人臉關(guān)鍵器官的位置,例如雙眼,鼻子,嘴巴的特征,或者這些器官是否存在。
綜上,現(xiàn)有技術(shù)的不足在于:不能針對非刻意遮擋的劉海進行檢測。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種確定劉海區(qū)域的方法及裝置,用以檢測非刻意遮擋的劉海。
本發(fā)明實施例中提供了一種確定劉海區(qū)域的方法,包括:
基于LBP算子提取劉海特征;
基于置信度的SVM判斷人臉圖像是否存在劉海;
在存在劉海時確定劉海的區(qū)域。
較佳地,在基于LBP算子提取劉海特征時,LBP算子的尺度選取為:水平方向半徑為3,垂直方向半徑為1。
較佳地,所述確定劉海的區(qū)域,包括:
將人臉圖像中的人臉分為4塊區(qū)域,其中3塊為劉海區(qū)域,1塊為眼部以下、嘴部以上的臉部區(qū)域;
確定4塊區(qū)域的平均灰度值;
根據(jù)4塊區(qū)域的平均灰度值確定劉海區(qū)域的閾值;
根據(jù)閾值確定劉海的區(qū)域。
較佳地,通過如下公式根據(jù)4塊區(qū)域的平均灰度值確定劉海區(qū)域的閾值:
其中,3塊劉海區(qū)域的平均灰度值依次為AVG_lu、AVG_mu、AVG_ru,臉部區(qū)域的平均灰度值為AVG_face。
較佳地,根據(jù)閾值確定劉海的區(qū)域,包括:
確定眉毛位置所在的線;
從眉毛位置所在的線開始按預(yù)設(shè)距離向上移動,在每次移動后,以移動后的線為基線確定兩個上下相鄰的高度為預(yù)設(shè)高度,寬度為圖像寬度的區(qū)域;
若兩個區(qū)域內(nèi)的灰度值滿足閾值Th的像素個數(shù)都大于預(yù)設(shè)值,則將該根基線確定為劉海的區(qū)域底線。
較佳地,進一步包括:
若AVG_lu、AVG_mu、AVG_ru與AVG_face的數(shù)值差別小于預(yù)設(shè)閾值,則確定不存在劉海。
較佳地,所述確定劉海的區(qū)域,包括:
若劉海的區(qū)域底線低于眉毛位置所在的線,二值化劉海區(qū)域;
若劉海的區(qū)域底線等于眉毛位置所在的線,以眉毛位置所在的線為截止線二值化劉海區(qū)域。
較佳地,在基于置信度的SVM判斷人臉圖像是否存在劉海前,進一步包括:
對所述人臉圖像進行包括人臉對齊和/或光照歸一化的預(yù)處理。
本發(fā)明實施例中還提供了一種確定劉海區(qū)域的裝置,包括:
LBP處理模塊,用于基于LBP算子提取劉海特征;
SVM處理模塊,用于基于置信度的SVM判斷人臉圖像是否存在劉海;
劉海區(qū)域確定模塊,用于在存在劉海時確定劉海的區(qū)域。
較佳地,LBP處理模塊進一步用于在基于LBP算子提取劉海特征時,LBP算子的尺度選取為:水平方向半徑為3,垂直方向半徑為1。
較佳地,劉海區(qū)域確定模塊進一步用于在所述確定劉海的區(qū)域時,包括:
將人臉圖像中的人臉分為4塊區(qū)域,其中3塊為劉海區(qū)域,1塊為眼部以下、嘴部以上的臉部區(qū)域;
確定4塊區(qū)域的平均灰度值;
根據(jù)4塊區(qū)域的平均灰度值確定劉海區(qū)域的閾值;
根據(jù)閾值確定劉海的區(qū)域。
較佳地,劉海區(qū)域確定模塊進一步用于通過如下公式根據(jù)4塊區(qū)域的平均灰度值確定劉海區(qū)域的閾值:
其中,3塊劉海區(qū)域的平均灰度值依次為AVG_lu、AVG_mu、AVG_ru,臉部區(qū)域的平均灰度值為AVG_face。
較佳地,劉海區(qū)域確定模塊進一步用于在根據(jù)閾值確定劉海的區(qū)域時,包括:
確定眉毛位置所在的線;
從眉毛位置所在的線開始按預(yù)設(shè)距離向上移動,在每次移動后,以移動后的線為基線確定兩個上下相鄰的高度為預(yù)設(shè)高度,寬度為圖像寬度的區(qū)域;
若兩個區(qū)域內(nèi)的灰度值滿足閾值Th的像素個數(shù)都大于預(yù)設(shè)值,則將該根基線確定為劉海的區(qū)域底線。
較佳地,SVM處理模塊進一步用于若AVG_lu、AVG_mu、AVG_ru與AVG_face的數(shù)值差別小于預(yù)設(shè)閾值,則確定不存在劉海。
較佳地,劉海區(qū)域確定模塊進一步用于在所述確定劉海的區(qū)域時,包括:
若劉海的區(qū)域底線低于眉毛位置所在的線,二值化劉海區(qū)域;
若劉海的區(qū)域底線等于眉毛位置所在的線,以眉毛位置所在的線為截止線二值化劉海區(qū)域。
較佳地,進一步包括:
預(yù)處理模塊,用于在基于置信度的SVM判斷人臉圖像是否存在劉海前,對所述人臉圖像進行包括人臉對齊和/或光照歸一化的預(yù)處理。
本發(fā)明有益效果如下:
在本發(fā)明實施例提供的技術(shù)方案中,由于采用的分塊LBP特征直方圖和基于置信度線性SVM分類方式能快速高效的判定是否是劉海人臉,因此具有更高的實時性;由于采用分類的時候收集具有多樣性的樣本,使分類具有很好的泛化性能,進一步的,在確認的時候能夠同時考慮到異色頭發(fā),頭發(fā)反光等問題,使多種情況下都能穩(wěn)定使用,因此具有更強的穩(wěn)定性。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
圖1為本發(fā)明實施例中確定劉海區(qū)域的方法實施流程示意圖;
圖2為本發(fā)明實施例中最原始的LBP算子示意圖;
圖3為本發(fā)明實施例中劉海判斷使用的LBP算子及其變種示意圖;
圖4為本發(fā)明實施例中劉海區(qū)域及分塊情況示意圖;
圖5為本發(fā)明實施例中劉海及非劉海人臉示意圖;
圖6為本發(fā)明實施例中劉海閾值確認的分塊示意圖;
圖7為本發(fā)明實施例中確定劉海位置線示意圖;
圖8為本發(fā)明實施例中確定劉海區(qū)域的裝置結(jié)構(gòu)示意圖。
具體實施方式
發(fā)明人注意到,發(fā)型的多變會一定程度上影響人臉識別的效果,尤其是齊劉海,這種遮擋了眉毛信息,并占據(jù)一定人臉比例的發(fā)型會對人臉特征的提取產(chǎn)生很大的影響。在人臉檢測和特征點定位的基礎(chǔ)上,判斷當前人臉是否存在齊劉海,并且給出劉海區(qū)域,才能方便后續(xù)的人臉識別算法計算。基于此,本發(fā)明實施例提供的技術(shù)方案用以解決正常人臉情況下,針對頭發(fā)特有的特征,在不利用人臉關(guān)鍵器官的特征來完成劉海遮擋的檢測和定位。下面結(jié)合附圖對本發(fā)明的具體實施方式進行說明。
圖1為確定劉海區(qū)域的方法實施流程示意圖,如圖所示,可以包括:
步驟101、基于LBP算子提取劉海特征;
步驟102、基于置信度的SVM判斷人臉圖像是否存在劉海;
步驟103、在存在劉海時確定劉海的區(qū)域。
實施中,在基于置信度的SVM判斷人臉圖像是否存在劉海前,還可以進一步包括:
對所述人臉圖像進行包括人臉對齊和/或光照歸一化的預(yù)處理。
具體實施中,可以進行人臉預(yù)處理,這是因為在使用機器學習的方法進行分類時,要使人臉在相對一致的情況下進行比對,所以可以進行一定的預(yù)處理。首先需要利用雙眼位置進行人臉對齊。然后進行光照歸一化等。
具體的,由于人臉姿態(tài)各種各樣,為了讓人臉具有一致性,可以將人臉進行仿射變換。通過人臉檢測和定位算法,定位出主要特征點的位置。將原圖雙眼中心的位置通過仿射變換到對齊后人臉的固定位置,在本申請用以示例的實例中,設(shè)對齊后人臉大小為128*136,雙眼中心位置(x′1,y′1)和(x′2,y′2)為(35,44)和(85,44)。
在進行光照歸一化時,由于光照變化對人臉影響很大,可以通過歸一化標準差的光照歸一化方法進行處理,例如可以按照公式Xd=(Xs-Means)×Sdvd/Sdvs+Meand進行計算,在一定程度上去掉了光照的影響。
在步驟101的在基于LBP算子提取劉海特征時,LBP算子的尺度選取可以為:水平方向半徑為3,垂直方向半徑為1。
具體實施中,在實施提取劉海特征時,可以采用的局部二值模式LBP由Ojala提出,可以有效提取灰度圖像中的局部紋理特征。具有較強的分類能力,計算效率高,對單調(diào)灰度和旋轉(zhuǎn)具有不變性所以被廣泛使用。
圖2為最原始的LBP算子示意圖,如圖1所示,最原始的LBP算子,定義一個3×3鄰域的窗口,以中心像素值作為閾值分別跟向量的8個像素進行比較,大于閾值記做1,小于閾值記做0,然后從左上角位置順時鐘方向?qū)⒏鱾€鄰域的值連在一起,形成一個0~255之間的值,在一張原圖上滑動3×3窗口,則得到其對應(yīng)LBP圖。
圖3為劉海判斷使用的LBP算子及其變種示意圖,如圖所示,為了更好的表征劉海的特征,可以使用兩種尺度的LBP算子,圖3(a)中半徑為1,圖3(b)中半徑為2。同時結(jié)合劉海特有的特征,上下相鄰像素相似度高,左右因為光照原因像素差別較大,設(shè)置了一種特定具有頭發(fā)特征的LBP算子,如圖3(c)所示,水平方向半徑為3,垂直方向半徑為1。
圖4為劉海區(qū)域及分塊情況示意圖,如圖所示,由于眼部及以下的信息,對劉海的分類沒有什么貢獻,所以分類的時候只選取劉海部分的特征,在本申請用以示例的實例中,設(shè)使用劉海高度為40個像素。同時考慮到兼顧一些發(fā)量比較厚重的斜劉海,類似齊劉海的也要被檢出,所以將劉海區(qū)域分為4個子區(qū)域,計算每個區(qū)域的分塊LBP直方圖,可以得到800維的特征。
下面對步驟102基于置信度的SVM判斷人臉圖像是否存在劉海的實施進行說明。
由于劉海形狀千變?nèi)f化,例如介于齊劉海和無劉海中間各式各樣的斜劉海等,劉海區(qū)域并不可以簡單的分類,所以實施中可以采用基于置信度的SVM來分類,判斷出其中比較齊劉海和類似齊劉海。
支持向量機SVM以統(tǒng)計學習為基礎(chǔ),在小樣本集機器學習的問題上表現(xiàn)優(yōu)異,有很好的泛化性能,尤其針對二分類問題,SVM分類的能力毋庸置疑。實施中利用基于置信度的SVM進行劉海分類,并輸出置信度,即可判斷當前人臉圖像是否存在齊劉海。圖5為劉海及非劉海人臉示意圖,具體可以參見圖5所示的不同。
下面對步驟103在存在劉海時確定劉海的區(qū)域的實施進行說明。
在定位劉海區(qū)域的實施過程中,在通過步驟102判斷出是否齊劉海后,若是齊劉海,還需要獲得劉海的區(qū)域,下面實施例中將提供兩種區(qū)域界定方式,一種是給出劉海高度,另外一種給出具體的劉海區(qū)域。
1、給出劉海高度的方式中,確定劉海的區(qū)域,可以包括:
將人臉圖像中的人臉分為4塊區(qū)域,其中3塊為劉海區(qū)域,1塊為眼部以下、嘴部以上的臉部區(qū)域;
確定4塊區(qū)域的平均灰度值;
根據(jù)4塊區(qū)域的平均灰度值確定劉海區(qū)域的閾值;
根據(jù)閾值確定劉海的區(qū)域。
實施中,可以通過如下公式根據(jù)4塊區(qū)域的平均灰度值確定劉海區(qū)域的閾值:
其中,3塊劉海區(qū)域的平均灰度值依次為AVG_lu、AVG_mu、AVG_ru,臉部區(qū)域的平均灰度值為AVG_face。
實施中,還可以進一步包括:
若AVG_lu、AVG_mu、AVG_ru與AVG_face的數(shù)值差別小于預(yù)設(shè)閾值,則確定不存在劉海。
具體實施中,圖6為劉海閾值確認的分塊示意圖,在給出劉海高度的方式中,若判斷是齊劉海人臉,則將人臉分出如圖5所示的4塊有效區(qū)域,劉海區(qū)域分為3塊,從左到右分別為左眉毛上部分,中間部分,右眉毛上部分,分別計算三塊區(qū)域的平均灰度值,記做AVGlu,AVGmu,AVGru。眼部以下,嘴部以上的區(qū)域為臉部區(qū)域,計算該區(qū)域的平均灰度值,記做AVGface。通過比較上面三部分的均值和臉部的均值,可以再次驗證劉海判斷的正確性,若上下差別過小,則認為誤判為齊劉海。
劉海區(qū)域的閾值通過公式(1)來確定。
考慮到異色頭發(fā),在確定閾值的同時還可以確認閾值方向。異色是指非黑色的紅色、黃色等。
如果(AVGlu+AVGmu+AVGru)>AVGface,大于TH為劉海區(qū)域;
如果(AVGlu+AVGmu+AVGru)<AVGface,小于TH為劉海區(qū)域。
這是因為劉海區(qū)域灰度值可能大于人臉區(qū)域灰度值,也有可能小于人臉區(qū)域灰度值。例如,黑色劉海區(qū)域灰度值小于人臉區(qū)域的灰度值,這個時候小于TH為劉海區(qū)域;黃色劉海區(qū)域灰度值大于人臉區(qū)域的灰度值,這個時候大于TH為劉海區(qū)域。
實施中,根據(jù)閾值確定劉海的區(qū)域,可以包括:
確定眉毛位置所在的線;
從眉毛位置所在的線開始按預(yù)設(shè)距離向上移動,在每次移動后,以移動后的線為基線確定兩個上下相鄰的高度為預(yù)設(shè)高度,寬度為圖像寬度的區(qū)域;
若兩個區(qū)域內(nèi)的灰度值滿足閾值Th的像素個數(shù)都大于預(yù)設(shè)值,則將該根基線確定為劉海的區(qū)域底線。
具體實施中,圖7為確定劉海位置線示意圖,圖中的兩個區(qū)域框分別用虛線框以及實現(xiàn)框區(qū)分,則如圖所示,考慮到眉毛和劉海反光的因素,從眉毛以上的位置開始計算,就算每行的劉海像素個數(shù),從眉毛以上的位置開始滑動2個緊挨的小區(qū)域,區(qū)域大小為:圖像寬度*5個像素。若是上下兩個區(qū)域的劉海數(shù)目都大于一定值,則認為當前區(qū)域的下沿便為劉海所在位置。
具體的,在實施中,可以在人臉檢測和特征點定位的基礎(chǔ)上得到眉毛的具體位置。在確定判斷區(qū)域時,可以從眉毛位置開始向上每次移動一個像素,分別計算該像素水平線以上兩個區(qū)域(5個像素*圖像寬度,5個像素*圖像寬度)內(nèi)劉海像素個數(shù)(即灰度值滿足閾值TH的像素個數(shù)),本實施例中用以示例的5個像素、一個像素是通過實驗獲取的一個效果較佳的取值,實踐中可以根據(jù)需要進行選值。
2、給出具體的劉海區(qū)域的方式中,確定劉海的區(qū)域,可以包括:
若劉海的區(qū)域底線低于眉毛位置所在的線,二值化劉海區(qū)域;
若劉海的區(qū)域底線等于眉毛位置所在的線,以眉毛位置所在的線為截止線二值化劉海區(qū)域。
具體實施中,在給出劉海區(qū)域掩膜的方式下,若所得劉海區(qū)域底線的位置低于眉毛區(qū)域頂線的位置,可以通過大津法來二值化來獲得劉海的具體區(qū)域。方便后續(xù)人臉識別對具體的劉海區(qū)域進行處理。若劉海區(qū)域底線的位置等于眉毛區(qū)域頂線的位置,以眉毛區(qū)域頂線為止,進行二值化。
基于同一發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種確定劉海區(qū)域的裝置,由于裝置解決問題的原理與一種確定劉海區(qū)域的方法相似,因此該裝置的實施可以參見方法的實施,重復(fù)之處不再贅述。
圖8為確定劉海區(qū)域的裝置結(jié)構(gòu)示意圖,如圖所示,可以包括:
LBP處理模塊801,用于基于LBP算子提取劉海特征;
SVM處理模塊802,用于基于置信度的SVM判斷人臉圖像是否存在劉海;
劉海區(qū)域確定模塊803,用于在存在劉海時確定劉海的區(qū)域。
實施中,LBP處理模塊還可以進一步用于在基于LBP算子提取劉海特征時,LBP算子的尺度選取為:水平方向半徑為3,垂直方向半徑為1。
實施中,劉海區(qū)域確定模塊還可以進一步用于在所述確定劉海的區(qū)域時,包括:
將人臉圖像中的人臉分為4塊區(qū)域,其中3塊為劉海區(qū)域,1塊為眼部以下、嘴部以上的臉部區(qū)域;
確定4塊區(qū)域的平均灰度值;
根據(jù)4塊區(qū)域的平均灰度值確定劉海區(qū)域的閾值;
根據(jù)閾值確定劉海的區(qū)域。
實施中,劉海區(qū)域確定模塊還可以進一步用于通過如下公式根據(jù)4塊區(qū)域的平均灰度值確定劉海區(qū)域的閾值:
其中,3塊劉海區(qū)域的平均灰度值依次為AVG_lu、AVG_mu、AVG_ru,臉部區(qū)域的平均灰度值為AVG_face。
實施中,劉海區(qū)域確定模塊還可以進一步用于在根據(jù)閾值確定劉海的區(qū)域時,包括:
確定眉毛位置所在的線;
從眉毛位置所在的線開始按預(yù)設(shè)距離向上移動,在每次移動后,以移動后的線為基線確定兩個上下相鄰的高度為預(yù)設(shè)高度,寬度為圖像寬度的區(qū)域;
若兩個區(qū)域內(nèi)的灰度值滿足閾值Th的像素個數(shù)都大于預(yù)設(shè)值,則將該根基線確定為劉海的區(qū)域底線。
實施中,SVM處理模塊還可以進一步用于若AVG_lu、AVG_mu、AVG_ru與AVG_face的數(shù)值差別小于預(yù)設(shè)閾值,則確定不存在劉海。
實施中,劉海區(qū)域確定模塊還可以進一步用于在所述確定劉海的區(qū)域時,包括:
若劉海的區(qū)域底線低于眉毛位置所在的線,二值化劉海區(qū)域;
若劉海的區(qū)域底線等于眉毛位置所在的線,以眉毛位置所在的線為截止線二值化劉海區(qū)域。
實施中,還可以進一步包括:
預(yù)處理模塊804,用于在基于置信度的SVM判斷人臉圖像是否存在劉海前,對所述人臉圖像進行包括人臉對齊和/或光照歸一化的預(yù)處理。
為了描述的方便,以上所述裝置的各部分以功能分為各種模塊或單元分別描述。當然,在實施本發(fā)明時可以把各模塊或單元的功能在同一個或多個軟件或硬件中實現(xiàn)。
綜上所述,本發(fā)明實施例提供的技術(shù)方案,具有更高的實時性。分塊LBP特征直方圖和基于置信度線性SVM分類方法,能快速高效的判定是否是劉海人臉。具有更強的穩(wěn)定性,分類的時候收集具有多樣性的樣本,使分類具有很好的泛化性能,同時確認的時候也考慮到異色頭發(fā),頭發(fā)反光等問題,使多種情況下都能穩(wěn)定使用。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。