Google Cloud Storage

Google Cloud Storage から Images を Roboflow にアップロード

Google Cloud Storage で画像データを保存し、Roboflow にアップロードする場合、一般的には 2 つの選択肢があります。署名付き URL を使う方法、または画像をローカルに手動でダウンロードする方法(gsutil CLI 経由)で、ローカルからアップロードする方法です。どちらを選ぶかは、データ処理と管理に対する具体的なニーズによります。

  • 署名付き URL:この方法は、画像をローカルマシンにダウンロードする際に発生する追加の手順や時間を避けたい場合に特に有利です。署名付き URL を使えば、画像データを Google Cloud Storage から Roboflow API に直接アップロードでき、ローカルに保存する必要がありません。その結果、処理が速くなり、ローカルシステムへの負荷も軽減されます。

  • CLI でローカルに:画像をまずローカル環境にダウンロードしたい、というケースもあるでしょう。たとえば、Roboflow にアップロードする前に画像を前処理したり、手動で確認したりする必要がある場合は、ローカルコピーがあると便利です。

適切な方法の選択は、データ転送速度、前処理の必要性、画像の手動確認など、特定のユースケース要件によって決まります。

Google Cloud JSON キー

バケットに対して適切な権限を持つサービス アカウントを作成し、JSON キーファイルをダウンロードします。このファイルには、アプリケーションの認証に使用される認証情報が含まれます。

オプション 1: 署名付き URL 経由でアップロード:

Python で Google Cloud SDK を使用すると、Google Cloud Storage バケット内の画像に対する署名付き URL を生成できます。

def get_gcs_signed_url(bucket_name: str, blob_name: str) -> str:
    """GCS オブジェクトの署名付き URL を生成します。"""
    storage_client = storage.Client.from_service_account_json(GOOGLE_APPLICATION_CREDENTIALS)
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.get_blob(blob_name)
    
    url = blob.generate_signed_url(
        version="v4",
        expiration=3600,  # 1 時間を秒で指定
        method="GET"
    )
    return url

上のコードスニペットでは、Google Cloud Storage バケット名と blob 名が必要です。画像の署名付き URL が生成され、返されます。

これを基に、バケット内で利用可能なすべてのオブジェクトを取得し、その後 API を使って Roboflow にアップロードする完全なソリューションを作成できます。このソリューションの概要は以下のとおりです。

オプション 2: GCP からデータをローカルにダウンロード

GCP からデータをダウンロードするには、まず GCP CLI をインストールします。その後、GCP ユーザーアカウントで認証します。

画像または画像フォルダをダウンロードするには、次のコマンドを使用します。

置き換えてください mybucket を GCP ストレージバケットの名前に、そして folder をコピーしたいファイルまたはフォルダの保存先にします。このコマンドは、対象のファイルまたはフォルダを現在の作業ディレクトリ(.).

Roboflow にデータをアップロード

データをダウンロードしたので、Roboflow には次のいずれかを使ってアップロードできます。 Upload Web Interface または Roboflow CLI.

も参照

最終更新

役に立ちましたか?