Ultralytics YOLO27:

Интеграция с 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 Viewer (roles/storage.objectViewer) для корзин, которые хочешь подключить.
  3. Открой аккаунт службы, выбери Keys > Add key > Create new key, укажи JSON и скачай файл ключа.
Для поиска корзин нужно ещё одно разрешение

Роль roles/storage.objectViewer охватывает все действия Platform с твоими данными, но не позволяет просматривать список корзин в проекте. Назначь роль с разрешением storage.buckets.list, если хочешь, чтобы Platform находила корзины автоматически; иначе при подключении введи имя каждой корзины вручную.

Подключение к Platform#

  1. Перейди в Settings > Integrations и выбери Google Cloud Storage в списке интеграций.
  2. Вставь содержимое JSON-ключа аккаунта службы.
  3. Нажми Find available buckets, а затем выбери корзины для подключения. Если аккаунт службы не может просматривать список корзин, введи имя известной тебе корзины вручную.
  4. Нажми Connect. Прежде чем что-либо сохранять, Platform проверит, что может просматривать список и читать данные каждой выбранной корзины.

Настройки интеграции Google Cloud Storage в Ultralytics Platform

Чтобы подключить облачное хранилище, тебе нужна роль администратора или владельца рабочего пространства. Одно подключение поддерживает до 50 корзин, а при поиске отображается не более 300 корзин, доступных аккаунту службы.

Браузер считывает вставленный файл ключа и отправляет только три поля, необходимые Platform: client_email, private_key, и project_id. Остальная часть JSON не покидает страницу.

При повторном подключении того же аккаунта службы новые корзины добавляются в существующую интеграцию. Сохранённые учётные данные заменяются только после того, как новые учётные данные подтверждают возможность чтения всех уже подключённых корзин.

Защита учётных данных

Учётные данные шифруются при хранении с помощью AES-256-GCM, никогда не передаются обратно в браузер и не раскрываются рабочим нагрузкам обучения. Чтобы отозвать доступ, удали ключ аккаунта службы в Google Cloud.

Создай набор данных из корзины GCS#

  1. Нажми New Dataset и открой вкладку Cloud.
  2. Выбери подключённую корзину и перейди к папке с данными.
  3. Подтверди выбор папки, при необходимости измени имя набора данных и создай его.

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_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 S3 и Azure Blob Storage.

Часто задаваемые вопросы#

  • Нет. Platform один раз просматривает корзину и индексирует найденные размеры изображений и метки. Оригиналы передаются по запросу для просмотра и разметки, а при управляемом обучении используются только собственные копии Platform изображений, привязанных к версиям объектов, и только на время запуска. Индексированные изображения не учитываются в квоте хранилища.

  • Набор данных индексируется один раз при создании. Новые объекты не будут обнаружены, пока ты не создашь новый набор данных или не повторишь неудачный импорт; каждое индексированное изображение привязано к своей версии, поэтому при перезаписи объекта Platform перестанет работать с этим изображением. Добавляй новые объекты, а не заменяй существующие.

  • В подключённых наборах данных недоступны функции, для которых нужны копии изображений в Platform: авторазметка, кластерный анализ, клонирование набора данных и неизменяемые снимки версий. Ручная разметка, совместный доступ и обучение работают как обычно.

  • Отключи интеграцию в разделе Settings > Integrations, чтобы удалить сохранённые учётные данные, или удали ключ аккаунта службы в Google Cloud. Ни одно из этих действий не затронет данные в твоих корзинах.

Комментарии