- 2021-04-19 22:30:55
在翻译amber手册的时候, 遇到一些数学公式, 虽然不如gromacs手册中的多, 但人工输入还是麻烦, 也容易出错. 查看了一下已有的解决方案, 推荐最多的是Mathpix这个工具, 可以自动识别数学公式, 并转换为LaTex格式, 而且准确率挺高. 这个软件刚开始是免费的, 可惜很快就收费了, 而且也不大便宜. 目前的免费版本每个月只能使用50次(教育邮箱好像是100次), 有点不够用. 当然你可以申请一系列账号, 轮换着用, 虽然有点陋鄙. 一个较好的解决方法是使用它提供的API, 每个月限额1000次, 大致够用了, 但这就需要借助其他软件了.
这里也顺便总结下看到的资料吧. 首先, 识别数学公式属于OCR(光学字符识别)领域的问题. 对于一般的文字识别, 很多软件都支持. 最简单的应该就是利用几乎人人都有的QQ截图了, 按下Ctrl+Alt+A
, 截图工具上就有屏幕识图功能, 可以直接识别文字, 效果也还不错. 但这个工具不支持识别数学公式. 我猜测是因为需要这个功能的人太少, 腾讯不怎么关心.
与一般的文字识别相比, 识别数学公式更困难些, 因为数学公式的排布是二维的, 且涉及多种符号, 大小, 字体, 所以要单独拿出来处理. 以前所用的识别方法都比较传统, 效果不怎么好, 目前所用的大多是基于机器学习或深度学习的方法, 训练好以后效果好一些.
如果你不想使用Mathpix, 那可以看看我找到的下面这些.
- Image2LaTeX-Mathpix: java软件. 如果你申请了Mathpix API账户, 用它就好了, 每月免费1000次, 基本够用了. 当然申请时需要用信用卡. 在国内的话, 还可能有网络问题.
- 天若OCR文字识别: 使用和QQ截图一样简单, 识别引擎用的百度等, 效果也不错. 软件最新版是收费的, 但网上流传有免费的旧版本, 而且也有源码, 可以修改代码调用Mathpix的API识别数学公式.
- 妙手OCR 2.95: 支持微软, 学而思的数学公式识别引擎, 都是免费的, 也有公式预览功能. 根据我简单试用, 学而思引擎的准确率更高一些, 虽然网上有人说微软的更好. 我觉得这是替代Mathpix的首选.
- 微软数学: 提供的公式识别是bing API, 免费的, 效果还行, 虽然没有Mathpix准确率高. 使用方法可用参考【Python】公式识别ocr小工具. 本来想自己基于这种方法实现一个小工具, 后来还是算了, 因为已有的工具已经够多了, 除非我想要学习下如果使用nodejs开发桌面软件.
- MathdDeck: 不单单是公式识别, 重点是其他功能.
- MathOCR: 一个java的原型程序, 毕业论文用的, 也不再更新了, 但可用于学习识别的基本知识.
- PandaOCR: 多功能OCR图文识别+翻译+朗读+弹窗+公式+表格+图床+搜图+二维码. 功能非常多, 简直眼花缭乱, 集成了几乎所用的可用引擎.
- 其他的, 也还有不少, 但是都不大值得提了.
此外, 几乎每家互联网公司都有自己的数学公式识别引擎, 如
- Mathpix公式_API版
- 微软公式_演示版
- 阿里公式_演示版
- 百度公式_API版
- 讯飞公式_API版
- 网校公式_演示版
- 腾讯云公式_API版
- 腾讯优图公式_演示版
- 腾讯优图试题_演示版
其中讯飞摘得ICFHR 2020数学公式识别挑战赛冠军, 就是不知识别率是不是真的能够超过Mathpix.
最后, 如果数学公式识别已经不成问题, 接下来可以转战化学结构式了: