はじめに
- GCPのAutoML Visionの単一ラベル分類を試してみたときのメモです
- 検証用のデータはIndoor Scene Recognitionを利用しました
- 屋内の画像とラベルが付与されたデータセットです
手順
1. データ収集
データセットダウンロード(ローカルに)
-
下記から画像tarファイルとラベルCSVファイルをダウンロード・解凍する
-
http://web.mit.edu/torralba/www/indoor.html
- indoorCVPR_09.tar
- TrainImages.txt
- TestImages.txt
-
http://web.mit.edu/torralba/www/indoor.html
-
ディレクトリ構成例
├── data
│ ├── 01_raw
│ │ └── raw_01
│ │ ├── extracted
│ │ │ ├── CSV
│ │ │ │ ├── TestImages.txt
│ │ │ │ └── TrainImages.txt
│ │ │ └── Images
│ │ │ ├── airport_inside
│ │ │ | ├── XXX.jpg
│ │ │ | ├── ...
│ │ │ ├── artstudio
│ │ │ ├── ...
│ │ │ └── winecellar
│ │ └── tar
│ │ └── indoorCVPR_09.tar
TrainImages.txt
gameroom/bt_132294gameroom2.jpg
poolinside/inside_pool_and_hot_tub.jpg
winecellar/bodega_12_11_flickr.jpg
...
(Total 67*80 images)
TestImages.txt
kitchen/int474.jpg
operating_room/operating_room_31_03_altavista.jpg
restaurant_kitchen/restaurant_kitchen_google_0075.jpg
...
(Total 67*20 images)
2. データ前処理
データ前処理(ラベリング整形)
-
AutoML用に、ラベルCSVファイルを作成する
- 1列目に自分で
TRAIN, VALIDATION, TEST
を指定しても良い。指定しなければ、8:1:1に分けられる
- 1列目に自分で
-
ディレクトリ構成例
├── 03_primary
│ └── primary_01
│ ├── CSV
│ │ └── label_train.csv
│ └── Images
│ ├── gym
│ │ ├── XXX.jpg
│ │ ├── ...
│ ├── library
│ └── winecellar
label_train.csv
gs://indoor_scene_reckognition_bucketXX/data/03_primary/primary_01/Images/library/bibliotheque55.jpg,library
gs://indoor_scene_reckognition_bucketXX/data/03_primary/primary_01/Images/library/students_library_computers.jpg,library
gs://indoor_scene_reckognition_bucketXX/data/03_primary/primary_01/Images/winecellar/bodega_12_11_flickr.jpg,winecellar
gs://indoor_scene_reckognition_bucketXX/data/03_primary/primary_01/Images/winecellar/cave_vin_10_10_altavista.jpg,winecellar
gs://indoor_scene_reckognition_bucketXX/data/03_primary/primary_01/Images/winecellar/wine_cellar_24_10_altavista.jpg,winecellar
...
AutoML用GCSバケット作成
- GCPコンソールから作成する
- リージョンは
us-central1
(AutoMLがus-central1しか対応していなかったため) - Standard
- 均一
- リージョンは
サービスアカウント作成
- GCPコンソールから作成する
- ストレージ
- AutoML
- → 秘密鍵(json)も作成しておく
データアップロード(ローカルからGCSバケットに)
モデル学習
AutoML設定
- GCPコンソールで
Vision
を選択 - AutoML API有効化(最初のみ)
データセット作成
-
単一ラベル分類
を選択 - GCSバケット上のラベルCSVファイルを指定
AutoML実行
-
トレーニング
タブを選択 -
8 node hours
が最小- 料金に注意
- 学習状況次第で、早めに打ち切ってくれる
モデル評価
-
評価
タブを選択- 平均適合率: 適合率 / 再現率トレードオフ曲線の下の面積を計算することによって、すべてのスコアしきい値におけるモデルのパフォーマンスを測定したもの(範囲は 0~1)。
- 適合率: 予測が正しかった割合(真陽性率)。適合率が高いほど予測の偽陽性率は低くなる。
- 再現率: 再現率が高いほど、偽陰性や予測ミスが少なくなる
confusion_matrix.csv(コンソールからダウンロード可能)
N/A,winecellar,gym,library
winecellar,8,0,0
gym,0,8,0
library,1,0,7
注意点
- リージョンは
us-central1
(2020.03.01時点) - ラベルごとに約 1,000 個のトレーニング画像を推奨(最小は10 or 50)
- トレーニング用ファイルの最大サイズは 30 MB
- 予測用ファイルの最大サイズは 30 MB