İçeriğe geç

Ultralytics YOLO11 kullanarak Nesne Bulanıklaştırma 🚀

Nesne Bulanıklaştırma Nedir?

Ultralytics YOLO11 ile nesne bulanıklaştırma, 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 YOLO11 model yetenekleri kullanılarak gerçekleştirilebilir.



İzle: Ultralytics YOLO11 kullanarak Nesne Bulanıklaştırma

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: YOLO11, kullanıcıların belirli nesneleri hedeflemesine olanak tanıyan seçici bulanıklaştırmaya izin vererek gizlilik ve ilgili görsel bilgilerin korunması arasında bir denge sağlar.
  • Gerçek Zamanlı İşleme: YOLO11'in verimliliği, nesnelerin gerçek zamanlı olarak bulanıklaştırılmasını sağlayarak dinamik ortamlarda anında gizlilik geliştirmeleri gerektiren uygulamalar için uygun hale getirir.

YOLO11 Örneği Kullanarak Nesne Bulanıklaştırma

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

Argümanlar model.predict

TartışmaTipVarsayılanAçıklama
sourcestr'ultralytics/assets'Çıkarım için veri kaynağını belirtir. Bir görüntü yolu, video dosyası, dizin, URL veya canlı yayınlar için cihaz kimliği olabilir. Çok çeşitli formatları ve kaynakları destekleyerek farklı girdi türlerinde esnek uygulama sağlar.
conffloat0.25Tespitler için minimum güven eşiğini ayarlar. Bu eşiğin altında güvenle tespit edilen nesneler dikkate alınmayacaktır. Bu değerin ayarlanması yanlış pozitiflerin azaltılmasına yardımcı olabilir.
ioufloat0.7Maksimum Olmayan Bastırma (NMS) için Birlik Üzerinde Kesişme (IoU) eşiği. Daha düşük değerler, üst üste binen kutuları ortadan kaldırarak daha az tespitle sonuçlanır, bu da kopyaları azaltmak için kullanışlıdır.
imgszint or tuple640Çıkarım için görüntü boyutunu tanımlar. Tek bir tamsayı olabilir 640 kare yeniden boyutlandırma veya bir (yükseklik, genişlik) tuple için. Doğru boyutlandırma algılamayı iyileştirebilir doğruluk ve işlem hızı.
halfboolFalseDesteklenen GPU'larda model çıkarımını doğruluk üzerinde minimum etkiyle hızlandırabilen yarı hassas (FP16) çıkarımı etkinleştirir.
devicestrNoneÇıkarım için cihazı belirtir (örn, cpu, cuda:0 veya 0). Kullanıcıların CPU, belirli bir GPU veya model yürütme için diğer hesaplama cihazları arasında seçim yapmasına olanak tanır.
max_detint300Görüntü başına izin verilen maksimum algılama sayısı. Modelin tek bir çıkarımda tespit edebileceği toplam nesne sayısını sınırlayarak yoğun sahnelerde aşırı çıktıları önler.
vid_strideint1Video girişleri için kare atlama. Zamansal çözünürlük pahasına işlemeyi hızlandırmak için videolardaki karelerin atlanmasına izin verir. 1 değeri her kareyi işler, daha yüksek değerler kareleri atlar.
stream_bufferboolFalseVideo akışları için gelen çerçevelerin sıraya alınıp alınmayacağını belirler. Eğer Falseyeni kareleri yerleştirmek için eski kareler bırakılır (gerçek zamanlı uygulamalar için optimize edilmiştir). Eğer `True' ise, yeni kareleri bir tamponda sıraya koyarak hiçbir karenin atlanmamasını sağlar, ancak çıkarım FPS'si akış FPS'sinden düşükse gecikmeye neden olur.
visualizeboolFalseÇıkarım sırasında model özelliklerinin görselleştirilmesini etkinleştirerek modelin "ne gördüğüne" dair içgörü sağlar. Hata ayıklama ve model yorumlama için kullanışlıdır.
augmentboolFalseTahminler için test zamanı artırımını (TTA) etkinleştirerek çıkarım hızı pahasına tespit sağlamlığını potansiyel olarak iyileştirir.
agnostic_nmsboolFalseFarklı sınıfların örtüşen kutularını birleştiren, sınıftan bağımsız Maksimum Olmayan Bastırma (NMS) özelliğini etkinleştirir. Sınıf çakışmasının yaygın olduğu çok sınıflı algılama senaryolarında kullanışlıdır.
classeslist[int]NoneTahminleri bir dizi sınıf kimliğine göre filtreler. Yalnızca belirtilen sınıflara ait tespitler döndürülür. Çok sınıflı algılama görevlerinde ilgili nesnelere odaklanmak için kullanışlıdır.
retina_masksboolFalseYüksek çözünürlüklü segmentasyon maskeleri döndürür. Döndürülen maskeler (masks.data) etkinleştirilmişse orijinal görüntü boyutuyla eşleşecektir. Devre dışı bırakılırsa, çıkarım sırasında kullanılan görüntü boyutuna sahip olurlar.
embedlist[int]NoneÖzellik vektörlerinin veya katıştırmaların çıkarılacağı katmanları belirtir. Kümeleme veya benzerlik arama gibi sonraki görevler için kullanışlıdır.
projectstrNoneTahmin çıktılarının kaydedildiği proje dizininin adı save etkinleştirilir.
namestrNoneTahmin çalışmasının adı. Proje klasörü içinde tahmin çıktılarının saklanacağı bir alt dizin oluşturmak için kullanılır. save etkinleştirilir.

SSS

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

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

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

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

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

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

Ultralytics YOLO11 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 YOLO11 adresini kullanabilir miyim?

Evet, Ultralytics YOLO11 gizliliği korumak için videolardaki yüzleri algılayacak ve bulanıklaştıracak şekilde yapılandırılabilir. Yüzleri özel olarak 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. YOLO11 ile nesne algılama kılavuzumuza bakın ve kodu yüz algılamayı hedefleyecek şekilde değiştirin.

YOLO11, 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 YOLO11 tipik olarak hız açısından Faster R-CNN gibi modellerden daha iyi performans göstererek gerçek zamanlı uygulamalar için daha uygun hale gelir. Her iki model de doğru algılama sunarken, YOLO11'in 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. YOLO11 belgelerimizde teknik farklılıklar ve performans ölçümleri hakkında daha fazla bilgi edinin.

📅 1 0 ay önce oluşturuldu ✏️ 1 ay önce güncellendi

Yorumlar