─░├žeri─če ge├ž

Ultralytics YOLOv8 kullanarak Nesne Bulan─▒kla┼čt─▒rma ­čÜÇ

Nesne Bulan─▒kla┼čt─▒rma Nedir?

Nesne bulan─▒kla┼čt─▒rma ile Ultralytics YOLOv8 bir g├Âr├╝nt├╝ veya videoda alg─▒lanan belirli nesnelere bulan─▒kla┼čt─▒rma efekti uygulanmas─▒n─▒ i├žerir. Bu, belirli bir sahnedeki nesneleri tan─▒mlamak ve manip├╝le etmek i├žin YOLOv8 model yetenekleri kullan─▒larak ger├žekle┼čtirilebilir.



─░zle: Object Blurring using Ultralytics YOLOv8

Nesne Bulan─▒kla┼čt─▒rman─▒n Avantajlar─▒?

  • Gizlilik Korumas─▒: Nesne bulan─▒kla┼čt─▒rma, g├Âr├╝nt├╝ veya videolardaki hassas veya ki┼čisel olarak tan─▒mlanabilir bilgileri gizleyerek gizlili─či korumak i├žin etkili bir ara├žt─▒r.
  • Se├žici Odak: YOLOv8 se├žici bulan─▒kla┼čt─▒rmaya olanak tan─▒yarak kullan─▒c─▒lar─▒n belirli nesneleri hedeflemesini sa─člar, gizlilik ve ilgili g├Ârsel bilgilerin korunmas─▒ aras─▒nda bir denge sa─člar.
  • Ger├žek Zamanl─▒ ─░┼čleme: YOLOv8'nin verimlili─či, ger├žek zamanl─▒ olarak nesne bulan─▒kla┼čt─▒rmaya olanak tan─▒yarak dinamik ortamlarda an─▒nda gizlilik geli┼čtirmeleri gerektiren uygulamalar i├žin uygun hale getirir.

YOLOv8 kullanarak Nesne Bulan─▒kla┼čt─▒rma ├ľrne─či

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

Arg├╝manlar model.predict

─░sim Tip Varsay─▒lan A├ž─▒klama
source str 'ultralytics/assets' resimler veya videolar i├žin kaynak dizin
conf float 0.25 alg─▒lama i├žin nesne g├╝ven e┼či─či
iou float 0.7 NMS i├žin birle┼čim ├╝zerinde kesi┼čim (IoU) e┼či─či
imgsz int or tuple 640 skaler veya (h, w) listesi olarak g├Âr├╝nt├╝ boyutu, yani (640, 480)
half bool False yar─▒m hassasiyet (FP16) kullan─▒n
device None or str None ├╝zerinde ├žal─▒┼č─▒lacak cihaz, yani cuda device=0/1/2/3 veya device=cpu
max_det int 300 g├Âr├╝nt├╝ ba┼č─▒na maksimum alg─▒lama say─▒s─▒
vid_stride bool False video kare h─▒z─▒ ad─▒m─▒
stream_buffer bool False t├╝m ak─▒┼č karelerini arabelle─če al─▒r (True) veya en son kareyi d├Ând├╝r├╝r (False)
visualize bool False model ├Âzelliklerini g├Ârselle┼čtirin
augment bool False tahmin kaynaklar─▒na g├Âr├╝nt├╝ b├╝y├╝tme uygulay─▒n
agnostic_nms bool False s─▒n─▒f-agnostik NMS
classes list[int] None sonu├žlar─▒ s─▒n─▒fa g├Âre filtreleyin, yani classes=0 veya classes=[0,2,3]
retina_masks bool False y├╝ksek ├ž├Âz├╝n├╝rl├╝kl├╝ segmentasyon maskeleri kullan─▒n
embed list[int] None Verilen katmanlardan ├Âzellik vekt├Ârleri/g├Âmme d├Ând├╝r├╝r


Created 2024-01-09, Updated 2024-06-13
Authors: RizwanMunawar (1), glenn-jocher (5), IvorZhu331 (1), AyushExel (1)

Yorumlar