深度学习AI美颜系列---肤色相似度计算(CIELAB色差计算)

article/2025/10/6 15:44:14

深度学习AI美颜系列---肤色相似度计算(CIELAB色差计算)

 

 

在AI美颜中,经常会用到肤色相似度计算,如何实现这个算法?

步骤如下:

1,人脸皮肤分割;

2,对人脸皮肤分割结果进行LAB颜色空间转换;

3,设立预置肤色分类卡,记录每种肤色的LAB值;

4,根据当前用户人脸皮肤区域的LAB值,与预置肤色卡中的每种肤色LAB进行CIELAB色差计算,色差最小的,即为最接近的肤色;

这里总结一下CIELAB色差计算的两种方式如下:

1、1976-CIELAB

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表示蓝黄色差。

三个基本坐标意义:

  1. 颜色的亮度(L*, L* = 0生成黑色而L* = 100指示白色),
  2. 红色/品红色和绿色之间的位置(a*负值指示绿色而正值指示品红)
  3. 黄色和蓝色之间的位置(b*负值指示蓝色而正值指示黄色)。

CIELAB是均匀的颜色空间,所谓均匀是当数值均匀变化时,人的感官也是均匀变化; 在L*a*b* 模型中均匀改变对应于在感知颜色中的均匀改变。

所以在L*a*b* 中任何两个颜色的相对感知差别,可以通过把每个颜色处理为(有三个分量:L*, a*, b* 的)三维空间中一个点来近似,并计算在它们之间的欧几里得距离。

L*a*b* 空间中的两个颜色的欧几里得距离是ΔE(“Delta E”,ΔE*ab)。

2、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

过程简单,很容易即可实现人脸肤色判断;

代码大家可以自行编写,不在累赘;


http://chatgpt.dhexx.cn/article/j99M9eiR.shtml

相关文章

彩色图像--色彩空间 CIELAB、CIELUV

学习DIP第65天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 更多图像处理机器学习内…

【视觉基础篇】10 # 图形系统如何表示颜色?

说明 【跟月影学可视化】学习笔记。 RGB 和 RGBA 颜色 RGB 和 RGBA 的颜色表示法 #RRGGBB 是 RGB 颜色的十六进制表示法,其中 RR、GG、BB 分别是两位十六进制数字,表示红、绿、蓝三色通道的色阶。 色阶可以表示某个通道的强弱。 每个通道一共有 25…

CIELab图像的通道分解与合成

import cv2 import numpy as np lotus cv2.imread(lotus.jpg) showImgByPlot(lotus,10,6) lotus_lab cv2.cvtColor(lotus, cv2.COLOR_BGR2LAB) l, a, b cv2.split(lotus_lab) #! featureMat cv2.merge([l, a, b]) #! merge失败 featureMat np.dstack((l, a, b)).astype(np…

CIELab和LCH的色彩空间图

资料来源:http://www.18show.cn/share_news/599547.html CIE Lab: LAB色空间是基于一种颜色不能同时既是蓝又是黄这个理论而建立。所以CIE Lab,单一数值可用于描述红/绿色及黄/蓝色特徽。当一种颜色用CIE L*a*b*时,L* 表示明度值…

CIELAB色差计算

CIE色差计算就是在之前Lab颜色空间进行的。色差一般指的是由于位置不同或者放大率不同所造成的颜色差异。而在图像处理领域,尤其是针对色彩的处理中,很重要的一点就是消除色差。那么接下来我们就讨论CIE色差公式的改进过程,每次改进的意义&am…

彩色空间-CIELAB和LAB的关系

CIELAB和LAB的关系 CIELab是CIE的一个颜色系统,表色体系,基于CIELab的意思是基于这个颜色系统之上,基本是用于确定某个颜色的数值信息。 Hunter 1948 L, a, b色彩空间的坐标是L, a和b。但是,Lab经常用做CIE 1976 (L*, a*, b*)色彩…

MATLAB GUI设计如何弹出新界面?

本意是想要设计一个图像处理系统,在该系统中点击按钮可以跳转到另一个GUI界面,在该界面设计后将所设置参数引回到原有的GUI界面,并在该界面进行显示处理好的图像。各位如果有好的结果的话麻烦江湖救急!或者可以加我QQ:…

