Bỏ để qua phần nội dung

Làm mờ đối tượng bằng cách sử dụng Ultralytics YOLOv8 🚀

Object Blurring là gì?

Làm mờ đối tượng với Ultralytics YOLOv8 Liên quan đến việc áp dụng hiệu ứng làm mờ cho các đối tượng được phát hiện cụ thể trong hình ảnh hoặc video. Điều này có thể đạt được bằng cách sử dụng YOLOv8 Mô hình hóa khả năng để xác định và thao tác các đối tượng trong một cảnh nhất định.



Xem: Làm mờ đối tượng bằng cách sử dụng Ultralytics YOLOv8

Ưu điểm của Object Blurring?

  • 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 nhận dạng cá nhân trong hình ảnh hoặc video.
  • Tập trung chọn lọc: YOLOv8 cho phép làm mờ có chọn lọc, cho phép người dùng nhắm mục tiêu các đối tượng cụ thể, đảm bảo cân bằng giữa quyền riêng tư và lưu giữ thông tin hình ảnh có liên quan.
  • Xử lý thời gian thực: YOLOv8Hiệu quả của nó cho phép làm mờ đối tượng trong thời gian thực, làm cho nó phù hợp với các ứng dụng yêu cầu cải tiến quyền riêng tư nhanh chóng trong môi trường động.

Làm mờ đối tượng bằng cách sử dụng YOLOv8 Ví dụ

import cv2

from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors

model = YOLO("yolov8n.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

Tên Kiểu Mặc định Sự miêu tả
source str 'ultralytics/assets' Thư mục nguồn cho hình ảnh hoặc video
conf float 0.25 Ngưỡng tin cậy đối tượng để phát hiện
iou float 0.7 giao điểm trên ngưỡng hợp nhất (IoU) cho NMS
imgsz int or tuple 640 Kích thước hình ảnh dưới dạng vô hướng hoặc danh sách (h, w), tức là (640, 480)
half bool False sử dụng độ chính xác một nửa (FP16)
device None or str None thiết bị để chạy, tức là cuda thiết bị = 0/1/2/3 hoặc thiết bị =cpu
max_det int 300 Số lần phát hiện tối đa trên mỗi hình ảnh
vid_stride bool False Sải bước tốc độ khung hình video
stream_buffer bool False đệm tất cả các khung hình phát trực tuyến (True) hoặc trả về khung hình gần đây nhất (False)
visualize bool False Trực quan hóa các tính năng của mô hình
augment bool False Áp dụng tăng cường hình ảnh cho các nguồn dự đoán
agnostic_nms bool False NMS bất khả tri lớp
classes list[int] None Lọc kết quả theo lớp, tức là lớp = 0 hoặc lớp = [0,2,3]
retina_masks bool False Sử dụng mặt nạ phân đoạn có độ phân giải cao
embed list[int] None Trả về các vectơ / nhúng tính năng từ các lớp đã cho

FAQ

Làm mờ đối tượng bằng gì Ultralytics YOLOv8?

Làm mờ đối tượng với Ultralytics YOLOv8 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. YOLOv8Khả năng xử lý thời gian thực của 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 cách nào để thực hiện làm mờ đối tượng theo thời gian thực bằng cách sử dụng YOLOv8?

Để thực hiện làm mờ đối tượng thời gian thực với YOLOv8, hãy làm theo điều khoản được cung cấp Python ví dụ. Điều này liên quan đến việc sử dụng YOLOv8 để phát hiện đối tượng và OpenCV để áp dụng hiệu ứng mờ. Đây là phiên bản đơn giản hóa:

import cv2

from ultralytics import YOLO

model = YOLO("yolov8n.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("YOLOv8 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 YOLOv8 để làm mờ đối tượng?

Ultralytics YOLOv8 Cung cấp một số lợi thế cho việc làm mờ đối tượng:

  • Bảo vệ quyền riêng tư: Che khuất hiệu quả thông tin nhạy cảm hoặc có thể nhận dạng.
  • Tập trung chọn lọc: Nhắm mục tiêu các đối tượng cụ thể để làm mờ, duy trì nội dung hình ảnh thiết yếu.
  • 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 để cải tiến quyền riêng tư tức thì.

Để biết các ứng dụng chi tiết hơn, hãy kiểm tra các ưu điểm của phần làm mờ đối tượng.

Tôi có thể sử dụng không Ultralytics YOLOv8 Để làm mờ khuôn mặt trong video vì lý do riêng tư?

Có Ultralytics YOLOv8 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ột mô hình được đào tạo trước để nhận dạng cụ thể khuôn mặt, kết quả phát hiện có thể được xử lý bằng OpenCV để áp dụng hiệu ứng mờ. Tham khảo hướng dẫn của chúng tôi về Phát hiện đối tượng với YOLOv8 và sửa đổi mã để phát hiện khuôn mặt mục tiêu.

Làm thế nào YOLOv8 so sánh với các mô hình phát hiện đối tượng khác như Faster R-CNN để làm mờ đối tượng?

Ultralytics YOLOv8 thường vượt trội hơn các mô hình như Faster R-CNN về tốc độ, làm cho nó phù hợp hơn cho 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, YOLOv8Kiến trúc của nó được tối ưu hóa để 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 kỹ thuật và chỉ số hiệu suất trong YOLOv8 tài liệu.



Đã tạo 2024-01-09, Cập nhật 2024-07-05
Tác giả: glenn-jocher (6), RizwanMunawar (1), IvorZhu331 (1), AyushExel (1)

Ý kiến