『7回目の出直し🌻』

好きなことを自分のペースで、のんびり更新

スクショ画像から文字を抜き出しGoogle翻訳で日本語化する(ShareXのOCR機能)

ShareXでOCR(テキスト文字認識)とGoogle翻訳への連携の方法

この記事は新しいサイトに移動しました
screencapture.fun

ShareXの機能説明の日。今回はOCR機能です。

OCR機能とは

写真や紙の印刷物から文字を識別する技術、その技術を取り込んだソフトウェアのことです。最近だとレシートから文字データを読み取ってデータ化するとか使われています。 日本語では「光学文字認識*1といいます。

ShareXのOCR機能を使うと、スクリーンキャプチャーした画像の中にある文字を認識してテキスト化してくれます。

ShareXでOCRできるとどんないいことがあるか?

画面をキャプチャーするのがブラウザーやマウスで選択してコピーできる文字であれば、OCRするまでもないのですね。普通に右クリックしてコピーすれば文字化できます。困るのは、画面上に出てくる主にマウスで選択できないときです。

例えば、こういう警告はマウスで選択してコピーができないタイプです。

エラーメッセージの内容を翻訳するときに、全部を手打ちしないといけませんね。これは面倒です。入力を間違うし。
あと最近よく耳にするのが、英語表記のソフトウェア(主にゲーム)の画面やメッセージを翻訳するのにコピーができないので辛いようです。

ShareXのキャプチャー機能+OCR機能を使うと、上のような悩みが解決できます。 さらに、ShareのOCR機能はテキスト化するだけではなくGoogle翻訳に連携ができるので、文字起こし+翻訳の作業にかかる時間が短縮できます。

ShareXでOCRする前準備

まずは前準備です。そんなに工程は多くないです。

アップロード機能の有効にする

OCRをするのに最初に確認するのが、ShreXのアップロード機能を有効にしているかの確認です。 ShareXのOCR機能は、外部のOCRのサービスに依存していて、OCRする画像をOCRサービスに渡してデータだけをもらっています。そのため、アップロード機能を有効にしないとOCRは使えません。

設定の場所は、メインウィンドウの「アプリの設定」>「高度な設定」の一番下にあります。「Upload」の中にある「DisableUpload」を変えます。たぶん初期値はTRUEになっていると思います。 DisableUpload(アップロード禁止)を決める値で、TRUEはアップロード禁止です。FALSEにするとアップロードを禁止しない、つまりアップロードを許可する設定になります。忘れずに変えておきます。

OCRの設定の確認

メインウィンドウの「タスクの設定」の左側にある「OCR」にいくつか設定があるので、みておきます。


↑OCRの設定画面

規定の言語

OCRする画像に含まれている言語の設定です。画像から読み取りたい言語を設定しておきましょう。

OCR開始時にダイアログを開かない

これにチェックをした場合は、OCR用を実行したときに以下で説明するダイアログが開きません。見えないところで自動的にOCRが実行され、OCRの結果がクリップボードに入ります。
英語メニューだとサイレントモードという名前になってます。

OCR開始時にダイアログを開く

1番目にチェックが付いてないとき(サイレントモードではないとき)は、必ずOCR用のダイアログを開きます。


↑OCRの実行ダイアログ

2番目のチェックをONにしてあると、ダイアログを開いたのと同時にOCRを開始します。チェックをしていないと「OCR開始」ボタンを押すまで待機します。自分でボタンを押すか押さずに開始するか、の違いです。

ダイアログを開いたときに言語を選択する機会が多いか場合はサイレントにしないほうがいいような気がします。逆にいつも英語でOCR、もしくはいつも日本語でOCRとやることが決まっているならチェックしておいたほうが効率がいいと思います。

(タスクメニューの日本語がおかしいので直す/Process OCR on dialog open ダイアログを開くと同時にOCRを開始する)

OCRの結果をクリップボードにコピーする

1番目のチェックがONのときは自動でクリップボードに入るので、1番目がONでない場合にクリップボードを上書きするかどうかの設定です。 上書きされると困るときはOFFにします。スクショをとりながらOCRするときに、クリップボードの中に画像が残っていてほしいか、OCRした文字が残っていてほしいかの違いでしょうか。

