抠人像可抠头发丝的模型-软语义分割(Semantic Human Matting)

news2025/1/8 4:59:11

软语义分割(Semantic Human Matting)

    • 一、Semantic Human Matting原理
    • 二、Semantic Human Matting 项目文件介绍
    • 三、数据集介绍及下载地址
    • 四、训练流程
    • 五、项目代码下载地址

哔哩哔哩详细解说(进主页看全集):
https://www.bilibili.com/video/BV14A4m137NV/?vd_source=ac50a256a9152f1131aa26eb6620759d

一、Semantic Human Matting原理

在这里插入图片描述

Semantatic Human Matting 文章链接请点击这里
在这里插入图片描述
第一步:将输入图像送入到T-Net中进行计算,得到三张图:Bs、Fs和Us.
T-Net:就是一个编码和解码的过程,和常见的语义分割网络类似
Bs:确定的背景区
Fs:确定的前景区
Us: 不确定的区域
第二步: 将得到的Bs、Fs、Us和原始输入图拼接,此时得到6通道(原始输入图像3通道+Bs+Fs+Us)的数据,再将得到的此数据送入到M-Net网络当中,得到一张图像αr。
M-Net: 网络同样是一个编码和解码的过程
αr:是一个1通道的预测图,该图不是最终的预测结果
第三步:将M-Net的预测结果和T-Net预测结果当中的Us相乘,然后和T-Net预测结果当中的Fs相加,得到该模型的最终预测结果αp。公式如下:
在这里插入图片描述

以上就是Semantatic Human Matting网络的基本原理

二、Semantic Human Matting 项目文件介绍

项目结构如下图所示,总共有3个一级文件夹(data、model、run),3个运行脚本(train.py、test_camera.py、test_image.py)和1个readme.md,说明如下:
在这里插入图片描述
data:处理相关数据的脚本和数据存放
------datas:存储训练数据
------original:原始图像数据存储
------dataset.py:数据读取脚本
------gen_trimap.py:产生trimap图像,及前景、背景、不确定区域
------get_traintxt_and_maskimage.py:生成训练图像序列train.txt并产生mask文件
------knn_matting.py:生成alpha图像,依赖于原图和mask
------split_train_val.py:划分训练集和验证集
model:网络模型搭建
------M_Net.py:对应图中的M_Net
------T_Net.py:对应图中的T_Net
------network.py:调用T_Net和M_Net搭建网络
run:训练模型和测试图像保存
trian.py: 训练脚本
test_image.py: 测试图像脚本
test_camera.py: 通过调用视像头测试

三、数据集介绍及下载地址

使用的数据集是北京玩星汇聚科技有限公司所高质量标注并开源的一份人像抠图(matting) 数据集,总共有 34427 张图像和对应的标签结果图。目录结构如下:
在这里插入图片描述
clip_img: 存放原始图像
在这里插入图片描述
matting:存放标签文件的png四通道图像,是根据标签扣除掉背景的图像。
在这里插入图片描述
全部数据集的下载地址如下:
链接:https://pan.baidu.com/s/1ojILLgY8xGCbDcbo5H1ilw?pwd=n5qk
提取码:n5qk
由于全部数据集非常庞大,我从中随便拿出896张图像进行测试,数据集的下载地址如下:
链接:https://pan.baidu.com/s/1IgOoIzrMULx4aVIMJx_vOA?pwd=c7c7
提取码:c7c7
将数据集下载并解压出来后,放在data/original文件夹下面,如下图所示:
在这里插入图片描述

四、训练流程

