İç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: Nesne Bulanıklaştırma kullanarak 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ışacak 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

SSS

Ultralytics YOLOv8 ile nesne bulanıklaştırma nedir?

Nesne bulanıklaştırma ile Ultralytics YOLOv8 görüntülerdeki veya videolardaki belirli nesneleri otomatik olarak algılamayı ve bunlara bulanıklaştırma efekti uygulamayı içerir. Bu teknik, ilgili görsel verileri korurken hassas bilgileri gizleyerek gizliliği artırır. YOLOv8'nin gerçek zamanlı işleme yetenekleri, onu anında gizlilik koruması ve seçici odak ayarlamaları gerektiren uygulamalar için uygun hale getirir.

YOLOv8 kullanarak gerçek zamanlı nesne bulanıklaştırmayı nasıl uygulayabilirim?

YOLOv8 ile gerçek zamanlı nesne bulanıklaştırma uygulamak için sağlanan Python örneğini izleyin. Bu, nesne algılama için YOLOv8 ve bulanıklaştırma efektini uygulamak için OpenCV kullanmayı içerir. İşte basitleştirilmiş bir versiyon:

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

Nesne bulanıklaştırma için Ultralytics YOLOv8 kullanmanın faydaları nelerdir?

Ultralytics YOLOv8 nesne bulanıklaştırma için çeşitli avantajlar sunar:

  • Gizlilik Koruması: Hassas veya tanımlanabilir bilgileri etkili bir şekilde gizleyin.
  • Seçici Odaklanma: Temel görsel içeriği koruyarak bulanıklaştırma için belirli nesneleri hedefleyin.
  • Gerçek Zamanlı İşleme: Nesne bulanıklaştırmayı dinamik ortamlarda verimli bir şekilde gerçekleştirin, anlık gizlilik geliştirmeleri için uygundur.

Daha ayrıntılı uygulamalar için nesne bulanıklaştırmanın avantajları bölümüne bakın.

Gizlilik nedeniyle bir videodaki yüzleri bulanıklaştırmak için Ultralytics YOLOv8 adresini kullanabilir miyim?

Evet, Ultralytics YOLOv8 gizliliği korumak için videolardaki yüzleri algılayacak ve bulanıklaştıracak şekilde yapılandırılabilir. Özellikle yüzleri tanımak için önceden eğitilmiş bir modeli eğiterek veya kullanarak, bulanıklaştırma efekti uygulamak için algılama sonuçları OpenCV ile işlenebilir. YOLOv8 ile nesne algılama kılavuzumuza bakın ve kodu yüz algılamayı hedefleyecek şekilde değiştirin.

YOLOv8 , nesne bulanıklaştırma için Faster R-CNN gibi diğer nesne algılama modelleriyle nasıl karşılaştırılır?

Ultralytics YOLOv8 tipik olarak hız açısından Faster R-CNN gibi modellerden daha iyi performans gösterir ve bu da onu gerçek zamanlı uygulamalar için daha uygun hale getirir. Her iki model de doğru algılama sunarken, YOLOv8'un mimarisi, gerçek zamanlı nesne bulanıklaştırma gibi görevler için kritik olan hızlı çıkarım için optimize edilmiştir. Teknik farklılıklar ve performans ölçümleri hakkında daha fazla bilgiyi YOLOv8 dokümanlarımızda bulabilirsiniz.



Oluşturma 2024-01-09, Güncelleme 2024-07-05
Yazarlar: glenn-jocher (6), RizwanMunawar (1), IvorZhu331 (1), AyushExel (1)

Yorumlar