0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

涨点!FreeMask:用密集标注的合成图像提升分割模型性能

CVer 来源:CVer 2023-11-01 16:09 次阅读

在这里分享一下我们NeurIPS 2023的工作"FreeMask: Synthetic Images with Dense Annotations Make Stronger Segmentation Models"。在本工作中,我们从语义分割的mask产生大量的合成图像,并利用这些合成的训练图像以及他们对应的mask提升在全量真实数据上训练的语义分割模型的性能, e.g., 在ADE20K上,可以将Mask2Former-Swin-T从48.7提升至52.0(+3.3 mIoU)。

583392b0-7882-11ee-939d-92fbcf53809c.png

代码:github.com/LiheYoung/FreeMask 论文:https://arxiv.org/abs/2310.15160

在上面的repo中我们也提供了处理过后的ADE20K-Synthetic数据集(包含ADE20K的20倍的训练图像)和COCO-Synthetic数据集(包含COCO-Stuff-164K的6倍的训练图像),以及结合合成数据训练后更好的Mask2Former、SegFormer、Segmenter模型的checkpoints。

TL;DR

不同于以往的一些工作利用合成数据提升few-shot performance(只用少量的真实数据),我们希望利用合成数据直接提升fully-supervised performance(用全量的真实数据),这更有挑战性。

我们利用semantic image synthesis模型来从semantic mask产生diverse的合成图像。然而,直接将这些合成图像加入训练,其实并不能提升real-image baseline,反而会损害性能。

因此,我们设计了一个noise filtering策略以及一个image re-sampling策略来更有效地学习合成数据,最终在ADE20K(20,210张真实图像)和COCO-Stuff(164K张真实图像)的各种模型上都能取得提升。此外,我们发现结合我们的策略后,只利用合成数据也可以取得和真实数据comparable的效果。

Take-home Messages

在全量真实数据的基础上,有效地利用合成数据并不容易,需要生成模型足够好以及设计合适的学习合成数据策略。

在初始阶段我们尝试了多个GAN-based从mask生成image的模型 (e.g., OASIS[1]),尽管他们的FID指标还不错,但迁移到真实数据集上的表现很差(这里的迁移性能,指在合成数据集上训练但在真实验证集上测试,ADE20K上的mIoU只有~30%)。

基于Stable Diffusion的mask-to-image synthesis model是更好的选择,如FreestyleNet[2]。

在生成质量比较高以及筛选策略比较合理的情况下,joint train合成数据和真实数据会优于先用合成数据pre-train再用真实数据fine-tune的效果。

Introduction

584a7c50-7882-11ee-939d-92fbcf53809c.png

FreestyleNet基于semantic mask产生的合成图像,非常diverse以及逼真

Stable Diffusion (SD)等模型已经取得了非常好的text-to-image生成效果,过去一年里,semantic image synthesis领域的工作也开始结合SD的预训练来从semantic mask生成对应的image。其中,我们发现FreestyleNet[2]的生成效果非常好,如上图所示。因此,我们希望用这些合成图像以及他们condition on的semantic mask组成新的合成训练样本对,加入到原有的真实训练集中,进一步提升模型的性能。

简单的失败尝试

我们首先检查了这些合成图像到真实图像的迁移性能,即用合成图像训练但在真实图像的验证集上测试。我们用SegFormer-B4在真实图像上训练可以取得48.5的测试mIoU,然而用比真实训练集大20倍的合成数据训练后,只得到了43.3 mIoU。此外,我们也尝试混合真实数据和合成数据(会对真实数据上采样到和合成数据一样多,因为其质量更高),然而也只取得了48.2 mIoU,依然落后于仅用真实图像训练的结果。

因此,我们希望能更有效地从这些合成数据中进行学习。

Motivation

由于上述合成数据的结果并不好,我们更仔细地观察了一下合成数据集,发现其中存在着很多合成错误的区域,如下图所示的红色框区域。这些合成错误的区域加入到训练集中后会严重损害模型的性能。

5859cfe8-7882-11ee-939d-92fbcf53809c.png

红色框内的合成结果是错误的

此外,不同的semantic mask对应着不同的场景,不同的场景的学习难度其实是不一样的,因此它们所需的合成训练图像的数量也是不一样的。如下图所示,大体上来看,从左至右semantic mask对应的场景的难度是逐渐增加的,如果对每张mask产生同样数量的合成图像去学习的话,那么这些简单的mask对应的图像就可能会主导模型的学习,模型的学习效率就会很低。

586e2e66-7882-11ee-939d-92fbcf53809c.png

不同的semantic mask对应的场景的难度是不一样的,大体上来看,从左至右难度逐渐增加

Method

5876431c-7882-11ee-939d-92fbcf53809c.png

