主流抠图算法trimap-based/free

GitHub - JizhiziLi/matting-survey: Deep Image Matting: A Comprehensive SurveyDeep Image Matting: A Comprehensive Survey. Contribute to JizhiziLi/matting-survey development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/JizhiziLi/matting-survey数据集介绍 - Matting and Segmentation_supervisely person dataset-CSDN博客文章浏览阅读3.5k次,点赞6次,收藏15次。文章目录1. Matting(抠图)1.1 Image(图片)(1) PPM-100(2) 爱分割 - matting_human_datasets(3) Adobe Image Matting Dataset(AIM)(4) Alpha Matting(5) Distinctions-646 (D646)(6) AIM-500(7) DUTS1.2 Video(视频)2. Segmentation(分割)2.1 Image(图片)(1) SuperviselyPersonDataset(SPD)2.2 V_supervisely person datasethttps://blog.csdn.net/qq_41731861/article/details/121927295抠图gt是0-1之间的,分割gt是0和1的,当然多类别还可以是更多,方法主要是基于trimap-based和trimap-free的,trimap-based的普遍效果要好一点,目前公司线上服务其实也是trimap-based,宽泛的trimap-based,即基于先验信息的,包括trimap,mask,bg,pose等。抠图中的trimap还是很重要的,从原图中产生trimap是不太可能的,所以必须要产生trimap图去精准控制边缘的产生,先用一个分割或者显著图检测的方法产生trimap,然后基于trimap去产生真正的alpha,不过trimap生成的有问题,第二步也有问题,虽然第二步是产生alpha的直接步骤,但是其实第一步的trimap也很关键,传统trimap-based的方法也需要线上手动的去产生trimap,体验很不好。从dim这样的方法来看,也许基于trimap的方法也不需要那么复杂。1.基于精确的trimap,trimap越精细,二阶段越轻松;2.基于粗糙的trimap,trimap-based的方法能力越强。我倾向于第一种思路,第二种有个致命点,就是一旦trimap损害就完蛋了,trimap损坏之后,不管怎么监督,都很能去扣,而且第一种思路,如果一阶段的精确的trimap能生成好,直接用显著性检测的方法就能产生很好的alpha图。

1.Trimap-based

0/128/255,前景/未知/背景。

1.1 Deep image matting adobe 2017

首个端到端alpha预测网络,粗略-精细抠图思路。提出了Composition-1k数据集,将精细标注的前景和不同背景融合,得到了45500训练图像和1000测试图像。

1.2 MGMatting

Mask Guided Matting via Progressive Refinement network-CSDN博客文章浏览阅读211次。网络以图像和粗略mask作为输入,并输出抠图 ,在解码过程中,RPN在每个特征级别产生一个边缘抠图输出,在不同尺度上已经证明边缘输出对于改善特征学习是有效的,线性融合边缘输出对于抠图不理想,因为靠近物体边界的图像区域需要较低级别特征来勾勒前景,而识别物体内部区域需要更高级别的指导。0代表黑,1代表白,结合上面这张图分析,PRM的第一行,当前级别l,使用以下函数从前一个级别的抠图输入alphal-1生成gl,如何生成呢?输入可以是trimap,粗略二进制分割图,低质量alpha,https://blog.csdn.net/u012193416/article/details/136363424?spm=1001.2014.3001.55011.3 FBAMatting

F,B,Alpha Matting-CSDN博客文章浏览阅读233次,点赞5次,收藏3次。Resnet50,输入通道从3增加到9以适应trimap,使用三个不同尺度的前景和背景掩码的高斯模糊来编码trimap,与现有的matting方法不同,通常将trimap编码为具有值为1的单通道前景,值为0.5的未知值和值为0的背景。其次,移除了resnet50的layer3和layer4,并将膨胀率增加到2和4,可以在最高尺度上进行处理,而不降低分辨率。输出层包含7个通道,对应alpha,F,B,将alpha的值归一化0-1之间,sigmoid函数,F和B也采用sigmoid函数,以保持在0-1之间。https://blog.csdn.net/u012193416/article/details/136294648?spm=1001.2014.3001.55011.4 ViTMatte

ViTMatte:Boosting image matting with pretrained plain vision transformers-CSDN博客给定一个RGB图像HXWX3以及其对应的trimap HXWX1,按通道连接它们并输入到ViTMatte中,ViT作为基础特征提取器,生成一个stride=16的单个特征图,detail capture模块由一系列卷积层组成,用于捕捉和融合图像matting中的详细信息,简单的在不同尺度上采样和融合特征,以预测最终的alpha。将普通VIT中的block分层m组G,每个组中包含n个transformer块,对于G中的块,我们仅在最后一个块bn中应用全局注意力,而在其他块中使用窗口注意力,而非全局注意力。https://blog.csdn.net/u012193416/article/details/136458475?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136458475%22%2C%22source%22%3A%22u012193416%22%7D这篇文章基于ViT做了点修修改改,也不像是sam的做法。

