Конфиденциальность, регионы и соответствие требованиям
Выбирай регионы хранения данных и деплоя с учетом договоров, сохраняй данные конфиденциальными, анонимизируй изображения до загрузки и заполни контрольный список соответствия требованиям перед запуском.
Данные компьютерного зрения часто относятся к персональным: лица, номерные знаки, бейдж сотрудника на заводском участке. Если при регистрации без должного внимания выбрать регион данных или оставить датасет публичным, это может нарушить договор с клиентом; исправить и то и другое будет сложно. В этом уроке разбираются решения по регионам, видимости и анонимизации, приводится готовый к запуску шаг размытия перед загрузкой, а в конце — контрольный список, который можно передать специалисту по соответствию требованиям.
Практические занятия
Регион данных и регион деплоя#

Во время первоначальной настройки Platform измеряет задержку до трех регионов данных и рекомендует ближайший. Твой выбор становится dataRegion аккаунта:
| Регион данных | Расположение | Обычно выбирают для |
|---|---|---|
US (us) | Айова, США (us-central1) | Америка |
EU (eu) | Сен-Гилен, Бельгия (europe-west1) | Европа, Ближний Восток и Африка; требования к локализации данных по GDPR |
AP (ap) | Чжанхуа, Тайвань (asia-east1) | Азиатско-Тихоокеанский регион |
Регион данных определяет, где Platform хранит датасеты, модели и данные для управляемого обучения, а также где выполняется общий инференс. Три вещи находятся за его пределами:
- Выделенные эндпоинты работают в любом из выбранных тобой 42 регионов деплоя, поэтому рабочее пространство в EU может обслуживать запросы из Токио, куда отправляется изображение из каждого запроса.
- Данные на уровне аккаунта, например профиль, платежные данные и активность, обрабатываются глобально, как описано в политике конфиденциальности.
- Расположение вычислений. Регион данных гарантирует место хранения. Если договор ограничивает место обработки, перед обучением уточни расположение GPU и эндпоинтов у Ultralytics или используй On Premise.

Самостоятельно изменить регион данных нельзя — для этого нужно обратиться в поддержку. Рабочие пространства команды наследуют регион данных создавшего их пользователя. Принимай решение с учетом договора, а не задержки:
Если для пользователей из разных стран низкая задержка противоречит требованиям к локализации данных, выбирай осознанно: один эндпоинт в регионе данных (проще всего обеспечить соответствие требованиям, но для удаленных пользователей будет медленнее); эндпоинты в нескольких регионах (быстрее, но изображения из запросов поступают в каждый регион, поэтому сверь каждый с договором); или отдельные рабочие пространства для каждой юрисдикции (максимальное разделение, но больше усилий на обслуживание).
Видимость и доступ#
Для новых датасетов и проектов по умолчанию устанавливается Public на тарифах Free и Pro и Private на Enterprise. Публичные ресурсы может просматривать кто угодно, в том числе пользователи без входа в систему, и клонировать их из раздела Explore; если позже сделать ресурс приватным, уже созданные другими пользователями копии не исчезнут. В рабочих пространствах команды (Pro и Enterprise) используются четыре роли:
| Роль | Права |
|---|---|
| Владелец | Все права, включая управление участниками и платежами, удаление команды и передачу владения |
| Администратор | Редактирование всего; управление платежами, настройками и участниками с ролью ниже администратора |
| Редактор | Создание, редактирование и удаление ресурсов; загрузка; обучение, экспорт и деплой |
| Наблюдатель | Просмотр ресурсов и участников команды |
Каждый выделенный эндпоинт привязан к одному API-ключу, а просматривать значения ключей может только владелец рабочего пространства. Удаление ключа не блокирует эндпоинт; для этого нужно остановить или удалить деплой.
Пример: анонимизация перед загрузкой#
Platform размывает лица: щелкни изображение правой кнопкой мыши и выбери Размыть лица (бесплатно), запусти обработку всего датасета через Другие действия (1,00 $ за 1 000 изображений) или включи размытие в диалоге «Новый датасет», чтобы изображения размывались при обработке без дополнительной платы. Эта функция не размывает номерные знаки, экраны и посторонних людей целиком и недоступна для подключенных датасетов.

