deep image matting

news2024/11/23 5:10:02

[Matting]论文阅读:Deep Image Matting 详细解读-CSDN博客文章浏览阅读3.5k次,点赞2次,收藏10次。[Matting]论文阅读:Deep Image Matting 详细解读一 、摘要二、方法2.1 第一部分(Matting encoder-decoder stage)2.2 第二部分(Matting refinement stage)三、实验结果四、思考写在前面文章链接: linkgithub复现链接: link随着深度学习的成熟与发展,抠图的方法从早些年间基于传播的方法和基于采样的方法到现在使用卷积神经网络来完成抠图的过程,中间伴随着众多挑战:1.总所周知,深度学习出色的结果是通过大量的数_deep image mattinghttps://blog.csdn.net/XxxLittleOne/article/details/114435137

代码:

model = DIMModel(n_classes=1,in_channels=4,is_unpooling=True)
- down1, indices_1, unpool_shape1 = self.down1(inputs)
- down2, indices_2, unpool_shape2 = self.down2(down1)
- down3, indices_3, unpool_shape3 = self.down3(down2)
- down4, indices_4, unpool_shape4 = self.down4(down3)
- down5, indices_5, unpool_shape5 = self.down5(down4)
- up5 = self.up5(down5, indices_5, unpool_shape5)
- up4 = self.up4(up5, indices_4, unpool_shape4)
- up3 = self.up3(up4, indices_3, unpool_shape3)
- up2 = self.up2(up3, indices_2, unpool_shape2)
- up1 = self.up1(up2, indices_1, unpool_shape1)
- x = torch.squeeze(up1, dim=1)  # [N, 1, 320, 320] -> [N, 320, 320]
- x = self.sigmoid(x) 

train_dataset = DIMDataset("train")
- img, alpha, fg, bg = process(im_name, bg_name) # 在data_gen中提前生成
- different_sizes = [(320, 320), (480, 480), (640, 640)]
- crop_size = random.choice(different_sizes)
- trimap = gen_trimap(alpha)
- x, y = random_choice(trimap, crop_size)
- img = safe_crop(img, x, y, crop_size)
- alpha = safe_crop(alpha, x, y, crop_size)
- trimap = gen_trimap(alpha)
- x = torch.zeros((4, im_size, im_size), dtype=torch.float)
- img = img[..., ::-1]  # RGB
- img = transforms.ToPILImage()(img)
- img = self.transformer(img)
- x[0:3, :, :] = img
- x[3, :, :] = torch.from_numpy(trimap.copy() / 255.) # RGB+Trimap
- y = np.empty((2, im_size, im_size), dtype=np.float32)
- y[0, :, :] = alpha / 255.
- mask = np.equal(trimap, 128).astype(np.float32)
- y[1, :, :] = mask # alpha+mask
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=args.batch_size, shuffle=True, num_workers=8)
valid_dataset = DIMDataset('valid')
valid_loader = torch.utils.data.DataLoader(valid_dataset, batch_size=args.batch_size, shuffle=False, num_workers=8)

for epoch in rang(start_epoch,end_epoch):
    train_loss = train()
    - model.train()
    - for i,(img,alpha_label) in enumerate(train_loader):
        alpha_out = model(img)
        loss = alpha_prediction_loss(alpha_out,alpha_label)
        optimizer.zero_grad()
        loss.backward()
        ...        
    valid_loss = valid()
    save_checkpoint()

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

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

相关文章

ThingsBoard社区版入门介绍

介绍 本教程主要演示ThingsBoard的基本用法并掌握: 设备连接;数据发布;数据展示;警报触发;通知推送。 教程将连接和可视化来自温度传感器的数据以及简单使用。 必备条件 你需要启动并运行ThingsBoard服务, 建议使…

java spring 02. AbstractApplicationContext的refresh

