Ultralytics YOLO27: 대기자 명단에 등록하세요.
Get Started
Ultralytics Platform으로 구축하기·배포 및 모니터링·레슨 9/10
강의중급

개인정보 보호, 리전 및 컴플라이언스

계약에 따라 데이터 및 배포 리전을 선택하고, 데이터를 비공개로 유지하며, 업로드 전에 이미지를 익명화하고, 출시 전 컴플라이언스 체크리스트를 작성합니다.

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

학습 성과

데이터 상주 요건을 충족하는 데이터 및 배포 리전을 선택하고, Platform의 도구가 처리할 수 없는 부분은 업로드 전에 이미지를 익명화하며, 프로젝트에 대한 7개 질문의 컴플라이언스 체크리스트를 작성할 수 있습니다.

속성 과정
이미 사용법을 알고 계신다면, 간단히 요약해 드리겠습니다.
  1. 데이터 리전(US, EU 또는 AP)은 온보딩 시 고정되며, 엔드포인트는 42개 리전 중 어디서나 실행할 수 있습니다.

  2. 개인정보가 포함된 모든 데이터셋과 프로젝트가 비공개인지 확인합니다.

  3. Platform으로 얼굴을 블러 처리하고, 업로드 전에 번호판과 주변 사람은 직접 마스킹합니다.

  4. 최소 권한 원칙에 따라 팀 역할을 부여하고, 각 엔드포인트의 키를 보유한 사람이 누구인지 파악합니다.

  5. 삭제 절차를 파악합니다. 휴지통 보관 기간은 30일이며, 배포는 즉시 삭제되고, Monitoring 예시는 재시작 시 사라집니다.

실습형

데이터 리전과 배포 리전 비교#

Ultralytics Platform 온보딩의 Data Region 단계. 세계 지도와 세 가지 선택지인 미주, 유럽·중동·아프리카, 아시아 태평양이 표시되어 있으며, 각 선택지에는 측정된 지연 시간이 표시되고 유럽이 Recommended로 표시되어 있습니다

온보딩 중 Platform은 세 데이터 리전까지의 지연 시간을 측정하고 가장 가까운 리전을 추천합니다. 선택한 리전은 계정의 dataRegion이 됩니다.

데이터 리전위치일반적인 선택 대상
US (us)미국 아이오와 (us-central1)미주
EU (eu)벨기에 생질 (europe-west1)유럽, 중동 및 아프리카; GDPR에 따른 데이터 상주 요건
AP (ap)대만 장화 (asia-east1)아시아 태평양

데이터 리전은 Platform이 데이터셋, 모델, 관리형 학습 데이터를 저장하는 위치와 공유 추론이 실행되는 위치를 결정합니다. 다음 세 가지는 데이터 리전의 적용 범위에 포함되지 않습니다.

  • 전용 엔드포인트는 선택한 42개 배포 리전 중 한 곳에서 실행됩니다. 따라서 EU 작업 공간의 엔드포인트를 도쿄에서 제공할 수 있으며, 각 요청의 이미지도 해당 리전으로 전송됩니다.
  • 프로필, 결제, 활동 정보와 같은 계정 수준 데이터는 개인정보 처리방침에 설명된 대로 전 세계에서 처리됩니다.
  • 컴퓨팅 위치. 데이터 리전은 저장 위치를 보장합니다. 계약에서 데이터 처리 위치를 제한하는 경우 학습 전에 Ultralytics에 GPU 및 엔드포인트 위치를 확인하거나 On Premise를 사용하세요.

Ultralytics Platform 프로필의 Deployments 탭. 사용 가능한 모든 리전이 표시된 세계 지도와 배포 준비가 완료된 리전 한 곳이 강조되어 있습니다

데이터 리전은 직접 변경할 수 없으며 지원 요청이 필요합니다. 팀 작업 공간은 생성한 사람의 데이터 리전을 상속합니다. 지연 시간이 아니라 계약을 기준으로 결정하세요.

