Ultralytics YOLO27: Tham gia danh sách chờ.
Get Started
Xây dựng bằng Ultralytics Platform·Triển khai và giám sát·Bài học 9/10
Bài họctrung cấp

Quyền riêng tư, khu vực và tuân thủ

Chọn khu vực dữ liệu và deployment dựa trên hợp đồng, giữ dữ liệu ở chế độ riêng tư, ẩn danh hóa ảnh trước khi tải lên và hoàn thành danh sách kiểm tra tuân thủ trước khi ra mắt.

Dữ liệu thị giác thường mang tính cá nhân: khuôn mặt, biển số xe, thẻ nhân viên của một công nhân trên sàn nhà máy. Chọn khu vực dữ liệu một cách tùy tiện khi đăng ký hoặc để một tập dữ liệu ở chế độ Public có thể vi phạm hợp đồng khách hàng; cả hai đều khó khắc phục. Bài học này hướng dẫn các quyết định về khu vực, quyền hiển thị và ẩn danh hóa, kèm một bước làm mờ có thể chạy trước khi tải lên, sau đó kết thúc bằng danh sách kiểm tra để bạn gửi cho chuyên viên đánh giá tuân thủ.

Kết quả

Bạn có thể chọn khu vực dữ liệu và deployment đáp ứng yêu cầu lưu trú dữ liệu, ẩn danh hóa ảnh trước khi tải lên khi các công cụ của Platform không xử lý được, đồng thời hoàn thành danh sách kiểm tra tuân thủ gồm bảy câu hỏi cho dự án của mình.

Lộ trình cấp tốc
Nếu bạn đã nắm rõ cách thực hiện, đây là phiên bản tóm tắt.
  1. Khu vực dữ liệu (US, EU hoặc AP) được cố định khi bắt đầu sử dụng; endpoint có thể chạy ở bất kỳ khu vực nào trong số 42 khu vực.

  2. Kiểm tra để đảm bảo mọi tập dữ liệu và dự án chứa dữ liệu cá nhân đều ở chế độ Private.

  3. Làm mờ khuôn mặt bằng Platform; tự che biển số và người qua đường trước khi tải lên.

  4. Cấp vai trò cho nhóm theo nguyên tắc đặc quyền tối thiểu; xác định ai nắm giữ khóa của từng endpoint.

  5. Nắm rõ quy trình xóa: dữ liệu trong Thùng rác được giữ 30 ngày, deployment bị xóa ngay lập tức, ví dụ Monitoring bị mất khi khởi động lại.

Thực hành

Khu vực dữ liệu và khu vực deployment#

Bước chọn Khu vực dữ liệu khi onboarding Ultralytics Platform với bản đồ thế giới và ba lựa chọn: Châu Mỹ, Châu Âu, Trung Đông và Châu Phi, và Châu Á - Thái Bình Dương; mỗi lựa chọn hiển thị độ trễ đo được và Châu Âu được đánh dấu là Được đề xuất

Trong quá trình onboarding, Platform đo độ trễ đến ba khu vực dữ liệu và đề xuất khu vực gần nhất. Lựa chọn của bạn trở thành dataRegion của tài khoản:

Khu vực dữ liệuVị tríLựa chọn thường dùng cho
US (us)Iowa, Hoa Kỳ (us-central1)Châu Mỹ
EU (eu)St. Ghislain, Bỉ (europe-west1)Châu Âu, Trung Đông và Châu Phi; yêu cầu lưu trú dữ liệu theo GDPR
AP (ap)Changhua, Đài Loan (asia-east1)Châu Á - Thái Bình Dương

