Ultralytics YOLO26 kullanarak analiz

Giriş

Bu rehber, üç temel veri görselleştirme türüne kapsamlı bir genel bakış sunar: çizgi grafikleri, çubuk grafikleri ve pasta grafikler. Her bölüm, bu görselleştirmeleri Python kullanarak nasıl oluşturacağına dair adım adım talimatlar ve kod parçacıkları içerir.



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

Görsel Örnekler

Çizgi GrafiğiÇubuk GrafiğiPasta Grafik
Nesne takibi için YOLO analiz çizgi grafiğiTespit sayıları için YOLO analiz çubuk grafiğiSınıf dağılımı için YOLO analiz pasta grafiği

Grafikler Neden Önemlidir?

  • Çizgi grafikleri, kısa ve uzun dönemlerdeki değişimleri izlemek ve aynı dönem boyunca birden fazla grup için değişimleri karşılaştırmak için idealdir.
  • Öte yandan çubuk grafikleri, miktarları farklı kategoriler arasında karşılaştırmak ve bir kategori ile onun sayısal değeri arasındaki ilişkileri göstermek için uygundur.
  • Son olarak, pasta grafikler kategoriler arasındaki oranları göstermek ve bütünün parçalarını sergilemek için etkilidir.
Ultralytics YOLO kullanarak analiz
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Analytics Argümanları

İşte Analytics argümanlarını özetleyen bir tablo:

ArgümanTürVarsayılanAçıklama
modelstrNoneBir Ultralytics YOLO model dosyasına giden yol.
analytics_typestr'line'Grafik türü; örn. line, bar, area veya pie.

You can also leverage different track arguments in the Analytics solution.

ArgümanTürVarsayılanAçıklama
trackerstr'botsort.yaml'Kullanılacak takip algoritmasını belirtir, örneğin bytetrack.yaml veya botsort.yaml.
conffloat0.1Tespitler için güven eşiğini belirler; daha düşük değerler daha fazla nesnenin takip edilmesine izin verir ancak hatalı pozitifleri içerebilir.
ioufloat0.7Çakışan tespitleri filtrelemek için Birleşim Üzerinde Kesişim (IoU) eşiğini belirler.
classeslistNoneSonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] sadece belirtilen sınıfları takip eder.
verboseboolTrueTakip edilen nesnelerin görsel bir çıktısını sağlayarak takip sonuçlarının görüntülenmesini kontrol eder.
devicestrNoneÇıkarım için cihazı belirtir (örneğin cpu, cuda:0 veya 0). Kullanıcıların model yürütme için CPU, belirli bir GPU veya diğer bilgi işlem cihazları arasında seçim yapmasına olanak tanır.

Ek olarak, aşağıdaki görselleştirme argümanları desteklenmektedir:

ArgümanTürVarsayılanAçıklama
showboolFalseEğer True ise, açıklamalı görüntüleri veya videoları bir pencerede görüntüler. Geliştirme veya test sırasında anında görsel geri bildirim için kullanışlıdır.
line_widthint or NoneNoneSınırlayıcı kutuların çizgi kalınlığını belirtir. None ise, çizgi kalınlığı otomatik olarak görüntü boyutuna göre ayarlanır. Netlik için görsel özelleştirme sağlar.

Sonuç

Farklı görselleştirme türlerini ne zaman ve nasıl kullanacağını anlamak, etkili veri analizi için çok önemlidir. Çizgi grafikleri, çubuk grafikleri ve pasta grafikler, verinin hikayesini daha net ve etkili bir şekilde anlatmana yardımcı olabilecek temel araçlardır. Ultralytics YOLO26 Analytics çözümü, bu görselleştirmeleri nesne tespiti ve takip sonuçlarından oluşturmanın modern bir yolunu sunarak görsel verilerinden anlamlı çıkarımlar yapmanı kolaylaştırır.

SSS

Ultralytics YOLO26 Analytics kullanarak nasıl çizgi grafiği oluşturabilirim?

Ultralytics YOLO26 Analytics kullanarak çizgi grafiği oluşturmak için şu adımları izle:

  1. Bir YOLO26 modeli yükle ve video dosyanı aç.
  2. Analytics sınıfını türü "line" olarak ayarlanmış şekilde başlat.
  3. Video kareleri üzerinde döngü kur ve çizgi grafiğini, kare başına nesne sayıları gibi ilgili verilerle güncelle.
  4. Çizgi grafiğini gösteren çıktı videosunu kaydet.

