一位叫Roger的中国学霸小哥的拍照做题程序mathAI一下子火了,这个AI,堪称数学解题神器。

输入一张包含手写数学题的图片,AI就能识别出输入的数学公式,然后给出计算结果。

不仅加减乘除基本运算,就连高等数学中的微积分都不在话下。

就像下面这样:

还在苦苦纠结高数作业如何求解?还在东奔西走的找学霸借作业?手握mathAI,不就是手握了新时代的解题利器么!

短短几天时间,这个项目在微博就收获了上百次转发。看到画风如此新奇,似乎还能开启无限可能应用,网友们纷纷召唤自己的印象笔记小助手收藏,大呼:牛逼,以后教宝宝数学就是它了。

作者表示,这个项目已经是半开源状态了,目前开源的部分可以识别计算加减乘除简单运算。

如果想要识别更加复杂的表达式,可以参考数学公式识别的论文自己进行扩展。

具体来看看这个解题神器。

实现过程

全能型选手mathAI是怎么实现这个功能的?

作者在Github中介绍说,整个程序使用python实现,具体处理流程包括:图像预处理→字符识别→数学公式识别→数学公式语义理解→结果输出。

整个系统的处理流程如下:

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

随后,国际数学公式识别比赛数据集(CROHME)对通过卷积神经网络进行训练。

此外,还进行结构分析,对字符的空间关系进行判定。比如一个字符的上标和下标,含义自然不一样。

在语义分析阶段,就需要汇集上面得到的信息,判断运算该如何进行了。节点属性传递过程如下图所示:

作者在用160道手写测试题进行了测试:

结果表明,平均字符识别率达到了96.23%,且系统做题的平均正确率达到了79.38%。

上手实操

来,实际上手操作下。

作者给出两种使用模式:网页模式和接口模式。接口模式比较直观,只需打开网页上传图片即可自动给出解题结果。

下面以接口模式为例介绍一下mathAI的安装使用方法。

首先需要安装flask虚拟环境、科学计算库numpy、sympy等,它们都可以用pip安装。

 
pip install flaskpip install virtualenv
pip install virtualenv

将项目的lib.zip文件解压到系统目录的venv文件夹下。(lib.zip可以回复lib获取)

配置置好运行环境后,用PyCharm打开下载好的项目,在载入过程中,PyCharm会自动安装好项目依赖的软件库。

使用命令行进入项目所在目录,并启动虚拟环境:

 
. venv/bin/activate

将FLASK_ENV环境变量设置为启用开发模式:

 
export FLASK_ENV=development

然后使用指令运行flask网站框架:

 
export FLASK_APP=welcome.pyflask run
flask run

打开浏览器,在地址中输入127.0.0.1:5000,即可打开项目网页。在网页中输入一张包含数学公式的图片,就好返回运算结果。

目前GitHub项目页上的代码只支持加减乘除这样的简单运算。

中国少年

做出这个自动求解系统的,还是一位中国少年。

这位GitHub ID为Roger,本名罗文杰,是中山大学数据科学与计算机学院的研一在读硕士生,主要攻读计算机视觉方向。

不仅这个解题神器,在小哥哥的GitHub主页上还能看到其此前参与的很多有趣研究。

比如这个基于帖子的校园互助交友平台LiBond。用户可以在里面发布任务,然后使用虚拟币荔枝进行交易。

罗同学的设想是,有空闲时间的同学可以在此平台上帮助他人,然后结交好朋友,荔枝币还能用来兑换喜欢的物品。

再比如,一个基于C++的无禁手五子棋AI,可以通过openGL实现图形界面。

在这个项目中,罗同学使用了最经典的极大极小博弈树、alpha-beta剪枝、置换表等算法,还附上了核心代码。

确认过眼神,是学霸无疑了。

传送门

最后,附上神器的Github地址:
https://github.com/Roujack/mathAI

里面还附有Demo使用的word、ppt和视频教程~

