【GCP】Cloud AutoML Visionでポケモンの画像を学習させてみた(モデル作成編)

画像をCloud Storageへアップロード

Cloud Storageの作成

バケットに名前を付けます。
バケット名の形式は、$PROJECT_ID-vcm にする必要があり、
例えば「something-project-id-vcm」といった感じになります。
データのデフォルトのストレージクラスは「Standard」にします。 

画像をアップロードする際に「gsutil のリンク」の情報が必要になります。

画像のアップロード

下記のコマンドで画像をアップロードできます。

gsutil -m cp -r [アップロード元] gs://[gsutil のリンク]/[アップロード先]

例えば、

gsutil -m cp -r "C:\temp\images" gs://something-project-id-vcm/images

という感じになります。
今回はポケモン1匹に対して約500枚の画像(計75000枚)をアップロードして、約70分程掛かりました。

正解ラベルの作成

画像に対して正解ラベルを定義するファイルを作成してあげる必要があります。
今回は以下のようにしました。

gs://something-project-id-vcm/images/1/1.png,1
gs://something-project-id-vcm/images/1/2.png,1
gs://something-project-id-vcm/images/2/1.png,2
gs://something-project-id-vcm/images/2/2.png,2
...
gs://something-project-id-vcm/images/151/1.png,151
...

imagesの次の数字がポケモンの図鑑Noでフォルダ分けしています。
1:フシギダネ、2:フシギソウ…
カンマの次の数字が正解ラベルです。ここも図鑑Noです。
以下のようなバッチファイルを作っておくと正解ラベルを作るのが楽になります。

gsutil ls gs://something-project-id-vcm/images/1 >> "C:\temp\label.txt" && ^
gsutil ls gs://something-project-id-vcm/images/2 >> "C:\temp\label.txt" && ^
...
gsutil ls gs://something-project-id-vcm/images/151 >> "C:\temp\label.txt"

作成した正解ラベルのcsvはCloud Storageにアップロードします。

モデルの作成

画像の準備ができたらVisionでモデルを作成します。

「新しいデータセット」を選択します。 

「データセット名」を入力して、「データセットを作成」を押下します。 

「Cloud Storage で CSV ファイルを選択」して、先ほど作成した正解ラベルのcsvを選択し、「続行」を押下します。 

イメージの取込が完了すると、以下のようになります。 

「トレーニング」タブを選択し、「トレーニング開始」を選択します。 

新しいモデルのトレーニングを入力して、「トレーニング開始」を選択します。
今回はモデルの定義に「Edge」を選択しました。
トレーニングが開始されるので、完了まで待ちます。 

トレーニングが完了すると「テストと使用」から作成したモデルをダウンロードできます。 

モデルの利用

学習したTF Liteのモデルをダウンロードして、以前書いた「Tensorflow Liteを使ってみた(画像分類)」の時に使ったモデルを置き換えてみたのですが、そのままでは動きませんでした。

今回は試していませんがこの公式ドキュメントに沿ってやれば動くと思います。

未分類GCP

Posted by ababa