Microsoft

【簡単に機械学習】Custom Visionで画像分類

こんにちは、Takaです。

今回は、Azure が提供する Custom Vision について株式会社キカガクのトレーニングを受けたので、その内容を元に Custom Vision についてまとめようと思います。

キカガクは Udemy でも AI コースを提供している AI・機械学習に関する教育・人材育成・コンサルティングを行う会社です。僕が受けたトレーニングは代表取締役社長の吉崎 亮介さんが講師を務めており、新規事業における AI の活用で理解しておくべき概念や Custom Visionと Azure ML Studio のハンズオンでしたがとても勉強になりました。

Custom Vision とは?

Microsoft Cognitive Service は、画像や音声を認識する機械学習モデルを Web API として提供しています。機械学習を導入する上で困難な教師データの準備やモデルの構築をせず利用できることが最大のメリットです。Custom Vision はこの Cognitive Service の1つですが、画像の分類とオブジェクトの検出に特化した API です。

custom-vision-image
引用元:Microsoft Custom Vision Service

今回のトレーニングでは、キカガクが事前用意している犬と猫の画像を読み込んで教師データとし、その後猫や犬、もしくは関係のない画像をテストすることで、画像を分類するという処理を行います。

Custom Vision のリソースを作成

まずは Custom Vision をリソースとして Azure 上で作成しましょう。もし Azure 無料アカウントを持っていない場合は、MacでWindowsを使うの記事をご参考ください。まずは、「+リソースの作成」で新しいリソースを作成します。”Custom Vision” を検索しましょう。

create-cv-resource

見つかったら「作成」ボタンをクリックします。

create-button

名前などを任意で入力します。Prediction や Training の価格で使われる tier は F0 にしておきます。「作成」をクリックしましょう。

create-resource

作成に時間はかからないので、すぐできると思います。作成した Custom Vision をクリックして、「Custom Vision ポータル」をクリックします。

open-cv-portal

「Sign In」をクリックします。

sign-in

チェックをいれて「I agree」をクリックします。

agreement

これで Custom Vision のポータルにアクセスできました。

Custom Vision プロジェクトを作成

「NEW PROJECT」をクリックします。

create-cv-project

詳細を入力します。「Project Types」では、写真の分類を行うので “Classification” 「Classification Types」では “Multiclass” を選択します。「Domain」は “General” にします。「Create project」をクリックしましょう。

details-of-project

訓練データのアップロード

「Add images」で画像をアップロードしていきます。トレーニングではキカガクさんが提供している猫と犬の画像データをアップロードしました。
※もし自身で試すのであれば、事前に猫や犬の画面を用意して利用してみてください。マイクロソフトの公式ドキュメント「Custom Vision で分類子を構築する方法」を読むと、最低 30 枚の画像が必要と記載されています。

add-image

アップロードしたら「My Tags」でタグをつけましょう。ここでは “ネコ” としました。

categorize-cats

アップロードが完了したら、+ボタンで今度はイヌの画像をアップロードしましょう。

add-image2

「My Tags」は “イヌ” としました。

categorize-dogs

モデルをトレーニング

アップロードした画像データをもとに、Cognitive Service のモデルをトレーニングします。画面上の緑のボタンで「Train」をクリックします。

click-train-button

すると、訓練の結果が表示されます。Precision は精度、Recall は 再現率を表していますが、99.2% の精度で「イヌ」か「ネコ」かを判断できるようになりました。

prediction

訓練済みモデルのテスト

トレーニングされて精度が上がったモデルを実際に使ってみましょう。例えば、ジブリの “猫バス” の画像を検索してみて、画像をローカルにダウンロードします。

google-search-nekobus
引用元:「ネコバス」の画像をひたすら集めてみた(NAVER)

「Quick Test」をクリックして、先ほどの “猫バス” をテストしてみました。

test-model

おぉ!!猫バスは 96.1% ネコとして判断されました。すごい!

test-result-neko-bus

その他にも、トラをテストしてみると。

test-tiger-image
画像引用元:ウィキペディア(Wikipedia) 「トラ」

やっぱりトラはネコ科だもんね。そうだよね。

自分はどうかな?

check-self-icon

99% ネコ…もうネコですよ(笑)これはおもしろいなぁ~。他にもいろいろな画像をアップロードしてテストしてみるといいですね。

予測URLでプログラムから画像分類もできる

これは結構高度なので、公式ページのリンクだけ載せておきます。Visual Studio で C# のアプリケーションに 予測 API の使用に記載があるコードを貼り付けて使うことでCustom Vision のプロジェクトにアクセスすることもできるようです。ここでは試してみませんが、もし気になる方はサイトをみて動作確認してみてください。

最後に

今回のトレーニングでは Custom Vision 以外にも Azure ML Studio を使って賃料予想も行いましたが、ML Studio についてはまた別の機会に書こうと思います。

今回講師をしていただいた吉崎 亮介さんのおかげで Custom Vision に触れることができました。キカガクの Udemy コースも受講してみようと思います。

udemy-course-kikagaku
Pythonで学ぶアルゴリズム論はこちら

それでは、今回はここまで!