当前位置: 首页 > ai >正文

影楼精修-皮肤瑕疵祛除算法解析

注意:本文样例图片为了避免侵权,均使用AIGC生成;

顾名思义,皮肤瑕疵祛除旨在祛除人像照片皮肤区域的痘痘/斑点/痣/胎记等瑕疵;当前主流算法方案可分为传统图像处理方法和基于深度学习的方法,本文重点介绍基于深度需恶习的方法;

皮肤瑕疵祛除是磨皮好坏的第一步,或者说是人像精修皮肤处理的基础,对于设计师来讲,再处理皮肤磨皮之前,会先通过PS修补工具,人工将大的痘痘/痣等瑕疵祛除,然后在进行磨皮处理,原因是磨皮算法很难将大面积的瑕疵祛除。通用的算法流程如下图所示:

  1. 假设用户原图S,最终祛除瑕疵效果图为D,对S进行皮肤分割,得到皮肤Mask图Skin_mask;

  2. 对皮肤区域进行瑕疵检测/分割,得到瑕疵Mask集合(每个瑕疵位置和对应Mask信息);

  3. 循环遍历瑕疵区域集合,对瑕疵进行分类:痘痘、痣、其他;

  4. 对需要祛除的瑕疵类型进行瑕疵祛除,得到最终效果图D;

上述算法流程是皮肤瑕疵祛除的通用流程,从AI美颜的角度出发,本人对上述步骤进行算法拆解如下:

  1. 皮肤分割,使用深度学习算法,Unet,DenseNet,DeepLab系列,PSPNet等等;

  2. 瑕疵检测/分割,对于检测可以使用Yolo系列,速度快精度高,对于分割这里推荐一个UltraLight VM-UNet,论文名字《Parallel Vision Mamba Significantly Reduces Parameters for Skin Lesion Segmentation》,git链接:https://github.com/wurenkai/UltraLight-VM-UNet

  3. 瑕疵分类,这个任务比较简单,类别也比较少,简单的CNN即可;

  4. 瑕疵祛除,这个步骤比较重要,可以使用基于深度学习的inpainting算法,也可以直接使用GAN网络来得到瑕疵祛除后的效果图,个人推荐GAN,可以保留皮肤纹理,输入为瑕疵图+瑕疵mask,输出为祛除瑕疵后的效果图;

像素蛋糕瑕疵祛除

像素蛋糕将瑕疵祛除划分为了人脸区域“祛斑祛痘”和身体祛瑕疵,瑕疵分类为痣和痘斑瑕疵,示意图如下:

功能说明:

  1. 选择祛斑祛痘功能调节,会将人脸区域进行祛斑祛痘处理,但其他身体皮肤区域不变;

  2. 选择身体祛瑕疵功能调节,会将除人脸之外的其他皮肤区域进行祛瑕疵(痘斑)处理;

  3. 选择祛痣功能,只会消除人脸皮肤区域的痣,痘斑不会祛除;

结合像素蛋糕的功能模块,本人对通用皮肤瑕疵祛除算法进行了对应的修改,新的流程如下:

  1. 假设用户原图S,最终祛除瑕疵效果图为D,对S进行皮肤分割,得到皮肤Mask图Skin_mask;

  2. 对皮肤区域进行瑕疵检测/分割,得到瑕疵Mask集合(每个瑕疵位置和对应Mask信息);

  3. 循环遍历瑕疵区域集合,对瑕疵进行分类:痘痘、痣、其他;

  4. 对原图S进行人脸关键点检测,根据人脸点位确定人脸区域Mask,此处也可以直接进行人脸区域分割来得到Mask,两者都可以;

  5. 设定三个参数:身体祛瑕疵参数k_body,人脸祛斑祛痘参数k_face,人脸祛痣开关参数k_s,根据人脸区域mask,瑕疵分类结果,分别将符合祛除条件的瑕疵图像筛选出来,送入瑕疵祛除模块;

  6. 循环遍历所有瑕疵区域,通过瑕疵祛除模块输出对应祛除效果,根据瑕疵融合参数,融合到原图S,得到最终瑕疵祛除效果图D;

上述过程就是像素蛋糕的瑕疵祛除算法流程,本人基于上述流程进行了算法实现,这里给出本人算法和像素蛋糕效果对比图:

http://www.xdnf.cn/news/2405.html

相关文章:

  • 安卓基础(适配器和RecyclerView )
  • 富文本展示前使用DOMPurify进行文本过滤
  • T 电梯维修作业考试精选题目
  • AI大模型知识与医疗项目实践 - Java架构师面试实战
  • Haply MinVerse触觉3D 鼠标—沉浸式数字操作,助力 3D 设计与仿真
  • DeepSeek系列(10):与其他AI工具协同
  • 自然语言to SQL的评估
  • #苍穹外卖# (day 12)
  • 2025年大一ACM训练-搜索
  • 如何创建并使用极狐GitLab 部署令牌?
  • 特征工程四-1:自定义函数find_similar_docs查找最相似文档案例
  • ts全局导入接口
  • 8.Excel:数据验证和下拉列表
  • C++入门小馆: STL 之queue和stack
  • 图像预处理-形态学变换
  • ESP32-S3 入门学习笔记(四):LED实验
  • shell脚本部署disu博客
  • java当中的类加载器
  • 大模型评测调研报告
  • docker compose -p的踩坑经验
  • terraform查看资源建的关联关系
  • PyQt Python列表操作全解析:从基础到实战
  • 北峰专业数字集群通信系统:构建消防指挥调度的智能化基石
  • 中国地区土地覆盖综合数据集
  • DigitalOcean推出Valkey托管缓存服务
  • Lua 第11部分 小插曲:出现频率最高的单词
  • 驼峰命名法(Camel Case)与匈牙利命名法(Hungarian Notation)详解
  • Web开发-JavaEE应用依赖项Log4j日志Shiro验证FastJson数据XStream格式
  • 3、Linux操作系统下,linux的技术手册使用(man)
  • flask返回文件的同时返回其他参数