在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      博客專欄

      EEPW首頁 > 博客 > 拖拽公式圖片、一鍵轉(zhuǎn)換LaTex公式,這款開源公式識(shí)別神器比Mathpix Snip更適合你

      拖拽公式圖片、一鍵轉(zhuǎn)換LaTex公式,這款開源公式識(shí)別神器比Mathpix Snip更適合你

      發(fā)布人:機(jī)器之心 時(shí)間:2021-08-15 來源:工程師 發(fā)布文章

      只需要把公式圖片用鼠標(biāo)拖動(dòng)到工具內(nèi),就能一鍵轉(zhuǎn)成 LaTex 公式。

      寫論文、做研究時(shí),最讓你頭疼的是什么?想必公式編輯會(huì)榜上有名。那么有沒有便捷的方法進(jìn)行公式編輯呢?這里推薦一款神器,它使用 PyTorch Lightning 可將 LaTeX 數(shù)學(xué)方程的圖像映射到 LaTeX 代碼。

      它的效果是這樣的,輸入一張帶公式的圖片,它能轉(zhuǎn)換成 LaTeX 代碼形式:

      1.gif

      而它的名字也是很直接的,就叫做「Image to LaTex Converter」,把產(chǎn)品功能寫在了明面上。

      2.png

      項(xiàng)目地址:https://github.com/kingyiusuen/image-to-latex

      網(wǎng)友表示:我太需要這個(gè)了。

      3.png

      也有網(wǎng)友表示,你也可以使用 CLIP 來實(shí)現(xiàn),因?yàn)檫@個(gè)工具是將完整的方程拆分為單個(gè)字符。

      4.png

      此前,很多人都在用 Mathpix Snip,這個(gè)工具雖然好用,但是只能提供 50 次免費(fèi)轉(zhuǎn)換。之后,一位中國開發(fā)者也創(chuàng)建了一款類似工具「Image2LaTeX」,用戶輸入公式截圖即可以自動(dòng)將其對(duì)應(yīng)的 LaTex 文本轉(zhuǎn)換出來。效果也雖好,不過也只是提供了 1000 次從文檔中提取公式的能力。

      此次項(xiàng)目的創(chuàng)建者為明尼蘇達(dá)大學(xué)雙城分校計(jì)量心理學(xué)博士生 King Yiu Suen,他本科畢業(yè)于香港中文大學(xué),致力于研究評(píng)估心理測(cè)試和教育評(píng)估的統(tǒng)計(jì)學(xué)方法,以及測(cè)試響應(yīng)數(shù)據(jù)的建模。

      該項(xiàng)目為何能夠一鍵轉(zhuǎn)換成 LaTex 公式?這要都得益于背后使用的數(shù)據(jù)集和模型。

      項(xiàng)目背后的數(shù)據(jù)集與模型

      作者也對(duì)打造過程進(jìn)行了詳細(xì)的介紹。2016 年,在 Yuntian Deng 等作者合著的一篇 OCR 主題論文《What You Get Is What You See: A Visual Markup Decompiler》中,他們介紹了叫做「im2latex-100K」的模型(原始版本和預(yù)處理版本),這是一個(gè)由大約 100K LaTeX 數(shù)學(xué)方程圖像組成的數(shù)據(jù)集。

      作者使用該數(shù)據(jù)集訓(xùn)練了一個(gè)模型,使用 ResNet-18 作為具有 2D 位置編碼的編碼器,使用 Transformer 作為具有交叉熵?fù)p失的****。這個(gè)過程類似于《Full Page Handwriting Recognition via Image to Sequence Extraction》Singh et al. (2021) 中描述的方法,不過作者只使用 ResNet up to block 3 來降低計(jì)算成本,并且去掉了行號(hào)編碼,因?yàn)樗贿m用于這個(gè)問題。

      5.png

      Singh et al. (2021)論文中的系統(tǒng)架構(gòu)。

      最初,作者使用預(yù)處理數(shù)據(jù)集來訓(xùn)練模型,因?yàn)轭A(yù)處理圖像被下采樣到原始大小的一半以提高效率,而且分組并填充為相似的大小以方便批處理。但結(jié)果表明,這種嚴(yán)格的預(yù)處理被證明是一個(gè)巨大的限制。盡管該模型可以在測(cè)試集(其預(yù)處理方式與訓(xùn)練集相同)上取得合格的性能,但它并不能很好地泛化到數(shù)據(jù)集之外的圖像,這很可能是因?yàn)槠渌麍D像質(zhì)量、填充和字體大小與數(shù)據(jù)集中的圖像不同。

      使用相同數(shù)據(jù)集嘗試解決相同問題的其他人也發(fā)現(xiàn)了這種現(xiàn)象。下圖這位開發(fā)者試圖從論文中裁剪圖像,圖像與數(shù)據(jù)集中的圖像大小相似。但即使對(duì)于簡單的公式,輸出也會(huì)完全失?。?/p>

      6.png

      為此,作者使用了原始數(shù)據(jù)集并在數(shù)據(jù)處理 pipeline 中包含了圖像增強(qiáng)(例如隨機(jī)縮放、高斯噪聲)以增加樣本的多樣性。此外,作者沒有按大小對(duì)圖像進(jìn)行分組,而是進(jìn)行了均勻采樣并將它們填充為批次中最大圖像的大小,以便模型必須學(xué)習(xí)如何適應(yīng)不同的填充大小。

      作者在使用數(shù)據(jù)集中遇到的其他問題包括:

      一些 LaTex 代碼生成了視覺上相同的輸出,比如 \left(和 \ right),看起來與 (和)) 一樣,因此做了規(guī)范化處理;

      一些 LaTex 代碼用來添加空間,比如 \ vspace{2px}和 \ hspace{0.3mm})。但是,間距對(duì)于人類來說也很難判斷。此外,表述相同間距有很多方法,比如 1 cm = 10 mm。最后,作者比希望模型在空白圖像上生成代碼,因此刪除了這些空白圖像。

      不過,該項(xiàng)目也有一些可能需要改進(jìn)的地方:

      更好地?cái)?shù)據(jù)清理(比如刪除間距命令)

      盡可能多地訓(xùn)練模型(由于時(shí)間原因,只訓(xùn)練了 15 個(gè) epoch 的模型,但是驗(yàn)證損失依然下降)

      使用集束搜索(只實(shí)現(xiàn)了貪婪搜索)

      使用更大的模型(比如 ResNet-34 而不是 ResNet-18)

      進(jìn)行一些超參數(shù)調(diào)優(yōu)

      作者使用的是 Google Colab,計(jì)算資源有限,因此并沒有做到以上這些。

      項(xiàng)目的使用與部署

      在項(xiàng)目設(shè)置方面:首先你需要將該項(xiàng)目克隆到計(jì)算機(jī),并將命令行放置到庫文件夾中:

      git clone https://github.com/kingyiusuen/image-to-latex.git

      cd image-to-latex

      然后,創(chuàng)建一個(gè)名為 venv 的虛擬環(huán)境并安裝所需的軟件包:

      make venv

      make install-dev

      在數(shù)據(jù)預(yù)處理方面:執(zhí)行如下命令下載 im2latex-100k 數(shù)據(jù)集并進(jìn)行所有預(yù)處理任務(wù)(圖像裁剪可能需要一個(gè)小時(shí)):

      python scripts/prepare_data.py

      在模型訓(xùn)練方面:啟動(dòng)訓(xùn)練 session 的命令如下:

      python scripts/run_experiment.py trainer.gpus=1 data.batch_size=32

      你可以在 conf/config.yaml 中修改配置,也可以在命令行中修改。

      在實(shí)驗(yàn)跟蹤方面:最佳模型 checkpoint 將自動(dòng)上傳到 Weights & Biases (W&B)(在訓(xùn)練開始前你需要先進(jìn)行注冊(cè)或登錄 W&B )。如下是從 W&B 下載訓(xùn)練模型 checkpoint 的示例命令:

      python scripts/download_checkpoint.py RUN_PATH

      將 RUN_PATH 替換為運(yùn)行的路徑,運(yùn)行路徑格式為 < entity>/<project>/<run_id>。如果你想查找特定實(shí)驗(yàn)運(yùn)行的運(yùn)行路徑,請(qǐng)轉(zhuǎn)到 dashboard 中的 Overview 選項(xiàng)卡進(jìn)行查看。

      例如,你可以使用如下命令下載最佳運(yùn)行:

      python scripts/download_checkpoint.py kingyiusuen/image-to-latex/1w1abmg1

      checkpoint 將被下載到項(xiàng)目目錄下一個(gè)名為 artifacts 的文件夾中。

      測(cè)試和持續(xù)集成方面:以下工具可用于 lint 代碼庫:

      isort:對(duì) Python 腳本中的 import 語句進(jìn)行排序和格式化;

      black:遵循 PEP8 的代碼格式化程序;

      flake8:在 Python 腳本中報(bào)告風(fēng)格問題的代碼檢查器;

      mypy:在 Python 腳本中執(zhí)行靜態(tài)類型檢查。

      使用下面的命令來運(yùn)行所有的檢查和格式化程序:

      make lint

      在部署方面:訓(xùn)練好的模型通過創(chuàng)建的 API 進(jìn)行預(yù)測(cè),啟動(dòng)和運(yùn)行服務(wù)器命令如下:

      make api

      要運(yùn)行 Streamlit 應(yīng)用程序,請(qǐng)使用以下命令創(chuàng)建一個(gè)新的終端窗口:

      make streamlit

      應(yīng)用程序應(yīng)該在瀏覽器中自動(dòng)打開,你也可通過 http://localhost:8501 / 進(jìn)行查看。想讓這個(gè)應(yīng)用程序運(yùn)行,你還需要下載實(shí)驗(yàn)運(yùn)行的工件,啟動(dòng)并運(yùn)行 API。

      為 API 創(chuàng)建一個(gè) Docker 映像:

      make docker

      *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

      互感器相關(guān)文章:互感器原理


      cvt相關(guān)文章:cvt原理


      斷路器相關(guān)文章:斷路器原理


      高壓真空斷路器相關(guān)文章:高壓真空斷路器原理
      絕緣電阻測(cè)試儀相關(guān)文章:絕緣電阻測(cè)試儀原理
      漏電斷路器相關(guān)文章:漏電斷路器原理


      關(guān)鍵詞: AI

      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