该网络训练方法有两种,第一种是先训练T-Net,再训练M-Net;第二种是端到端的训练方法,即两个网络一起训练。本代码当中的训练方法是第一种,大家可以自己修改成第二种。训练及测试具体过程如下:
4.1、数据准备:
(1)将你自己的原始图像放在image/original/clip_img,对应的标签文件放image/original/matting文件当中,原图和标签文件要一一对应。
(2)使用get_traintxt_and_maskimage.py文件生成trains.txt和mask文件。
(3)使用gen_trimap.py文件生成trimap图像,trimap是训练需要用到的Bs、Fs、Us。
(4)使用knn_matting.py文件生成alpha图像,保存在alpha文件下,对应原理图中的alpha
(5)使用split_train_val.py文件划分数据集,产生trian.txt和val.txt文件
(6)为方便训练,将原图复制一份到datas文件夹下,改名为image(若不复制一份,可修改文件加载路径)
按照以上步骤就可以制作成相对应的数据集,训练过程中使用的文件datas路径下面的三个文件夹中的图像和两个txt文件。文件结构如下:
在这里插入图片描述

4.2、模型训练:
如果路径没有改变,那么,就只需要修改训练迭代次数等相关参数就可以直接运行trian.py文件进行训练,训练之后的模型存放再run文件目录之下,保存效果最好和最后一个模型。
4.3、图像测试:
运行test_image.py文件就可以直接测试了
运行test_camera.py脚本可以调用摄像头进行测试

五、项目代码下载地址

  1. 百度网盘:
    链接:https://pan.baidu.com/s/1IV_3XFUe-A9burRk9RKqoQ?pwd=ip6p
    提取码:ip6p
  2. gitee:
    https://gitee.com/chenzhenyutree/semantic_matting.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1461449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++入门学习⑦——继承和多态(超级详细版)

目录 前言 继承 继承是什么? 为什么会存在继承? 语法: 一些基本的定义: 三种继承方式: 对象模型 对于构造和析构的顺序 同名函数的处理方式 总结: 静态成员: 定义: 性…

超级详细的python考核试题及答案

一、选择题(每题2分,共20分) 1.下列哪个语句在Python中是非法的? (B) A、x y z 1 B、x (y z 1) C、x, y y, x D、x y??xxy 2.关于Python内存管理,下列说法…

创意办公:专注 ONLYOFFICE,探索办公新境界

一.ONLYOFFICE 介绍 ONLYOFFICE 是一个基于 Web 的办公套件,提供了文档处理、电子表格和演示文稿编辑等功能。它被设计为一个协作工具,支持多人实时协作编辑文档,并且可以在本地部署或者作为云服务使用。 二.ONLYOFFICE 特点和功能 以下是 …

机器学习——强化学习作业

作业内容 成功降落在两个黄色旗子中间为成功,其他为失败 Policy Gradient方法 Actor-Critic方法 范例结果 baseline Policy Gradient实现

【Java系列】JDK

目录 JDK介绍JDK版本系列文章版本记录JDK介绍 JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 JDK版本 SE(JavaSE),standard edition,标准版,是我们通…

AOSP10 替换系统launcher

本文实现将原生的launcher 移除&#xff0c;替换成我们自己写的launcher。 分以下几个步骤&#xff1a; 一、新建一个自己的launcher项目。 1.直接使用android studio 新建一个项目。 2.修改AndroidManifest.xml <applicationandroid:persistent"true"androi…

TSINGSEE青犀AI智能分析网关V4初始配置与算法相关配置介绍

TSINGSEE青犀AI智能分析网关V4内置了近40种AI算法模型&#xff0c;支持对接入的视频图像进行人、车、物、行为等实时检测分析&#xff0c;上报识别结果&#xff0c;并能进行语音告警播放。硬件管理平台支持RTSP、GB28181协议、以及厂家私有协议接入&#xff0c;可兼容市面上常见…

Java的String类

目录 String类的常用方法 1.1 字符串构造 1.2 String对象的比较 1.3 字符串查找 1.4 转换 1.5 字符串替换 1.6字符串拆分 1.7 字符串截取 1.8 其他操作方法 1.9 字符串的不可变性 1.10 字符串修改 String类的常用方法 1.1 字符串构造 String类常用的构造方法有很多…

