在AI美顏中,常常會用到膚色類似度計算,如何實現這個算法?算法
今天爲你們分享一下,圖玩智能科技爲企業提供更穩定更優質的美顏產品,歡迎隨時諮詢www.toivan.com.函數
步驟以下:性能
1,人臉皮膚分割;spa
2,對人臉皮膚分割結果進行LAB顏色空間轉換;3d
3,設立預置膚色分類卡,記錄每種膚色的LAB值;blog
4,根據當前用戶人臉皮膚區域的LAB值,與預置膚色卡中的每種膚色LAB進行CIELAB色差計算,色差最小的,即爲最接近的膚色;產品
這裏總結一下CIELAB色差計算的兩種方式以下:class
一、1976-CIELABim
CIELab是CIE的一個顏色系統,表色體系,基於CIELab的意思是基於這個顏色系統之上,基本是用於肯定某個顏色的數值信息。總結
Hunter 1948 L, a, b色彩空間的座標是L, a和b。可是,Lab常常用作CIE 1976 (L*, a*, b*)色彩空間的非正式縮寫(也叫作CIELAB,它的座標其實是L*, a*和b*)。
LAB顏色空間是基於人眼對顏色的感知,能夠表示人眼所能感覺到的全部顏色。L表示明度,A表示紅綠色差,B表示藍黃色差。
三個基本座標意義:
顏色的亮度(L*, L* = 0生成黑色而L* = 100指示白色),
紅色/品紅色和綠色之間的位置(a*負值指示綠色而正值指示品紅)
黃色和藍色之間的位置(b*負值指示藍色而正值指示黃色)。
CIELAB是均勻的顏色空間,所謂均勻是當數值均勻變化時,人的感官也是均勻變化; 在L*a*b* 模型中均勻改變對應於在感知顏色中的均勻改變。
因此在L*a*b* 中任何兩個顏色的相對感知差異,能夠經過把每一個顏色處理爲(有三個份量:L*, a*, b* 的)三維空間中一個點來近似,並計算在它們之間的歐幾里得距離。
L*a*b* 空間中的兩個顏色的歐幾里得距離是ΔE(「Delta E」,ΔE*ab)。
二、CIEDE2000
CIEDE2000色差公式主要對CIE94公式作了以下幾項修正:
從新標定近中性區域的a*軸,以改善中性色的預測性能;
將CIE94公式中的明度權重函數修改成近似V形函數;
在色相權重函數中考慮了色相角,以體現色相容限隨顏色的色相而變化的事實;
包含了與BFD和Leeds色差公式中相似的橢圓選擇選項,以反映在藍色區域的色差容限橢圓不指向中心點的現象;
CIEDE2000色差公式以下:
計算步驟:
- 計算CIELAB公式中的L*、a*、b*、C*ab
- 計算L‘、a‘、C‘、h‘
- 計算△L‘、△C‘ab、△H‘ab
- 計算SL、SC、SH和T
過程簡單,很容易便可實現人臉膚色判斷。