OCRダイアログにはGoogle翻訳へのショートカットのリンクがあります。OCRしたものをGoogle翻訳に渡したい場合は1番目のチェックを外さないといけません

OCRの実施方法

さて、設定が終わったので実際に実行する方法です。

テキストキャプチャーを直接起動

これが一番基本的な操作方法です。メインウィンドウのキャプチャーメニューの「テキストキャプチャー(OCR)」から開始します。

開始すると、キャプチャー作成のときのような選択枠が出るので、OCRしたい範囲を選択します。

マウスの左ボタンを離すと、OCRが開始されます。サイレントモードでOCRが行われるか、ダイアログが出るかは設定次第です。

ちなみに、この起動方法(キャプチャーメニューのテキストキャプチャー)で実行すると、ShareXの画像フォルダの中に画像が残りません。残したくない場合はこの方法でやるのがよいです。

スクショ済みの画像をOCRする

上と違って、過去に作成したスクショの文字をOCRすることもできます。

メインウィンドウに並んでいる画像の右クリックメニューの「画像認識(OCR)」です

いったんスクショをとり画像を残しておき、文字を抜き出したい画像を選択するという手順です。

この方法の場合、ShareXで作った画像以外でもOCR機能を利用することが可能です。ShareXのメインウィンドウにマウスでドロップするとShareXの中に入るので、あとは同じように右クリックメニューで実行可能です。

スクショのファイルも残すし自動でOCRしたい

スクショも残したいが、いちいち右クリックでOCR機能を実行するのも面倒だ、という場合は「キャプチャー後のタスク」設定をしておくのもありです。上の1と2の合体版のような動きですね。

ただし、この設定をしてしまうと、何かをキャプチャーをするたびにOCRへデータが渡されるので、設定する場合は細心の注意を払って行いましょう。

やり方は、メインメニューの「キャプチャー後のタスク」>「OCR」を設定です

ここまでが代表的な3つのOCRへの連携方法です。

OCRしてGoogle翻訳へ

ShareXのOCR機能で読み取ったテキストは、1クリックでGoogle翻訳を実行できます。これは便利ですね🔥

やり方

設定の確認

OCRの設定画面で、1つ目のチェックを外しOCRダイアログが出る状態にする

OCRを実行する

画面からでも画像からでもよいのでOCRを実行します。

Google翻訳へ

OCR実行後に出てくる赤枠の「Google翻訳を開きウィンドウを閉じる」をクリックするだけです。

ブラウザが開き、Google翻訳の左側にShareXで抜き取ったテキスト文字が入っています。左と右の言語の調整はご自分でやる必要があります。

ショートカットキーでテキストOCRを起動するには?

どの方法をとるにしても、マウスで操作をすることになります。ShareXはたいていの操作をショートカットキー登録できるので、最初に紹介したテキストキャプチャーの機能をショートカットキー経由で呼び出す方法を紹介しておきます。

OCR実行のショートカットキー登録方法

「メインメニュー」の「ホットキーの設定」をひらく

「新規」をクリック

一番上の「タスク」を「静止画キャプチャー」>「テキストキャプチャー(OCR)」を選択する

キャプチャー後のタスクとアップロード後のタスクは全部OFFにしておく(しなくてもいいです)

ショートカットキーで起動した場合のOCRの設定をする。

ShareXは個別にタスク登録をすると、そのときだけ設定内容を変更できます。普段のOCR呼び出しはダイアログを出さないけど、タスクから呼び出したときはダイアログを出さない、というような柔軟な設定ができます。(タスク内だけで設定を上書きする)

メインの設定画面とホットキータスク内にある設定画面が似ている(ほぼ同じ)ので、どちらの設定画面を触っているか気を付けましょう。

最後にショートカットキーを登録します。OCRなのでWin+Shift+Oにしました。

これで完成です。Win+Shift+Oでテキストキャプチャーが起動できることを確認しておきます。

OCRの実行と実力確認

では、最後にOCRの実力を確認しておきます。

日本語のテキスト

大空文庫にある走れメロス*2の一説をShareXでOCRで解析します。

画面のスクショ

