YOLO Vision 2026:

Google Cloud Storage 集成#

Google Cloud Storage 集成将你的 GCS 存储桶连接到 Ultralytics Platform。你的图片会保留在存储桶中 — Platform 会就地对它们进行索引,因此你可以直接浏览、标注和训练 YOLO 模型,而无需上传副本。

Pro 功能

Google Cloud Storage 数据集需要 Pro 或 Enterprise 计划。免费工作区可以看到此集成,并在连接时提示进行升级。如果订阅到期,现有的 Google Cloud Storage 数据集仍可完全访问 — 只有新的连接和导入才需要 Pro。

创建只读服务账号#

Platform 始终只从你的存储中读取 — 绝不会写入、修改或删除你的对象。请创建一个仅具有读取权限的专用服务账号

  1. 在 Google Cloud 控制台中,前往 IAM & Admin > Service Accounts 并创建一个服务账号。
  2. 在要连接的存储桶上授予其 Storage Object Viewerroles/storage.objectViewer)角色。
  3. 打开该服务账号,选择 Keys > Add key > Create new key,选择 JSON,然后下载密钥文件。
存储桶发现需要再授予一项权限

roles/storage.objectViewer 涵盖了 Platform 处理你的数据所需的所有操作,但不允许列出项目中的存储桶。如果你希望 Platform 帮你查找存储桶,请添加带有 storage.buckets.list 的角色;否则,在连接时手动输入每个存储桶名称。

连接到 Platform#

  1. 前往 Settings > Integrations,然后从集成列表中选择 Google Cloud Storage
  2. 粘贴服务账号 JSON 密钥的内容。
  3. 点击 Find available buckets,然后选择要连接的存储桶。如果服务账号无法列出存储桶,请手动输入已知的存储桶名称。
  4. 点击 Connect。Platform 在保存任何内容之前会验证它是否可以列出并读取每个选定的存储桶。

Ultralytics Platform Google Cloud Storage Integration Settings

你需要工作区管理员或所有者角色来连接云存储。一个连接最多支持 50 个存储桶,发现功能最多列出服务账号可见的 300 个存储桶。

你的浏览器会读取粘贴的密钥文件,并仅发送 Platform 所需的三个字段 —— client_emailprivate_keyproject_id。JSON 的其余部分永远不会离开页面。

稍后重新连接同一个服务账号会将新存储桶添加到现有集成中。仅当已保存的凭据被替换后仍然可以读取你已连接的所有存储桶时,该凭据才会被替换。

凭据安全性

凭据在静态存储时使用 AES-256-GCM 进行加密,绝不会返回给浏览器,也绝不会暴露给训练工作负载。若要撤销访问权限,请在 Google Cloud 中删除服务账号密钥。

从 GCS 存储桶创建数据集#

  1. 点击新建数据集并打开云端标签页。
  2. 选择一个已连接的存储桶并浏览到包含你数据的文件夹。
  3. 确认文件夹,调整数据集名称,然后创建数据集。

Platform 会列出文件夹一次并索引其发现的内容:

  • Images.jpg.jpeg.png.webp.avif 对象通过有界请求读取尺寸进行索引。Platform 不会保留源图片的第二份副本。
  • Labels — YOLO .txt 附属文件会被解析为 Platform 标注,通过标准的 images/labels/ 布局进行匹配,或者作为同一文件夹下的同级文件匹配。
  • 元数据 — YAML 文件提供类别名称和姿态关键点形状,这与存档上传完全一样。当文件夹中包含多个文件时,优先使用 data.yamldata.yml
  • 任务 — 标签文件的样本决定了任务类型,因此分割、姿态和 OBB 文件夹是根据其标签形状识别的,而不是根据你在对话框中选择的任务识别的。
  • Splits — 对象路径中的 trainvaltest 文件夹名称会自动分配数据集分割。

该数据集随后表现得与其他数据集一样:你可以浏览并标注它、将其设为公开或私有、与团队共享,并通过托管训练在其上进行训练。原始内容按需流式传输,且索引后的图片不会消耗你的 Platform存储配额

限制

单次导入可索引多达 50,000 个对象,标签或 YAML 文件每个最大 1 MB。更大的存储桶应拆分到多个数据集中。

保持索引对象不可变

每个索引图像都固定到其 GCS 对象生成版本,如果对象在底层发生更改,Platform 将会失败关闭。请添加新对象,而不是覆盖现有对象。

导入失败#

如果导入失败(如文件夹为空、路径拼写错误或权限被撤销),数据集会在其页面上显示错误。编辑者可以点击 Retry import 以使用已存储的存储桶和文件夹重新启动,或者创建一个指向更正路径的新数据集。

重试操作会重新列出文件夹而不是恢复传输:自第一次尝试以来添加的对象会被收录,而不再存在的对象将从数据集中移除。

训练#

托管训练通过正常的训练流程进行。训练在运行期间使用 Platform 自身的固定图像副本,你的 Google Cloud 凭据绝不会暴露给训练工作负载。

断开连接#

断开连接会删除存储的凭据,而不会触及 Google Cloud 中的任何内容。从这些存储桶构建的数据集及其类别、标签和标注将保留在你的工作区中,但在重新连接相同的服务账号之前,无法加载、预览或使用这些图像进行训练。

使用带有 GET /api/integrations/buckets 返回的集成 ID 的 REST API

curl -X DELETE \
  -H "Authorization: Bearer YOUR_API_KEY" \
  https://platform.ultralytics.com/api/integrations/buckets/INTEGRATION_ID
from ultralytics_platform import Platform

client = Platform()  # reads ULTRALYTICS_API_KEY
integrations = client.storage_integrations.list()
client.storage_integrations.delete("INTEGRATION_ID")

若要从源头撤销访问权限,请在 Google Cloud 中删除服务账号密钥。

当前限制#

GCS 支持的数据集目前不包含需要 Platform 持有图片副本的功能:自动标注、聚类分析、数据集克隆以及不可变的版本快照

删除 GCS 支持的数据集或其中的单个图像仅会删除 Platform 的引用——你的对象永远不会被触及。

另请参阅 Amazon S3Azure Blob Storage 集成。

评论