सामग्री पर जाएं

ऑब्जेक्ट धुंधला करना Ultralytics YOLOv8 🚀

ऑब्जेक्ट ब्लरिंग क्या है?

ऑब्जेक्ट के साथ धुंधला होना Ultralytics YOLOv8 एक छवि या वीडियो में विशिष्ट पता लगाई गई वस्तुओं पर धुंधला प्रभाव लागू करना शामिल है। इसका उपयोग करके प्राप्त किया जा सकता है YOLOv8 किसी दिए गए दृश्य के भीतर वस्तुओं की पहचान करने और हेरफेर करने की मॉडल क्षमताएं।

ऑब्जेक्ट ब्लरिंग के फायदे?

  • गोपनीयता सुरक्षा: ऑब्जेक्ट ब्लरिंग छवियों या वीडियो में संवेदनशील या व्यक्तिगत रूप से पहचान योग्य जानकारी को छुपाकर गोपनीयता की सुरक्षा के लिए एक प्रभावी उपकरण है।
  • चयनात्मक फोकस: YOLOv8 चयनात्मक धुंधलापन की अनुमति देता है, उपयोगकर्ताओं को विशिष्ट वस्तुओं को लक्षित करने में सक्षम बनाता है, गोपनीयता के बीच संतुलन सुनिश्चित करता है और प्रासंगिक दृश्य जानकारी को बनाए रखता है।
  • वास्तविक समय प्रसंस्करण: YOLOv8की दक्षता वास्तविक समय में वस्तु को धुंधला करने में सक्षम बनाती है, जिससे यह गतिशील वातावरण में ऑन-द-फ्लाई गोपनीयता संवर्द्धन की आवश्यकता वाले अनुप्रयोगों के लिए उपयुक्त हो जाती है।

ऑब्जेक्ट धुंधला करना YOLOv8 उदाहरण

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

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()

तर्क model.predict

नाम प्रकार चूक विवरण: __________
source str 'ultralytics/assets' छवियों या वीडियो के लिए स्रोत निर्देशिका
conf float 0.25 पता लगाने के लिए ऑब्जेक्ट कॉन्फिडेंस थ्रेशोल्ड
iou float 0.7 एनएमएस के लिए संघ (आईओयू) सीमा पर चौराहा
imgsz int or tuple 640 स्केलर या (एच, डब्ल्यू) सूची के रूप में छवि का आकार, यानी (640, 480)
half bool False आधी परिशुद्धता (FP16) का उपयोग करें
device None or str None चालू चलाने के लिए डिवाइस, यानी क्यूडा डिवाइस = 0/1/2/3 या डिवाइस = सीपीयू
max_det int 300 प्रति छवि पता लगाने की अधिकतम संख्या
vid_stride bool False वीडियो फ्रेम-दर स्ट्राइड
stream_buffer bool False सभी स्ट्रीमिंग फ़्रेम (सही) को बफ़र करें या नवीनतम फ़्रेम (गलत) लौटाएं
visualize bool False मॉडल सुविधाओं की कल्पना करें
augment bool False पूर्वानुमान स्रोतों पर छवि वृद्धि लागू करें
agnostic_nms bool False वर्ग-अज्ञेयवादी एनएमएस
classes list[int] None कक्षा द्वारा फ़िल्टर परिणाम, यानी कक्षाएं = 0, या कक्षाएं = [0,2,3]
retina_masks bool False उच्च-रिज़ॉल्यूशन सेगमेंटेशन मास्क का उपयोग करें
embed list[int] None दी गई परतों से सुविधा वैक्टर/एम्बेडिंग लौटाएं


2024-01-09 बनाया गया, अपडेट किया गया 2024-01-15
लेखक: ग्लेन-जोचर (2), आयुषएक्सेल (1), chr043416@gmail.com (1)

टिप्पणियाँ