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

画像のデータセット作成を Azure ML 上で!Azure ML のラベル付け機能のご紹介

八木 真理奈

八木 真理奈

こんにちは。データサイエンティストチームの八木です。

画像のラベル付け、皆さんどうされていますか?地味で大変ですが、後々の工程にも影響を与える大切な作業ですよね。現在たくさんのアノテーションツールが出ており、ご自身のタスクや状況にあったツールを使用されていると思いますが、実は Azure Machine Learning (Azure ML) でも画像データのラベル付けができるのをご存知でしょうか。今回は Azure Machine Learning スタジオのラベル付け機能を使用して、楽に早くラベル付けを行う方法をご紹介します。





「機械学習導入支援サービス」はこちら


Azure Machine Learning スタジオとは

まず、Azure Machine Learning とは、Microsoft が提供する機械学習モデルのトレーニング、デプロイ、自動化、管理などに使用できるクラウドベースの機械学習サービスのことです。その中のサービスの一つである Azure Machine Learning スタジオは、Azure ML でのデータサイエンティスト開発者向けの Web ポータルとしてたくさんの機能が用意されており、以下のサービスで構成されています。
※ML Studio (classic) と Azure Machine Learning スタジオは別物です。Microsoft では、新しく使い始める方には ML Studio (classic) ではなく、Azure Machine Learning の使用を推奨しています。


Azure Machine Learning スタジオには主に以下の機能があります。

  • Notebooks
    • Jupyter Notebook を Azure ML 上のマシンで実行することができます。
  • 自動 ML
    • アルゴリズムとハイパーパラメーターのさまざまな組み合わせを自動で試行し、最適な機械学習モデルを見つけることができます。
    • 自動機械学習、Automated machine learning、Automated ML、AutoML などと書かれているときもあります。
  • デザイナー
    • ドラッグアンドドロップ モジュールを使用して、機械学習モデルを構築することができます。
    • ML Studio (classic) 時代によく使っていた人も多いと思いますが、新しくデザイナーという名前で生まれ変わりました。
  • データのラベル付け
    • 画像データにラベル付けを行うことができます。今回はこのデータのラベル付け機能を使ってアノテーションをしてみたいと思います。

Azure ML のデータのラベル付け機能を使ってみて、私が思う良い点と気を付ける点は以下です。

  • 良い点
    • ダッシュボードでラベル付けの進捗や実行者、かかった時間などを確認することができる
    • 支援付き機械学習データ ラベル付け (ML Assist) を使用することができる
  • 気を付ける点
    • 自動でアノテーションのタグ付けを行ってくれる ML Assist という機能があるが、これを使用するにはアノテーションしたデータが 300枚程度必要とされている
    • エクスポートは CSV 形式、 COCO 形式、または Azure Machine Learning データセットのみ対応

以降の章では、画像分類を行う際の Azure ML の データのラベル付け機能の簡単な使い方を、「事前準備」、「ラベル付けプロジェクトの作成」、「ラベル付け」、「ML Assist 機能」、「ラベル付けデータのエクスポート」の 5ステップでご紹介します。


「機械学習導入支援サービス」はこちら


① 事前準備

今回は、Oxford-IIIT Pet Dataset というデータセットを使っていきますので、必要な方は以下からダウンロードしてください。これは CC BY-SA 4.0 のもと配布されている、犬・猫のデータセットです。犬 25種と猫 12種の合計 37種 7500枚程度の画像から構成されています。


あとは Azure ポータルからご自身のサブスクリプションにアクセスし、Azure ML を作成すれば事前準備は完了です。次は Azure ML での設定に進みましょう。


「機械学習導入支援サービス」はこちら


② ラベル付けプロジェクトの作成

