TPAMI 2024 | 分层识别矢量图形和一种新的基于图表的矢量图形数据集

文摘   2024-11-11 19:02   辽宁  

点击下方PaperEveryday”,每天获得顶刊论文解读

点击加入论文投稿、写作、阅读分享交流群

论文信息

题目:Hierarchical Recognizing Vector Graphics and A New Chart-based Vector Graphics Dataset

分层识别矢量图形和一种新的基于图表的矢量图形数据集

作者:Shuguang Dou; Xinyang Jiang; Lu Liu; Lu Ying; Caihua Shan; Yifei Shen; Xuanyi Dong; Yun Wang; Dongsheng Li; Cairong Zhao

源码链接:https://github.com/microsoft/YOLaTVectorGraphicsRecognition

论文创新点

  1. 直接处理矢量图形文本:提出了YOLaT和YOLaT++,直接对矢量图形的文本文档进行处理,无需转换为像素形式,提高了识别效率和准确性。
  2. 多级抽象特征学习:YOLaT++通过从原始形状到曲线再到点的多级特征学习,增强了模型对矢量图形复杂结构的理解能力。
  3. VG-DCU数据集:创建了大规模的VG-DCU数据集,为矢量图形识别和图表理解任务提供了丰富的标注资源,促进了该领域的研究。

摘要

传统的图像识别方法基于光栅图形,这些图形在放大或缩小时可能会受到走样和信息丢失的影响。在本文中,我们提出了一种新的方法,利用矢量图形的优势进行目标定位和分类。我们的方法,称为YOLaT(You Only Look at Text),以矢量图形的文本文档为输入,而不是将其渲染成像素。YOLaT构建多图来模拟矢量图形中的结构和空间信息,并使用双流图神经网络(GNN)从图中检测目标。然而,对于实际的矢量图形,YOLaT仅以顶点为节点的平面GNN模型,忽略了矢量数据的高层信息。因此,我们提出了YOLaT++,从新的角度学习多级抽象特征学习:从原始形状到曲线和点。另一方面,由于很少有公共数据集专注于矢量图形,数据驱动的学习无法充分发挥其在这种格式上的潜力。我们提供了一个大规模且具有挑战性的数据集,用于基于图表的矢量图形检测和图表理解,称为VG-DCU,包含矢量图形、光栅图形、注释和用于创建这些矢量图表的原始数据。实验表明,YOLaT系列在VG-DCU的两个子集上都优于基于矢量图形和光栅图形的目标检测方法,无论是在准确性还是效率方面,展示了矢量图形在图像识别任务中的潜力。我们的代码、模型和VG-DCU数据集可在:https://github.com/microsoft/YOLaT-VectorGraphicsRecognition。

关键词

  • 矢量图形
  • 检测
  • 数据集
  • 图表理解

1 引言

计算机视觉任务通常依赖于光栅图形,这些图形很容易从相机获得。常见的基准数据集,如用于分类的ImageNet[1]和用于目标检测的COCO[2],都是基于光栅图形构建的。然而,光栅图形在像素方面具有固定的大小,这在通过插值放大或缩小时可能会导致走样。图形和工程设计等领域需要一种更精确的视觉内容表示方式,而不会产生走样(例如,描述设计、草图、平面图、图表等),因此另一种重要的图像格式出现了,即矢量图形。
矢量图形(VG)由解析几何中的参数方程定义,并包括预定义的几何原语。图1展示了如何将矢量图形表示为文档,每个原语都由一行文本命令和附加属性精确定义。由于它们的解析表示,矢量图形可以在任何比例或分辨率下表示对象,使它们比光栅图形更精确、更紧凑。与由独立像素组成的光栅图形(RG)不同,矢量图形提供了关于低级元素如何组合形成形状和结构的高级结构信息。更重要的是,对于矢量图形上的目标检测,很少有基准数据集可用。先前的工作[3]、[4]使用的是相对较小且只包含黑白线条的数据集。缺乏大规模且具有挑战性的矢量图形基准数据集阻碍了专为这种格式设计的目标检测模型的发展。

