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 False ise, 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.