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ı 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.