论文引用格式:Zhou Q D, Liu C X, Lyu J L and Feng C B. 2024. Curve extraction and thinning based curve-to-data conversion neural network. Journal of Image and Graphics, 29(04):1030-1040(引用格式:周其当, 刘春晓, 吕金龙, 冯才博. 2024. 面向图数转化的曲线提取与细化神经网络. 中国图象图形学报, 29(04):1030-1040)[0 引 言曲线图是数据呈现的重要形式,但是在没有原始数据的情况下难以查询其中蕴含的具体数值,这给数据重用、聚合与分析造成很多不便。学术研究和科研调查所需要的很多数据资料是以图表的形态呈现的,当需要用到图表中的原始数据做进一步分析计算的时候,难以高效准确地提取图表中的数据就成了科研与学术进步的一大障碍。对于图数转化,现在有很多像Engauge Digitizer、OriginLab、GetData Graph Digitizer和Graph Digitizer Scout等图数转化软件,但是它们都需要大量的人工辅助操作。1)用户通过鼠标选取曲线上的像素点,软件会选出与之颜色相似的像素来提取曲线。然而,当曲线图中其他元素的颜色与曲线颜色相似时,将会选中其他元素,干扰曲线提取。2)由于曲线具有一定的宽度,同一个X轴坐标对应曲线上的多个像素点,难以判断待测点的具体位置,这给图数转化的准确度带来了一定的挑战。曲线细化方法可以减小曲线线宽对图数转化造成的误差。ZS(zhang-suen)曲线细化方法(Zhang和Suen,1984)对曲线图中曲线的细化结果为曲线的中心线。据观察,曲线图中的曲线在极值点附近的细化结果会更靠近端点,在两极值点中间的曲线细化结果则表现出不规则的特点。由于Zhang和Suen提出的曲线细化方法并不具备自适应细化曲线的能力,所以准确度较低。3)输入坐标轴上的坐标标签的最大值并用鼠标标记最大值和零点的位置,建立起坐标轴坐标与像素坐标的变换关系公式。由于用户鼠标点击的位置会有一定的偏差,无法精确地标记最大值和零点的位置,这进一步增加了图数转化的误差。总之,上述图数转化软件需要大量的人工操作,费时费力且准确度难以保证。全自动高精度的图数转化技术和软件属于目前的技术空白,相关核心算法亟待研发。对于曲线提取方面,考虑到曲线提取是图数转换的关键一步,它跟边缘检测方法具有较高的相关性,在此对现有边缘检测方法在曲线提取中的应用展开讨论。现有的边缘检测方法可以分为图像处理和深度学习两种方法。基于图像处理的传统边缘检测方法通常使用低层次视觉信息来获取边缘,如Canny算子(Canny,1986)使用了颜色和对比度等信息。然而,它们容易受到曲线图中的背景色、网格线、曲线颜色和线宽以及坐标轴尺度等复杂非数据因素的干扰,做不到只提取用户关心的曲线,所以还需要使用基于霍夫变换的直线检测方法去除网格线,或需要设计基于像素遍历的坐标轴去除等启发式规则,甚至需要通过大量繁杂的实验来微调众多参数或阈值才能达到一定的曲线提取效果。操作过程复杂,准确度较低且运行速度慢。目前,基于深度学习的边缘检测方法已经突破了传统边缘检测方法的限制,通过大量的训练数据学习神经网络模型参数,借助图像的深层语义信息自适应地提取出用户关心的曲线。虽然神经网络模型中的卷积层和池化层增加了不同尺度的语义信息,但是池化操作会导致边界模糊。Xie和Tu(2015)提出的HED(holistically-nested edge detection)通过深监督学习丰富的层次特征,加强边缘特征的提取性能。U-Net(Ronneberger 等,2015)在全卷积神经网络的解码器和编码器相应层之间添加跳跃连接,丰富了特征的位置信息。为了解决HED计算量大和准确度不高的问题,Liu等人(2017)提出的RCF(richer convolutional features for edge detection)利用侧结构引导把Simonyan和Zisserman(2015)的VGG(visual geometry group network)的部分特征堆叠起来,从而获得更加丰富的特征信息,大幅度提高了边缘检测的性能。为了使网络更容易收敛,He等人(2019)在RCF的基础上提出了双向级联结构引导每一部分网络的训练。由于RCF的侧结构引导中含有多次插值得到的上采样层,模糊了边缘特征,使网络的性能受到了一定的限制。Soria等人(2020)提出的DexiNed(dense extreme inception network)中的上采样层主要由卷积层和反卷积层组成,这使得上采样的特征更加清晰。Deng和Liu(2020)提出了一种端到端的边缘检测方法,有效地利用多尺度和多层次特征,进一步丰富特征信息。受到传统边缘检测算子的启发,Su等人(2021)提出的PiDiNet(pixel difference networks for efficient edge detection)引入了基于图像处理的传统边缘检测方法,提高了边缘检测的准确度,但是它的边界依然较模糊。Pu等人(2022)提出的EDTER(edge detection with Transformer)使用了计算量巨大的ViT(vision Transformer)。受到这些方法的启发,本文提出了基于侧结构引导与拉普拉斯卷积的曲线提取神经网络(side structure guidance and Laplace convolution based curve extraction neural network,SLCENet),它的侧结构引导和拉普拉斯模块有效地保留了清晰的曲线边缘,并利用深监督(Lee 等,2014)进一步加强了曲线提取的性能。本文的主要贡献如下:1)提出基于曲线提取与细化神经网络的图数转化算法,实现全自动高精度的图数转化,并大大提高了图数转化的速度;2)提出基于侧结构引导与拉普拉斯卷积的曲线提取神经网络SLCENet,在保证准确度和鲁棒性的同时,兼具运行速度快和计算量小的特点;3)提出基于曲线走势特征和多层感知机的曲线细化方法(curve trend features and MLP based curve thinning method,CMCT),实现高精度的曲线细化。1 本文算法1.1 整体技术框架本文提出了一种基于曲线提取与细化神经网络的图数转化算法,图1是整体框架,曲线图首先通过基于侧结构引导与拉普拉斯卷积的曲线提取神经网络SLCENet提取曲线,然后用基于曲线走势特征和多层感知机的曲线细化方法CMCT细化曲线,利用PaddleOCR(Paddle optical character recognition)(Li等,2022)识别X坐标轴上的坐标标签N1xc,N2xc,⋯,Nnxc及其X像素坐标位置P1xc,P2xc,⋯,Pnxc,并建立变换关系式,具体为Gx=1n-1∑i=2nPixc-P1xcNixc-N1xc (1)Px=P1xc+Gx(Nx-N1xc) (2)式中,Nixc表示X坐标轴上从左到右的第i个坐标标签的数值,Pixc表示X坐标轴上从左到右的第i个坐标标签的X像素坐标。Px表示待测点的X像素坐标,Nx表示待测点的X坐标轴坐标。10.11834/jig.230280送排稿.F001图1整体框架Fig.1Overview of our technical framework利用PaddleOCR识别Y坐标轴上的坐标标签N1yc,N2yc,⋯,Nnyc及其Y像素坐标位置P1yc,P2yc,⋯,Pnyc,并建立变换关系式,具体为Gy=1n-1∑i=2nPiyc-P1ycNiyc-N1yc (3)Py=P1yc+Gy(Ny-N1yc) (4)式中,Niyc表示Y坐标轴上从下往上的第i个坐标标签的数值,Piyc表示Y坐标轴上从下往上的第i个坐标标签的Y像素坐标。Py表示待测点的Y像素坐标,Ny表示待测点的Y坐标轴坐标。最后通过坐标变换完成图数转化。1.2 曲线提取网络SLCENet1.2.1 网络结构基于深度学习的边缘检测方法通常需要多个卷积层和池化层,这虽然增加了不同尺度的语义信息,但是多个池化操作会导致边界模糊。另外,侧结构引导中的每一层网络也不可能学习到跟曲线掩膜图GT完全一样的特征。为了解决上述问题,本文设计了基于侧结构引导与拉普拉斯卷积的曲线提取神经网络SLCENet,以修改过的ResNet(deep residual network)(He 等,2016)作为骨干网络,通过侧结构引导和拉普拉斯模块来加强曲线提取性能,并且约束每一层网络的输出,使每一层网络更好地学习到曲线掩膜图中的特征。SLCENet如图2所示,先通过80个卷积核把输入的3通道图像变为80个通道的特征。侧结构引导包含4个不同的尺度,每个尺度的主干网络由4个残差块组成。每个残差块由depth-wise卷积、ReLU(rectified linear unit)、卷积和残差组成。本文在侧结构引导中设计了能进一步丰富多尺度曲线信息的多尺度膨胀模块(multi-scale dilation module,MDM)、减少特征图中噪点的降噪模块(noise reduction module,NRM)和加强曲线细节提取性能的拉普拉斯模块(Laplace module,LM)。侧结构引导中的曲线特征P1,P2,P3,P4通过反卷积放大到输入图像的尺寸并堆叠起来,再通过1个卷积核降维和Sigmoid归一化得到曲线掩膜图E1。曲线特征P1,P2,P3,P4分别通过双线性插值放大到输入图像的尺寸,然后通过Sigmoid归一化得到曲线掩膜图E2,E3,E4,E5。曲线掩膜图E1,E2,E3,E4,E5都与GT做监督,使每一层网络更好地学习到GT中的细节。10.11834/jig.230280送排稿.F002图2SLCENet网络架构图Fig. 2SLCENet architecture((a)entire architecture;(b)LM;(c)NRM;(d)MDM)如图2(a)所示,拉普拉斯模块首先通过反卷积将特征放大到输入图像的尺寸,再通过拉普拉斯卷积得到特征LA1。由于曲线边缘的梯度较大,拉普拉斯模块使用图像插值缩放前后的像素差获取图像边缘,来提高曲线边缘的清晰度。通过1个卷积核把3通道的输入图像变为1个通道的特征LA2,并用双线性插值缩小到输入图像尺寸的1/2再放大到原尺寸得到特征LA3,输入图像的边缘梯度LA4=|LA2-LA3|。如果LA4θ,加入该处的拉普拉斯卷积特征LA=LA1(LA4θ),能加强曲线提取的性能。1.2.2 损失函数本文对曲线掩膜图E1,E2,E3,E4,E5使用了深监督。一般来说,曲线掩膜图中曲线的像素数量远远小于非曲线的像素数量,所以本文使用了带权重的交叉熵损失(周志华,2016)平衡损失函数对曲线和非曲线像素的惩罚。对于曲线掩膜图Ej中第i个像素的值piEj来说,它的损失函数为liEj=-λ(1-γ)log(1-piEj)    GTi=0-γlog(piEj)                          GTi=1 (5)式中,GTi表示GT中第i个像素的值,γ表示GT中值为0的像素占所有像素的比例,λ是一个超参数。网络总的损失函数为L=∑j∑iliEj (6)1.3 曲线细化方法CMCT为了减小曲线线宽对图数转化的误差,并综合考虑计算复杂度和准确度,设计了10个能够反映曲线走势的特征,提出了基于曲线走势特征和多层感知机的曲线细化方法CMCT,实现了高精度的曲线细化目标。本文的多层感知机包含5个隐藏层,每层都含有200个连接点。曲线掩膜图E1通过二值化操作得到曲线二值图M,再把待测点m的X坐标轴坐标通过公式变换成X像素坐标Xm。如图3所示,曲线二值图M中第Xm列曲线上下边缘的Y像素坐标差为Hm,曲线二值图M中第Xm列曲线上边缘与真实位置的Y像素坐标GTym的差为GTm,多层感知机学习的目标A=GTm/Hm。10.11834/jig.230280送排稿.F003图3曲线细化目标参数Fig.3Curve thinning target parameters10个曲线走势特征含义如图4所示,具体计算为C1=Xm-CxlCxr-Cxl (7)C2=Ymid-CylCyr-Cyl (8)C3=CxlCxmax (9)C4=CylCymax (10)C5=CxrCxmax (11)C6=CyrCymax (12)C7=Cxr-CxlCol (13)C8=Cyr-CylRow (14)C9=Cmu-CmdCyr-Cyl (15)C10=LwCmu-Cmd (16)式中,Cxl表示待测点m左极值点的X像素坐标,Cyl表示待测点m左极值点的Y像素坐标,Cxr表示待测点m右极值点的X像素坐标,Cyr表示待测点m右极值点的Y像素坐标。Cxmax表示X轴像素坐标长度,Cymax表示Y轴像素坐标的长度。Cmu表示第Xm列曲线上边缘的Y像素坐标,Cmd表示第Xm列曲线下边缘的Y像素坐标。Ymid表示第Xm列曲线中心的Y像素坐标,即Ymid=(Cmu+Cmd)/2。Col表示曲线图最小外接矩形的长,Row表示曲线图最小外接矩形的宽,Lw表示曲线法线方向的宽度。10.11834/jig.230280送排稿.F004图4曲线走势特征参数Fig.4Parameters of curve trend feature2 实验结果与分析2.1 数据集本文制作了一个曲线图图数转化数据集,包含曲线上关键点的坐标轴坐标、曲线图和曲线掩膜图。首先随机生成关键点坐标,然后在matplotlib中设置背景色、网格线、曲线线宽和曲线颜色等变量都为随机值,画出曲线图。接下来在matplotlib中关闭网格线和坐标轴等干扰,画出无干扰的曲线图并通过上下遍历曲线边缘,得到曲线掩膜图。数据集中的一组数据如表1和图5所示,表1中的第2列是关键点的X坐标轴坐标,第3列是关键点的Y坐标轴坐标。10.11834/jig.230280送排稿.T001表1关键点数据示例Table 1Example of key point data关键点X坐标轴坐标Y坐标轴坐标第1个点038.13第2个点229.61第3个点430.07第4个点619.25………10.11834/jig.230280送排稿.F005图5数据集示例Fig.5One example of our dataset((a) curve image; (b) curve mask)2.2 评价指标评价指标分为曲线提取和图数转化两部分。对于曲线提取部分,F-measure(Sokolova等,2006)是精度P和召回率R(Sahiner等,1997)的谐波平均值,具体为Fβ=(1+β2)×P×Rβ2×P+R (17)式中,本文的β=1。使用全局最优阈值指标(optimal dataset scale,ODS)和局部最优阈值指标(optimal image scale,OIS)来评价曲线提取的准确度。ODS是对所有的测试图像共同使用0到255中的一个阈值进行二值化操作,求得最大的平均Fβ。OIS是对每幅测试图像分别使用0到255中的一个阈值进行二值化操作,求得最大的平均Fβ。对于图数转化部分,使用归一化均值误差(normalized mean error,NME)和归一化平方误差(mormalized square error,NSE)来评价图数转化的准确度,计算为SNME=1n×m∑jn∑imPij-GijGmaxj (18)SNSE=1n×m∑jn∑im(Pij-Gij)2Gmaxj (19)式中,Pij表示第j幅测试图像的第i个待测点图数转化获得的Y坐标轴坐标,Gij表示第j幅测试图像的第i个待测点真实的Y坐标轴坐标,Gmaxj表示第j幅测试图像中Y坐标轴坐标的最大值。2.3 模型训练本文模型使用NVIDIA RTX 3090在PyTorch框架中训练的。在训练阶段使用了2 000幅图像,输入图像尺寸为640 × 480像素,样本批处理大小为9,λ=0.86,θ=0.04。使用零填充来使输出特征与输入特征的大小一致;在拉普拉斯模块中,使用对称填充来使输出特征与输入特征的大小一致。本文选择Adam(Kingma和Ba,2017)作为优化器,初始学习率设置为0.005,每经过10轮下降到原来的30%,总共训练150轮。2.4 实验结果为了验证本文算法的准确性和快速性,与现有方法进行比较。2.4.1 可视化比较图6展示了在受到JPEG压缩攻击的曲线图中SLCENet和现有方法曲线提取的可视化比较。Engauge Digitizer在图数转化中得到了广泛的应用,但是由于使用了启发式规则和人工交互辅助的现有方法,当图像内容对比度低、干扰多时,难以获取清晰的曲线掩膜图。HED、RCF和DexiNed则难以实现曲线提取。另外,PiDiNet等现有方法难以去除网格线等干扰,时常出现无法完全去除网格线或去除了部分曲线的情况。而SLCENet能自适应提取清晰的曲线掩膜图,尤其是在去除网格线和坐标轴等干扰中表现出较好的性能。10.11834/jig.230280送排稿.F006图6曲线提取效果的视觉比较Fig.6Visual comparison of curve extraction effects((a) curve image; (b) curve mask; (c) Engauge Digitizer;(d) HED; (e) RCF; (f) DexiNed; (g) PiDiNet; (h) SLCENet)2.4.2 指标比较本文测得了1 000幅曲线图的ODS、OIS和算法运行耗时(Time)指标来评价曲线提取的性能,其中,ODS和OIS越高越好,Time越低越好。表2展示了SLCENet和现有方法的曲线提取性能指标比较。根据实验结果可得,SLCENet的ODS和OIS都远超现有方法。虽然运行速度不及HED、RCF和DexiNed,但是它们的曲线提取效果太差,难以满足用户需求。在兼顾曲线提取准确度和运行速度的情况下,SLCENet达到了最好的性能。10.11834/jig.230280送排稿.T002表2曲线提取性能指标比较Table 2Comparison of curve extraction performance方法ODSOISTime/sEngauge Digitizer0.4260.426109.2HED0.1790.1930.031RCF0.1910.2110.032DexiNed0.2020.2220.035PiDiNet0.6870.7020.044SLCENet(本文)0.9850.9860.043注:加粗字体表示各列最优结果。为了更进一步说明SLCENet优越的曲线提取性能,用加入了JPEG压缩、图像缩放和添加噪声等攻击类型生成的曲线图进行实验,如表3所示。10.11834/jig.230280送排稿.T003表3攻击数据集曲线提取性能指标比较Table 3Comparison of curve extraction performance for attack datasets方法ODSOISTime/sEngauge Digitizer0.2070.207125.3HED0.1310.1560.031RCF0.1490.1750.032DexiNed0.1600.1830.035PiDiNet0.5730.5900.044SLCENet(本文)0.9020.9050.043注:加粗字体表示各列最优结果。本文测得了1 000幅曲线图的NME、NSE和Time指标来评价图数转化的性能,表4展示了本文算法与现有方法图数转化性能指标的比较。根据实验结果可得本文算法的NME、NSE和Time指标都要优于现有方法,运行速度更是超过了第2名的OriginLab 90倍以上。10.11834/jig.230280送排稿.T004表4图数转化性能指标比较Table 4Comparison of curve-to-data conversion performance方法NME/%NSE/%Time/sEngauge Digitizer2.4118.75121.5OriginLab1.9813.5675.3GetData Graph Digitizer2.6722.98137.6Graph Digitizer Scout3.5933.12156.9本文0.794.780.83注:加粗字体表示各列最优结果。2.4.3 消融实验首先使用修改过的ResNet作为比较的基本模型,然后依次加入侧结构引导、深监督、拉普拉斯模块和CMCT,来验证这些模块对算法性能的影响。对于曲线提取部分如图7所示,ResNet难以实现曲线提取;侧结构引导能使网络更加有效地融合多尺度信息,学习到更加清晰的曲线特征;深监督则能使每一层网络更好地学习到曲线掩膜图中的细节,进一步提高曲线提取的准确度;拉普拉斯模块保留了曲线的细节,使曲线掩膜图更加清晰。10.11834/jig.230280送排稿.F007图7曲线提取消融实验的视觉比较Fig.7Visual comparison of curve extraction ablation experiment((a) curve image; (b) curve mask; (c) ResNet; (d) ResNet+side structure guidance;(e) ResNet+side structure guidance+deep supervision; (f) ResNet+side structure guidance+deep supervision+Laplace module)曲线提取消融实验结果如表5所示,在ODS指标上,相比ResNet,加入侧结构引导能提高0.749的准确度,加入深监督能再提高0.03的准确度,加入拉普拉斯模块还能再提高0.054的准确度。10.11834/jig.230280送排稿.T005表5曲线提取消融实验性能指标比较Table 5Comparison of curve extraction performance for ablation experiment方法ODSOISResNet0.1520.183ResNet+side structure guidance0.9010.909ResNet+side structure guidance+deep supervision0.9310.936ResNet+side structure guidance+deep supervision+Laplace module0.9850.986注:加粗字体表示各列最优结果。对于图数转化部分如表6所示,其中NME和NSE越低越好。相比ZS曲线细化算法,CMCT实现了高精度的曲线细化目标,大大减小了曲线线宽对图数转化造成的误差。10.11834/jig.230280送排稿.T006表6曲线细化性能指标比较Table 6Comparison of curve thinning performance方法NME/%NSE/%ZS曲线细化算法2.817.2CMCT(本文)0.794.78注:加粗字体表示各列最优结果。为了更好地说明本文CMCT曲线细化方法的有效性,制作了曲线细化效果可视化图。如图8所示,左下角小图为橙色小框部分的放大图,黑线是有一定宽度的原始曲线,红线是ZS曲线细化算法的可视化结果,蓝线是本文CMCT的可视化结果。10.11834/jig.230280送排稿.F008图8曲线细化效果的视觉比较Fig.8Visual comparison of curve thinning effectsSLCENet模型占用内存仅约17 MB,以轻量化的模型实现了较高的准确度。为了使CMCT也能兼顾准确度和空间复杂度,本文使用了random forest(Breiman,2001),linear regression(Guo 等,2023),KNN(k-nearest neighbor)(Liao 等,2023),AdaBoost(adaptive boosting)(Chelmis和Qi,2021),GBRT(gradient boost regression tree)(Gu 等,2015),Bagging(Li和Tian,2021),extra-trees(Sciavicco和Stan,2020),decision tree(Lee 等,2022)来训练CMCT。实验结果如表7所示,其中,NME、NSE、Parameters和Time都是越低越好。如果仅考虑图数转化的准确度,decision tree表现出最好的性能,但是综合考虑图数转化的准确度、空间复杂度和运行速度,本文最终选择了多层感知机。10.11834/jig.230280送排稿.T007表7不同机器学习模型的曲线细化性能指标比较Table 7Comparison of curve thinning performance with different machine learning models方法NME/%NSE/%参数量/KBTime/srandom forest0.554.142 659 243 8970.483linear regression2.1411.310.405KNN0.874.9162 7480.440AdaBoost1.939.39400.429GBRT1.246.251730.433Bagging0.584.19259 6700.427extra-trees0.4844.05440 5630.436decision tree0.484.0542 2120.436MLP(本文)0.794.785 1070.409注:加粗字体表示各列最优结果。大量的实验结果和指标都表明,本文算法以轻量化的模型实现了高精度的曲线提取与图数转化,摆脱了图数转化需要大量人工交互辅助的限制。4 结 论针对曲线图难以转化为原始数据的问题,本文提出了一个基于曲线提取与细化神经网络的图数转化算法。首先,本文提出了基于侧结构引导与拉普拉斯卷积的曲线提取神经网络SLCENet,以轻量化的模型解决了现有的曲线提取算法中池化操作会导致边界模糊的问题,提高了曲线提取的准确度。其次,为了减小曲线线宽对图数转化造成的误差,并综合考虑计算复杂度和准确度,本文设计了10个能够反映曲线走势的特征,提出了基于曲线走势特征和多层感知机的曲线细化方法CMCT,实现了高精度的曲线细化。最后,利用PaddleOCR识别坐标轴上的坐标标签,并建立起坐标轴坐标与像素坐标的变换关系,通过坐标变换完成图数转化。实验结果证明本文算法在准确度和运行速度上都要远远超过现有方法,更是摆脱了图数转化需要大量人工交互辅助的限制,提高了曲线图数据的重用效率。对于JPEG压缩、图像缩放和添加噪声等攻击类型生成的曲线图,尽管本文的曲线提取和细化方法表现出较高的准确度,但是PaddleOCR不能准确识别出该类曲线图中坐标轴上的坐标标签,给坐标转换的准确度带来了一定的影响。

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读