基于图像识别的公式计算方法与流程

文档序号:27553458发布日期:2021-11-24 23:25阅读:387来源:国知局
基于图像识别的公式计算方法与流程

1.本发明涉及数据处理技术领域,尤其涉及基于图像识别的公式计算方法。


背景技术:

2.随着社会经济的快速稳定发展,以及国家对教育信息化大力支持,尤其是对基础教育信息化的资金扶持,加快了教育信息化的建设步伐。自教育踏上软件市场这个舞台之后,随着互联网技术的日新月异并逐步普及,以及国家对教育培训产业的重视和投资力度的加大,教育软件已经占领整个软件市场的三分之一份额,与办公软件、财务软件形成三分天下的局面。
3.在现有的相关技术中,mathematica是一款科学很好地结合了数值和符号计算引擎、图形系统、编程语言、文本系统、和与其他应用程序的高级连接。但是mathematica的用户群中最主要的是科技工作者和其它专业人士,用户在使用mathematica时需要提前撞我一门编程语言,这对中小学生来说,无疑是非常困难的。
4.在现有的其他在线计算方法只能识别数字和几个固定的数学常量。在计算时也只能做一些如加减乘除等非常简单的数学计算,而无法进行更复杂的数学计算。


技术实现要素:

5.本发明的目的是针对现有技术的缺陷,提供一种基于图像识别的公式计算方法,通过降噪、识别、分割、组合等步骤,提高了识别数学公式的准确度。同时,根据对识别用户手写输入或拍照得到的图像形势的公式进行解析处理,计算得到公式的值,可以极大地提高了学生的学习效率。
6.为实现上述目的,本发明提供了基于图像识别的公式计算方法,所述基于图像识别的公式计算方法包括:
7.用户终端根据第一用户输入的获取指令获取待识别图像数据;
8.所述用户终端对所述待识别图像数据进行降噪处理,得到降噪后的待识别图像数据并发送至服务器;所述降噪后的待识别图像数据携带有所述第一用户的用户id;
9.所述服务器根据神经网络模型对所述待识别图像数据进行识别处理,得到公式文本信息;
10.分割所述公式文本信息,得到一个或多个字符串数据和运算符号数据;
11.确定所述运算符号数据的优先级信息,并确定所述字符串数据与所述运算符号数据的位置关系;
12.根据所述运算符号数据的优先级信息和所述字符串数据与所述运算符号数据的位置关系,对所述一个或多个字符串数据和运算符号数据进行分组,得到多个运算单元;每个所述运算单元包括运算级别信息;
13.根据所述运算级别信息计算所述运算单元的值,得到公式计算结果数据;
14.根据所述第一用户的用户id将所述公式计算结果发送至所述用户终端,用以所述
用户终端显示所述公式计算结果数据。
15.优选的,所述用户终端根据用户输入的获取指令获取待识别图像数据具体为:
16.所述用户终端根据所述第一用户输入的获取指令获取原始图像数据,并显示;
17.接收所述第一用户根据所述原始图像数据输入的区域选择指令,根据所述区域选择指令得到所述待识别图像数据。
18.优选的,所述降噪处理包括调整待识别图像数据大小和灰度处理。
19.优选的,所述字符串数据包括常数数据、未知数数据、系数数据和指数数据中的一种或多种。
20.优选的,所述根据所述运算符号数据的优先级信息和所述字符串数据与所述运算符号数据的位置关系,对所述一个或多个字符串数据和运算符号数据进行分组,得到多个运算单元具体为:
21.确定所述运算符号数据中的优先级信息最高的第一运算符号数据;
22.确定与所述第一运算符号数据相邻的所述字符串数据,并将相邻的所述第一运算符号数据和所述字符串数据组成一个所述运算单元;
23.根据所述运算单元确定是否存在下一个所述运算符号数据中的优先级信息最高的第二运算符号数据;
24.当存在下一个所述运算符号数据中的优先级信息最高的第二运算符号数据时,确定与所述第二运算符号数据相邻的所述字符串数据,并将相邻的所述第二运算符号数据和所述字符串数据组成另一个所述运算单元;
25.并且继续确定是否存在下一个所述运算符号数据中的优先级信息最高的第二运算符号数据。
26.优选的,所述根据所述运算级别信息计算所述运算单元的值具体为:
27.计算所述运算级别信息最高的运算单元,得到第一计算值;
28.确定是否存在下一个所述运算级别信息最高的运算单元;
29.当存在下一个所述运算级别信息最高的运算单元时,根据所述得到第一计算值和所述下一个所述运算级别信息最高的运算单元得到第二计算值,并继续确定是否存在下一个所述运算级别信息最高的运算单元;
30.当不存在下一个所述运算级别信息最高的运算单元时,计算结束。
31.优选的,在所述根据所述第一用户的用户id将所述公式计算结果发送至所述用户终端之后,所述方法还包括:
32.所述用户终端接收所述第一用户输入的反馈信息;确定所述反馈信息是否为第一反馈信息;
33.当所述反馈信息为第一反馈信息时,所述用户终端向所述服务器发送所述待识别图像数据;
34.所述服务器接收第二用户根据所述待识别图像数据输入的所述公式计算结果数据;所述公式计算结果数据包括所述第一用户的用户id;
35.根据所述第一用户的用户id将所述公式计算结果数据发送至用户终端。
36.本发明实施例提供的基于图像识别的公式计算方法,通过降噪、识别、分割、组合等步骤,提高了识别数学公式的准确度。同时,根据对识别用户手写输入或拍照得到的图像
形势的公式进行解析处理,计算得到公式的值,可以极大地提高了学生的学习效率。
附图说明
37.图1为本发明实施例提供的基于图像识别的公式计算方法的流程图。
具体实施方式
38.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
39.本发明实施例提供的一种基于图像识别的公式计算方法,实现于可以连接到网络的智能终端中,用于向用户提供用户所上传的公式的答案。其方法流程图如图1所示,包括如下步骤:
40.步骤101,用户终端根据第一用户输入的获取指令获取待识别图像数据;
41.具体的,用户终端可以理解为具有联网功能的智能设备,例如智能手机。第一用户可以理解为提出问题的一方,例如学生或学生家长。当第一用户提出问题,需要被解答时,首先要在用户终端中登录账户信息。第一用户账户信息包括第一用户的用户id。第一用户的用户id可以理解为第一用户的唯一身份标识。
42.第一用户在登录账户信息之后向用户终端输入获取指令。获取指令可以理解为获取待解答的公式图像的指令。待解答的公式图像可以是通过摄像装置拍摄下来的,也可以为第一用户在用户终端中手动输入的。但无论待解答的公式图像是拍照获取的还是手动输入的,待解答的公式图像都是图片形式的数据。
43.当待解答的公式图像是通过摄像装置拍摄下来的时,用户终端需要向第一用户获取摄像和麦克风等装置的使用权限。在用户终端获取到了摄像和麦克风等装置的使用权限后,用户终端根据第一用户输入的获取指令通过摄像装置获取原始图像数据,并将原始图像数据显示给第一用户。第一用户根据所述原始图像数据输入区域选择指令,用户终端接收到区域选择指令后,根据区域选择指令得到待识别图像数据。其中,原始图像数据可以理解为第一用户通过摄像装置拍照下的原始照片。待识别图像数据可以理解为第一用户对原始照片进行区域截取后原始照片中的待解答的公式图像部分。这一过程可以理解为第一用户选取已拍下的照片中内容的过程,有利于后续对照片内容进行更高效的识别。
44.同样,当待解答的公式图像为第一用户在用户终端中手动输入时,第一用户也可以对手动输入的内容进行选取。选取时,步骤同样为第一用户根据所述原始图像数据输入区域选择指令,用户终端接收到区域选择指令后,根据区域选择指令得到待识别图像数据。
45.步骤102,用户终端对待识别图像数据进行降噪处理,并将降噪后的待识别图像数据发送至服务器;
46.具体的,由于现在的摄像设备获取到的图像多为高分辨率的彩色图像,而高分辨率的彩色图像的数据存储量比较大,不利于后续对图像的处理。因此用户终端在获取到待识别图像数据后,首先对待识别图像数据进行降噪处理。优选的,降噪处理包括调整图像大小和灰度处理。用户终端将待识别图像数据缩放为预设的大小,且通道为单通道灰度图像。
47.然后,用户终端将降噪后的待识别图像数据进行压缩处理,并打包发送至服务器,以便服务器对降噪后的待识别图像数据进行后续处理。并且,降噪后的待识别图像数据携带有第一用户的用户i d,用以服务器区分当前待识别图像数据是由哪个用户发送的。
48.步骤103,服务器根据神经网络模型对待识别图像数据进行识别处理,得到公式文本信息;
49.具体的,神经网络模型(neural network,nn)是一种模拟人类实际神经网络的数据模型,它是由大量的、简单的处理单元广泛地互相连接而形成的复杂网络系统,也可以理解为一个高度复杂的非线性动力学习系统。nn模型具有自学习功能的优越性。例如,实现图像识别时,只需先把许多不同的图片和对应的识别的特征(识别结果)输入nn模型中,nn模型就会通过自学习功能,得出的一系列用于预测输出变量的新特征。
50.优选的,本发明实施例中采用卷积神经网络模型(convolutional neural network,cnn)和循环神经网络模型(recurrent neural network,rnn)识别待识别图像数据。服务器先将接收到的待识别图像数据压缩包进行解压,释放出待识别图像数据,在根据cnn模型和rnn模型识别待识别图像数据上的文字信息,得到待识别图像数据中的公式文本信息。公式文本信息可以理解即为第一用户上传的、待解答的公式的文字信息。
51.步骤104,分割公式文本信息,得到一个或多个字符串数据和运算符号数据;
52.具体的,根据预设的字符分割模型对公式文本信息进行分割,将公式文本信息中的内容分割成一个或多个字符串数据和运算符号数据。
53.其中,字符串数据可以理解为运算对象,包括常数数据、未知数数据、系数数据和指数数据中的一种或多种。常数数据可以理解为阿拉伯数字。未知数数据可以理解为需要计算的未知数。系数数据可以理解为未知数数据前的参数。指数数据可以理解为幂运算中的参数。运算符号数据可以理解为包括加减乘除、各种括号、各种函数的运算符号。
54.在一个具体的例子中,公式文本信息为:则常数数据包括2和3,未知数数据为x,系数数据为5,指数数据为2。
55.步骤105,确定运算符号数据的优先级信息,并确定字符串数据与运算符号数据的位置关系;
56.具体的,一个表达式具有多种运算符号,对运算符号不同的运算顺序可能得出不同结果甚至出现错误运算错误,因此当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。优先级从上到下依次递减,优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。
57.通常,运算符号数据的优先级从高到低依次为:单目运算、乘除运算、加减运算、位运算和逻辑运算。字符串数据与运算符号数据的位置关系包括:左右关系、上下关系、上下角标关系和根式关系。
58.确定运算符号数据的优先级信息,并确定字符串数据与运算符号数据的位置关系的过程可以理解为确定公式中各个运算符号的优先级,以及结合运算符号数据与字符串数据的过程。
59.步骤106,根据运算符号数据的优先级信息和字符串数据与所述运算符号数据的位置关系,对字符串数据和运算符号数据进行分组;
60.具体的,服务器首先确定运算符号数据中的优先级信息最高的第一运算符号数据,并确定与第一运算符号数据相邻的字符串数据,并将相邻的第一运算符号数据和字符串数据组成一个运算单元。
61.然后,服务器将已经组成的运算单元排除后,确定在公式中是否存在下一个运算符号数据中的优先级信息最高的第二运算符号数据。当存在下一个运算符号数据中的优先级信息最高的第二运算符号数据时,确定与第二运算符号数据相邻的字符串数据,并将相邻的第二运算符号数据和字符串数据组成另一个运算单元。并且服务器继续确定是否存在下一个运算符号数据中的优先级信息最高的第二运算符号数据,直至不存在下一个运算符号数据中的优先级信息最高的第二运算符号数据为止。
62.进一步具体的,确定与第一运算符号数据相邻的字符串数据时,可参照互相可见原则确定运算符号数据与字符串数据是否相邻。如果运算符号数据与字符串数据之间不再存在另一个字符串数据则成为运算符号数据与字符串数据互相可见,则确定运算符号数据与字符串数据是相邻的。
63.这一过程可以理解为将运算符号数据与按顺序与字符串数据进行结合,分单元依次计算的过程。
64.在一个具体的例子中,公式文本信息为:(1+1)x=2,运算符号数据的优先级信息最高的运算符号数据为“()”,而与“()”相邻的字符串数据为“1+1”,则“()”与“1+1”组成第一个运算单元。第一个运算单元的运算级别信息最高。然后服务器将“(1+1)”排除,并确定下一个运算符号数据的优先级信息最高的运算符号数据为隐藏运算符
“×”
,而与
“×”
相邻的字符串数据为“x”,则
“×”
与“x”组成第二个运算单元。第二个运算单元的运算级别信息小于第一个运算单元的运算级别信息。服务器将再
“×
x”排除,并确定下一个运算符号数据的优先级信息最高的运算符号数据为运算符“=”,而与“=”相邻的字符串数据为“2”,则“=”与“2”组成第三个运算单元。第三个运算单元的运算级别信息小于第二个运算单元的运算级别信息。最后服务器将“=2”排出后,确定不存在一个运算符号数据的优先级信息最高的运算符号数据了,则本流程结束。
65.步骤107,根据运算级别信息计算运算单元的值,得到公式计算结果数据;
66.具体的,服务器组合得到的每个运算单元都包括运算级别信息。运算级别信息与运算单元生成的先后顺序一致,第一个运算单元的运算级别信息最高,相反,最后一个运算单元的运算级别信息最低。服务器根据运算级别信息逐个计算运算单元的值,得到最终的公式计算结果数据。
67.进一步具体的,服务器首先计算运算级别信息最高的运算单元,得到第一计算值。然后服务器确定是否存在下一个运算级别信息最高的运算单元。当存在下一个运算级别信息最高的运算单元时,根据得到第一计算值和下一个运算级别信息最高的运算单元得到第二计算值,并继续确定是否存在下一个运算级别信息最高的运算单元。当不存在下一个运算级别信息最高的运算单元时,计算结束。
68.在一个具体的例子中,公式文本信息为:(1+1)x=2,第一个运算单元为“(1+1)”,第二个运算单元为
“×
x”,第三个运算单元为“=2”,且于根据第一个运算单元的运算级别信息大于第二个运算单元的运算级别信息,第二运算单元的运算级别信息大于第三个运算单元的运算级别信息,也就是先计算(1+1)得到数值2,再计算2x=2,最终的到x=1。
69.步骤108,将公式计算结果发送至用户终端;
70.具体的,服务器根据第一用户的用户id将公式计算结果发送至第一用户所使用的用户终端,用以用户终端向第一用户显示公式计算结果数据。
71.优选的,在用户终端向第一用户显示公式计算结果数据后,第一用户可以对当前服务器计算得到的公式计算结果数据的满意度进行反馈。用户终端接收第一用户输入的反馈信息。反馈信息包括第一反馈信息和第二反馈信息。其中,第一反馈信息可以理解为第一用户认为服务器计算得到的公式计算结果数据不是待识别图像数据(即拍照下的公式)的值的“不满意”反馈。第二反馈信息则可以理解为第一用户认为服务器计算得到的公式计算结果数据是待识别图像数据(即拍照下的公式)的值的“满意”反馈。
72.用户终端确定反馈信息是否为第一反馈信息。当反馈信息为第一反馈信息时,代表了第一用户认为服务器计算得到的公式计算结果数据不是待识别图像数据的值,也就是服务器计算得到的公式计算结果数据与待识别图像数据不匹配,则用户终端向服务器发送待识别图像数据。服务器将待识别图像数据更新至待解答公式库中。待识别图像数据的公式计算结果数据需要第二用户根据待识别图像数据上传至试题数据库中。与第一用户相对应,第二用户可以理解为回答问题的一方,例如教师。
73.第二用户通过用户终端从待解答公式库中获取未被解答的待识别图像数据,并根据待识别图像数据输入公式计算结果数据,由于第二用户输入的公式计算结果数据携带有所述第一用户的用户id。用户终端将公式计算结果数据发送至服务器中。服务器根据第一用户的用户id将公式计算结果数据发送至第一用户所使用的用户终端中,用以第一用户查看公式计算结果数据。
74.进一步优选的,公式计算结果数据携带有第二用户的用户id。也就是说第一用户可以看到是哪名第二用户对当前的待识别图像数据做出了解答。若第一用户仍然对第二用户所给出的公式计算结果数据有疑问,则可以直接通过第二用户的用户id向第二用户进行提问。
75.本发明实施例提供的基于图像识别的公式计算方法,通过降噪、识别、分割、组合等步骤,提高了识别数学公式的准确度。同时,根据对识别用户手写输入或拍照得到的图像形势的公式进行解析处理,计算得到公式的值,可以极大地提高了学生的学习效率。
76.专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
77.结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、用户终端执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
78.以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1