本文旨在1)研究使用矢量图形进行目标定位和分类。
矢量图形中的目标检测对于增强交互式和动态设计[5]、[6]至关重要,允许精确操纵元素,并通过提高可搜索性和可访问性改善用户体验。这一能力在数据分析和可视化[7]中至关重要,当表示复杂信息时提供清晰度和精确度。直接在矢量图形中进行目标检测是必要的,确保在多样化的技术应用中保持可扩展性和质量,同时通过选择性渲染提高效率。此外,它还促进了图形元素的即时操纵,简化了自动化设计流程[8]、[9],并进一步推动了设计中的AI应用[10]。然而,现有的识别任务方法是基于光栅图形的[11]-[16],不能直接应用于矢量图形。尽管已有尝试将矢量图形转换为光栅图形,但这种方法有几个局限性。首先,将矢量图形渲染成像素数组可能导致显著的内存成本或信息丢失,如图1所示。此外,这个过程丢弃了原语内部的高级结构信息,这对于识别任务(如识别角落和轮廓)至关重要。总之,我们提出了You Only Look at Text(YOLaT),它通过接收矢量图形的文本文档作为输入来解决光栅图形的问题。YOLaT不需要光栅化,并使用高效的端到端管道,直接从原语的原始文本定义中预测对象。这种方法比渲染到光栅图形保留了更完整的信息,从而产生精确的目标边界框。YOLaT直接从矢量图形生成对象提议,并且使用双流图神经网络(GNN)对每个提议中的图进行分类,无需额外的回归以细化边界框。
然而,YOLaT过于简化了矢量图形的复杂结构。它将原语解剖为Bézier曲线内的顶点,其GNN仅关注于模拟这些顶点的位置和关系。这种方法忽视了关于曲线属性和整个矢量数据集的整体形状的至关重要的高级信息。与此相反,YOLaT++被引入,其特征是为VG设计的层次结构,跨越三个层次:原语、曲线和点。此外,YOLaT++采用了位置感知增强策略,有效地区分具有相似特征的原语。这种多级抽象提高了模型在多种任务和场景中的适应性和性能,提供了全面的多级特征表示。与最新的Yolo系列和基于变换的方法相比,我们的方法展示了具有改进效率的可比性能。
2)提供一个大规模且具有挑战性的数据集,用于基于图表的矢量图形检测和图表理解。VG识别是一个需要进一步研究的重要问题,但现有的包含原始VG数据的数据集只包含少量合成和简单的样本。例如,SESYD-Floorplans数据集[17]只包含1,000张图像,而为VG设计的目标检测方法可以轻易地在它上面实现超过98% AP50[3]、[4]。这给VG检测算法的客观评估带来了重大挑战。图表被选为基础,用于矢量图形识别的新基准数据集,因为它们在互联网上普遍存在且易于收集。该数据集是第一个大规模的基于图表的矢量图形数据集,专注于VG检测和理解图表。图表理解(也称为”图表逆向工程”[18])是一项关键技术,具有广泛的应用,例如在网络[19]和科学出版物[20]、[21]中。矢量图形主要用于格式化图表,因为它们能够无损失地缩放分辨率。然而,大多数现有的图表[22]、[23]逆向工程方法是基于分析基于像素的图像的,现有的与图表相关的数据集都集中在光栅图形上,如表1所示。因此,我们提出的新数据集填补了基于VG的图表数据集的空白,提供了每个图表的原始矢量图形格式。我们构建了一个新的大规模基于图表的VG检测和图表理解基准(VG-DCU),包含一个使用Vega-Lite[24]生成的真实数据的合成子数据集和一个从Plotly社区Feed[25]收集的真实子数据集。

与我们早期的研究[3]相比,我们扩展了矢量图形的识别范围,从简单的单色线条目标检测到复杂的图表元素检测,主要差异如下:(1)我们构建了一个新的基于图表的VG检测和图表理解基准(VG-DCU)。会议版本没有提出任何新的数据集,只使用了现有的小型VG数据。以前的数据集只包括1,000个合成的矢量图形,特点是黑白线条,仅限于两种类型的原语。相比之下,VG-DCU规模超过十倍,包含多样化的属性丰富的图表和广泛的原语类型;(2)我们提供了相关的基准结果,包括经典的两阶段方法、单阶段Yolo家族方法、基于Transformer的检测方法和其他基于VG的检测方法。(3)我们将YOLaT扩展到YOLaT++以应对实际矢量图形的挑战。识别实际矢量图形需要全面建模它们的复杂结构和关系,因为原语分布不均且类间相似度高。YOLaT通过仅关注Bézier曲线内的顶点来过度简化这一点,忽视了准确识别所需的关键高级信息。因此,引入了YOLaT++,整合了一个具有三个抽象层次的层次结构,并实施了位置感知增强策略以区分相似的原语;(4)我们提供了对提出的YOLaT系列方法的详细讨论和比较。

3 YOLaT和扩展到真实世界的YOLaT++的研究

本文研究了无需渲染即可使用矢量图形的定义进行目标检测的问题。具体来说,任务被定义为对象定位和对象分类,模型需要预测一组边界框坐标和这些边界框内对象的类别。在本节中,我们在3.1节中介绍YOLaT,并在3.2节中介绍真实世界版本的YOLaT++。

3.1 检测模型-YOLaT

图2展示了识别矢量图形的基本框架流程。我们首先将预定义的原语,如,转换为Bézier曲线的通用格式。然后,我们基于这些Bézier曲线构建无向多图,以模拟一个原语内部的关键点之间以及不同原语之间的空间和结构关系。为了充分探索基于多图的矢量图形,我们提出了一个双流图神经网络(GNN)进行特征提取和分类。与光栅图形目标检测中常用的复杂预测头不同,YOLaT直接从高分辨率矢量图形生成精确的建议边界框。因此,每个提议中的子图都被送入双流GNN分类器,无需进一步纠正框坐标。最后,我们解释了如何获得潜在的边界框并预测它们的目标性和类别。

3.1.1 图构建

