一撃でウィンドウの内容をOCRする環境を構築した話

やったこと

もう大手各社のクラウドOCR APIの精度は十分実用的なレベルなので、単純にウィンドウの内容を投げればよい話なんだけれども、ウィンドウの内容全部をOCRしたかったり、あるいは矩形で選択したかったりするかもしれないので、スクリーンをキャプチャして、それら画像ファイルを生成するところまでは他のツールに任せることにして、「あるディレクトリ以下に画像ファイルが生成/移動されたら、それを自動でOCRする」作業をツールを書いて自動化しました。

成果物

github.com

インストール方法

zipファイルの中身を適当なところに解凍するだけです。

使い方

最小のコマンドは

cocr -d "PATH_TO_TARGET_DIRECTORY" -k "YOUR_GOOGLE_API_KEY"

-d で指定されたディレクトリを監視して、その中に画像ファイルが放り込まれたとき、自動で対応するjsonAPIを叩いたjsonレスポンスそのまま)、html(OCR結果を表示するHTMLファイル)を生成します。

-c オプションで結果をクリップボードに貼り付け。-s でhtmlファイルをブラウザで開く。-n で通知。他にもディレクトリ内の画像ファイルをまとめて処理する-b オプションなどがあります。

なお、使用しているGoogle Cloud Vision APIは月一定回数までは無料(2018/07 時点で最初の1000回は無料)ですが、-k オプションでのGoogle APIキーの指定は必須になります。APIキーを発行するときに、後で泣かないよう、適切な課金上限額を設定しておきましょう。

Authenticating to the Cloud Vision API  |  Cloud Vision API Documentation  |  Google Cloud

API キーの使用  |  ドキュメント  |  Google Cloud

イメージ

対象画像

f:id:ruby-U:20180713073812p:plain

クリップボード結果

f:id:ruby-U:20180713073741p:plain

HTMLを開いたところ

f:id:ruby-U:20180713074121p:plain

スクリーンキャプチャツールとの組み合わせ

SnapCrab www.fenrir-inc.com

GreenShot gigazine.net

などのツールの出力先を、cOCRの監視するディレクトリ以下に設定するだけです。あとはお好みに合わせて、スクリーンキャプチャツール側のキーバインドを設定すれば、「1ボタンで自動OCR、結果をクリップボードに保存」みたいなシステムが完成します。

PDFへの変換

cOCRは、Google Cloud Vision APIからのレスポンスをまるっとまるごとjsonファイルとして保存してるので、以下のツールとの組み合わせで、画像ファイルをOCRされたPDFに変換することも可能です。

github.com

github.com