Matlab GUI编程

在matlab命令行上输入guide或者从菜单中选择New GUI可以创建matlab的图形用户界面。 创建空白的GUI界面(默认),其界面如下: 未命名情况下matlab将会在当前工作目录下,同时将会生成untitled.fig和untitled.m文件。其中…

学习matlab(十四)——GUI

1.编程方法 在本章首先详细的介绍了MATLAB的图形句柄,通过对图形对象的属性进行设置,可以是实现图形的底层控制和设置。然后介绍了用户接口对象,用于建立各种按钮、菜单和工具条等。最后介绍了常用的对话框,这些对话框是GUI编程常用的基本元件。 在MATLAB中,各种句柄图形对象…

matlab制作GUI界面(1)

matlab制作GUI界面 概述创建GUI界面界面设置静态文本最后 概述 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 图形用户界面是一种人与计算机通信的界面显示格式…

matlab GUI编程入门

转载请注明来自:黄朝辉的博客 1.前言 这里我们来实现一个加法器,功能比较简单,主要用于了解matlab中的代码是如何与控件进行交互。 2.绘制界面 在命令行窗口中输入: >> guide 直接“确定”即可。 将需要的控件从左边托…

MATLAB GUI学习———简易计算器

暑假快要过完了才想起来学习,最近刚好接触到MATLAB中的GUI,觉得还挺有意思的,今天就用GUI产生了一个简易的计算器,实现了基本的加、减、乘、除运算。由于是新手小白,所以刚刚开始的时候,我是在网上去找了一…

MATLAB的GUI设计——计算器

出于兴趣爱好自学了一段时间的MATLAB,然后学习自制了一个属于自己的一个计算器,现在将我的第一个GUI分享给大家。(MATLAB版本为R2019a) 一、准备工作 ①首先在MATLAB中的命令行窗口输入guide,之后会出现如下界面&…

MATLAB 编写一个简单的GUI

MATLAB作为一个使用方便、容易上手的工具,也经常用来进行相关项目的结果展示 本次博客讲解一下如何创建一个简单的GUI 首先,启动matlab,在命令窗口输入 guide 在弹出的窗口选择 Blank GUI 在随后弹出的窗口中,左侧是工具栏&#…

Matlab GUI组件详解

1、触控按钮(Push Button) 在Push Button 上双击调用属性查看器可以查看和设置Push Button 的所有属性Push Button 对象的常用属性见下表。 2、静态文本(Static Text) Static Text 通常用于显示其他对象的数值状态等Static Text…

MATLAB创建GUI

1.matlab命令行输入guide,新建GUI图形界面,或者新建–应用程序–GUIDE,选择Blank GUI,选择路径。 2.在图形界面点击左侧控件和组件构建图形界面。 主要用到的控件和组件: (1)按钮(选…

MATLAB GUI实现计算器(设计)

文章目录 1.先打开matlab新建GUI文件2.选择路径(左边是默认的不用改)3.此时界面会弹出一个小框4.建立计算器界面(贴上我设计的界面,不许嘲笑我的设计)5.细致讲解一下,这里的按键和显示框的是怎么实现的6.把…

MATLAB GUI笔记(一):按钮的使用

笔记一是简单地介绍按钮的使用,通过点击按钮实现传递字符串的功能来简单了解按钮的用法。 目录 笔记一是简单地介绍按钮的使用,通过点击按钮实现传递字符串的功能来简单了解按钮的用法。1. 打开GUI界面2. 选择Blank GUI3. 将按钮拖动出来4. 选择可编辑文…

带你从零开始,快速学会 Matlab GUI

本文来自作者 木木小迷哥 在 GitChat 上分享「Matlab GUI 零基础学员快速入门」,「阅读原文」查看交流实录 「文末高能」 编辑 | 洛肯 Matlab广泛地应用于数学分析、计算、自动控制、系统仿真、数字信号处理、图像处理、数理统计、人工智能、通信工程和金融系统等领…

如何用Matlab设计GUI?

如何用matlab设计gui? | TinTin 什么是GUI?matlab编程可以设计GUI吗? GUI定义:GUI指的是图形用户界面(Graphical User Interface,GUI),也称之为图形用户接口,GUI是用图形化方式显示…