前回は、「OCRの基本的な知識」に関して整理してきました。「定型レイアウト」かつ「印刷された帳票」であれば、AIを使わずとも、既存のOCRでも一定のレベルまで対応可能なことが解ったのではないでしょうか。ただ、この「定型レイアウト」かつ「印刷された帳票」である状況は、よーく考えると、意外と少ないことに気づくと思います。さまざまな企業から届く請求書のレイアウトが、どの企業も同じということはまず無いと思います。また、定型の帳票であれば、申込書などが該当することが多いと思いますが、基本的に手書きですよね。(Web申し込みであれば、そもそも最初からデータ化されていますし…)
結局、OCRは、非定型帳票や手書き文字に対応出来なければ、役に立つ局面が大幅に狭まります。今回はこの2つを中心に、AIを使って、今、 OCR関連のサービスや製品がどのようにブレークスルーしようとしているかに焦点を絞り、話を進めていきたいと思います。
まずは、非定型帳票に関して、解説していきます。非定型帳票の場合、項目がどこに配置されているかが解りませんので、既存のOCRでは、項目単位に分割していくことが出来ません。ここが、OCRの限界の1点目です。
ここで、ちょっとだけ前回の復習をしましょう。OCRにより、画像が文字データ化されるまでは、以下のステップでしたね。
1.画像読み込み
2.画像クレンジング
3.項目毎の画像分割
4.項目毎のテキスト生成
5.項目毎の知識処理
6.項目毎のテキスト修正
7.テキストデータ出力
「定型レイアウト」だと、上記の「3.項目毎の画像分割」で、予めとの項目がどの位置にあるかを帳票定義しておき、このステップで「項目の分割」を行います。ところが、「非定型レイアウト」だと、そもそもこの帳票定義がありません。従って、既存のOCRでは、非定型帳票の項目を分割していくことが出来ませんでした。
それでは、AIを使ってどのように処理すれば、項目の分割が可能になるのでしょうか?
AI-OCRは、予めレイアウトが解っていない「非定型レイアウト」の場合、「3.項目毎の画像分割」では、意味のあるレベル(例えば住所とか、氏名とか)での画像分割は行えません。また、「4.項目毎のテキスト生成」や「5.項目毎の知識処理」でも同様です。
一旦、「5.項目毎の知識処理」まで工程を進めた後、予め登録しておいたキーワード(例えば、先の例だとだと「住所」や「氏名」など)の入った項目の位置情報を取得します。そして、その位置情報から最も妥当性の高そうな目的の文字データ(例の場合だと住所や氏名の入った項目)を探します。こうして、予め登録いておいたキーワードに従って目的の文字データを取得していきます。また、この時、その帳票パターンも同時に覚えておきます。これは、次に同じパターンの帳票が来た時、どの位置の項目を取得すれば良いか容易にするためです。
つまり、「5.項目毎の知識処理」の後に、指定したキーワードに適した目的の文字データを取得する処理の「5.5.キーワードによる項目のテキスト取得」が入ります。
また、次の「6.項目毎のテキスト修正」時には、人間の目で画像と文字データを比較し、訂正していきます。その際に項目と位置情報との関係を訂正情報に従って自動学習していきます。こうして、「非定型パターン」でも一度通過したものは、「6.5.レイアウトの自動登録」が行われ、次からは「定型パターン」となります。結果、精度高くテキストデータが取得できることになっていきます。
1.画像読み込み
2.画像クレンジング
3.項目毎の画像分割
4.項目毎のテキスト生成
5.項目毎の知識処理
<5.5.キーワードによる項目のテキスト取得
6.項目毎のテキスト修正
<6.5.レイアウトの自動登録
7.テキストデータ出力
次は、手書き文字に関して、解説していきます。
従前のOCRでは、印刷帳票の場合、「4.項目毎のテキスト生成」で「パターン辞書」を使って文字をマッチングしていました。ところが、手書き文字は個人毎にくせがありますので、「パターン辞書」は、一文字ずつ膨大なパターンを事前に登録しておかなければなりません。従って、既存のOCRで手書き文字を文字データ化することは、不可能に近い話でした。
ところが、この無数に存在する「手書き文字」の特徴をAIが抽出し、モデル学習を自ら行うこと、つまり「パターン辞書」の登録を自ら行い、従来のOCR技術では困難だった「手書き文字」の認識を可能にしました。
「手書き文字」の場合も「6.項目毎のテキスト修正」の結果を使い、「6.5.手書き文字の学習」で「パターン辞書」の登録を行います。こうして、使えば使うほど、どんどん精度を高めていくことが可能になりました。また、同時に今までは、苦手だった訂正印の認識やチェックマークなども含め対応できるようになってきています。
1.画像読み込み
2.画像クレンジング
3.項目毎の画像分割
4.項目毎のテキスト生成
5.項目毎の知識処理
6.項目毎のテキスト修正
<6.5.手書き文字の学習
7.テキストデータ出力
先ほどの「非定型レイアウト」とまとめて図解すると以下になります。
AIによる進化は、その他の工程でも活用されています。「2.画像クレンジング」でも大活躍ですが、最も効果的なものは、「5.項目毎の知識処理」の部分です。ここで「自然言語処理」のロジックを使うことにより、さらに精度が高く、文字データ化が出来るようになってきています。
以上、第2回めはOCRの限界とAIによる進化に関して説明してきました。如何だったでしょうか。既存のOCRでは不可能と思われてきた「非定型パターン」や「手書き文字」のテキストデータ化が、AIを使って可能となってきていることを理解頂けたと思います。
次回は、この新しいOCRであるAI-OCRの「製品比較と現実解」に関して詳細に解説していきます。
特集:AI-OCR
第1回:AI-OCR…OCRの基本
第2回:AI-OCR…OCRの限界とAIによる進化
第3回:AI-OCR…製品比較と現実解