다국적 사용자를 지원할 때 지연 시간과 데이터 상주 요건이 서로 충돌하면 신중하게 선택합니다. 데이터 리전에 엔드포인트 하나를 두면 컴플라이언스가 가장 간단하지만 먼 지역의 사용자는 느릴 수 있습니다. 여러 리전에 엔드포인트를 두면 속도는 빨라지지만 각 리전으로 요청 이미지가 전송되므로 계약을 기준으로 각 리전을 확인해야 합니다. 관할권별로 작업 공간을 분리하면 데이터 분리가 가장 확실하지만 운영 부담이 커집니다.

공개 범위 및 액세스#

새 데이터셋과 프로젝트는 Free 및 Pro에서 공개로, Enterprise에서 비공개로 기본 설정됩니다. 공개 리소스는 로그인하지 않은 방문자를 포함해 누구나 볼 수 있으며 Explore에서 복제할 수 있습니다. 나중에 비공개로 변경해도 다른 사용자가 이미 복제한 사본은 삭제되지 않습니다. Pro 및 Enterprise 팀 작업 공간은 네 가지 역할을 사용합니다.

역할권한
소유자멤버 및 결제 관리, 팀 삭제, 소유권 이전을 포함한 모든 작업
관리자모든 항목 편집, 결제 및 설정 관리, 관리자 권한 이하의 멤버 관리
편집자리소스 생성, 편집, 삭제, 업로드, 학습, 내보내기 및 배포
뷰어팀 리소스 및 멤버 조회

각 전용 엔드포인트는 하나의 API 키에 연결되며, 키 값은 작업 공간 소유자만 볼 수 있습니다. 해당 키를 삭제해도 엔드포인트가 잠기지는 않습니다. 배포를 중지하거나 삭제해야 합니다.

실행 예시: 업로드 전 익명화#

Platform은 얼굴을 블러 처리합니다. 이미지에서 마우스 오른쪽 버튼을 클릭하고 Blur faces(무료)를 선택하거나, More actions에서 전체 데이터셋에 적용할 수 있습니다(이미지 1,000개당 $1.00). 또는 New Dataset 대화상자에서 블러 처리를 활성화하면 업로드 시 처리 과정에서 무료로 블러 처리됩니다. 번호판, 화면, 주변 사람 전체는 블러 처리하지 않으며 연결된 데이터셋에서는 사용할 수 없습니다.

Ultralytics Platform의 Blur faces 대화상자. 신뢰도와 박스 크기 설정, 향후 업로드에 블러 처리 적용 스위치, 얼굴이 블러 처리된 사람 이미지 미리 보기, 예상 비용 $0.02가 표시되어 있습니다

그 밖의 대상은 픽셀이 컴퓨터 밖으로 전송되기 전에 익명화합니다. 예를 들어 지게차 프로젝트에서 사람은 탐지 대상 클래스가 아니라 주변 사람이므로, 각 사람을 완전히 블러 처리합니다.

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 people
  • classes=[0]은 탐지 대상을 사람으로 제한합니다. 전체 배치를 처리하려면 predict에 프레임 폴더를 지정합니다.
  • conf=0.25은 의도적으로 낮게 설정합니다. 개인정보 보호를 위해 사람을 놓치는 것보다 블러 처리 영역을 더 만드는 편이 낫습니다. 그래도 탐지기가 작거나 가려진 사람을 놓칠 수 있으므로 출력물을 표본 검사합니다.
  • anonymized/ 폴더만 업로드하고, 원본은 보존 정책에 명시된 위치에 보관합니다.

판단 기준: 사람이 탐지 대상 클래스라면 Platform 도구로 얼굴만 블러 처리합니다. 몸 전체를 블러 처리하면 모델이 학습하는 신호가 손상되기 때문입니다. 사람이 탐지 대상 클래스가 아니라면 주변 사람의 몸 전체를 블러 처리합니다. EU와 캘리포니아처럼 번호판을 개인정보로 취급하는 규정이 적용되는 경우 번호판을 마스킹합니다. 카운트나 알림만 외부로 전송해도 되는 경우 프레임 대신 메타데이터를 전송하도록 엣지에서 추론을 실행합니다.

보존 및 삭제#

항목삭제 시 처리 방식
데이터셋, 프로젝트, 모델30일 동안 휴지통으로 이동하며(계속 저장 용량에 포함됨), 이후 영구 삭제됩니다.
배포메트릭 및 로그 기록을 포함해 즉시 영구 삭제됩니다.
Monitoring 예시 및 통계엔드포인트 메모리에 저장되며, 데이터셋에 저장하지 않으면 중지 또는 재시작 시 사라집니다.
계정Settings > Profile > Delete My Account; 팀 소유자는 먼저 팀을 삭제하거나 소유권을 이전해야 합니다.

