mathAI基于 Python 的拍照做题程序
mathAI 是一个拍照做题程序。输入一张包含数学计算题的图片,输出识别出的数学计算式以及计算结果。整个程序使用 Python 实现,具体处理流程包括了图像预处理、字符识别、数学公式识别、数学公式语义理解、结果输出。
目前上传的版本只能处理简单的一维加减乘除算术表达式(如果想要识别更加复杂的表达式,可以参考数学公式识别的论文)。可以参考的代码是前面字符识别部分以及整个算法处理框架。
本程序使用 opencv 对输入的图像进行预处理,并将字符裁剪出来再归一化成固定大小的矩阵。对于数学公式的识别,主要是将识别出的独立的字符组织成计算机能够 理解的数学公式(这里的数学公式就是纯字符的可求解的数学计算题)。大概的方法是使用编译原理的算符优先法和递归下降法进行实现。 然后根据属性文法的值传递思想,将数学公式的值计算出来。最后使用 python 的 matlibplot 库把计算过程和答案打印出来。
优点:这是一整套拍照做题的算法框架,同时能够处理多种多样的计算题。OCR 技术如此成熟的今天字符识别已经不算有挑战的东西了。
缺点:字符空间关系判断只用了人类启发式规则,图像预处理不够鲁棒,数学公式的结构识别算法不够完美(可以考虑使用二维文法来做)。 系统还有很大的提升空间。
评论
mathAI基于 Python 的拍照做题程序
mathAI是一个拍照做题程序。输入一张包含数学计算题的图片,输出识别出的数学计算式以及计算结果。整个程序使用Python实现,具体处理流程包括了图像预处理、字符识别、数学公式识别、数学公式语义理解、
mathAI基于 Python 的拍照做题程序
0
基于Python的程序流程控制
我们在前面编写的都是一些简单的语句,本章介绍程序流程控制方面的内容,了解如何控制程序的流程,使得程序具有“判断能力”,能够像人脑一样分析问题。主要内容如下。1 分支语句2 循环语句Python支持两种循环语句:while和for。5.2.1 while语句3 跳转语句跳转语句能够改变程序的执行顺序,
愿天堂没有BUG
0
Newspaper基于 Python 的文章提取程序
Newspaper可以用来提取新闻、文章和内容分析。使用多线程,支持10多种语言等。作者从reque
Newspaper基于 Python 的文章提取程序
0
Newspaper基于 Python 的文章提取程序
Newspaper可以用来提取新闻、文章和内容分析。使用多线程,支持10多种语言等。作者从requests库的简洁与强大得到灵感,使用python开发的可用于提取文章内容的程序。支持10多种语言并且所
Newspaper基于 Python 的文章提取程序
0