掌桥专利:专业的专利平台
掌桥专利
首页

一种基于手写数学符号识别和可视化编辑的数学公式输入方法

文献发布时间:2023-06-19 19:18:24



技术领域

本发明属于基于图像识别的符号输入技术领域,具体涉及一种基于手写符号识别和可视化编辑的数学公式输入方法。

背景技术

科学技术作为社会发展的主要动力,其自身的发展势必会越发蓬勃与迅速。数学作为科学技术的基础,在科学技术研究,科技文献的撰写与传播中几乎成了必要内容之一。因此,人们对数学公式输入效率的要求也越来越高。

当前,数学公式输入形式主要有三种:基于图形界面模板形式、基于Latex数学公式描述语言和基于机器学习或深度学习的手写数学公式整体识别。

第一种数学公式输入形式的代表软件包括Microsoft Word文字处理软件中的公式插入工具、MathType数学公式编辑软件等。这种基于GUI和公式模板的数学公式输入方式,其优点是提供了所见即所得的直观的数学公式输入体验,但是由于数学符号多大上百种,每次需要输入键盘上没有的数学符号,或者需要输入某种数学公式结构,就需要到软件的符号面板或模板面板中寻找所需符号或模板然后点击插入。由于肉眼查找的过程是非常低效的,这导致数学公式的整体输入效率十分低下,输入体验也不佳。

基于Latex数学公式描述语言的数学公式输入方式,就是在文本编辑器中输入数学公式对应的Latex代码。这种数学公式输入方式的优点是一旦熟练掌握了Latex的语法和其包含的数百个数学符号和数学结构的Latex代码,则可以较高的速度流畅地输入数学公式,无需在鼠标和键盘之间来回切换。但是缺点也很明显,那就是前期的学习成本太高,需要记忆上百种数学符号和数学结构(例如分式、根式、极限、累和、矩阵、多行大括号等)对应的Latex代码。另一个缺点是当数学公式逐渐复杂时,Latex代码会显得繁杂不堪,很难一眼看出公式中的某一部分对应到代码中的哪一个部分,当需要对公式进行修改时,就需要仔细阅读Latex代码,弄清楚要修改的部分在代码中的具体位置,因此公式修改的效率低,负担高。

基于机器学习或深度学习算法对公式整体识别的方案也存在不小缺陷。目前对印刷体数学公式的识别效果较为理想,但对手写体公式的识别准确率尚且难以达到应用的地步。例如当书写的公式较为复杂冗长时,书写界面的高度和宽度可能需要适当调整;当书写过程中发生笔误时,需要切换到擦除模式进行擦除操作;当书写完一个很长的公式后发现识别结果不正确,就需要将整个公式擦掉重写,这个过程还可能会重复若干次,因此公式的输入效率难以保障。

发明内容

本发明的目的是克服上述现有技术的缺陷,提供一种基于手写数学符号识别和可视化编辑的数学公式输入方法,使得数学公式输入的效率更高,学习成本更低。

本发明采用的技术方案如下:

一种基于手写数学符号识别和可视化编辑的数学公式输入方法,包括下列步骤:

步骤1:对数学公式中的符号表进行分类设置,确定每个符号类别包括的数学符号和每个符号类别的代表符号;

步骤2:提取用户手写输入的数学符号图片;

步骤3:基于配置的深度学习模型,对所述数学符号图片进行符号类别识别,输出当前数学符号图片属于各个符号类别的类别概率(预测概率),并记录前K(预设值)个类别概率最高的符号类别;

步骤4:采用候选列表的形式向用户展示所记录的K个符号类别所包括的数学符号及其模板,当用户点击某个列表项时,将对应的数学符号或模板插入数学公式编辑器中光标所在位置;

若最高类别概率大于设定的概率阈值时,则将其对应符号类别的代表符号插入到数学公式编辑器中光标所在位置;

步骤5:清空用户手写输入的所有笔迹;

步骤6:重复步骤2-5直到数学公式输入完毕。

进一步的,步骤1中,分类设置时包括:

根据字符的相似程度进行类别划分;

根据使用场景的相似程度进行类别划分;

设置各类括号的模板,每种模板构成一个类别,其中模板由左右括号组成。

进一步的,本发明方法还包括:对用户从数学公式编辑器中选中的进行显示编辑的目标符号进行显示调整,包括字体、前景色、背景色。

进一步的,本发明方法还包括:通过公式编辑器导出输入公式的指定代码。

进一步的,用户通过画布手写输入数学符号。

进一步的,步骤2中,当检测到用户手写输入完毕时,提取用户手写输入的数学符号图片;

其中,检测用户手写输入完毕包括:

