Ultralytics YOLO27:
Get Started

Ultralytics YOLO26 ile Nesne Sayımı#

Nesne sayımı nedir?#

Open Object Counting In Colab

Ultralytics YOLO26 ile nesne sayımı, videolardaki ve kamera akışlarındaki belirli nesnelerin doğru şekilde tanımlanıp sayılmasını içerir. YOLO26, son teknoloji algoritmaları ve derin öğrenme yetenekleri sayesinde kalabalık analizi ve gözetim gibi çeşitli senaryolarda verimli ve hassas nesne sayımı sunarak gerçek zamanlı uygulamalarda öne çıkar.



İzle: Ultralytics YOLO26 ile Gerçek Zamanlı Nesne Sayımı Nasıl Yapılır 🚀

Nesne Sayımının Avantajları#

  • Kaynak Optimizasyonu: Nesne sayımı, doğru sayımlar sağlayarak kaynakların verimli yönetilmesini ve envanter yönetimi gibi uygulamalarda kaynak tahsisinin optimize edilmesini kolaylaştırır.
  • Gelişmiş Güvenlik: Nesne sayımı, varlıkları doğru şekilde izleyip sayarak güvenlik ve gözetimi güçlendirir ve proaktif tehdit tespitine yardımcı olur.
  • Bilinçli Karar Verme: Nesne sayımı, karar verme süreçleri için değerli içgörüler sunar; perakende, trafik yönetimi ve diğer çeşitli alanlardaki süreçleri optimize eder.

Gerçek Dünya Uygulamaları#

LojistikSu ürünleri yetiştiriciliği
Ultralytics YOLO26 ile Konveyör Bandındaki Paketlerin SayımıUltralytics YOLO26 ile Denizde Balık Sayımı
Ultralytics YOLO26 ile Konveyör Bandındaki Paketlerin SayımıUltralytics YOLO26 ile Denizde Balık Sayımı

YOLO26 ile Nesneleri Say#

Bir sayım region tanımla — bir çizgi için iki nokta, bir çokgen için üç veya daha fazla nokta — ve bunu ObjectCounter çözümüne aktar. Sayaç, her nesneyi kareler boyunca izler ve izlenen nesneler çizgiyi geçtiğinde veya bölgeden geçtiğinde GİRİŞ/ÇIKIŞ sayılarını toplar; çıktı videosuna yazabileceğin açıklama eklenmiş bir kare döndürür.

Ultralytics YOLO ile Nesne Sayımı
# Run a counting example
yolo solutions count show=True

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

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

region bağımsız değişkeni iki nokta (bir çizgi için) veya üç ya da daha fazla noktalı bir çokgen kabul eder. Sayaç giriş ve çıkışların tam olarak nerede gerçekleştiğini bilsin diye koordinatları bağlanmaları gereken sırayla tanımla.

ObjectCounter Bağımsız Değişkenleri#

Aşağıda ObjectCounter bağımsız değişkenlerini içeren bir tablo bulabilirsin:

Bağımsız değişkenTürVarsayılanAçıklama
modelstrNoneUltralytics YOLO model dosyasının yolu.
show_inboolTrueVideo akışında giriş sayılarının görüntülenip görüntülenmeyeceğini denetleyen bayrak.
show_outboolTrueVideo akışında çıkış sayılarının görüntülenip görüntülenmeyeceğini denetleyen bayrak.
regionlist veya dictNoneİlgi bölgesini tanımlayan noktalar; (x, y) demetlerinin listesi veya birden fazla bölge için bölge adlarını nokta listelerine eşleyen bir sözlük (yalnızca RegionCounter). None olduğunda, bölge gerektiren çözümler önceden tanımlanmış varsayılan bölgeye döner.
line_widthint2Çözümün çizdiği kutular, anahtar noktalar ve sayılar için çizgi kalınlığı.
verboseboolTrueÇözümün her kare için girdi şekli, sınıf sayıları ve işleme hızına ilişkin günlüğünü etkinleştirir. İzleme çağrısının kendisi her zaman sessizdir.