ラベル付けプロジェクトは、Azure Machine Learning にて使用できます。


  1. 以下から作成した Azure ML にアクセスし、ホーム画面左の [管理] ウィンドウから [データのラベル付け] をクリックします。
  2. Form Recognizer



  3. [+作成] をクリックします。
  4. Form Recognizer


  5. プロジェクトの詳細を設定します。
  6. [プロジェクト名] を入力し、[ラベル付けタスクの種類] を選択したら、[次へ] をクリックします。

    今回は dog と cat で画像の分類を実施したいので、以下としました。

    • プロジェクト名 : pet-classification
    • ラベル付けタスクの種類 : 画像分類の複数クラス

    • Form Recognizer

    ラベル付けタスクの種類は、以下から選択することができます。

    • 画像分類の複数クラス
      • ラベルのセットから "1つのラベル" だけを画像に適用する
    • 画像分類の複数ラベル
      • ラベルのセットから "1つまたは複数" のラベルを画像に適用する
      • 例えば 1つの写真に "犬" と "日中" の両方のラベルをつけることができる
    • オブジェクト ID (四角形領域)
      • 画像内の各オブジェクトにラベルと境界ボックスを割り当てる (物体検知のラベル付け)
    • インスタンスのセグメント化 (ポリゴン) (プレビュー)
      • 画像内の各オブジェクトにラベルを割り当て、その周囲にポリゴンを描画する (セグメンテーションのラベル付け)
      • ブログ執筆時点 (2021年3月) では、パブリック プレビューの段階

  7. データセットを選択または作成します
  8. ここからデータセットの作成に入ります。
    ① [+データセットの作成]をクリックし、[ローカルファイル] をクリックします。

    Form Recognizer


    ② データセットの名前を入力します。入力が完了しましたら、[次へ] をクリックします。
    今回は、データセットの名前は pet-dataset としました。データセットについて説明を残しておきたい方は、[説明] にデータセットの概要を記入しておきましょう。

    Form Recognizer


    ③ [参照] をクリックするとファイル選択の画面が開きますので、データを選択します。
    今回は犬と猫の画像を 5枚ずつ選択しました。

    Form Recognizer


    ④ [次へ] をクリックします。

    Form Recognizer


    ⑤ 最後に確認の画面が出ますので、問題なければ、[作成] をクリックします。

    Form Recognizer


    データセットの作成に成功すると、以下のように通知されます。

    Form Recognizer


    ⑥ 作成したデータセットを選択し、[次へ] をクリックします。

    Form Recognizer


  9. 増分更新 (オプション) を設定します。
  10. オプションとして、データセットを定期的にチェックしデータセットの更新があった際に新しいデータとして自動で追加してくれる機能があります。今回は途中で画像を増やす場合があるため、[増分更新を有効にする] をオンにし、[次へ] をクリックします。

    Form Recognizer



  11. ラベル クラスを入力します。
  12. 今回は dog と cat の 2つを入力し、[次へ] をクリックします。

    Form Recognizer



  13. 命令のラベル付け (省略可能) を入力します。
  14. [詳細なタスク手順の URL] には、データセットの詳細 URL やラベル付けの資料などのリンクを貼っておくと便利です。また、[タスクの説明] の箇所には手順やラベル付けの際の注意点など、ラベル付け担当者に向けた説明文を記載できます。


    Form Recognizer



  15. ML Assist によるラベル付け (オプション) を入力します。
  16. ML Assist とはアノテーション前のデータに対して付与するラベルを推定してくれる機能です。推定には手動でラベル付けしたデータを用いてトレーニングされたモデルが使用されます。これは、Ignite 2020 でデザイナーや AutoML とともに GA が発表された機能で、機械学習で学習・推論したラベリング結果を活用することでラベリング作業を加速できます。

    この機能を選択すると、GPU の Azure Machine Learning コンピューティングのコストが発生するので、注意してください。

    [ML Assist によるラベル付けを有効にする] を選択します。コンピューティング先は、[既定の使用] を選ぶと、既定のコンピューティングクラスターが作成されます。[カスタマイズ] を選択すると、自分でコンピューティング クラスターのスペックを選択することができます。

    Form Recognizer


    [プロジェクトの作成] をクリックししばらく待っていると、以下のように [プロジェクトの作成が失敗しました] と表示されることがあります。内容をよく見ると、[GPU コンピューティング ターゲットを作成するための十分なクォータがありません。要求するクォータを増やして、カスタム コンユーティングを作成し、支援付き機械学習ラベル付けを有効にできます。] とのことですので、まずご自身の Azure ポータルからクォータを確認し不足している方は引き上げ要求を行いましょう。

    Form Recognizer


    ただ、私の方で試したときは、クォータが十分にある状態にもかかわらず、同エラーが出てしまったため、[カスタマイズ] で作成することにしました。その際の手順もご紹介します。

    ① [カスタマイズ] を選び、[作成] をクリックします。

    Form Recognizer


    ② [コンピューティング クラスターの作成] 画面が出ましたら、自分が作成したいスペックのマシンを選択します。
    ※私のケースでは、以下のページではまだマシン選択ができませんでした。いったん [次へ] をクリックします。

    Form Recognizer


    ③ [コンピューティング クラスターの作成] 画面に進んだら、コンピューティング名、最小ノード数など必要な情報を記入します。
    ※私と同じケースの方は、ここで各情報を入力後に [戻る] を押し、[仮想マシンの選択] のページに戻ります。

    Form Recognizer


    すると、[仮想マシンの選択] のページに戻ると好きなマシンを選択できるようになっていました。

    Form Recognizer


    ④ マシンの選択と情報の入力が完了したら、[作成] をクリックします。

    Form Recognizer



  17. [プロジェクトの作成] をクリックします。
  18. Form Recognizer


    無事プロジェクトが作成できました。

    Form Recognizer




「機械学習導入支援サービス」はこちら


③ ラベル付け