読み仮名(ルビ)を抜いています。

これをShareXのOCRにかけると

OCRしたShareXの画面

こうなります。

結構いけてるかも。

OCRしたテキスト文字

メロスは激怒した。必ず、かのの王を除かなけれならぬと決意した。メロスには政
治がわからぬ。メロスは、村の牧人てある。笛を吹き、羊と遊んして来た。けれど
も邪悪に対しては、人-倍に敏感てあった。きう未明メロスは村を出発し、野を越え
山越え、十里はなれたのシラクスの市にやって来た。メロスには父も、母も無い。女房
も無い。十六の、内気な妹と-人營した。この妹は、村の或る律気な-牧人を、近々、
として迎える事になっていた。結婚式も間近かなのある。メロスは、それゆえ、花嫁
の衣裳やら祝宴の御馳走やらを買いに、はるばる市にやって来たの。先ず、その品々
を買い集め、それから都の大路をぶらぶら歩いた。メロスには竹馬のがあった。セリ
ンテイウスある。今は此のシラクスの市て、石工をしている。そのを、これから
訪ねてみるつもりなの。久しく逢わなかったのから、訪ねて行くのが楽しみ
る。歩いているうちにメロスは、まちの様子を怪しくった。ひっそりしている。もう
既に日も落ちて、まちの暗いのは当りまえたが、けれども、なんたか、夜のせいばかり
は無く、市全体が、やけに寂しい。のんきなメロスも、たんたん不安になって来た。
路て逢った若い衆をつかまえて、何かあったのか、二年まえに此の市に来たときは、夜
ても皆が歌をうたって、まちは賑やかてあったが、と問した。若い衆は、首を振っ
て答えなかった。しばらく歩いてに逢い、こんどはもっと、語勢を強くして問した。

濁点(たとだの違い)がうまく読み取れていないのと、漢字の一(イチ)がハイフンになってしまうのは仕方ないところでしょうか。

英語のテキスト

英語はShareXのよくある質問ページの文字を借ります https://getsharex.com/docs/faq

画面のスクショ

黒背景に白色の画面でやってみます。

ShareXのOCR完了画面

OCRした結果のテキスト

Will ShareX be released on Linux or Mac operating systems?
ShareX is written using C#prpgrammingJanguage and .NET Framework. At present, the .NET technologies we utilise are only supported in Windows, and it is not possible for us to make it multi platform. There is a way to make software written using .NET Framework to work in Linux and Mac using Mono but it is not possible for ShareX to run using Mono because of hundreds of native calls, IJI, external libraries and countless unsupported methods. Recently Microsoft released .NET Core which supports writing multi platform software but it is currently extremely limited and doesn't have IJI or graphic related libraries. So .NET Core is currently only viable to make console only applications.
How do I get ShareX to upload to my custom domain?
There are many ways to do this, we recommend using our guides Google Cloud Storage and Amazon S3.
Does ShareX have portable builds?
You can find portable builds here: https://github.com/ShareX/ShareX/releases
Why does taking a screenshot from a fullscreen game return a black image?
ShareX doesn't support the complex hooking necessary to capture the screen of most games in fullscreen mode. This limitation can be remedied by running the game in borderless or windowed modes, or using another capture method, such as Nvidia Shadowplay, Steam overlay, or Windows Game bar if supported on your system, then later uploaded through ShareX.

ほぼ完ぺきです。英語はいいなぁ

今日のまとめ

久しぶりにShareXの機能をほじってみました。
日本語は形状が複雑でOCRには向かないという先入観があり使ったことがなかったのですが、使ってみると意外とうまくいきましたね。最近の解析エンジンはすごい。濁音、半濁音はテキストからは判断しにくいので仕方ないところはありますが、全部手打ちで文字起こしのに比べるといい仕事している気がします。

英語の画面からOCRで文字を抜き出して、そのままGoogle翻訳に持っていけるのは楽ですね。2クリックだけでいけるのはすごいかも。

大事なことですが、今日の話は全部0円でできることです。覚えておいて損はないと思います。

参考URL

ShareXが使っているフリーのOCRサービス
https://ocr.space/

APIがあるので自分でOCRを組み込めます。