クラウドエンジニアが語る、Azure Cognitive Services の可能性
はじめに
「Azure Cognitive Services」をご存知でしょうか。
Microsoftが提供するクラウドベースのAIサービスで、AIの専門知識が無くても、言語や音声、視覚など人間が認識(コグニティブ)する機能を簡単に利用できるサービスです。
2022年6月現在、視覚・音声・言語・決定の4つのカテゴリで15の機能※1 が提供されています。
※1出典:Microsoft
Azure Cognitive Services 高品質の AI モデルを API としてデプロイする
https://azure.microsoft.com/ja-jp/services/cognitive-services/#overview
早速、試してみたところ、認識率と利便性の高さに驚きました。Azureクラウドをお客様に提供するエンジニアの立場で、Azure Cognitive Servicesで試したこと、その可能性をお話したいと思います。
1. Azure Cognitive Services とは
Azure Cognitive Servicesを端的に説明すると、"AIの専門知識不要で様々なAIを使える"ことに尽きます。今では様々な場面で「AI」を耳にすることも多く、無くてはならない存在になっています。
Microsoftがホームページで公開している情報を紐解くと、4つの特長があるようです。
特長① AIの専門知識が不要
AIを利用する場合、データサイエンスの知識やモデルの作成、AIを動かすための環境など、高いハードルを超えなければなりません。ところがAzure Cognitive Servicesでは、専門知識やモデル、環境や学習のために大量のデータを用意しなくても、学習済みのAIモデルを呼び出すだけで"AI"を利用できます。これは最大のメリットです。
特長② 多様な連携方式
アプリケーションとAzure Cognitive Servicesを連携する場合は、REST形式のWeb APIを利用することができます。例えば、業務システムで利用する場合、システムのプログラムからAzure Cognitive Servicesのサービスを呼び出すだけで利用することができるので、とても簡単にAIを使うことができます。C#やPython、JavaなどのSDKやライブラリも豊富に用意されていて、幅広い開発環境に対応しています。
特長③ 動作環境を選ばない
Azure Cognitive Servicesはパブリッククラウドサービスのため、利用するにはインターネット上でAzureと通信できる環境が必要になります。このため、セキュリティの観点からインターネットとの通信を遮断しているシステムでは利用することができないと考えてしまいますが、Azure Cognitive ServicesではDockerコンテナが用意されています。Dockerが動作するWindows、Linux環境であれば、オンプレミス型システムでも利用することができるようになっています。
特長④ 豊富なツール
C#、Python、AndroidなどのSDKやライブラリに加え、思いついたらすぐに試すことができるサンプルもたくさん用意されていますので、システムで使用する言語に合わせてAzure Cognitive Servicesを利用することができます。サービス機能を試すためのUIベースのツールも用意されており、機能を動かして視覚的に結果を確認できるのも大きな特徴です。例えばLanguage Studio※2 でAIを使った質問応答をさせてみたり、Form Recognizer Studio※3 でAI-OCRを試してみたりすることができます。
※2,3 Language Studio,Form Recognizer Studio
事前構築済みモデルを使ってコードを記述することなく自然言語処理や文字認識することができるUIツール
短所は・・・
いいことばかりというわけではありません。Azure Cognitive ServicesのAI処理モデルの中身は非公開です。ユーザー自身で機械学習のモデルに手を加えることができないため、学習データを増やしてもモデルの精度が上がらない場合があります。自分で修正しながら精度を上げていきたい場合は、モデルをカスタマイズできる「Azure Machine Learning」の利用検討が必要です。ただしAzure Machine Learningの利用にはAIの知識が必須になるため、利用のハードルが上がってしまいます。
まずはAzure Cognitive Servicesにあらかじめ準備されたモデルを利用して機械学習を手軽に使ってみることをおすすめします。大きなメリットが得られる潜在能力を持つサービスであることは間違いありません。
2. Azure Cognitive Services と Tesseract で文字認識を試してみた
ここではOCR機能の利便性を比較するため、文字が書いてある"画像"を利用してオープンソースの文字認識エンジン「Tesseract※4 」との比較を試してみます。
※4Tesseract とは
光学式文字認識エンジンであり、名称のTesseract(テッセラクト)とは四次元超立方体の意味。Apache Licenseの下でリリースされたフリーソフトウェアで多くの言語を認識できます。日本語の文字認識にも対応しています。
文字認識テスト
英数字と記号を使用した文書の画像を利用して、認識率と速度を計測します。OCRの手軽さを比較するため、画像は加工せずそのまま読み取ります。
条件
読み取り率向上を目的とした前処理(グレースケールやコントラストの調整など)は行わずにそのまま読み込む。読み取り対象は、英数字・記号の634字。
結果
実験①文字認識エンジン「Tesseract」でOCR
認識率:634文字中586文字(92%)を正しく認識しています。
認識速度:0.8ミリ秒
実験②Azure Cognitive Servicesの視覚認識サービス「Computer Vision」でOCR
認識率:634文字中634文字(100%)を正しく認識しています。
認識速度:3.8ミリ秒
考察
使用した文書画像には表形式の部分もありますが、英数字や記号などは印刷文字ではっきりしているので、どちらも90%以上の高い認識率になりました。画像には何も手を加えず、データを引き渡しただけですが、Azure Cognitive Servicesでは100%の精度で認識できました。Azure Cognitive Servicesは手書き文字にも対応しており、こちらもかなり高い認識精度になっています。一方でTesseractは、読み取りは非常に高速ですが、認識できた文字が小文字になっているなど不安定な部分もありました。
Tesseractで発生している誤認識の問題を解消するには一般的に、二値化、グレースケール化、HSV変換、ノイズ除去、エッジ抽出、コントラスト変換など、前処理を行う工夫が必要になります。
3. Azure Cognitive Services 活用事例
Azure Cognitive Servicesを「AIの専門知識不要で様々なAIを使える」と表現して整理しましたが、Azure Cognitive ServicesによりAIはグッと身近な存在になり得ると思います。
私のお客様の業務でAzure Cognitive Servicesを利用することで、より便利になる利用シーンを考え、検証しました。Azure Cognitive Servicesを利用する上で参考になればと思い、ご紹介します。
検証ケース① 自動撮影+OCRを活用したコンテナ番号の自動認識
私が担当するお客様では、工場に入場するコンテナ番号を紙に書いて控え、Excelに入力(手作業)して電子化しています。コンテナ番号を画像認識で電子化する技術はこれまでも存在しましたが、画像認識を行うパッケージシステムは高額な上に、天気や照明の当たり方で認識率が変わってしまう懸念がありました。
このため、Azure Cognitive ServicesのComputer Visionを使い、コンテナ番号を電子化するためのプロトタイプを開発、現在、実現に向けて検証を進めています。
- 画像認識は次のステップで行います。
-
-
1.Pythonプログラムで定点カメラの動画の変化を認識し、静止画を生成(自動シャッターの役割)
-
2.静止画データをAzure Cognitive Servicesへ送信し、Computer Visionで文字を抽出して結果をJSON形式で受け取る
-
3.受け取った文字列から、Pythonプログラムでコンテナ番号のみを抽出し、CSVやExcel形式で出力
-
コンテナの背面には多くの文字情報があり、一度にすべての情報を読み取ります。
その後、決められたコード体系に合致する文字列だけを抽出してコンテナコードとして認識します。
◆自動撮影+OCRの適用例
検証ケース①で説明した、動画の変化を捉えて自動的にシャッター撮影、生成した静止画から文字認識を行う仕組みを利用することで、下の図に示したようなシステムを構築できます。読み取った文字データをメールで通知したり、他のシステムへ連携したりすることができるようになります。
※Functions:サーバレスなアプリケーション開発を実現するAzureのサービス
※Logic Apps:システムを最小限のコーディングまたはローコードで統合して自動するAzureのサービス
検証ケース② AI-OCRを活用した手書き帳票の読み取り
私が担当するお客様では請求書などの紙伝票をOCRで電子化することは行っていました。しかし、導入しているOCRは手書きには対応しておらず、認識率が非常に悪いため、読み取り後の数値の確認や手修正に多くの時間を費やしていました。
多くのOCR製品は辞書と呼ばれるマスターと、読み取った画像をマッチングして文字を判定しますが、汚れのある伝票や手書き伝票はどうしても認識率を上げることが難しい状況でした。そこで、カスタムモデルを作成できるAI-OCRである Form Recognizer(構造化された文書向けの文字認識)を使うことで認識率を上げ、汚れのある伝票や手書き伝票でも高い精度で認識できるようお客様と一緒に取り組んでいます。実際にお客様が利用している請求書で読み取りテストをしたところ、97%の認識率という高い精度を出すことができました。
- カスタムモデルの作成と読み取りは次のステップで行います。
-
-
1.学習用の請求書を選定
-
2.読み取る項目ごとにタグ付け
-
3.タグ付けした学習用データから請求書モデルを作成
-
4.請求書モデルを利用して、実際の請求書を読み取り
-
◆AI-OCRの適用例
帳票類を撮影・スキャンし、メールに添付して送信または共有フォルダへアップロードすることで、自動的に読み取ります。テキストデータへの変換後、後続のシステムへ連携することができるようになります。
※Functions:サーバレスなアプリケーション開発を実現するAzureのサービス
※Logic Apps:システムを最小限のコーディングまたはローコードで統合して自動するAzureのサービス
4. さいごに
いかがでしたでしょうか。
総務省の情報通信白書では「AIの民主化」が取り上げられ「AIを誰もが使えるようにする」という考え方が広まりつつあります。Azure Cognitive Servicesの登場で、AIはより身近なテクノロジーになりました。
今回ご紹介したのは、Azure Cognitive Servicesのカテゴリ「視覚」にある一部の機能です。これはMicrosoftが提供するAzureサービスの一部にすぎません。その他のサービスと組み合わせることで可能性はさらに広がり、これまでにない新しいサービスを作り出すことができるようになり、お客様の課題の解決につながることと思います。
まとめ
進化したAI技術を有効活用することで、企業DXを進めてはいかがでしょうか。
当社では、私をはじめ、AWSやAzureなどのクラウドサービスに詳しいITエンジニアが多数、在籍しています。AIに限らず、"オンプレミス型システムをクラウドに移行したい"、"システムをクラウド上に構築したい"といったご相談があれば、遠慮なくお問い合わせいただければ幸いです。
2022年10月19日(水) ~ 10月21日(金) 東京ビッグサイトで開催される「スマートファクトリーJapan 2022」に本コラムで紹介したコグニティブサービスを参考出展する予定です。
他にも製造業における生産管理・製造現場の先進化・効率化を実現するサービス、ソリューションを紹介しています。