では、早速ラベル付けに入っていきます。先ほど作成したダッシュボードを見ていきましょう。

  1. 先ほどのページから作成したプロジェクト名をクリックします。
  2. Form Recognizer



  3. 以下のダッシュボード画面に遷移しますので、ラベルデータをクリックします。
  4. Form Recognizer



  5. [ラベル付けの開始] をクリックします。
  6. Form Recognizer


    ※[方法] タブには手順「② ラベル付けプロジェクトの作成」の「7.命令のラベル付け (省略可能)」で入力した情報が表示されます。[詳細な指示の表示] には、登録した URL のリンクが貼られていますので、ラベル付けの資料などにすぐアクセスすることができます。

  7. 右ウィンドウの [タグ] から、該当するタグを選択し [送信] をクリックします。
  8. [送信] のクリックは [Alt]+Enter のショートカットキーでも実行することができます。


    Form Recognizer


    あとは、ぽちぽちとラベル付けを行っていくだけです。タグ付けした結果は自動保存され、再開時は前回終了した位置から再開できます。
    ここで、複数人でラベル付けを行う際などに便利な機能をご紹介します。
    [データ] の [ラベル付けデータ] から、[プロパティ] を選択すると、画像の詳細やラベル付けにかかった時間を見ることができます。

    Form Recognizer


    ラベルが誤っている場合は、ページの上部で [Reject] (却下) を選択します。 タグが削除され、画像はラベル付けされていないデータとして戻されます。


    Form Recognizer


    以下のように表示方法を変えれば複数の画像のアノテーション情報を表形式でまとめて確認することもできます。


    Form Recognizer



「機械学習導入支援サービス」はこちら


④ ML Assist 機能

ここまで来ましたら、ML Assist 機能を試してみたいと思います。

  1. まずは画像を増やします。
    画像の追加は、以下手順で実施します。
  2. ① Azure ML のデータストアから、workspaceblobstore を選択し、その中のアカウント名をクリックします。

    Form Recognizer


    ② Azure ポータルのストレージアカウントのページに遷移するので、左ウィンドウの [Storage Explorer (プレビュー)] をクリックします。

    Form Recognizer


    ③ [Azure ML-blobstore-{任意の文字列}] の UI から、作成した日時のフォルダを選択すると、以下のようにAzure ML から登録した画像が確認できますので、[アップロード] をクリックし、必要な枚数だけアップロードします。
    今回は 400枚程度アップロードしてみました。

    Form Recognizer


    ※ここでアップロードしてから Azure ML に反映されるまで、時間がかかることがあります。

    Azure ML のデータラベル付けのダッシュボード画面から確認すると、ラベル付けに使用するデータが増えていることが確認できます。

    Form Recognizer




  3. ラベル付けを実施します。
  4. 100枚ほどラベル付けを実施してから、ダッシュボード画面を見てみると、[ML によるラベル付けの実験] の [トレーニング] の欄が実行中に変わっていることが分かります。

    Form Recognizer


    ただ、[ML によるラベル付けの実験] の欄を見ると、[トレーニング] は実行されていますが、[推論]は開始されていません。まだラベル付けを自動化するには足りないようです。
    そこで画像を150枚追加し、合計 400枚程度ラベル付けをしてみたところ、推論が実行され [事前ラベル付け] に値が入っていることを確認できました。

    Form Recognizer


    [ラベル データ] から、画像を確認してみると、ML Assist によるラベル付けが行われ、タグが選択されている状態で画像が表示されています。あとは、画像とラベルがあっているかを確認し、送信するだけになりました。

    Form Recognizer


    トレーニングや推論はラベル付けした画像数に応じて自動で実行されるようです。別のプロジェクトで実施した際は 300枚程度で事前ラベル付けができていましたので、最低限で試したい方は、300 枚程度アノテーションした状態で一度確認してみてください。



「機械学習導入支援サービス」はこちら


⑤ ラベル付けデータのエクスポート

ラベル付けされたデータをエクスポートは大変簡単で、[エクスポート] からご自身が使用したい形式でエクスポートするだけです。エクスポートは、ラベル付けがすべて終わっていない状況でも可能です。


Form Recognizer


現在は、CSV ファイル、COCO ファイル、Azure ML データセットとしてエクスポートすることが可能です。また、Azure ML データセットを Pandas データフレーム、もしくは、Torchvision データセットとして Notebooks で読み込む方法についてドキュメントも用意されていますので、気になる方はこちらもあわせてご確認ください。


無事ラベル付けを行いエクスポートすることができましたので、自分の使用したいサービスやモデルで使用してみましょう。

「機械学習導入支援サービス」はこちら


さいごに

今回は、Microsoft の Azure ML を使用して画像データセットのラベル付けを実施してみました。Azure データソースとの連携が容易で、アノテーションしたデータをすぐに Azure ML で取り込んで使用できるので、Azure ML で画像分類、物体検知などをされる際はぜひ Azure ML のデータのラベル付け機能を使ってみてください。

弊社では、このような Azure のサービスを使用した AI 活用支援をはじめ、様々な分野での機械学習モデル構築を承っております。現行の作業を軽減してより重要な作業に時間を当てたい、取得しているデータを活用して課題解決を行いたいなど AI 活用を検討中のご担当者の方がいましたら、ぜひお問い合わせください。まず何から始めればよいか悩んでいるといったお客様も、お気軽にご相談いただければと思います。


※参考 URL

関連ページ

「機械学習導入支援サービス」はこちら

お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。

ピックアップ

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