プライバシー、リージョン、コンプライアンス
契約に基づいてデータとデプロイのリージョンを選び、データを非公開に保ち、アップロード前に画像を匿名化し、ローンチ前のコンプライアンスチェックリストに回答します。
ビジョンデータには、顔、ナンバープレート、工場内の作業員のバッジなど、個人情報が含まれることがよくあります。サインアップ時に何気なく選んだデータリージョンや、Publicのままのデータセットが1つあるだけで、顧客との契約に違反する可能性があり、どちらも後から元に戻すのは困難です。このレッスンでは、リージョン、公開範囲、匿名化に関する判断を、実行可能なアップロード前のぼかし処理とともに説明し、コンプライアンス担当者に渡せるチェックリストで締めくくります。
実践的
データリージョンとデプロイリージョン#

オンボーディング中にPlatformは3つのデータリージョンへのレイテンシを測定し、最も近いリージョンを推奨します。選択したリージョンはアカウントのdataRegionになります。
| データリージョン | 場所 | 一般的な選択理由 |
|---|---|---|
US(us) | 米国アイオワ州(us-central1) | 南北アメリカ |
EU(eu) | ベルギー、サン=ギスラン(europe-west1) | ヨーロッパ、中東、アフリカ。GDPRに基づくデータ保管要件 |
AP(ap) | 台湾、彰化(asia-east1) | アジア太平洋 |
データリージョンによって、Platformがデータセット、モデル、管理対象のトレーニングデータを保存する場所と、共有推論を実行する場所が決まります。次の3つは対象外です。
- 専用エンドポイントは、選択した42のデプロイリージョンのいずれかで実行されるため、EUのワークスペースから東京でサービスを提供することもでき、その場合、各リクエストの画像は東京に送られます。
- プロフィール、請求、アクティビティなどのアカウントレベルのデータは、プライバシーポリシーに記載のとおり、グローバルに処理されます。
- コンピューティングの場所。データリージョンはストレージの保証範囲です。契約で処理場所が制限されている場合は、トレーニング前にGPUとエンドポイントの場所をUltralyticsに確認するか、On Premiseを使用してください。

データリージョンはご自身では変更できず、サポートへのリクエストが必要です。チームワークスペースには、作成者のデータリージョンが引き継がれます。レイテンシではなく、契約に基づいて判断してください。
多国籍のユーザーにとって、レイテンシとデータ保管要件が相反する場合は、意図的に選択してください。データリージョン内に1つのエンドポイントを置く(コンプライアンスが最も簡単ですが、遠方のユーザーには遅くなります)、複数のリージョンにエンドポイントを置く(高速ですが、各リージョンにリクエスト画像が送信されるため、契約との適合性をそれぞれ確認する必要があります)、または管轄区域ごとにワークスペースを分ける(分離が最も強固ですが、運用負荷が増えます)方法があります。
公開範囲とアクセス#
新しいデータセットとプロジェクトは、FreeとProではデフォルトでPublic、EnterpriseではPrivateになります。Publicリソースは、サインアウト中の訪問者を含む誰でも閲覧でき、Exploreからクローンできます。後から非公開にしても、他のユーザーがすでに作成したコピーは削除されません。チームワークスペース(ProとEnterprise)には、4つのロールがあります。
| ロール | 可能な操作 |
|---|---|
| オーナー | メンバー、請求、チームの削除、所有権の移管など、すべての操作 |
| 管理者 | すべての項目を編集できます。請求、設定、管理者より下位のメンバーを管理できます。 |
| エディター | リソースの作成、編集、削除、アップロード、トレーニング、エクスポート、デプロイ |
| 閲覧者 | チームのリソースとメンバーの閲覧 |
各専用エンドポイントは1つのAPIキーに紐付けられており、キーの値を確認できるのはワークスペースのオーナーだけです。そのキーを削除してもエンドポイントはロックされません。ロックするには、デプロイを停止または削除する必要があります。
実践例:アップロード前の匿名化#
Platformでは顔をぼかせます。画像を右クリックして「Blur faces」を選択する(無料)、「More actions」からデータセット全体に適用する(画像1,000枚あたり$1.00)、または「New Dataset」ダイアログでぼかしを有効にすると、アップロード時の処理で無料でぼかされます。ナンバープレート、画面、通行人全体はぼかされず、接続済みデータセットでは利用できません。

