手書きの数式を画像認識してLaTeXに変換する (ChatGPT)

手書きの数式を LaTeX コマンドで打ち直す作業、今まで手作業でやってましたが ChatGPT の画像読み込み機能を使って半自動でできるようになりました。

そもそも場合によっては数式を LaTeX で直打ちするより、手書きしてから画像認識で LaTeX に変換するワークフローの方が速いかもしれません。

手書きの数式を LaTeX に変換する手順

※2023/11/23 時点で、画像認識に対応しているのは ChatGPT 4 (有料ユーザーのみ使用可能) です。

 

ChatGPTで数式画像認識 → LaTeXへ

まずは手書きの数式を用意します。

※ iPad のノートアプリ GoodNotes 5 に書いた数式をスクショしたものです。

 

結構雑に書いてしまいましたが、特に手直しせず画像認識させてみます。

ChatGPT のサイトにアクセスします。

 

使用モデルが ChatGPT 4 であることを確認し (ChatGPT 3.5 は不可)、赤丸で囲ったクリップアイコンのボタンを押して先程の手書き数式画像を添付します。

ChatGPTで手書きの数式を画像認識してLaTeXに変換する方法:数式画像の読み込み

 

次にメッセージ (プロンプト) 入力欄に、次のように入力します。

画像中の数式を認識して、LaTeXに変換してください。

ChatGPTで手書きの数式を画像認識してLaTeXに変換する方法:プロンプトの入力

 

送信すると、添付した手書きの数式を画像認識して、LaTeX コマンドに変換してくれます。

ChatGPTで手書きの数式を画像認識してLaTeXに変換する方法:数式の認識結果

 

「Copy code」ボタンから認識結果の LaTeX コマンドをコピーできます。

 

認識結果の確認と修正

オンライン数式エディタを使えば、ChatGPT が提示した認識結果の LaTeX コマンドをすぐ確認&編集できます。

リンク:オンライン数式エディタ HostMath

数式エディタの使い方は以下のページに詳しく記載したのでご参照ください。

使い方

インストール不要で数式をWebサイト上で作成・編集できる数式エディタ HostMath について、基本的な使い方や便利機能を説明します。 オンライン数式エディタ HostMath の特徴 HostMathはこちら。 [blogca[…]

オンラインLaTeX数式エディタ「HostMath」

 

エディタにコピーした LaTeX コマンドを入力すると、リアルタイムで数式が描画されます。

ChatGPTが認識した数式LaTeXコマンドをオンライン数式エディタHostMathで確認する

 

元の手書きの数式と認識結果を比較しました。

赤線が認識誤り、青線が項の順番が変わってしまった箇所(式としては等しい)です。

ChatGPTで手書きの数式を画像認識した結果:認識の正誤比較

  • 勝手に項の順序を変える
  • 勝手に式の一部を因数分解する
  • 指数の読み取り間違い
  • 行の後半の項をまるまるすっ飛ばす

といった誤認識がありましたが、全部手打ちするよりはずっと楽に LaTeX コマンドに変換できます。

手書きの数式と照らし合わせながら数式エディタ上で LaTeX コマンドを部分修正すればOKです。

 

修正後の結果はこちら。

\begin{align*} &a^8 + a^5 + a^6b^2 + a^4b^4 + a^2b^6 + b^5 + b^8 \\ &= (a^8 + a^6b^2 + a^4b^4 + a^2b^6 + b^8) + (a^5 + b^5) \\ &= \{ (a^4 + a^2b^2 + b^4)^2 - (a^3b + ab^3)^2 \} + (a^5 + b^5) \\ &= (a^4 + a^3b + a^2b^2 + ab^3 + b^4)(a^4 - a^3b + a^2b^2 - ab^3 + b^4)+(a+b)(a^4 - a^3b + a^2b^2 - ab^3 + b^4) \\ &= (a^4 + a + a^3b + a^2b^2 + ab^3 + b + b^4)(a^4 - a^3b + a^2b^2 - ab^3 + b^4) \end{align*}

 

手書きの数式ノート・メモのデジタル化が捗りそうです。

 

一緒に使うと便利な LaTeX 系ツール

ChatGPTやネット上の数式を1クリックでコピーできるツール

ChatGPTに数学系の質問を投げかけると、回答に数式を含めて表示してくれることがあります。

 

画像の例では一緒にLaTeXコマンドも提示してくれていますが、わざわざお願いしない限り LaTeX コマンドを出してくれないことが多いです。

この数式の LaTeX コマンドを直接簡単にコピーできるツール(ブックマークレット)を制作したので、使ってみてください。

1クリックで選択範囲内の数式をコピー

[usemath] Webサイトで数式を表示する方法として最近、MathJaxやKaTeXといった数式表示JavaScriptライブラリがよく利用されるようになりました。 \begin{align*} x = \frac{-b\[…]

 

LaTeX コマンドをコピーしたい数式を覆うように選択し、ブックマークバーに設置した「数式コピー」ボタンを押すだけでその数式の LaTeX コードがクリップボードにコピーされます。

ChatGPTで表示された数式のLaTeXコマンドは、数式コピーツールでコピーできる

 

ちなみに ChatGPT に限らず、Web上で表示されている数式の多くに対応しているのでツールを入れておいて損はないと思います。(KaTeX / MathJax で描画された数式に対応)

 

選択した数式を1クリックでオンライン数式エディタに移せるツール

上記ツールを改造したもので、先ほど紹介したオンライン数式エディタに1クリックで数式を転記できるツールです。

数式編集を多用するならこちらも一緒にブックマークバーに登録しておくと作業が楽になります。

1クリックで選択数式をエディタにコピー

[usemath] Webサイトに掲載されている数式をコピーしてすぐにサクッと編集できれば便利! と思ったのでツール(ブックマークレット)を作りました。 (↓最近よく見かけるこんな感じのWeb数式) $$x = \frac[…]

 

数式検索エンジン Approach Zero

数式に特化した検索エンジン Approach Zero は、検索ボックスに LaTeX コードをコピペすればその数式を一発で入力してすぐ検索できます。

Google で数式を検索するよりずっと便利なので、ぜひ使ってみてください。

使い方は以下のページに詳しく記載しました。

数式エンジン

[usemath] 本記事では、インターネット上の数式を検索することができるサイト 「Approach Zero」の使い方について説明します。 例えば次のような数式を検索するとき、Googleなどの通常の検索サイトでは検索に苦労[…]

 

今回読み込んだ数式について

Twitter で因数分解クイズとして出題した式でした。

記事化前の最新情報はこちらで先にツイートしています。サイト更新告知もこちら。