İçeriğe geç

Nesne Kırpma kullanarak Ultralytics YOLO11

Nesne Kırpma Nedir?

Nesne kırpma ile Ultralytics YOLO11 bir görüntü veya videodan tespit edilen belirli nesnelerin izole edilmesini ve çıkarılmasını içerir. Nesneleri doğru bir şekilde tanımlamak ve tasvir etmek için YOLO11 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 YOLO

Nesne Kırpmanın Avantajları?

  • Odaklanmış Analiz: YOLO11 , 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: YOLO11'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 YOLO11
Havaalanı konveyör bandında bavulların kırpılması Ultralytics YOLO11

YOLO11 kullanarak Nesne Kırpma Örnek

import os

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

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ı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 adresinde nesne kırpma nedir ve nasıl çalışır?

Nesne kırpma kullanarak Ultralytics YOLO11YOLO11 '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 YOLO11 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 YOLO11 adresini kullanmalıyım?

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

Evet, Ultralytics YOLO11 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 YOLO11 adresini verimli bir şekilde çalıştırmak için donanım gereksinimleri nelerdir?

Ultralytics YOLO11 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.

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

Yorumlar