高数解题神器:拍照上传就出答案,这个中国学霸做的AI厉害了 | Demo相关推荐

  1. 在网页中调用摄像头实现拍照上传 - 高拍仪二次开发

    在网页中调用摄像头实现拍照上传 高拍仪二次开发     在一些公共部门的办事处,比如银行.护照办理中心.税务等,我们可能会注意到办公桌上摆着这样一台机器.办公人员用它拍摄各种证件.文件.表格,有时候还 ...

  2. c++ 二次开发 良田高拍仪_在网页中调用摄像头实现拍照上传 - 高拍仪二次开发...

    来源于  https://blog.csdn.net/weixin_40659738/article/details/78252562 在网页中调用摄像头实现拍照上传 高拍仪二次开发 在一些公共部门的 ...

  3. android com.mylhyl,Android 高仿微信朋友圈拍照上传功能

    模仿微信朋友圈发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy! 1. photopicker的使用 这是一个支持选择多张图片,点击图片放大,图片之间 ...

  4. android 微信高仿,Android 高仿微信朋友圈拍照上传功能

    模仿微信朋友圈发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy! 1. PhotoPicker的使用 这是一个支持选择多张图片,点击图片放大,图片之间 ...

  5. Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传

    仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 如果不知道如何上传 ...

  6. uniapp拍照上传功能

    一.需求 留言板需求,上传留言时,可拍照或者上传图片 二.调用拍照/上传文件功能 点击拍照按钮,调取相机或者文件 <view class="upload-img">&l ...

  7. esp32-cam拍照上传,app inventor 制作安卓app实时显示

    esp32-cam拍照上传,app inventor 制作安卓app实时显示 1.ESP32-cam开发环境配置 2 .程序下载 连线 3. 控制台查看图片 第四.app 开发 1.ESP32-cam ...

  8. uniapp h5拍照上传照片

    前段时间公司要弄一个uniapp的H5拍照上传的功能,看这位博主 常德_威少 的博客完成了(博客地址:使用canvas压缩图片大小_常德_威少的博客-CSDN博客_canvas压缩图片),于是想把我写 ...

  9. 上传图片配置控制大小_esp32-cam拍照上传云平台,http协议传输

    1.ESP32-cam开发环境配置 本例程 是利用arduino IDE开发,关于arduino IDE 的esp32环境配置可参考:环境配置: 点击跳转 安装好esp32 环境,开发板选择esp32 ...

最新文章

  1. 《强化学习周刊》第12期:强化学习应用之组合优化
  2. ThreadLocal的两种用法总结
  3. CodeSmith基础(二)
  4. Redis学习(一)——
  5. win 二进制门安装mysql_MySQL5.7 windows二进制安装
  6. JavaCC报错:ERROR: Second call to constructor of static parser
  7. [导入]给老家新楼的对联
  8. JPEG 及MJPEG开发笔记
  9. python requests session post_requests.session()发送请求 和使用requests直接发送请求的区别...
  10. php curl 和 socket,PHP HTTP操作类 , 支持 Curl 和 Socket
  11. @objc private 定义函数
  12. Wet Shark and Two Subsequences
  13. JLU数据结构第六次上机实验解题报告
  14. 画法几何与工程制图2
  15. 让 Alfred 支持拼音
  16. 笔记本计算机管理没有键盘,如何禁用笔记本键盘输入?怎么关闭笔记本键盘
  17. 邮箱的正确格式是什么,如何发送一封规范的邮件
  18. Nhanes临床数据库挖掘教程1----数据库下载
  19. 通达信最新 行情服务器,通达信数据接收服务器地址及端口号
  20. 运用Python爬取二手房价格与信息的两种常用方法

热门文章

  1. 【题解】打印ASCLL码对应字符
  2. 三年级学生写数学用计算机算,三年级学生数学日记10篇
  3. 计算机科学 素质,武汉科技大学计算机科学与技术学院学生素质综合测评办法...
  4. mac编辑文件提示: Can‘t open file for writing
  5. Linux E212:Can‘t open file for writing
  6. 蓝桥杯真题 13省2-马虎的算式 小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ? 但结果却
  7. !互联网进入付费时代,准备好了吗?
  8. 潍坊中考计算机成绩,2017年潍坊中考考试科目及成绩等级划分
  9. Matlab表白代码(简单)
  10. 自学 android