【Google】Cloud AutoML Visionを使った機械学習モデルの作成

Cloud AutoML Visionとは?

Cloud AutoML Visionは、 機械学習の知識のない方でも、任意の画像を用いて簡単に機械学習モデルの作成が可能なGoogle Cloud Platform(GCP)の中のクラウドサービスの一つです。

類似のサービスとして、 「Cloud Vision」という画像認識のサービスが存在しますが、 今回はCloud AutoML Visionについて解説していきます。

 

簡単に独自の画像認識モデルが作れるサービス ~ Cloud Visionとの違い~

GCPには、「Cloud Vision」という画像認識のサービスが存在しますが、画像に写っているものが何かについては、Googleがあらかじめ学習したキーワードでしか認識結果を出力することしかできません。

例えば、「Cloud Vision」では画像に「花」が写っていることは示せますが、

他の花と区別して「バラ「Rose」」といった花の種類までラベル付けをすることはGoogle がそのような学習をさせていないためできません。

一方「Cloud AutoML Vision」では、あらかじめ花の写った画像を登録し、それぞれの画像に「これは「バラ(Rose)」」「これは「チューリップ(tulip)」」といった画像イメージに対する独自のラベル情報を学習させることが可能です。

 

実際に使ってみた

実際にCloud AutoML Visionを使ってモデルを作ってみました。

本当に高度な機械学習知識を持たずとも画像認識モデルが作れるのか、

また、作成された機械学習モデルに対して画像が想定通りに認識されるのかを中心に検証しました。

 

1.機械学習モデルの検討

サービスを利用するにあたってまず検討すべきことは、どのような画像を認識させて、どのような結果が返ってくることを望むのかイメージすることです。

今回は、複数の花が写った画像ファイルを登録したモデルを使い、「バラ(roses)」と判定させるケースを試してみます。

 

2.学習用の画像をアップロード

次に、学習用の画像をアップロードします。

画像のアップロードの方法は以下2つの方法があります。

①自分のローカルPCからアップロード

②GCPのストレージサービスであるGoogle Cloud Storageに画像を置き、そのファイル名をファイルパスと共にリストしたCSVファイルをアップロード

今回は①の方法で学習用画像をアップロードしました。

アップロードした画像はGoogleから公開されている合計3666枚の機械学習用の画像セットを使用しました。

(内訳は、daisy:633枚、dandelion:898枚、roses:640枚、sunflowers:697枚、tulips:798枚 です)

 

想定された結果通りに画像を認識させるために、以下の点に留意し画像の選定を行います。

  • 多種多様なデータを集める

対象物は様々な角度、大きさ、明るさで画像の中に存在しており、これらの中から対象物をうまく抽出させるにはモデルに使用する対象物の数を増やす必要があります。

対象物の種類が多ければ多いほど、見たことのない認識対象を区別できる可能性(=認識精度)が高まります。

一般的に、画像には複数の視点、解像度、背景を提供することも検討する必要があります。

  • 意図するモデル出力にデータを合わせる

予測の対象となるものと視覚的に似ている画像を探すのが理想的です。

例えば、冬の雪の日に撮影されたさまざまな家の画像を分類する場合、晴れた日に撮影された家の画像だけでトレーニングされたモデルを使うと明暗と風景があまりに違いすぎるため、関心のある分類であらかじめタグ付けしたとしても、おそらく良いパフォーマンスは得られないでしょう。

画像のアップロード枚数に関してですが、ラベル当たり画像10枚あれば動くようになっています。

また、サービス画面では、「できればラベル当たり100枚、可能であればラベル当たり1000枚が望ましい」といった記述も見られます。

3.ラベル付け

次はアップロードされた画像に対してラベルを設定していきます。

ラベルとはいわゆる対象物に対する模範解答のようなもので、アップロードされた画像に対し期待する結果を学習させることです。

例えば下図ですが、バラの花が写っている画像に対して「roses」のラベルを設定しています。

ラベル付けをしたい画像を選択し、ラベルの中から設定したいラベル名をクリックするとラベル付け完了です。

この作業をアップロードされたすべての画像に対して行っていきます。

このように作業を行うことで、設定されたラベルとそれに結び付けられた画像をもとにCloud AutoML Visionは学習をし、機械学習モデルを構築します。

4.トレーニング

ラベル付け作業の終了後、ラベル付けされた画像をもとにCloud AutoML Visionでモデル作成のためのトレーニングを行います。

Cloud AutoML Visionコンソール画面内で「トレーニングを開始」ボタンを押すと、自動的に機械学習が行われます。

5.精度検証

作成されたモデルを使って、実際に画像を認識させ精度を検証してみます。