当用户鼠标处于按下状态时,判定为数学符号正在书写;

当用户鼠标没有按下,但是正在移动时,判定为数学符号正在书写;

当用户鼠标静止时间超过指定时间时,判定为数学符号书写完毕。

进一步的,步骤3中,所述数学符号图片进行符号类别识别处理,对所述数学符号图片进行像素值归一化处理,再输入到深度学习模型中,获取当前数学符号图片属于各个符号类别的类别概率。

进一步的,步骤3中,采用的深度学习模型的网络结构包括依次连接的第一卷积模块、堆叠的若干个第二模块单元、第二卷积模块、展平层(如flatten层)和类别概率输出层;

所述第一卷积模块包括卷积层和激活函数,用于将输入特征图的通道数从1提升n,其中n表示数学符号类别数;

所述第二模块单元包括依次连接的DenseBlock模块和池化模块,所述DenseBlock模块包括若干个第三卷积模块和若干个拼接层,在DenseBlock模块中,第三卷积模块和拼接层交替出现,且所述拼接层用于对进入该DenseBlock模块的输入特征图、当前拼接层之前的各第三卷积模块输出的特征图在通道维度上进行拼接;所述第三卷积块用于按需调整输出的特征图的尺寸所述池化模块用于对DenseBlock模块输出的特征图的平均池化结果和最大池化结果进行逐元素相加;所述第二卷积模块输出的特征图的宽和高一致。

进一步的,所述第一卷积模块包括批归一化层、卷积层和Relu6激活函数;

所述第二卷积模块和第三卷积模块采用相同的网络结构,包括批归一化层、深度可分离卷积层和Relu6激活函数;

所述类别概率输出层包括若干层全连接层和sofmtmax层,所述sofmtmax层用于输出当前数学符号图片属于各个符号类别的类别概率。

10.根据权利要求1所述的方法,其特征在于,步骤4中,采用候选列表的形式向用户展示所记录的K个符号类别所包括的数学符号及其模板时,包括:

对记录的K个符号类别按照类别概率降序排练,并定义s

