Ultralytics YOLO11 kullanarak Nesne Kırpma
Nesne Kırpma Nedir?
Ultralytics YOLO11 ile nesne kırpma, bir görüntü veya videodan algılanan belirli nesnelerin izole edilmesini ve çıkarılmasını içerir. YOLO11 model yetenekleri, nesneleri doğru bir şekilde tanımlamak ve tasvir etmek için kullanılır ve daha fazla analiz veya manipülasyon için hassas kırpma sağlar.
İ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'in 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ı |
---|
Bavullar Ultralytics YOLO11 kullanılarak havaalanı konveyör bandında kırpılıyor |
YOLO11 Kullanarak Nesne Kırpma Örneği
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. |
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 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 | 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'de nesne kırpma nedir ve nasıl çalışır?
Ultralytics YOLO11 kullanarak nesne kırpma, YOLO11'in algılama özelliklerine dayanarak 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'den 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 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'in 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 algılamak 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'i 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ımlarda 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.