Cloud AutoML Vision が本当にノンプログラミングで使えるのか試してみた

2018年9月にサンフランシスコで開催されたGoogle Cloud Next ’18において、「Cloud AutoML Vision」のBETAリリースが発表されました。
Cloud AutoML Visionは、機械学習に関する高度な知識を持たずとも独自の画像認識モデルを作れるサービスとなっており、AIの民主化を掲げるGoogle Cloudを象徴するサービスとして注目が高まっています。

本当に高度な機械学習知識を持たずとも画像認識モデルが作れるのか、全くプログラミングができない私が実際にCloud AutoML Visionを使ってモデルを作ってみました。

1.AutoML Visionは簡単に独自の画像認識モデルが作れるサービス

Google Cloudの画像認識サービスとして「Vision API」というサービスが既に提供をされています。Vision APIは簡単に画像認識技術を利用することができ、画像から情報の検出(ラベル付け)・不適切コンテンツの検出・テキスト検出が可能なサービスです。AutoML Visionも同じく画像認識サービスではありますが、VisionAPIと違い「独自の画像を学習させ独自の画像認識モデルを作成・利用することができる」サービスとなっています。
VisionAPIでは、Google が”事前に学習をさせた”画像認識モデルを利用する為、ラベル付けなどの画像認識技術を安価に簡単に使える反面、Google が学習をさせていない画像についてはユーザーが求める成果がでない場合も多々あります。例えば、私はヨークシャーテリアの ぽんた という名前の犬を飼っているのですが、VisionAPIに画像を読み込ませた場合、「Yorkshire Terrier」とラベル付けすることはしてくれますが、他のヨークシャーテリアと区別して「ぽんた」としてラベル付けをすることは、Google がそのような学習をさせていないため当然ラベル付けはできません。

ですが、AutoML Visionでは自分で画像を準備しラベル付けをして学習させることで、「ぽんた」とラベル付けをしてくれる画像認識モデルを作成することができます。またその学習のための作業には高度な機械学習知識は不要であることから非常に注目度の高いサービスとなっています。
今回はこのCloud AutoML Visionを使い、「ぽんた」と「その他のヨークシャーテリア」を区別してラベル付けをしてくれるモデルを作成してみます。

2.AutoML Visionを使ってモデルを作ってみる

1)学習用画像の準備

AutoML Visionで学習をさせるにあたり学習用の画像を準備する必要があります。今回は「ぽんた」「その他のヨークシャーテリア」の2つに分類するモデルを作りますので、それぞれ画像を学習用データとして集めました。ぽんたの画像は自分の撮影した画像を利用し、その他のヨークシャーテリアの画像はこちら(http://vision.stanford.edu/aditya86/ImageNetDogs/)からお借りしました。ご自分で同様のことをされる際には「(自分のほしい画像) データセット」で Google 検索していただければ、相当マニアックなものでない限りデータセットとして公開されているかと思います。

2)AutoML Visionを利用するための準備

学習用画像の準備が完了したらAutoML Visionの利用準備をします。
(Googleアカウントの作成・GCPの課金設定・プロジェクト作成は完了していることを前提として説明します)

まずは「https://beta-dot-custom-vision.appspot.com/vision/?project=(プロジェクト名)」にアクセスします。すると以下のページが表示されます。

プロジェクトの課金設定が済んでいれば「1.Enable billing」は飛ばして構いません。「2.Enable the required APIs and service accounts」の「SET UP NOW」をポチッとすると、APIの有効化・サービスアカウントの作成・画像保存用のGCSバケットの作成が実行されます。少し待っていると以下の画面が表示されます。

次にデータセットを作成します。データセットはモデル作成の単位、となります。上記画面、上部の「NEW DATASET」をクリックします。すると以下の画面が表示されますので、必要な情報を入力します。

Dataset name :任意の名前を入力
Import Image :Import images later を選択
Classification Type :ブランク

上記を入力し CREATE DATASET をクリックするとデータセットが作成されます。
これでモデル作成環境の準備は完了です。

3)学習用画像のアップロード

次に学習用の画像をアップロードします。先程の画面の上部の +ADD IMAGES をクリック、今回は自分のローカルPCから学習用画像をアップロードするため Upload from your computer をクリックします。

