こんにちは、M田です。

NTT西日本様が販売しています「おまかせAI-OCR」について今まで4回まとめさせていただきました。

「おまかせAI-OCR」を使ってみました

「おまかせAI-OCR」の文字認識を試してみました~活字の認識編~

「おまかせAI-OCR」の文字認識を試してみました~手書き文字の認識編~

「おまかせAI-OCR」の文字認識を試してみました~手書き文字の認識編PART2~

前回は「手書き文字の認識編PART2」として、私が作成した手書き請求書をサンプルとしてテストを行いました。漢字・ひらがな・カタカナ混じりの品名がうまく読み取れるかどうかを試すテストでした。結果は次の通りでした。

  • 漢字・ひらがな・カタカナが混じっていてもほぼ問題なく認識する
  • あいかわらず数字の認識については読取り誤りがある

おまかせAI-OCR」を使用前のイメージでは「数字の正解率>文字の正解率」でした。しかしながら、印字・手書きを問わず逆の結果になっています。

予想外に数字の読取り誤りが多い。なので今回は数字の読取りに限定して試してみることにしました。

また、今までは読取り誤りの訂正を行っていませんでした。今回は読取り後に訂正を行い、その後の読取り結果に反映するかどうかも試してみたいと思います。

テストの結果

まずはいつもどおりお断りです。あくまでも私の環境と限られた状況で試した結果ですので「おまかせAI-OCR」の絶対的評価ではありません。「おまかせAI-OCR」の機能の参考になれば幸いです。

簡単にまとめますと次のような結果となります。

  • 数字の読取りのみに絞った場合、印字された納品書での正解率は約83%
  • 読み取り間違いの訂正を行った直後に再読み取りを行う→正解率は変化なし
  • 読取り条件を変更して再読み取りを行うと正解率は約93%になった。
  • しかしながら新たな読取り誤りも発生した。

読取り条件の設定が認識率向上のポイントみたいですね。しかしながら条件の変更に伴って新たに発生した読取り誤りもあるのが気になるところです。以下、詳しく見ていきましょう。

今回のサンプルとテスト方法について

今回のサンプルは「活字の認識編」で使用した印字された納品書です。読取り範囲は「数量」「単価」「金額」の3つの数字欄に限定しました。

また「単価」「金額」は4桁以上になった場合、桁区切りの「,」が含まれています。

サンプルと設定
※クリックすると、画像が拡大されます

各項目は12分割して1枚あたりの読取り項目は36項目、これを11枚使用して合計396項目の読取りテストです。

テストその1の設定

今回は3段階で読取りテストを行います。まずは最初の設定です。

設定その1
※クリックすると、画像が拡大されます

各項目の「読取り条件の設定」を以下のように設定し読取りします。その後読取り誤りを訂正します

  • 読取条件:「数量」→数値 「単価」「金額」→金額
  • 誤り訂正:する

テストその2の設定

このテストの設定はテストその1と同じです。テストその1の訂正が「ただちに」読取り結果に影響があるかどうかを確かめるのが目的です。

  • 読取条件:「数量」→数値 「単価」「金額」→金額
  • 誤り訂正:する

テストその1と同じく、誤りカウント後に読取り誤りを訂正します。

テストその3の設定

最後のテストはすべての項目の読取条件を「数値」で行います。「単価」「金額」欄を数値として読み取りしたら結果がどのように変わるかを確かめます。

  • 読取条件:「数量」「単価」「金額」→数値

以上のように、3つのテストを行います。

読取り結果

それではテストの結果を見ていきましょう。今回はエラー例の提示はひとまず置いておいて、各項目のエラーカウントを提示いたします。

テストその1の結果

数量 単価 金額
0 13 53
読取り条件:数量→数値、単価・金額→金額 ※読み取り後訂正:あり

「金額」の誤り率が約40%と高いのが気になります。一方「数量」は誤りなしでした。

テストその2の結果

数量 単価 金額
0 13 53
読取り条件:数量→数値、単価・金額→金額 ※読み取り後訂正:あり

テストその1で読み取り間違いの訂正を行いましたが、誤り結果は同じでした。念のために誤りのある項目を突合してみたのですが、すべて同じ箇所でした。つまり読取り誤りの訂正は、ただちに結果に影響を及ぼさないのでは?と想像します。

テストその3の結果

数量 単価 金額
0 18 9
読取り条件:数量・単価・金額→数値 ※読み取り後訂正:あり

すべての項目の読取り条件を「数値」に変更した結果、「単価」では誤りが増え「金額」では大幅に誤りが減りました

ちなみに設定の変更前後で「増えた誤り」「同じ箇所に発生した誤り」をまとめてみました。

