Ultralytics YOLO26 ile Nesne Sayımı#
Nesne sayımı nedir?#
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ı#
| Lojistik | Su ürünleri yetiştiriciliği |
|---|---|
![]() | ![]() |
| 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.
# 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şken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
model | str | None | Ultralytics YOLO model dosyasının yolu. |
show_in | bool | True | Video akışında giriş sayılarının görüntülenip görüntülenmeyeceğini denetleyen bayrak. |
show_out | bool | True | Video akışında çıkış sayılarının görüntülenip görüntülenmeyeceğini denetleyen bayrak. |
region | list veya dict | None | İ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_width | int | 2 | Çözümün çizdiği kutular, anahtar noktalar ve sayılar için çizgi kalınlığı. |
verbose | bool | True | Çö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şken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Kullanılacak izleme algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Algı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. |
iou | float | 0.7 | Çakışan algılamaları filtrelemek için Kesişim-Birleşim Oranı (IoU) eşiğini belirler. |
classes | list | None | Sonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler. |
device | str | None | Çı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. |
imgsz | int or tuple | 640 | Hedef çı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_det | int | 300 | Yoğ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ı. |
quantize | int or str | None | Çı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şken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
show | bool | False | True 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_conf | bool | True | Her 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_labels | bool | True | Gö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:
- Gerekli kütüphaneleri içe aktar (
cv2,ultralytics). - Sayım bölgesini tanımla (ör. çokgen, çizgi vb.).
- Video yakalamayı ayarla ve nesne sayacını başlat.
- 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.
- Gerekli kütüphaneleri içe aktar (
Nesne sayımı için Ultralytics YOLO26 kullanmanın çeşitli avantajları vardır:
- 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.
- 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.
- 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.
- 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],0ve2sı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:
- 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.
- 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.
- 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.
- 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.