ファイルを選択し画像をアップロードします。

これで学習用画像のアップロードは完了です。

4)ラベル作成と学習用画像へのラベル付け

学習画像のアップロードが完了したら各画像にラベルを付けます。このラベルとそれに結び付けられた画像をもとにAuto MLは学習をし、モデルを構築します。

上記画面の左側にある ADD LABEL をクリックします。

任意のラベル名を付けたらラベル作成は完了です。(今回は ponta をラベルとして作成しています)
次に画像にラベル付けを行います。

ラベル付けをしたい画像を選択肢、画面上部の Label をクリックし、作成したラベルを選択したらラベル付完了です。
今回は「ぽんた」「その他のヨークシャーテリア」の2つに分類するモデルを作りますので、 Other のラベルを作成して、3) 4)の作業をその他のヨークシャーテリアに対しても実施しました。

これで学習の前準備は完了です。

5)学習の実行

次にラベル付けされた画像をもとにAuto MLでモデルの作成のための学習をします。
先程の画面上部の TRAIN をクリックしてください。

すると上記画面に遷移しますので START TRAINING をクリックします。

次にModel nameを設定し、START TRAININGをクリックすると学習が開始されます。今回は学習用画像が100枚と少なかったので6分程度で学習が完了し、モデルの作成が完了しました。

6)精度検証

次に作成したモデルの精度を検証してみます。


画面上部の PREDICT をクリックします。


UPLOAD IMAGES をクリックし、モデルに判別させたい画像をアップロードします。検証の際には学習に使用した画像とは、別に準備した画像を利用してください。(検証として意味を為さないので)

アップロードして検証した結果がこちらです。上記のように ponta 0.820 という結果がでています。これはこのモデルが82%の確信度でこの画像を ponta である、と認識をしているということを表しています。
今回は画像の枚数が ponta 50枚 / other 50枚 と非常に少なかったため、この程度の精度となっていますが、学習用画像を増やすことで精度向上は可能です。
合計300枚の画像で学習させた結果がこちらです。

・ぽんたの画像を読み込ませた結果
1-①

1-②

1-③

・ぽんた以外(other)の画像読み込ませた場合
2-①

2-②

2-③

ぽんたが小さく写っている場合(1-②)でも精度高く判別することができましたが、小さい頃の写真(1-③)は確信度が大幅に下がってしまいました。
Otherでは比較的ぽんたに似ている写真を選んで検証してみました。2-①は顔立ちが似ているものをを選び検証してみましたが、精度高く認識することができました。2-②は顔がよく写っていないものを選択しましたが、こちらも精度高く認識しました。2-③は個人的にはあまり似ていないと思ったのですが、試しに検証してみたところ、なぜかぽんただと認識してしまいました。もしかしたら他の写真に比べて毛色がぽんたに似ているので、そのように誤認識したのかもしれません。

3.まとめ

このように AutoML Vision を使えば、機械学習の専門知識のない、はたまたプログラミングのできない私のような非技術者でも簡単に独自の画像認識モデルの作成が可能です。
実際に既にメルカリさんでは AutoML Vision をブランド品判別に活用されています。
https://cloudplatform-jp.googleblog.com/2018/03/automl-vision-in-action-from-ramen-to-branded-goods.html

株式会社LIFULL様では不動産画像のカテゴリー分類を AutoML で自動化をされています。
https://cloudplatform-jp.googleblog.com/2018/07/AutoML-LIFULL.html

その他考えられる活用方法としては、製造業における良品・不良品判別、監視カメラでの不審者検知、などにも活用ができそうです。

今までは機械学習・AIを活用しようとする際に、まずはPoCをしないとうまくいくかどうかわからない、またそのPoCにも高額な費用がかかる、という点が課題となっていました。ですが AutoML を使えば、AIの作成に高額な費用をかけず、かつセルフサービスで簡単に実現することができます。AutoML が画像認識以外にも展開されていけば、Googleの掲げる「AIの民主化」が実現する日も近いかもしれませんね。

最後になりますがクラウドエースでは今回ご紹介した AutoML をはじめとし、GCP全般について経験豊富な技術者によるサポートで快適なGCP生活のお手伝いをしています。GCPご活用の際には是非ご相談ください!

次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます