こんにちは。データサイエンスチームの八木です。
コロナ禍でテレワークの推進が進み、企業の DX に向けた取り組みもより身近なものとなりました。紙媒体からデジタルへ移行し、働く環境にとらわれない働き方に変わってきている流れを実感されている方も多いと思います。その中で、紙や画像に書かれている文字をデータに変換する OCR (Optical Character Recognition もしくは Optical Character Reader) の技術も実業務への導入が進んでいます。一方で、手書きでの申し込みフォームや解答用紙、アンケートなどが求められる業界もあり、そういった職場で従事されている方々は簡単にデジタル化できないもどかしさを感じている方も多いのではないでしょうか。そこで今回は、Microsoft 社が提供する、ドキュメントをデータ化するクラウドベースのサービス Azure Form Recognizer の手書き読み取り機能をご紹介します。このサービスを使えば、印刷された文字だけでなく手書きで記入されているドキュメントでもデータの読み取りが可能となり、これまで目検で行っていた入力作業が大きく削減できます。Azure で手軽に試すことができますので、興味のある方はぜひ試してみてください。
Azure Form Recognizer とは、機械学習モデルを用いてドキュメントを解釈し、テキストとその構造をデータとして読み取ることができるクラウドベースのサービスのことです。今回は、Azure Form Recognizer の各機能を GUI による操作で利用できるオンラインツール Form Recognizer Studio を使います。Form Recognizer Studio は記事執筆時点ではまだプレビュー版となりますが、GUI で各機能を簡単に試すことができ大変便利なツールです。
早速、Azure Form Recognizer で手書き文字を読み取る詳しい手順を見ていきましょう。
まずは、Form Recognizer Studio にアクセスし、各種設定を行います。
※Azure Form Recognizer や Form Recognizer Studio を使用するには、Azure サブスクリプションが必要です。本記事では Azure サブスクリプションは事前に準備されていることを前提とします。
作成が完了したら、早速手書き文字読み取り機能を試してみましょう。
英語とドイツ語の既存サンプルが用意されていますので、日本語以外で試してみたい方は、こちらのサンプルでも結果を確認してみてください。
今回は事前に用意した以下のサンプルを使って試します。1 番上がお手本 (印刷した文字)で、下 3 つが 3 人分の手書き文字のサンプル画像です。PDF ファイルだけでなく PNG ファイルでも試せますので、時間ある方は以下の画像を PNG ファイルとして保存したうえで、自身の環境にて試していただければと思います。
上記画像を見ると、一部「〒」が「T」になっている箇所はあるものの、ほとんど正しく認識していることが分かります。追加対応として、インプットデータ作成時のかすれや線、揺らぎへの対応は必要になってくると思いますが、実運用にも耐えうる精度が出ているように感じます。
ただし、インプットデータの作成時にかすれや線が入ってしまうと、一部上手くいかないケースがありました。また、写真で試してみると、撮影した角度や照明の影響を受けてしまい、誤って認識される箇所も散見されました。例えば「コンサルティング&DX統括部」に対して、「コンサルティング2.0×統括部」、「コンサルティング&D×統括部」などと認識しています。
このようにスキャンの過程で発生したかすれや線、ゆがみについては、OCR をかける前に二値化やノイズ除去、傾き補正などの前処理を行うことで、精度を向上させることができます。
また、お手本には苗字と名前の間に空白がありますが、実際に書いてもらった例を見ると空白の有無に差があります。ただ、どちらの場合でも上手く認識することができませんでした。このように名前や郵便番号、電話番号など、人によって書き方に差が出ると予想される項目については、認識後のデータ処理で対応することも可能ですが、どうしても揺らぎが出てしまいます。そのため、記載欄を明確に分ける、ハイフンや記号などは事前に印刷しておくなど、フォーマットに対して工夫することも効果的です。また、それでも発生してしまう揺らぎや無意味な記号の混入などは、読み取り後に自然言語処理 (NLP) による後処理を行うことで、明らかな誤りの除去や名寄せを行い、後続の処理で使用しやすい形に変換する対応をするのがよいかと思います。
Azure Portal より当該リソースにアクセスし、[削除] をクリックします。削除について確認するウィンドウが出ますので、[はい] をクリックします。
以上、Azure Form Recognizer で手書き文字を読み取る手順を紹介しました。Form Recognizer Studio を使えばノンコーディングですぐに OCR を試すことができますので、ぜひ皆さんもご自身のデータで試してみてください。
本記事では、Form Recognizer Studio を用いて、Azure Form Recognizer で手書き文字を読み取る手順を紹介しました。結果を見てみると、手書き文字の読み取りという難易度が高いタスクでも十分な精度が出ていることが分かります。Azure Form Recognizer 自体は比較的簡単に使用することができますが、実運用で用いる際は、誤認識による影響を下げる処理を用意することが重要なポイントとなります。例えば、インプットデータに対して画像処理による前処理を行うことや、アウトプットデータに対して自然言語処理による後処理を行うことで、要求する精度を満たすサービスを構築することができるかと思います。
また、ある程度 AI で作業を自動化した場合でも、目検での最終チェックを必要とするケースがほとんどです。本サービスでフォーマットのデータ入力作業のすべてを削減することは難しいですが、膨大で地道なデータ入力作業は機械に任せ、最終チェックのみ人間が行うだけでも工数削減に大きな効力を発揮します。人と機械が役割を分担することで、負荷が高くつらい作業は機械に任せ、人はより創意工夫が求められる作業に集中できる。そんな環境を作っていきましょう。
SBT では、今回ご紹介した Azure Form Recognizer や Azure Cognitive Services の実現可能性調査から、実際のシステム化までトータルでサポートすることが可能です。今回のケースでは、まずは自社の実際のデータでどの程度精度が出るのかを検証後、実務で使えそうな場合はシステム化フェーズへと進みます。その際、社内の業務フローやセキュリティポリシー、予算などに合わせ、必要なアーキテクチャも変わってきますので、それを考慮した要件定義・設計が必要となります。すでに AI モデルをお持ちでシステム化したい、まずは実現可能性の調査から始めたいなど、AI 活用を検討中の担当者の方がいましたら、ぜひ当社にお問い合わせください。まず何から始めればよいか悩んでいるといったお客様も、お気軽にご相談いただければと思います。
関連ブログ記事
請求書やレシートの入力を自動化!Microsoft の OCR サービス、Form Recognizer のご紹介
|
関連ページ |