通用格式的预定义原语。与由像素数组表示的光栅图形相比,矢量图形提供了更精确的表示,并且在调整大小时不会丢失质量或产生走样。矢量图形由文本命令描述的参数方程定义的原语组成,例如和其他原语。然而,不同的原语使用不同的参数方程描述,需要一种统一的方式来描述所有类型的原语,类似于光栅图形中的像素。在本文中,选择Bézier曲线是因为它具有通用性并且能够模拟不同的原语(图形和文本)。Bézier曲线由一组控制点 定义,其中 是曲线的阶数, 是一个2D向量,表示第 个点的坐标。第一个和最后一个点是曲线的端点,其余的控制点通常不在曲线上,提供额外的信息,例如方向信息和从 的曲线的曲率统计信息。Bézier曲线可以递归地表述如下:
其中 表示控制点,。在本文中,我们选择了三次Bézier曲线,因为它在建模能力和计算复杂性之间取得了平衡。对于路径和线条等图形元素,我们直接将形状转换为Bézier曲线。对于,我们首先基于其属性获得元素的边界框,然后将该框转换为Bézier曲线。因此,矢量图形中的所有元素都被转换为统一格式。节点。为了提高效率,我们只包括图中的起始点和终点,用 表示。对于点 ,相应的节点属性 包括点 的坐标 ,填充颜色 和笔画颜色 ,笔画宽度 和原语类型
其中 分别表示点 沿 轴和 轴的坐标值。这些信息在矢量图形文档中定义。边。在我们的设计中,我们构建了一个多图,包括两组边:笔画边和位置边。这些边类型从不同的角度捕获节点之间的关系。笔画边表示由矢量图形中的笔画定义的连接。这些连接对应于每个Bézier曲线的起始点和终点之间的实际笔画。通过表示矢量图形中对象的结构和布局,当Bézier曲线连接它们时,在两个节点之间建立边。这可以表示为:
其中 表示包含Bézier曲线的起始点 和终点 的元组集合。除了起始点和终点之间的连接外,三次Bézier曲线的离曲线控制点描述了其他属性,例如曲率和外观。我们使用这些离曲线控制点的坐标作为笔画边的属性:
笔画边基于笔画在顶点之间模拟长期结构连接,忽略空间接近性。为了更好地捕获节点之间的空间关系,我们引入了另一组称为位置边的边。这些边在区域集 内的节点之间定义为密集连接。
区域集是一组空间接近的节点,可以通过多种方式获得。在我们的实现中,我们通过以下三个步骤确定区域集。首先,我们根据笔画边 在矢量图形的图表示中获得所有连通分量。其次,对于每对连通分量,我们计算它们扩展的最小边界矩形和这些矩形的重叠区域。如果两个连通分量的扩展区域重叠,则认为它们在空间上接近,并将它们合并为一个区域集 。扩展长度在此过程中是一个超参数。

3.1.2 双流GNN的特征提取

在前一节中,我们解释了如何创建图,包括构建节点、两组不同的边及其属性。YOLaT采用了一个为分析矢量图形派生的多图而量身定制的GNN网络。鉴于图由两组边特征化,YOLaT结合了一个双流GNN架构,每个GNN分支专注于根据特定的边类型更新节点表示。双流GNN有效地提取节点表示,利用矢量图形中的空间和结构信息。这为后续阶段的下游任务提供了改进的指导。在本节中,我们首先深入了解我们GNN中的两个流的细节。之后,我们描述了如何通过多步节点表示传播和融合获得特定区域的表示。笔画流。在包含笔画边的图中,受到[57]的启发,这个GNN接受一个由节点表示及其与邻居节点的表示差异组成的连接输入。表示为 的节点 的表示在时间步 如下更新:
其中 。函数 表示一个线性变换。在图中, 表示与第 个节点关于笔画边相邻的节点集。变换函数 包括一个线性变换、ReLU激活函数和批量归一化层在我们的实现中。位置流。如第3.1.1节所述,位置边的数量明显大于笔画边,因为位置边是密集构建的。为了减少计算成本,我们为具有位置边的图提出了一个更简单的GNN模型。在时间步 ,模型使用其邻居的变换表示更新节点的表示,如下:
其中 表示由位置边定义的节点 的邻居(我们为每个节点添加自环,以保持来自 的信息)。 是一个变换函数,结构与 相同,但参数不共享。与笔画边相比, 的计算复杂性可以显著降低,因为同一区域集 中的节点的更新只需要计算一次。表示融合。基于图的区域表示是基于区域内节点表示的聚类获得的。要获得区域表示,我们首先使用双流GNN细化节点表示,然后平均区域内的节点表示以获得区域表示。我们连接 步的区域表示以获得融合表示 。图中具有笔画边和位置边的区域在时间步 的表示分别表示为:
其中 表示特定区域的融合表示,而 分别表示来自具有笔画边和位置边的图的区域在时间步 的表示。

3.1.3 预测和损失

我们描述了YOLaT用于矢量图形的提议生成方法。首先,每个区域集 被均匀划分为网格,网格上的顶点对被排列形成矩形区域。每个矩形区域形成一个提议对象,其最小边界矩形是提议的边界框。大于阈值的提议被过滤掉。YOLaT产生的负样本比光栅图形少,并且以最高分辨率运行,直接产生紧凑的边界框。提议 的表示 使用前一节中描述的融合策略获得,并输入到多层感知机以预测对象类别。在训练期间,仅优化预测和提议的真值标签 之间的交叉熵损失。对于图像中的每个真值对象框 ,其标签是 。如果提议 和真值 之间的最大交并比(IoU)低于阈值 ,则提议被标记为“无对象”,其真值标签是类别总数 (类别索引从0开始)。每个提议的交叉熵损失被最小化:
其中 表示 是所有真值框 的标签集合。在评估期间,我们使用分类的预测概率作为每个提议的置信度分数。我们设置一个置信度阈值,并选择置信度分数高于阈值的提议作为最终预测。

