İçeriğe geç

Nesne Kırpma kullanarak Ultralytics YOLOv8

Nesne Kırpma Nedir?

Nesne kırpma ile Ultralytics YOLOv8 bir görüntü veya videodan algılanan belirli nesnelerin izole edilmesini ve çıkarılmasını içerir. Nesneleri doğru bir şekilde tanımlamak ve tasvir etmek için YOLOv8 model yetenekleri kullanılır ve daha fazla analiz veya manipülasyon için hassas kırpmaya olanak tanır.



İzle: Nesne Kırpma kullanarak Ultralytics YOLOv8

Nesne Kırpmanın Avantajları?

  • Odaklanmış Analiz: YOLOv8 , hedeflenen nesne kırpmayı kolaylaştırarak bir sahnedeki tek tek öğelerin derinlemesine incelenmesine veya işlenmesine olanak tanır.
  • Azaltılmış Veri Hacmi: Nesne kırpma, yalnızca ilgili nesneleri çıkararak veri boyutunu en aza indirmeye yardımcı olur ve depolama, iletim veya sonraki hesaplama görevleri için verimli hale getirir.
  • Geliştirilmiş Hassasiyet: YOLOv8'un nesne algılama hassasiyeti, kırpılan nesnelerin uzamsal ilişkilerini korumasını sağlayarak ayrıntılı analiz için görsel bilgilerin bütünlüğünü korur.

Görseller

Havaalanı Bagajı
Havaalanındaki Konveyör Bantta Bavullar Kullanılarak Kırpılıyor Ultralytics YOLOv8
Havaalanı konveyör bandında bavulların kırpılması Ultralytics YOLOv8

YOLOv8 kullanarak Nesne Kırpma Örnek

import os

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

crop_dir_name = "ultralytics_crop"
if not os.path.exists(crop_dir_name):
    os.mkdir(crop_dir_name)

# Video writer
video_writer = cv2.VideoWriter("object_cropping_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

idx = 0
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):
            idx += 1
            annotator.box_label(box, color=colors(int(cls), True), label=names[int(cls)])

            crop_obj = im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])]

            cv2.imwrite(os.path.join(crop_dir_name, str(idx) + ".png"), crop_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ılama doğruluğunu ve işlem hızını artırabilir.
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.
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şlenirken tüm karelerin arabelleğe alınıp alınmayacağını belirler (True) veya modelin en son kareyi döndürmesi gerekip gerekmediğini (False). Gerçek zamanlı uygulamalar için kullanışlıdır.
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 Modelde mevcutsa yüksek çözünürlüklü segmentasyon maskeleri kullanır. Bu, segmentasyon görevleri için maske kalitesini artırarak daha ince ayrıntılar sağlayabilir.
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.

SSS

Ultralytics YOLOv8 adresinde nesne kırpma nedir ve nasıl çalışır?

Nesne kırpma kullanarak Ultralytics YOLOv8YOLOv8 'un algılama yeteneklerine dayalı olarak bir görüntü veya videodan belirli nesnelerin izole edilmesini ve çıkarılmasını içerir. Bu işlem, nesneleri yüksek doğrulukla tanımlamak ve uygun şekilde kırpmak için YOLOv8 adresinden yararlanarak odaklanmış analiz, azaltılmış veri hacmi ve gelişmiş hassasiyet sağlar. Derinlemesine bir eğitim için nesne kırpma örneğine bakın.

Nesne kırpma için neden diğer çözümler yerine Ultralytics YOLOv8 adresini kullanmalıyım?

Ultralytics YOLOv8 hassasiyeti, hızı ve kullanım kolaylığı ile öne çıkmaktadır. Odaklanmış analiz ve yüksek veri bütünlüğü gerektiren uygulamalar için gerekli olan ayrıntılı ve doğru nesne algılama ve kırpmaya olanak tanır. Ayrıca YOLOv8 , farklı donanımlarda gerçek zamanlı yetenekler ve optimizasyon gerektiren dağıtımlar için OpenVINO ve TensorRT gibi araçlarla sorunsuz bir şekilde entegre olur. Model dışa aktarma kılavuzundaki avantajları keşfedin.

Nesne kırpma kullanarak veri kümemin veri hacmini nasıl azaltabilirim?

Görüntülerinizden veya videolarınızdan yalnızca ilgili nesneleri kırpmak için Ultralytics YOLOv8 adresini kullanarak veri boyutunu önemli ölçüde azaltabilir, depolama ve işleme için daha verimli hale getirebilirsiniz. Bu işlem, belirli nesneleri tespit etmek için modelin eğitilmesini ve ardından yalnızca bu kısımları kırpmak ve kaydetmek için sonuçların kullanılmasını içerir. Ultralytics YOLOv8 'un yeteneklerinden yararlanma hakkında daha fazla bilgi için hızlı başlangıç kılavuzumuzu ziyaret edin.

Gerçek zamanlı video analizi ve nesne kırpma için Ultralytics YOLOv8 adresini kullanabilir miyim?

Evet, Ultralytics YOLOv8 nesneleri dinamik olarak tespit etmek ve kırpmak için gerçek zamanlı video akışlarını işleyebilir. Modelin yüksek hızlı çıkarım yetenekleri onu gözetim, spor analizi ve otomatik denetim sistemleri gibi gerçek zamanlı uygulamalar için ideal hale getirir. Gerçek zamanlı işlemenin nasıl uygulanacağını anlamak için izleme ve tahmin modlarına göz atın.

Nesne kırpma için YOLOv8 adresini verimli bir şekilde çalıştırmak için donanım gereksinimleri nelerdir?

Ultralytics YOLOv8 hem CPU hem de GPU ortamları için optimize edilmiştir, ancak özellikle gerçek zamanlı veya yüksek hacimli çıkarım için optimum performans elde etmek için özel bir GPU (örneğin, NVIDIA Tesla, RTX serisi) önerilir. Hafif cihazlarda dağıtım için iOS için CoreML veya Android için TFLite kullanmayı düşünün. Desteklenen cihazlar ve formatlar hakkında daha fazla ayrıntı model dağıtım seçeneklerimizde bulunabilir.



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

Yorumlar