Örnek:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Analytics sınıfını yapılandırma hakkında daha fazla ayrıntı için Ultralytics YOLO26 kullanarak analiz bölümünü ziyaret et.

Ultralytics YOLO26'yı çubuk grafikleri oluşturmak için kullanmanın faydaları nelerdir?

Çubuk grafikleri oluşturmak için Ultralytics YOLO26 kullanmak birçok avantaj sunar:

  1. Gerçek Zamanlı Veri Görselleştirme: Nesne tespiti sonuçlarını dinamik güncellemeler için sorunsuz bir şekilde çubuk grafiklerine entegre et.
  2. Kullanım Kolaylığı: Basit API ve işlevler, verileri uygulamayı ve görselleştirmeyi kolaylaştırır.
  3. Özelleştirme: Başlıkları, etiketleri, renkleri ve daha fazlasını özel gereksinimlerine uyacak şekilde özelleştir.
  4. Verimlilik: Video işleme sırasında büyük miktarda veriyi verimli bir şekilde işle ve grafikleri gerçek zamanlı olarak güncelle.

Çubuk grafiği oluşturmak için aşağıdaki örneği kullan:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Daha fazla bilgi edinmek için rehberdeki Çubuk Grafiği bölümünü ziyaret et.

Veri görselleştirme projelerimde pasta grafikler oluşturmak için neden Ultralytics YOLO26 kullanmalıyım?

Ultralytics YOLO26, pasta grafikler oluşturmak için mükemmel bir seçimdir çünkü:

  1. Nesne Tespiti ile Entegrasyon: Anlık içgörüler için nesne tespiti sonuçlarını doğrudan pasta grafiklerine entegre et.
  2. Kullanıcı Dostu API: Minimal kodla kurulumu ve kullanımı basittir.
  3. Özelleştirilebilir: Renkler, etiketler ve daha fazlası için çeşitli özelleştirme seçenekleri mevcuttur.
  4. Gerçek Zamanlı Güncellemeler: Video analitiği projeleri için ideal olan verileri gerçek zamanlı olarak işle ve görselleştir.

İşte hızlı bir örnek:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Daha fazla bilgi için rehberdeki Pasta Grafik bölümüne bak.

Ultralytics YOLO26, nesneleri takip etmek ve görselleştirmeleri dinamik olarak güncellemek için kullanılabilir mi?

Evet, Ultralytics YOLO26 nesneleri takip etmek ve görselleştirmeleri dinamik olarak güncellemek için kullanılabilir. Birden fazla nesnenin gerçek zamanlı takibini destekler ve takip edilen nesnelerin verilerine dayanarak çizgi grafikleri, çubuk grafikleri ve pasta grafikler gibi çeşitli görselleştirmeleri güncelleyebilir.

Çizgi grafiğini takip etme ve güncelleme için örnek:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Tüm işlevsellik hakkında bilgi edinmek için Takip bölümüne bak.

Ultralytics YOLO26'yı OpenCV ve TensorFlow gibi diğer nesne tespiti çözümlerinden farklı kılan nedir?

Ultralytics YOLO26, OpenCV ve TensorFlow gibi diğer nesne tespiti çözümlerinden birçok nedenden dolayı ayrılır:

  1. Son Teknoloji Doğruluk: YOLO26, nesne tespiti, segmentasyon ve sınıflandırma görevlerinde üstün doğruluk sağlar.
  2. Kullanım Kolaylığı: Kullanıcı dostu API, kapsamlı kodlama gerektirmeden hızlı uygulama ve entegrasyona olanak tanır.
  3. Gerçek Zamanlı Performans: Yüksek hızlı çıkarım için optimize edilmiştir, gerçek zamanlı uygulamalar için uygundur.
  4. Çeşitli Uygulamalar: Çoklu nesne takibi, özel model eğitimi ve ONNX, TensorRT ve CoreML gibi farklı formatlara dışa aktarma dahil olmak üzere çeşitli görevleri destekler.
  5. Kapsamlı Dokümantasyon: Kullanıcılara her adımda rehberlik edecek kapsamlı dokümantasyon ve blog kaynakları.

Daha detaylı karşılaştırmalar ve kullanım durumları için Ultralytics Blog sayfamızı keşfet.

Yorumlar