İçeriğe geç

Ultralytics YOLO11 kullanarak Nesne Sayma

Nesne Sayma Nedir?

Ultralytics YOLO11 ile nesne sayma, videolardaki ve kamera akışlarındaki belirli nesnelerin doğru şekilde tanımlanmasını ve sayılmasını içerir. YOLO11, son teknoloji algoritmaları ve derin öğrenme yetenekleri sayesinde kalabalık analizi ve gözetim gibi çeşitli senaryolar için verimli ve hassas nesne sayımı sağlayarak gerçek zamanlı uygulamalarda üstünlük sağlar.


İzle: Nesne Sayma kullanarak Ultralytics YOLOv8

İzle: Ultralytics YOLO11 kullanarak Sınıf Bazında Nesne Sayma

Nesne Saymanın Avantajları?

  • Kaynak Optimizasyonu: Nesne sayımı, doğru sayımlar sağlayarak ve envanter yönetimi gibi uygulamalarda kaynak tahsisini optimize ederek verimli kaynak yönetimini kolaylaştırır.
  • Gelişmiş Güvenlik: Nesne sayma, varlıkları doğru bir şekilde izleyip sayarak güvenliği ve gözetimi artırır ve proaktif tehdit tespitine yardımcı olur.
  • Bilgilendirilmiş Karar Alma: Nesne sayımı, perakende, trafik yönetimi ve diğer çeşitli alanlarda karar verme, süreçleri optimize etme için değerli bilgiler sunar.

Gerçek Dünya Uygulamaları

LojistikAkuakültür
Ultralytics YOLO11 Kullanarak Konveyör Bant Paketleri SaymaDenizde Balık Sayımı Ultralytics YOLO11
Ultralytics YOLO11 Kullanarak Konveyör Bant Paketleri SaymaDenizde Balık Sayımı Ultralytics YOLO11

YOLO11 Kullanarak Nesne Sayma Örneği

# Run a counting example
yolo solutions count show=True

# Pass a source video
yolo solutions count source="path/to/video/file.mp4"

# Pass region coordinates
yolo solutions count region=[(20, 400), (1080, 404), (1080, 360), (20, 360)]
import cv2

from ultralytics import solutions

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

# Define region points
# region_points = [(20, 400), (1080, 400)]  # For line counting
region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360)]  # For rectangle region counting
# region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360), (20, 400)]  # For polygon region counting

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

# Init Object Counter
counter = solutions.ObjectCounter(
    show=True,  # Display the output
    region=region_points,  # Pass region points
    model="yolo11n.pt",  # model="yolo11n-obb.pt" for object counting using YOLO11 OBB model.
    # classes=[0, 2],  # If you want to count specific classes i.e person and car with COCO pretrained model.
    # show_in=True,  # Display in counts
    # show_out=True,  # Display out counts
    # line_width=2,  # Adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    im0 = counter.count(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Tartışma ObjectCounter

İşte bir tablo ObjectCounter Argümanlar:

İsimTipVarsayılanAçıklama
modelstrNoneUltralytics YOLO Model Dosyasının Yolu
regionlist[(20, 400), (1260, 400)]Sayım bölgesini tanımlayan noktaların listesi.
line_widthint2Sınırlayıcı kutular için çizgi kalınlığı.
showboolFalseVideo akışının görüntülenip görüntülenmeyeceğini kontrol etmek için bayrak.
show_inboolTrueVideo akışında giriş sayılarının görüntülenip görüntülenmeyeceğini kontrol etmek için bayrak.
show_outboolTrueVideo akışında çıkış sayılarının görüntülenip görüntülenmeyeceğini kontrol etmek için bayrak.

Argümanlar model.track

TartışmaTipVarsayılanAçıklama
sourcestrNoneResimler veya videolar için kaynak dizini belirtir. Dosya yollarını ve URL'leri destekler.
persistboolFalseVideo dizileri boyunca kimlikleri koruyarak nesnelerin kareler arasında kalıcı olarak izlenmesini sağlar.
trackerstrbotsort.yamlKullanılacak izleme algoritmasını belirtir, örn, bytetrack.yaml veya botsort.yaml.
conffloat0.3Algılamalar için güven eşiğini ayarlar; düşük değerler daha fazla nesnenin izlenmesine izin verir ancak yanlış pozitifler içerebilir.
ioufloat0.5Çakışan algılamaları filtrelemek için Birlik üzerinde Kesişim (IoU) eşiğini ayarlar.
classeslistNoneSonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler.
verboseboolTrueİzleme sonuçlarının görüntülenmesini kontrol ederek izlenen nesnelerin görsel bir çıktısını sağlar.

SSS

Ultralytics YOLO11 kullanarak bir videodaki nesneleri nasıl sayabilirim?

Ultralytics YOLO11 adresini kullanarak bir videodaki nesneleri saymak için aşağıdaki adımları takip edebilirsiniz:

  1. Gerekli kütüphaneleri içe aktarın (cv2, ultralytics).
  2. Sayım bölgesini tanımlayın (örn. bir çokgen, çizgi, vb.).
  3. Video yakalamayı ayarlayın ve nesne sayacını başlatın.
  4. Nesneleri izlemek ve tanımlanan bölge içinde saymak için her kareyi işleyin.

İşte bir bölgede sayım yapmak için basit bir örnek:

import cv2

from ultralytics import solutions


def count_objects_in_region(video_path, output_video_path, model_path):
    """Count objects in a specific region within a video."""
    cap = cv2.VideoCapture(video_path)
    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))
    video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

    region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
    counter = solutions.ObjectCounter(show=True, region=region_points, model=model_path)

    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            print("Video frame is empty or video processing has been successfully completed.")
            break
        im0 = counter.count(im0)
        video_writer.write(im0)

    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()