1.5 Matteformer

MatteFormer:Transformer-based image matting via prior-tokens-CSDN博客文章浏览阅读83次。本文核心2点:1.提出了PA-WSA(Prior-Attentive Window self-attention),2.通过trimap生成Prior-tokens。目前基于transformer的matting方法,大多就是把swin transformer修修改改,加一些模块,当然也很难验证其所加模块的有效性,也许是transformer本身的能力带来的算法增益。文章浏览阅读1.2k次。https://blog.csdn.net/u012193416/article/details/136474154?spm=1001.2014.3001.55011.6 DiffusionMat

DiffusionMat:Alpha Matting as sequential refinement learning-CSDN博客在SDEdit中,由于随机噪声带来的随机性,可以将噪声引导的trimap图像去噪为任意的alpha抠图,然而作为一项感知任务,图像抠图只有一个确定性的alpha抠图,为了获取精确的alpha,我们使用GT反转引导来纠正中间去噪结果,具体来说,给定GT alpha,通过DDIM反转将其映射到预训练的扩散模型上,并获得确定性的反转轨迹,可以纠正过程中用作监督信号。DiffusionMat的基本思想是未知区域的抠图可以逐步改进,并从每一次的迭代的反馈中受益,纠正和细化结果。https://blog.csdn.net/u012193416/article/details/136478117?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136478117%22%2C%22source%22%3A%22u012193416%22%7D2. Trimap-free

2.1 Semantic Huaman Matting

Semantic human matting-CSDN博客文章浏览阅读283次。将3通道图像与来自TNet的3通道图串联作为6通道输入,DIM使用3通道图和1通道trimap(1,0.5,0表示前景,未知区域和背景)作为4通道输入,6通道输入和4通道输入几乎有相同的性能,MNet有13个卷积层和4个最大池化层,编码器网络和VGG16相同,VGG16的conv1是3个输入通道,MNet有6个输入通道,每个卷积层后面添加了批归一化,移除了conv6和deconv6.TNet预训练,膨胀alpha生成trimap,400x400;扮演着语义分割的角色,输出3通道图,PSPNet50.https://blog.csdn.net/u012193416/article/details/136393841?spm=1001.2014.3001.5501        T-Net对像素三分类得到trimap,与图像concat得到六通道输入到M-Net,M-Net通过encoder-decoder得到较为粗糙的alpha,最后将T-Net和M-Net的输出送入到融合模块Fusion Module中,得到精确的alpha。三个损失,分类损失,alpha损失和组合损失。

2.2 Modnet

        网络更擅长学习单一任务,因此拆分了三个子任务,S/D/F三个模块,以63fps在512x512下,实测还是很快的。

modnet:real-time trimap-free portrail matting via objective decomposition_modnet: real-time trimap-free portrait matting via-CSDN博客文章浏览阅读492次。抠图类任务目前是基础类任务,是我们不需要去训练的,目前开源的抠图类算法很多,包括通用抠图,头部抠图,物体抠图,人像抠图,视频抠图这些目前都是有相当丰富的开源接口可以使用,通常来说,最多需要finetune一次,基本拿来即用,在基础的ai项目上,其实有很多项目都不需要在训练了,比如说目前的行人识别,行人骨骼点识别,人脸识别等很多项目主要是在部署这块,包括后处理逻辑的开发和多平台的移植这块,算法侧的训练和优化早不是重点了。S模块主要作用是预测人像的整体轮廓,用一个低分辨率的监督信号就可以了。_modnet: real-time trimap-free portrait matting via objective decompositionhttps://blog.csdn.net/u012193416/article/details/128445516?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170951904516800227437301%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170951904516800227437301&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-128445516-null-null.nonecase&utm_term=modnet&spm=1018.2226.3001.44502.3 bshm

Boosting semantic human matting with coarse annotations-CSDN博客文章浏览阅读864次,点赞16次,收藏10次。tensorflow,按顺序对三个网络进行训练,在输入到MPN之前,对所有的图进行降采样处理,192x160,在每个训练上随机翻转,在MPN上训练20个epoch,将低分辨率图像和输出的前景mask连接起来作为输入来训练QUN,在训练QUN时,对精细化注释数据执行随机滤波(滤波器大小为3或5),二值化和形态学操作(腐蚀膨胀)以生成配对的高质量和低质量mask数据。第一阶段预测的是粗糙的mask,所有的训练数据调整为192x160,使用所有数据进行训练,包括低质量和高质量的注释数据。_boosting semantic human matting with coarse annotationshttps://blog.csdn.net/u012193416/article/details/135931567?spm=1001.2014.3001.55012.4 Basnet

