【初心者向け】Azure Custom Vision Serviceを使って写真の天気を判別するモデルを作る

はじめに

この記事では、Azure Custom Vision Serviceを使って画像分類モデルを作成→トレーニング→テストをする流れについてまとめていきます。

Azure Custom Visionとは

Azure Custom Visionは、独自の画像識別子を構築、デプロイ、改良できるようにする画像認識サービスです。 画像識別子は、視覚特性に従って画像に (クラスまたはオブジェクトを表す) ラベルを適用します。 Computer Vision サービスとは異なり、Custom Vision ではユーザーがラベルを指定し、それらを検出するためのカスタム モデルをトレーニングできます。

今回やりたいこと

写真から天気を判別するモデル作成→トレーニング→テスト
画像はこちらから天気認識用のデータセットをお借りしました。

作業の流れ

画像の準備

今回は「曇り」「雨」「晴れ」「日の出」の写真を、それぞれ60枚トレーニング用に使用します。

プロジェクト作成

①Azureにログイン→Custom Visionに移動。
②新しいプロジェクトを作成
recipe1.png
③プロジェクト名入力→ドメインなどを選択→「Create project」を押す。

  • Classification:画像認識
  • Object Detection:物体検出
  • Multilabel (Multiple tags per image):1つの画像につき複数タグ付け
  • Multiclass (Single tag per image):1つの画像につきタグは1つ
  • Domainsで画像の種類を選択。今回はFood(食料)でもLandmarks(ランドマーク)でもRetail(小売)でもないのでドメインはGeneral(全般)を選択

recipe2.png

学習に使用する画像をアップロード

①「Add image」から画像をアップロード。
recipe3.png
②タグをつけて「Upload ×× files」をクリック。
recipe4.png
③数秒待つとアップロードされる
他の画像も同様にアップロードし、タグ付けをしていく。
recipe5.png

トレーニング

①画像のアップロードとタグ付けが終わったら右上の「Train」をクリック。
recipe6.png
②Tranining Typeを選択し「Train」でトレーニング開始。
(Advanced Trainingを選択すると1時間以上のトレーニングにかけることができる。)
recipe6.5.png
③数分待つ。
recipe7.png
④結果が表示される。
Precision(適合率)は例えば「雨」と判断したもので、実際に「雨」であった確率
Recall(再現率)は例えば「雨」のもののうち、「雨」と判断した確率
APは精度の平均

今回の結果はPrecisionとRecallが97.9%、APは99.9%となりました。
100枚中97枚正しい天気の認識ができるということですね。
下部の表でタグごとの精度も見ることができます。
recipe8.png

テスト

①「Quick Test」をクリック。
recipe8のコピー.png
②テストに使用する写真をアップロード。
recipe10.png
③予測結果を見る。
こちら日の出の写真ですが、ちゃんとsunriseが100%と予測されました。
recipe11.png
曇りの写真も「cloudy」が99.9%で出ています。
recipe12.png
晴れも。
recipe13.png
雨も。
recipe14.png
また、テストで使用した画像をそのまま再学習に使用することもできます。
recipe15.png
タグを追加して保存するだけ。
recipe16.png
モデル作成後はExportして利用したり、API連携してアプリケーションと組み合わせることも可能です。

おわりに

モデルの作成→トレーニング→テストの作業がたったの数分で完了しました。
Azure Cognitive Servicesには、画像系に限らず言語や音声などの解析ができるAPIも用意されているので、そちらも触ってみて記事にしていきたいです。

参考リンク

https://docs.microsoft.com/ja-jp/azure/cognitive-services/custom-vision-service/overview