AI技術紹介 (第2回):AIによるOCR

デジタルビジネス推進PJTでは日々AI、IoT技術を中心に新製品開発に取り組んでいます。

今回は「OCR」をテーマにしてAIの紹介を致します。

OCRとは

OCRとはOptical Character Recognitionを省略した言葉で、日本語では光学文字認識と訳されます。

これは手書きや印字された文字が写る画像から文字を読み取り、コンピューターで扱える文字データに変換する技術です。

OCRイメージ

OCRを利用すると画像の文字がコンピューターで扱える文字データに変換されるため、以下のようなメリットが生まれます。

①入力作業の機械化

書類を確認し入力する作業をコンピューターで機械的に行えます。

例えば、入力作業と入力内容のチェック作業を二人組で行っていた場合、入力作業をOCRに任せることで人の作業はチェック作業のみにできます。こうすればチェック作業に回したり、他の作業を任せることができます。

②疲労しない

作業するのがコンピューターのため、大量に作業させても疲れてスピードが遅くなることや、作業過多で品質が落ちることがありません。

③デジタルデータのメリットを受けられる

物理的に紙だと保管場所を確保し、大量の紙から目的のものを手探りで探し出す必要があります。

OCRでデジタルなテキストデータに変換すれば、小さなHDDに大量に保管でき、検索もコンピューターで簡単に行えます。

従来のOCR

従来のOCRでも様々な文字を認識することが可能です。

しかし決められたロジックやパターンによって読み取りが行われているため

  • 「工」や「エ」のようなよく似た文字を誤って認識する。
  • 印字と比較して、手書き文字に対しては認識精度が低い。
  • 読み取り位置や枠内に文字を書くなどの指定が必要で、あらかじめ設定されたフォーマットでないと正しく文字を認識できない。

などの弱点があり、さらなる技術進歩が望まれていました。

AIの発展

現在、OCRではAIを用いた文字の検出及び認識が使われ始めています。

AIは画像認識の分野で非常に高い性能を持っており、特にディープラーニングが登場して以降の進歩は目覚ましく、2015年には人間の誤認率を下回るようになりました。

文字検出・認識もこの画像認識(正確には物体検出と呼ばれる分野)と同じように画像の中から文字を探し出しその文字が何かをAIが回答しています。

OCR+AI

AIによるOCR

AIを用いたOCRの利点は以下があります。

①文字認識の精度向上

AIの利用により従来のOCRと比べて精度が向上しました。特に人によって様々な形になる手書き文字を正しく認識できるようになりました。

②文字検出の自動化

従来のOCRでは決まった位置や枠内に文字を書く必要がありました。
AIによるOCRでは文字の位置をAIが自動で検出するためフリーなフォーマットで書くことができます。

③文書フォーマットの自動判定

文書のフォーマットを自動で認識し、氏名などのタグをつける機能を提供するOCRサービスも登場しています。

AIによるOCRの例

ここからは4つのAIによるOCRを紹介します。

  1. Tesseract
  2. EasyOCR
  3. Azure Computer Vision
  4. Google Cloud Vision API

各OCRでWikipediaの『光学文字認識』のページに書かれている文章の画像を認識させてみます。

印字サンプル
活字テキスト例
手書きサンプル
手書きテキスト例

1. Tesseract

TesseractはGoogle開発のAIによるOCRです。現在、Pythonを利用したOCRについて調べるとよく見かけます。

いくつかのバージョンがありますが、最新のバージョンではニューラルネットワークを使用したため精度が良くなりました。

Tesseract印字結果

光学文字認識(こうがくもじにんしき、英:Opticalcharacterrecognition)は、

活字、手書きテキストの画像を文字コュードの列に変換するソフトウェアである。.

画像はイメージスキャナーや写真で取り込まれた文書、風景写真(風景内の看板の文字など)、

画像内の字幕(テレビ放送画像内など)が使われる。一般に0ORと略記される。

大体認識できています。

ただ「コード」を「コュード」など細かいところが誤認識されています。きれいな画像に対する結果なので、たとえ印字だとしてもスキャンした書類だともう少し結果が悪くなると思われます。

続いて手書き文字を認識させてみました。

Tesseract手書き結果

兆ズかる入るつっがブギヤセキキ学0〇btcc人arocfer6c22れ7を7のれノは

オマをぇテストの画像をるダタコードの列に談栓ソフトみアであ3。