Khu vực dữ liệu quyết định nơi Platform lưu trữ tập dữ liệu, model và dữ liệu huấn luyện được quản lý, cũng như nơi chạy suy luận dùng chung. Có ba thành phần nằm ngoài khu vực này:

  • Endpoint chuyên dụng chạy tại một trong 42 khu vực deployment mà bạn chọn, vì vậy workspace ở EU có thể phục vụ từ Tokyo và ảnh trong từng request sẽ được gửi đến đó.
  • Dữ liệu cấp tài khoản như hồ sơ, thanh toán và hoạt động được xử lý trên toàn cầu, như mô tả trong chính sách quyền riêng tư.
  • Vị trí tính toán. Khu vực dữ liệu là cam kết về nơi lưu trữ. Nếu hợp đồng giới hạn nơi xử lý dữ liệu, hãy xác nhận vị trí GPU và endpoint với Ultralytics trước khi huấn luyện, hoặc sử dụng On Premise.

Tab Deployments trong hồ sơ Ultralytics Platform với bản đồ thế giới hiển thị tất cả khu vực hiện có và khu vực có deployment sẵn sàng được làm nổi bật

Bạn không thể tự thay đổi khu vực dữ liệu; việc này cần gửi yêu cầu hỗ trợ. Workspace nhóm kế thừa khu vực dữ liệu của người tạo workspace. Hãy đưa ra quyết định dựa trên hợp đồng, không phải độ trễ:

Khi độ trễ và yêu cầu lưu trú dữ liệu mâu thuẫn đối với người dùng đa quốc gia, hãy cân nhắc kỹ: dùng một endpoint trong khu vực dữ liệu (tuân thủ đơn giản nhất nhưng chậm hơn với người dùng ở xa), dùng endpoint ở nhiều khu vực (nhanh hơn nhưng mỗi khu vực sẽ nhận ảnh trong request, vì vậy cần kiểm tra từng khu vực theo hợp đồng), hoặc tạo workspace riêng cho từng khu vực pháp lý (mức độ tách biệt cao nhất nhưng cần vận hành nhiều hơn).

Quyền hiển thị và quyền truy cập#

Tập dữ liệu và dự án mới mặc định ở chế độ Public trên gói Free và Pro, còn ở chế độ Private trên Enterprise. Bất kỳ ai, kể cả khách truy cập chưa đăng nhập, đều có thể xem tài nguyên Public và sao chép tài nguyên từ Explore; chuyển tài nguyên sang chế độ riêng tư sau đó không xóa các bản sao mà người khác đã tạo. Workspace nhóm (Pro và Enterprise) có bốn vai trò:

Vai tròQuyền
OwnerMọi quyền, bao gồm quản lý thành viên, thanh toán, xóa nhóm và chuyển quyền sở hữu
AdminChỉnh sửa mọi thứ; quản lý thanh toán, cài đặt và thành viên có quyền thấp hơn admin
EditorTạo, chỉnh sửa và xóa tài nguyên; tải lên; huấn luyện, xuất và triển khai
ViewerXem tài nguyên và thành viên trong nhóm

Mỗi endpoint chuyên dụng được liên kết với một API key và chỉ chủ sở hữu workspace mới có thể xem giá trị khóa. Xóa khóa đó không khóa endpoint; dừng hoặc xóa deployment mới làm được điều đó.

Ví dụ thực hành: Ẩn danh hóa trước khi tải lên#

Platform làm mờ khuôn mặt: nhấp chuột phải vào ảnh và chọn Làm mờ khuôn mặt (miễn phí), chạy thao tác này trên toàn bộ tập dữ liệu từ Thao tác khác ($1.00 cho mỗi 1.000 ảnh), hoặc bật tính năng làm mờ trong hộp thoại New Dataset để ảnh được làm mờ trong quá trình xử lý khi tải lên mà không mất phí. Tính năng này không làm mờ biển số, màn hình hoặc toàn bộ người qua đường, và không dùng được với tập dữ liệu đã kết nối.

Hộp thoại Làm mờ khuôn mặt của Ultralytics Platform với các cài đặt độ tin cậy và tỷ lệ khung, công tắc Làm mờ các lần tải lên sau, ảnh xem trước người có khuôn mặt được làm mờ và chi phí ước tính là $0.02

