Làm mờ đối tượng bằng cách sử dụng Ultralytics YOLO11 🚀
Làm mờ vật thể là gì?
Làm mờ đối tượng bằng Ultralytics YOLO11 liên quan đến việc áp dụng hiệu ứng làm mờ cho các đối tượng cụ thể được phát hiện trong hình ảnh hoặc video. Điều này có thể đạt được bằng cách sử dụng YOLO11 khả năng của mô hình để xác định và thao tác các đối tượng trong một cảnh nhất định.
Đồng hồ: Làm mờ đối tượng bằng cách sử dụng Ultralytics YOLO11
Ưu điểm của việc làm mờ vật thể?
- Bảo vệ quyền riêng tư : Làm mờ đối tượng là một công cụ hiệu quả để bảo vệ quyền riêng tư bằng cách che giấu thông tin nhạy cảm hoặc thông tin nhận dạng cá nhân trong hình ảnh hoặc video.
- Tập trung có chọn lọc : YOLO11 cho phép làm mờ có chọn lọc, cho phép người dùng nhắm mục tiêu vào các đối tượng cụ thể, đảm bảo cân bằng giữa quyền riêng tư và giữ lại thông tin hình ảnh có liên quan.
- Xử lý thời gian thực : YOLO11 Hiệu quả của nó cho phép làm mờ vật thể theo thời gian thực, phù hợp với các ứng dụng yêu cầu cải thiện quyền riêng tư tức thời trong môi trường năng động.
Làm mờ đối tượng bằng cách sử dụng YOLO11 Ví dụ
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
model = YOLO("yolo11n.pt")
names = model.names
cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
# Blur ratio
blur_ratio = 50
# Video writer
video_writer = cv2.VideoWriter("object_blurring_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = model.predict(im0, show=False)
boxes = results[0].boxes.xyxy.cpu().tolist()
clss = results[0].boxes.cls.cpu().tolist()
annotator = Annotator(im0, line_width=2, example=names)
if boxes is not None:
for box, cls in zip(boxes, clss):
annotator.box_label(box, color=colors(int(cls), True), label=names[int(cls)])
obj = im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])]
blur_obj = cv2.blur(obj, (blur_ratio, blur_ratio))
im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])] = blur_obj
cv2.imshow("ultralytics", im0)
video_writer.write(im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Lập luận model.predict
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Chỉ định nguồn dữ liệu để suy luận. Có thể là đường dẫn hình ảnh, tệp video, thư mục, URL hoặc ID thiết bị cho nguồn cấp dữ liệu trực tiếp. Hỗ trợ nhiều định dạng và nguồn, cho phép ứng dụng linh hoạt trên nhiều loại đầu vào khác nhau . |
conf |
float |
0.25 |
Đặt ngưỡng tin cậy tối thiểu cho các phát hiện. Các đối tượng được phát hiện với độ tin cậy dưới ngưỡng này sẽ bị bỏ qua. Điều chỉnh giá trị này có thể giúp giảm các kết quả dương tính giả. |
iou |
float |
0.7 |
Ngưỡng Giao điểm qua Liên hợp (IoU) cho Không triệt tiêu tối đa (NMS). Các giá trị thấp hơn dẫn đến ít phát hiện hơn bằng cách loại bỏ các hộp chồng chéo, hữu ích để giảm trùng lặp. |
imgsz |
int or tuple |
640 |
Xác định kích thước hình ảnh để suy luận. Có thể là một số nguyên duy nhất 640 để thay đổi kích thước hình vuông hoặc một bộ (chiều cao, chiều rộng). Kích thước phù hợp có thể cải thiện khả năng phát hiện sự chính xác và tốc độ xử lý. |
half |
bool |
False |
Cho phép suy luận bán chính xác (FP16), có thể tăng tốc suy luận mô hình trên GPU được hỗ trợ với tác động tối thiểu đến độ chính xác. |
device |
str |
None |
Chỉ định thiết bị để suy luận (ví dụ: cpu , cuda:0 hoặc 0 ). Cho phép người dùng lựa chọn giữa CPU , một cụ thể GPU hoặc các thiết bị tính toán khác để thực hiện mô hình. |
batch |
int |
1 |
Chỉ định kích thước lô để suy luận (chỉ hoạt động khi nguồn là một thư mục, tập tin video hoặc .txt tài liệu). Kích thước lô lớn hơn có thể cung cấp thông lượng cao hơn, rút ngắn tổng thời gian cần thiết cho quá trình suy luận. |
max_det |
int |
300 |
Số lượng phát hiện tối đa được phép trên mỗi hình ảnh. Giới hạn tổng số đối tượng mà mô hình có thể phát hiện trong một suy luận duy nhất, ngăn chặn đầu ra quá mức trong các cảnh dày đặc. |
vid_stride |
int |
1 |
Bước nhảy khung hình cho đầu vào video. Cho phép bỏ qua các khung hình trong video để tăng tốc độ xử lý với chi phí là độ phân giải thời gian. Giá trị 1 xử lý mọi khung hình, giá trị cao hơn bỏ qua các khung hình. |
stream_buffer |
bool |
False |
Xác định xem có nên xếp hàng các khung hình đến cho luồng video hay không. Nếu False , các khung cũ bị loại bỏ để chứa các khung mới (được tối ưu hóa cho các ứng dụng thời gian thực). Nếu `Đúng', xếp hàng các khung mới trong bộ đệm, đảm bảo không có khung nào bị bỏ qua, nhưng sẽ gây ra độ trễ nếu FPS suy luận thấp hơn FPS luồng. |
visualize |
bool |
False |
Kích hoạt khả năng trực quan hóa các tính năng của mô hình trong quá trình suy luận, cung cấp thông tin chi tiết về những gì mô hình đang "nhìn thấy". Hữu ích cho việc gỡ lỗi và diễn giải mô hình. |
augment |
bool |
False |
Cho phép tăng cường thời gian thử nghiệm (TTA) để dự đoán, có khả năng cải thiện độ mạnh mẽ của phát hiện với cái giá phải trả là tốc độ suy luận. |
agnostic_nms |
bool |
False |
Cho phép Non-Maximum Suppression (NMS) không phân biệt lớp, hợp nhất các hộp chồng chéo của các lớp khác nhau. Hữu ích trong các tình huống phát hiện nhiều lớp trong đó sự chồng chéo lớp là phổ biến. |
classes |
list[int] |
None |
Lọc các dự đoán thành một tập hợp ID lớp. Chỉ các phát hiện thuộc về các lớp được chỉ định mới được trả về. Hữu ích để tập trung vào các đối tượng có liên quan trong các tác vụ phát hiện nhiều lớp. |
retina_masks |
bool |
False |
Trả về mặt nạ phân đoạn có độ phân giải cao. Các mặt nạ trả về (masks.data ) sẽ khớp với kích thước hình ảnh gốc nếu được bật. Nếu bị tắt, chúng sẽ có kích thước hình ảnh được sử dụng trong quá trình suy luận. |
embed |
list[int] |
None |
Chỉ định các lớp để trích xuất các vectơ đặc điểm hoặc nhúng . Hữu ích cho các tác vụ hạ lưu như phân cụm hoặc tìm kiếm sự tương đồng. |
project |
str |
None |
Tên của thư mục dự án nơi đầu ra dự đoán được lưu nếu save được bật. |
name |
str |
None |
Tên của lần chạy dự đoán. Được sử dụng để tạo một thư mục con trong thư mục dự án, nơi lưu trữ các đầu ra dự đoán nếu save được bật. |
CÂU HỎI THƯỜNG GẶP
Làm mờ vật thể là gì? Ultralytics YOLO11 ?
Làm mờ đối tượng bằng Ultralytics YOLO11 liên quan đến việc tự động phát hiện và áp dụng hiệu ứng làm mờ cho các đối tượng cụ thể trong hình ảnh hoặc video. Kỹ thuật này tăng cường quyền riêng tư bằng cách che giấu thông tin nhạy cảm trong khi vẫn giữ lại dữ liệu hình ảnh có liên quan. YOLO11 Khả năng xử lý thời gian thực của nó làm cho nó phù hợp với các ứng dụng yêu cầu bảo vệ quyền riêng tư ngay lập tức và điều chỉnh tiêu điểm có chọn lọc.
Làm thế nào tôi có thể thực hiện làm mờ đối tượng theo thời gian thực bằng cách sử dụng YOLO11 ?
Để thực hiện làm mờ đối tượng theo thời gian thực với YOLO11 , hãy làm theo những gì được cung cấp Python Ví dụ. Điều này liên quan đến việc sử dụng YOLO11 để phát hiện đối tượng và OpenCV để áp dụng hiệu ứng làm mờ. Sau đây là phiên bản đơn giản hóa:
import cv2
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = model.predict(im0, show=False)
for box in results[0].boxes.xyxy.cpu().tolist():
obj = im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])]
im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])] = cv2.blur(obj, (50, 50))
cv2.imshow("YOLO11 Blurring", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Lợi ích của việc sử dụng là gì? Ultralytics YOLO11 để làm mờ vật thể?
Ultralytics YOLO11 cung cấp một số lợi thế cho việc làm mờ vật thể:
- Bảo vệ quyền riêng tư : Che giấu hiệu quả thông tin nhạy cảm hoặc thông tin có thể nhận dạng được.
- Lấy nét có chọn lọc : Nhắm mục tiêu vào các đối tượng cụ thể để làm mờ, duy trì nội dung hình ảnh cần thiết.
- Xử lý thời gian thực : Thực hiện làm mờ đối tượng hiệu quả trong môi trường động, phù hợp để tăng cường quyền riêng tư tức thời.
Để biết thêm chi tiết về các ứng dụng, hãy xem phần ưu điểm của việc làm mờ vật thể .
Tôi có thể sử dụng Ultralytics YOLO11 làm mờ khuôn mặt trong video vì lý do riêng tư?
Đúng, Ultralytics YOLO11 có thể được cấu hình để phát hiện và làm mờ khuôn mặt trong video để bảo vệ quyền riêng tư. Bằng cách đào tạo hoặc sử dụng mô hình được đào tạo trước để nhận dạng khuôn mặt cụ thể, kết quả phát hiện có thể được xử lý bằng OpenCV để áp dụng hiệu ứng làm mờ. Tham khảo hướng dẫn của chúng tôi về phát hiện đối tượng bằng YOLO11 và sửa đổi mã để nhắm mục tiêu phát hiện khuôn mặt.
Làm thế nào YOLO11 so sánh với các mô hình phát hiện vật thể khác như Faster R-CNN để làm mờ vật thể?
Ultralytics YOLO11 thường vượt trội hơn các mô hình như Faster R-CNN về tốc độ, khiến nó phù hợp hơn với các ứng dụng thời gian thực. Mặc dù cả hai mô hình đều cung cấp khả năng phát hiện chính xác, YOLO11 Kiến trúc của 's được tối ưu hóa cho suy luận nhanh, điều này rất quan trọng đối với các tác vụ như làm mờ đối tượng theo thời gian thực. Tìm hiểu thêm về sự khác biệt về mặt kỹ thuật và số liệu hiệu suất trong tài liệu YOLO11 của chúng tôi.