BASNet:Boundary-aware salient object detection-CSDN博客文章浏览阅读1k次,点赞21次,收藏19次。这篇论文提出了一个预测-优化的框架,BASNet,以及一个新的针对边界感知显著目标检测的混合损失。1.为了捕获全局和局部的信息,提出了一个新的预测-优化网络,将unet的深度监督的encoder-decoder网络和一个新的残差模块结合,encoder-decoder将输入图像转换为一个概率图,而优化模块则通过学习粗糙的特征图和gt之间的残差来优化预测的输出.将全卷积应用到显著性检测,显著性检测的2个挑战,1.显著性检测主要是由整张图像的全局的明暗对比度定义而来,而不是局部或像素点的特征;https://blog.csdn.net/u012193416/article/details/135843589?spm=1001.2014.3001.5501 2.5 isnet

Highly accurate dichotomous image segmentation-CSDN博客文章浏览阅读384次,点赞4次,收藏8次。在图像分割组件Fsg中,在生成概率图之前,图像I被转换为一组高维中间特征图,每个特征图与其对应的GT中间特征图具有相同的维度,接着,中间监督通过高维特征一致性损失,对中间特征进行监督。大多数模型在训练集上容易过度拟合,可以对给定的深度网络的中间输出进行监督,通过神经网络的最后一层特征图而产生的单通道概率图,然而将高维特征转换为单通道概率图本质上是一种降维操作,不可避免的丢失关键信息。使用GIMP对每张图进行像素级精度手动标记,平均每张图图像的标记时间约30分钟,有些图像的标记时间长达10h。https://blog.csdn.net/u012193416/article/details/136326141?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136326141%22%2C%22source%22%3A%22u012193416%22%7DISNet由一个GT编码器,一个图像分割组件和一个中间监督策略组成。GT encoder(27.7MB)用于将GT编码到高维空间,然后对分割组件进行中间监督,同时,Image Segmentation Component(176.6MB),具有捕获精细结构并处理大尺寸(1024x1024)输入的能力,选择u2net作为图像分割组件,u2net最初为小尺寸320x320的显著图检测设计,不能直接处理1024x1024的图,本文采用u2net的结构,在其第一个编码器阶段之前增加一个输入卷积层,输入卷积层为普通卷积层,核大小为3x3,步长为2,给定一个1024x1024x3的图,输入卷积层首先将其转换为一个特征映射512x512x64,然后将其输入到u2net中,输入通道更改为64。

2.6 u2net

U2net:Going deeper with nested u-structure for salient object detection_u2netp 最新模型-CSDN博客文章浏览阅读368次。图2中d用了inception结构,通过扩张卷积来扩大感受野,受unet启发,RSU用于捕捉阶内多尺度特征,RSU和残差连结最大的不同在于,RSU使用了一个类似于UNET的结构来替换单一流的普通卷积,并用一个权重层转换的局部特征来代替原始特征。U2net是一种为SOD设计的两级嵌套U结构,不使用图像分类的预训练骨干网络,在底层设计了一种新颖的Residual U-blocks,能够提取多尺度特征而不降低特征图分辨率,在顶层,有一个类似UNET的结构,每个极端都由RSU填充。交叉熵监督sup0-6,_u2netp 最新模型https://blog.csdn.net/u012193416/article/details/135953977?spm=1001.2014.3001.55012.7 Inspyrenet

Revisiting image pyramid structure for high resolution salient object detection-CSDN博客文章浏览阅读517次,点赞3次,收藏4次。SICA的整体操作遵循OCRNet的方法。拉普拉斯金字塔存储了每个尺度中低通滤波图像与原始图像之间的差异,可以将拉普拉斯图像解释为低通滤波信号的余项,即高频细节,我们重新设计我们的网络,通过构建拉普拉斯金字塔,集中于边界细节并从最小的阶段到其原始大小重新构建显著图,从最上层的阶段stage-3开始,将初始显著性图作为输入,并从拉普拉斯显著图中聚合高频细节。在多尺度编码器中使用了UACANet中的PAA-e来减少骨干特征图的通道数,并使用PAA-d在最小阶段(即stage3)上预测初始显著图。https://blog.csdn.net/u012193416/article/details/135969581?spm=1001.2014.3001.55012.8 m3net

M3Net:Multilevel,Mixed and Multistage attention network for salient object detection-CSDN博客为了促进多层特征之间,提出了Multilevel interaction block,引入了cross-attention机制以实现多层特征的交互,让高层特征引导低层特征以增强显著区域。多阶段解码器的细节,通过上采样方法将多级特征转换为相同分辨率,为了更好的整合特征融合后的显著信息,我们进一步进行混合注意力,上面这个图结合网络结构图,看,并不是F3那一层的mib直接入两个特征,后面两个接入三个特征,看b也发现,其实接入三个,也是两两一个,mib很简单就是一个cross-attention.https://blog.csdn.net/u012193416/article/details/136451368?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136451368%22%2C%22source%22%3A%22u012193416%22%7D3.数据集

3.1 Adobe Image Matting Datasets DIM数据,RGB+Trimap方法必用的数据集