3.2 真实世界矢量图形的YOLaT++

真实世界的矢量图形,如图表、建筑设计和工业图形,通常展现出复杂的结构,原语分布不均且类间相似度显著。这些复杂结构可以被广泛地分类为原语、曲线和点三个层次。例如,实际矢量图形中的一个复杂线条,由 <path> 原语形成,包含多个曲线,每个曲线包含两个向量点。识别真实世界的矢量图形需要全面理解它们的元素和关系。然而,YOLaT通过将原语解剖为Bézier曲线内的顶点来过度简化这一点。YOLaT的GNN仅关注于模拟这些顶点的位置和关系,忽视了包含完整原语属性和形状的关键高级信息。我们认为,识别真实世界的矢量图形需要一个多层次的层次结构。因此,我们引入了YOLaT++,它整合了一个为矢量图形量身定制的层次模型,具有三个不同的抽象层次:原语、曲线和点。此外,YOLaT++采用了位置感知增强策略,以区分具有相似特征的原语。

3.2.1 从原始形状到曲线和点的多级抽象特征学习

YOLaT++采用了一个包含三个层次的层次结构:原语、曲线和点,便于学习多级抽象特征,如图3所示。在每个层次,系统处理并抽象矢量图形以生成新的一组原语、点或属性。这个框架包括两种不同的GNN:原语感知GNN和点感知GNN,两者都整合了位置感知特征增强。本节详细解释了YOLaT++如何从原始形状开始,通过曲线到达点,逐步揭示每个阶段表示的演变。原语层面。当模型最初接触到数据时,它感知到由 <line><path> 等组成的原始形状,或文本元素 <text>。在这个阶段,模型专注于学习原始形状的空间属性,如高度、宽度、面积和长宽比,这些属性作为更高层次抽象的基础元素。

曲线层面。从基本的原始形状进展到更基本和抽象的表示。在这个阶段,模型强调形状中的特征,如流动性、曲率和连续性。它涉及把握整体轮廓、线条图案或矢量图形中的复杂曲线特征,专注于矢量图形中的微妙变化和形态。
点层面。在这个阶段,模型优先考虑矢量数据中的位置信息和连接关系。这个阶段的学习可能比理解整体形状或曲线更为局部化。这种多级抽象增强了模型对未见数据的泛化能力,并提高了模型在多种任务和场景中的适应性和性能。

3.2.2 原语层面的图构建

为了将全局结构信息整合到图中,我们提出了一个新的具有层次结构的多图,其中原语间关系通过超节点和超边来表示:
超节点。除了代表Bézier曲线转换自VG原语的起始和终点的正常节点外,YOLaT++进一步将VG原语建模为超节点。超节点的节点特征包括空间特征、色彩特征(填充和笔画的RGB颜色)、笔画宽度和原语类型。超节点的空间特征包括原语的边界框位置和大小,以及原语的长宽比:
其中 分别是原语的高度和宽度。
超边。为了模拟超节点之间的原语间关系,我们构建了两种类型的边,即原语边和类型边。原语边在矢量图形 中的所有超节点之间密集连接:
类型边连接具有相同原语类型的相邻超节点:
其中 表示原语类型, 表示超节点之间的欧几里得距离, 是一个超参数。

3.2.3 点层面图与位置感知特征增强

原语感知GNN采用了类似于YOLaT的双流GNN结构。考虑到元素边的大量存在,我们使用与 相同的结构来提取特征,以减少计算开销。对于类型边,我们可以通过 调整它们的数量,使用与笔画流相同的结构来提取特征。点感知GNN中的节点和边编码方法可能导致位置接近但类别不同的原语具有相似的特征表示。例如,在矢量图表中,位于X轴和Y轴交点的 <text> 可能具有相似的特征提取,这使得网络难以正确区分它们。如图4所示,我们利用GNN中的相对位置信息来处理类别间相似性。具体来说,我们使用相对位置信息作为增强的节点特征,然后使用这些节点特征训练图神经网络。位置感知特征增强(PFA)的关键步骤如下:
步骤1:空间编码矩阵。我们通过计算节点之间的相对位置关系来获得所有节点的空间编码。对于每个节点,我们不使用PGNN中的最短路径距离,而是直接计算节点与其他节点之间的坐标距离:
步骤2:位置感知特征选择。最近 个节点的相对距离被用作增强特征。然而,考虑到最近的邻接点可能仍在原语内,我们选择第 到第 个节点的相对距离作为增强特征,并在将它们与原始节点特征聚合后将它们发送给GNN进行学习。

3.2.4 将曲线信息注入到层次图中

