1.MODNet: Trimap-Free Portrait Matting in Real Time

2023-12-25 13:48

本文主要是介绍1.MODNet: Trimap-Free Portrait Matting in Real Time,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 亮点
  • 整体流程
  • 参考

亮点

1.没有任何辅助输入的端到端抠图
2.损失函数的设计
3.训练上的技巧

整体流程

整体架构
1.语义估计(低分辨率分支)的过程提取语义matte

1).一张图像经过backbone(mobilenet)提取特征,保留下采样2x、4x的特征图
2).下采样16x的特征图经过se模块后 上采样+卷积生成8x的特征图,再经过卷积生成语义特征matte sp
3).gt matte 8x下采样+高斯模糊后 与sp计算mse损失, 即语义matte损失
注:这里的2x,4x,8x的特征图后续都会用到

2.细节预测(高分辨率分支)的过程提取边缘细节matte

1). 原图2x下采样后与低分辨率分支的2x特征图(2x特征图也要先进行一次卷积)concat后卷积得a(2x)
2). 原图4x下采样后与低分辨率分支的4x特征图(4x特征图也要先进行一次卷积)concat后卷积得b(4x)
3). 低分辨率分支的8x特征图上采样后(4x)与 原图4x下采样结果 以及b concat后卷积得c(4x)
4). c上采样后(2x)与a concat后卷积得d(2x)
5). d再经过卷积得细节matte dp
6). gt matte经过腐蚀膨胀获得边缘matte区域md,计算dp matte与gt matte在边缘区域的l1s损失

3.语义细节融合(融合分支)获取最终的lapha matte

1). 低分辨率分支的8x特征图上采样 卷积得4x,再上采样卷积得2x特征e
2).e与d concat后卷积 + 上采样 + 卷积的最终结果ap
3).alpha matte与gt matte计算1l损失;
alpha matte与gt matte再边缘 matte区域内的部分计算l1损失(关注边缘细节);
gt背景(原图与gt matte相乘)与预测背景原图与alpha matte相乘)的l1损失;
gt边缘(原图与gt边缘 matte相乘)与预测边缘(原图与alpha边缘 matte相乘)的l1损失。所谓边缘 matte就是在边缘区域md的那部分值。

参考

github:https://github.com/ZHKKKe/MODNet
paper: https://arxiv.org/pdf/2011.11961.pdf

这篇关于1.MODNet: Trimap-Free Portrait Matting in Real Time的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/535731

相关文章

linux 下Time_wait过多问题解决

转自:http://blog.csdn.net/jaylong35/article/details/6605077 问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放。看了一下18888,当时吓到了。 现象: 1、外部机器不能正常连接SSH 2、内向外不能够正常的ping通过,域名也不能正常解析。

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄像机视点或甚至针对该特定帧和身体姿势的完整360度摄像机路径渲染主体。这项任务特别具有挑战性,因为它需要合成身体的照片级真实感细节,如从输入视频中可能

lua data time

local getTime = os.date(“%c”); 其中的%c可以是以下的一种:(注意大小写) %a abbreviated weekday name (e.g., Wed) %A full weekday name (e.g., Wednesday) %b abbreviated month name (e.g., Sep) %B full month name (e.g., Sep

Event Time源码分析

《2021年最新版大数据面试题全面开启更新》 flink 中Processing Time也就是处理时间在watermark定时生成、ProcessFunction中定时器与时间类型的窗口中都有使用,但是其内部是如何实现注册定时器、如何调用、如何容错保证在任务挂掉在下次重启仍然能够触发任务执行,都是我们今天的主题。首先需要了解一下在flink内部时间系统是由哪些类来共同完成这件事,下面画

delphi : 窗体的close,free,destroy的区别

一、我用application.create(TForm2,Form2)语句,创建了Form2,可是调用了Form2.close后,重新调用Form2.show. 刚才所创建的Form2仍然存在。问为了节约资源,应该怎样使用close,free,destroy. 三者的关系是什么? 1、Action:=caFree。 2、 with TForm1.Create(Application) do

大数据-121 - Flink Time Watermark 详解 附带示例详解

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis (已更完)Kafka(已更完)Spark(已更完)Flink(正在更新!) 章节内容 上节我们完成了如下的内容: 滑动窗口:时间驱动、事件

C语言动态内存空间分配(malloc,calloc,realloc,free)

为了代码观感美观,我将代码部分的注释删了 malloc #include<stdio.h>#include<stdlib.h>#include<errno.h>//使用动态内存分配函数的注意事项://1.要判断指针是否为空指针,如果没有成功开辟动态内存空间,则不能继续使用该指针//2.分配的动态内存空间的数量要大于等于赋值的元素的数量,不能造成动态内存的越界访问//3.动态内存空间中

DS简记1-Real-time Joint Object Detection and Semantic Segmentation Network for Automated Driving

创新点 1.更小的网络,更多的类别,更复杂的实验 2. 一体化 总结 终于看到一篇检测跟踪一体化的文章 网络结构如下: ResNet10是共享的Encoder,yolov2 是检测的Deconder,FCN8 是分割的Deconder。 其实很简单,论文作者也指出:Our work is closest to the recent MultiNet. We differ by focus