大学数计算机学霸曾做出的数学题,中山大学的学霸小哥开源了一个能帮你做高数题的AI...

来自:开源最前线(ID:OpenSourceTop)

链接:https://github.com/Roujack/mathAI

中山大学的一名叫mathAI的硕士学霸小哥在GitHub上开源了一个拍照做题神器火了。

这个程序只需要输入一张手写数学题的图片,这个AI就可以识别出输入的数学公式,最后输出计算结果,就像下面这样:

7267f07c103bd5756332ff7f23014763.png

这样一个好用的项目,立马收获众多网友收藏,评价道:以后辅导宝宝的数学就有救了!

06881fd3a010b235844999fe73874ca8.png

e0d27edffbe8be553f45f3d589d49e99.png

mathAI是如何实现的?

整个程序使用python实现,具体处理流程包括了图像预处理、字符识别、数学公式识别、数学公式语义理解、结果输出:

dd9c1998ac65c04f7ad0421bf95acef1.png

本程序使用opencv对输入的图像进行预处理,并将字符裁剪出来再归一化成固定大小的矩阵。

它在TensorFlow上实现了一个lenet5 的卷积神经网络用来识别数学字符,训练使用CHROME数据集。对于数学公式的识别,主要是将识别出的独立的字符组织成计算机能够 理解的数学公式(这里的数学公式就是纯字符的可求解的数学计算题)。大概的方法是使用编译原理的算符优先法和递归下降法进行实现。 然后根据属性文法的值传递思想,将数学公式的值计算出来。最后使用python的matlibplot库把计算过程和答案打印出来。

图像预处理

图片预处理以OpenCV作为主要工具。预处理的主要目的是把图片中的字符切割出来,同时避免无关变量对字符识别的影响

18cda12c15f227ea576ec5e0dce4a7b3.png

对图片预处理的效果如下图所示:

665a3ab3f3b6f5762cc8ec854575bc33.png

平均字符识别率已经高达96.23%:

411b9e31cb556c9bf6ba2b7987a74f14.png

对 160 道测试题进行测试,系统做对 127 道题目,正确率为79.38%。

c84f8aea0c6d0717d1b0892efa8dd440.png

创建者将这个项目在GitHub上开源了,感兴趣的不要错过了

b76894e5edae41745b9591ee399a1104.png

mathAI已经在GitHub上获得732个Star,196个Fork(GitHub地址:https://github.com/Roujack/mathAI)

●编号3796,输入编号直达本文

●输入m获取文章目录

推荐↓↓↓

开源最前线

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值