Với các trường hợp khác, hãy ẩn danh hóa trước khi pixel rời khỏi máy của bạn. Ví dụ, trong dự án xe nâng, người xuất hiện chỉ là người qua đường chứ không phải lớp cần phát hiện, vì vậy hãy làm mờ hoàn toàn từng người:

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] giới hạn phát hiện ở người; đặt predict trỏ đến thư mục chứa các frame để xử lý cả lô.
  • conf=0.25 được đặt thấp có chủ đích: vì quyền riêng tư, làm mờ thừa một vùng sẽ tốt hơn bỏ sót một người. Dù vậy, hãy kiểm tra ngẫu nhiên kết quả vì detector có thể bỏ sót người nhỏ hoặc bị che khuất.
  • Chỉ tải lên thư mục anonymized/, và giữ bản gốc theo quy định lưu trữ dữ liệu của bạn.

Quy tắc quyết định: chỉ làm mờ khuôn mặt (bằng công cụ của Platform) khi người là lớp bạn cần phát hiện, vì làm mờ toàn thân sẽ phá hủy tín hiệu mà model học được. Làm mờ toàn bộ người qua đường khi người không phải là lớp cần phát hiện. Che biển số khi quy định của bạn xem biển số là dữ liệu cá nhân, như cách EU và California thường áp dụng. Khi chỉ có thể gửi số liệu hoặc cảnh báo ra khỏi cơ sở, hãy chạy suy luận tại edge và gửi metadata thay vì frame.

Thời hạn lưu trữ và xóa dữ liệu#

MụcTác động khi xóa
Tập dữ liệu, dự án, modelĐược chuyển vào Thùng rác trong 30 ngày (vẫn tính vào dung lượng lưu trữ), sau đó bị xóa vĩnh viễn
DeploymentBị xóa ngay lập tức và vĩnh viễn, bao gồm lịch sử chỉ số và log
Ví dụ và thống kê MonitoringĐược lưu trong bộ nhớ endpoint; mất khi dừng hoặc khởi động lại, trừ khi được lưu vào tập dữ liệu
Tài khoản của bạnCài đặt > Hồ sơ > Xóa tài khoản của tôi; chủ sở hữu nhóm cần xóa hoặc chuyển giao nhóm trước

Đối với yêu cầu truy cập, Xuất tất cả dữ liệu trong Cài đặt > Hồ sơ tạo một tệp JSON chứa metadata của bạn (hồ sơ, tập dữ liệu, dự án, model, hoạt động), không bao gồm ảnh hoặc trọng số.

Danh sách kiểm tra tuân thủ trước khi ra mắt#

  1. Dữ liệu nào rời khỏi môi trường của khách hàng? Frame, dự đoán hay chỉ số tổng hợp?
  2. Khu vực dữ liệu nào và những khu vực deployment nào? Mỗi khu vực có đáp ứng hợp đồng không?
  3. Mọi tập dữ liệu và dự án nhạy cảm có ở chế độ Private không? Kiểm tra các bản sao công khai đã tạo trước đó.
  4. Khuôn mặt đã được làm mờ và biển số đã được che khi cần chưa? Ai sẽ kiểm tra ngẫu nhiên những gì thao tác làm mờ bỏ sót?
  5. Bạn có được phép huấn luyện bằng dữ liệu của khách hàng này không? Nếu không, hãy lưu dữ liệu trong workspace riêng.
  6. Bạn sẽ xóa ảnh của một khách hàng theo yêu cầu như thế nào? Nêu tên các tập dữ liệu và bước chuyển vào Thùng rác.
  7. Ai có vai trò nào và ai nắm giữ API key của deployment?

Ultralytics công bố tình hình bảo mật, bao gồm chứng nhận ISO/IEC 27001:2022 và tuân thủ SOC 2 Type I, trên trang bảo mật. Hãy để chuyên viên đánh giá tuân thủ phê duyệt mọi deployment thuộc phạm vi quản lý.

