昨日、ちょっとした依頼があり、レシートや通帳の画像からテキスト化の可能性を検討するためにクラウドOCRの性能を比較してみた。
ここでクラウドOCRの比較といっても、それほど多くのサービスがあるわけではなく、お決まりのAIによる画像認識サービスの延長のOCRである。ということでメジャーな以下のサービスを試した。
・Microsoft Azure Cognitive Services Computer Vision API
・Google Drive のgoogle docs生成
本来はどちらもAPIで試すべきであるが、手軽に試してみたかったのでGoogleは手軽に、Azureのデモはocr_V2.0のプレビューということで日本語対応はしていないようであったためocr_v1.0を呼ぶコードを簡単につくり試した。
結論から言うと、当初期待した以上の認識精度を双方ともに出力できることがわかった。Googleの方が、通帳のような画像のサイズに比較して文字が小さい、印字が薄い、といった悪条件の画像においても安定した精度を維持していると見られる。Googleの優位点は、悪条件の場合、自動で画像を部分的に拡大して文字認識をしている点と考えられる。出力された文字のフォントサイズがばらばらで印字が薄い文字については、異常に大きなフォントサイズで出力されているためそのように考えた。AzureのV2.0ではどれぐらいこの点について改善されるか期待したい。
レシートについては、大手コンビニ3社のレシートにおいて試したが、商品コードや合計金額、消費税、釣り、ポイントカードのポイントなどの数字についてはほぼ正確に認識できた。
しかし、どちらのサービスも認識精度が極端に悪かったのは、半角カナ文字である。特に濁音や撥音の表記があると高い割合で誤認識をしている。漢字カナ交じり文では半角カナの後の全角漢字についても誤認識する傾向が高い。さらに、画像サイズに対して文字サイズが小さくなり、印字が薄くなると認識すらしない場合があった。リアルのビジネスの世界では半角カナはスペースを取らず情報を詰め込めるため、まだまだ多用される傾向があるため、クラウド画像認識によるOCRの普及は、この点をどの様にして改善するかが課題である。数字認識の課題としては桁区切り,の誤認識である、特に文字サイズが小さくなると発生しやすくなる傾向がある。
評価後の感想としては、AIの適用全般に言えることだが、クリティカルなデータへの適用はまだ課題が多いが、それ以外の作業効率を高める補助機能としては十分使えるように成長しつつあると感じた。出力は認識単語単位に位置座標付きので出力されるのでレイアウト処理のプログラムは別途開発する必要があるが、サイトのスキャルピングや、多少のゴミが許容する大量のデータを簡単に収集したい場合には使えるサービスである。