VertexAI AutoML （画像）を使ってみませんか？

:::note

弊社X（https://x.com/kccs_digital) では、Qiita投稿に関する情報や各種セミナー情報をお届けしております！
情報収集や学びの場を求める方々にぜひフォローしていただき、最新情報を手に入れてください！
是非フォローお願いいたします！

:::


こんにちは、京セラコミュニケーションシステム櫻木 (@kccs_nobuaki-sakuragi)です。

最近はGenerative AIが流行りですが、以前からあるGoogle Cloudで提供されているAutoML Visionについて紹介します。

しかしながら、AutoML Visionのサイトを見ると次の様なサービス終了の案内がでています。
![](./images/1.png)
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2773468/55ae61eb-4a2b-4360-e922-c7b7ef8e19d8.png)


安心してください！

同じ機能＋αで機能はVertexAI AutoMLのメニュー内にあります。

:::note alert
2024年1月23日を過ぎるとGoogle Cloudで使用できなくなります。以前のAutoML Visionのすべての機能と新機能は、Vertex AIプラットフォームで使用可能です。
:::

AutoML Visionは、VertexAI AutoML（画像）へと名前が変わっています。

今回は、名前が新しくなったVertexAI AutoML（旧AutoML Vision）メニューを使いながら、Google Cloudの画像AIをコードを記述せずモデルトレーニングしたい方向けに複数回にわけ記事を書いてみます。

第1回目の記事は、VertexAI AutoML（画像）の特徴をまとめた記事となります。