Các lỗi thường gặp#

Workspace ở EU phục vụ từ endpoint tại Mỹ

Triệu chứng: một cuộc kiểm toán về nơi lưu trú dữ liệu phát hiện ảnh trong request được xử lý tại Iowa. Cách khắc phục: vùng dữ liệu không giới hạn vị trí endpoint. Hãy triển khai ở một vùng đáp ứng yêu cầu hợp đồng và liệt kê mọi vùng endpoint trong checklist.

Làm mờ class mà bạn phát hiện

Triệu chứng: sau khi ẩn danh, recall của model phát hiện người giảm mạnh. Cách khắc phục: làm mờ toàn bộ người sẽ loại bỏ những đặc trưng mà model học được. Chỉ làm mờ khuôn mặt khi người là class mục tiêu, và chỉ làm mờ toàn thân khi họ là người ngoài mục tiêu.

Dataset riêng tư từng được công khai vào tháng trước

Triệu chứng: bạn đã đặt dataset ở chế độ riêng tư nhưng các bản sao vẫn xuất hiện trên Explore. Cách khắc phục: các bản sao được tạo khi dataset còn công khai thuộc về chủ sở hữu của chúng. Hãy coi chế độ Public là không thể đảo ngược đối với dữ liệu nhạy cảm và đặt chế độ hiển thị ngay khi tạo.

Dùng thử

Trả lời bằng văn bản cả bảy câu hỏi trong danh sách kiểm tra cho dự án, bao gồm mọi khu vực endpoint. Sau đó chạy anonymize.py trên 20 frame của chính bạn với lớp mà quy định yêu cầu phải che, kiểm tra ngẫu nhiên từng ảnh đầu ra và chỉ tải thư mục đã ẩn danh hóa lên một tập dữ liệu Private.

Điều kiện hoàn thành
Bạn đã hoàn thành bài học khi tất cả các điều kiện sau đều đúng.
  • Bạn đã trả lời bằng văn bản cả bảy câu hỏi trong danh sách kiểm tra và đánh dấu mọi câu trả lời cần chuyên viên đánh giá tuân thủ.

  • Khu vực dữ liệu và mọi khu vực endpoint đều đáp ứng yêu cầu lưu trú dữ liệu của bạn.

  • Một tập dữ liệu Private chỉ chứa ảnh đã ẩn danh hóa và bạn đã ghi lại số lượng phát hiện cần chỉnh sửa thủ công.

Hiển thị lời giải

Đáp án mẫu cho dây chuyền đóng gói thuốc tại Đức: (1) Frame chỉ rời nhà máy để gán nhãn; dự đoán được gửi đến MES. (2) Khu vực dữ liệu EU; endpoint europe-west1. (3) Cả hai tập dữ liệu và dự án đều ở chế độ Private; không có bản sao. (4) Đôi khi thấy tay và mặt của nhân viên vận hành: tính năng Làm mờ khuôn mặt khi tải lên được bật và trưởng nhóm QA kiểm tra ngẫu nhiên 20 ảnh mỗi tuần. (5) Hợp đồng cho phép huấn luyện bằng dữ liệu nhà máy. (6) Ảnh của mỗi khách hàng được lưu trong tập dữ liệu riêng, vì vậy khi có yêu cầu xóa, cần xóa tập dữ liệu đó rồi dùng Dọn sạch Thùng rác thay vì chờ hết 30 ngày để tự động xóa. (7) Ravi là owner và nắm giữ khóa endpoint; Ana là editor; QA là viewer. anonymize.py chạy trên 20 frame đã làm mờ 23 người; một nhân viên bị che khuất một phần đã bị bỏ sót và được che thủ công, vì vậy ngưỡng được giảm xuống 0.15.

Tiếp theo là gì

Bài học cuối: biến một deployment thành quy trình huấn luyện lại ổn định, có thể lặp lại, với cổng kiểm tra và phát hành tự động.

Đăng nhập để lưu tiến độ