🐶

Vertex AIにラベル付していない画像をインポートする【Python】【備忘録】

2021/10/19に公開

概要

API 越しで、ラベル付されていない画像をインポートする方法の備忘録です。前提として、画像は Google Storage にある必要があります。画像の場合、多くの場合人の目で見てラベル付けをしたいと思う(少なくとも自分はそうです)のですが、ラベル付けしていない画像を API 越しにインポートする方法がガイドになかったため記します。

サンプルコード

from google.cloud import aiplatform

project_id = "" # プロジェクトID
dataset_name = "" # Vertex AIのデータセット
location = "" # Vertex AIの上記データセットのロケーション設定

gs_srcs = [
    "gs//<bucket_name>/<file_name>",
    "gs//<bucket_name>/<file_name>",
] # インポートするファイル
ds = aiplatform.ImageDataset(
    dataset_name=dataset_name, project=project_id, location=location
)

# import_schema_uriはアノテーションのタイプです。
# aiplatform.schema.dataset.ioformat.image.single_label_classificationを指定すると単一指定のクラス分類だと思います(試してません)
# open api準拠のyamlファイルを指定できます。詳しいことは分かりませんが、参考の「マネージド データセットを使用する」にリンクがあります(下図を参照)。本来はこちらの方が正しいやり方のような感じがします。
ds.import_data(
    gcs_source=gs_srcs,
    import_schema_uri=aiplatform.schema.dataset.ioformat.image.bounding_box,
    sync=False
)

doc

おわりに

Google の AutoML は日本語の資料が公式にしかない上、ガイドに書かれていないことをやろうとすると少し手間取る気がする。個人的事情として、ラベル付けは人がやるにしてもインポートまでは自動化したかったため、調査しました。誰かに教えてほしい。

参考

Discussion