見出し画像

【GLM-OCR】Linux mint環境でスクリーンショットOCRを便利に使えるようにした話【テキスト化】


はじめに

パソコン上で作業していると、何かとコピペができない事は多いと思います。明示的にコピペ禁止してる場合なら理解できますが、ソフトウェアのエラー表示やUI部品などをテキストとしてコピーできないのは(AI用プロンプトコピペが日常の現代において)イライラしてしまいます。

そこで、画像をスクリーンショットして、文字内容を読み取るというやり方は、よく利用される使い方です。Windowsでも謹製機能(snipping tool)として利用できます。

Snipping tool(Windows)

Linuxの場合は似た機能がまだない(?)ので、自分で作る必要がありますが、Linuxはシンプルなツールを組み合わせて使う昔からの哲学の下で作られているので、比較的簡単に実現できます。

AIを利用するOCRは新しい話ではありませんが、最近のOCR(deepseek-ocr/GLM-ocr)は凄まじい性能なので、利用しない手はありません。

※ もちろん、より汎用性のあるVLM(Qwen3-VL等)でも同じ事は可能ですが、汎用性が高いゆえに、ハルシネーションが増えたり処理時間が遅かったりします

やりたい事(作ったもの)

部分スクリーンショット機能を使って(flameshot)
テキスト化
コードもフォーマット保ってちゃんと読み
画像表もちゃんと読み(markdown表示)
表計算テーブルにコピペできる

用意するもの

  • Linux mint 22.3(デフォルトのX11版で、Wayland版はダメです)

  • LLM関係

    • ollama

      • curl -fsSL https://ollama.com/install.sh | sh

    • glm-ocr

      • ollama pull glm-ocrとして、glm-ocrをダウンロード

  • その他利用するコマンド(apt getで導入)

    • flameshot:スクリーンショット

    • zenity:昔からLinuxで利用されるGUIでシンプルなテキスト表示

    • xsel:クリップボード制御

GLM-ocrをollamaコマンドで利用する

ollamaライブラリには、簡単な使い方が紹介されています。これをそのまま利用したいと思います。使い方は、image.pngをスクリーンショットの画像ファイルにするだけです。つまり"Text Recognition: ./image.png"がプロンプトです。

ollama-ocrの使い方(引用:https://ollama.com/library/glm-ocr)

Linuxのシェルスクリプトを作る

手順は、

  1. スクリーンショットを撮る(flameshot)

  2. ollama run glm-ocrで解析する

  3. 表示する

だけです。

llm-ocr-fs.sh(オプション処理や準備)

/tmp下だと、flatpakやsnapで読み込めない場合があるで、デバグしやすいようにDocuments/llm-ocrに中間ファイルを作っています。

① flameshotで部分スクリーンショット
② ollama実行
③ 画面表示

表形式の時のみ、テーブル形式での表示が便利なので、「$cmd_markdown」で指定したコマンドで表示します。

筆者はFirefoxのmarkdown表示機能拡張のMarkdown Viewerを良く利用しているので、cmd_markdown=firefoxとしています。

Markdown Viewer
# 使い方
$ llm-ocr-fs.sh 
Usage: /home/usr01/bin/llm-ocr-fs.sh [-t] [-f] [-g]

ショートカットキーを登録する

利用する際にコマンドを入力するのは実用的ではないので、グローバルなショートカットを登録します。

あらかじめ作成したスクリプトは、パスを通した場所に「例:$HOME/bin/llm-ocr-fs.sh」として保存しておきます。

※ パスの設定は、ホームディレクトリ直下の.bashrcに、export PATH="$HOME/bin:$PATH"を追加するのが一般的です

他にも保存場所の候補は、以下があります。

  • ~/.local/bin/

  • /usr/local/bin/

    • 全ユーザーが利用する場合。ただしsudo cpコマンドが必要

実行可能属性を付加します。

chmod +x $HOME/bin/llm-ocr-fs.sh

Linux mintでは、キーボード→ショートカット→カスタムショートカットでOSグローバルなショートカットを設定できます。

システム設定のキーボード
カスタムショートカットの登録
例として「Shift+Super+B」で登録します
# 通常のテキスト画像データを読む場合
llm-ocr-fs.sh -t

表を読み込む場合は、別のショートカットを登録します。コマンドはオプションを変える必要があります

# 表の画像データを読む場合
llm-ocr-fs.sh -g

まとめ

大規模なAIコード生成(バイブコーディング)は、指定していない事を勝手にやってしまったり、セキュリティ・ハルシネーション制御で精神が削られてしまいますが、80行程度の簡単なスクリプトで、やりたい事が明確であれば、すぐに作成でき、生成後の確認も、人間能力で十分判断できるものです。

むしろ、この手の(人間能力と人間脳で対処できる分量の)インタラクティブな使い方が、画像生成でもそうですが、今のAI性能において最も効率良い手法なのかもしれません。

コーディングに限らず、AIに大半・すべてをまかせる自動化やエージェントは、それなりのAGIができるまで(失敗が許されないものに関しては)実用的にならないように思います。問題が発生した場合、分量的に人間力で対処できないのでAIを利用しなければならず、さらに大きな失敗を誘発しがちです。

付録

本記事で作成したスクリプト「llm-ocr-fs.sh(テキスト版)」を支援者様(メンバーシップ)向けに添付します。本記事の画像版と同じものです。参考程度にご利用ください。

ここから先は

0字 / 1ファイル

メンバーシップ ¥ 1,000 /月

3Dモデルや写実的なAI画像の実戦テクニックやノウハウをアップしていきます。

ベーシックプラン

¥1,000 / 月
1ヶ月無料

この記事が気に入ったらチップで応援してみませんか?