基于springboot+vue的B2B平台的购物推荐网站(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

基于Java (spring-boot)的社区物业管理系统

一、项目介绍 本系统共分为两个角色&#xff1a;管理员和业主。 主要功能有&#xff0c;核心业务处理&#xff0c;基础信息管理&#xff0c;数据统计分析 核心业务处理&#xff1a;车位收费管理&#xff0c;物业收费管理&#xff0c;投诉信息管理&#xff0c;保修信息管理。 …

Vue3之生命周期基础介绍

让我为大家介绍一下vue3的生命周期吧&#xff01; 创建阶段&#xff1a;setup 我们直接console.log就可以了 console.log("创建");挂载阶段&#xff1a;onBeforeMount(挂载前)、onMounted(挂载完毕) import { onBeforeMount, onMounted } from vue; // 挂载前 on…

开源模型应用落地-工具使用篇-向量数据库(三)

一、前言 通过学习"开源模型应用落地"系列文章&#xff0c;我们成功地建立了一个完整可实施的AI交付流程。现在&#xff0c;我们要引入向量数据库&#xff0c;作为我们AI服务的二级缓存。本文将详细介绍如何使用Milvus Lite来为我们的AI服务部署一个前置缓存。 二、术…

Git笔记——1

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 Git安装_centos 创建本地仓库 配置本地仓库 添加文件——场景一 查看.git文件 添加文件——场景二 修改文件 版本回退 总结 前言 世上有两种耀眼的光芒&#…

【复现】CVE-2024-0939 smart管理平台漏洞_55

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 百卓Smart S85F是Smart系列上网行为管理设备&#xff0c;包括网络应用封堵、流量控制、链路负载均衡、网页分类阻断、上网内容审计…

Vue | (三)使用Vue脚手架(下)| 尚硅谷Vue2.0+Vue3.0全套教程

文章目录 &#x1f4da;Vue 中的自定义事件&#x1f407;使用方法&#x1f407;案例练习&#x1f407;TodoList案例优化 &#x1f4da;全局事件总线&#x1f407;使用方法&#x1f407;案例练习&#x1f407;TodoList案例优化 &#x1f4da;消息订阅与发布&#x1f407;使用方法…

error Error: certificate has expired

解决方案&#xff1a; yarn config set "strict-ssl" false -g 我开发的chatgpt网站&#xff1a; https://chat.xutongbao.top

npm run serve启动报错npm ERR! Missing script: “serve“

启动项目的时候用npm run serve发现报了以下的错误 解决方法&#xff1a; 1.一般情况下&#xff0c;这个问题是因为package.json文件里面确实没有 这里没有可能因为你的脚手架版本比较低&#xff0c;如果不想换&#xff0c;可以用 这里面有的 npm run dev去启动也是可以的 n…

centos 9 编译安装 LAMP wordpress

[rootlocalhost ~]# ll 总用量 655760 -rw-------. 1 root root 1040 2月 17 16:57 anaconda-ks.cfg drwxr-xr-x. 29 501 games 4096 2月 21 11:00 apr-1.7.4 -rw-r--r--. 1 root root 1122147 2月 21 10:57 apr-1.7.4.tar.gz drwxr-xr-x. 21 501 games …

微前端(qiankun,webpack5模块联邦)

1singleSpa vue 出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制&#xff0c;可能会对生态系统造成一些影响. 临时方案 export NODE_OPTIONS--openssl-legacy-provider 总结 子应用 子应用独立运行 判断是…

嵌入式系统在智慧城市建设中的关键角色与挑战

&#xff08;本文为简单介绍&#xff0c;观点源于网络&#xff09; 智慧城市的概念&#xff0c;随着信息技术的日益发展而不断深化。它利用各种信息传感器&#xff0c;通过物联网、云计算、大数据等技术手段&#xff0c;实现城市管理的智能化、精细化。在这一过程中&#xff0…