有了上述的两个motivation,具体的做法是非常简单的。

Filtering Noisy Synthetic Regions

针对第一点motivation,我们设计了一个noise filtering的策略,来忽略掉合成错误的区域。具体来说,我们利用一个在真实图像上训练好的模型去计算每张合成图像和它对应的semantic mask之间的pixel-wise loss,直观来看,合成错误的区域 (pixels)会呈现比较大的loss。此外,loss的大小也跟不同类别本身的难度有关。

58949b14-7882-11ee-939d-92fbcf53809c.png

Hardness-aware Re-sampling

针对第二点motivation,我们设计了一个hardness-aware re-sampling策略,来让我们的数据合成以及训练更加偏向比较难的场景 (semantic mask),如下图所示。

58a42390-7882-11ee-939d-92fbcf53809c.png

为harder的semantic mask产生更多的合成图像,而减少简单的mask的合成图像

58b0980a-7882-11ee-939d-92fbcf53809c.png

Learning Paradigms

我们探讨了两种从合成图像中进行学习的范式,分别是:

Pre-training: 用合成图像pre-training,然后用真实图像进一步fine-tuning

Joint training: 混合真实图像和合成图像(会对真实图像上采样到与合成图像同样的数量)一起训练

简单来说,我们发现在生成质量比较高以及筛选策略比较合理的情况下,joint training的表现会更好一些。

Experiment

对比合成图像和真实图像迁移到真实测试集的性能

58c69be6-7882-11ee-939d-92fbcf53809c.png

用真实图像或合成图像进行训练,并在真实验证集上测试

可以看到,在多种模型上,用合成图像迁移到真实验证集都可以取得和真实训练集comparable的效果。

用合成图像进一步提升全监督的分割模型性能

Joint training on ADE20K

58d35926-7882-11ee-939d-92fbcf53809c.png

当加入了合成数据后,真实图像的全监督性能获得了显著的提升,特别是对于Mask2Former-Swin-T,我们将mIoU从48.7提升至了52.0(+3.3);对于SegFormer-B4,从48.5提升至了50.6 (+2.1)。

Joint training on COCO-Stuff-164K

58e92832-7882-11ee-939d-92fbcf53809c.png

COCO-Stuff-164K由于原本的真实数据量很大,所以更难提升,但我们在Mask2Former-Swi-T上仍然取得了+1.9 mIoU的提升。

Pre-training with synthetic images on ADE20K

58f10cbe-7882-11ee-939d-92fbcf53809c.png

Ablation Studies

我们的noise filtering和hardness-aware re-sampling的必要性

5939d552-7882-11ee-939d-92fbcf53809c.png

在没有filtering和re-sampling的情况下,FreestyleNet产生的合成图像在ADE20K和COCO的真实集上只能得到43.3和48.0的迁移性能,远远劣于真实训练图像的迁移性能(ADE20K: 48.5和COCO: 50.5),而应用我们的策略后,纯合成图像的迁移性能可以提升至48.3 (ADE20K)和49.3 (COCO),十分接近真实训练图像的表现。

5948279c-7882-11ee-939d-92fbcf53809c.png

在joint training下,我们的两项策略也是十分有效的,如果没有这两个策略,混合合成图像和真实图像只能取得48.2的mIoU (真实图像:48.5),而加入我们的策略后,可以将真实图像48.5的baseline提升至50.6。

合成图像的数量

594f78c6-7882-11ee-939d-92fbcf53809c.png

Nmax 控制单张mask最多产生多少张合成图像,在没有filtering和re-sampling的情况下,增加合成图像的数量反而带来了更差的迁移性能;而在经过filtering和re-sampling后,Nmax从6增加到20可以带来稳定的迁移性能的提升。

更多的ablation studies请参考我们的文章。

Conclusion

在本工作中,我们通过从semantic mask产生合成图像,组成大量的合成训练数据对,在ADE20K和COCO-Stuff-164K上显著提升了多种语义分割模型在全监督设定下的性能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6514

    浏览量

    87610
  • 图像
    +关注

    关注

    2

    文章

    1064

    浏览量

    40042
  • 数据集
    +关注

    关注

    4

    文章

    1179

    浏览量

    24356

原文标题:NeurIPS 2023 | 涨点!FreeMask:用密集标注的合成图像提升分割模型性能

