Latexの数式のOCRを無料で行えるツール

論文のメモをMarkdownでとるときなど,数式の画像をlatexの書式に変換したいことはかなり頻繁にあると思います.最近はMathpixという便利なツールも出てきましたが,こちらは無料版では変換できる枚数に制限があり,学生にはちょっと手を出しづらいという人もいるでしょう.

今回はなかなかの精度でそれと同様なことができるOSSを見つけたのでそれを紹介したいと思います.

概要

今回紹介するのは,LaTeX-OCRという機械学習ベースのソフトウェアです.Pythonのモジュールという形で公開しており,以下のようにpipを使ってインストールができます.

pip install pix2tex[gui]

CLIとGUIを用意しておりそれぞれ以下のように使えます.

CLI

画像ファイルやクリップボードの画像をLatex形式に変換できます.

  1. pix2texを実行し,プロンプトを表示させます.
  2. 画像ファイルを変換したい場合はそのパスを入力,クリップボードの画像を変換したい場合は何も入力せずに確定します.
  3. Latexの書式で出力が表示されます.

GUI

スニッピングツールを使ってGUIで画面上の数式を変換できます.

  1. latexocrを実行し,ウィンドウを表示させます.
  2. Snipボタンを押して,スニッピングツールを起動させます.ここで,変換させたい画像を矩形範囲内に収めて指定します.
  3. しばらくすると変換されたLatexのコードとそのレンダリング結果が表示されます.

使用例

例えば,SN-GANの数式3 (下図)をこのツールで変換してみます.

手打ちでやろうと思うと億劫になりそうですが,結果は以下のようになっております.xのベクトル表記がうまくいっていないのを除けばほぼ完璧な変換をしてくれます.

なお,満足な変換ができない場合,下のTemperatureを調整してからRetryを押すと,うまく変換できる場合もあります.

注意点

alignなどで数行にわたる数式などの複雑な数式,手書きの数式などはまだ対応していないようです.しかし,記事執筆現在も頻繁に更新がなされているソフトウェアなので,今後のアップデートでその辺りが修正されることは期待できます.

感想

OSSでここまで高精度でできるのはかなり素晴らしいことだと思います.Mathpixのほうは数回しか使ったことがないのであまり比較はできていないのですが,簡単で長い数式ならこれでも十分ではないかと思っています.