从曲线中提取的信息以两种不同的方式整合到层次图中。首先,关于原语感知图,我们计算原语形状内曲线段的数量和连续性。这两个曲线属性被整合到超节点的特征中:
其中 表示原语的连续性,0表示未封闭,1表示封闭, 表示段数。相反,在点感知图中,我们将两点之间的曲线曲率归因于边。在点感知图中,节点 和节点 之间的笔画边被赋予的属性表示为 ,表示如下更新:

4 基于VG的检测和图表理解的基准

4.1 动机

在本文中,我们提出了第一个大规模基于图表的矢量图形数据集,专注于理解图表。图表是数据的图形表示,通常用于直观地传达信息、关系、趋势或模式[59]。图表可以以两种格式表示:光栅图形或矢量图形。与使用像素构建的光栅图表相比,矢量图表在VG文件中提供了更多的附加信息。这包括详细的文本、精确的坐标和图表元素的准确形状。这些特征显著提高了理解矢量图表中呈现内容的容易程度。此外,矢量图表得到了网络平台和出版商的广泛支持[60]。主要出版商强烈主张在可能的情况下使用矢量图形进行图表和模式的表示,因为这保证了在发表文章中显示图形时的最佳清晰度。
尽管矢量图形具有上述优势,但大多数旨在理解图表的相关研究都集中在从光栅图形(例如PNG、JPG、TIFF)[30]、[61]自动恢复视觉编码。更重要的是,现有的图表理解数据集仅包含光栅图形的图表,如表1所示,而我们的数据集是第一个大规模基于图表的VG检测和图表理解数据集(VG-DCU),包含各种注释,包括类别标签、边界框和构建图表的原始数据。由于丰富的注释,我们的数据集支持各种图表理解任务,如图表元素分类和检测、图表逆向工程等。在本文中,此数据集仅用于评估我们提出的方法在对象定位和分类任务方面的有效性。

4.2 数据集构建

我们提出的基于VG的图表数据集包含两个子集:一个使用脚本和虚构数据生成的合成子集,以及一个由用户绘制的真实世界子集。这两个子集分别使用两个数据可视化工具Vega-Lite[24]和Plotly[25]绘制。详细信息如下:
Vega-Lite子集。我们使用Vega-Lite,这是一个用于使用JavaScript创建数据的交互式可视化的高级可视化语法,来生成图表。我们使用JavaScript库Faker生成真实感假数据,为图表填充数据。对于生成的图表,我们将每个原语的类别直接嵌入到其属性中。因此,我们可以通过解析VG文件获得类别信息,并使用SvgPathTools API获得紧凑的边界框。如图5所示,我们生成了四种基本类型的图表:垂直条形图、线形图、甜甜圈图和饼图。为了生成风格多样的图表,我们分析并设计了每个组件的风格,包括背景、坐标轴、标记、图例和标题。然后,我们为每个组件枚举了尽可能多的风格。最终,我们生成了10,682个合成图表,包括3,001个条形图、4,687个线形图和2,994个甜甜圈图和饼图。
Plotly子集。基于矢量图形的图表在视觉美学和底层VG文件的组织和数据表示方面差异显著。为了评估图表理解方法对不同图表的泛化能力,收集多样化的图表集至关重要。因此,这个子集包含了大量由真实用户创建的公开图表。具体来说,这个子集包含了使用Plotly创建的图表,Plotly是一个广泛使用的综合平台,提供各种类型的图表。此外,我们感谢Plotly生成的VG文件中容易访问的注释。这些注释特别有用,因为每个原语通常包括一个类属性,允许直接提取其相应的类别。此外,通过使用SvgPathTools API,可以根据这个类属性获得精确的紧凑边界框。如图5所示,除了Vega-Lite中的四种基本图表外,我们还收集了水平条形图、区域图、垂直箱形图、水平箱形图、散点图、热图、蜡烛图、桑基图、小提琴图、曲面图、组合图和子图。由于一些用户创建的图表没有有效信息,只包含坐标轴,我们只选择收藏或浏览量高的公共图表,以过滤掉空图表。

注释。对于每个矢量图表,我们的数据集存储其原始VG文件(SVG格式)和渲染的光栅图像。图表的注释包括相应的表格数据、边界框和每个图表元素的类别。如图7所示,定义的类别包括标记x、标记数据、图例符号、图例标签、X/Y轴刻度/域/标签和图表标题。表2中列出了更多图表元素的详细解释,其中桑基节点、桑基链接和桑基节点标签是桑基图表特有的元素。

4.3 数据集统计

我们提供VG-DCU数据集的分析信息,提供有价值的统计洞察,有助于更好地理解其独特性和不同特征。数据集分割。我们收集了10,682个合成和4,515个真实图表,在VG-DCU数据集中,默认使用80%作为训练集,20%作为测试集。我们这样分割训练和测试集,以确保同一类别的对象都包含在训练和测试集中。VG-DCU的一些基本信息显示在表3中。数据集分析。我们在图6(a)中展示了两个子数据集中边界框实例和类别分布的地图。尽管Plotly的图表数据样本比Vega-Lite少,但图表元素的数量是可比的。此外,我们还观察到两个数据集的风格差异。例如,Vega-Lite包括刻度和域等类别,而Plotly则没有。

