Интеграция с Google Cloud Storage#
Интеграция с Google Cloud Storage подключает твои корзины GCS к Ultralytics Platform. Изображения остаются в твоих корзинах — Платформа индексирует их на месте, поэтому ты можешь просматривать, размечать и обучать модели YOLO без загрузки копии.
Для наборов данных Google Cloud Storage требуется тариф Pro или Enterprise. В бесплатных рабочих пространствах интеграция отображается, а при подключении предлагается перейти на платный тариф. Существующие наборы данных Google Cloud Storage остаются полностью доступными после окончания подписки — только для новых подключений и импортов требуется Pro.
Создание учетной записи службы только для чтения#
Платформа только читает данные из твоего хранилища — она никогда не записывает, не изменяет и не удаляет твои объекты. Создай отдельную учетную запись службы только с доступом на чтение:
- В консоли Google Cloud перейди в раздел IAM & Admin > Service Accounts и создай учетную запись службы.
- Назначь ей роль Storage Object Viewer (
roles/storage.objectViewer) для корзин, которые хочешь подключить. - Открой учетную запись службы, выбери Keys > Add key > Create new key, укажи JSON и скачай файл ключа.
roles/storage.objectViewer покрывает все операции Платформы с твоими данными, но не позволяет просматривать список
корзин в проекте. Добавь роль, содержащую storage.buckets.list, если хочешь, чтобы Платформа нашла корзины за тебя;
в противном случае при подключении введи имя каждой корзины вручную.
Подключение к Платформе#
- Перейди в Settings > Integrations и выбери Google Cloud Storage в списке интеграций.
- Вставь содержимое JSON-ключа учетной записи службы.
- Нажми Find available buckets, затем выбери корзины для подключения. Если учетная запись службы не может просматривать список корзин, введи известное имя корзины вручную.
- Нажми Connect. Перед сохранением Платформа проверяет, что может просматривать список и читать каждую выбранную корзину.

Для подключения облачного хранилища тебе нужна роль администратора или владельца рабочего пространства. Одно подключение поддерживает до 50 корзин, а обнаружение отображает до 300 корзин, доступных учетной записи службы.
Браузер читает вставленный файл ключа и отправляет только три поля, необходимые Платформе: client_email, private_key,
и project_id. Остальная часть JSON никогда не покидает страницу.
Повторное подключение той же учетной записи службы позже добавляет новые корзины в существующую интеграцию. Сохраненные учетные данные заменяются только после того, как новая учетная запись сможет по-прежнему читать все уже подключенные корзины.
Учетные данные шифруются в состоянии покоя с помощью AES-256-GCM, никогда не возвращаются в браузер и не передаются рабочим нагрузкам обучения. Чтобы отозвать доступ, удали ключ учетной записи службы в Google Cloud.
Создание набора данных из корзины GCS#
- Нажми New Dataset и открой вкладку Cloud.
- Выбери подключенную корзину и перейди к папке с данными.
- Подтверди папку, при необходимости измени имя набора данных и создай его.
Платформа один раз просматривает содержимое папки и индексирует найденные объекты:
- Изображения — объекты
.jpg,.jpeg,.png,.webpи.avifиндексируются с размерами, полученными через ограниченные запросы. Платформа не сохраняет вторую копию исходного изображения. - Метки — сопутствующие файлы YOLO
.txtразбираются в аннотации Платформы и сопоставляются по стандартной структуреimages/→labels/или как соседние файлы в одной папке. - Метаданные — YAML-файл содержит имена классов и структуру ключевых точек позы, как и при загрузке архива. Если в папке их несколько, предпочтение отдается
data.yamlиdata.yml. - Задача — задача определяется по образцу файлов меток, поэтому папки для сегментации, позы и OBB распознаются по структуре меток, а не по задаче, выбранной в диалоговом окне.
- Разбиения — имена папок
train,valиtestв пути объекта автоматически назначают разбиения.
После этого набор данных работает как любой другой: просматривай и размечай его, делай его общедоступным или приватным, делись им со своей командой и обучай на нем с помощью управляемого обучения. Исходные файлы передаются по запросу, а проиндексированные изображения не расходуют твою квоту хранилища Платформы.
Один импорт индексирует до 50 000 объектов, а размер каждого файла меток или YAML-файла может составлять до 1 МБ. Большие корзины следует разделять между несколькими наборами данных.
Каждое проиндексированное изображение привязано к поколению объекта GCS, и Платформа прекращает операцию, если объект изменяется. Добавляй новые объекты вместо перезаписи существующих.
Неудачные импорты#
Если импорт завершается ошибкой — из-за пустой папки, опечатки в пути или отозванных разрешений — набор данных отображает ошибку на своей странице. Редакторы могут нажать Retry import, чтобы перезапустить импорт с сохраненными корзиной и папкой, или создать новый набор данных с исправленным путем.
Повторная попытка заново просматривает содержимое папки, а не продолжает предыдущий импорт: добавленные после первой попытки объекты будут включены, а отсутствующие больше объекты будут удалены из набора данных.
Обучение#
Управляемое обучение выполняется через стандартный процесс обучения. Во время запуска обучение использует собственные копии закрепленных изображений Платформы, а твои учетные данные Google Cloud никогда не передаются рабочим нагрузкам обучения.
Отключение подключения#
Отключение удаляет сохраненные учетные данные, не затрагивая ничего в Google Cloud. Наборы данных, созданные из этих корзин, остаются в твоем рабочем пространстве вместе с классами, метками и аннотациями, но их изображения нельзя загрузить, просмотреть или использовать для обучения, пока та же учетная запись службы не будет подключена снова.
Используй REST API с идентификатором интеграции, возвращаемым GET /api/integrations/buckets:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/integrations/buckets/INTEGRATION_IDfrom ultralytics_platform import Platform
client = Platform() # reads ULTRALYTICS_API_KEY
integrations = client.storage_integrations.list()
client.storage_integrations.delete("INTEGRATION_ID")Чтобы вместо этого отозвать доступ непосредственно в источнике, удали ключ учетной записи службы в Google Cloud.
Текущие ограничения#
Наборы данных на основе GCS в настоящее время не поддерживают функции, требующие копий изображений, принадлежащих Платформе: автоматическую разметку, кластерный анализ, клонирование наборов данных и неизменяемые снимки версий.
Удаление набора данных на основе GCS или отдельных изображений из него удаляет только ссылки Платформы — твои объекты никогда не затрагиваются.
См. также интеграции с Amazon S3 и Azure Blob Storage.
Часто задаваемые вопросы#
Нет. Платформа один раз сканирует бакет и индексирует найденные размеры изображений и метки. Оригиналы передаются по запросу для просмотра и аннотирования, а управляемое обучение работает с собственными копиями закрепленных изображений платформы только на время выполнения задачи. Индексированные изображения не расходуют твою квоту хранилища.
Датасет индексируется один раз при создании. Новые объекты не учитываются, пока ты не создашь новый датасет или не повторишь неудачный импорт, причем каждое индексированное изображение привязано к своей версии, поэтому перезапись объекта приводит к тому, что платформа блокирует доступ к этому изображению. Добавляй новые объекты вместо замены существующих.
Функции, которым требуются собственные копии твоих изображений от платформы, отключены для подключенных датасетов: авторазметка, кластерный анализ, клонирование датасета и неизменяемые снапшоты версий. Ручная разметка, совместный доступ и обучение работают в обычном режиме.
Отключи интеграцию в разделе Settings > Integrations, чтобы удалить сохраненные учетные данные, либо удали ключ сервисного аккаунта в Google Cloud. Ни одно из этих действий не затрагивает данные в твоих бакетах.