spring创建对象的顺序,先创建beanfactory,再会把xml文件读取到spring。 public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, Nullable ApplicationContext parent)throws BeansException {//调用父类的构造方法super(p…

05_Mongooes

Mongooes Mongoose是通过Node来操作MongoDB的一个模块。是基于Node.js的第三方模块。 一、Node.js安装 1.解压 2.创建文件夹 解压路径下,创建两个文件夹 node_global:全局安装位置 node_cache:缓存 3.配置 配置环境变量 在path路径…

挂耳式运动蓝牙耳机什么牌子好?六大选购技巧大揭秘

随着蓝牙耳机的普及,越来越多的人选择它们来满足日常的娱乐需求。这些耳机以时尚的设计和舒适的佩戴体验而受到青睐。蓝牙耳机主要分为挂耳式和入耳式两大类。尽管入耳式耳机功能全面,但对于热衷运动的用户来说不够稳固,因为在运动时很容易掉…

蓝桥杯-大小写转换

转换方法 toLowerCase() String类的toLowerCase()方法可以将字符串中的所有字符全部转换成小写,而非字母的字符不受影响,语法格式如下: 字符串名.toLowerCase() //将字符串中的字母全部转成小写,非字母不受影响。 package chap…

闫震海:腾讯音乐空间音频技术的发展和应用 | 演讲嘉宾公布

一、3D 音频 3D 音频分论坛将于3月27日同期举办! 3D音频技术不仅能够提供更加真实、沉浸的虚拟世界体验,跨越时空的限制,探索未知的世界。同时,提供更加丰富、立体的情感表达和交流方式,让人类能够更加深入地理解彼此&…

游戏力:竞技游戏设计实战教程

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 游戏力:竞技游戏设计实战教程 引言…

pinia报错does not provide an export named ‘hasInjectionContext

你们好,我是金金金。 场景 我这里是uniappvue3编写的一个小程序项目,在集成pinia过程当中遇到此问题,报错请求的模块 未提供 导出名hasInjectionContext(位于 pinia.mjs:6:10) 以下我项目当中vue和pinia的具体依赖版本…

RAG全解析和LangChain代码实现

大家好,自从人们意识到可以用自有数据为大型语言模型(LLM)增效之后,就开始讨论如何最有效地弥合 LLM 的通用知识与专有数据之间的差距。围绕着微调还是检索增强生成(RAG)哪个更适合这一问题,人们…

【李沐论文精读】Transformer精读

论文:Attention is All You Need 参考:李沐视频【Transformer论文逐段精读】、Transformer论文逐段精读【论文精读】、李沐视频精读系列 一、摘要 主流的序列转换(sequence transduction)模型都是基于复杂的循环或卷积神经网络,这个模型包含一…

基于单片机的蓝牙无线密码锁设计

目 录 摘 要 Ⅰ Abstract Ⅱ 引 言 1 1 系统总体设计 3 1.1 系统设计要求 3 1.2 系统设计思路 3 2 系统硬件设计 5 2.1 设计原理 5 2.2 主控模块 5 2.3 芯片模块 8 2.4 矩阵键盘模块 9 2.5 液晶显示模块 10 2.6 继电器驱动模块 12 2.7 蜂鸣器模块 13 2.8 蓝牙模块 14 3 系统软…

Linux入门攻坚——16、Linux系统启动流程

CentOS5、6的启动流程 Linux:kernel rootfs,Linux系统就是内核加上根文件系统。 内核之上是库: 库:函数集合,function,函数具有调用接口,库函数不能单独执行,必须被其他程序调用…

51-17 视频理解串讲— MViT,Multiscale Vision Transformer 论文精读

继TimeSformer模型之后,咱们再介绍两篇来自Facebook AI的论文,即Multiscale Vision Transformers以及改进版MViTv2: Improved Multiscale Vision Transformers for Classification and Detection。 本文由深圳季连科技有限公司AIgraphX自动驾驶大模型团…

农业风险管理案例参考:农作物受灾严重,如何降低损失?

1月20日,国家防灾减灾委员会办公室应急管理部发布2023年全国十大自然灾害,据公布数据显示,此次十大自然灾害致使农作物受灾面积超1092.7千公顷,直接经济损失达2353.22亿元。 农业是安天下、稳民心的战略产业,也是典型…

混沌工程-经典案例分享

目录 前言 案例 1、强弱依赖不合理 2、预案不生效 3、异常数据不兼容 4、监控体系缺陷 5、系统缺整体架构设计 总结 前言 我们公司从启动混沌工程到现在已经几乎覆盖了线上的所有核心业务,先后进行过2000次演练共挖掘出120个漏洞。这些漏洞有些得了及时修复…

基于Skywalking开发分布式监控(四)一个案例

上一篇我们简单介绍了基于SkyWalking自定义增强的基本架构,即通过把Trace数据导入数据加工模块进行加工,进行持久化,并赋能grafana展示。 现在我们给出一个例子,对于量化交易系统,市场交易订单提交,该订单…

2024国内知名大厂Java岗面经,java容器面试题

前言 刚刚过去的双十一,让“高性能”“高可用”“亿级”这3个词变成了技术热点词汇,也让很多人再次萌发成为「架构师」的想法。先问大家一个问题:你觉得把代码熟练、完成需求加上点勤奋,就能成为架构师么?如果你这么认…

Ubuntu22.04系统 安装cAdvisor提示找不到 CPU 的挂载点错误解决办法。

如果我们在安装cAdvisor时容器启动不起来 查看日志如下图所示 1、查看cgroup文件系统是v2 还是 v1 mount | grep cgroup 如图所示我的是v2 , cAdvisor 目前的最新版本(v0.39.0)仍然只支持 cgroup v1,不支持 cgroup v2。因此&#…

PRewrite: Prompt Rewriting with Reinforcement Learning

PRewrite: Prompt Rewriting with Reinforcement Learning 基本信息 2024-01谷歌团队提交到arXiv 博客贡献人 徐宁 作者 Weize Kong,Spurthi Amba Hombaiah,Mingyang Zhang 摘要 工程化的启发式编写对于LLM(大型语言模型)应…

大数据分析技术工程师CCRC-BDATE

大数据分析技术工程师介绍 大数据始于科技之美,归于创造价值。大数据时代,“谁用好数据,谁就能把握先机、赢得主动”。当下数据驱动的电信、社交媒体、生物医疗、电子政务商务等行业都在产生着海量的数据,随着大规模数据关联、交叉…