定义L表示候选符号列表,初始化L=[s

从第一个符号类别开始,依次判断相邻两个符号类别的类别概率差p

将候选符号列表中L渲染到显示界面,当某个列表项被用户选中时,将对应的数学符号或模板插入到数学公式编辑器中光标所在位置。

综上所述,由于采用了上述技术方案,本发明的有益效果是:提升了数学公式的输入效率,降低了对输入处理的计算成本。本申请中,当预测概率最高的数学符号所对应的概率大于设定的类别概率阈值时,可以自动将该符号插入到数学公式编辑器,不需要用户再从候选列表中选择所需的符号,使得公式输入过程更流畅。此外,对当前的手写字符的输入处理完毕后进行的笔迹自动清空处理,又便于下一个符号直接写入,从而保持公式输入的连贯性。采用本申请所设置的深度学习模型结构,可以降低模型的学习(模型参数训练)成本;采用本申请所限定的用户手写输入完毕的检测方式,可以降低额外用户的额外负担,提升用户的使用便捷性。另外,通过公式编辑器导出所输入公式对应的代码(例如Latex代码),能便于用户输入的数学公式的存储以及进一步使用。

附图说明

图1为本发明实施例所采用的手写数学符号识别模型。

图2为本发明实施例中,手写体相似符号和使用场景相似符号示例;

图3为本发明实施例提供的基于手写数学符号识别和可视化编辑的数学公式输入方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。

本发明实施例提供了一种基于手写数学符号识别和可视化编辑的数学公式输入方法,具体实现过程如下:

在进行数学公式输入之前,需要先对数学符号进行整理和归类,将符号的手写体极为相似的归为同一个大类别(符号类别),例如[s,S],[1,l],[0,o,O],[z,Z]等;将使用场景相似的符号归为同一个大类别,例如←,←,

本实施例中,经过整理,最终得到137个符号大类别,每个大类别中包含1个或多个具体符号,并未每个大类别设置一个代表符号,即该符号类别的默认符号。

设置符号类别识别的深度学习模型,本发明实施例中,采用基于卷积神经网络设的深度学习模型(即图像分类算法模型),其包括依次连接的第一卷积模块、堆叠的若干个第二模块单元、第二卷积模块、flatten层和类别概率输出层,其中,第二模块单元的数量为4个,第二模块单元的DenseBlock模块的第三卷积模块与第二卷积模块的结构相同,且DenseBlock模块包括4个第三卷积模块,如图1所示。类别概率输出层包括一层全连接层(FC),并sofmtmax激活函数输出当前数学符号图片属于各个符号类别的类别概率。

当深度学习模型设置完成后,可通过采集的训练集对其进行网络参数训练,其中训练方式可以采用任一管用方式,本发明不做具体限定。本发明实施例中,采集的训练数据集为:通过在自由画布上用鼠标手绘的方式绘制了一定数量(本实施例中为7760幅)的数学符号图片,每个符号类别包括30-80张图片不等,将其称之为MathSymbols数据集,图2展示了手写体相似的符号(第1-2行)和使用场景相似的符号(第3-4行)。

本发明实施例提供的基于手写数学符号识别和可视化编辑的数学公式输入方法可以设置为计算机设备的一个应用程序,其包括手写符号输入模块,手写数学符号识别模块,数学公式可视化编辑模块和工具条模块。其中,手写符号输入模块用于提供自由绘制功能,用户可以通过该模块写入任意符号,然后导出为图片数据。手写数学符号识别模块用于基于所配置的深度学习模型(训练好的)识别出用户写入的数学符号,是一个基于卷积神经网络实现的图片分类算法模型。数学公式可视化编辑模块,用于渲染已输入部分的数学公式,提供数学公式所见即所得的编辑功能。可通过键盘输入数学符号,也提供相关API,从而可通过代码插入数学符号或数学模板,这部分的功能可以基于开源数学公式编辑器Mathlive实现。工具条模块,用于提供一些补充功能,例如当某些符号需要调整为特殊字体时,可以在公式编辑器中将其选中,然后在工具条中选择相应的字体。还可以调整选中部分的前景色、背景色等。

本发明实施例提供的基于手写数学符号识别和可视化编辑的数学公式输入方法的输入流程为:

步骤S1:定义需要输入的数学公式为E。

步骤S2:用户在基于HTML Canvas元素构建的200x200像素的自由画布上写入公式E中的下一个符号s。

步骤S3:将写好的符号导出为图片I,调用训练好的图像分类模型以图片I作为输入,计算出I属于137种符号大类别的概率,取出概率值最大的前3个符号s

步骤S4:将候选列表L渲染到界面,当某个列表项被点击时,将对应的符号或模板插入到数学公式编辑器中光标所在位置。

步骤S5:若预测概率最高的符号所对应的概率大于等于设定的阈值t

步骤S6:根据需要,将数学公式编辑器中的光标调整到所需位置处。系统自动清空自由画布中的所有笔迹,方便下一个符号直接写入,从而保持公式输入的连贯性。

步骤S7:若符号s为公式E中的最后一个符号,则执行步骤S8,否则执行步骤S2。

步骤S8:根据需要选中编辑器中的目标符号进行字体、前景色、背景色等调整。

步骤S9:通过公式编辑器导出所输入公式对应的Latex代码,方便数学公式的存储与进一步使用。

整个数学公式输入的流程如图3所示,用户只需要不断在自由画布上写入数学符号,当符号识别结果的预测概率(置信度)比较高时(例如p

参加图1,该模型由DenseBlock网络模块、深度可分离卷积层(SeparableConvolution)、Squeeze-and-Excitation网络模块(seBlock)、卷积神经网络层、AvgPooling层和MaxPooling层、全连接层和批量正则化等组成。其中,DenseBlock模块仅在连接方式上与标准DenseNet中的DenseBlock的连接方式相似,在实现细节上并未与标准的DenseNet严格一致,包括卷积模块的实现,卷积层的输出通道计算方式等。从宏观上看,模型的主体结构是四个DenseBlock,每个DenseBlock中有四层卷积模块,这四个卷积模块都是一样的结构,其中包含了批量正则化层、深度可分离卷积层和激活函数层。每个DenseBlock模块后面是MaxPooling池化层。在第四个DenseBlock后面依次是批量正则化层、深度可分离卷积层、relu6激活函数层、展平层(flatten)和使用了softmax激活的全连接层。

模型中的BatchNorm-Conv-relu6模块是批量正则化层、二维卷积层和relu6激活函数的组合。设X∈R

模型中的BatchNorm-separableConv-relu6模块与BatchNorm-Conv-relu6模块类似,将普通卷积替换为了深度可分离卷积,使得模型更为轻量,参数量大大减少。其计算方式为y=Relu6(SeparableConv(BN(X)))。

模型中的MaxPooling+AvgPooling模块表示将输入数据的最大池化和平均池化的结果进行逐元素相加,并返回相加后的结果,可表示为y

在模型的DenseBlock中,每个卷积层的输入是该DenseBlock中前面所有层的输出与进入该DenseBlock的数据在通道维度上的拼接。设H

H

其中,x

DenseBlock的计算过程可表示为:

x

x

x

x

SeparableConv表示深度可分离卷积,这里使用深度可分离卷积网络的主要目的是在保证模型准确率几乎没有损失的情况下,同时使得模型更为轻量。

本发明实施例中,采用的DenseBlock中的前两个卷积层的输出通道数等于输入特征图的通道数,如果后面的卷积层也采用这种方式,则会导致输出特征图的通道数量呈指数增长,为了使模型尽可能轻量,在每个DenseBlock中的第三、四个卷积模块的输出通道数都进行了压缩,设当前DenseBlock的压缩因子为k,输入到当前DenseBlock的特征图的通道数为C

C

C

C

C

C

本实施例中,所有卷积层的padding(填充)均采用“same padding”。BatchNorm-Conv-Relu6模块中的卷积核个数为4,第一个DenseBlock的压缩因子为0.7,后面三个DenseBlock的压缩因子均为0.6,DenseBlock中的BatchNorm-separableConv-relu6模块中的卷积全部采用3x3卷积核和1x1的步长,激活函数为relu6。最后一个BatchNorm-separableConv-relu6模块中的卷积核为3x3,步长为2x2,卷积核个数为137,最后采用softmax激活的全连接层(FC+softmax)的神经单元个数为137个。

本实施例中,使用反向传播算法和交叉熵损失函数对手写数学符号识别模型进行训练,得到训练后的识别模型。

参加图3,结合上述配置的深度学习模的网络结构,本实施例中提供的基于手写数学符号识别和可视化编辑的数学公式输入方法,包括下列步骤:

步骤1:对数学公式中的符号表进行整理分类,最后得到137个符号大类;

步骤2:在基于HTML Canvas元素构建的自由画布上写入数学符号。

步骤3:通过调用深度学习模型,获取符号所属类别最高的三个大类别。

步骤4:将三个大类别中的若干符号及其相关模板展示到候选列表,当用户点击某个列表项时,将对应的符号或模板插入数学公式编辑器中光标所在位置。

步骤5:若预测概率最高的符号所对应的概率大于设定的阈值,则系统自动将该符号插入到数学公式编辑器,不需要再从候选列表中选择所需的符号,使得公式输入过程更流畅。

步骤6:根据需要,将数学公式编辑器中的光标调整到所需位置处。系统自动清空自由画布中的所有笔迹,方便下一个符号直接写入,从而保持公式输入的连贯性。

步骤7:对所需输入的数学公式中的每个符号重复执行步骤2-6,直到数学公式输入完成。

步骤8:根据需要选中编辑器中的目标符号进行字体、前景色、背景色等调整。

步骤9:通过公式编辑器导出所输入公式对应的Latex代码,方便数学公式的存储与进一步使用。

其中,步骤2中,基于自由画布输入写入数学符号,其关键点在于如何判断一个符号是否书写完毕,方法可以有多重,例如通过鼠标双击、通过点击某个按钮告诉系统当前符号书写完毕,但是这些都给用户增加了额外的负担,本实施例中,采取的方案包括如下步骤:

步骤2.1:当用户鼠标处于按下状态时,判定为符号正在书写。

步骤2.2:当用户鼠标没有按下,但是正在移动时,判定为符号正在书写。

步骤2.3:当用户鼠标静止(未移动)时间超过200毫秒,判定为符号书写完毕,可进入下一步继续执行。

作为一种可选的方式,步骤3包括:

步骤3.1:以手动写入的数学符号图片为输入,固定图片的长宽均为200像素,则输入图片表示为

步骤3.2:将X中的像素值归一化为[0,1]之间的数值,调用训练好的神经网络模型推理出符号X属于每个大类别的概率

步骤3.3:取出概率值最大的前三个值p

优选的,步骤4中选出所需要的符号或模板展示到候选列表,具体包括:

步骤4.1:设L为候选符号列表,s′

步骤4.2:设参数t

步骤4.3:将候选列表L渲染到界面,当某个列表项被点击时,将对应的符号或模板插入到数学公式编辑器中光标所在位置。

本发明实施例提供的基于手写数学符号识别和可视化编辑的数学公式输入方法在实现数学公式输入操作时,用户不再需要每次都花费十几秒钟去符号表、公式模板中查找所需要的符号或模板,也不需要熟记几百种Latex数学符号和模板的命令,只需要通过手动写入与智能算法识别相结合的方式在三秒钟之内即可得到所需符号或模板,该方法可有效提高基于符号表和公式模板的数学公式输入效率,降低基于Latex代码的数学公式输入学习成本。达到了数学公式输入效率高,学习成本低的效果。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

技术分类

06120115866125