それ以外の場合は、画像データがデバイスから外に出る前に匿名化してください。たとえばフォークリフトのプロジェクトでは、人は検出対象のクラスではなく通行人にあたるため、1人ずつ全身をぼかします。
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のサンプルと統計 | エンドポイントのメモリ上に保存されます。データセットに保存しない限り、停止または再起動時に消去されます |
| アカウント | Settings > Profile > Delete My Account。チームオーナーは、先にチームを削除するか、所有権を移管する必要があります |
アクセスリクエストに対して、Settings > Profileの「Export All Data」を実行すると、メタデータ(プロフィール、データセット、プロジェクト、モデル、アクティビティ)のJSONファイルが作成されます。画像や重みは含まれません。
ローンチ前のコンプライアンスチェックリスト#
- 顧客環境の外に送信されるデータは何ですか?フレーム、予測、それとも集計データのみですか?
- データリージョンとデプロイリージョンはどこですか?それぞれが契約の要件を満たしていますか?
- 機密データを含むすべてのデータセットとプロジェクトがPrivateになっていますか?以前に作成されたPublicのクローンも確認してください。
- 必要に応じて顔をぼかし、ナンバープレートをマスキングしていますか?ぼかし漏れを誰が抜き取り確認しますか?
- この顧客のデータをトレーニングに使用できますか?使用できない場合は、別のワークスペースに保管してください。
- 依頼があったとき、顧客の画像をどのように削除しますか?対象のデータセットとゴミ箱での手順を明記してください。
- 各ロールを誰が持ち、デプロイのAPIキーを誰が保持していますか?
Ultralyticsは、ISO/IEC 27001:2022およびSOC 2 Type Iへの準拠を含むセキュリティ体制を、セキュリティページで公開しています。規制対象のデプロイでは、コンプライアンス担当者の承認を得てください。
よくある落とし穴#
症状: データレジデンシー監査で、リクエスト画像がアイオワ州で処理されていることが判明しました。対処法: データリージョンによってエンドポイントの配置先が制限されるわけではありません。契約要件を満たすリージョンにデプロイし、チェックリストにすべてのエンドポイントのリージョンを記載してください。
症状: 匿名化後、人検出器の再現率が大幅に低下します。対処法: 人物全体をぼかすと、モデルが学習する特徴が失われます。人物が対象クラスの場合は顔だけをぼかし、通行人の場合に限り全身をぼかしてください。
症状: データセットを非公開にしたのに、Explore にコピーが引き続き表示されます。対処法: 公開中に作成されたクローンは、その所有者のものです。機密データを扱う場合、公開設定は取り消せないものとして扱い、作成時に公開範囲を設定してください。
解答を表示
ドイツのpillラインの実施例:(1) フレームが工場外に出るのはラベリング時のみで、予測結果はMESに送信されます。(2) データリージョンはEU、エンドポイントはeurope-west1です。(3) 2つのデータセットとプロジェクトはどちらもPrivateで、クローンはありません。(4) 作業者の手や顔が映り込むことがあります。「Blur faces on upload」が有効で、QAリードが毎週20枚を抜き取り確認します。(5) 契約では工場データを使ったトレーニングが許可されています。(6) 顧客ごとに専用のデータセットを使用しているため、削除リクエストを受けたら、そのデータセットを削除してから「Empty Trash」を実行します。自動削除まで30日間待つ必要はありません。(7) Raviがオーナーでエンドポイントキーを保持し、Anaはエディター、QAは閲覧者です。20フレームに対してanonymize.pyを実行すると23人の人物にぼかしが適用されました。部分的に遮蔽された作業者1人を見逃して手動でマスキングしたため、しきい値を0.15に下げました。