ObjectCounter çözümü, çeşitli track bağımsız değişkenlerinin kullanılmasına olanak tanır:

Bağımsız değişkenTürVarsayılanAçıklama
trackerstr'tracktrack.yaml'Kullanılacak izleme algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Algılamalar için güven eşiğini belirler; düşük değerler daha fazla nesnenin izlenmesine olanak tanır ancak yanlış pozitifleri de içerebilir.
ioufloat0.7Çakışan algılamaları filtrelemek için Kesişim-Birleşim Oranı (IoU) eşiğini belirler.
classeslistNoneSonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler.
devicestrNoneÇıkarım için kullanılacak cihazı belirtir (ör. cpu, cuda:0 veya 0). Kullanıcıların model yürütme için CPU, belirli bir GPU veya başka hesaplama cihazları arasında seçim yapmasına olanak tanır.
imgszint or tuple640Hedef çıkarım görüntü boyutu: kare görüntüler için bir tam sayı veya bir (height, width) çifti. Boyutlar model adım değerine göre ayarlanır.
max_detint300Yoğun sahnelerde bir çözümün işleyeceği nesne sayısını sınırlamak için izleme öncesinde kare başına tutulan en yüksek algılama sayısı.
quantizeint or strNoneÇıkarım hassasiyeti: CPU dışında PyTorch ve TorchScript modelleri için 16 (FP16) veya 32/unset (FP32); diğer biçimler, model yapıtının ve çalışma zamanının seçtiği hassasiyeti kullanır. Kullanımdan kaldırılan half argümanının yerini alır.

Ayrıca aşağıda listelenen görselleştirme bağımsız değişkenleri de desteklenir:

Bağımsız değişkenTürVarsayılanAçıklama
showboolFalseTrue ise açıklama eklenmiş görüntüleri veya videoları bir pencerede gösterir. Geliştirme veya test sırasında anında görsel geri bildirim almak için kullanışlıdır.
show_confboolTrueHer algılamanın güven puanını etiketinin yanında gösterir. Modelin her algılamaya ne kadar güvendiğini görmeni sağlar.
show_labelsboolTrueGörsel çıktıda her algılama için etiketleri gösterir. Algılanan nesnelerin hemen anlaşılmasını sağlar.

