百聞不如一試——公式圖片轉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次公式圖片。詳情見:

https://mathpix.com/

下載試了下,識別的效果確實不錯。(注意:非廣告,本人與mathpix無任何關係,僅僅試了下而已!!!)

百聞不如一試,動手嘗試之後纔有發言權。後面有時間會看看image-to-latex的代碼實現,學習學習。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章