我们也展示了每个类别的边界框的宽高比的分布,如图6(b)所示。我们观察到,由用户从真实数据生成的图表元素的变化范围通常比由假数据生成的要大。这表明真实图表具有更多样化的分布,使得在Plotly图表中检测元素更具挑战性。

4.4 VG-DCU基准的挑战

现有工作如ChartSense[23]和Chart Detective[60]总结了理解图表的挑战。我们构建的VG-DCU基准具有一些与现有图表理解挑战相似的挑战,以及其自身的独有挑战。多样性 - 图表通过图形形状和风格以多种方式表示数据。在VG-DCU的情况下,它包括16种不同类型的图表,以完全不同的方式编码数据。组合图表,如条形图和线形图或箱形图和点图,需要能够适应这种多样性的方法。此外,由于收集的数据来自1,254个不同用户,每个用户都有自己的独特绘图风格,VG-DCU展现出高度的风格多样性。密集绘图 - VG-DCU中的大型和密集图表可能包含数百个数据点或系列。如图8所示,我们展示了每个图表中的标记(编码数据)数量。众所周知,从现有方法中提取密集绘图的信息是一个真正的挑战[23]、[59]。重叠 - 密集绘图可能导致图表元素重叠,但对于VG-DCU来说,这只是这种重叠的原因之一。一方面,由于图表风格的多样性,它们可能包含与提取数据无关的不同背景元素,这些元素仅用于增强图表的视觉效果。然而,背景和前景元素的重叠可能会增加检测的难度。另一方面,对于组合图表,不同的标记也可能相互重叠。例如,线和条形在图5(o)中相互重叠。

5 实验

5.1 实现细节

架构。对于En和Es,我们都使用具有4个流的两层图神经网络(GNN),隐藏节点表示维度为64。我们不使用更深的GNN,因为它们往往会受到过平滑的影响。由于我们图中的位置边数量庞大,由于每个区域集内完全连接,我们预先计算每个节点的变换函数fp以加速推理。然后我们通过均值池化聚合每个区域集中的节点表示,并将聚合的表示分配给集群中的每个节点作为它们的新表示。为了防止过平滑,我们只在GNN的最后一层进行均值聚合,每个节点只需要一个变换和一个均值池化操作。最后,我们使用一个三层的多层感知机(MLP)作为分类器,中间层输出维度为512和256。图构建和提议生成。在我们的实验中,我们使用可缩放矢量图形(SVG),这是一种广泛使用的矢量图形标准。对于预定义的原语,我们首先将它们转换为三次Bézier曲线。对于圆形,我们将其等分为四部分,然后将每部分转换为Bézier曲线。此外,我们在交点处将曲线分割成多个子曲线以模拟细微差异。我们将每个区域集划分为10列和10行的网格以生成提议。
训练。我们使用Adam优化器,学习率为0.001,批量大小为128。对于数据增强,我们随机平移并缩放矢量图形,最多为图像宽度和高度的10%,并且变换后的矢量图形进一步旋转一个随机角度。模型从零开始训练200个周期。我们为PFA选择4到15个邻域节点,β设置为0.3。

5.2 数据集和评估指标

在本研究中,我们使用了两个数据集,一个是公共数据集SESYD,另一个是我们自己构建的VG-DCU数据集,以验证我们提出的矢量图形方法的有效性。由于VG-DCU在第4节中已经详细描述,我们只展示SESYD数据集。SESYD数据集。SESYD包含各种类型的矢量图形文档以及使用3gT系统1产生的物体检测真值。我们的实验使用了楼层平面集合。楼层平面数据集由1,000张图像组成,总共有28,065个对象,分为16个类别,如扶手椅、桌子和窗户。图像在10个布局中均匀分布,我们将一半的布局用于训练,另一半用于验证和测试,比例为1:9。
评估指标。我们基于模型的准确性和效率来衡量其性能。准确性使用AP50、AP75和mAP等指标进行评估。AP∗表示使用50%和75%的交并比(IOU)阈值计算的平均精度。mAP是IOU阈值从0.50到0.95范围内的平均精度的平均值。除了准确性,我们还评估了模型的效率,以满足实时目标检测的需求。我们使用GFLOPs(Giga Floating point operations)和推理时间来评估模型效率。我们还考虑了模型参数的数量,以适应有限的资源。推理时间是在Nvidia Tesla V100上测量的。

5.3 与最新方法的比较

5.3.1 SESYD数据集上的结果

为了比较YOLaT和YOLaT++的性能,我们考虑了两种类型的目标检测方法:单阶段方法,如Yolov3[11]、Yolov4[62]、RetinaNet[14],以及两阶段方法,如带有金字塔网络(FPN)[63]的Faster-RCNN[16]及其变体。对于Yolov3,我们使用了-tiny变体作为较小的模型,以及使用空间金字塔池化的-spp。对于Yolov4,我们使用了具有更多参数和更好性能的缩放Yolov4[64],称为Yolov4-P5。Faster-RCNN-R*-FPN模型系列使用了不同规模的骨干网络,如ResNet18[65]、ResNet34和ResNet50,分别对应R18、R34和R50。我们选择这些基线,因为它们是目标检测中最流行的方法。我们还与RendNet[4]进行了比较,它同时利用了VG和RG格式。我们发现YOLaT和YOLaT++在两个数据集上都优于所有基线,无需在ImageNet上预训练,无论是在精度还是效率方面,如表4所示。我们还训练了带有ImageNet预训练骨干的Yolov3,但没有观察到任何性能提升。与Faster-RCNN-R50-FPN相比,YOLaT在保持竞争力的精度的同时,使用了大约100倍少的浮点运算(FLOPs)和25倍少的模型参数。另一方面,YOLaT++在保持类似参数和FLOPs的同时,实现了卓越的性能。我们使用不同的随机种子进行了3轮实验,以AP50为标准,标准误差为0.0003。

