今から始める Cognitive Services ~ Custom Vision 編

  • by

3/25 夜に開催された Cogbot Meetup Online #27 で「今から始める Cognitive Services」と題して、Microsoft Azure Cognitive Services を使ってみたい方々向けに Custom Vision の解説を担当いたしました。

Cognitive Services を使うまでの手順

Cognitive Services は Web API なので、使うまでの手順は以下の 3ステップです。

  1. Azure サブスクリプションを取得する
    • Azure 無料試用版でも良いので、Azure サブスクリプションにサインアップします
  2. 使いたい Cognitive Services のサービスを作成する
    • 1. の Azure サブスクリプションを使って、Azure Portal から使いたい Cognitive Services のサービスを作成します。これで Web API URL と API キー (サブスクリプションキー、アクセスキー とも言います) が確定します
  3. サービスを使う
    • 2. で取得した Web API URL にリクエストを送信して利用します。ヘッダーに API Key をバインドします。
    • カスタムなど設定が必要なサービスは Management API を使って設定する、または専用のポータルから設定を行います。

※詳しい手順は Azure サブスクリプション & Cognitive Services 準備 をご覧ください。

Custom Vision をはじめる

Custom Vision は自分が画像認識させたいオブジェクトの画像を使って、専用の画像識別エンジンを作成、Web API や 1 MB程度の ML モデル(CoreML, TensorFlow, ONNX など)として Export して利用できるサービスです。

画像識別エンジンのタイプは Classification と Object Detection の 2 種類があり、それぞれ用途別に Domain を選択できます。(“General” を選択すれば、一般的な用途で利用できます)

Custom Vision ポータルを使ってカスタム画像識別エンジンを 3 ステップ作成

※ 詳しい手順は Custom Vision ハンズオン をご覧ください。

Custom Vision の専用ポータルから、画像をアップロードし、モデルの学習(Train) を行い、Web API を公開 (Publish) します。画像を追加して再度学習させたモデルを複数保存しておくことができます。

Web API の URL およびアクセスキーを取得して、リクエストを送信します。 識別したい画像は直接 HTTP Request の Body にアタッチするか (application/octet-stream)、BLOB ストレージなどに置いて URL でアクセスできるようにして JSON で指定します。画像の識別結果は JSON で取得できます。

Custom Vision と他の Cognitive Services Vision 系サービスとの使い分け

画像識別 API として、Custom Vision の他にも Face API や Computer Vision API などがありますので、識別したい対象によって効率よく使い分けてください。

人間の顔の認識 → Face API

Face API をご利用ください。例えば 5 人の芸能人(*)のうち誰に似ているか?という判定エンジンを作りたいときは、Face API に顔写真をアップロードすることで顔識別エンジンを作成、Classification として判定するのが近道です。

(*) Face API ほか Cognitive Services にアップロードするカスタム用学習データ(画像) は 肖像権などに抵触しないよう、ご自身に利用権限があるものをお使いください。

人間の姿の認識 → Computer Vision API

画像に人の姿が映っているかどうか判定する場合は、Computer Vision API で Object Detection として検出できます。

人間の姿の認識を行う場合でも Custom Vision を利用した方が良い場合

人間が取っているポーズ (ハンドサインやヨガポーズなど) は Custom Vision の Object Detection をご利用ください。また、混雑具合など厳密に人間の姿(人数)を数える必要がない場合は、Custom Vision の Classification で判別することが可能です。

簡易的にまとめると、Face | Computer Vision | Custom Vision は以下のように使い分けていただけるとよろしいかと思います。

発表資料

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください