İçeriğe geç

Ultralytics YOLO11 adresini kullanan analitik

Giriş

Bu kılavuz, üç temel veri görselleştirme türüne kapsamlı bir genel bakış sunmaktadır: çizgi grafikler, çubuk grafikler ve pasta grafikler. Her bölüm, Python adresini kullanarak bu görselleştirmelerin nasıl oluşturulacağına dair adım adım talimatlar ve kod parçacıkları içermektedir.



İzle: Ultralytics | Çizgi Grafikler, Çubuk Grafikler, Alan ve Pasta Grafikler kullanılarak Analitik Grafikler nasıl oluşturulur?

Görsel Örnekler

Çizgi GrafiğiÇubuk ArsaPasta Grafiği
Çizgi GrafiğiÇubuk ArsaPasta Grafiği

Grafikler Neden Önemlidir?

  • Çizgi grafikler, kısa ve uzun dönemlerdeki değişiklikleri izlemek ve aynı dönemde birden fazla grup için değişiklikleri karşılaştırmak için idealdir.
  • Öte yandan çubuk grafikler, farklı kategorilerdeki miktarları karşılaştırmak ve bir kategori ile sayısal değeri arasındaki ilişkileri göstermek için uygundur.
  • Son olarak, pasta grafikler kategoriler arasındaki oranları göstermek ve bir bütünün parçalarını göstermek için etkilidir.

Analitik Örnekler

 yolo solutions analytics show=True

# pass the source
yolo solutions analytics source="path/to/video/file.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
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))

# Video writer
out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1920, 1080),  # This is fixed
)

# Init analytics
analytics = solutions.Analytics(
    show=True,  # Display the output
    analytics_type="line",  # Pass the analytics type, could be "pie", "bar" or "area".
    model="yolo11n.pt",  # Path to the YOLO11 model file
    # classes=[0, 2],  # If you want to count specific classes i.e person and car with COCO pretrained model.
)

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

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

Tartışma Analytics

İşte bir tablo Analytics Argümanlar:

İsimTipVarsayılanAçıklama
analytics_typestrlineGrafik türü, yani "çizgi", "çubuk", "alan", "pasta"
modelstrNoneUltralytics YOLO Model Dosyasının Yolu
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.

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.

Sonuç

Farklı görselleştirme türlerinin ne zaman ve nasıl kullanılacağını anlamak, etkili veri analizi için çok önemlidir. Çizgi grafikler, çubuk grafikler ve pasta grafikler, verilerinizin hikayesini daha net ve etkili bir şekilde aktarmanıza yardımcı olabilecek temel araçlardır.

SSS

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

Ultralytics YOLO11 Analytics kullanarak bir çizgi grafiği oluşturmak için aşağıdaki adımları izleyin:

  1. Bir YOLO11 modeli yükleyin ve video dosyanızı açın.
  2. Başlatmak Analytics sınıfının türü "satır" olarak ayarlanmıştır.
  3. Video kareleri arasında yineleme yaparak çizgi grafiğini kare başına nesne sayısı gibi ilgili verilerle güncelleyin.
  4. Çizgi grafiğini görüntüleyen çıktı videosunu kaydedin.

Örnek:

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

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1920, 1080),  # 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
        im0 = analytics.process_data(im0, frame_count)  # update analytics graph every frame
        out.write(im0)  # write the video file
    else:
        break

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

Yapılandırma hakkında daha fazla ayrıntı için Analytics sınıfını ziyaret etmek için Analitik Ultralytics YOLO11 📊 kullanarak Bölüm.

Çubuk grafikler oluşturmak için Ultralytics YOLO11 kullanmanın faydaları nelerdir?

Çubuk grafikler oluşturmak için Ultralytics YOLO11 adresini kullanmak çeşitli avantajlar sunar:

  1. Gerçek Zamanlı Veri Görselleştirme: Dinamik güncellemeler için nesne algılama sonuçlarını çubuk grafiklere sorunsuz bir şekilde entegre edin.
  2. Kullanım Kolaylığı: Basit API ve fonksiyonlar, verilerin uygulanmasını ve görselleştirilmesini kolaylaştırır.
  3. Özelleştirme: Başlıkları, etiketleri, renkleri ve daha fazlasını özel gereksinimlerinize uyacak şekilde özelleştirin.
  4. Verimlilik: Büyük miktarda veriyi verimli bir şekilde işleyin ve video işleme sırasında grafikleri gerçek zamanlı olarak güncelleyin.

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

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

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1920, 1080),  # 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
        im0 = analytics.process_data(im0, frame_count)  # update analytics graph every frame
        out.write(im0)  # write the video file
    else:
        break

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

Daha fazla bilgi edinmek için kılavuzdaki Bar Plot bölümünü ziyaret edin.

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

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

  1. Nesne Algılama ile Entegrasyon: Anında içgörüler için nesne algılama sonuçlarını doğrudan pasta grafiklere entegre edin.
  2. Kullanıcı Dostu API: Minimum kod ile kurulumu ve kullanımı basit.
  3. Özelleştirilebilir: Renkler, etiketler ve daha fazlası için çeşitli özelleştirme seçenekleri.
  4. Gerçek Zamanlı Güncellemeler: Video analiz projeleri için ideal olan verileri gerçek zamanlı olarak işleyin ve görselleştirin.

İşte hızlı bir örnek:

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

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1920, 1080),  # 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
        im0 = analytics.process_data(im0, frame_count)  # update analytics graph every frame
        out.write(im0)  # write the video file
    else:
        break

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

Daha fazla bilgi için kılavuzdaki Pasta Grafik bölümüne bakın.

Ultralytics YOLO11 nesneleri izlemek ve görselleştirmeleri dinamik olarak güncellemek için kullanılabilir mi?

Evet, Ultralytics YOLO11 nesneleri izlemek ve görselleştirmeleri dinamik olarak güncellemek için kullanılabilir. Birden fazla nesneyi gerçek zamanlı olarak izlemeyi destekler ve izlenen nesnelerin verilerine dayalı olarak çizgi grafikler, çubuk grafikler ve pasta grafikler gibi çeşitli görselleştirmeleri güncelleyebilir.

Bir çizgi grafiğinin izlenmesi ve güncellenmesi için örnek:

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

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1920, 1080),  # 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
        im0 = analytics.process_data(im0, frame_count)  # update analytics graph every frame
        out.write(im0)  # write the video file
    else:
        break

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

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

Ultralytics YOLO11'i OpenCV gibi diğer nesne algılama çözümlerinden farklı kılan nedir? TensorFlow?

Ultralytics YOLO11, OpenCV ve TensorFlow gibi diğer nesne algılama çözümlerinden çeşitli nedenlerle ayrılır:

  1. Son Teknoloji Doğruluk: YOLO11 nesne algılama, segmentasyon ve sınıflandırma görevlerinde üstün doğruluk sağlar.
  2. Kullanım Kolaylığı: Kullanıcı dostu API, kapsamlı kodlama olmadan hızlı uygulama ve entegrasyon sağlar.
  3. Gerçek Zamanlı Performans: Gerçek zamanlı uygulamalar için uygun, yüksek hızlı çıkarım için optimize edilmiştir.
  4. Çeşitli Uygulamalar: Çoklu nesne takibi, özel model eğitimi ve ONNX, TensorRT ve CoreML gibi farklı formatlara aktarma gibi çeşitli görevleri destekler.
  5. Kapsamlı Dokümantasyon: Kullanıcılara her adımda rehberlik edecek kapsamlı dokümantasyon ve blog kaynakları.

Daha ayrıntılı karşılaştırmalar ve kullanım örnekleri için Ultralytics Blogumuzu inceleyin.

📅 Created 6 months ago ✏️ Updated 7 days ago

Yorumlar