Для всего остального анонимизируй изображения до того, как пиксели покинут твой компьютер. Например, в проекте с вилочными погрузчиками люди — посторонние, а не класс, который ты определяешь, поэтому размывай каждого целиком:
from pathlib import Path
import cv2
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # swap in a plate or face detector for those objects
out = Path("anonymized")
out.mkdir(exist_ok=True)
for result in model.predict("https://ultralytics.com/images/bus.jpg", classes=[0], conf=0.25, verbose=False):
img = result.orig_img
for x1, y1, x2, y2 in result.boxes.xyxy.int().tolist():
img[y1:y2, x1:x2] = cv2.GaussianBlur(img[y1:y2, x1:x2], (51, 51), 0) # irreversible once saved
cv2.imwrite(str(out / Path(result.path).name), img)
print(f"{Path(result.path).name}: blurred {len(result.boxes)} people")bus.jpg: blurred 4 peopleclasses=[0]ограничивает обнаружение людьми; укажи вpredictпапку с кадрами, чтобы обработать всю партию.conf=0.25намеренно низкий: для конфиденциальности лишнее размытое пятно лучше, чем пропущенный человек. Все равно выборочно проверяй результат, потому что детекторы могут пропускать небольших и частично закрытых людей.- Загружай только папку
anonymized/, а оригиналы храни в соответствии со своей политикой хранения.
Правила принятия решений: размывай только лица (инструмент Platform), если люди — класс, который ты определяешь, поскольку размытие всего тела уничтожит сигнал, на котором обучается модель. Размывай посторонних людей целиком, если люди не являются классом. Маскируй номерные знаки, если правила считают их персональными данными, как это часто бывает в EU и Калифорнии. Если за пределы объекта могут передаваться только счетчики или оповещения, запускай инференс на периферийном устройстве и отправляй метаданные вместо кадров.
Хранение и удаление#
| Объект | Что происходит при удалении |
|---|---|
| Датасеты, проекты, модели | Перемещаются в корзину на 30 дней (и продолжают занимать место в хранилище), затем удаляются безвозвратно |
| Деплои | Удаляются сразу и безвозвратно, включая историю метрик и журналов |
| Примеры и статистика Monitoring | Хранятся в памяти эндпоинта; исчезают при остановке или перезапуске, если не сохранены в датасет |
| Твой аккаунт | Настройки > Профиль > Удалить аккаунт; владельцам команд сначала нужно удалить команды или передать права владения |
Для запросов на доступ пункт Экспортировать все данные в Настройки > Профиль создает JSON-файл с твоими метаданными (профилем, датасетами, проектами, моделями, активностью), но не с изображениями или весами.
Контрольный список соответствия требованиям перед запуском#
- Что покидает среду клиента? Кадры, предсказания или только агрегированные данные?
- Каковы регион данных и регионы деплоя? Каждый ли из них соответствует договору?
- У всех ли конфиденциальных датасетов и проектов установлен статус Private? Проверь, не создавались ли ранее публичные копии.
- Размыты ли лица и замаскированы ли номерные знаки там, где это необходимо? Кто проверяет, что размытие ничего не пропустило?
- Разрешено ли тебе вообще обучать модель на данных этого клиента? Если нет, храни данные в отдельном рабочем пространстве.
- Как по запросу удалить изображения одного клиента? Укажи датасеты и действие с корзиной.
- У кого какая роль и кто хранит API-ключи деплоя?
Ultralytics публикует сведения о мерах безопасности, включая соответствие ISO/IEC 27001:2022 и SOC 2 Type I, на странице безопасности. Передай любой деплой, подпадающий под требования регулирующих норм, на утверждение специалисту по соответствию требованиям.
Подводные камни#
Симптом: при аудите локализации данных выясняется, что изображения запросов обрабатывались в Айове. Решение: регион данных не ограничивает регионы эндпоинтов. Разверни сервис в регионе, соответствующем условиям договора, и укажи регионы всех эндпоинтов в контрольном списке.
Симптом: после анонимизации полнота обнаружения людей резко падает. Решение: размытие людей целиком удаляет признаки, которым обучается модель. Размывай только лица, если люди — целевой класс, и размывай людей целиком, только если они являются посторонними.
Симптом: ты сделал датасет приватным, но его копии всё ещё появляются в разделе Explore. Решение: копии, созданные, пока датасет был общедоступным, принадлежат их владельцам. Считай, что для конфиденциальных данных публичный доступ необратим, и задавай видимость при создании.
Показать решение
Рабочий пример для немецкой линии по производству таблеток: (1) Кадры покидают завод только для разметки; предсказания передаются в MES. (2) Регион данных — EU; эндпоинт — europe-west1. (3) У обоих датасетов и проекта статус Private; копий нет. (4) Иногда в кадре видны руки и лица операторов: размытие лиц при загрузке включено, а руководитель QA каждую неделю выборочно проверяет 20 изображений. (5) Договор разрешает обучение на данных завода. (6) Изображения каждого клиента хранятся в отдельном датасете, поэтому для удаления по запросу нужно удалить этот датасет, а затем воспользоваться пунктом Очистить корзину, не дожидаясь автоматического удаления через 30 дней. (7) Ravi — владелец и хранит ключ эндпоинта; Ana — редактор; QA — наблюдатель. anonymize.py размыл 23 человека на 20 кадрах; один частично закрытый оператор был пропущен и замаскирован вручную, поэтому порог снизили до 0.15.