0SikuliXはOCRエンジン「Tesseract」を使って画像から文字を認識できます。日本語も読み取れますが、そのままOCRにかけても期待するほどの精度は得られません。した工夫をすれば格段に認識率を上げることが可能です。本記事ではSikuliXのOCRを使って日本語読み取り精度を向上させる三つの方法をご紹介します。これらの方法を試したうえで、SikuliXのOCRを活用できそうか考えてみてください。SikuliXでOCRを行う方法についてはこちらの記事をご覧ください。まとめ文字サイズと解像度が最重要SikuliXのOCRで高い精度を出すための基本は「適切な文字サイズで読み取ること」、「解像度の高い画像を用意すること」です。上記二点の重要性を説明するため、まずは条件を満たした画像を作成しました。こちらの画像を比較対象のベースとします。例としてWikipediaページの冒頭部分の文章をお借りして、画像を作成しています。ウィキペディアより引用し、作成ベース画像をSikuliXのOCRで読み取った結果は以下の通りです。卜にアクセス可能な誰もが無料で自由に編集に参加できる。言語で展開されている。「運」が「連」になっている、「夕」や「卜」がカタカナではなく漢字になっている、などのご認識がありますが、おおよそ正常に読みとれています。認識率も92%でした。以降、こちらの画像をベースとしてOCRの結果を比較します。【OCR精度向上の方法1】適切な文字サイズに画像を拡大して読み取るSikuliXでOCRの精度を上げるためにまず試すことは、適切な画像サイズに調整することです。文字が小さいと認識率がかなり下がります。画像を拡大してから読み取ることが精度を高めるコツです。例として、ベース画像を表示しているアプリケーションのウインドウ幅を縮小しました。文字が小さくなっていることがわかります。表示している画像はベースのものと何一つ変わっていませんが、この状態でOCRを行ってみます。読み取り結果は以下の通りです。トにアクセス可能な誰もヵヾ無科で自由に編集に参加できる。言語で展閲されている。明らかに間違っている個所がすぐに見つかります。「が」が2文字に分かれていますし、「、」も正しく認識できていません。同じ画像のはずなのに認識率も83%と10%弱低下し、文字サイズで読み取り精度が左右されることがわかります。対処方法SikuliXでOCRを行うときは読み取る文字が小さくなりすぎないように気をつけましょう。selectRegionなどでOCRを行う領域を選択する前に、ズームして文字を大きく見えるようにするとよいでしょう。OCR【OCR精度向上の方法2】できるだけ高解像度の画像を用意するOCRは解像度によっても大きな影響を受けるので、高解像度の画像を用意することも重要です。人の目では十分認識できる解像度でも画像が荒ければ認識率は大きく低下します。ベース画像の解像度のみを低下させたもので、SikuliXのOCRをテストしてみましょう。ベースの画像よりも文字が荒いのが分かるでしょうか?上記画像の読み取り結果は以下になります。言語で展闔されている。4文字のうち1文字が間違っていることになり、実運用で活用するには厳しい数字です。目視で問題なく読める画像でも認識率が悪化したことから、SikuliXのOCR機能は解像度により大きな影響を受けることが分かります。対処方法OCRで読み取りたい書類をスキャンするときは、できるだけ高解像度で取り込みましょう。スキャナによっては解像度を設定できるものもあります。高解像度の画像を用意することが、SikuliXのOCRを活用するための大きなポイントになります。小さい文字サイズ、低解像度で試すとどうなる?スキャナで読み取った帳票などでSikuliXのOCRを試すと散々な結果になるでしょう。そのままスキャンしても文字が小さく、解像度も低いからです。文字が小さく、低解像度の画像に対してOCRをかけてみると認識率はどうなるでしょうか?ベースの画像と比較してみます。読み取り結果は以下の通りです。喜魎で展闔されている.認識率は68%になり、ベース画像の読み取り結果よりも24%低くなりました。確かにこの結果を見るとSkuliXのOCRで日本語読み取りは使えないと判断しそうです。ベース画像との違いは画像サイズと解像度のみ。できるだけ高解像度で書類を読み取り、適正なサイズに拡大することで認識率が大きく改善できます。【OCR精度向上の方法3】ブラックリスト、ホワイトリストを設定する読み取る対象によっては、「絶対使用しない文字なのに、OCRを使うとその文字で誤認識される」や「使用する文字の種類が限られている」といった状況があります。そんなときはブラックリストやホワイトリストを設定することでOCRの結果を調整できます。ブラックリストの活用例ベース画像をOCRした際に「夕」や「卜」が漢字で読み取られ、認識率を下げていました。「夕」と「卜」をブラックリストに登録し、カタカナで表示されるように調整します。selectRegion()print(r.text())読み取り結果は以下の通りです。トにアクセス可能な誰もが無料で自由に編集に参加できる。言語で展開されている。ブラックリストに設定したことで、カタカナの「タ」と「ト」で認識されました。認識率も96%に上がっています。帳票などで特定の文字しか使用しない場合は、ホワイトリストを使ってOCR結果を指定した文字のみに絞れます。利用できる状況は限られますが、非常に強力です。selectRegion()print(r.text())読み取り結果は以下の通りです。ア読み取り結果からわかるように、指定した文字のみ抽出できました。【2019/4/16追記】OCRエンジンを変更することにより、SikuliX-OCRの精度を大幅に改善する記事を公開しました。4)を搭載したSikuliXをダウンロードして利用できます。4を導入してOCR精度を爆上げする方法まとめSikuliXのOCRで高い精度を出すには「適切な文字サイズで読み取ること」、「解像度の高い画像を用意すること」が重要です。文字サイズはSikuliXで調整できますが、解像度はスキャナに大きく依存します。高解像度で画像を取り込めるかが、SikuliXのOCRを活用する判断基準の一つとなります。ブラックリストやホワイトリストを設定できるか検討してみましょう。活用できる状況は限られていますが、認識率が向上するように読み取り結果を調整できます。精度を上げる方法をご紹介したものの、SikuliXのOCRは日本語読み取りの精度が高くありません。Visionの活用が考えられるでしょう。VBA入門】ユーザー定義関数の作り方。VBA入門】ドロップダウンリストの作り方。Reserved.RPA・業務自動化とは?サービス料金ブログお問い合わせチーム事業概要プライバシーポリシーヒアリングシートAnyDeskダウンロード。