【GLM-OCR】Linux mint環境でスクリーンショットOCRを便利に使えるようにした話【テキスト化】
はじめに
パソコン上で作業していると、何かとコピペができない事は多いと思います。明示的にコピペ禁止してる場合なら理解できますが、ソフトウェアのエラー表示やUI部品などをテキストとしてコピーできないのは(AI用プロンプトコピペが日常の現代において)イライラしてしまいます。
そこで、画像をスクリーンショットして、文字内容を読み取るというやり方は、よく利用される使い方です。Windowsでも謹製機能(snipping tool)として利用できます。

Linuxの場合は似た機能がまだない(?)ので、自分で作る必要がありますが、Linuxはシンプルなツールを組み合わせて使う昔からの哲学の下で作られているので、比較的簡単に実現できます。
AIを利用するOCRは新しい話ではありませんが、最近のOCR(deepseek-ocr/GLM-ocr)は凄まじい性能なので、利用しない手はありません。
※ もちろん、より汎用性のあるVLM(Qwen3-VL等)でも同じ事は可能ですが、汎用性が高いゆえに、ハルシネーションが増えたり処理時間が遅かったりします
やりたい事(作ったもの)





用意するもの
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"がプロンプトです。

Linuxのシェルスクリプトを作る
手順は、
スクリーンショットを撮る(flameshot)
ollama run glm-ocrで解析する
表示する
だけです。

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



表形式の時のみ、テーブル形式での表示が便利なので、「$cmd_markdown」で指定したコマンドで表示します。
筆者はFirefoxのmarkdown表示機能拡張のMarkdown Viewerを良く利用しているので、cmd_markdown=firefoxとしています。

# 使い方
$ 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.shLinux mintでは、キーボード→ショートカット→カスタムショートカットでOSグローバルなショートカットを設定できます。



# 通常のテキスト画像データを読む場合
llm-ocr-fs.sh -t表を読み込む場合は、別のショートカットを登録します。コマンドはオプションを変える必要があります
# 表の画像データを読む場合
llm-ocr-fs.sh -gまとめ
大規模なAIコード生成(バイブコーディング)は、指定していない事を勝手にやってしまったり、セキュリティ・ハルシネーション制御で精神が削られてしまいますが、80行程度の簡単なスクリプトで、やりたい事が明確であれば、すぐに作成でき、生成後の確認も、人間能力で十分判断できるものです。
むしろ、この手の(人間能力と人間脳で対処できる分量の)インタラクティブな使い方が、画像生成でもそうですが、今のAI性能において最も効率良い手法なのかもしれません。
コーディングに限らず、AIに大半・すべてをまかせる自動化やエージェントは、それなりのAGIができるまで(失敗が許されないものに関しては)実用的にならないように思います。問題が発生した場合、分量的に人間力で対処できないのでAIを利用しなければならず、さらに大きな失敗を誘発しがちです。
付録
本記事で作成したスクリプト「llm-ocr-fs.sh(テキスト版)」を支援者様(メンバーシップ)向けに添付します。本記事の画像版と同じものです。参考程度にご利用ください。
ここから先は
この記事が気に入ったらチップで応援してみませんか?
