クラウドエンジニアブログ

Azure Custom Vision Service のご紹介

大山 祥彦

大山 祥彦

はじめに

最近は民間企業でも 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 の概要

Custom Vision Service は、Azure Cognitive Services という AI を活用した様々な機能を利用するための API の一つで、その中でも画像データの認識を行うことができます。画像認識のための API は、従来からある Computer Vision という API もあるのですが、Custom Vision は、その名の通りユーザーが用意した画像を学習させることによって、独自のカスタマイズされた画像認識サービスが作成できるというのが最大の特徴です。

Custom Vision Service


Computer Vision では、サービスで用意されたラベル(その画像に写っている対象を分類するタグのこと。例えば「猫」が写っている画像ならその画像のラベルは「猫」となる)を画像に付けるという分類は出来るのですが、当然ながらその決められたラベルに含まれる対象しか正しく認識できないという問題点がありました。

しかし Custom Vision ではその分類のラベルを自由に設定できるため、実際の業務での利用の幅はこれまでより大きく広がっており、ユーザーは自身の業務に活用できるレベルの画像分類タスクを Custom Vision の API の利用によって比較的容易に実現することが可能になったと言えます。

Custom Vision Service 利用の流れ

Custom Vision の機能を試してみるだけなら、以下のポータルサイトから GUI 操作で試すことができます(なお Internet Explorer はサポート外となりサインインできません)。
https://www.customvision.ai/

ポータルサイトにサインイン後、 Custom Vision のプロジェクトを作成することで、すぐに機能を試すことができます。ただしこの際に Azure のリソースグループを作成しない場合、利用できるのが Limited Trial のみになっており、トランザクション数や作成できるプロジェクト数などに制限があります。制限が少ない従量課金版を利用する場合は、Azure ポータルか Custom Vision ポータルのいずれかよりリソースグループの作成を行うことになります。

とはいえ、いずれの場合でも利用する流れは同じで、以下のようなフローで画像認識プロジェクトの学習を行っていきます。

1. イメージのアップロード

用意した画像データをアップロードします。 ポータルサイトから GUI 操作する場合、アップロード後に画像に適切なラベルを付けていきます。

イメージのアップロード画面


2. アップロードしたイメージでトレーニング

画像のアップロードが完了したら、その画像で学習を行います。あまり多い画像枚数でなければ学習時間はそこまで要しません。以下は学習結果がどの程度の精度になったかのパフォーマンス表示画面です。

パフォーマンス表示画面


3. 画像認識精度の評価

学習が完了したら、認識させたい画像を GUI 操作でアップロードして、その画像に対する認識結果(どのラベルに分類されるか)を得ることができます。

猫の画像分析

例えばこの画像の場合、cat の Probability が 99.9% なので猫ということを正しく認識できていることになります。 この画像の認識操作は、GUI 操作の場合1枚ずつしか行えないので、もし大量の画像認識やユーザーが自身のサービスで利用したいという場合は、後述するように提供されている API を利用することになります。

4. イメージの追加でアクティブに精度改善

学習させた Custom Vision のプロジェクトは、さらに画像を追加して学習し直すことで、精度を継続的に向上させていくことができます。そのため、始めは少数の画像で学習させてサービスを開始し、その後画像データが集まっていくにしたがって学習を繰り返し、精度の向上を行っていくということが可能です。

画像データが集まっていくにしたがって学習を繰り返す


API を使った外部システムとの連携

前述したように、GUI 操作で画像認識を行うには、認識対象の画像を1枚ずつアップロードしてその都度結果を得る必要があります。そのため、大量の画像認識を必要とするタスクに使用する場面では、提供されている API を通して実行することになります。

この API を利用して、外部のマシンで API のリクエストを自動実行するシステムを作れば、大量の画像認識が必要となるタスクに Custom Vision を用いることができます。また、学習用の API を使用すれば、自動で再学習を行い自ら精度を高めていくという、より高度な画像認識システムの構築に活用することも可能となります。

API を使った外部システムとの連携


利点と苦手な分野

Custom Vision Service の利点をまとめると次のようになるかと思います。

  • 自身で用意した画像に独自のラベルをつけてオリジナルの画像認識サービスが作れる
  • 比較的少ない画像(1つのラベルにつき最低5枚、推奨枚数50枚程度)からでも、画像の認識サービスが作れる
  • 画像の追加と学習の繰り返しによって、認識精度を継続的に改善していくことが出来る

一方で苦手とする分野もあり、以下のようなタスクに使用するにはあまり向いていません。

  • 画像の細かい違い(キズや凹みなど)の検出
  • 複数の認識対象が含まれている画像の分類

ただし、後者のタスクについては物体検出用の API が Limited Trial として提供開始されているので、今後は複数の認識対象が含まれている画像についても、Custom Vision である程度対応できるようになっていくことが期待できます。

Custom Vision で認識しやすい画像の例

以下のように認識したい対象が画像内の主要部分を占めている画像は認識しやすいです。

Custom Vision で認識しやすい画像の例

Custom Vision で認識がうまくいかない画像の例
  • 認識したい対象がイメージ内の主要部分でない
  • 色々な対象が写り込んでいる
Custom Vision で認識がうまくいかない画像の例

さいごに

今回は Azure の Custom Vision Service について紹介しましたが、画像認識のように比較的高度な認識機能であっても、それを利用する敷居は現在かなり下がってきており、今後はより広い領域で画像認識が活用されていくと考えられます。

また、Azure の Cognitive Services には画像分野以外にも音声や言語処理に利用できる API が色々用意されています。それらの API を利用すれば、様々な認知機能を利用したシステムを構築することが可能で、一般に AI と呼ばれる領域の機能がこの先どんどん民間企業で活用されるようになっていくという流れが続いていきそうです。

今回ご紹介した Custom Vision Service を試してみたい、簡単な画像分類の仕組みを用意したい等のご要望がございましたら、是非弊社にお問い合わせください。



次回予告
  • Azure ML Studio と Azure ML Services の紹介



【総合】お問い合わせ

ソリューションに関する全般的なお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録