开源!mathAI 手写拍照自动能解高数题,还不快试试?

简介: 开源!mathAI 手写拍照自动能解高数题,还不快试试?

深度好玩!文章开始红色石头先在草稿纸上写一道高数微积分题目给大家看看如何求解:


image.png

怎么算呢?趁着高数知识还没忘完,赶紧拿起纸演算起来。大部分人是这么做的。但是如果现在跟你说,可以用 AI 来做,你信吗?


现在就有这样一个 AI 程序,你只要轻松上传上面这张手写算术题,程序就能帮你自动分析,写出解题步骤和答案!你信吗?就像下面一样:


image.png

Amazing!有没有!今天就给大家介绍这个有趣的 mathAI 项目。它是一个拍照做题程序。输入一张包含数学计算题的图片,就会自动输出识别出的数学计算式以及计算结果。


项目介绍


该项目名为:mathAI,是一个自动计算手写公式的程序。作者是一名中山大学的学霸硕士小哥 Roujack,他的研究方向就是计算机视觉。


image.png


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

image.png

1. 预处理


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


预处理主要包括:灰度化、二值化、高斯滤波、字符切割与细化。

image.png

image.png

2. 字符识别


预处理之后,下一步就是对字符进行识别。选择的模型是卷积神经网络 LeNet5,因为不需要提取字符特征值,而且图像识别精确度高。


image.png

训练网络选用的数据集是国际数学公式识别比赛数据集(CROHME)。CROHME 数据集具有海量字符集图片,而且图片类型与实际输入非常相似。每种字符有 400 张图片,其中 60% 的图片用于训练,40% 的图片用于测试。

image.png

接下来就是结构分析和语义分析。


总的来说,对于数学公式的识别,主要是将识别出的独立的字符组织成计算机能够理解的数学公式(这里的数学公式就是纯字符的可求解的数学计算题)。大概的方法是使用编译原理的算符优先法和递归下降法进行实现。 然后根据属性文法的值传递思想,将数学公式的值计算出来。最后使用 Python 的 Matplotlib 库把计算过程和答案打印出来。


实验结果


模型训练完成之后,作者验证了字符识别的准确率:


image.png

然后,作者对 160 道测试题进行测试,系统做对 127 道题目,正确率为 79.38%。可以说相当不错了!

image.png

项目开源


真正令人激动是作者已将这个项目的源码发布在了 GitHub 上,供大家查看。开源地址为:


https://github.com/Roujack/mathAI


GitHub 上公开了系统代码。


image.png

其实,这是一个半开源的项目,目前上传的版本只能处理较简单的一维算术表达式(如果想要识别更加复杂的表达式,可以参考数学公式识别的论文)。可以参考的代码是前面字符识别部分以及整个算法处理框架。

image.pngimage.png

运行程序


要运行这个系统分为两种,一种是网页模式,一种是接口模式。


1. 网页模式


在项目的网页上,输入图片,即可获得处理结果。

image.png

2. 接口模式


项目有一个 solver 的 Python package。里面的 solve 方法封装了整个系统。其功能是输入一张图片路径,将输出计算题识别过程和计算结果。


image.png

作者还专门录制了一个视频,讲解如何在网页模式上运行程序并验证正确率。视频放在下面,感兴趣的可以看一下。


image.png

优点与缺点


优点:这是一整套拍照做题的算法框架,同时能够处理多种多样的计算题,目前市面上还没有看到实现。OCR 技术如此成熟的今天字符识别已经不算有挑战的东西了。


缺点:字符空间关系判断只用了人类启发式规则,图像预处理不够鲁棒,数学公式的结构识别算法不够完美(可以考虑使用二维文法来做)。系统还有很大的提升空间。


总的来说,这个程序相对比较简单,能够实现一般的手写图片微积分高数题,较复杂的还不能实现。但是该项目确实是一个有意思的尝试,相信作者也会不断优化。有兴趣的可以看一下,试一试你手写的算术题,看看准确率如何。


