─░├žeri─če ge├ž

Ultralytics YOLOv8 kullanarak Nesne K─▒rpma ­čÜÇ

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: Object Cropping using 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 model y├╝r├╝tme i├žin CPU, belirli bir GPU veya 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.


Created 2024-01-09, Updated 2024-06-13
Authors: RizwanMunawar (2), glenn-jocher (7), IvorZhu331 (1), AyushExel (1)

Yorumlar