5.3.2 VG-DCU数据集上的结果

除了经典的Faster R-CNN,我们还比较了我们提出的方法与最新的Yolo系列方法,Yolov6[34]和Yolov8[35],以及基于变换器的目标检测方法,如DETR[36]和DINO[38]。对于Yolov6和Yolov8,我们使用了MMYolo[66]的实现。我们使用了-tiny变体作为较小的模型,-s变体作为小型模型,以及-m变体作为中型模型。对于Faster R-CNN和基于变换器的方法,我们使用了MMDetection[67]的实现。对于DINO,我们使用了两种不同的骨干网络:在ImageNet-1k[1]上预训练的ResNet-50和在ImageNet-22k[1]上预训练的Swin-L[68]。基准结果在Vega-Lite上。这些方法在Vega-Lite上的比较结果如表5所示。首先,值得注意的是,Yolo家族的方法在性能和速度上都不如YOLaT家族的方法。此外,尽管基于Swin-L的DINO性能相似,但其GFLOPs是YOLaT++的200倍,推理时间是20倍。在整体性能和效率方面,我们的方法YOLaT和YOLaT++取得了最佳结果。

基准结果在Plotly上。这些方法在Plotly上的比较结果如表6所示。首先,从同一方法在不同数据集上的性能可以看出,Plotly子集比合成的Vega-Lite子集更具挑战性。其次,Yolov8在mAP性能上取得了第二好的成绩,这在Vega-Lite数据集上没有观察到。具体原因在后续部分进行了详细说明。我们的YOLaT++实现在两个子数据集上都获得了最高的AP50和AP75,同时参数数量和推理时间都是最小的。通过上述两个数据子集,已经证明YOLaT家族的方法可以高效且准确地检测复杂的矢量图形。

5.3.3 Vega-Lite与Plotly

本节我们分析了不同模型在不同子集上的性能。首先,Faster-RCNN在两个子集上的表现都很差。同样,YoloV6系列优于DETR。接下来,YoloV8系列和DINO系列在两个数据集上的表现并不一致。在Vega-Lite子集上,DINO的表现明显优于YoloV8。Plotly子集的特点是极端分布,这带来了重大挑战。具体来说,像DETR和DINO这样依赖于预设的同时可检测对象的最大数量的方法,在处理Plotly子集中的异常大量的样本时表现不佳。YoloV8通过考虑样本分布,采用正负样本分配策略,并集成了Distribution Focal Loss来应对这一挑战。最后,我们的方法显示出更好的适应性,在该子集中表现出最佳的AP50和AP75,同时参数数量和推理时间都最小化。

5.4 实验分析

5.4.1 消融研究

我们在SESYD-FloorPlans、Vega-Lite和Plotly数据集上实施了消融研究。点图构建。根据表7,对YOLaT中基于Bézier的图构建方法的位置边Ep、笔画边Es的消融研究表明,从YOLaT中移除这些组件会导致SESYD-FloorPlans数据集上的精度显著下降。

这突出了这些组件在为矢量图形构建有效图表示中的重要性。另一方面,提出的Position-aware Feature Augmentation (PFA)和在YOLaT基础上构建的层次图(HG)在一定程度上显著提高了整体性能。双流GNN。在表8中,我们进行了额外的实验来分析我们为矢量图形识别特别设计的双流GNN的有效性。我们通过移除输入特征 邻居特征差异,并比较我们的聚合函数与GCN[57]、GAT[42]和GraphSage[41]中使用的聚合函数进行了消融研究。结果表明,早期聚合由于过平滑而损害了性能,而添加邻居特征差异并没有显著提高性能,但计算复杂度增加了近60%。我们提出的GNN在矢量图形识别设计上优于现有方法,进一步证明了我们设计的效力。
多级抽象特征学习。根据表9,对PFA、原语感知图和曲线注入的消融研究表明多级抽象特征学习在Vega-Lite和Plotly子数据集上的有效性。一方面,位置感知特征对齐(PFA)用于捕获局部空间关系,在SESYD-FloorPlans、Vega-Lite和Plotly数据集上取得了显著的性能提升。另一方面,通过利用三重信息实现了最佳性能。

不同训练样本数量对不同方法的影响。在这一部分,我们探索了不同训练样本数量对两种类型方法的影响。如图9所示,YOLaT++总是能在相同训练样本数量下优于Yolov8。相反,基于VG的YOLaT++在训练样本数量减少时只经历了微小的性能下降。这意味着我们提出的方法不仅具有低成本的推理优势,而且需要最少的训练样本,从而提供了一种成本效益高的培训方法。

