实时“头发-面部皮肤”分割与人脸肤色分类
点击我爱计算机视觉标星,更快获取CVML新技术
今天跟大家介绍一篇新出的文章 Real-time Segmentation and Facial Skin Tones Grading ,来自东北大学、北航、微软亚洲研究院、美到家APP的学者提出一种能够实时运行的“头发-面部皮肤”分割算法,并在此基础上构建了一个准确的人脸肤色分类方法。
该文作者信息:
在美妆类增强现实应用中,经常需要对用户“头发-面部皮肤”区域进行分割,而该文作者指出现今大多数分割算法更加关注的是分割精度,所以往往使用繁重的主干网,而巨大的计算量难以满足实际应用的需求。
作者在微软去年提出的高分辨率网络基础上提出融合高分辨率细节信息和低分辨率上下文信息的HLNet,取得了较好的精度-速度的平衡。在输入图像224x224大小的时候,可以在CPU上运行到16 fps。
算法处理结果:
上图是一个使用分割后的图像进行头发色彩渲染的例子,(a)为输入图像,(b)为该文发明的算法分割的结果再经过引导滤波得到的头发区域,(c)为头发色彩渲染的结果。可见,该文提出的算法较好的提取了头发区域,渲染的结果很真实,几乎没有瑕疵。
网络架构
该文在高分辨率网络HRNet技术上提出了本文的分割算法。
网络前三层,作者使用Fast-SCNN结合标准卷积和深度可分离卷积降低模型复杂度。
中间方框区域称为高、低分辨率特征信息交互模块(InteractionModule),融合高分辨率特征的细节信息和低分辨率特征丰富的上下文信息。作者不仅使用了标准卷积还使用了MobileNetV2中提出的逆残差模块,如下图:
随后作者使用 FFM Attention ,使模型聚焦于那些信息丰富的特征通道,而抑制那些不重要的通道。
最后的解码器部分是在28x28大小特征图上直接bilinear上采样,后接softmax分类层。
HLNet网络结构参数:
对于得到的分割结果,使用引导滤波进行后处理,以在保持边缘的同时抑制噪声。
人脸肤色分类
该文按照亚洲人审美的习惯,将人脸皮肤划分为瓷白,象牙白,中度,淡黄色和黑色 5 种肤色。如下图:
在肤色分类时,作者是在HLNet分割结果基础上提取人脸皮肤区域,然后提取颜色矩特征(color moment features)结合传统机器学习方法随机森林(Random Forest Classifier)进行分类。
面部区域提取方法:
值得一提的是,作者发现:在颜色分类方面,使用低级的颜色特征+传统机器学习方法比使用深度学习方法更好。
实验结果
作者在有分割标注的三个人脸数据集上进行了实验。
下表展示了三个数据集上不同算法和不同度量标准的结果,可见HLNet大部分情况下都取得了不错的结果,甚至在Figaro1K数据集上比VGG的结果还要好。
而HLNet在CPU上仅需要63ms/图,在GPU上仅需要4.7+0.2ms /图,VGG在GPU上则需要64ms/图。
为了验证作者提出的算法的通用分割能力,作者又在CamVid交通场景分割数据集进行了评估,相比于轻量级分割算法,HLNet的速度更快。如下图:
肤色分类结果,使用不同的色彩空间和颜色特征:
可见颜色矩结合YCrCb色彩空间取得了更高的分类精度。
下图为论文展示的分割和头发色彩渲染的结果:
这是一篇非常具有工程参考价值的论文,尤其在美妆产品推荐、小视频直播等应用场景中。
作者已将代码开源,欢迎大家参考。
论文地址:
https://arxiv.org/abs/1912.12888
代码地址:
https://github.com/JACKYLUO1991/Face-skin-hair-segmentaiton-and-skin-color-evaluation
图像分割交流群
关注最新最前沿的语义分割、实例分割、全景分割技术,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)
(请务必注明:分割)
喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。
(不会时时在线,如果没能及时通过验证还请见谅)
长按关注我爱计算机视觉
实时“头发-面部皮肤”分割与人脸肤色分类相关推荐
- 实时头发-面部皮肤分割与人脸肤色分类
一种基于深度卷积神经网络(DCNN)用于于头发和面部皮肤实时分割方法 原创 imalg图像算法 发布于2020-01-03 10:38:47 阅读数 7 收藏 展开 团队信息 摘要 现代的语义分割方法 ...
- 一种基于深度卷积神经网络(DCNN)用于于头发和面部皮肤实时分割方法
团队信息 摘要 现代的语义分割方法通常过于关注模型的准确性,因此引入繁琐的主干,这会带来沉重的计算负担和内存占用.为了解决这个问题,作者提出了一种基于深度卷积神经网络(DCNN)的高效分割方法,用于头 ...
- Real-time Segmentation and Facial Skin Tones Grading-实时分割和面部皮肤骨骼分级
论文 Summary 摘要 keyword 关键字 1.Introduction 背景介绍 2 Ready work 准备工作 2.1 Lightweight model 轻量级模型 2.2Conte ...
- AidLux“实时头发分割”案例源码详解
"实时头发分割"案例源码详解 1. 构建APP框架和添加主要控件 2. 头发分割的方法 打开实时头发分割案例 1.在VScode中进入代码编辑状态. 2.代码存在路径在/examp ...
- 基于皮肤分割的磨皮算法
查阅了博客上绝大多数关于皮肤分割和磨皮美颜的算法,然后自己找了各位博主的代码,有自己将各部分代码组合修改调试,最终写了份参照代码.至于引用哪些博主的代码,找的博客太多分不清楚了,有博主看到引用代码可以 ...
- 基于语义分割实现人脸图像的皱纹检测定位与分割
前言 人脸皱纹主要区分有额纹.川字纹.眼下纹.法令纹.嘴角纹,眼角纹等,在美颜相机,智能医美等于应用领域里,需要对人脸皱纹进行检测.定位.分割,测量等. 传统图像算法的皱纹检测 1.传统算法的皱纹检测 ...
- python实现面部特效_Python实现人脸带墨镜效果
DEAL WITH IT是这样一个效果,眼镜从屏幕外飞进来,带在用户的脸上.这种效果的最佳实例是以一种独特的方式完成的. 今天,我们将编写一个生成器,该生成器使用任何有面部的静态图像作为输入.如果你想 ...
- 电脑对皮肤的3大致命伤害 电脑对皮肤的伤害—— 第一:皮肤干燥有细纹肤色变黄。 第二:长有斑点。 第三:眼部有细纹、黑眼圈严重。 许多朋友一直向我提出,长期的电脑工作,使皮肤出现了以
电脑对皮肤的3大致命伤害 电脑对皮肤的伤害-- 第一:皮肤干燥有细纹肤色变黄. 第二:长有斑点. 第三:眼部有细纹.黑眼圈严重. 许多朋友一直向我提出,长期的电脑工作,使皮肤出现了以上3点皮肤问题,希 ...
- 基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别
基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别 一.前言概述 二.实时时间显示 三.百度AI人脸识别 3.1 获取access_token 3.2 发送请求,通过网络请求方 ...
最新文章
- Spring定时任务的几种实现
- 自学python方法-从零开始自学python编程,你找对方法了吗?
- scala条件替换_scala - 有没有办法用scala中的高阶方法替换嵌套的For循环 - SO中文参考 - www.soinside.com...
- 将一台电脑的磁盘空间映射到另一台电脑
- MATLAB数字信号处理函数
- 「C++」C++ Primer Plus 笔记:第一章 预备知识
- java ready_Java PushbackReader ready()用法及代码示例
- Java Micro-Benchmarking:如何编写正确的基准
- JSP语法(JSP动作)
- 利用UTL_FILE包实现文件I/O操作
- Vue_案例_初始化显示_采用组件化编写页面_实现组件间通信---vue工作笔记0022
- oracle 10g dg参数配置,Windows平台之Oracle10g DG配置
- Selenium 与 Android自动化测试
- 小组学习电子教室等同屏工具调研
- c语言cad改变字体大小,cad怎么改变默认文字字体
- 嵌入式——Linux 学习之路(二):Docker
- Cadence学习笔记-第二章-瞬态仿真
- WPS WORD 项目符号和编号,继续前一列表
- 腾讯云,云点播,视频合成
- 怎么体现声屏障的美观性?
热门文章
- Linux学习笔记5
- ddos工具linux,DDoS常用工具大全
- java 调用sqlite_java 调用 sqlite 数据库
- php android html字符串,实例讲解php将字符串输出到HTML
- 【Windows】将notepad++添加到右键菜单中
- dijkstra算法PHP,单源最短路径(dijkstra算法)php实现
- java哈夫曼树编码_哈夫曼树的编码实验
- .Net Framework4.5中Asp.net mvc使用Singal R轮训实现导入进度条功能
- 【GDSOI2019】滑稽二乘法【数据结构】【LCT】
- win7 / mysql-8.0.11-winx64 安装的测坑步骤