개인정보 보호, 리전 및 컴플라이언스
계약에 따라 데이터 및 배포 리전을 선택하고, 데이터를 비공개로 유지하며, 업로드 전에 이미지를 익명화하고, 출시 전 컴플라이언스 체크리스트를 작성합니다.
비전 데이터에는 얼굴, 번호판, 공장 현장의 작업자 배지 등 개인정보가 포함되는 경우가 많습니다. 가입할 때 별다른 검토 없이 데이터 리전을 선택하거나 데이터셋 하나를 공개 상태로 두면 고객 계약을 위반할 수 있으며, 두 경우 모두 되돌리기 어렵습니다. 이 문서에서는 실행 가능한 업로드 전 블러 처리 단계를 통해 리전, 공개 범위, 익명화 관련 결정을 살펴보고, 컴플라이언스 검토자에게 전달할 체크리스트로 마무리합니다.
실습형
데이터 리전과 배포 리전 비교#

온보딩 중 Platform은 세 데이터 리전까지의 지연 시간을 측정하고 가장 가까운 리전을 추천합니다. 선택한 리전은 계정의 dataRegion이 됩니다.
| 데이터 리전 | 위치 | 일반적인 선택 대상 |
|---|---|---|
US (us) | 미국 아이오와 (us-central1) | 미주 |
EU (eu) | 벨기에 생질 (europe-west1) | 유럽, 중동 및 아프리카; GDPR에 따른 데이터 상주 요건 |
AP (ap) | 대만 장화 (asia-east1) | 아시아 태평양 |
데이터 리전은 Platform이 데이터셋, 모델, 관리형 학습 데이터를 저장하는 위치와 공유 추론이 실행되는 위치를 결정합니다. 다음 세 가지는 데이터 리전의 적용 범위에 포함되지 않습니다.
- 전용 엔드포인트는 선택한 42개 배포 리전 중 한 곳에서 실행됩니다. 따라서 EU 작업 공간의 엔드포인트를 도쿄에서 제공할 수 있으며, 각 요청의 이미지도 해당 리전으로 전송됩니다.
- 프로필, 결제, 활동 정보와 같은 계정 수준 데이터는 개인정보 처리방침에 설명된 대로 전 세계에서 처리됩니다.
- 컴퓨팅 위치. 데이터 리전은 저장 위치를 보장합니다. 계약에서 데이터 처리 위치를 제한하는 경우 학습 전에 Ultralytics에 GPU 및 엔드포인트 위치를 확인하거나 On Premise를 사용하세요.

데이터 리전은 직접 변경할 수 없으며 지원 요청이 필요합니다. 팀 작업 공간은 생성한 사람의 데이터 리전을 상속합니다. 지연 시간이 아니라 계약을 기준으로 결정하세요.
다국적 사용자를 지원할 때 지연 시간과 데이터 상주 요건이 서로 충돌하면 신중하게 선택합니다. 데이터 리전에 엔드포인트 하나를 두면 컴플라이언스가 가장 간단하지만 먼 지역의 사용자는 느릴 수 있습니다. 여러 리전에 엔드포인트를 두면 속도는 빨라지지만 각 리전으로 요청 이미지가 전송되므로 계약을 기준으로 각 리전을 확인해야 합니다. 관할권별로 작업 공간을 분리하면 데이터 분리가 가장 확실하지만 운영 부담이 커집니다.
공개 범위 및 액세스#
새 데이터셋과 프로젝트는 Free 및 Pro에서 공개로, Enterprise에서 비공개로 기본 설정됩니다. 공개 리소스는 로그인하지 않은 방문자를 포함해 누구나 볼 수 있으며 Explore에서 복제할 수 있습니다. 나중에 비공개로 변경해도 다른 사용자가 이미 복제한 사본은 삭제되지 않습니다. Pro 및 Enterprise 팀 작업 공간은 네 가지 역할을 사용합니다.
| 역할 | 권한 |
|---|---|
| 소유자 | 멤버 및 결제 관리, 팀 삭제, 소유권 이전을 포함한 모든 작업 |
| 관리자 | 모든 항목 편집, 결제 및 설정 관리, 관리자 권한 이하의 멤버 관리 |
| 편집자 | 리소스 생성, 편집, 삭제, 업로드, 학습, 내보내기 및 배포 |
| 뷰어 | 팀 리소스 및 멤버 조회 |
각 전용 엔드포인트는 하나의 API 키에 연결되며, 키 값은 작업 공간 소유자만 볼 수 있습니다. 해당 키를 삭제해도 엔드포인트가 잠기지는 않습니다. 배포를 중지하거나 삭제해야 합니다.
실행 예시: 업로드 전 익명화#
Platform은 얼굴을 블러 처리합니다. 이미지에서 마우스 오른쪽 버튼을 클릭하고 Blur faces(무료)를 선택하거나, More actions에서 전체 데이터셋에 적용할 수 있습니다(이미지 1,000개당 $1.00). 또는 New Dataset 대화상자에서 블러 처리를 활성화하면 업로드 시 처리 과정에서 무료로 블러 처리됩니다. 번호판, 화면, 주변 사람 전체는 블러 처리하지 않으며 연결된 데이터셋에서는 사용할 수 없습니다.