액세스 요청에 대응하려면 Settings > Profile에서 Export All Data를 선택합니다. 메타데이터(프로필, 데이터셋, 프로젝트, 모델, 활동)가 담긴 JSON 파일이 생성되며 이미지나 가중치는 포함되지 않습니다.

출시 전 컴플라이언스 체크리스트#

  1. 고객 환경 밖으로 전송되는 데이터는 무엇입니까? 프레임, 예측 결과, 집계 데이터 중 무엇입니까?
  2. 데이터 리전과 배포 리전은 어디입니까? 각 리전이 계약을 충족합니까?
  3. 민감한 데이터셋과 프로젝트가 모두 비공개입니까? 이전에 생성된 공개 복제본이 있는지 확인합니다.
  4. 필요한 경우 얼굴은 블러 처리하고 번호판은 마스킹합니까? 블러 처리에서 누락된 부분은 누가 표본 검사합니까?
  5. 이 고객의 데이터로 학습해도 됩니까? 허용되지 않는다면 별도의 작업 공간에 보관합니다.
  6. 요청이 들어오면 고객 한 명의 이미지를 어떻게 삭제합니까? 해당 데이터셋과 휴지통 처리 단계를 명시합니다.
  7. 각 역할을 가진 사람은 누구이며, 배포 API 키는 누가 보유합니까?

Ultralytics는 ISO/IEC 27001:2022 및 SOC 2 Type I 준수를 비롯한 보안 현황을 보안 페이지에 공개합니다. 규제 대상 배포는 컴플라이언스 검토자의 승인을 받으세요.

주의할 점#

미국 엔드포인트에서 서비스를 제공하는 EU 워크스페이스

증상: 데이터 거주성 감사에서 요청 이미지가 아이오와주에서 처리된 사실이 발견됩니다. 해결 방법: 데이터 리전은 엔드포인트의 위치를 제한하지 않습니다. 계약 요건을 충족하는 리전에 배포하고 체크리스트에 모든 엔드포인트 리전을 기재하세요.

감지 대상 클래스를 흐리게 처리하기

증상: 익명화 후 사람 탐지기의 재현율이 급락합니다. 해결 방법: 사람 전체를 흐리게 처리하면 모델이 학습하는 특징이 사라집니다. 사람이 대상 클래스라면 얼굴만 흐리게 처리하고, 주변 인물일 때만 몸 전체를 흐리게 처리하세요.

지난달에 공개되어 있던 비공개 데이터셋

증상: 데이터셋을 비공개로 설정했는데도 Explore에 사본이 계속 표시됩니다. 해결 방법: 공개 상태일 때 만들어진 복제본은 해당 복제본 소유자의 것입니다. 민감한 데이터의 공개 설정은 되돌릴 수 없다고 간주하고 생성 시 공개 여부를 설정하세요.

사용해 보기

프로젝트의 체크리스트 질문 7개에 모두 서면으로 답하고, 모든 엔드포인트 리전을 포함합니다. 그런 다음 마스킹이 필요한 클래스가 포함된 자체 프레임 20개에 anonymize.py을 실행하고, 모든 출력 이미지를 표본 검사한 뒤, 익명화한 폴더만 비공개 데이터셋에 업로드합니다.

완료 조건
다음 조건을 모두 충족하면 레슨을 완료한 것입니다.
  • 체크리스트 질문 7개에 모두 서면으로 답했으며, 컴플라이언스 검토자가 확인해야 하는 답변을 표시했습니다.

  • 데이터 리전과 모든 엔드포인트 리전이 데이터 상주 요건을 충족합니다.

  • 비공개 데이터셋에는 익명화된 이미지만 저장되어 있으며, 직접 수정해야 했던 탐지 결과의 수도 기록했습니다.

정답 보기

독일의 필 라인 실행 예시: (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로 낮췄습니다.

다음 단계

마지막 강의에서는 배포 하나를 자동화된 게이트와 릴리스를 갖춘 안정적이고 반복 가능한 재학습 루프로 전환합니다.