百闻不如一试——公式图片转Latex代码
写博客时,数学公式的编辑比较占用时间,在上一篇中详细介绍了如何在Markdown
中编辑数学符号与公式。
https://www.cnblogs.com/bytesfly/p/markdown-formula.html
当然,有时候我们仅仅是想把现成的公式搬到markdown
中来编辑,此时如果有工具能把公式截图直接解析成Latex
代码就方便了。
刚好这几天看到好几个微信公众号都在推送image-to-latex
这个开源项目:
https://github.com/kingyiusuen/image-to-latex
Convert images of LaTex math equations into LaTex code.
该项目当前(2021年09月02日)star人数为631,Fork为81:
最近正好也是在了解机器学习、深度学习相关的东西,于是打算上手感受一下转换效果。
百闻不如一试
其实image-to-latex
这个项目的README
写得算是比较清楚了,介绍了项目的来龙去脉、可以改进的地方、如何使用等等。
快速开始
下面我把自己第一次尝试的过程简单记录如下:
- 克隆项目
git clone --depth=1 https://github.com/kingyiusuen/image-to-latex.git
cd image-to-latex
多啰嗦一句:
--depth: 用来指定克隆的深度,1表示克隆最近的一次commit。这种方法克隆是为了减小项目体积的,加快克隆速度,对于那种庞大且活跃的开源项目非常有效。
- 准备Python环境
该项目依赖Python环境,由于我用的是conda
来管理虚拟环境的,不是用venv
,所以这里的步骤可能与README
上的有一点点差异。
此时应该是在项目目录下,即image-to-latex
目录,该目录下有requirements.txt
文件。
# 创建新的python3.6环境
conda create --name latex python=3.6
# 激活环境
conda activate latex
# 安装依赖
pip install -r requirements.txt
关于Python环境的搭建,可以参考我之前的博客:
https://www.cnblogs.com/bytesfly/p/python-environment.html
- 下载模型
For example, you can use the following command to download my best run.
到了这步本该是模型训练(Model Training
),我这里仅想体验一下,可以直接下载别人已经训练好的模型。
python scripts/download_checkpoint.py kingyiusuen/image-to-latex/1w1abmg1
此时shell显示如下:
(latex) ➜ python scripts/download_checkpoint.py kingyiusuen/image-to-latex/1w1abmg1
wandb: (1) Create a W&B account
wandb: (2) Use an existing W&B account
wandb: (3) Don't visualize my results
wandb: Enter your choice: 3
wandb: You chose 'Don't visualize my results'
Downloading model checkpoint...
Model checkpoint downloaded to image-to-latex/artifacts/model.pt.
下载需要稍微等等,模型有将近2个G的大小。
- 启动服务
(1) 启动后端服务,执行命令make api
An API is created to make predictions using the trained model.
看下项目的Makefile
文件,其实make api
就是调用了下面的启动命令:
uvicorn api.app:app --host 0.0.0.0 --port 8000 --reload --reload-dir image-to-latex --reload-dir api
浏览器打开 http://localhost:8000/docs ,看到接口文档如下:
(2) 启动前端界面,执行命令make streamlit
同样,看下项目的Makefile
文件,其实make streamlit
调用了下面的启动命令:
streamlit run streamlit/app.py
浏览器打开 http://localhost:8501/ ,就是上传图片的界面:
至此,image-to-latex
就成功启动了,下面就期待转换公式的效果了!
上手体验
下面我作为一个小白用户,体验一下image-to-latex
的转换效果。
我从之前的博客中截图了10个公式,使用下来,感觉当前的效果并非太理想。注意,个别解析出来仅是缺少了右}
,这种也可以算解析出来了。如下:
测试来看,貌似对多行公式的解析不太好。当然了,有这样的免费工具来辅助我们把公式图片转成Latex
代码已经让人挺惊喜了。相信以后随着更多的人参与算法的优化、模型的改善,解析的效果会更好。
写在后面
I found a pretty established tool called Mathpix Snip that converts handwritten formulas into LaTex code.
image-to-latex
这个项目的README
里也提到了mathpix
这个更加成熟的工具。免费版每月能识别50次公式图片。详情见:
下载试了下,识别的效果确实不错。(注意:非广告,本人与mathpix
无任何关系,仅仅试了下而已!!!)
百闻不如一试,动手尝试之后才有发言权。后面有时间会看看image-to-latex
的代码实现,学习学习。
百闻不如一试——公式图片转Latex代码的更多相关文章
- 对转换公式为LaTeX代码要注意什么
mathtype是一款专业的数学公式编辑工具,理科生专用的工具.mathtype公式编辑器能够帮助用户在各种文档中插入复杂的数学公式和符号.可以轻松的将数学公式转换成LaTex代码,但是转换LaTeX ...
- 将公式直接转化为Latex代码的神器-snip
经常用latex写论文,免不了要敲各种公式,今天和大家分享一个神器-snip,它可以直接将公式转化为代码,不需要我们自己编写公式代码,方便快捷,准确率极高.该神器的下载地址为:https://math ...
- 由Excel表格导出Latex代码
Latex提供了不少绘制表格的宏包(参见:http://tug.org/pracjourn/2007-1/mori/),但在latex里画表并不直观,特别是在表格比较大的时候,有时候也需要先用Exce ...
- 使用Vim写LaTeX代码(Vim+Vimtex+Skim)
最近在写博客的时候发现对数学公式的支持并不好,于是就想寻找一个解决方案.我本身是一个爱折腾的人,有时尽管有现成的解决方案我有事也不愿意去用.于是多方查找资料,想寻求一个自定义的解决方案,最终把自己的目 ...
- jQuery旋转木马仿3D效果的图片切换特效代码
用jQuery实现的一款仿3D效果的图片切换特效代码,类似旋转木马一样,幻灯图片以三维视觉上下滑动切换,效果很酷炫,兼容IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜 ...
- 用php实现百度网盘图片直链的代码分享
第一种代码:代码量较少通过正则表达式获取百度网盘的文件真实地址,来实现直链的效果 将下面的代码保存为downbd.php 复制代码代码如下: <?php $canshu=$_SERVER[&qu ...
- php文字水印和php图片水印实现代码
本文章向码农们介绍php文字水印和php图片水印实现代码,需要的码农可以参考一下. php 文字水印 文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件. 实现 ...
- jQuery轻量级京东图片轮播代码等
http://sc.chinaz.com/jiaoben/jiaodiantu.html jQuery轻量级京东图片轮播代码 查看全图点击预览 顶(17)踩(4)报错评论(0)下载地址 更新时间: ...
- jquery图片无缝滚动代码左右 上下无缝滚动图片
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- 第三篇 -- Go语言其他类型转String方法
1. int转string // 法1: int转string num_int := 10 num_str_2 := fmt.Sprintf("%b", num_int) fmt. ...
- C++第三十五篇 -- 写第一个驱动开发程序
VS2017+WDK+VMware12+Win10环境配置完毕,接下来写第一个驱动程序. 1.新建一个KMDF的程序. 2.配置项目属性. 3.编译项目.一般这里应该成功,我一台电脑成功了,另一台电脑 ...
- videojs文档翻译Guides-components
components Components Video.js播放器的架构围绕组件. Player类和所有表示播放器控件和其他UI元素的类都继承自Component类. 这种架构使得可以轻松地以反映DO ...
- 🔥 LeetCode 热题 HOT 100(61-70)
207. 课程表 思路:根据题意可知:当课程之间不存在 环状 循环依赖时,便能完成所有课程的学习,反之则不能.因此可以将问题转换成: 判断有向图中是否存在环.使用 拓扑排序法 : 构建 入度表:记录每 ...
- wdlinux一键安装包
下载安装(ssh登录服务器,执行如下操作即可,需要用到root用户权限来安装) v3版本已经发布,更多可看论坛 wdCP v3版本讨论区 更多安装请看 http://www.wdlinux.cn/bb ...
- vue中this.$router.push()路由传值和获取的两种常见方法
1.路由传值 this.$router.push() (1) 路由跳转使用router.push()方法,这个方法会向history栈添加一个新纪录,所以,当用户点击浏览器后退按钮时,会回到之前的 ...
- 8.8考试总结(NOIP模拟33)[Hunter·Defence·Connect]
无法逃避的是自我,而无法挽回的是过去. 前言 还算可以,不过 T1 少 \(\bmod\) 了一下挂了 25pts,T2 没看清题面挂了 27pts. 下回注意吧.. T1 Hunter 解题思路 感 ...
- i春秋CTF-web-upload
------------恢复内容开始------------ 记一道文件上传的题目. 题目告诉我们随意上传,第一想到的当然给他上传一个木马文件然后蚁剑拿shell,上传之后可以在源码里查看我们上传的文 ...
- Burp - Turbo Intruder
Turbo Intruder 基础使用总结,把Python代码都记录下,要是有啥骚姿势,求各位师傅交流. 个人感觉超强的一款Burp插件,反正超快 Link: https://github.com/P ...
- 面试利器!字节跳动2021年Android程序员面试指导小册已开源
整份手册分为两个部分,分别是:Java部分.Android部分.数据结构与算法篇.字节跳动2020年全年面试题总结篇! 每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图 ...