5.4.2 YOLaT系列的尺度不变性

与主流检测方法不同,我们的YOLaT系列直接使用SVG的原始文本作为输入,而不是像素,提供了一个关键属性:尺度不变性。表10说明了传统检测方法,如Yolo系列,随着分辨率的降低而经历性能下降。相反,YOLaT系列由于直接处理SVG文本输入,不受分辨率变化的影响。另一方面,我们验证了YOLaT++在不同图长度下的鲁棒性,如表11所详述。将Vega-Lite数据集中的SVG转换为图时,长度范围从39到1,128。这些被分为三段,如表10所示,样本大小分别为1,380、575和128。YOLaT++在所有段落中保持一致的性能,与YoloV8不同,后者随着图长度的变化显示出更大的性能变化。这种一致性强调了YOLaT++对包含不同长度图的数据集的增强适应性。

5.4.3 对VG-DCU数据集的大型语言模型讨论

最近的大语言模型(LLM)已经展示了生成SVG格式文本的能力,通过文本展示对矢量图形的理解。因此,我们在这一部分探索了目标中最强大的GPT在我们提出的数据集上的性能。我们为LLM设计了一个简单的分类任务,以识别每个文本元素的类别。我们将每个元素的内容和坐标以及整体图表的大小输入GPT,并允许GPT生成分类结果,同时考虑上下文信息和位置。通过将GPT的预测结果与实际标签进行比较来确定准确性。由于使用GPT的成本,我们将探索限制在100个SVG上,以评估GPT对SVG的理解能力。在这次有限的评估中,gpt-3.5-turbo实现了83.5%的准确率。因此,进一步调查LLM在SVG上的性能是值得的。我们希望这项研究能为未来的研究人员奠定基础,促进他们在这一领域的探索,可能涉及为类似任务微调开源LLM。

5.4.4 可视化分析

我们提供了YOLaT针对VG和Yolov3针对RG的比较视觉分析,以及与YOLaT++的比较。
Yolo与YOLaT。图10比较了Yolov3和YOLaT的检测结果。前两列显示YOLaT产生更精确的边界框,与对象边界完全对齐,而Yolov3的预测不够精确,可能影响更高标准检测的性能。YOLaT在mAP上比Yolov3表现得更好,这反映在表4中。Yolov3在严格阈值下还有更多的未检测案例。图10的第三列显示Yolov3由于光栅图形的分辨率限制,未能捕获不同类型晶体管中箭头方向等小规模细节,而YOLaT直接在矢量图形上操作,每个原语都由文本命令精确描述,使其能够捕获这些细节。

YOLaT++与YOLaT。我们还在图11中比较了YOLaT++和YOLaT。如前所述,YOLaT缺乏对空间位置和原语间相关性的充分理解。具体来说,在前两列中,YOLaT难以区分具有相似节点特征的文本元素和小刻度元素。另一方面,YOLaT++整合了相对空间信息,并准确预测了Y轴标签和刻度。尽管YOLaT和YOLaT++在识别坐标角(图11的第三列)时面临类似的挑战,因为它们的位置和特征相似,但YOLaT++利用原语间相关性建模来正确分类它们。

6 结论

我们介绍了YOLaT(You Only Look at Text)及其变体版本YOLaT++。这个高效的CNN-free流程不需要光栅化,直接在矢量图形上进行操作以进行目标定位和分类。YOLaT构建了一个统一的表示,用于矢量图形中的所有原语,使用无向多图,并使用双流图神经网络(GNN)来检测对象。认识到实际矢量图形需要详细建模,因为复杂结构和不均匀分布的原语,YOLaT通过仅关注Bézier曲线内的曲线顶点来过度简化这一点,忽视了关键的高级信息。因此,YOLaT++引入了一个层次结构,并采用了位置感知增强策略来区分相似的原语,解决了这些限制。我们的实验表明,YOLaT++在效率上优于单阶段和两阶段基于像素的方法。这项工作为矢量图形的识别开辟了一个新的方向,并突出了这种数据格式的潜在好处。另一方面,鉴于现有矢量数据集的规模小且简单,我们构建了一个大规模且具有挑战性的基于图表的VG数据集,称为VG-DCU。我们期望我们的VG-DCU数据集和YOLaT系列将促进和加速矢量图形识别研究的创新。

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。

#论  文  推  广#

 让你的论文工作被更多人看到 


你是否有这样的苦恼:自己辛苦的论文工作,几乎没有任何的引用。为什么会这样?主要是自己的工作没有被更多的人了解。


计算机书童为各位推广自己的论文搭建一个平台,让更多的人了解自己的工作,同时促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 计算机书童 鼓励高校实验室或个人,在我们的平台上分享自己论文的介绍、解读等。


稿件基本要求:

• 文章确系个人论文的解读,未曾在公众号平台标记原创发表, 

• 稿件建议以 markdown 格式撰写,文中配图要求图片清晰,无版权问题


投稿通道:

• 添加小编微信协商投稿事宜,备注:姓名-投稿

△长按添加 PaperEveryday 小编



PaperEveryday
为大家分享计算机和机器人领域顶级期刊
 最新文章