그 밖의 대상은 픽셀이 컴퓨터 밖으로 전송되기 전에 익명화합니다. 예를 들어 지게차 프로젝트에서 사람은 탐지 대상 클래스가 아니라 주변 사람이므로, 각 사람을 완전히 블러 처리합니다.
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 파일이 생성되며 이미지나 가중치는 포함되지 않습니다.
출시 전 컴플라이언스 체크리스트#
- 고객 환경 밖으로 전송되는 데이터는 무엇입니까? 프레임, 예측 결과, 집계 데이터 중 무엇입니까?
- 데이터 리전과 배포 리전은 어디입니까? 각 리전이 계약을 충족합니까?
- 민감한 데이터셋과 프로젝트가 모두 비공개입니까? 이전에 생성된 공개 복제본이 있는지 확인합니다.
- 필요한 경우 얼굴은 블러 처리하고 번호판은 마스킹합니까? 블러 처리에서 누락된 부분은 누가 표본 검사합니까?
- 이 고객의 데이터로 학습해도 됩니까? 허용되지 않는다면 별도의 작업 공간에 보관합니다.
- 요청이 들어오면 고객 한 명의 이미지를 어떻게 삭제합니까? 해당 데이터셋과 휴지통 처리 단계를 명시합니다.
- 각 역할을 가진 사람은 누구이며, 배포 API 키는 누가 보유합니까?
Ultralytics는 ISO/IEC 27001:2022 및 SOC 2 Type I 준수를 비롯한 보안 현황을 보안 페이지에 공개합니다. 규제 대상 배포는 컴플라이언스 검토자의 승인을 받으세요.
주의할 점#
증상: 데이터 거주성 감사에서 요청 이미지가 아이오와주에서 처리된 사실이 발견됩니다. 해결 방법: 데이터 리전은 엔드포인트의 위치를 제한하지 않습니다. 계약 요건을 충족하는 리전에 배포하고 체크리스트에 모든 엔드포인트 리전을 기재하세요.
증상: 익명화 후 사람 탐지기의 재현율이 급락합니다. 해결 방법: 사람 전체를 흐리게 처리하면 모델이 학습하는 특징이 사라집니다. 사람이 대상 클래스라면 얼굴만 흐리게 처리하고, 주변 인물일 때만 몸 전체를 흐리게 처리하세요.
증상: 데이터셋을 비공개로 설정했는데도 Explore에 사본이 계속 표시됩니다. 해결 방법: 공개 상태일 때 만들어진 복제본은 해당 복제본 소유자의 것입니다. 민감한 데이터의 공개 설정은 되돌릴 수 없다고 간주하고 생성 시 공개 여부를 설정하세요.
정답 보기
독일의 필 라인 실행 예시: (1) 프레임은 라벨링을 위해서만 공장 밖으로 전송되고, 예측 결과는 MES로 전송됩니다. (2) 데이터 리전은 EU이고 엔드포인트는 europe-west1입니다. (3) 두 데이터셋과 프로젝트 모두 비공개이며 복제본은 없습니다. (4) 작업자의 손과 얼굴이 간혹 나타납니다. 업로드 시 얼굴 블러 처리가 활성화되어 있으며 QA 책임자가 매주 이미지 20개를 표본 검사합니다. (5) 계약상 공장 데이터를 사용한 학습이 허용됩니다. (6) 고객별 이미지는 별도의 데이터셋에 저장되므로, 삭제 요청이 들어오면 해당 데이터셋을 삭제한 다음 자동 삭제까지 30일을 기다리는 대신 Empty Trash를 실행합니다. (7) Ravi는 소유자이며 엔드포인트 키를 보유하고, Ana는 편집자이며 QA는 뷰어입니다. 프레임 20개에 anonymize.py을 실행해 23명을 블러 처리했습니다. 일부 가려진 작업자 한 명을 놓쳐 수동으로 마스킹했으므로 임계값을 0.15로 낮췄습니다.