İçeriğe geç

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

Nesne Bulanıklaştırma Nedir?

Nesne bulanıklaştırma ile Ultralytics YOLO11 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: Nesne Bulanıklaştırma kullanarak Ultralytics YOLO11

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 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: YOLO11'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.

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

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ışma Tip Varsayılan Açıklama
source str '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.
conf float 0.25 Tespitler 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.
iou float 0.7 Maksimum 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.
imgsz int or tuple 640 Çı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ı.
half bool False Desteklenen GPU'larda model çıkarımını doğruluk üzerinde minimum etkiyle hızlandırabilen yarı hassas (FP16) çıkarımı etkinleştirir.
device str None Çı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.
batch int 1 Çıkarım için yığın boyutunu belirtir (yalnızca kaynak bir dizin, video dosyası veya .txt dosya). Daha büyük bir yığın boyutu daha yüksek verim sağlayarak çıkarım için gereken toplam süreyi kısaltabilir.
max_det int 300 Gö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_stride int 1 Video 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_buffer bool False Video akışları için gelen çerçevelerin sıraya alınıp alınmayacağını belirler. Eğer Falseise, yeni 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.
visualize bool False Çı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.
augment bool False Tahminler 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_nms bool False Farklı 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.
classes list[int] None Tahminleri 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_masks bool False Yü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.
embed list[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.
project str None Aşağıdaki durumlarda tahmin çıktılarının kaydedildiği proje dizininin adı save etkinleştirilir.
name str None Tahmin ç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?

Nesne bulanıklaştırma ile Ultralytics YOLO11 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. YOLO11'nin 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 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("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. Ö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. 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österir ve bu da onu gerçek zamanlı uygulamalar için daha uygun hale getirir. Her iki model de doğru algılama sunarken, YOLO11'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 YOLO11 dokümanlarımızda bulabilirsiniz.

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

Yorumlar