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

Для каждого подключённого учётного доступа есть переключатель функций ИИ. Изменив роли, подключи тот же сервисный аккаунт ещё раз, чтобы повторно проверить право записи.
Чтобы подключить облачное хранилище, тебе нужна роль администратора или владельца рабочего пространства. За один раз можно добавить до 50 бакетов, а при поиске отображается не более 300 бакетов, доступных служебной учётной записи.
Браузер считывает вставленный файл ключа и отправляет только три поля, необходимые Platform: client_email, private_key и project_id. Остальное содержимое JSON не покидает страницу.
При повторном подключении той же служебной учётной записи новые бакеты добавляются в существующую интеграцию. Сохранённые учётные данные заменяются, только если новые по-прежнему позволяют читать все уже подключённые бакеты. Если какой-то бакет недоступен для чтения, ошибка укажет его имя, в том числе если этот бакет был подключён раньше с той же служебной учётной записью.
Учётные данные шифруются при хранении с помощью AES-256-GCM, никогда не возвращаются в браузер и не передаются задачам обучения. Чтобы отозвать доступ, удали ключ служебной учётной записи в Google Cloud.
Функции ИИ#
Для каждого подключённого учётного доступа в Settings > Integrations есть переключатель функций ИИ, включённый по умолчанию. Если он включён, GPU Ultralytics и поставщики моделей ИИ могут использовать изображения из этого учётного доступа для:
- интеллектуального аннотирования SAM, а также автоматического аннотирования одного изображения и пакетного автоматического аннотирования
- поиска похожих изображений и анализа кластеризации
- облачного обучения
- генерации изображений в контейнерах с правом записи
Провайдеры моделей ИИ используются только для генерации изображений, для которой Google Gemini составляет запросы на основе исходного изображения, и для платных моделей разметки, работающих с ключом провайдера из твоего рабочего пространства. Platform не хранит копии изображений: функции считывают их по запросу, облачное обучение использует временные копии на время запуска, а для поиска похожих изображений хранится эмбеддинг каждого изображения, который удаляется, когда изображение покидает Platform.
Выключи переключатель, чтобы изображения не передавались на GPU Ultralytics и поставщикам моделей ИИ. После выключения новые задачи ИИ не запускаются; текущие задачи выполняются до конца. Наборы данных, использующие этот учётный доступ, будут показывать статус AI features off со ссылкой на эти настройки, а для каждой недоступной функции будет указана причина. Ручное аннотирование, совместный доступ и локальное обучение продолжат работать, а уже созданные метки, модели и результаты поиска сохранятся.
Чтобы изменить переключатель, тебе нужна роль администратора или владельца рабочего пространства. Также это можно сделать через REST API, указав ID интеграции, возвращённый методом GET /api/integrations/buckets:
curl -X PATCH \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"processing": false}' \
https://platform.ultralytics.com/api/integrations/buckets/INTEGRATION_IDГенерация изображений#
Функция генерации похожих изображений работает с наборами данных Google Cloud Storage, если сервисный аккаунт может записывать данные в соответствующий контейнер и включены функции ИИ. Добавленные изображения записываются в папку generated/ внутри папки набора данных, а затем добавляются в набор данных как любые другие индексированные изображения. Platform только создаёт там новые объекты и никогда не перезаписывает и не удаляет существующие. Если действие сообщает, что нужен доступ на запись, предоставь его, если необходимо, и снова подключи тот же сервисный аккаунт в Settings > Integrations.
Создание набора данных из бакета GCS#
- Нажми New Dataset и открой вкладку Cloud.
- Выбери подключённый бакет и перейди к папке с данными.
- Подтверди выбор папки, при необходимости измени название набора данных и создай его.
Platform однократно перечисляет содержимое папки и индексирует найденные данные:
- Изображения — объекты
.jpg,.jpeg,.png,.webpи.avifиндексируются; размеры считываются с помощью ограниченных по объёму запросов. Platform не сохраняет вторую копию исходного изображения. - Метки — файлы YOLO
.txtразбираются в аннотации Platform и сопоставляются по стандартной структуреimages/→labels/или как соседние файлы в одной папке. - Метаданные — YAML-файл содержит названия классов и структуру ключевых точек позы, как и при загрузке архива. Если в папке несколько файлов, предпочтение отдаётся
data.yamlиdata.yml. - Задача — задача определяется по выборке файлов меток, поэтому папки segment, pose и OBB распознаются по структуре меток, а не по задаче, выбранной в диалоговом окне.
- Разбиение — названия папок
train,valиtestв пути к объекту автоматически задают разбиение.
Дальше набор данных работает как любой другой: просматривай его и размечай, делай его общедоступным или приватным, делись им со своей командой и обучай модели с помощью управляемого обучения. Исходные данные передаются по запросу, а индексированные изображения не расходуют квоту хранилища Platform.
За один импорт индексируется до 500 000 объектов, а файлы разметки или YAML — размером до 1 МБ каждый. Более крупные бакеты следует разделить на несколько датасетов.
Каждое индексированное изображение привязано к поколению объекта GCS, и Platform блокирует доступ, если объект изменяется. Добавляй новые объекты, а не перезаписывай существующие.
Неудачный импорт#
Если импорт завершается ошибкой — например, из-за пустой папки, опечатки в пути или отозванных разрешений, — ошибка отображается на странице датасета. Редакторы могут нажать Повторить импорт, чтобы перезапустить его с сохранёнными бакетом и папкой, или создать новый датасет, указав исправленный путь.
При повторном импорте папка сканируется заново, а не с того места, где импорт остановился: в датасет добавляются объекты, появившиеся после первой попытки, а объекты, которых больше нет, удаляются из датасета.
Обучение#
При включённых функциях ИИ управляемое обучение выполняется в обычном режиме обучения. На время выполнения обучения используются собственные копии закреплённых изображений, хранящиеся в Platform; учётные данные Google Cloud никогда не передаются задачам обучения. Если функции ИИ выключены, в диалоговом окне обучения объясняется, почему облачное обучение недоступно, и предлагается локальное обучение.
Отключение подключения#
При отключении сохранённые учётные данные удаляются, но в Google Cloud ничего не меняется. Датасеты, созданные на основе этих бакетов, остаются в твоём рабочем пространстве вместе со своими классами, метками и аннотациями, но их изображения нельзя загружать, просматривать или использовать для обучения, пока снова не будет подключён тот же сервисный аккаунт. Даже без подключения ты можешь переименовывать датасеты, редактировать метки и удалять датасеты.
Чтобы отключить подключение, перейди в Настройки > Интеграции, выбери Google Cloud Storage, нажми Отключить рядом с учётными данными и подтверди действие. При открытии одного из таких датасетов появится сообщение Google Cloud Storage отключено со ссылкой на эти настройки. После повторного подключения датасет снова станет доступен автоматически.
Отключить подключение можно также через 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 один раз просматривает контейнер и индексирует обнаруженные размеры изображений и метки. Исходные изображения передаются по запросу для просмотра и аннотирования. Если функции ИИ включены, GPU Ultralytics считывают изображения по запросу, для управляемого обучения используются временные копии на время выполнения, а для поиска похожих изображений сохраняется эмбеддинг каждого изображения, удаляемый вместе с изображением. Единственные объекты, которые Platform когда-либо записывает, — это добавленные тобой сгенерированные изображения в папке
generated/. Индексированные изображения не учитываются в лимите хранилища.Датасет индексируется один раз при создании. Новые объекты не попадут в него, пока ты не создашь новый датасет или не повторишь неудачный импорт. Каждое индексированное изображение привязано к своей версии, поэтому при перезаписи объекта Platform блокирует доступ к этому изображению. Добавляй новые объекты, а не заменяй существующие.
Только при генерации изображений и только если сервисный аккаунт может создавать объекты, а функции ИИ включены. Platform создаёт новые объекты в папке
generated/внутри папки набора данных и никогда не перезаписывает и не удаляет существующие.Отключи интеграцию в Settings > Integrations, чтобы удалить сохранённые учётные данные, или удали ключ сервисного аккаунта в Google Cloud. Ни одно из этих действий не затрагивает данные в твоих контейнерах. Чтобы изображения не передавались на GPU Ultralytics, не отключая интеграцию, выключи функции ИИ.
Комментарии
Задай вопрос, поделись результатами или помоги кому-нибудь.