左側が「設定変更前」、右側が「設定変更後」です。左側がグレーの箇所が、設定変更後に「増えた誤り」になります。大きな画像なので以下のリンクを「右クリック」→「名前をつけてリンク先を保存」で一度ダウンロードしてから閲覧してください。

テストその3の結果の誤り箇所一覧

読取り結果からの考察

以上のテスト結果から次のことを考えました。

  • 読取り誤りを訂正した結果は、ただちに読取り精度に影響を与えない
  • 3桁以上で構成される「単価」「金額」には誤りが多い。桁数が多くなると精度が落ちるのか。
  • 金額形式の項目(「単価」「金額」)の読取り条件を「金額」とするのが、必ずしも正解ではないのでは
  • 読取り条件を変更しても新たな誤りが発生する場合も。

気になったのでサポートに電話して尋ねてみました。サポートの方からは次のようなことを教えていただきました。

  1. サポートでも数字の読取りに誤りが多いという相談を受けている
  2. 読取り条件を「指定なし(すべての文字)」にすると向上する場合が多い
  3. 読取り誤りを訂正した内容は識字のAIの学習に用いられる。
  4. AIは各ユーザーごとではなく、「おまかせAI-OCR」の全ユーザーで共有されている
  5. ユーザー側でわざと間違った訂正をした場合は? →開発者側でフィルタリングされているので大丈夫。

訂正内容の扱われ方がわかりました。間違った訂正が学習に影響を及ぼさないようにフィルタリングされているということですね。訂正結果が認識にただちに影響を及ぼさない理由はこれかもしれませんね。

また、サポート側でも数字の読取りの相談を受けているとのことですので、数字の認識については問題と思っている方が私の他にもいるということですね。

ちなみに「おまかせAI-OCR」のサポートですが、とても親切にいろいろ教えていただけます。操作方法や設定のやり方などに、親切なアドバイスを頂けると感じました。疑問点があればどうぞ問い合わせてみてください。

さらにテストと検証

サポートのアドバイスを受けてちょっと気になったので、追加で次の「テストその4」をやってみます。

  • 「数量」「単価」「金額」の読取り条件を「指定なし(すべての文字)」に変更してみる。

実はテストその1~3をやってから1ヶ月ほど期間を開けてやっているので、AIの学習効果が読取り結果に影響を及ぼしている可能性が大きいのですが、結果は次のようになりました。

テストその4の結果

数量 単価 金額
0 2 13
読取り条件:数量・単価・金額→指定なし(すべての文字)

困りました。「金額」「単価」に読取り誤りがありますがすべてこのような誤りです。

金額の読取り結果

金額の表記としてはNGですが、読取り結果としては正解と言えるのではないでしょうか。ちゃんと「.」と読み取ってますよね。上の表でカウントした誤りパターンは、全てこのパターンです。今回は数字部分には読取り誤りが全くありませんでした。学習効果もあらわれているのかもしれません。

サポートのアドバイスのように、「指定なし(すべての文字)」の方が成績が良いようです。一方、桁区切り記号も読み取ってしまうので、出力時の処理で調整する必要があります。

認識しにくい数字はどれだ?

さて普通に考えれば読取り条件は「テストその1」のように設定すると思います。その結果から、「どの数字に認識誤りが多いか」をカウントしてみました。結果は次のとおりです。

0 1 2 3 4 5 6 7 8 9
9 19 9 2 5 6 0 16 0 7

グラフにしてみると傾向がよくわかります。

数字別の誤り数グラフ

つまり、

  • 1→7→0と2→9→5→4→3の順に読取り誤りが多い。
  • 一方6と8は読取り誤りがない

という結果になりました。また最多となった1の19個の読取り誤りのうち、16個が「読取り抜け」だったことに言及しておきます。

まとめ

上記の追加テストと検証を見てみると、当ブログで連載していた「おまかせAI-OCR」の読取り誤りでサンプルにあげてきた箇所になんとなく合致しているような気がします。

もちろん限定的な環境下ではありますが、当ブログでの「おまかせAI-OCR」の検証では、

  • 文字の認識より数字の認識のほうが苦手
  • 特に数字の「1」「7」に誤りが多いと思われる。
  • 「1」は読取り抜けする誤りが多い。

という結果になりました。ただし繰り返し同じ読取り設定を使って誤り訂正を行うことで、

  • 学習効果により読取り精度が向上する。
  • 読取り条件の変更で精度が向上する。

ことが期待できるのではないかと思います。

以上、今回は「おまかせAI-OCR」の数字の認識について色々とテストをしてみました。「おまかせAI-OCR」の導入や設定についてなにかの参考になりましたら幸いです。ここまで読んでいただいてありがとうございました。