やってみた系の日本語の記事が少なかった(まだベータ版だから?)のと、Qiitaにもあまりなかったので、記事にまとめておきます。
AutoML Visionの開始から学習、予測を行うまでの内容になります。実際にpythonからAPIを叩く編はまた次の記事で書きます。
最初の準備
- 適当なプロジェクト作成
- AutoML側からプロジェクトにアクセスできるように権限周りを設定
-
Quick Startによると次のロールが必要
- Cloud ML Engine 管理者(roles/ml.admin)
- ストレージ管理者(roles/storage.admin)
-
Quick Startによると次のロールが必要
- Cloud Platform → 人工知能 → Vison を選択
- プロジェクトを選択
詳しくは、公式のQuick Start
DataSetsの作成
DataSetsの作成方法は以下の2つがあります。
- ローカルから画像、zipを直接アップロード
- gcsからimport
今回は、gcsからimportする方法のみを試してみました。
-
GCSにバケットを作り画像をアップロード
- AutoMLを開始したプロジェクトと同じプロジェクトにバケットを作成
- アップロードは、コマンドラインから Cloud Storage にアクセスできるgsutilを使うと楽
-
アップロードしたイメージのURLとラベルを対応づけたcsvファイルを作成
- 以下のようなフォーマットのCSVファイルを作る
gs://プロジェクトID/ディレクトリ/画像ファイル,ラベル gs://プロジェクトID/ディレクトリ/画像ファイル,ラベル . .
- ラベルを複数つけると、マルチラベルでのクラスタリングが可能
- このときcsvのheaderとidは不要
詳しくは以下 https://cloud.google.com/vision/automl/docs/prepare#csv
-
作成したcsvファイルを、画像をアップロードしたバケットにアップロード
-
AutoML側から、CSV使ったデータセットの作成をすると、画像が読み込まれる
読み込まれた画像とラベルは、AutoMLの画面のImageタブから確認できます。
zipを使った場合は、こちらの方がやっておられました。
Cloud AutoML Visionを使ってみた(使ってみただけ)
ファイルの構造がそのままラベルになるのは楽で良いですね。
メモ
- 1ラベルあたり1,000枚の画像を使うことが推奨
- データセットは、トレーニング用に80%、検証用に10%、テスト用に10%を使用される
- ラベルあたり、10枚の画像が最小(高度なモデルの場合は50枚?)
- モデルをトレーニングするときは、次の画像形式がサポート
- JPEG
- PNG
- WEBP
- GIF
- BMP
- TIFF
- ICO
- 画像の最大ファイルサイズは30MB
学習
AutoMLの画面のTrainタブ→TRAIN NEW MODELをクリック
モデル名や学習にかける時間などを設定する。
1 compute hourを選択すると1時間の学習が無料で行える。
START TRAININGで学習開始
あとは、待機
価格は、
- 1時間のトレーニングならば、毎月最大10個のモデルまで無料
- その後の訓練時間は1時間あたり20ドル
- 既存のモデルのトレーニングを再開すると、トレーニング費用は1時間あたり20ドル
学習結果
学習結果は、AutoMLの画面のEVALUATEタブから確認できる。
precision(精度)やrecall(再現度)などが確認できる。
予測
AutoMLの画面のPREDICTタブから確認できる。
画像をアップロードすると予測のテストが行える。
curlとpython用のコードも用意してくれてるのでコピペで動く。
メモ
- 予測には、次の画像形式がサポート
- JPEG
- PNG
- GIF
- 最大ファイルサイズは1.5MB
- 学習済みのモデルはエクスポートはできない模様
- インポートも無理っぽい
価格は、
- 1000枚まで無料/1月
- それ以降は1000枚の画像につき3ドル/1月
価格まとめ
学習時
- 1時間のトレーニングならば、毎月最大10個のモデルまで無料
- その後の訓練時間は1時間あたり20ドル
予測時
- 1000枚まで無料/1月
- それ以降は1000枚の画像につき3ドル/1月
あと、GCS代
まとめ
- 教師データさえ集めてくれば簡単にできる
- こうすれば精度を上がるよ的なことも教えてくれるので、それに沿っていけば精度向上も簡単なのでは?
- モデルの更新で料金が発生するので、予測するラベルやDataSetは慎重に選ばないと何度も学習しなおすことになって死にそう
- 予測用のサーバー、コードを用意、維持する必要がないので、予測にかかる技術や価格のコストは低いと思った