美顏圖像保邊MeanShift濾波算法與實現

本文將嘗試使用MeanShift濾波來做磨皮算法;圖玩智能科技爲企業提供更穩定更優質的美顏產品及服務,歡迎隨時諮詢www.toivan.com

 

MeanShift即均值漂移,最早由Fukunage在1975年提出。

MeanShift一般是指一個迭代的步驟,即先算出當前點的偏移均值,然後以此爲新的起始點,繼續移動,直到滿足一定的結束條件;MeanShift廣泛應用於圖像聚類、平滑、分割和跟蹤方面,本文主要講的是圖像的平滑濾波,嘗試應用於人像的磨皮算法中;

 

我們使用一張圖來講解MeanShift的算法原理

Fig.1基本MeanShift算法示意圖

 

 

我們假設起始位置的濾波半徑爲Radius,也就是圖a中的藍色圓形區域半徑,圖a爲起始位置,假設紅色點爲目標像素,每個目標像素包含位置特徵和像素RGB特徵;

 

1,計算圖a起始位置處,半徑Radius內目標像素的位置特徵和像素RGB特徵的均值M,如圖c所示;

 

2,將起始位置的初始特徵(位置特徵和RGB特徵)更新爲特徵M;

 

3,計算M處半徑Radius區域內,目標像素的均值特徵M;

 

4,按照1-3的過程進行迭代,直到滿足一定的迭代次數和限制條件;

 

5,圖a中起始位置的RGB特徵值即爲迭代完成時M的RGB特徵值,如圖f所示;

 

整個過程也叫均值漂移,實際上不是位置從圖a起始值漂移到了f圖中的位置,而是圖a和圖f處的特徵值歸爲了一類,當然這裏指的是RGB像素值;

 

這裏我們只講最基本的MeanShift平滑濾波算法,對於改進的MeanShift算法不做講解;

 

算法流程如下:

 

1,假設當前像素點P(i,j),濾波半徑爲R,迭代次數閾值爲maxIter,像素差值閾值爲threshold;

 

2,計算以P爲中心,R爲半徑的圓形區域S內目標像素的均值特徵,包含像素rgb的均值特徵和位置的均值特徵(質心),計算公式如下:

 

                           

 

 

其中K爲核函數,這裏取得是|x-y|;

 

1,將P的特徵值M更新爲2中計算的新特徵值;

 

2,按照2-3的步驟進行迭代,直到滿足迭代次數閾值maxIter停止,P處的像素值即迭代終結時的rgb特徵值;

 

上述即爲MeanShift平滑濾波算法的流程,該算法最大缺點爲速度慢,本文用它來嘗試磨皮效果,採用YCbCr顏色空間,僅對Y通道處理,以此加速;

 

效果圖如下所示:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章