Sık Sorulan Sorular#

  • Ultralytics YOLO26 ile videodaki nesneleri saymak için şu adımları izleyebilirsin:

    1. Gerekli kütüphaneleri içe aktar (cv2, ultralytics).
    2. Sayım bölgesini tanımla (ör. çokgen, çizgi vb.).
    3. Video yakalamayı ayarla ve nesne sayacını başlat.
    4. Nesneleri izlemek ve tanımlanan bölgede saymak için her kareyi işle.

    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, 400), (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 processing is complete.")
                break
            results = counter(im0)
            video_writer.write(results.plot_im)
    
        cap.release()
        video_writer.release()
        cv2.destroyAllWindows()
    
    count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolo26n.pt")

    Daha gelişmiş yapılandırma ve seçenekler için, nesneleri aynı anda birden fazla bölgede saymaya yönelik RegionCounter çözümüne göz at.

  • Nesne sayımı için Ultralytics YOLO26 kullanmanın çeşitli avantajları vardır:

    1. Kaynak Optimizasyonu: Doğru sayımlar sağlayarak kaynakların verimli yönetilmesini kolaylaştırır ve envanter yönetimi gibi sektörlerde kaynak tahsisini optimize etmeye yardımcı olur.
    2. Gelişmiş Güvenlik: Varlıkları doğru şekilde izleyip sayarak güvenlik ve gözetimi güçlendirir; proaktif tehdit tespitine ve güvenlik sistemlerine yardımcı olur.
    3. Bilinçli Karar Verme: Karar verme süreçleri için değerli içgörüler sunar; perakende, trafik yönetimi ve daha birçok alandaki süreçleri optimize eder.
    4. Gerçek Zamanlı İşleme: YOLO26'nın mimarisi, gerçek zamanlı çıkarım olanağı sunarak canlı video akışları ve zamana duyarlı uygulamalar için uygun olmasını sağlar.

    Uygulama örnekleri ve pratik kullanım alanları için belirli bölgelerdeki nesneleri izlemeye yönelik TrackZone çözümünü incele.

  • Ultralytics YOLO26 ile belirli nesne sınıflarını saymak için izleme aşamasında ilgilendiğin sınıfları belirtmen gerekir. Aşağıda bir Python örneği yer alıyor:

    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 processing is complete.")
                break
            results = counter(im0)
            video_writer.write(results.plot_im)
    
        cap.release()
        video_writer.release()
        cv2.destroyAllWindows()
    
    count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolo26n.pt", [0, 2])

    Bu örnekte classes_to_count=[0, 2], 0 ve 2 sınıflarındaki nesneleri saydığı anlamına gelir (ör. COCO veri kümesindeki kişi ve araba). Sınıf indeksleri hakkında daha fazla bilgiyi COCO veri kümesi belgelerinde bulabilirsin.

  • Ultralytics YOLO26, Faster R-CNN, SSD ve önceki YOLO sürümleri gibi diğer nesne algılama modellerine kıyasla çeşitli avantajlar sunar:

    1. Hız ve Verimlilik: YOLO26, gözetim ve otonom sürüş gibi yüksek hızlı çıkarım gerektiren uygulamalar için ideal olan gerçek zamanlı işleme yetenekleri sunar.
    2. Doğruluk: Son teknoloji algılama ve izleme doğruluğu sunarak yanlış pozitifleri azaltır ve genel sistem güvenilirliğini artırır.
    3. Entegrasyon Kolaylığı: YOLO26; mobil cihazlar ve uç cihazlar dâhil çeşitli platform ve cihazlarla sorunsuz entegrasyon sunar; bu, modern AI uygulamaları için kritik öneme sahiptir.
    4. Esneklik: Belirli kullanım alanlarının gereksinimlerini karşılamak için yapılandırılabilir modellerle algılama ve segmentasyon görevlerini destekler; ayrıca izleme modu da sunar.

    Özelliklerini ve performans karşılaştırmalarını daha ayrıntılı incelemek için Ultralytics YOLO26 Belgelerine göz at.

  • Evet, Ultralytics YOLO26; gerçek zamanlı algılama yetenekleri, ölçeklenebilirliği ve esnek entegrasyonu sayesinde kalabalık analizi ve trafik yönetimi gibi gelişmiş uygulamalar için son derece uygundur. Gelişmiş özellikleri, dinamik ortamlarda nesneleri yüksek doğrulukla izlemeyi, saymayı ve sınıflandırmayı sağlar. Örnek kullanım alanları:

    • Kalabalık Analizi: Bölge tabanlı sayım ile büyük kalabalıkları izle ve yönet; güvenliği sağlarken kalabalık akışını optimize et.
    • Trafik Yönetimi: Hız tahmini yetenekleriyle araçları izle ve say, trafik düzenlerini analiz et ve tıkanıklığı gerçek zamanlı olarak yönet.
    • Perakende Analitiği: Mağaza düzenlerini optimize etmek ve müşteri deneyimini iyileştirmek için müşteri hareket düzenlerini ve ürün etkileşimlerini analiz et.
    • Endüstriyel Otomasyon: Kalite kontrolü ve verimlilik iyileştirmeleri için konveyör bantlarındaki ürünleri say ve üretim hatlarını izle.

    Gerçek dünyadaki bilgisayarlı görü zorlukları için tasarlanmış kapsamlı araç setini görmek üzere daha özel uygulamalar için Ultralytics Çözümlerini incele.

Yorumlar