count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolo11n.pt")

Nesne Sayma bölümünde daha fazla yapılandırma ve seçenek keşfedin.

Nesne sayımı için Ultralytics YOLO11 kullanmanın avantajları nelerdir?

Nesne sayımı için Ultralytics YOLO11 adresini kullanmak çeşitli avantajlar sunar:

  1. Kaynak Optimizasyonu: Doğru sayımlar sağlayarak verimli kaynak yönetimini kolaylaştırır, envanter yönetimi gibi sektörlerde kaynak tahsisini optimize etmeye yardımcı olur.
  2. Geliştirilmiş Güvenlik: Varlıkları doğru bir şekilde izleyip sayarak güvenliği ve gözetimi artırır, proaktif tehdit tespitine yardımcı olur.
  3. Bilgilendirilmiş Karar Alma: Perakende, trafik yönetimi ve daha fazlası gibi alanlarda karar verme, süreçleri optimize etme için değerli içgörüler sunar.

Gerçek dünya uygulamaları ve kod örnekleri için Nesne Saymanın Avantajları bölümünü ziyaret edin.

Ultralytics YOLO11 kullanarak belirli nesne sınıflarını nasıl sayabilirim?

Ultralytics YOLO11 adresini kullanarak belirli nesne sınıflarını saymak için, izleme aşamasında ilgilendiğiniz sınıfları belirtmeniz gerekir. Aşağıda bir Python örneği verilmiştir:

import cv2

from ultralytics import solutions


def count_specific_classes(video_path, output_video_path, model_path, classes_to_count):
    """Count specific classes of objects in a video."""
    cap = cv2.VideoCapture(video_path)
    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))
    video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

    line_points = [(20, 400), (1080, 400)]
    counter = solutions.ObjectCounter(show=True, region=line_points, model=model_path, classes=classes_to_count)

    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            print("Video frame is empty or video processing has been successfully completed.")
            break
        im0 = counter.count(im0)
        video_writer.write(im0)

    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()


count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolo11n.pt", [0, 2])

Bu örnekte, classes_to_count=[0, 2]sınıfının nesnelerini saydığı anlamına gelir 0 ve 2 (örneğin, kişi ve araba).

Gerçek zamanlı uygulamalar için neden diğer nesne algılama modelleri yerine YOLO11 kullanmalıyım?

Ultralytics YOLO11, Faster R-CNN, SSD ve önceki YOLO sürümleri gibi diğer nesne algılama modellerine göre çeşitli avantajlar sağlar:

  1. Hız ve Verimlilik: YOLO11, gerçek zamanlı işleme yetenekleri sunarak gözetim ve otonom sürüş gibi yüksek hızlı çıkarım gerektiren uygulamalar için idealdir.
  2. Doğruluk: Nesne algılama ve izleme görevleri için son teknoloji doğruluk sağlar, yanlış pozitiflerin sayısını azaltır ve genel sistem güvenilirliğini artırır.
  3. Entegrasyon Kolaylığı: YOLO11, modern yapay zeka uygulamaları için çok önemli olan mobil ve uç cihazlar da dahil olmak üzere çeşitli platformlar ve cihazlarla sorunsuz entegrasyon sunar.
  4. Esneklik: Belirli kullanım durumu gereksinimlerini karşılamak için yapılandırılabilir modellerle nesne algılama, segmentasyon ve izleme gibi çeşitli görevleri destekler.

Özellikleri ve performans karşılaştırmaları hakkında daha ayrıntılı bilgi için Ultralytics YOLO11Dokümantasyonuna göz atın.

YOLO11'i kalabalık analizi ve trafik yönetimi gibi gelişmiş uygulamalar için kullanabilir miyim?

Evet, Ultralytics YOLO11 gerçek zamanlı algılama yetenekleri, ölçeklenebilirliği ve entegrasyon esnekliği sayesinde kalabalık analizi ve trafik yönetimi gibi gelişmiş uygulamalar için mükemmel şekilde uygundur. Gelişmiş özellikleri, dinamik ortamlarda yüksek doğrulukta nesne izleme, sayma ve sınıflandırma sağlar. Örnek kullanım durumları şunları içerir:

  • Kalabalık Analizi: Güvenliği sağlamak ve kalabalık akışını optimize etmek için büyük toplantıları izleyin ve yönetin.
  • Trafik Yönetimi: Araçları takip edin ve sayın, trafik düzenlerini analiz edin ve trafik sıkışıklığını gerçek zamanlı olarak yönetin.

Daha fazla bilgi ve uygulama ayrıntıları için YOLO11 ile nesne saymanın Gerçek Dünya Uygulamaları kılavuzuna bakın.

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

Yorumlar