ECCV`24 | 艺术文本和场景文本分割任务新SOTA 方法!华科Adobe提出WAS!

news2024/11/15 9:55:58

文章链接:https://arxiv.org/pdf/2408.00106
git链接:https://github.com/xdxie/WAS_WordArt-Segmentation

亮点直击

  • 提出了艺术文本分割这一新任务,并构建了一个真实数据集用于模型性能基准测试。

  • 设计了训练数据合成策略,生成了包含10万对图像-mask 的合成数据集。

  • 引入了逐层动量查询机制和骨架辅助头,以应对局部笔画的变化和全局结构的复杂性。

  • 在艺术文本分割和场景文本分割任务中取得了最先进(SOTA)的成果,并简化了文本分割的实验范式。

准确的文本分割结果对于文本相关的生成任务(如文本图像生成、文本编辑、文本去除和文本样式迁移)至关重要。最近,一些场景文本分割方法在分割常规文本方面取得了显著进展。然而,这些方法在处理包含艺术字体的场景时表现较差。因此,本文重点研究更具挑战性的艺术文本分割任务,并构建了一个真实的艺术文本分割数据集。该任务的一个挑战在于艺术文本的局部笔画形状具有多样性和复杂性。本文提出了一种带有层次动量查询的解码器,防止模型忽略特殊形状的笔画区域。另一个挑战是全局拓扑结构的复杂性。本文进一步设计了一个骨架辅助头,以引导模型关注全局结构。此外,为了增强文本分割模型的泛化性能,提出了一种基于大规模多模态模型和扩散模型的训练数据合成策略。实验结果表明,本文提出的方法和合成数据集可以显著提高艺术文本分割的性能,并在其他公开数据集上实现了最先进的效果。数据集和代码已开放获取。

数据集

由于现实世界中的艺术字体种类极为多样,本文提出了两个新的数据集:WAS-R(由真实世界的文本图像组成)和WAS-S(由合成文本图像组成)。这些多用途的艺术文本数据集旨在弥合艺术文本分割与现实应用之间的差距,以适应文本视觉研究的快速进展。

WAS-R 图像收集

WAS-R 数据集由 7,100 张图像组成,这些图像来源于各种场景,包括海报、卡片、封面、标志、商品、路标、广告牌、数字设计和手写文本。其中,4,100 张图像作为训练数据集,其余 3,000 张图像作为测试数据集。艺术文本根据图像的捕捉方式可分为两大类。一类是通过相机从各种场景拍摄的艺术文本图像,如招牌。另一类是直接从设计软件中导出的,如海报文件。在数据收集过程中,特意平衡了这两种类型,以创建一个多样化的数据集,用于研究和开发。

WAS-R 图像标注

WAS-R 数据集因其全面的标注而与众不同,超过了现有的数据集。具体而言,WAS-R 为每个单词提供了带有独特分割mask 标签的最小四边形检测框。它还为每个单词mask 提供了文本转录。此外,还标注了诸如阴影、发光、3D 等字效,这些字效在区分艺术文本和传统场景文本中起着关键作用,并对文本分割有显著影响。下图 1 显示了 WAS-R 中收集的图像及其标注示例。

WAS-S 合成数据集构建

下图 2 展示了生成合成文本图像的流程。核心思想是,构建了一个文本图像生成模型,该模型可以根据文本mask 和输入提示生成对齐的文本图像。为此,构建了如图 2(a) 所示的训练流程。具体来说,首先从 WAS-R 训练集中的文本图像生成多样且信息丰富的标题,以获得训练三元组 <标题,mask ,图像>。接下来,用这些三元组训练一个 ControlNet模型,用于生成与输入文本mask 像素级对齐的多样化图像。在推理过程中,如图 2(b) 所示,首先使用 Mask Render 技术构建多样化的文本mask ,然后使用 GPT-4 将mask 中的文本扩展为场景描述标题。构建好的文本mask 和标题会被送入训练好的 ControlNet 中生成合成的文本图像。

训练Pipeline:在训练过程中,基于 WAS-R 的训练集构建用于训练 ControlNet的数据集。为此,使用高级多模态大语言模型 Monkey 从 WAS-R 中现有的训练样本中获取图像标题。形式上,设 代表 WAS-R 训练集中的真实图像, 表示从 生成的提示,有 。在获得了 <标题,文本mask ,文本图像> 的训练三元组后,训练一个 ControlNet 模型,将输入提示和文本mask 映射到一个文本图像。本文的目标是使生成图像中的艺术文本轮廓能够很好地与输入文本mask 对齐。此外,生成图像的内容和风格应根据输入提示足够多样化。

推理Pipeline:在推理过程中,如上面图 2(b) 所示,首先使用提出的 Mask Render 技术生成合成文本mask ,记为 。具体来说,对于每个mask ,根据真实数据集 WAS-R 中每张图像的词语分布,从 20 个新闻组数据集中随机选择 1-7 个短语,这些短语由 1-5 个连续的词组成。此外,对每个短语施加一个随机旋转,范围为 -30°≤ φ ≤ 30°。每个短语的大小被限制为与整个图像的通用宽度相匹配,并且将它们随机定位在图像边界内。此外,使用了 250 种艺术字体。最后,对每个短语应用仿射变换,以引入倾斜和扭曲。

使用 GPT-4生成与合成文本mask相对应的提示。要求 GPT-4 模仿从 WAS-R 训练集中生成的标题风格,并合成新的提示。接下来,将合成mask中的文本信息融入到生成的提示中,以获得最终的提示。形式上,表示为:,其中 是生成的标题, 是合成mask中的文本。下图3展示了合成的提示示例。

在构建合成文本mask和合成提示后,使用训练好的 ControlNet 生成最终的文本图像。表示为 ,其中 是生成的图像,θ 表示 ControlNet 中的可训练参数。上图3展示了最终合成的 <文本mask ,提示,图像> 三元组的示例。

方法

本节介绍了艺术文本分割模型 WASNet。首先展示整体架构,然后详细描述局部和全局设计。

整体架构

WASNet 的整体框架如下图4所示。采用了一种优秀的语义分割模型 Mask2Former作为元架构。它是一种mask分类架构,直接预测多个二值mask及其对应的类别标签,而不是进行逐像素分类。增加了一个骨架辅助头,并通过逐层动量查询机制改进了 Transformer 解码器。主干网络从图像中提取低分辨率特征。像素解码器对图像特征进行上采样,并生成一个特征金字塔。多尺度特征被输入到 Transformer 解码器,每个分辨率对应解码器每一层的输入。此外,Transformer 解码器的每一层还接收来自上一层的mask 预测和查询作为输入。最后,mask 头和骨架头通过解码来自像素解码器的逐像素嵌入和来自 Transformer 解码器的目标查询,分别生成二值mask和骨架预测。骨架的真实标签通过骨架提取算法从二值mask标签中提取得到。

具有逐层动量查询的 Transformer 解码器

艺术文本分割面临局部笔画形状灵活多变的挑战。由于设计师使用数百种不同的艺术字体并应用了各种文本效果,同一字符的局部笔画可能有显著差异。这导致一些细长的笔画跨越其他区域,以及扭曲的连接线条形成复杂的文本边缘。相比之下,普通场景文本通常使用常规的印刷字体,没有特殊设计,笔画形状几乎不变。因此,解码器需要关注这些特殊的局部笔画。

首先,使用了mask 注意力机制,将交叉注意力限制在每个查询对应的局部文本mask 区域内,而不是关注整个特征图。该机制可以表示为:

其中, 是层的索引, 是输入查询。 是输入到第层的图像特征,来自像素解码器的特征金字塔。 和 表示图像特征的空间分辨率, 是特征维度。 是由上一层的二值mask 输出转换而来的,其中文本区域的值为 0,非文本区域的值为 (-∞)。是mask 注意力模块的输出。这里省略了残差连接和归一化操作。

此外,由于每一层预测的mask不同,前几层会产生可能包含特殊形状笔画区域的粗略mask 。然而,后续层倾向于预测常规笔画的更精确区域,可能会忽略那些局部特殊区域。因此,为了防止模型的注意力快速集中在常规区域,设计了逐层动量查询(LMQ)机制。在模块收集上下文信息之前,将来自当前层和前一层的mask 查询的动量叠加输入到自注意力模块。公式(2)展示了这一机制。

其中, 是动量系数。 是输入到自注意力模块的动量查询。最终在 WASNet 中使用了带有逐层动量查询的这个解码器。

骨架辅助头

与常规文本和一般物体不同,艺术文本的全局拓扑结构非常复杂,内部有许多孔洞和复杂的连接。这给分割任务带来了新的挑战。模型需要捕捉文本对象的全局结构,而不仅仅是某个区域。受到 DeepSkeleton和 DeepFlux的启发,发现骨架是一种有效的表示方法,可以用来描述文本的形状和拓扑结构,因为它能够提取对象的中心轴。因此,使用骨架来辅助文本分割。

如前面图4所示,为 WASNet 添加了一个骨架辅助头,使模型能够同时预测mask 和骨架,从而赋予模型感知全局拓扑结构的能力。由于二值mask 是语义分割的精细标注标签,骨架的真实标签可以通过使用经典的 Zhang-Suen骨架提取算法对mask进行处理来获得。该算法通过迭代过程逐步删除满足特定模板结构条件的像素,直到没有更多符合条件的像素被删除为止。

使用二值交叉熵损失和Dice损失作为骨架损失和mask损失。

设置。最终的损失是骨架损失、mask 损失和分类损失的组合:

其中, 用于与标签匹配的预测, 用于未与任何标签匹配的预测。

在推理阶段,不需要输出骨架的预测。因此,按照 [9] 中的后处理方法来获得文本语义分割的最终输出。

实验

实施细节

实验主要基于 MMSegmentation工具箱。整体超参数配置与[8]相同。像素解码器是一个具有 6 层的多尺度可变形注意力 Transformer。Transformer 解码器由 9 层组成,每层都有一个辅助损失。使用 AdamW优化器和初始学习率为 、权重衰减为 0.05 的多项式学习率调度。数据增强策略包括随机尺度抖动、随机颜色抖动、随机裁剪以及随机水平翻转。使用 512 × 512 的裁剪大小和 16 的批量大小。模型在 8 块 RTX4090 GPU 上进行训练。如果模型仅在真实数据集上训练,设置迭代次数为 10 万次。如果模型需要在合成数据集 WAS-S 上进行预训练,首先对模型进行 5 万次预训练,然后在真实数据集上进行 5 万次微调。对于公式(2)中的动量系数 ,默认设置为。根据之前的文本分割方法,使用前景(文本)交并比(fgIoU)作为主要指标,前景像素上的 F 值作为辅助指标。

艺术文本分割的结果

为了验证本文方法在艺术文本分割任务中的优越性,在WAS-R 数据集上训练了几个代表性模型,包括六个语义分割模型和两个文本分割模型。使用 TexRNet、DDP和 TextFormer的官方代码,其他模型则使用 MMSegmentation重新实现的代码。为了公平比较,没有对 TexRNet 应用字符级字形鉴别器。实验结果如下表 1 所示,WASNet 超越了所有这些先进模型。此外,当使用合成数据集 WAS-S 训练baseline模型和 WASNet 时,它们的性能可以进一步提升。最终结果达到了显著的最先进(SOTA)性能。

场景文本分割的结果

为了进一步验证 WASNet 的泛化能力,还在三个公开的场景文本分割数据集上进行了实验,如下表2所示。可以得出与上节相同的结论,验证了 WASNet 和合成数据集的有效性。值得一提的是,在 TextSeg 上训练 TexRNet 时使用了字符级标注。而在所有三个数据集上训练 TextFormer 的文本检测模块时使用了额外的边界框标签。然而,仅使用了完整图像的二值mask 标签。尽管如此,仍然取得了具有竞争力或最先进的结果。由于 COCO_TS的标注质量非常不准确,以及 Total-Text仅包含 300 张测试图像,对这两个数据集模型的评估结果可能会有所不一致。此外,直接使用在合成和真实 WAS 数据集上训练的模型评估 WASNet 在这三个数据集上的表现,如下表2最后一行所示。请注意,该行的结果没有在特定数据集上进行微调,但仍具有竞争力。因此,为了简化文本分割模型的实验范式和评估过程,鼓励研究人员在 WAS 上进行训练,并直接在其他数据集上测试。

消融研究

本节对艺术文本分割数据集 WAS 进行了消融研究。首先验证了本文提出的模块和合成数据集的有效性。如下表3所示,当逐步应用 LMQ 和骨架设计到baseline模型时,WASNet 的性能逐渐提高。在 WAS-S 上预训练 WASNet 可以进一步提升艺术文本分割的性能。因此,合成数据集是本文的重要贡献之一。

在下表4中进行了关于数据集一些合成细节的消融实验。控制合成mask -图像对的数量至关重要。数据过少会削弱性能,但数据过多会导致性能平台期。还使用了其他大型多模态模型 BLIP2生成图像标题,但性能有限。这是因为 BLIP2 的整体性能不如使用的 Monkey。此外,应用了更多字体生成mask,但性能实际上下降了。包含大量常规字体的 1000 字体数据集降低了数据集的学习难度。

此外,还探讨了不同动量系数 对 WASNet 性能的影响,如下表5所示,发现大约最佳值为 0.8。系数过大会导致模型过度受早期层粗略预测的影响;系数过小则会削弱动量查询的正面效果。

进一步分析

为了进一步验证WASNet 的有效性,下图5中可视化了baseline模型 Mask2Former和 WASNet 的推理输出。根据图 5(a),显然 WASNet 能够捕捉特殊形状的笔画区域,例如细长的尾部或扭曲的连字。这归功于具有逐层动量查询的 Transformer 解码器。此外,根据图 5(b),WASNet 展现了良好的尺度适应性。它能够对大规模和小规模的复杂结构文本进行精细的结果。这是因为骨架辅助头通过细化操作获得文本的全局拓扑结构,从而指导精细分割。

一旦获得准确的文本笔画mask,下游的文本相关生成任务可以展示出卓越的效果。文本移除、文本背景替换和文本风格迁移的应用效果展示在补充材料中。

限制

尽管提出的合成数据集能够提升文本分割模型的性能,但这种提升是有限的,并没有显著增加。即使进一步增加了合成数据的数量,性能仍然保持不变。这可能是由于合成图像在多样性和真实性方面遇到的瓶颈。未来,考虑设计更先进的生成模型。

结论

本文聚焦于艺术文本分割这一新的挑战性任务。本文提出了一个真实的数据集,用于训练模型和基准测试性能。同时,还构建了一个合成数据集,以进一步提升准确性和泛化能力。为了应对这一任务的挑战,引入了逐层动量查询机制以处理可变的局部笔画,以及骨架辅助头以捕捉复杂的全局结构。实验结果证明了本文的方法在艺术文本分割和场景文本分割任务中的有效性和优越性。希望未来能有更多研究者关注这一任务,并且提出的数据集能够改变文本分割的实验范式。

参考文献

[1] WAS: Dataset and Methods for Artistic Text Segmentation

更多精彩内容,请关注公众号:AI生成未来

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

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

相关文章

PyCharm汉化:简单一步到胃!PyCharm怎么设置中文简体

最近在弄python的项目 一起加油哦 步骤&#xff1a; PyCharm的汉化可以通过两种主要方法完成&#xff1a; 方法一&#xff1a;通过PyCharm内置的插件市场安装中文语言包 1. 打开PyCharm&#xff0c;点击File -> Settings&#xff08;在Mac上是PyCharm -> Preferences…

集合及数据结构第十一节————排序

系列文章目录 集合及数据结构第十一节————排序 排序 排序的概念排序运用常见的排序算法插入排序选择排序交换排序归并排序排序算法复杂度及稳定性分析其他非基于比较排序排序练习题 文章目录 系列文章目录集合及数据结构第十一节————排序 一、排序的概念及引用1.排序…

(免费领源码)python#Django#msyql学生个性化培养的教学资源平台的设计与实现19385-计算机毕业设计项目选题推荐

摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对学生个性化培养的教学资源平台等问题&#…

独角数卡,打开商品列表出现Undefined variable form的解决办法

前言 独角数卡,打开商品列表出现了ErrorException In GoodsController.php line 95 : Undefined variable: form ErrorException In GoodsController.php line 95 : Undefined variable: form#0 app/Admin/Controllers/GoodsController.php(95): Illuminate/Foundation/Boots…

应用层协议(上)Http(URL、Cookie、Session)内含逻辑图解通俗易懂!

绪论​ “少年没有乌托邦 心向远方自明朗”&#xff0c;本章是应用层常用且重要的协议htttp&#xff0c;没看过应用层建议一定先看那一篇后再看本章才能更好的去从上到下的理解应用层。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 1.Http协…

【HZHY-AI300G智能盒试用连载体验】评测视频教程

前段时间&#xff0c;我参加了HZHY-AI300G智能盒试用&#xff0c;在电子发烧友论坛和CSDN发布了相关内容。应厂商要求&#xff0c;录制了相关的操作视频&#xff0c;现在已经发在B站了&#xff0c;欢迎大家观看。 【RK3588】HZHY-AI300G平台应用 1. 智能盒硬件接口介绍_哔哩哔哩…

计算机Java项目|基于SpringBoot的经方药食两用服务平台的设计与实现

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参…

Python编码系列—Python中的Web安全防护:深入探索SQL注入与XSS攻击

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

【YOLO5 项目实战】(7)YOLO5 手势识别

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【YOLO5 项目实战】&#xff08;1&#xff09;YOLO5 环境配置与检测 【YOLO5 项目实战】&#xff08;2&#xff09;使用自己的数据集训练目标检测模型 【YOLO5 项目实战】&#xff08;7&#xff09;Y…

langchain入门系列之一 初识langchain

LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使得应用程序能够&#xff1a; 具有上下文感知能力&#xff1a;将语言模型连接到上下文来源&#xff08;提示指令&#xff0c;少量的示例&#xff0c;需要回应的内容等&#xff09; 具有推理能力&#xff1a;依赖语…

黑猫带你学NandFlash第8篇:NAND的供电情况详解

本文依据不同型号NandFlash spec及个人工作经验整理而成,如有错误请留言。 文章为付费内容,已加入原创侵权保护,禁止私自转载及抄袭,违者必纠。 文章所在专栏:《黑猫带你学:NandFlash详解》 1 nand有几路power pin? 1.1 典型电压值 推荐的直流电压: - 相关要求 1、…

VBA技术资料MF191:将源文件夹所有文件移动到目标文件夹

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

暑期算法训练

目录 A.糖果&#xff08;Candy) B.小红的数组重排 C.牛牛与LCM D.子串 E.勤奋的杨老师 F.清楚姐姐跳格子 G.方块 I H.PUBG A.糖果&#xff08;Candy) 思路 &#xff1a;贪心&#xff0c;为了使操作数最少&#xff0c;我们要尽可能的先吃第二个盒子里的糖果&#x…

MySQL 中间件 MySQL-Router

目录 1 MySQL-Router 的介绍 2 MySQL-Router 负载均衡 2.1 设计目的&#xff1a; 2.2 HAProxy 与 Nginx 和 MySQL-Router 之间的区别 2.3 MySQL-Router 的优势 3 MySQL-Router 的获取 3 MySQL-Router 的使用 3.1 实验环境 3.2 MySQL-Router 部署 3.3 MySQL-Router 配置 3.4 测…

java后端请求与响应总结

get 请求&#xff1a;将参数写在请求路径中&#xff08;请求路径跟一个&#xff1f;后面跟参数多个参数之间用&连接&#xff09; post 请求&#xff1a;将参数写在请求体中中 一、请求 1.简单参数 如 传一个或两个字符串、整数等 例如串一个用户名和密码 如果传入的数…

完成课题ssrf实现.SSH未创建写shell,同时完成其他漏洞复现

一、SSRF (Server-Side Request Forgery) 是一种网络安全漏洞&#xff0c;发生在服务器端应用程序中&#xff0c;允许攻击者通过服务器向任意网络资源发送请求&#xff0c;而无需用户直接参与。这种漏洞通常源于程序设计错误&#xff0c;例如当应用程序使用用户的输入作为URL请…

C++入门基础知识31

成长路上不孤单&#x1f60a;【14后男生&#xff0c;C爱好者&#xff0c;持续分享所学&#xff0c;如有需要欢迎收藏转发&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#xff01;&#xff01;&#xff01;&#xff01;&…

论文辅助笔记:Large Language Models are Zero-Shot Next LocationPredictors

论文理论部分&#xff1a;论文笔记&#xff1a;lunLarge Language Models are Zero-Shot Next LocationPredictors-CSDN博客 2 Data 2.1 Dataset类 2.2 下载文件 2.3 get_dataset 2.4 get_trajectories trajectory_split暂时略去 # save the test dictionary and the true l…

【Qt】常用控件QCalendarWidget

常用控件QCalendarWidget的使用 QCalendarWidget表示一个日历 核心属性 属性说明 selectDate 当前选中的⽇期 minimumDate 最⼩⽇期 maximumDate 最⼤⽇期 firstDayOfWeek 每周的第⼀天(也就是⽇历的第⼀列) 是周⼏. gridVisible 是否显⽰表格的边框 selectionMode…

Python酷库之旅-第三方库Pandas(097)

目录 一、用法精讲 416、pandas.DataFrame.memory_usage方法 416-1、语法 416-2、参数 416-3、功能 416-4、返回值 416-5、说明 416-6、用法 416-6-1、数据准备 416-6-2、代码示例 416-6-3、结果输出 417、pandas.DataFrame.empty属性 417-1、语法 417-2、参数 …