[第2回目の記事Google Cloud内で実施できるAutoMLのデータ準備・評価や予測についてまとめ](https://qiita.com/kccs_nobuaki-sakuragi/items/c1725c75ae22a76114b4)をかきました。

:::note 
2023年11月30日時点で作成した記事です
:::

## 本記事の対象者

- 画像AIに興味のある方
- Google Cloudの画像AIを触ってみたい方
- お試しで画像AIは触ってみたいが、サンプルデータが無く、使えない方
- Google CloudのVertexAI AutoML画像で何ができるか知りたい方
- AutoML Visionから、VertexAI AutoMLへ名前が代わり事例を探している方


## Google Cloud VertexAI AutoML とは

　ドキュメントでは、[Vertex AI AutoML](https://cloud.google.com/vertex-ai/docs/training-overview#automl)項目に次のように記載されています。

:::note 
機械学習（ML）モデルでは、トレーニング データを使用して、トレーニングされていないデータの結果をモデルが推測する方法を確認します。Vertex AI AutoMLを使用すると、提供するトレーニング データに基づいてコード不要のモデルを構築できます。
:::

VertexAI AutoML（以下AutoML）を利用すると最小限のIT技術の知識と操作でモデルを作成およびAIモデルのトレーニングを実施する事ができます。


## AutoMLで作成可能なモデル

AutoMLを利用して構築できるモデルは4つのタイプがあります。

構築できるモデルは、所有するデータの種類によって、作成可能なモデルが変わってきます。

|  データの種類   |   サポートされる目標（推論パターン）  |
| --- | --- | 
|  画像データ   |   分類、オブジェクト検出  |
|  映像データ   |   アクションの認識、分類、オブジェクトの追跡  |
|  テキストデータ  | 分類、エンティティ抽出、感情分析    |
|  表形式のデータ  | 分類／回帰、予測    |

AutoMLを利用すると、Googleが用意したモデルを使い、モデルを作成、精度の評価・活用までをEnd to Endでする事が可能になります。

利用者は、データを用意するだけ、モデルの評価とモデル精度に注力する事ができます。

今回は、AIの中でも良し悪しがわかりやすい、AutoMLにある、画像データの分類を紹介します。

## Vertex AI （画像）の特徴

VertexAIを使用すると、画像ベースのモデルをコードなしで作成でき、学習と評価が簡単に行えます。

### なぜ、VertexAI AutoML（画像）を利用するのか？

機械学習やAIの初心者・中級者機械学習を活用・評価をするのに、時間短縮したい方は絶対に活用したほうがよいです。

オススメの理由は次の3点になります。

##### 1.機械学習の環境構築が不要

- Pythonのバージョンやライブラリ、データセットの保存先などを意識せず始められます。広範囲の技術を必要としない為、殆の方は、運用設計工数も下げることができます。

##### 2.作成したモデルは別の場所でも利用可能

- 作成したモデルはGoogeCloud以外のさまざまな場所で簡単に利用できます。
  サーバやPCはもちろん、Andorid端末やiPhone端末に組み込むこともできますし、アプリを組めばカメラと連動させることも可能です。

事例1）AutoML（画像）で作成した物体検知モデルをGoogleGlass（Android OS）で使う事もできます。
  
  GoogleGlassで動かした時のデモ画像
　![](./images/2.png)
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2773468/5df4e765-2fd0-73c0-3ac4-5e85cda12c58.png)


  ※GoogleGlassは2023年3月15日以降は販売終了しています。[Glass Enterprise Edition の発表に関するよくある質問 - Glass Enterprise Edition ヘルプ](https://support.google.com/glass-enterprise/customer/answer/13417888)

事例2）Google Cloud Vertex AIを利用した外観検査AIシステムの導入
この動画は弊社で実施した、VertexAI AutoMLVisonを活用した外観検査事例の動画です。

<iframe width="640" height="480" src="https://www.youtube.com/embed/2DSsEflmasM" title="Google Cloud Vertex AIを利用した外観検査AIシステムの導入" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>


このように、作成したモデルは、GoogleCloudの垣根を超えて利用できます。
上記の事例以外でもオンプレミスのサーバやEdge（RaspberryPiやAndroid/iPhone）、別のクラウドでも活用する事ができるのが特徴です。

##### 3.説明可能なAIが利用可能（AutoML Edgeのみ）

　機械学習のプロジェクトの困難な所の1つに「このモデルはどこを見て、答え（予測・推論）しているのか？」を説明する事です。（いろいろな意見があるとおもいますがあくまでも私見です。）

その為、機械学習のモデルを可視化する為に活用するのがExplainable AIです。機械学習の活用が進んでいくと、機械学習モデルの精度を評価する為、説明可能なAI（Expenable AI）の重要度が増してきています。

その、説明可能なAI（Expenable AI）がGoogeCloudのAutoMLも利用可能です。
[Vertex Explainable AI の概要  |  Vertex AI  |  Google Cloud](https://cloud.google.com/vertex-ai/docs/explainable-ai/overview?hl=ja)


たとえば、物体検知の場合はその物の座標がわかりますが、分類の場合どこを見て判断しているのかがわかりません。AutoML（画像）ではEdgeモデルのみになりますが、ExpenableAIを利用できます。また、AutoML（表形式）でも分類・回帰モデルで利用可能です。

AutoMLを活用すると、最低限の知識で機械学習が試し、モデルの評価もGoogleCloud機能だけで完結できる特徴があります。


## AutoML を活用する際のステップ

AutoMLモデルのトレーニングと利用のステップは、データ型や目的（推論パターン）に関係なく同じです。

VertexAI AutoMLを使うメリットは、データセットの作成から評価までをGoogeCloud内で完結できます。その為、機械学習でよく問題になる実行環境の構築が不要です。

VertexAIのメリットはデータがあれば画像AIモデルが作成できる事です。
これにより、データ収集やモデルの評価に時間を割り当てる事に注力できます。

画像AIの導入STEPを一般的な手法とAutoML（画像）にわけ表にしてみました。

|  STEP  |   一般的なSTEP概要  | 一般的な機械学習環境(自身のPC／サーバC)の場合 | VertexAI AutoMLを利用する場合 　 | 
| --- | --- | ---  | ---  | 
| 1. | トレーニング データを準備する。 | 各自で準備しPC/サーバ内のHDDへ保存　| 各自準備しGoogle Cloudへ保存 | 
| 2. |データセットを作成します。| PC／サーバ内で作成　| Google Cloud上で作成 | 
|3. |モデルをトレーニングする。| PC／サーバ内　|  Google Cloud上でトレーニング  | 
|4. |モデルの評価と反復処理を行う。| PC／サーバ内　|  Google Cloud上で再評価  |
|5. |モデルから予測を取得する。| PC／サーバ内/任意のクラウドなど　|  Google Cloud or オンプレミスサーバ or Edgeデバイス  |
|6. |予測結果の良し悪しを判断する。| PC／サーバ内/任意のクラウドなど　| GoogleCloud内、PC／サーバ/GoogeCloud以外のクラウドなど |

※ここでのEdgeデバイスは、RaspberryPiやAndorid端末／iPhone端末などを指します。

画像からの物体検出や分類であれば、PC/サーバで実施できることはVertexAI AutoML（画像）で実施する事が可能です。


## AutoML（画像）で作成可能なモデル形式について

基本的に、GoogeCloud内でのみ利用する場合は、モデル形式を意識する必要はありません。

モデル形式を意識する必要があるのは、GoogeCloud内でもGCEや個別にコンテナで稼働したい場合、Android OSやiPhoneなどで利用する場合のみになります。

| 利用可能なファイル形式　| モデルの種類 | | |
| --- | --- | ---  | ---  | 
|  | 分類<br>（シングルラベル）| 分類<br>（マルチラベル）| オブジェクト検出 |
|TF Lite | ○ | ○　|　○ |
|Edge TPU TF Lite | ○ | ○　|　× |
|コンテナ | ○ | ○　|　○ |
|Core ML | ○ | ○　|　× |
|Tensorflow.js | ○ | ○　|　○ |


次のような利用シーンからモデル形式を選定してください。

|  利用可能なファイル形式   |   利用シーン  |
| --- | --- | 
| TF Lite  | エッジまたはモバイル デバイスでモデルを実行する場合 |
| Edge TPU TF Lite  | Edge TPU デバイスでモデルを実行する場合 |
| コンテナ  | Docker コンテナで実行するため、モデルを TF Saveモデルを実行する場合 |
| Core ML  | iOS デバイスや macOS デバイスでモデルを実行する場合|
| Tensorflow.js  | ブラウザと Node.js でモデルを実行する場合 |

この様に、AutoML（画像）のモデルはさまざまな利用シーンで活用する事ができます。


モデルのエクスポート方法の詳細は、[AutoML Edge モデルをエクスポートする  |  Vertex AI  |  Google Cloud](https://cloud.google.com/vertex-ai/docs/export/export-edge-model?hl=ja)を参照してください。

AutoML Edgeモデルを指定すると、活用範囲がGoogeCloud内からさまざまな所に広がっていきます。

# 最後に
本記事ではGoogle CloudのVertexAI AutoML（画像）の特徴を中心に紹介しました。

次回以降は、モデルの評価や予測について説明したいと思います。

:::note info
本記事は2023年11月に作成しております。よって、引用している文章などはこの時点での最新となります。ご了承ください。
:::