文章出处:【微信号:CVer,微信公众号:CVer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【爱芯派 Pro 开发板试用体验】+ 图像分割和填充的Demo测试

    框架SAM 这个例子使用了Meta AI发布的图像识别和分割框架SAM(Segment Anything,分割一切对象模型)。自SA项目自2023年发布以来,因其令人印象深刻的零样本传
    发表于 12-26 11:22

    图像标注如何提升效率?

    图像标注是通过一定方式对图像进行标记分类,是对数据集的图像进行标记以训练机器学习模型的过程。当图像
    的头像 发表于 12-19 08:29 200次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>标注</b>如何<b class='flag-5'>提升</b>效率?

    机器视觉(六):图像分割

    基于阈值的分割方法是一种应用十分广泛的图像分割技术,其实质是利用图像的灰度直方图信息获取用于分割的阈值,一个或几个阈值将
    的头像 发表于 10-22 11:34 541次阅读
    机器视觉(六):<b class='flag-5'>图像</b><b class='flag-5'>分割</b>

    深度学习图像语义分割指标介绍

    深度学习在图像语义分割上已经取得了重大进展与明显的效果,产生了很多专注于图像语义分割模型与基准数据集,这些基准数据集提供了一套统一的批判
    发表于 10-09 15:26 165次阅读
    深度学习<b class='flag-5'>图像</b>语义<b class='flag-5'>分割</b>指标介绍

    深度学习在医学图像分割与病变识别中的应用实战

    (train_images.npy 和 train_labels.npy)以及验证数据集(valid_images.npy 和 valid_labels.npy) 当涉及到医学图像分割与病变识别时,模型
    发表于 09-04 11:11

    使用PyTorch加速图像分割

    使用PyTorch加速图像分割
    的头像 发表于 08-31 14:27 498次阅读
    使用PyTorch加速<b class='flag-5'>图像</b><b class='flag-5'>分割</b>

    什么是图像分割图像分割的体系结构和方法

    图像分割(Image Segmentation)是计算机视觉领域中的一项重要基础技术,是图像理解中的重要一环。前端时间,数据科学家Derrick Mwiti在一篇文章中,就什么是图像
    的头像 发表于 08-18 10:34 2626次阅读
    什么是<b class='flag-5'>图像</b><b class='flag-5'>分割</b>?<b class='flag-5'>图像</b><b class='flag-5'>分割</b>的体系结构和方法

    点云标注的算法优化与性能提升

    点云标注的算法优化和性能提升是提高自动驾驶技术的关键因素。通过优化算法和提升性能,可以获得更准确、更高效的点云
    的头像 发表于 07-13 15:20 320次阅读

    YOLOv8最新版本支持SAM分割一切

    分割任何模型 (Segment Anything Model - SAM) 是一种突破性的图像分割模型,可实现具有实时
    的头像 发表于 06-18 11:42 1143次阅读
    YOLOv8最新版本支持SAM<b class='flag-5'>分割</b>一切

    自动驾驶场景图像分割(Unet)

    本文使用matlab环境,测试了自动驾驶场景的图像分割任务。分割网络使用Unet。 一千张标注图像,最终训练精度达到 90%。    数据准
    发表于 06-07 11:58 0次下载
    自动驾驶场景<b class='flag-5'>图像</b><b class='flag-5'>分割</b>(Unet)

    基于医学影像分割模型的飞标医学影像标注平台

    结合影像组学算法、人工智能模型,集成了大量的自动、半自动标注工具,通过影像自身特征和智能模型双重计算,快速识别标注内容和边界,从而大幅提高效率。
    发表于 05-26 14:38 517次阅读
    基于医学影像<b class='flag-5'>分割</b>大<b class='flag-5'>模型</b>的飞标医学影像<b class='flag-5'>标注</b>平台

    近期分割模型发展情况

    SAM(Segment Anything Model)Meta 的 FAIR 实验室发布的一种最先进的图像分割模型,该模型将自然语言处理领域的prompt范式引入计算机视觉领域,可以通
    的头像 发表于 05-22 16:26 529次阅读
    近期<b class='flag-5'>分割</b>大<b class='flag-5'>模型</b>发展情况

    SAM分割模型是什么?

    SAM是一类处理图像分割任务的通用模型。与以往只能处理某种特定类型图片的图像分割模型不同,SAM
    的头像 发表于 05-20 09:30 1577次阅读

    AI算法说-图像分割

    语义分割是区分同类物体的分割任务,实例分割是区分不同实例的分割任务,而全景分割则同时达到这两个目标。全景
    的头像 发表于 05-17 14:44 890次阅读
    AI算法说-<b class='flag-5'>图像</b><b class='flag-5'>分割</b>

    没你想的那么难 | 一文读懂图像分割

    来源:图灵Topia(ID:turingtopia)图像分割(ImageSegmentation)是计算机视觉领域中的一项重要基础技术,是图像理解中的重要一环。近日,数据科学家
    的头像 发表于 05-16 09:21 621次阅读
    没你想的那么难 | 一文读懂<b class='flag-5'>图像</b><b class='flag-5'>分割</b>