「テストと使用」タブ内の「UPLOAD IMAGES」をクリックし、判別させたい画像をアップロードします。

(当たり前ですが、検証の際には学習に使用した画像とは別の画像を使用します)

なお、アップロード画像数は、一度に10ファイルまでとなっています。

なお、ラベルの分類方法は以下の2パターンがあり、今回は単一ラベル分類を使用します。

  • 単一ラベル分類

画像内の各対象物に対して割り当てるラベルを1つ予測

  • マルチラベル分類

画像内の各対象物に対して割り当てるラベルを複数予測 

認識させる画像は以下の3つです。

Image1:明らかにバラとわかる画像

Image2:黄色のバラが写った画像

Image3:一見チューリップのような見た目のバラが複数写った画像

 

結果

・Image1

明らかにバラとわかる画像を認識したところ、想定通りバラと認識されました。

下の結果画面には、判定結果「roses」と合わせて認識精度が表示されています。

ここでいう認識精度とは、各ラベルにどの程度強く関連付けられるかを示す一連の数値のことを指します。

この数値が高い場合、高い信頼度でそのラベルをドキュメントに適用できるとモデルが判断したと考えることができます。

なお、今回単一ラベル分類でImage1を認識させると100%(1.00)「roses」と認識されましたが、

分類ケースをマルチラベル分類に設定した場合、例えば「 rose:0.7、tulip:0.3」のように、

ケースによっては複数のラベルと数値が表示されることがあります。

・Image2

続いて、黄色のバラが写った画像を認識させてみました。

こちらも結果は想定通りバラと認識されましたね。

・Image3

一見チューリップのような見た目のバラが複数写っている画像で検証してみたところ…

どの対象物もチューリップと判断されてしまいました(人間が見ても判断がむずかしいですよね)。

今回どの対象物もチューリップと認識されましたが、対象物の中に一つでもチューリップと認識される花以外の花が写っている場合は、

その花のラベルも表示されます。

例えば、チューリップの花以外にヒマワリと認識される花が写っていると、結果としてチューリップとヒマワリのラベルが表示されます。

(ちなみに本物のチューリップの画像を検証したところ、正しくチューリップと認識されました。)

検証まとめ

いかがでしたでしょうか。

機械学習と聞くと身構えてしまう方もいらっしゃるかもしれませんが、

Cloud AutoML Visionでは、画面操作だけで簡単に機械学習モデルの作成ができることから、

高度な機械学習知識を持っていない方でも利用しやすいと感じました。

また、認識精度に関しては上記で検証したImage3のように、

人間の目でも判断が難しいものは学習量を多くしても正しい判定を出すことは難しい印象を受けました。

逆に言うと、人間が見て判断可能なものについては学習量を増やすことで想定した結果通りに画像を認識させる可能性が上がる(=認識精度が上がる)といえるでしょう。

さいごに

今回はCloud AutoML Visionを使った機械学習モデルの作成及び精度検証を行いました。

この記事をご覧になり、「機械学習が身近になった」「実業務にも応用したい」と感じた方もいらっしゃるのではないでしょうか。

事実、このような画像解析技術を実業務に応用しているケースは増えており、例えば以下のような業務に活用されています。

  • ブランド品判別
  • 不動産画像のカテゴリー分類
  • 製造業における良品・不良品判別
  • 監視カメラでの不審者検知

これらはあくまでも事例の一部に過ぎませんが、今後も画像解析技術を実務に応用するニーズは増えていくことでしょう。

 

RPAとの連携

こうした画像解析技術は、RPAと連携することでより威力を発揮します。

例えば、上記の例で挙げたブランド品判別では、ブランド品が写った画像を元に真贋判定を行い、

その結果を元に出品者への返信メールを振り分け送信するといったことが可能です。

RPAを活用することで、画像認識のみならずその前後の処理まで自動化することが可能となります。

BTCでは、RPAをはじめとするお客様のご要望に合わせた業務自動化の実績が豊富にありますので、

「導入を検討しているがどこから手を付ければよいかわからない」、「導入したものの期待した効果が得られていない」などお困りのことがありましたらお問い合わせください。

 

参考

・ Cloud AutoML

 https://cloud.google.com/automl/

 

※弊社Webサイトで公開している類似サービスのコラムです。

・【Microsoft】Computer VisionをAPI 接続してPower Automate(旧Flow)で使ってみた

https://rpa.bigtreetc.com/column/computervisionapipowerautomate/

・手軽に使えるOCRサービス「Amazon Textract」を使ってみた

https://rpa.bigtreetc.com/column/amazontextract/

もっと知りたい方はこちら

ページトップ