本發(fā)明涉及圖像處理技術領域,尤其是涉及一種美顏處理方法、裝置以及終端設備。
背景技術:
隨著智能手機的快速發(fā)展,手機自拍、直播等已經成為很常用的移動用戶使用場景,越來越多的人喜歡通過自拍或者直播,在網上分享拍攝的照片或者視頻來展現(xiàn)自己。
現(xiàn)有的智能終端通過美顏軟件,能夠針對自拍的人臉圖像自動進行磨皮、美白、瘦臉、眼部增強、五官立體等多種美顏功能,無需通過專業(yè)軟件進行ps,可直接生成美顏效果的照片或者視頻,非常方便快捷。
盡管現(xiàn)有的圖像美化編輯軟件能夠實現(xiàn)美顏效果,但是往往會導致手機等終端設備的消耗過高,再加上終端設備的配置參差不齊,很容易使終端設備耗電量急劇增加,進而產生發(fā)燙現(xiàn)象。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種美顏處理方法、裝置以及終端設備,能夠在提高美顏效果的同時降低對終端設備的損耗,避免終端設備發(fā)燙現(xiàn)象的發(fā)生。
第一方面,本發(fā)明實施例提供了一種美顏處理方法,該方法用于對終端設備中的面部圖像進行美化,該方法包括:
實時獲取待處理圖像;
對待處理圖像進行人臉識別,獲取人臉有效區(qū)域;
采用雙邊濾波法對人臉有效區(qū)域進行雙邊濾波處理,得到美顏處理結果;雙邊濾波法采用較低精度的著色語言編程實現(xiàn)。
結合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,其中,對待處理圖像進行人臉識別,獲取人臉有效區(qū)域,具體包括:
采用sobel邊界檢測濾鏡,對待處理圖像進行邊界檢測;
根據邊界檢測的結果,確定人臉有效區(qū)域。
結合第一方面,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中,采用sobel邊界檢測濾鏡,對待處理圖像進行邊界檢測,具體包括:
通過sobel算子計算待處理圖像的灰度值;
根據基于rgb色彩模式的閾值膚色識別準則,對待處理圖像進行膚色檢測。
結合第一方面,本發(fā)明實施例提供了第一方面的第三種可能的實施方式,其中,基于rgb色彩模式的閾值膚色識別準則,具體為:
r>95且g>40且b>20且r>g且r>b且max(r,g,b)-min(r,g,b)>15且abs(r-g)>15;
其中,r為紅色索引值,g為綠色索引值,b為藍色索引值,max()為取最大值函數(shù),min()為取最小值函數(shù),abs()為取絕對值函數(shù)。
結合第一方面,本發(fā)明實施例提供了第一方面的第四種可能的實施方式,其中,雙邊濾波法的算法具體為:
其中
σs為空域高斯函數(shù)的標準差;
σr為值域高斯函數(shù)的標準差;
ω為卷積的定義域;
x、y為隨機變量;
w為權重系數(shù)。
結合第一方面,本發(fā)明實施例提供了第一方面的第五種可能的實施方式,其中,待處理圖像包括靜態(tài)圖像或者動態(tài)圖像中的每一幀圖像。
第二方面,本發(fā)明實施例還提供一種美顏處理裝置,該裝置包括:
圖像獲取單元,用于實時獲取待處理圖像;
人臉識別單元,用于對待處理圖像進行人臉識別,獲取人臉有效區(qū)域;
雙邊濾波單元,用于采用雙邊濾波法對人臉有效區(qū)域進行雙邊濾波處理,得到美顏處理結果。
結合第二方面,本發(fā)明實施例提供了第二方面的第一種可能的實施方式,其中,人臉識別單元包括:
邊界檢測模塊,用于采用sobel邊界檢測濾鏡,對待處理圖像進行邊界檢測;
人臉有效區(qū)域確定模塊,用于根據邊界檢測的結果,確定人臉有效區(qū)域。
結合第二方面,本發(fā)明實施例提供了第二方面的第二種可能的實施方式,其中,邊界檢測模塊包括:
灰度值計算模塊,用于通過sobel算子計算待處理圖像的灰度值;
膚色檢測模塊,用于根據基于rgb色彩模式的閾值膚色識別準則,對待處理圖像進行膚色檢測。
第三方面,本發(fā)明實施例還提供一種終端設備,包括:處理器和存儲器;
其中,處理器通過調用存儲器中的代碼或指令以執(zhí)行如第一方面所述的方法。
本發(fā)明實施例提供的技術方案帶來了以下有益效果:本發(fā)明實施例提供的美顏處理方法中,首先實時獲取待處理圖像,該圖像為包含有人臉的圖像,然后對該圖像進行人臉識別,獲取人臉有效區(qū)域,然后針對人臉有效區(qū)域,采用雙邊濾波法進行雙邊濾波處理,由于雙邊濾波不僅考慮到像素間的距離權重,還考慮到了像素之間的差異,因此,采用雙邊濾波法對圖像人臉有效區(qū)域進行處理,不僅實現(xiàn)了模糊平滑圖像的作用,而且很好地保留了邊緣信息,使美顏效果更好。而且在雙邊濾波的實現(xiàn)過程中,采用了較低精度的著色語言進行編程,大大降低了對終端設備cpu的消耗,緩解了終端設備在對圖像處理的時候發(fā)燙的問題。
本發(fā)明的其他特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點在說明書、權利要求書以及附圖中所特別指出的結構來實現(xiàn)和獲得。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明具體實施方式或現(xiàn)有技術中的技術方案,下面將對具體實施方式或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施方式,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1示出了本發(fā)明實施例一所提供的一種美顏處理方法的流程圖;
圖2示出了本發(fā)明實施例一所提供的美顏處理方法中步驟s12的具體流程圖;
圖3示出了本發(fā)明實施例一所提供的美顏處理方法中步驟s121的具體流程圖;
圖4示出了本發(fā)明實施例二所提供的一種美顏處理裝置的結構圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
目前盡管現(xiàn)有的圖像美化編輯軟件能夠實現(xiàn)美顏效果,但是往往會導致手機等終端設備的消耗過高,再加上終端設備的配置參差不齊,很容易使終端設備耗電量急劇增加,進而產生發(fā)燙現(xiàn)象。基于此,本發(fā)明實施例提供的一種美顏處理方法、裝置以及終端設備,能夠在提高美顏效果的同時降低對終端設備的損耗,避免終端設備發(fā)燙現(xiàn)象的發(fā)生。
為便于對本實施例進行理解,首先對本發(fā)明實施例所公開的一種美顏處理方法進行詳細介紹。
實施例一:
本發(fā)明實施例提供的一種美顏處理方法,該方法應用于ios操作系統(tǒng)中,可用于對終端設備中的面部圖像進行美化,如圖1所示,該美顏處理方法包括以下步驟:
s11:實時獲取待處理圖像。
在具體實現(xiàn)的時候,通過圖形應用程序編程接口的子集(openglforembeddedsystems,簡稱opengles)獲取相機中待處理的圖像。對于視頻直播的情況,會首先采集視頻,然后獲取每一幀圖像,將每一幀圖像作為待處理圖像。
opengl(opengraphicslibrary,簡稱opengl)是指定義了一個跨編程語言、跨平臺的編程接口規(guī)格的專業(yè)的圖形程序接口,它應用于三維圖像或二維圖像,是一個功能強大,調用方便的底層圖形庫。因此,opengles是opengl三維圖形api的子集,針對手機、掌上電腦(personaldigitalassistant,簡稱pda)以及游戲主機等嵌入式設備而設計。
對于應用程序編程接口(applicationprogramminginterface,簡稱api),它是一些預先定義的函數(shù),目的是提供應用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節(jié)。
s12:對待處理圖像進行人臉識別,獲取人臉有效區(qū)域。
由于美顏一般只針對人的面部進行美化,所以在獲取到待處理圖像后,首先得對其進行人臉識別,獲取到需要進行美顏操作的人臉有效區(qū)域,具體的,參見圖2所示,人臉有效區(qū)域的獲取過程包括以下步驟:
s121:采用sobel邊界檢測濾鏡,對待處理圖像進行邊界檢測。
針對ios平臺來說,美顏處理方法一般采用gpuimage框架來實現(xiàn),首先將avcapturedevice替換成gpuimagevideocamera,刪除諸如avcapturesession/avcapturedeviceinput/avcapturevideodataoutput,gpuimage實現(xiàn)了的部分進行初始化工作,為了改善視頻處理性能,使美顏效果更好,采用gpuimagesobeledgedetectionfilter濾鏡來檢測有效的人臉輪廓區(qū)域。具體的檢測過程如圖3所示,包括以下步驟:
s1211:通過sobel算子計算待處理圖像的灰度值。
索貝爾算子(sobeloperator)主要用作邊緣檢測,在技術上,它是一離散性差分算子,用來運算圖像亮度函數(shù)的灰度之近似值。在圖像的任何一點使用此算子,將會產生對應的灰度矢量或是其法矢量。
sobel卷積因子為:
該算子包含兩組3x3的矩陣,分別為橫向及縱向,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。如果以a代表原始圖像,gx及gy分別代表經橫向及縱向邊緣檢測的圖像灰度值,其公式如下:
具體計算如下:
gx=(-1)*f(x-1,y-1)+0*f(x,y-1)+1*f(x+1,y-1)
+(-2)*f(x-1,y)+0*f(x,y)+2*f(x+1,y)
+(-1)*f(x-1,y+1)+0*f(x,y+1)+1*f(x+1,y+1)
=[f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]
gy=1*f(x-1,y-1)+2*f(x,y-1)+1*f(x+1,y-1)
+0*f(x-1,y)0*f(x,y)+0*f(x+1,y)
+(-1)*f(x-1,y+1)+(-2)*f(x,y+1)+(-1)*f(x+1,y+1)
=[f(x-1,y-1)+2f(x,y-1)+f(x+1,y-1)]-[f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)]
其中f(a,b),表示圖像(a,b)點的灰度值;
圖像的每一個像素的橫向及縱向灰度值通過以下公式結合,來計算該點灰度的大小:
通常,為了提高效率使用不開平方的近似值:
|g|=|gx|+|gy|
如果梯度g大于某一閥值,則認為該點(x,y)為邊緣點。
然后可用以下公式計算梯度方向:
通過計算梯度方向可以得到像素變化的方向,進而勾勒出圖像的邊緣。sobel算子根據像素點上下、左右鄰點灰度加權差,在邊緣處達到極值這一現(xiàn)象檢測邊緣。對噪聲具有平滑作用,提供精確的邊緣方向信息。
在通過sobel算子計算待處理圖像的灰度值之后,進行膚色檢測,如下述步驟:
s1212:根據基于rgb色彩模式的閾值膚色識別準則,對待處理圖像進行膚色檢測。
在具體實現(xiàn)的時候,運用基于rgb色彩模式的閾值膚色識別準則,對待處理圖像進行膚色檢測,精確地獲取人臉區(qū)域,能有效的降低程序的執(zhí)行時間。其中,基于rgb色彩模式的閾值膚色識別準則,具體為:
r>95且g>40且b>20且r>g且r>b且max(r,g,b)-min(r,g,b)>15且abs(r-g)>15;
其中,r為紅色索引值,g為綠色索引值,b為藍色索引值,max為取最大值函數(shù),min為取最小值函數(shù),abs為取絕對值函數(shù)。
s122:根據邊界檢測的結果,確定人臉有效區(qū)域。
通過上述對待處理圖像灰度值的計算以及膚色的識別,進一步根據邊界檢測結果來確定出人臉有效區(qū)域。
s13:采用雙邊濾波法對人臉有效區(qū)域進行雙邊濾波處理,得到美顏處理結果。
在確定出人臉有效區(qū)域,也就是需要真正進行美顏處理的區(qū)域后,進一步采用雙邊濾波法對人臉有效區(qū)域進行雙邊濾波處理,即采用gpuimagebilateralfilter濾鏡對人臉有效區(qū)域進行處理。在整個雙邊濾波實現(xiàn)過程中,采用較低精度的著色語言進行編程,通過優(yōu)化opengl的glsl著色語言的精度實現(xiàn)編程,達到優(yōu)化美顏磨皮并降低cpu消耗的目的。
具體的,雙邊濾波的邊緣保持特性主要是通過在卷積的過程中組合空域函數(shù)和值域核函數(shù)來實現(xiàn),典型的核函數(shù)為高斯分布函數(shù),如下所示:
其中
σs為空域高斯函數(shù)的標準差;σr為值域高斯函數(shù)的標準差;ω為卷積的定義域;x、y為隨機變量;w為權重系數(shù)??梢姡趫D像的平坦區(qū)域,也就是人臉有效區(qū)域,f(y)-f(x)的值變化很小,對應的值域權重接近于1,此時空域權重起主要作用,相當于直接對此區(qū)域進行高斯模糊,在邊緣區(qū)域,也就是人臉與頭發(fā)接觸的區(qū)域,f(y)-f(x)會有較大的差異,此時值域系數(shù)會下降,從而導致此處整個核函數(shù)的分布的下降,而保持了邊緣的細節(jié)信息。
雙邊濾波法由于不只考慮了位置對中心像素的影響,還考慮了卷積核中像素與中心像素之間相似程度的影響,根據位置影響與像素值之間的相似程度生成兩個不同的權重表,在計算中心像素的時候加以考慮這兩個權重,從而實現(xiàn)雙邊低通濾波,因此,雙邊濾波法可以很好的保留邊緣的同時消除噪聲。
本發(fā)明實施例提供的美顏處理方法中,首先實時獲取待處理圖像,該圖像為包含有人臉的圖像,然后對該圖像進行人臉識別,獲取人臉有效區(qū)域,然后針對人臉有效區(qū)域,采用雙邊濾波法進行雙邊濾波處理,由于雙邊濾波不僅考慮到像素間的距離權重,還考慮到了像素之間的差異,因此,采用雙邊濾波法對圖像人臉有效區(qū)域進行處理,不僅實現(xiàn)了模糊平滑圖像的作用,而且很好地保留了邊緣信息,使美顏效果更好。而且在雙邊濾波的實現(xiàn)過程中,采用了較低精度的著色語言進行編程,大大降低了對終端設備cpu的消耗,緩解了終端設備在對圖像處理的時候發(fā)燙的問題。
實施例二:
本發(fā)明實施例提供一種美顏處理裝置,如圖4所示,該裝置包括:圖像獲取單元21、人臉識別單元22以及雙邊濾波單元23。
圖像獲取單元21,用于實時獲取待處理圖像;人臉識別單元22,用于對待處理圖像進行人臉識別,獲取人臉有效區(qū)域;雙邊濾波單元23,用于采用雙邊濾波法對人臉有效區(qū)域進行雙邊濾波處理,得到美顏處理結果。
其中,人臉識別單元22包括:
邊界檢測模塊221,用于采用sobel邊界檢測濾鏡,對待處理圖像進行邊界檢測;人臉有效區(qū)域確定模塊222,用于根據邊界檢測的結果,確定人臉有效區(qū)域。
邊界檢測模塊221具體包括:
灰度值計算模塊2211,用于通過sobel算子計算待處理圖像的灰度值;膚色檢測模塊2212,用于根據基于rgb色彩模式的閾值膚色識別準則,對待處理圖像進行膚色檢測。
本發(fā)明實施例中提供的美顏處理裝置中,各個單元或者模塊的具體實現(xiàn)可參見前述方法實施例,在此不再贅述。
本發(fā)明實施例提供的美顏處理裝置中,首先通過圖像獲取單元21實時獲取待處理圖像,該圖像為包含有人臉的圖像,然后通過人臉識別單元22對該圖像進行人臉識別,獲取人臉有效區(qū)域,然后針對人臉有效區(qū)域,通過雙邊濾波單元23進行雙邊濾波處理,由于雙邊濾波不僅考慮到像素間的距離權重,還考慮到了像素之間的差異,因此,采用雙邊濾波單元23對圖像人臉有效區(qū)域進行處理,不僅實現(xiàn)了模糊平滑圖像的作用,而且很好地保留了邊緣信息,使美顏效果更好。而且在雙邊濾波的實現(xiàn)過程中,采用了較低精度的著色語言進行編程,大大降低了對終端設備cpu的消耗,緩解了終端設備在對圖像處理的時候發(fā)燙的問題。
實施例三:
本發(fā)明實施例提供一種終端設備,包括:處理器和存儲器。其中,處理器通過調用存儲器中的代碼或指令以執(zhí)行如實施例一所述的方法。
本發(fā)明實施例中提供的終端設備中,指令或代碼具體實現(xiàn)過程可參見前述方法實施例,在此不再贅述。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
在本發(fā)明的描述中,需要說明的是,術語“中心”、“上”、“下”、“左”、“右”、“豎直”、“水平”、“內”、“外”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發(fā)明的限制。此外,術語“第一”、“第二”、“第三”僅用于描述目的,而不能理解為指示或暗示相對重要性。
最后應說明的是:以上實施例,僅為本發(fā)明的具體實施方式,用以說明本發(fā)明的技術方案,而非對其限制,本發(fā)明的保護范圍并不局限于此,盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,其依然可以對前述實施例所記載的技術方案進行修改或可輕易想到變化,或者對其中部分技術特征進行等同替換;而這些修改、變化或者替換,并不使相應技術方案的本質脫離本發(fā)明實施例技術方案的精神和范圍,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以權利要求的保護范圍為準。