最近は民間企業でも AI や機械学習を活用したサービスが利用されるようになり、知的な判断を行うソフトウェアやアプリケーションを使うハードルはどんどん低くなってきています。
しかしハードルが下がったとはいえ、一から AI 的なシステムを作ろうとするとある程度の専門知識や学習を行うためのマシンリソース、そして学習用に大量のデータの用意が必要になってしまい、簡単に実現するのが難しいというのが現状です。
そこで今回は、特別な専門知識や大量のマシンリソースがなくても、比較的簡単に AI による画像の認識機能を利用することができる、Azure の Custom Vision Service という機能について紹介したいと思います。
Custom Vision service URL
https://azure.microsoft.com/ja-jp/services/cognitive-services/custom-vision-service/
Custom Vision Service は、Azure Cognitive Services という AI を活用した様々な機能を利用するための API の一つで、その中でも画像データの認識を行うことができます。画像認識のための API は、従来からある Computer Vision という API もあるのですが、Custom Vision は、その名の通りユーザーが用意した画像を学習させることによって、独自のカスタマイズされた画像認識サービスが作成できるというのが最大の特徴です。
Computer Vision では、サービスで用意されたラベル(その画像に写っている対象を分類するタグのこと。例えば「猫」が写っている画像ならその画像のラベルは「猫」となる)を画像に付けるという分類は出来るのですが、当然ながらその決められたラベルに含まれる対象しか正しく認識できないという問題点がありました。
しかし Custom Vision ではその分類のラベルを自由に設定できるため、実際の業務での利用の幅はこれまでより大きく広がっており、ユーザーは自身の業務に活用できるレベルの画像分類タスクを Custom Vision の API の利用によって比較的容易に実現することが可能になったと言えます。
Custom Vision の機能を試してみるだけなら、以下のポータルサイトから GUI 操作で試すことができます(なお Internet Explorer はサポート外となりサインインできません)。
https://www.customvision.ai/
ポータルサイトにサインイン後、 Custom Vision のプロジェクトを作成することで、すぐに機能を試すことができます。ただしこの際に Azure のリソースグループを作成しない場合、利用できるのが Limited Trial のみになっており、トランザクション数や作成できるプロジェクト数などに制限があります。制限が少ない従量課金版を利用する場合は、Azure ポータルか Custom Vision ポータルのいずれかよりリソースグループの作成を行うことになります。
とはいえ、いずれの場合でも利用する流れは同じで、以下のようなフローで画像認識プロジェクトの学習を行っていきます。
用意した画像データをアップロードします。 ポータルサイトから GUI 操作する場合、アップロード後に画像に適切なラベルを付けていきます。
画像のアップロードが完了したら、その画像で学習を行います。あまり多い画像枚数でなければ学習時間はそこまで要しません。以下は学習結果がどの程度の精度になったかのパフォーマンス表示画面です。
学習が完了したら、認識させたい画像を GUI 操作でアップロードして、その画像に対する認識結果(どのラベルに分類されるか)を得ることができます。
学習させた Custom Vision のプロジェクトは、さらに画像を追加して学習し直すことで、精度を継続的に向上させていくことができます。そのため、始めは少数の画像で学習させてサービスを開始し、その後画像データが集まっていくにしたがって学習を繰り返し、精度の向上を行っていくということが可能です。
前述したように、GUI 操作で画像認識を行うには、認識対象の画像を1枚ずつアップロードしてその都度結果を得る必要があります。そのため、大量の画像認識を必要とするタスクに使用する場面では、提供されている API を通して実行することになります。
この API を利用して、外部のマシンで API のリクエストを自動実行するシステムを作れば、大量の画像認識が必要となるタスクに Custom Vision を用いることができます。また、学習用の API を使用すれば、自動で再学習を行い自ら精度を高めていくという、より高度な画像認識システムの構築に活用することも可能となります。
Custom Vision Service の利点をまとめると次のようになるかと思います。
一方で苦手とする分野もあり、以下のようなタスクに使用するにはあまり向いていません。
ただし、後者のタスクについては物体検出用の API が Limited Trial として提供開始されているので、今後は複数の認識対象が含まれている画像についても、Custom Vision である程度対応できるようになっていくことが期待できます。
以下のように認識したい対象が画像内の主要部分を占めている画像は認識しやすいです。
今回は Azure の Custom Vision Service について紹介しましたが、画像認識のように比較的高度な認識機能であっても、それを利用する敷居は現在かなり下がってきており、今後はより広い領域で画像認識が活用されていくと考えられます。
また、Azure の Cognitive Services には画像分野以外にも音声や言語処理に利用できる API が色々用意されています。それらの API を利用すれば、様々な認知機能を利用したシステムを構築することが可能で、一般に AI と呼ばれる領域の機能がこの先どんどん民間企業で活用されるようになっていくという流れが続いていきそうです。
今回ご紹介した Custom Vision Service を試してみたい、簡単な画像分類の仕組みを用意したい等のご要望がございましたら、是非弊社にお問い合わせください。