包像はメースナーヤ補衣で取りた未も者、風各学電(必第おの衝枯のなどの

名和内の字芝(の攻炎融像内をど)かが全わ2.-般にOCRと史紀4.

検出はうまくできていますが、内容はでたらめで正解している部分を探す方が大変です。

2. EasyOCR

JaidedAI社が提供するオープンソース(無料)のAIによるOCRです。英語や日本語など様々な言語に対応しています。

EasyOCR印字結果

光学文宇認識 (こうがくもじにんしき 英; Optical character recognition)は;

活字 手書きテキストの画像を文字コードの列に変換するソフトウェアである_

画像はイメージスキャナーや写真で取り込まれた文書 風景写真 (風景内の看板の文字など)

画像内の字幕 (テレビ放送画像内など) が使われるc 一般にしCと略記される。

小さい文字は誤認識されていますが、おおむね正しいです。

外国の企業なので英語の「OCR」を誤認識してしまっているのが少し不思議です(設定で日本語を優先するようにしたためかもしれません)。

続いて手書き文字です。

EasyOCR手書き結果

………

‘ .

~

はわ手)

直像内の字幕しう

‘原ポ@一): ‥ 、 ‘‥’ほ

認識できていません。これはこのAIが日本語の手書き文字を学習しきれていないからだと思われます(手書きでも成功するパターンはありました)。

以上のTesseractもEasyOCRも無料で使用できますが、その分性能はそこそこのようです。

3. Azure Computer Vision

ここからは有料ですが実用できそうなAIによるOCRを紹介します。

最初にMicrosoft AzureのComputer Visionです。Computer Visionは様々な画像分析のAIクラウドサービスで高性能なAIを使用できます。

Azure印字結果

光学文字認識(こうがくもじにんしき、英: Optical character recognition) は、

活字、手書きテキストの画像を文字コードの列に変換するソフトウェアである。

画像はイメージスキャナーや写真で取り込まれた文書、風景写真(風景内の看板の文字など)、

画像内の字幕(テレビ放送画像内など)が使われる。一般にOCRと略記される。

完璧です。小さな「:」でさえ正しく認識できています。

同様に手書き文字も認識させてみます。

Azure手書き結果

光学文字認識(こうがくもじにんしき、英:Optical character.recognition)は、

活字、手書きテキストの画像を文字コードの列に変換するソフトウェアである。

画像はイメージスキャナーや写真で取り込まれた文書、風景写真(風景内の看板の文字など)、

画像内の字幕(テレビ放送画像内など)が使われる。一般にOCRと略記される。

最初の行で「.」を誤認(よく見ると、その位置に汚れがあります)している以外、完璧に認識しています。

お世辞にも綺麗な文字ではないと思いますが、AIは正しく認識することができました。

4. Google Cloud Vision API

続いてGoogle CloudのVision APIでも試してみます。

Google印字結果

光学文字認識(こうがくもじにんしき、英:Opticalcharacterrecognition)は、

活字、手書きテキストの画像を文字コードの列に変換するソフトウェアである。

画像はイメージスキャナーや写真で取り込まれた文書、風景写真(風景内の看板の文字など)、画像内の字幕(テレビ放送画像内など)が使われる。一般にOCRと略記される。

最後の2行がひとまとまりにされていますが、認識結果はほぼ正しいです。(強いて言えば英単語の間の空白が無くなっています)

Google手書き結果

光学文字認識(こうがくもじにんしき、英:Opticalcharacterrecognition)は、

活字、手書きテキストの画像を文字コードの列に変換するソフトウェアである。

画像はイメージスキャナーや写真で取り込まれた文書、風景写真(風景内の看板の文字など、画像内の字幕(テレビ放送画像内など)が使われる。一般にOCRと略記される。

同様に手書き文字を試しました。「)」がない部分がありますが、こちらもほぼ正しく認識できています。

Azure Computer VisionとGoogle Cloud Vision APIはどちらも実用レベルで日本語の手書き文字を読み取ることに成功しています。

以上の4つの例では決まった位置や枠、大きさで文字が書かれていませんがAIは特に指示をしなくても文字を見つけてくれました。

OCR導入の注意点

上の例のように、サービスによっては実用レベルのAIによるOCRですが導入においては注意すべき点がいくつかあります。

①本当に使用できるかを調べる

現在のAIによるOCRは縦書きの日本語は苦手とする傾向があります。他にも文字の大きさなど様々な影響でOCRの精度は変動します。
対象の文書が実際にOCR可能かどうかを試してみるのをお勧めします。

②完全に機械任せにするのは危険

先ほどの例のように、AIによるOCRでも完璧な文字認識は保証できません。
特に重要な書類ではOCRにすべて任すのではく、必要に応じて人によるダブルチェックを検討してください。

③コストパフォーマンスを考える

どんなに高性能なOCRでも、数ヶ月に1回しか使わないようでは導入費用の回収ができません。人件費や労働時間、精度や将来的なDXなど様々な面を考慮し、導入のコストに見合った働きができるかを検討してください。

最後に

以上、AIによる「OCR」の紹介でした。

当社は主にAI,IoTの導入を支援いたします。導入後の保守や新たな改善策、コンサルティングも受け付けております。

お気軽にお問い合わせください。