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

Чтобы подключить облачное хранилище, тебе нужна роль администратора или владельца рабочего пространства. Одно подключение поддерживает до 50 корзин, а при поиске отображается не более 300 корзин, доступных аккаунту службы.
Браузер считывает вставленный файл ключа и отправляет только три поля, необходимые Platform: client_email, private_key,
и project_id. Остальная часть JSON не покидает страницу.
При повторном подключении того же аккаунта службы новые корзины добавляются в существующую интеграцию. Сохранённые учётные данные заменяются только после того, как новые учётные данные подтверждают возможность чтения всех уже подключённых корзин.
Учётные данные шифруются при хранении с помощью AES-256-GCM, никогда не передаются обратно в браузер и не раскрываются рабочим нагрузкам обучения. Чтобы отозвать доступ, удали ключ аккаунта службы в Google Cloud.
Создай набор данных из корзины GCS#
- Нажми New Dataset и открой вкладку Cloud.
- Выбери подключённую корзину и перейди к папке с данными.
- Подтверди выбор папки, при необходимости измени имя набора данных и создай его.
Platform один раз просматривает содержимое папки и индексирует найденные данные:
- Изображения — объекты
.jpg,.jpeg,.png,.webpи.avifиндексируются; размеры считываются с помощью запросов с ограниченным объёмом данных. Platform не сохраняет вторую копию исходного изображения. - Метки — файлы
.txtв формате YOLO преобразуются в аннотации Platform и сопоставляются по стандартной структуреimages/→labels/либо с файлами в той же папке. - Метаданные — YAML-файл содержит имена классов и форму ключевых точек позы, как и при загрузке архива. Если в папке несколько таких файлов, предпочтение отдаётся
data.yamlиdata.yml. - Задача — тип задачи определяется по выборке файлов с метками, поэтому папки для сегментации, оценки позы и OBB распознаются по структуре меток, а не по задаче, выбранной в диалоговом окне.
- Разбиение на выборки — имена папок
train,valиtestв пути к объекту автоматически задают разбиение.
Дальше с набором данных можно работать как с любым другим: просматривать и размечать его, делать общедоступным или закрытым, делиться им со своей командой и обучать на его данных с помощью управляемого обучения. Оригиналы передаются по запросу, а индексированные изображения не расходуют квоту хранилища Platform.
При одном импорте индексируется до 500 000 объектов; размер каждого файла меток или YAML-файла не должен превышать 1 МБ. Большие корзины следует распределить по нескольким наборам данных.
Каждое индексированное изображение привязано к поколению объекта GCS, и Platform прекращает работу с изображением, если объект изменён. Добавляй новые объекты, а не перезаписывай существующие.
Неудачный импорт#
Если импорт не удался — например, папка пуста, в пути опечатка или разрешения отозваны, — ошибка отображается на странице набора данных. Редакторы могут нажать Retry import, чтобы запустить импорт заново с сохранёнными данными о корзине и папке, или создать новый набор данных с исправленным путём.
При повторной попытке список объектов в папке формируется заново, а не продолжается с места остановки: добавленные после первой попытки объекты попадут в набор данных, а отсутствующие там больше объекты будут из него исключены.
Обучение#
Управляемое обучение запускается обычным способом. Во время обучения Platform использует собственные копии изображений, привязанных к версиям объектов, а учётные данные 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, недоступны функции, для которых нужны копии изображений в Platform: авторазметка, кластерный анализ, клонирование набора данных и неизменяемые снимки версий.
При удалении набора данных, связанного с GCS, или отдельных изображений из него удаляются только ссылки Platform — сами объекты остаются нетронутыми.
Также см. интеграции с Amazon S3 и Azure Blob Storage.
Часто задаваемые вопросы#
Нет. Platform один раз просматривает корзину и индексирует найденные размеры изображений и метки. Оригиналы передаются по запросу для просмотра и разметки, а при управляемом обучении используются только собственные копии Platform изображений, привязанных к версиям объектов, и только на время запуска. Индексированные изображения не учитываются в квоте хранилища.
Набор данных индексируется один раз при создании. Новые объекты не будут обнаружены, пока ты не создашь новый набор данных или не повторишь неудачный импорт; каждое индексированное изображение привязано к своей версии, поэтому при перезаписи объекта Platform перестанет работать с этим изображением. Добавляй новые объекты, а не заменяй существующие.
В подключённых наборах данных недоступны функции, для которых нужны копии изображений в Platform: авторазметка, кластерный анализ, клонирование набора данных и неизменяемые снимки версий. Ручная разметка, совместный доступ и обучение работают как обычно.
Отключи интеграцию в разделе Settings > Integrations, чтобы удалить сохранённые учётные данные, или удали ключ аккаунта службы в Google Cloud. Ни одно из этих действий не затронет данные в твоих корзинах.