相关文章
|
传感器 机器学习/深度学习 算法
无人机视角yolo多模态、模型剪枝、国产AI芯片部署
无人机视角yolo多模态、模型剪枝、国产AI芯片部署
无人机视角yolo多模态、模型剪枝、国产AI芯片部署
|
弹性计算 负载均衡 容灾
阿里云服务器地域和可用区之间是什么关系?地域和可用区的区别与选择参考
不管是选择阿里云的国内云服务器还是国外云服务器,都有多个地域及可用区选择,目前国内地域有北京、青岛、甚至等13个地域可选,国外地域有韩国、新加坡、悉尼等15个地域可选,每个地域又有多个可用区可选,那么阿里云服务器地域和可用区之间是什么关系?作为用户的我们又改如何选择呢?本文介绍阿里云地域和可用区的概念、选择指导、两者的关系以及阿里云支持的地域和可用区列表。
1256 0
阿里云服务器地域和可用区之间是什么关系?地域和可用区的区别与选择参考
|
缓存 监控 负载均衡
SpringCloud极简入门-Eureka集群&Eureka调优
当微服务数量达到上百之数,一个EurekaServer所需要承担的压力会比较大,加上单节点故障问题可能会导致整个微服务不可被访问,由于EurekaServer在微服务中举足轻重,我们需要考虑对EurekaServer做高可用集群。
710 0
|
存储 机器学习/深度学习 人工智能
数据与生命的对话:当大数据遇上生物信息学
数据与生命的对话:当大数据遇上生物信息学
312 17
|
7月前
|
存储 运维 监控
阿里云加持,《泡姆泡姆》让全球玩家畅享零延迟冒险
通过 SLS、ARMS 与 CMS 的协同运作,《泡姆泡姆》实现了从基础设施到应用逻辑再到用户行为的全栈洞察。这一技术体系不仅支撑了游戏的全球化运营,更为实时互动娱乐场景提供了可复用的技术范式——通过云原生架构的弹性能力、全栈可观测的智能诊断与热更新的持续交付,让技术真正服务于“玩家体验零损耗”的终极目标。
662 87
|
Ubuntu 开发工具 Python
Ubuntu apt-get和pip国内源更换
Ubuntu apt-get和pip源更换 更新数据源为国内,是为了加速安装包的增加速度。 更换apt-get数据源 输入:sudo -s切换为root超级管理员; 执行命令:vim /etc/apt/sources.
14860 0
|
机器学习/深度学习 存储 人工智能
AI职场突围战:夸克应用+生成式人工智能认证,驱动“打工人”核心竞争力!
在AI浪潮推动下,生成式人工智能(GAI)成为职场必备工具。文中对比了夸克、豆包、DeepSeek和元宝四大AI应用,夸克以“超级入口”定位脱颖而出。同时,GAI认证为职场人士提供系统学习平台,与夸克结合助力职业发展。文章还探讨了职场人士如何通过加强学习、关注技术趋势及培养合规意识,在AI时代把握机遇。
|
10月前
|
机器学习/深度学习 存储 Java
Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用(190)
本文探讨了Java大数据与机器学习模型在游戏用户行为分析及游戏平衡优化中的应用。通过数据采集、预处理与聚类分析,开发者可深入洞察玩家行为特征,构建个性化运营策略。同时,利用回归模型优化游戏数值与付费机制,提升游戏公平性与用户体验。
|
人工智能 自然语言处理 算法
DeepSeek大模型在客服系统中的应用场景解析
在数字化浪潮下,客户服务领域正经历深刻变革,AI技术成为提升服务效能与体验的关键。DeepSeek大模型凭借自然语言处理、语音交互及多模态技术,显著优化客服流程,提升用户满意度。它通过智能问答、多轮对话引导、多模态语音客服和情绪监测等功能,革新服务模式,实现高效应答与精准分析,推动人机协作,为企业和客户创造更大价值。
1053 5
|
机器学习/深度学习 数据采集 人工智能
人工智能在变更管理中的应用:变革的智能化之路
人工智能在变更管理中的应用:变革的智能化之路
692 13

热门文章

最新文章